Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Solver avec plusieurs contraintes

2 réponses
Avatar
ionel.sbiera
Bonjour le forum,
J'ai le code suivant ou j'essai de minimiser le risk d'un portefeuille
(PRisk) avec 2 contraintes (Somme des poids=3D1 et les poids sont
positives):

Sub MySolverMarkowitz()
SolverReset
SolverOk SetCell:=3D"PRisk", MaxMinVal:=3D2, ValueOf:=3D"0",
ByChange:=3D"Weight"
SolverAdd CellRef:=3D"Weight", Relation:=3D3, FormulaText:=3D"0"
SolverAdd CellRef:=3D"Tweight", Relation:=3D2, FormulaText:=3D"1"
SolverOk SetCell:=3D"PRisk", MaxMinVal:=3D2, ValueOf:=3D"0",
ByChange:=3D"Weight"
SolverSolve Userfinish:=3DTrue
End Sub

Le probleme: La deuxieme contrainte du solver: SolverAdd (celui avec
CellRef:=3D"Tweight"...) n'est pas charg=E9 dans solveur. Mon solveur
marche bien mais il calcule avec une seule contrainte.

Est'ce que quelqun peut m'aider? ou au mois m'expliquer pourquoi cela
se passe?!
Je vous remercie d'avance pour votre temps!
ionel

2 réponses

Avatar
bourby
bonjour,

je ne suis pas un spécialiste, mais il me semble que le solveur ne sait
faire qu'une résolution à la fois.
Mais comme ta 2è condition ( poids positifs ), tu peux essayer de
trouver une astuce dans laquelle tes poids sont des carrés.

Cordialement

Bourby





wrote:
Bonjour le forum,
J'ai le code suivant ou j'essai de minimiser le risk d'un portefeuille
(PRisk) avec 2 contraintes (Somme des poids=1 et les poids sont
positives):

Sub MySolverMarkowitz()
SolverReset
SolverOk SetCell:="PRisk", MaxMinVal:=2, ValueOf:="0",
ByChange:="Weight"
SolverAdd CellRef:="Weight", Relation:=3, FormulaText:="0"
SolverAdd CellRef:="Tweight", Relation:=2, FormulaText:="1"
SolverOk SetCell:="PRisk", MaxMinVal:=2, ValueOf:="0",
ByChange:="Weight"
SolverSolve Userfinish:=True
End Sub

Le probleme: La deuxieme contrainte du solver: SolverAdd (celui avec
CellRef:="Tweight"...) n'est pas chargé dans solveur. Mon solveur
marche bien mais il calcule avec une seule contrainte.

Est'ce que quelqun peut m'aider? ou au mois m'expliquer pourquoi cela
se passe?!
Je vous remercie d'avance pour votre temps!
ionel



Avatar
ionel.sbiera

bonjour,

je ne suis pas un spécialiste, mais il me semble que le solveur ne sait
faire qu'une résolution à la fois.
Mais comme ta 2è condition ( poids positifs ), tu peux essayer de
trouver une astuce dans laquelle tes poids sont des carrés.

Cordialement

Bourby


Merci Bourby pour ton temps. Finalement j'ai trouvé ( c'est dangue je

pose le probleme et ensuite je donne la solution:)). Il faut juste
metre la deuxime condition="100%" et pas ="1"!! Pourquoi? Je sais pas!!
Mais ca marche et le calcul et fait avec les deux conditions!!
I salut u!