Enigme

En faisant le ménage de printemps dans sa cuisine, Charlotte a trouvé dans ses placards des produits qui vont se périmer.
– 2 kg de farine
– 24 oeufs
– 500 g de beurre
– 2 litres de lait
– 500 g de chocolat
– 200 g de sucre

Elle ne sait faire que des crêpes, du gâteau au chocolat et de la mousse au chocolat.

Par contre, Charlotte est très commerçante et sait qu’elle peut vendre :
– chaque fournée de crêpes à 14 €
– un gâteau au chocolat à 10 €
– chaque fournée de mousse au chocolat à 6 €

Pour faire une fournée de crêpes, elle a besoin de :
– 250 g de farine
– 4 oeufs
– 50 g de beurre
– 0,5 l de lait

Pour un gâteau au chocolat, elle a besoin de :
– 80 g de farine
– 2 oeufs
– 60 g de beurre
– 0,1 l de lait
– 100 g de chocolat
– 100 g de sucre

Pour une fournée de mousse au chocolat, elle a besoin de :
– 3 oeufs
– 100 g de chocolat

Serez-vous capable de l’aider à optimiser son profit en lui indiquant combien de gâteaux au chocolat, de fournées de crêpes et de mousse au chocolat elle doit faire (elle ne peut pas faire de portions de fournées), tout en respectant la disponibilité de ses produits ? Quel pourra alors être son profit optimal ?

Les 3 premiers lecteurs à nous fournir la solution seront récompensés !

Solution

On peut modéliser ce problème sous forme de programme linéaire avec des variables entières. Il existe des solveurs très performants permettant de résoudre des problématiques réelles de très grande taille.

Les décisions à prendre sont :
– Le nombre de fournées de crêpes : variable v[1]
– Le nombre de gâteaux au chocolat : variable v[2]
– Le nombre de fournées de mousse au chocolat : variable v[3]
v[1], v[2], v[3] doivent être des nombres entiers (0, 1, 2, 3, etc.).

On cherche donc à maximiser la fonction : 14*v[1] + 10*v[2] + 6*v[3]

Sous les contraintes de disponibilité des produits :
Farine : 250*v[1] + 80*v[2] <= 2000
Œufs : 4*v[1] + 2*v[2] + 3*v[3] <= 24
Beurre : 50*v[1] + 60*v[2] <= 500
Lait : 0.5*v[1] + 0.1*v[2] <= 2
Chocolat : 100*v[2] + 100*v[3] <= 500
Sucre : 100 * v[2] <= 200

On trouve la solution optimale suivante :
v[1] = 3, v[2] = 2, v[3] = 2
Pour un revenu de 74€

Ce problème peut être résolu à l’aide du solveur d’Excel. Le lien ici explicite comment l’utiliser et comment l’installer le cas échéant.