Programmation Linéaire - Cours 3 P. Pesneau pierre.pesneau@math.u-bordeaux1.fr Université Bordeaux 1 Bât A33 - Bur 265
Sommaire 1 2 3 4
Comparaison des notations Notation algébrique : z = z + j N c jx j x i = b i j N āi,jx j pour tout i B Notation matricielle : Max z = c B B 1 b +(c N c B B 1 N)x N s.c. Ix B +B 1 Nx N = B 1 b x B, x N 0 z = c B B 1 b ( c j ) j B = 0 ( c j ) j N = c N c B B 1 N ( b i ) i=1,...,m = B 1 b (ā i,j ) i=1,...,m = e k pour j = k eme indice de B (ā i,j ) i=1,...,m = B 1 N.,j pour tout j N
Dictionnaire initial : Max 4x 1 + 5x 2 + 0x 3 + 0x 4 + 0x 5 = z 2x 1 + 1x 2 + 1x 3 + 0x 4 + 0x 5 = 800 1x 1 + 2x 2 + 0x 3 + 1x 4 + 0x 5 = 700 0x 1 + 1x 2 + 0x 3 + 0x 4 + 1x 5 = 300 Dictionnaire final : Max 0x 1 + 0x 2 1x 3 2x 4 + 0x 5 = z 2200 0x 1 + 0x 2 + 1 3 x 3 2 3 x 4+ 1x 5 = 100 1x 1 + 0x 2 + 2 3 x 3 1 3 x 4+ 0x 5 = 300 0x 1 + 1x 2 1 3 x 3+ 2 3 x 4+ 0x 5 = 200 On en déduit B = {5, 1, 2} et N = {3, 4}.
A partir du dictionnaire initial : Max 4x 1 + 5x 2 + 0x 3 + 0x 4 + 0x 5 = z 2x 1 + 1x 2 + 1x 3 + 0x 4 + 0x 5 = 800 1x 1 + 2x 2 + 0x 3 + 1x 4 + 0x 5 = 700 0x 1 + 1x 2 + 0x 3 + 0x 4 + 1x 5 = 300 B = 0 2 1 0 1 2 1 0 1, N = 1 0 0 1 0 0 c B = (0, 4, 5), c N = (0, 0), b = 800 700 300
A partir d un dictionnaire (ici le dictionnaire final) : Max 0x 1 + 0x 2 1x 3 2x 4 + 0x 5 = z 2200 0x 1 + 0x 2 + 1 3 x 3 2 3 x 4+ 1x 5 = 100 1x 1 + 0x 2 + 2 3 x 3 1 3 x 4+ 0x 5 = 300 0x 1 + 1x 2 1 3 x 3+ 2 3 x 4+ 0x 5 = 200 B 1 N = c N = c N c B B 1 N = ( 1, 2), 1 3 2 3 2 3 1 3 1 3 On peut également noter : 2 3 B 1 A E = B 1 I = B 1 =, B 1 b = 1 100 300 200 3 2 3 1 2 3 1 3 0 1 3 2 3 0 et P. Pesneau que pierre.pesneau@math.u-bordeaux1.fr Programmation Linéaire - Cours 3
Sommaire 1 2 3 4
finitude du simplex Theorem Si l algorithme du simplex ne termine pas, c est qu il cycle entre bases dégénérées. Preuve : Supposons qu il n y a pas de dégénérescence. Amélioration stricte de l objectif, on ne peut donc pas visiter deux fois la même base. Comme le nombre de bases (et donc de dictionnaires) est fini, l algorithme s arrête après un nombre fini d itérations. Par conséquent, si l algorithme ne finit pas, c est qu il y a dégénérescence et l algorithme cycle entre des bases dégénérées.
finitude du simplex Theorem L algorithme du simplex termine si, à chaque itération, les variables entrante et sortante sont choisies parmi les candidats possibles selon la règle du plus petit indice. Preuve : voir Chvatal, Linear Programming, pp 37-38. Remarque : Pour converger, il suffit d appliquer les règles ci-dessus quand on constate un certain nombre d itérations dégénérées.
Theorem Tout programme linéaire (mis sous la forme standard) est : soit irréalisable. soit non borné. soit il admet une solution optimale. Remarque : Ce théorème n est pas vérifié pour un problème avec des inégalités strictes dy type j a i,jx j < b i. Par exemple, le problème Max x : x < 0 n est ni irréalisable, ni non borné, mais n admet pas de solution optimale.
Theorem Si un programme linéaire (sous forme standard) admet une solution réalisable, alors il existe une solution de base réalisable. Si un programme linéaire admet une solution optimale, alors il existe une solution de base optimale.
Sommaire 1 2 3 4
Rappel sur la complexité La complexité d un algorithme correspond à l effort fournit par celui-ci pour résoudre un problème. Comment évaluer la complexité? Temps de calcul : mauvaise idée, il dépend de la machine. Nombre d opérations élémentaires (addition, multiplication, comparaison,...) : execution en temps constant. Le nombre d opérations effectuées (la complexité) est fonction de la taille du problème. Plus particulièrement, on s intéresse à l ordre de grandeur de l effort de calcul requis quand la taille du problème devient grande. La taille d un problème peut se définir comme la quantité d information nécessaire pour spécifier le problème à résoudre (taille du fichier de données).
Différentes complexités Analyse empirique : la complexité est estimée en pratique (tests intensifs). Analyse du meilleur des cas : calcule une borne inférieure de la complexité (représente rarement la réalité). Analyse de la complexité moyenne : estime l effort de calcul moyen (basée sur des hypothèses probabilistes, analyse complexe). Analyse du pire des cas : calcule une borne supérieure sur le nombre d opérations.
Comparaison asymptotique : notation de Landau O(g(n)) = {f(n) : C 0 IR +,N 0 IN/ f(n) C 0 g(n), n > N 0 } Ω(g(n)) = {f(n) : C 0 IR +,N 0 IN/ C 0 g(n) f(n), n > N 0 } Θ(g(n)) = {f(n) : C 1, C 2 IR +,N 0 IN/ C 1 g(n) f(n) C 2 g(n), n > N 0 }
d un algorithme Notations : T(I) : nombre d opérations pour résoudre une instance I. l(i) : taille du fichier de données décrivant I. T(n) : nombre max d opérations pour résoudre un problème de taille n. Compléxité : T(n) = max I {T(I) : l(i) = n} Algorithme polynomial : T(n) O(n k ) Bon algorithme, algorithme efficace. Algorithme exponentiel : T(n) Ω(α n ), α > 1.
Taux de croissance Temps pour un ordinateur de 1GHz taille n Compl. 10 20 30 40 50 60 n 110 8 210 8 310 8 410 8 510 8 610 8 sec. sec. sec. sec. sec. sec. n 2 110 7 410 7 910 7 1610 7 2510 7 3610 7 sec. sec. sec. sec. sec. sec. n 3 110 6 810 6 2710 6 6410 6 12510 6 21610 6 sec. sec. sec. sec. sec. sec. n 5 110 3 3.210 3 24.310 3 110 1 3.110 1 7.810 1 sec. sec. sec. sec. sec. sec. 2 n 110 6 110 3 1 18 313 36.5 sec. sec. sec. min. heures ans 3 n 5.910 5 3.5 2.4 3.8 22.710 3 1.310 9 sec. sec. jours siècles mill. mill.
du simplex Pire des cas : Le simplex se termine après un nombre fini d itérations ( C m n+m). Pour toutes les règles de pivotage connues, on connait des exemples pathologiques qui demandent effectivement de l ordre de C m n+m itérations (nombre exponentiel). On ne connait pas de règle de pivotage qui permette d atteindre la solution de base optimale en ne faisant qu un nombre polynomial d itérations. Empiriquement : Les tests numériques révèlent que l algorithme du simplex demande en pratique un nombre d opération de l ordre de Θ(m+logn)
Paradoxe sur la complexité du simplex Conjecture de Hirsch : Pour un polyèdre déterminé comme l intersection de m hyperplans dans un espace à n dimensions, la longueur du plus court chemin entre deux points extrêmes donnés est au plus m n. Même si cette conjecture était vraie, cela ne donnerait pas nécessairement l espoir de l existence d une règle de pivotage polynomiale pour l algorithme du simplex. (Le plus court chemin ne suit pas forcement un objectif croissant.) La question de l existence d une version polynomiale du simplex reste ouverte. Il est possible de résoudre un PL en temps polynomial avec une méthode de point intérieur.
Sommaire 1 2 3 4
Motivation Obtenir une borne supérieure sur le profit maximum Toute solution réalisable donne une borne inférieure (LB) sur le profit maximal. Une borne supérieure (UB) est utile pour juger de la qualité d une solution réalisable (voir de prouver son optimalité si LB = UB). Remarque : Toute combinaison linéaire de contraintes du programme linéaire donne une contrainte valide (satisfaite par toutes les solutions réalisables)
Exemple du yaourt Max 4x 1 + 5x 2 2x 1 + x 2 800 (1) x 1 + 2x 2 700 (2) x 2 300 (3) x 1, x 2 0 5 (1) 4x 1 +5x 2 10x 1 +5x 2 4000 4 (2) 4x 1 +5x 2 4x 1 +8x 2 2800 2 (1)+3 (3) 4x 1 +5x 2 2500 Problème : Trouver les meilleurs coefficients multiplicatifs pour chaque contrainte afin d obtenir la meilleure borne supérieure.
Modélisation du problème A chaque contrainte i = 1,..., 3, on associe une variable y i. La combinaison linéaire doit être telle que le coefficient obtenu pour chaque variable doit être plus grand que le coefficient de la variable dans l objectif. On cherche à minimiser le membre de droite de la contrainte issue de la combinaison linéaire.
Modélisation du problème Max 4x 1 + 5x 2 2x 1 + x 2 800 (y 1 ) x 1 + 2x 2 700 (y 2 ) x 2 300 (y 3 ) x 1, x 2 0 Min 800y 1 + 700y 2 + 300y 3 2y 1 + y 2 4 y 1 + 2y 2 + y 3 5 y 1, y 2, y 3 0 Solution optimale : y 1 = 1, y 2 = 2, y 3 = 0 et UB = 2200.
Primal / Dual Les PL vont toujours par paires : Primal : max j c jx j s.c. j a i,jx j b i x j 0 pour i = 1,..., m pour j = 1,..., n Dual : min s.c. i b iy i i a i,jy i c j y i 0 pour j = 1,..., n pour i = 1,..., m
: Théorèmes Theorem faible : Pour toute solution réalisable x du problème primal et toute solution réalisable y du problème dual, on a n c j x j j=1 m b i y i. i=1 Theorem forte : Si le primal a une solution optimale x = (x 1,..., x n), alors le dual a une solution optimale y = (y 1,..., y m) telle que n c j xj = j=1 m i=1 b i y i.
Interprétation économique du dual Sans ressource, le profit serait nul. L idée est d essayer d évaluer la contribution de chaque ressource au profit observé. Dans ce contexte, les variables y i 0 pour i = 1,..., m représentent les valeurs unitaires des ressources i : y i est la mesure de la contribution d une unité de i dans le profit. C est donc aussi le prix auquel on évalue la ressource i (prix auquel on serait prêt à vendre la ressource au lieu de l utiliser).
Interprétation économique du dual Un système de prix y (auquel on serait prêt à vendre nos ressources) pour être acceptable doit compenser le profit qu on aurait pu faire en utilisant ces ressources. Il faut i a i,jy i c j pour j = 1,..., n ce qu on interprète aussi comme le fait que la valeur des ingrédients doit justifier entièrement le profit attribué à chaque produit. L acheteur de nos ressources veillera à minimiser le coût total d achat Minimiser i b iy i
Int. éco. de la solution optimale du dual x B 2x A +x B 800 x B 300 00 11 x A +2x B 700 x A
Int. éco. de la solution optimale du dual x B 2x A +x B 800 x B 300 00 11 x A +2x B 700 x A
Int. éco. de la solution optimale du dual x B 2x A +x B 800 01 00 11 x B 300 x A +2x B 700 x A
Int. éco. de la solution optimale du dual x B 2x A +x B 800 01 00 11 x B 300 x A +2x B 700 x A
Int. éco. de la solution optimale du dual x B 2x A +x B 800 01 00 11 x B 300 x A +2x B 700 x A
Int. éco. de la solution optimale du dual x B 2x A +x B 800 x B 300 00 11 x A +2x B 700 x A
Int. éco. de la solution optimale du dual x B 2x A +x B 800 x B 300 00 11 x A +2x B 700 x A
Int. éco. de la solution optimale du dual A l optimum : z = j c jxj j a i,jxj b i = i b iyi et i a i,jyi c j Les multiplicateurs optimaux (solution optimale du dual) expliquent la responsabilité de chacune des contraintes de capacité en ressource dans la limitation du profit. Ces valeurs duales indiquent localement de combien augmenterait le profit par unité d augmentation des ressources associées. yi est une mesure de l augmentation marginale du profit par unité d augmentation de b i. y i = lim ǫ 0 z (b i +ǫ) z (b i ) ǫ
Theorem Si le problème max P s.c. j c jx j j a i,jx j b i i = 1,..., m x j 0 j = 1,..., n admet une solution de base optimale non dégénérée de valeur z, alors ǫ > 0 tel que si t i ǫ pour i = 1,..., m, le problème max P j c jx j s.c. j a i,jx j b i +t i i = 1,..., m x j 0 j = 1,..., n admet une solution optimale dont la valeur est z + m i=1 t iy i où y est la solution (unique) au problème dual.