PL - Cours 2
On dispose d'un formalisme pour modéliser des problèmes réels : la programmation linéaire. On a appris à résoudre le problème à la main en deux dimensions. Intuition pour résoudre en dimension supérieure : se déplacer de sommet en sommet du polyèdre convexe formé par les contraintes linéaires.
Résumé : Forme standard, points extrèmes et bases
Les variables supplémentaies sont appelées variables d'écart. Chaque variable d'écart est associée à une contrainte.
On dispose d'un problème linéaire à variables et contraintes. Si on annule variables, on obtient un système de équations à inconnues. Si la matrice associée est de rang (base), le système admet une solution unique. Pour résoudre le problème obtenu : pivot de Gauss.
Si on a une base réalisable, on a un point extrême c'est à dire une solution dominante. Pour calculer les valeurs des variables pour ces points on utilise le pivotage. Il reste à voir comment trouver une première base réalisable et comment passer d'une base réalisable à une autre.
Algorithme du simplex
Base initiale
Calculons une solution initiale simple
![plexemple]
Choix de la base initiale : annuler les variables de décisions, ne garder que les variables d'écart
Exemple pas à pas
Réécrivons notre problème en fonction de notre base
On parle de forme canonique, et les éléments de la base sont chacun exprimés en fonction d'une constante et des variables hors de la base. En affectant la valeur 0 aux variables hors base, le système se résout directement.
Comment améliorer la solution ? En augmentant ou (on choisit ) mais jusqu'où augmenter ? On sait que . En posant , on annule qui sort de la base.
On remplace par dans la base
Puis on remet le PL sous forme cannonique
Peut on améliorer la solution ? Oui car a un coefficient positif. Jusqu'où augmenter ? On sait que . En posant , on annule qui sort de la base
On remplace par en base et on réecrit le PL sous forme cannonique
Peut on améliorer la solution ? Oui car a un coefficient positif. Jusqu'où augmenter ? On sait que . En posant on annule qui sort de la base.
On remplace par en base et on écrit le PL sous forme canonique.
Peut-on améliorer la solution ? Non car tous les coefficients sont négatifs dans l'objectif. La solution obtenue est donc et donc .
Description formelle de la méthode
Problème linéaire avec les variables d'écart et la variable objectif
Dictionnaires
A chaque itération, la solution courant est associée à un système d'équations qui la définit
Ce système s'appelle un dictionnaire. Les variables de gauche sont appelées variables de base et notées . L'ensemble des variables en base est appelé base. représente les indices des variables en base. Les variables qui ne sont pas dans la base, sont appelées variables hors base et notées . représente l'ensemble des indices des variables hors-base.
- et forment une partition de l'ensemble des indices
- Chaque dictionnaire définit une solution de base que l'on obtient en posant
- Un dictionnaire est réalisable si la solution de base associée est telle que
Dictionnaire initial
- La base initiale est formée des variables d'écart , c'est à dire
- Les variables hors-base sont les variables initiales du problème,
- Attention la base initiale peut ne pas être réalisable. On verra plus tard ce qu'il faut faire dans ce cas.
Itération (pivotage)
- A chaque itération de l'algorithme du simplex, une variable hors-base va entrer dans la base, tandis qu'une variable en base sortira de la base, c'est le pivotage
- Cette opération revient à se déplacer d'un point extrême à un point extrême voisin le long d'une arête du polyèdre
Choix de la variable entrante
Les coefficients sont appelés les coûts réduits. Ils représentent l'impact de l'augmentation d'une variable sur l'objectif. La solution de base est optimale si et seulement si tous les coûts réduits sont négatifs ou nul : .
On choisit une variable de dont le coût réduit est positif. Il peut y avoir plusieurs variables candidates pour entrer en base. La règle de pivotage permet de choisir laquelle va entrer en base.
Choix de la variable sortante
Supposons que la variable est choisie pour entrer en base. Le vecteur formé par les coefficients indique l'impat sur les variables en base de l'augmentation de la variable .
-
Si , augmenter entraine une augmentation de
-
Si , augmenter entraine une diminution de , il faut tout de même faire attention à la positivité de
La variable qui sort de la base est la première variable à s'annuler lorsque (la variable entrante) augmente
Il peut y avoir plusieurs variables candidates pour sortir de la base. Si c'est le cas, la base est suivante sera dégénérée.
Le problème peut être non borné, si pour tout , il n'y a pas de candidat pour sortir de la base et le problème est non borné.
Pivotage
Mise à jour du système
- On entre la variable en base et on sort
- On élimine de l'epression de
- On élimine de l'expression des
Il reste à reconstruire le système d'équation ci-dessus pour la nouvelle base. C'est le pivotage