XL 2016 Trouver un résultat maximum en faisant varier 14 variable

Angrydrizzit

XLDnaute Nouveau
Bonjour à tous.

Je requière votre aide, je cherche a faire varier 14 événements différents, ceux-ci doivent varier entre 1 ou -1 uniquement et sont située en (E1:E14) dans le fichier excel joint.
L'objectif est d'avoir la valeur maximal en Q12, et se rapprocher le plus possible du max possible située en Q14 (94 dans se tableau).

Je pense que réaliser une automatisation est possible mais uniquement en VBA malheureusement je n'ai aucune connaissance en VBA...

Merci d'avance pour votre aide.

Cordialement
 

Pièces jointes

  • besoin d'aide.xlsx
    221.7 KB · Affichages: 9
Solution
Bonjour Angrydrizzit, et bienvenu sur XLD,
Difficile d'appréhender votre problème de façon mathématique, ou par itération.
Je n'ai trouvé aucune loi mathématique gérant l'ensemble.
Donc en PJ la bonne vieille méthode de "bourrin", tester les 16384 possibilités et en retenir que la combinaison max. En VBA bien évidemment.
Je trouve un max de 59.
Mais c'est très long. Sur mon vieux PC et XL2007 ça met 68 secondes. J'ai mis la progression dans le StatusBar en bas de l'écran ... pour faire patienter.

bsalv

XLDnaute Occasionnel
ce n'est pas très constructif.
je vous donne la méthode et la solution, c'est mieux que les autre vous offrent et la calculation est environ 1 minute. Elle ne garandit pas non plus que c'est vraiment le max possible, parce qu'on utilise la méthode "evolutionary". Chaque fois qu'on lance "solveur", la solution est 56 mais avec d'autres chiffres dans les cellules E1:E14 !

1690482271907.png
 

Pièces jointes

  • besoin d'aide V3.xlsm
    183.1 KB · Affichages: 1
Dernière édition:

Angrydrizzit

XLDnaute Nouveau
Bonsoir, je n'ai vu que la solution et non la méthode.
Je souhaite juste comprendre comment vous aboutissez a se résultat, car dans l'excel que je présente c'est une "démo" ce n'est pas l'original et j'adapte donc le code la où j'en ai besoin tout en essayant de le comprendre.

Car j'ai plusieurs excel avec ce genre de problématique.

Je vous remercierais de bien m'expliquer donc votre méthode évolutionary, voir de présenter l'Excel que vous avez modifié.

Je remercie encore la contribution de Sylvanu, j'ai pas encore réussi a tout comprendre dans les différents code VBA fournis mais je comprend en partie leur fonctionnement.

Cordialement
 

bsalv

XLDnaute Occasionnel
Moi, je ne comprend pas votre problème, je pense que c'est 94 "situations" qui sont complètement aleatoire et que vous voulez maximaliser le nombe de "OK".
C'est ce que "solveur" fait, les contraintes sont entre 1 et 10 et integer pour les cellules E1:E14 et il faut maximaliser Q12 et on pousse "Solveur" ...
Je ne sais pas vous donner plus d'explication, c'est un app qu'on utilise normallement dans des cas plus normaux ...
On voit dans le statusbar le progrès, donc la meilleur solution actuelle et le nombre de paris et après une minute, il vous donne une réponse, qu'il ne trouve pas une meilleur solution ... ,

L'autre problème "binair", solveur trouvait aussi une solution "59" en une minute ...
 

Angrydrizzit

XLDnaute Nouveau
Je m'excuse, j'ai écris mon précédent message lorsque vous étiez entrain d'éditer le votre en ajoutant les informations de votre méthodologie.
Du coup ne prenez pas compte de la 1ere partie de mon message.

Je vais prendre le temps d'analyser vos réponses et les documents associer.

Merci beaucoup pour votre contribution
 

Angrydrizzit

XLDnaute Nouveau
Bonjour Sylvanu,

Si je souhaite augmenter ou réduire le nombre d'événement, qu'elles sont les autres paramètres à changer dans le code ? Et comment calculer ses paramètre ?

J'ai compris qu'il fallait modifier :
- nbr_d'événement = représente le nombre d'évènement dans la ligne D
- le 16383 => (nbr_d'événement ^ 2) -1
- L = 1 To (nbr_d'événement)

Mais après je bloque, faut-il changer le nbr "tour" ?
Ou changer des chiffres dans le "Sub RemplitTableau()"

Merci d'avance pour ton retour et t'es explications
 

Discussions similaires