Problème solveur

gainjp

XLDnaute Nouveau
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 :eek:

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

  • lait.xlsx
    10 KB · Affichages: 74

Dranreb

XLDnaute Barbatruc
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
 

Dranreb

XLDnaute Barbatruc
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)
À +
 

Dranreb

XLDnaute Barbatruc
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 !).
À +
 

gainjp

XLDnaute Nouveau
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 :eek:

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

  • lait2.xlsx
    10.1 KB · Affichages: 61
  • lait2.xlsx
    10.1 KB · Affichages: 66
  • lait2.xlsx
    10.1 KB · Affichages: 68
Dernière édition:

Dranreb

XLDnaute Barbatruc
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:

gainjp

XLDnaute Nouveau
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.
 

gainjp

XLDnaute Nouveau
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

  • lait2.xlsx
    10 KB · Affichages: 79
  • lait2.xlsx
    10 KB · Affichages: 73
Dernière édition:

Discussions similaires

Réponses
5
Affichages
202

Statistiques des forums

Discussions
312 175
Messages
2 085 953
Membres
103 058
dernier inscrit
florentLP