• Initiateur de la discussion Initiateur de la discussion gainjp
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

G

gainjp

Guest
Bonjour 🙂 , je suis sous excel 2010 32 bits et j'ai un problème avec l'utilisation du solveur.

Pour commencer, petite explication :

Le but est d'ici est d'optimiser le bonheur de quelqu'un.
C'est très théorique, mais on va dire que son bonheur depends de sa consommation de lait, via une fonction ln. Chaque jour, son bonheur est de ln(le nombre de verre de lait qu'il a bue).

Le but ici est d'optimiser la somme de ses bonheurs (d'aujourd'hui, de demain...)

Le soucis c'est que le lait qu'il a acheté finit par être de moins en moins bon pour finir par périmer.

Il y a donc un choix à faire entre boire maintenant pour profiter d'un lait de qualité, ou attendre pour étaler sa consommation, car boire tout maintenant et ne rien boire les jours suivants, ce n'est bien sur pas optimal. Ce fait est caractérisé ici par le fait que la fonction dite de bonheur, est ln, qui est concave.

Maintenant que vous avez je l'espère compris le problème, voici ce que j'ai fait pour le résoudre :

J'ai appellé BETA le coefficient de perte de qualité du lait -20% chaque jour, soit 0,8

La théorie m'assure qu'il devrait boire plus de lait au départ que vers la fin car la qualité y est meilleure (logique). Pourtant le solveur me trouve des choses differentes 😱

Enfin pour éviter le problème du ln(0) j'ai à chaque fois rajouter 0,01 comme vous pouvez le voir, mais je ne pense pas que le problème vienne de ça.

Je vous remercie par avance pour des pistes de correction 🙂
 

Pièces jointes

Re : Problème solveur

Bonsoir
moi j'ai trouvé ces chiffres là:
6,40800972
6,40488518
6,40098248
6,39610878
6,39001384
Mais je n'ai pas fait calculer le dernier par le solveur: c'est =C1-SOMME(C7:C10) et je n'ai pas spécifié de contrainte.
Cordialement
 
Re : Problème solveur

je ne comprends pas pourquoi ça marche ce que tu proposes.

J'ai tout de même essayé et ça ne marche pas :/ Je ne doit pas comprendre.

Tu pourrais joindre le fichier xls ?

Merci
 
Re : Problème solveur

Lorsque j'appelle le solveur sur votre feuille (du classeur converti en .xls), il me ressert les choix enregistrés dans les noms de plages à lui.
Et je vois une contrainte qui n'a pas de sens : "$C$12 = BETA"
Si je la corrige en : "$C$12 = $C$1", le solveur me trouve aussi une solution du premier coup pour C7:C11 si je mets d'abord en C12 :
Code:
=SOMME(C$7:C$11)
À +
 
Re : Problème solveur

En enlevant la correction du logarithme, le résultat s'inverse, c'est toujours très proche de 6,4 tous les jours mais un peu plus à la fin qu'au début. La décroissance rapide du logarithme à la fin est trop pénalisante. Le résultat est le même si on lui demande de maximiser le produit des 5 valeurs de la colonne E, ce qui revient au même. Une somme de logs de termes est en effet égale au log du produit des termes, qui est maxi quand le produit l'est (lait ? avec modération Gillus69 !).
À +
 
Re : Problème solveur

En effet on peut utiliser cette propriété du log, c'est bien vu.

Cependant je ne comprends pas pourquoi le solveur ne sait pas le faire directement avec la somme des log. Il conseille de tout consommer à la fin, alors qu'une solution de tout commencer au début est plus optimale est simple à trouver 😱

edit : j'ai suivi ton conseil de maximisation du produit et il me trouve pas la même chose que toi. Il me propose une conso constante, cf fichier joint.

edit 2 Comme pour toi ça marche, si je lui indique le dernier C11=C1-SOMME(C7:C10).
Mais je ne comprends pas pourquoi il lui faut ça pour que ça marche!
 

Pièces jointes

Dernière modification par un modérateur:
Re : Problème solveur

Le problème est posé d'une fçon boiteuse là: Il cherche seulement C7:C10. Dans ce cas C11 doit porter la formule =C$1-SOMME(C$7:C$10) et il ne faut pas spécifier de contrainte. Mais ça marche aussi en lui faisant bien chercher C7:C11 avec le reste comme c'est là.
Mais je viens de m'apercevoir que le problème est trivial: ou a vu que ça revenait à calculer un produit maxi... Un produit de produits ! si les Bu devaient êtres différents, peu importe à quels jours ils devraient être attribués puisque de toutes façon on calcule le produit de tout le fourbi ! comme si on calculait le produit des Bu entre eux par le produit des qualités entre elles ! Quelles que soient ce dernier, le seul moyen d'avoir un produit maxi de 5 valeurs dont la somme est imposée ...c'est qu'elles soient toutes identiques !
Donc le solveur s'arrêtait seulement à cause d'une précision suffisante demandée atteinte.
 
Dernière édition:
Re : Problème solveur

En faite je crois que c'est pas si simple que ça.

Le fait que la qualité du lait baisse fait qu'on ne cherche pas simplement à maximisé un produit (ce qui serait comme tu le dit simple, il suffit que tout les nombres soit identiques)

Il faut qu'il y a presque égalité, mais pas tout à fait à cause de la perte de qualité du lait qui fait en sorte que les quantités du débuts doivent être un peu plus grande que celle à la fin.

Et ça, en faisant C7:C11, je ne l'ai pas. Et ça commence vraiment à me rendre fou! C'était un truc que je suis sensé faire en 30 min et ça fait 3 soirs que je passes dessus.
 
Re : Problème solveur

AHHHHH!

Je viens de relire mon énoncé je l'ai mal compris.

Le beta ne corresponds pas du tout au fait que le lait est de moins en moins bon, mais que le plaisir futur nous importe moins que le plaisir immediat. Ainsi on doit non pas maximiser ln (beta*...) +ln (beta²*...) mais beta ln(...) + beta² ln(...) !

J'ai donc modifier mon programme suite à cela. Et quand je lance le solveur en mode non linéaire, il m'indique qu'il a des erreurs.
Je me suis dit que ça venait du ln (0). J'ai donc rajouter 0,01 dans le ln pour pallier à ça. Et je tombe sur une solution ou la consommation est constante! Ce qui est faux il me semble

Regarde la pièce jointe lait2.xlsx
 

Pièces jointes

Dernière modification par un modérateur:
Re : Problème solveur

Peux tu me montrer comment tu arrives à ce résultat ? (au niveau du solveur)


QUEL ANE JE SUIS! J'ai mis produit à la place de somme en F12 😱
 
Dernière modification par un modérateur:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

L
Réponses
10
Affichages
1 K
L
R
  • Question Question
Réponses
1
Affichages
887
N
Réponses
0
Affichages
680
N
B
Réponses
5
Affichages
1 K
bilbinou
B
B
Réponses
2
Affichages
992
bilbinou
B
B
Réponses
6
Affichages
1 K
I
Réponses
3
Affichages
1 K
Retour