Comment le solveur d'excel fonctionne?
maxam49
Messages postés
5
Statut
Membre
-
maxam49 Messages postés 5 Statut Membre -
maxam49 Messages postés 5 Statut Membre -
Bonsoir,
Je travail en ce moment sur un projet informatique. J'ai une sorte de solveur d'excel à coder en C#. C'est-à-dire que j'ai plusieurs variables qui varient sur d'énorme valeurs. Je me disais donc que tester chaque combinaison de valeurs une par une ne serait peut etre pas une bonnes idée. Par exemple il peut arriver que j'ai 12 variable dont la valeur pourrait varier de 0 à 10.000 avec un pas de 1 voir 0.1.
Je me demandais donc si certain d'entre vous connaissaient le fonctionnement d'excel. Est-ce qu'il fait la même chose à savoir tester toutes les combinaisons une par une ou y a-t-il derrière un algorithme plus efficace (ce que je pense)? Quelqu'un a-t-il des pistes concernant se sujet?
J'espere que vous aurez saisi ma requete, sinon je pourrais peut-être développer (ou meme abandonner :D)
Cordialement.
Bonne soirée
Je travail en ce moment sur un projet informatique. J'ai une sorte de solveur d'excel à coder en C#. C'est-à-dire que j'ai plusieurs variables qui varient sur d'énorme valeurs. Je me disais donc que tester chaque combinaison de valeurs une par une ne serait peut etre pas une bonnes idée. Par exemple il peut arriver que j'ai 12 variable dont la valeur pourrait varier de 0 à 10.000 avec un pas de 1 voir 0.1.
Je me demandais donc si certain d'entre vous connaissaient le fonctionnement d'excel. Est-ce qu'il fait la même chose à savoir tester toutes les combinaisons une par une ou y a-t-il derrière un algorithme plus efficace (ce que je pense)? Quelqu'un a-t-il des pistes concernant se sujet?
J'espere que vous aurez saisi ma requete, sinon je pourrais peut-être développer (ou meme abandonner :D)
Cordialement.
Bonne soirée
A voir également:
- Comment le solveur d'excel fonctionne?
- 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
- Si ou excel - Guide
3 réponses
Bonsoir,
tester toutes les combinaisons une par une
non
ou y a-t-il derrière un algorithme plus efficace
plus efficace en terme de rapidité oui, de résultat, non.
En gros, il explore avec un pas plus ou moins important.
S'il voit qu'il dépassé la solution il recule et diminue le pas pour avoir plus de précision.
Si le modèle est linéaire dans l'intervalle du pas ça va, sinon il passe à coté de la solution.
Ici un blabla sur l'alogotrithme utilisé : https://www.emse.fr/~beaune/solveur/welcome.html
Selon ton problème tu peux trouver bien plus optimisé.
Et si une solution optimisée (plus ou moins proche de la meilleure solution) est utilisable dans ton cas et si ça te suffit tu as une autre technique :
Tirer tes valeurs au hasard et conserver la meilleure. Plus tu laisses de temps de calcul, plus ça s'améliore. Ca a l'avantage d'être simple à mettre en oeuvre.
Inconvenient : si tu veux une grande précision il faudra du temps. Mais explorer toutes les solutions, vue ta description, te prendra sans doute plusieurs siècles.
Et puis tu peux l'améliorer en restreignant les branches, par exemple si tu sais que si V1<10 alors V2<30 etc
eric
tester toutes les combinaisons une par une
non
ou y a-t-il derrière un algorithme plus efficace
plus efficace en terme de rapidité oui, de résultat, non.
En gros, il explore avec un pas plus ou moins important.
S'il voit qu'il dépassé la solution il recule et diminue le pas pour avoir plus de précision.
Si le modèle est linéaire dans l'intervalle du pas ça va, sinon il passe à coté de la solution.
Ici un blabla sur l'alogotrithme utilisé : https://www.emse.fr/~beaune/solveur/welcome.html
Selon ton problème tu peux trouver bien plus optimisé.
Et si une solution optimisée (plus ou moins proche de la meilleure solution) est utilisable dans ton cas et si ça te suffit tu as une autre technique :
Tirer tes valeurs au hasard et conserver la meilleure. Plus tu laisses de temps de calcul, plus ça s'améliore. Ca a l'avantage d'être simple à mettre en oeuvre.
Inconvenient : si tu veux une grande précision il faudra du temps. Mais explorer toutes les solutions, vue ta description, te prendra sans doute plusieurs siècles.
Et puis tu peux l'améliorer en restreignant les branches, par exemple si tu sais que si V1<10 alors V2<30 etc
eric
Bonsoir,
Je vous remercie pour votre réponse, c'est très bien expliqué.
Il se trouve que mon problème n'est pas vraiment linéaire mais j'ai tout de même l'impression que le solveur trouve un solution quasiment parfaite. Mais d'après vous, il se peut qu'il passe tout de même à côté de la vrai réponse alors?
Effectivement j'ai calculé si je fais du cas par cas avec un pas fin c'est en siecle voir en millénaire que ça se compte :D
Désolé si je vous embête un petit plus. Quand vous dites "trouver plus optimisé" avez vous une idée d'une solution utilisable (je pense que la méthode de tirage au hasard ne conviendra pas).
En tout cas j vous remerci déjà pour votre réponse ; )
bonne soirée
Je vous remercie pour votre réponse, c'est très bien expliqué.
Il se trouve que mon problème n'est pas vraiment linéaire mais j'ai tout de même l'impression que le solveur trouve un solution quasiment parfaite. Mais d'après vous, il se peut qu'il passe tout de même à côté de la vrai réponse alors?
Effectivement j'ai calculé si je fais du cas par cas avec un pas fin c'est en siecle voir en millénaire que ça se compte :D
Désolé si je vous embête un petit plus. Quand vous dites "trouver plus optimisé" avez vous une idée d'une solution utilisable (je pense que la méthode de tirage au hasard ne conviendra pas).
En tout cas j vous remerci déjà pour votre réponse ; )
bonne soirée
Mais d'après vous, il se peut qu'il passe tout de même à côté de la vrai réponse alors?
Si le modèle n'est pas linéaire oui, ça peut arriver.
Par exemple tu recherches un maximum sur une courbe avec plusieurs points d'inflexion. Il peut en détecter un mais que ça ne soit pas le plus grand des maximums.
Quand vous dites "trouver plus optimisé" avez vous une idée d'une solution utilisable
Non, je pensais à toi si tu connais bien ton problème, la façon de le résoudre, et que tu sais programmer.
Mais si tu as l'impression que le solveur s'en sort bien autant rester avec.
eric
Si le modèle n'est pas linéaire oui, ça peut arriver.
Par exemple tu recherches un maximum sur une courbe avec plusieurs points d'inflexion. Il peut en détecter un mais que ça ne soit pas le plus grand des maximums.
Quand vous dites "trouver plus optimisé" avez vous une idée d'une solution utilisable
Non, je pensais à toi si tu connais bien ton problème, la façon de le résoudre, et que tu sais programmer.
Mais si tu as l'impression que le solveur s'en sort bien autant rester avec.
eric