Téléchargement
illégal
Posez votre question Signaler

Non respect des contraintes sur solveur excel [Résolu]

timal457 2Messages postés 21 juin 2011Date d'inscription 22 juin 2011Dernière intervention - Dernière réponse le 28 juin 2011 à 11:18
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.
Lire la suite 

Non respect des contraintes sur solveur excel »

15 réponses
Réponse
+0
moins plus
Bonjour,
Au passage, se sera plus compréhensible de mettre votre fichier exemple sur http://cjoint.com/ et poster le lien.
Ajouter un commentaire
Réponse
+0
moins plus
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.
Ajouter un commentaire
Réponse
+0
moins plus
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
timal457 - 27 juin 2011 à 12:59
Oui méa culpa... Par contre je n'arrive pas à trouver les options que tu m'indiques. J'ai pas d'onglet toutes les méthodes dans mon solveur. Désolé je suis nouvel utilisateur dEXCEL.
Quand j'ouvre mon solveur j'ai bien un onglet options dans lequel 'assume linear mode' est décoché mais je n'arrive pas à trouver ce que tu m'indiques car effectivement se doit être çà la source de mon problème!

PS: Merci d'avoir répondu si vite
timal457 - 27 juin 2011 à 13:04
ah non merci je viens de trouver j'avais mal cherché! Je vois si cela fonctionne et je reviens vous dire si c'est bon!
Le Pingou- 27 juin 2011 à 15:11
Bonjour,
Eh bien, c'est super, votre solveur est initialisé avec une procédure qui se trouve dans un autre classeur [matrice de sensibilité 8.xlsm] non disponible.
A vous de voir, désolé.
Salutations.
Le Pingou
Ajouter un commentaire
Réponse
+0
moins plus
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
Ajouter un commentaire
Réponse
+0
moins plus
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.
Ajouter un commentaire
Réponse
+0
moins plus
Bonjour,
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
Ajouter un commentaire
Réponse
+0
moins plus
merci ca marche bien!!!
Ajouter un commentaire
Ce document intitulé « non respect des contraintes sur solveur excel » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?