Programmation linéaire
21
5. Introduction à la programmation linéaire
La programmation linéaire est une branche de l'optimisation permettant de résoudre de nombreux problèmes économiques et industriels.
5.1.
L'artisan chocolatier
À l'approche des fêtes de Pâques, un artisan chocolatier décide de confectionner des œufs en chocolat. En allant inspecter ses réserves, il constate qu'il lui reste 18 kg de cacao, 8 kg de noisettes et 14 kg de lait. Il a deux spécialités : l'œuf Extra et l'œuf Sublime. Un œuf Extra nécessite 1 kg de cacao, 1 kg de noisettes et 2 kg de lait. Un œuf Sublime nécessite 3 kg de cacao, 1 kg de noisettes et 1 kg de lait. Il fera un profit de 20 fr. en vendant un œuf Extra, et de 30 fr. en vendant un œuf Sublime. Combien d'œufs Extra et Sublime doit-il fabriquer pour faire le plus grand bénéfice possible ? Formulation du problème Notons x1 le nombre d'œufs Extra et x2 le nombre d'œufs Sublime à produire. Le chocolatier cherche à maximiser la fonction objectif :
Remarque Le chocolat est composé de beaucoup plus d'ingrédients (notamment du sucre), mais, pour la clarté de l'exemple, on s'est ici limité à trois.
C'est l'expression du bénéfice.
max z = 20x1 + 30 x2 Étant données les réserves du chocolatier, les contraintes suivantes devront être satisfaites :
L'artisan ne peut pas utiliser plus de : 18 kg de cacao 8 kg de noisettes 14 kg de lait. Il ne peut pas produire un nombre négatif d'œufs !
{
x1 x1 2 x1
3 x2 x2 x2
≤ ≤ ≤
18 8 14
Évidemment, on a encore les deux contraintes : x1 ≥ 0 et x2 ≥ 0. Une inéquation définit un demi-plan où la condition est satisfaite (voir chapitre 4).
Démarche 1. On dessine les demi-plans des contraintes. On trace la droite frontière et on indique par un petit triangle le demi-plan défini par l'inéquation (la droite frontière est obtenue en remplaçant ≤ par =). 2. On détermine le domaine D définissant l'ensemble des points satisfaisant toutes les