Rappels de programmation linéaire CERMICS, ENPC Diapositives : F. Meunier, Intervenant : A. Parmentier 18 octobre 2017
Partie 1. La programmation linéaire : définition et exemples 2. Quelques propriétés théoriques 3. Algorithmes 4. Dualité iapositives : F. Meunier, Intervenant : A. Parmentier, ENPC 18 octobre 2017 2 / 43
La programmation linéaire : définition et exemples. Diapositives : F. Meunier, Intervenant : A. Parmentier, ENPC 18 octobre 2017 3 / 43
Définition Un programme linéaire est un programme qui peut s écrire sous la forme (forme inéquationnelle) Min c T x s.c. Ax b, où x, c R n, b R m et où A est une m n matrice réelle. Diapositives : F. Meunier, Intervenant : A. Parmentier, ENPC 18 octobre 2017 4 / 43
Définition c T x est la fonction objectif. Ax b sont les contraintes. x sont les variables (de décision). Tout x satisfaisant les contraintes est une solution réalisable. Tout x solution du programme est une solution optimale. Diapositives : F. Meunier, Intervenant : A. Parmentier, ENPC 18 octobre 2017 5 / 43
Représentation graphique y y = 3 x + 2y = 7 x 2x + y = 8 Diapositives : F. Meunier, Intervenant : A. Parmentier, ENPC 18 octobre 2017 6 / 43
Représentation graphique y P = {(x, y) : 2x + y 8, x + 2y 7, y 3, x 0, y 0} y = 3 P x + 2y = 7 x 2x + y = 8 Diapositives : F. Meunier, Intervenant : A. Parmentier, ENPC 18 octobre 2017 7 / 43
Représentation graphique y 4x + 5y = 8 4x + 5y = 3 4x + 5y = 20 4x + 5y = 16 x 4x + 5y = 23 Diapositives : F. Meunier, Intervenant : A. Parmentier, ENPC 18 octobre 2017 8 / 43
Représentation graphique y 4x + 5y = 22 x l optimum est atteint en (x, y ) = (3, 2) Diapositives : F. Meunier, Intervenant : A. Parmentier, ENPC 18 octobre 2017 9 / 43
Programme linéaire : on sait faire! Dans les problèmes réels : nombre de contraintes très souvent > 1000. Ni l intuition, ni le dessin peuvent alors nous tirer d affaire. Heureusement, depuis la fin des années 40, de nombreux chercheurs ont travaillé sur la programmation linéaire, et sont parvenus à la conclusion suivante : Un programme linéaire peut être résolu efficacement, tant sur le plan pratique que théorique. Diapositives : F. Meunier, Intervenant : A. Parmentier, ENPC 18 octobre 2017 10 / 43
Les trois familles d algorithme l algorithme du simplexe, trouvé par Dantzig en 1947 les ellipsoïdes, trouvé par Khachyan en 1979 l algorithme des points intérieurs, trouvé par Karmarkar en 1984 les ellispoïdes = premier algorithme polynomial pour la programmation linéaire. Diapositives : F. Meunier, Intervenant : A. Parmentier, ENPC 18 octobre 2017 11 / 43
Plan théorique, plan pratique Plan pratique De nombreux logiciels (libres et commerciaux) résolvent des programmes linéaires de grande taille. Il y a principalement deux algorithmes qui sont utilisés dans ces codes : l algorithme du simplexe et l algorithme des points intérieurs. Plan théorique La programmation linéaire est dans P : l algorithme des points intérieurs résout la programmation linéaire en temps polynomial, mais pas l algorithme du simplexe. Diapositives : F. Meunier, Intervenant : A. Parmentier, ENPC 18 octobre 2017 12 / 43
Partie 1. La programmation linéaire : définition et exemples 2. Quelques propriétés théoriques 3. Algorithmes 4. Dualité iapositives : F. Meunier, Intervenant : A. Parmentier, ENPC 18 octobre 2017 13 / 43
Quelques propriétés théoriques Diapositives : F. Meunier, Intervenant : A. Parmentier, ENPC 18 octobre 2017 14 / 43
Forme standard, forme canonique, forme inéquationnelle Forme inéquationnelle Forme standard Forme canonique Min c T x s.c. Ax b, Min c T x s.c. Ax = b, x 0 Min c T x s.c. Ax b, x 0 iapositives : F. Meunier, Intervenant : A. Parmentier, ENPC 18 octobre 2017 15 / 43
Nettoyage préliminaire Hypothèse : Nos programmes linéaires sous forme standard seront tels que les lignes de A sont linéairement indépendantes. On peut en effet toujours se ramener à une telle situation. iapositives : F. Meunier, Intervenant : A. Parmentier, ENPC 18 octobre 2017 16 / 43
Une notation Pour B {1, 2,..., n} : A B = sous-matrice de A réduite aux colonnes indicées par B. x B = sous-vecteur de x réduit aux composantes indicées par B. Exemple. B = {1, 4, 5} Si alors A = 1 2 0 3 3 1 0 8 9 3 4 4 5 6 0 7 1 1 A B = 1 3 3 0 3 4 5 7 1 Si x = (5, 4, 5, 1, 1, 2), alors x B = (5, 1, 1). Diapositives : F. Meunier, Intervenant : A. Parmentier, ENPC 18 octobre 2017 17 / 43.,
Une notation, suite Pour B {1,..., n} et N = {1,..., n} \ B Ax = b peut se voir sous la forme A B x B + A N x N = b Diapositives : F. Meunier, Intervenant : A. Parmentier, ENPC 18 octobre 2017 18 / 43
Réécriture dans une base B {1, 2,..., n} avec m éléments = base si la matrice A B est inversible. Réécrire le système Ax = b dans la base B : x B + A 1 B A Nx N = A 1 B b. La solution x du système Ax = b obtenue en posant x B := A 1 B b et x N := 0 est une solution basique. Si elle est réalisable, i.e. si A 1 B b 0, alors x est une solution basique réalisable, et B est une base réalisable. Diapositives : F. Meunier, Intervenant : A. Parmentier, ENPC 18 octobre 2017 19 / 43
Optimalité et solution basique Theorem Considérons un programme linéaire sous forme standard Alors s il y a une solution réalisable et si la fonction objectif est bornée inférieurement, alors il existe une solution optimale. s il existe une solution optimale, alors il existe une solution optimale qui soit basique réalisable. iapositives : F. Meunier, Intervenant : A. Parmentier, ENPC 18 octobre 2017 20 / 43
Un algorithme naïf On peut donc trouver l optimum en un nombre fini d opérations au plus le nombre de bases ( n m). L algorithme du simplexe exploite cette idée de façon plus astucieuse. Diapositives : F. Meunier, Intervenant : A. Parmentier, ENPC 18 octobre 2017 21 / 43
Polyèdre Un polyèdre est l intersection d un nombre fini de demi-espaces délimités par des hyperplans. Les contraintes Ax b, délimitent donc un polyèdre. De même pour ou Ax = b, x 0 Ax b, x 0 En conséquence, les solutions réalisables d un programme linéaire forment toujours un polyèdre. Diapositives : F. Meunier, Intervenant : A. Parmentier, ENPC 18 octobre 2017 22 / 43
Convexité et polytope Un polyèdre P est un ensemble convexe : si x et y sont dans P, le segment [x, y] est inclus dans P. Un polyèdre borné est un polytope. FIGURE Un polytope FIGURE Un polyèdre non borné La programmation linéaire est un cas particulier de la programmation convexe. Diapositives : F. Meunier, Intervenant : A. Parmentier, ENPC 18 octobre 2017 23 / 43
Points extrêmes Un polyèdre possède en général des points extrêmes ou sommets, qui sont les pointes, ou les piques du polyèdre. Mathématiquement, v P est un point extrême de P si pour tout x, y P, on a l implication (le segment [x, y] contient v) (v = x ou v = y). On ne peut avoir de segment inclus dans P et non réduit à un point qui contienne strictement v. iapositives : F. Meunier, Intervenant : A. Parmentier, ENPC 18 octobre 2017 24 / 43
Solutions basiques réalisables = points extrêmes Theorem Soit P l ensemble des solutions réalisables d un programme linéaire sous forme standard. Soit v P. Les deux assertions sont équivalentes : v est une solution basique réalisable. v est un point extrême de P. En particulier, on voit qu un polyèdre n a qu un nombre fini de points extrêmes. iapositives : F. Meunier, Intervenant : A. Parmentier, ENPC 18 octobre 2017 25 / 43
Optimum vision géométrique Si un programme linéaire sous forme standard admet une solution optimale, il admet en particulier une solution optimale qui est un point extrême de l ensemble des points réalisables. Si un programme linéaire (de minimisation) est réalisable mais non borné, il admet un rayon infini dans son ensemble de points réalisables le long duquel le critère peut être rendu arbitrairement petit. iapositives : F. Meunier, Intervenant : A. Parmentier, ENPC 18 octobre 2017 26 / 43
Partie 1. La programmation linéaire : définition et exemples 2. Quelques propriétés théoriques 3. Algorithmes 4. Dualité iapositives : F. Meunier, Intervenant : A. Parmentier, ENPC 18 octobre 2017 27 / 43
Algorithmes Diapositives : F. Meunier, Intervenant : A. Parmentier, ENPC 18 octobre 2017 28 / 43
Algorithme du simplexe y 4x + 5y = 22 x l optimum est atteint en (x, y ) = (3, 2) Diapositives : F. Meunier, Intervenant : A. Parmentier, ENPC 18 octobre 2017 29 / 43
L algorithme du simplexe On considère un programme sous forme standard Min c T x s.c. Ax = b, x 0 Après manipulation, ce programme se réécrit de manière équivalente Min s.c. cb T A 1 B b + (ct N ct B A 1 B A N)x N x B + A 1 B A Nx N = A 1 B b, x 0. Diapositives : F. Meunier, Intervenant : A. Parmentier, ENPC 18 octobre 2017 30 / 43
Programme dans la base B Min s.c. c T B A 1 B b + (ct N ct B A 1 B A N)x N x B + A 1 B A Nx N = A 1 B b, x 0. Avantages : on peut lire directement la solution basique réalisable associée à la base B. En effet : la solution basique réalisable est telle que x N = 0. Valeur du critère en x N = 0, précisément c T B A 1 B b. On peut voir l optimalité immédiatement. Diapositives : F. Meunier, Intervenant : A. Parmentier, ENPC 18 octobre 2017 31 / 43
Bases voisines Soient B et B deux bases réalisables. Elles sont voisines si B \ B = 1. On a alors aussi nécessairement B \ B = 1. Diapositives : F. Meunier, Intervenant : A. Parmentier, ENPC 18 octobre 2017 32 / 43
Itération générale On suppose donné une base réalisable B. Construire une base réalisable voisine B qui améliore le critère (=pivot) : se fait simplement à la lecture des entrées de c T N ct B A 1 B et de A 1 B A N. Programme sous forme équivalente ( ) Min c T B A 1 B b + c T N c T B A 1 B A N x N s.c. x B + A 1 B A N x N = A 1 B b, x 0. Recommencer. De deux choses l une : soit on termine sur une base optimale, soit à la lecture des coefficients, on voit que le programme est non borné (i.e est la valeur optimale). iapositives : F. Meunier, Intervenant : A. Parmentier, ENPC 18 octobre 2017 33 / 43 A N (1)
L algorithme des points intérieurs L algorithme des points intérieurs cherche à éviter le bord du polyèdre et reste le plus possible à l intérieur simplexe). C est seulement à la dernière étape que l algorithme atteint le bord, précisément sur une solution optimale. Consiste à considérer le coût pénalisé f µ (x) := c T x µ et à considérer le programme suivant n log x i i=1 Min f µ (x) s.c. Ax = b, x > 0, (2) où x > 0 signifie que x i > 0 pour i = 1,..., n. Diapositives : F. Meunier, Intervenant : A. Parmentier, ENPC 18 octobre 2017 34 / 43
Idée de l algorithme : faire tendre progressivement µ vers 0 et chercher la solution optimale x (µ) du programme précédent pour chaque valeur de µ successive. La suite des x (µ) tend vers l optimum. La recherche de la solution optimale x (µ) se fait en fait approximativement et utilise la solution optimale approximative du programme pour la valeur de µ précédente cette étape revient alors à une simple résolution d un système linéaire. Diapositives : F. Meunier, Intervenant : A. Parmentier, ENPC 18 octobre 2017 35 / 43
Efficacité de l algorithme des points intérieurs Complexité : O(n 3 L) où L est le nombre maximum de bits nécessaires pour coder un coefficient du programme = algorithme polynomial. nombre d itérations (nombre de µ distincts pour lequel x (µ) est approximativement calculé) = O( nl) mais en pratique cela semble plutôt être un O(log n), ce qui en fait un algorithme réellement efficace. iapositives : F. Meunier, Intervenant : A. Parmentier, ENPC 18 octobre 2017 36 / 43
Partie 1. La programmation linéaire : définition et exemples 2. Quelques propriétés théoriques 3. Algorithmes 4. Dualité iapositives : F. Meunier, Intervenant : A. Parmentier, ENPC 18 octobre 2017 37 / 43
Dualité Diapositives : F. Meunier, Intervenant : A. Parmentier, ENPC 18 octobre 2017 38 / 43
Le dual Soit un programme sous forme standard : Min c T x s.c. Ax = b, x 0 On peut définir le programme dual : Max s.c. b T y A T y c Diapositives : F. Meunier, Intervenant : A. Parmentier, ENPC 18 octobre 2017 39 / 43
Théorème faible de la dualité Si x est solution du primal et y solution du dual, alors on a le théorème faible de la dualité : c T x b T y. Rappel : grâce à cette propriété, on peut prouver l optimalité ou la qualité d une solution du primal. iapositives : F. Meunier, Intervenant : A. Parmentier, ENPC 18 octobre 2017 40 / 43
Théorème fort de la dualité Theorem (Dualité forte) Min c T x s.c. Ax = b, (P) x 0 exclusivement : 1. Ni (P), ni (D) n ont de solution réalisable. Max b T y s.c. A T y c, (D) 2. (P) est non borné et (D) n a pas de solution réalisable. 3. (D) est non borné et (P) n a pas de solution réalisable. 4. (P) et (D) sont tous deux réalisables. Ils ont alors tous deux des solutions optimales, respectivement x et y, et l on a c T x = b T y. Autrement dit, le minimum de (P) est égal au maximum de (D). iapositives : F. Meunier, Intervenant : A. Parmentier, ENPC 18 octobre 2017 41 / 43
Recette de dualisation Programme linéaire primal Programme linéaire dual Variables x 1, x 2,..., x n y 1, y 2,..., y m Matrice A A T Membre de droite b c Fonction objectif Min c T x Max b T y ième contrainte a y i 0 Contraintes = y i 0 y i R x j 0 x j 0 x j R jème contrainte a = iapositives : F. Meunier, Intervenant : A. Parmentier, ENPC 18 octobre 2017 42 / 43
Dual du dual = primal Le dual du dual est équivalent au primal. Diapositives : F. Meunier, Intervenant : A. Parmentier, ENPC 18 octobre 2017 43 / 43