Non respect des contraintes sur solveur excel
Résolu
timal457
Messages postés
1
Date d'inscription
Statut
Membre
Dernière intervention
-
timal457 -
timal457 -
Bonjour,
Je fais une recherche pour minimiser les actions sur des outils qui doivent être avec une bonne coordination.
J'expose le problème de facon mathématique:
J'ai un tableau (matrice) de valeurs (négatives ou positives). Je vais chercher les valeurs qui m'intéresse et je multiplie chacunes d'elles par une constante.en gros je fais une multiplication matricielle (AX=B) avec:
A: ma matrice de valeur
X: mes constantes
B: le résultat de la multiplication
X est ce que je cherche et seront les paramètres à faire varier dans mon solveur.
Mes contraintes sont les suivantes:
-contraintes de bornes inférieures et supérieures pour mes variables
-mes variables doivent être des nombres entiers (négatif ou positif)
-Le résultat des multiplications pour doit être supérieur à une valeur calculée précédemment.
Je cherche donc à minimiser mes paramètres. je calcule donc la somme de mes paramètres que je mets dans une cellule et cette cellule sera la valeur cible de mon solveur. Je coche la case min pour minimiser mon résultat.
Le problème c'est que quand je lance mon solveur d'une part mes paramètres ne sont pas des nombres entiers et je remarque que je peux encore minimiser le résultat.
Je n'arrive pas à comprendre pourquoi les contraintes ne sont pas respectées donc si certains d'entre vous connaisse une solution sans passer par le visual basic je suis prenneur.
Si vous avez besoin de précision surtout n'hésitez pas.
Je fais une recherche pour minimiser les actions sur des outils qui doivent être avec une bonne coordination.
J'expose le problème de facon mathématique:
J'ai un tableau (matrice) de valeurs (négatives ou positives). Je vais chercher les valeurs qui m'intéresse et je multiplie chacunes d'elles par une constante.en gros je fais une multiplication matricielle (AX=B) avec:
A: ma matrice de valeur
X: mes constantes
B: le résultat de la multiplication
X est ce que je cherche et seront les paramètres à faire varier dans mon solveur.
Mes contraintes sont les suivantes:
-contraintes de bornes inférieures et supérieures pour mes variables
-mes variables doivent être des nombres entiers (négatif ou positif)
-Le résultat des multiplications pour doit être supérieur à une valeur calculée précédemment.
Je cherche donc à minimiser mes paramètres. je calcule donc la somme de mes paramètres que je mets dans une cellule et cette cellule sera la valeur cible de mon solveur. Je coche la case min pour minimiser mon résultat.
Le problème c'est que quand je lance mon solveur d'une part mes paramètres ne sont pas des nombres entiers et je remarque que je peux encore minimiser le résultat.
Je n'arrive pas à comprendre pourquoi les contraintes ne sont pas respectées donc si certains d'entre vous connaisse une solution sans passer par le visual basic je suis prenneur.
Si vous avez besoin de précision surtout n'hésitez pas.
A voir également:
- Non respect des contraintes sur solveur excel
- Liste déroulante excel - Guide
- Word et excel gratuit - Guide
- Comment trier par ordre alphabétique sur excel - Guide
- Comment calculer la moyenne sur excel - Guide
- Déplacer colonne excel - Guide
7 réponses
Bonjour,
Au passage, se sera plus compréhensible de mettre votre fichier exemple sur https://www.cjoint.com/ et poster le lien.
Au passage, se sera plus compréhensible de mettre votre fichier exemple sur https://www.cjoint.com/ et poster le lien.
Bonjour,
Merci pour le fichier.
Eh bien, je ne trouve pas de scénario défini dans la feuille [Matrice de sensibilité] ou sous forme de procédure VBA., donc impossible de proposer une explication/solution.
Merci pour le fichier.
Eh bien, je ne trouve pas de scénario défini dans la feuille [Matrice de sensibilité] ou sous forme de procédure VBA., donc impossible de proposer une explication/solution.
Bonjour,
Purée ça c'est un tableau...
30s pour la 1ère ouverture avec les 8 coeurs à fond ! :-)
Dans ton solveur tu as choisi 'GRC non linéaire'.
A coté tu as 'Options', dans l'onglet 'toutes les méthodes' tu as 'ignorer les contraintes de nombre entier' de coché...
Ceci explique sans doute cela.
eric
Purée ça c'est un tableau...
30s pour la 1ère ouverture avec les 8 coeurs à fond ! :-)
Dans ton solveur tu as choisi 'GRC non linéaire'.
A coté tu as 'Options', dans l'onglet 'toutes les méthodes' tu as 'ignorer les contraintes de nombre entier' de coché...
Ceci explique sans doute cela.
eric
Bonsoir le pingou,
Dans le ruban Données, à droite il y a un bloc Analyse avec l'icone Solveur.
Cliquer dessus pour voir les parametres choisis.
Je ne me sers pas souvent de 2010 et je t'avoue que je ne me rappelle pas s'il y était d'origine ou si je l'ai ajouté....
Par contre je ne vois plus ici le fichier de timal, bizarre.
Timal aussi a disparu d'ailleurs, je vais me dire merci tout seul encore une fois...
A+
eric
Dans le ruban Données, à droite il y a un bloc Analyse avec l'icone Solveur.
Cliquer dessus pour voir les parametres choisis.
Je ne me sers pas souvent de 2010 et je t'avoue que je ne me rappelle pas s'il y était d'origine ou si je l'ai ajouté....
Par contre je ne vois plus ici le fichier de timal, bizarre.
Timal aussi a disparu d'ailleurs, je vais me dire merci tout seul encore une fois...
A+
eric
désolé pour la disparition mais je n'avais plus internet. Je viens de le récupérer.
Le fichier était un fichier qui disparaissait sous quelques jours. J'en remets un beaucoup plus simplifié mais où j'ai le même problème.
Le solver ne fait pas d'optimisation pourtant c'est une équation simple là.
Je vous mets en PJ le fichier.
Merci pour votre aide passée et merci d'avance pour votre aide à venir.
http://www.cijoint.fr/cjlink.php?file=cj201106/cijwsZgDgM.xlsx
Le fichier était un fichier qui disparaissait sous quelques jours. J'en remets un beaucoup plus simplifié mais où j'ai le même problème.
Le solver ne fait pas d'optimisation pourtant c'est une équation simple là.
Je vous mets en PJ le fichier.
Merci pour votre aide passée et merci d'avance pour votre aide à venir.
http://www.cijoint.fr/cjlink.php?file=cj201106/cijwsZgDgM.xlsx
Ca fonctionne à peu près maintenant, il y a quelque fois des nombres du genre 1.2 E-07 qui apparaissent qui sont équivalent à 0 mais qui à l'oeil choque un peu mais bon ca reste superficiel. Sinon ca va il y a encore 2 ou 3 petits trucs à revoir mais en grande partie ca devrait aller.
Merci beaucoup ERIC
Merci beaucoup ERIC
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Encore une petite chose.
J'aimerai créer un bouton qui en cliquant dessus lance le solveur automatiquement.
J'aimerai savoir si dans un premier temps c'est possible, et dans un second temps savoir comment faire?
J'ai déja réussi à créer un bouton qui initialise mes paramètres à 0 (c'était pas compliqué) mais pour le solveur, je bute un peu.
J'aimerai créer un bouton qui en cliquant dessus lance le solveur automatiquement.
J'aimerai savoir si dans un premier temps c'est possible, et dans un second temps savoir comment faire?
J'ai déja réussi à créer un bouton qui initialise mes paramètres à 0 (c'était pas compliqué) mais pour le solveur, je bute un peu.
Bonjour,
Essayez cette procédure:
Salutations.
Le Pingou
Essayez cette procédure:
Sub executersolver() ' Essai de procédure SolverReset ' SolverOptions MaxTime:=100, Iterations:=100, Precision:=0.000001, Convergence:= _ 0.0001, StepThru:=False, Scaling:=False, AssumeNonNeg:=False, Derivatives:=1 SolverOptions PopulationSize:=100, RandomSeed:=0, MutationRate:=0.075, Multistart _ :=False, RequireBounds:=True, MaxSubproblems:=0, MaxIntegerSols:=0, _ IntTolerance:=5, SolveWithout:=True, MaxTimeNoImp:=30 SolverOk SetCell:="$B$9", MaxMinVal:=1, ValueOf:=0, ByChange:="$B$8:$C$8", _ Engine:=1, EngineDesc:="GRG Nonlinear" SolverAdd CellRef:="$L$3:$L$4", Relation:=1, FormulaText:="0" SolverAdd CellRef:="$B$8:$C$8", Relation:=1, FormulaText:="$B$13:$C$13" SolverAdd CellRef:="$B$8:$C$8", Relation:=3, FormulaText:="$B$14:$C$14" SolverAdd CellRef:="$C$11", Relation:=1, FormulaText:="$C$7" SolverAdd CellRef:="$L$3:$L$4", Relation:=1, FormulaText:="0" SolverSolve UserFinish:=True End Sub--
Salutations.
Le Pingou