Introduction à la programmation linéaire
Introduction par l'exemple
Un fabricant produit 2 types de yaourts à la fraise, A et B, à partir de fraises, de lait et de sucre. Chaque yaourt doit respecter les proportions suivantes de matières premières : A, 2 parts de fraises, 1 de lait et 0 de sucre ; B, 1 part de fraises, 2 de lait et 1 de sucre.
On dispose de 800 kg de fraises, 700 kg de lait et 300 kg de sucre. La vente de 1kg de yaourts A et B rapporte respectivement 4€ et 5€.
Pour maximiser le profit, on va se poser 3 questions :
- Sur quelles quantités peut-on travailler ?
- Seules valeurs non constantes : les quantités de yaourts A et B produites
- On parle de variables
- On les notera et
- Que cherche-t-on à optimiser ?
- Le profit
- Calculé à partir de et
- On parle de fonction objectif
- Quelles sont les contraintes du problème ?
Programme linéaire
Règles de réécriture
Toute contrainte d'égalité peut s'écrire comme deux inégalités :
Toute contrainte peut s'écrire comme une contrainte :
Tout problème de minimisation peut s'écrire comme un problème de maximisation (la solution optimale est la même, la valeur optimale change de signe) :
Écriture générale d'un programme linéaire
On peut écrire ainsi un programme linéaire avec variables et contraintes :
Le but est d'avoir des objectifs et contraintes linéaires de variables de décision (les coefficients et des variables sont constants). Les variables peuvent prendre n'importe quelle valeur réelle respectant les contraintes linéaires.
Résolution graphique
- Solution : affectation de valeurs aux variables
- Solution réalisable : solution dont les valeurs satisfont l'ensemble des contraintes
- Région réalisable : ensemble des solutions réalisables
Points extrêmes
S'il existe une solution optimale (et si la région réalisable possède au moins un sommet), il y a toujours une solution optimale sur un sommet (point extrême) de la région réalisable. Pour trouver l'optimum, il "suffit" d'examiner les points extrêmes de la région réalisable.
Un polyèdre convexe est l'ensemble des solutions d'un système fini d'inégalités linéaires. L'ensemble des solutions admissibles d'un PL est donc un polyèdre convexe. On s'intéressera dans un premier temps aux polyèdres bornés.
Un point d'un ensemble convexe est un point extrême de s'il n'existe pas deux points distincts et tels que .
Soit un ensemble convexe compact (fermé et borné) de et l'ensemble de ses points extrêmes. Si , alors peut s'écrire comme une combinaison convexe d'au plus éléments de .
Si le polyèdre formé par l'ensemble des solutions d'un PL est borné et non vide, alors il existe au moins une solution optimale et l'une d'elles est obtenue sur un point extrême.
Forme standard et bases
Jusqu'à présent on a utilisé la forme normale pour représenter un programme linéaire. On introduit la forme standard, qui va être utilisée dans l'algorithme du simplexe.
À partir de tout PL sous forme normale, on peut construire un PL sous forme standard, où toutes les contraintes sont des égalités. On introduit alors des variables supplémentaires , qui sont des variables d'écart positives ou nulles : devient . Chaque variable d'écart est associée à une contrainte.
On dispose d'un PL à variables et contraintes. Si on annule variables (variables hors base), on obtient un système de équations à inconnues (variables de base). Si la matrice associée est de rang , le système admet une solution unique, appelée solution de base. Pour résoudre le système obtenu : pivot de Gauss.