Cinquième partie Méthodes de points intérieurs pour la programmation linéaire 4 Notions de base Introduction L algorithme du simplexe n est pas un algorithme polynomial pour la programmation linéaire. En 979, Khachiyan a développé le premier algorithme polynomial pour la programmation linéaire : la méthode de l ellipsoïde. Impact théorique important, mais performances pratiques mauvaises. En 984, Karmarar propose les méthodes de points intérieurs : polynomiales et efficaces en pratique sur des problèmes creux de grande taille. Simplexe : se déplace de point extême en point extrême le long de la frontière du polyèdre. Il y a un nombre fini de points extrêmes algorithme combinatoire. Points intérieurs : déplacement le long de la direction admissible qui donne la meilleure amélioration de l objectif après projection sur un sous-espace linéaire). En général, direction à l intérieur du polyèdre méthode non-linéaire. Transformations projectives Considérons le problème sous forme standard : max s.c. c T x x 0 et supposons que x 0 > 0. Meilleure direction d amélioration : gradient de l objectif c. Problème si cette direction n est pas admissible peut amener à une violation de ). Une direction x est admissible pour si et seulement si x H = {x R n : Ax = 0}. Comme x 0 > 0, x 0 + α x est admissible pour α suffisamment petit. Nous voulons de plus que x soit une direction d amélioration, la plus proche possible de c projection de c sur H gradient projeté). Proposition 59 Gradient projeté). La projection x de c sur H = {x R n : Ax = 0} est x est une direction admissible : x est une direction d amélioration si x 0. x = I A T AA T ) A ) c. A x = A I A T AA T ) A ) c = Ac AA T AA T ) Ac = Ac Ac = 0. c T x = x + A T AA T ) Ac ) T x = x T x + c T A T AA T ) T A x }{{} =0 = x 2 0 60
Exemple max z = 5x +4x 2 s.c. 6x +4x 2 +s = 24 x +2x 2 +s 2 = 6 x 2 +s 3 = 2 x +x 2 +s 4 = x, x 2, s, s 2, s 3, s 4 0 Considérons le point intérieur x, x 2 ) =, ), c est-à-dire x 0 = 4 3 c T x 0 = 9. Matrice de projection : P = A T AA T ) A 0.9544 0.0992 0.39706 0.099265 0.0992 0.7647 0.0992 0.85668 0.022059 0.94853 0.43382 0.235294 = 0.39706 0.022059 0.073529 0.83824 0.022059 0.7647 0.099265 0.94853 0.83824 0.709559 0.94853 0.2948 0.0992 0.43382 0.022059 0.94853 0.85668 0.235294 0.7647 0.235294 0.7647 0.2948 0.235294 0.588235 x = c P c = Pas maximal : α = x = x 0 + α x = min i: x i<0.48387 2.00000 7.09677 0.563 0.00000 0.48387 0.05547 0.397 0.786765 0.283088 0.397 0.058824 { x0 i x i } = 8.7742 c T x = 5.49 6
Désavantages du gradient projeté Le gradient projeté x peut être très différent de la direction de meilleure amélioration le gradient c). Si le point x 0 est trop près de la frontière, il n est pas possible de faire un grand pas dans la direction x sans atteindre la frontière. Solution : éviter d être près de la frontière. Deux approches : Transformer le polyèdre de sorte que le point courant soit centré pour permettre des pas longs dans la direction du gradient projeté affine scaling). Eviter la frontière avec des fonctions barrières. 5 Affine scaling Stratégie simple pour éviter la frontière du polyèdre : scaling du modèle pour que x soit équidistant des contraintes d inégalités. A l itération de l algorithme, on définit la transformation affine T : R n R n par z = T x) = X x où X est la matrice diagonale X = x 0 0 0 x 2 0....... 0 0 x n Proposition 60. Si x 0 0 0 x 2 0 X =....... 0 0 x n et x i > 0, i =,..., n, alors, sous la transformation z X x,. e X x ; 2. si z = X x, alors x = X z ; 3. si P R n est un polyèdre, alors P X P est aussi un polyèdre de Rn et si x est un point intérieur de P, alors z = X x est un point intérieur de P. En appliquant la transformation affine à un programme linéaire sous forme standard, on obtient : max s.c. c T X z AX z = b z 0 Dans cet espace transformé, le point courant x est transformé en e e T =,,..., )), et on se trouve donc à une distance d au moins une unité de la frontière créée par les contraintes de non-négativité. Gradient projeté Soit ĉ = X c et  = AX. z = I  ) T   ) T )  ) ĉ = X c X A T AX 2 A T ) AX 2 )c. Longueur de pas : α = α min i: z i<0 { }) z i 62
avec 0 < α < pour éviter d atteindre la frontière. Le nouveau point est défini par z + = z + α z dans l espace transformé. En utilisant x + = X z +, on obtient : x + = x + α X X c X A T AX 2 A T ) AX 2 )c). Remarque : Il existe une méthode travaillant dans l espace dual dual affine scaling). Critère d arrêt Du pas primal, on peut aisément déduire une solution duale : Cette solution est admissible si et seulement si et x +, y +, t + ) est primal-dual optimal si y + = AX 2 A T ) AX 2 )c. t + = A T y + c 0, x + ) T t + = 0. Critère d arrêt t + = A T y + c 0 et x + ) T t + < ɛ. Exemple max z = 5x +4x 2 s.c. 6x +4x 2 +s = 24 x +2x 2 +s 2 = 6 x 2 +s 3 = 2 x +x 2 +s 4 = x, x 2, s, s 2, s 3, s 4 0 Considérons le point intérieur x, x 2 ) =, ), c est-à-dire x 0 = 4 3 c T x 0 = 9. Itération y = t = 0.409 0.65493.62563.0746 2.64309.62563 0.409 0.65493.62563.0746 63
x = 2.207.74465 3.7576 0.30000 0.25535.46606 Itération 2 Itération 3 Itération 4 c T x = 8.032 x T t = 9.307 y = t = x = 0.22229 3.5227 2.75226 0.38249 0.3492 0.05896 0.222292 3.52268 2.752258 0.382487 2.789078.58328 0.933020 0.044666 0.46872 2.205950 c T x = 20.278 x T t =.963 y = t = x = 0.673240 0.89735 0.43832 0.044704 0.08720 0.028694 0.673240 0.89735 0.43832 0.044704 2.92039.58403 0.405554 0.043055 0.48597 2.40736 c T x = 20.674 x T t = 0.00602 y = 0.737720 0.5625209 0.062020 0.007662 64
t = x = 0.0034962 0.0062393 0.737720 0.5625209 0.062020 0.007662 2.946970.505456 0.296352 0.0427 0.494544 2.4454 c T x = 20.757 x T t = 0.9203 6 Barrières logarithmiques 6. Introduction Idée : pénaliser la frontière x 0 par une barrière logarithmique. LP µ ) max s.c. c T x + µ n i= lnx i) x 0 et supposons que x > 0. Gradient de l objectif : Gradient projeté : c + µx e I A T AA T ) A ) c + µx e) Exemple µ=0 µ=5 µ=000 65
Conditions de Karush-Kuhn-Tucer Les conditions nécessaires d optimalité pour LP µ ) s écrivent : En posant t = µx e, on obtient le problème : c + µx e A T y = 0 A T y t = c x 0 x 0. t = µx e. Propriétés de convergence Hypothèses :. {x R n :, x > 0}. 2. {y, t) R m R n : A T y t = c, t > 0}. 3. La matrice des contraintes A est de rang m. Proposition 6. Etant donné µ > 0, il existe une solution unique xµ), yµ), tµ)) aux conditions de Karush- Kuhn-Tucer, et xµ) est la solution optimale de LP µ ). Chemin central Proposition 62. xµ), yµ), tµ)) converge vers une solution primale-duale optimale lorsque µ 0. Comme la solution des conditions de Karush-Kuhn-Tucer est unique pour tout µ > 0, la solution xµ), yµ), tµ)) trace un chemin une trajectoire) dans R n R m R n. Chemin central central path) : Γ = {xµ), yµ), tµ)) : µ > 0}. Difficultés Résoudre les conditions de Karush-Kuhn-Tucer n est pas facile à cause de l équation non-linéaire t = µx e. Idée des algorithmes path following : ne pas suivre exactement la trajectoire centrale Γ, mais rester suffisamment proche en approximant t = µx e. 6.2 Primal Path Following Nous voulons résoudre : A T y t = c x 0 t = µx e. Idée : prendre une solution approchée x, y, t ) pour µ = µ doné, telle que A T y t = c, Ax = b, et x, t > 0. Utiliser cette solution comme point de départ pour générer une nouvelle solution approchée x +, y +, t + ) par la méthode de Newton. Rappel : soit le système d équations g i x) = 0 i =,..., m où g i : R n R, g i C, i =,..., m. 66
Le pas de Newton en x est la solution x de où Dgx) est le Jacobien de g au point x. Pour notre système, le pas de Newton est la solution de Pour α suffisamment petit, le point Dgx ) x = gx ). A T y t = 0 A x = 0 t + µ X 2 x = t + µ X e. x +, y +, t + ) = x, y, t ) + α x, y, t) satisfait aussi A T y + t + = c, Ax + = b, et x +, t + > 0. Soit T la matrice diagonale correspondant à t. t + µ X 2 x = t + µ X e peut se réécrire : X t + µ X x = X T e + µ e et comme A T y t = 0, X A T y + µ X x = X T e + µ e. Multipliant à gauche par AX, et vu que A x = 0, on a : et donc AX 2 A T y = AX )X T e µ e) y = AX 2 A T ) AX )X T e µ e). De on obtient : X A T y + µ X x = X T e + µ e, x = µ X X T e µ e) µ X X A T ) y = µ X I X A T )AX 2 A T ) AX ) ) X T e µ e) et on a également : t = A T y = A T AX 2 A T ) AX )X T e µ e). Longueur de pas sélectionnée pour que x +, t + > 0, avec et x + = x + α P x t + = t + α D t y + = y + α D y αp = α αd = α min i: x i<0 min i: t i<0 { x i x i { t i t i avec 0 < α <. Le processus pourrait être itéré plusieurs fois pour générer de meilleures solutions pour un µ donné. Cependant, il est plus efficace de ne faire qu un pas de Newton à chaque itération puis diminuer µ en choisissant 0 < θ < et en posant µ + = θµ ). On peut montrer qu avec un choix approprié des paramètres, µ 0, θ et α, la méthode se termine en O nl) itérations avec L la longueur de l encodage binaire des données du primal) et qu il est possible de trouver en temps polynomial la solution optimale à partir de ce point intérieur. }) }), 67
Exemple 6.3 Dual Path Following Philosophie identique à la méthode primale, mais en utilisant une barrière pour les contraintes de non-négativité du dual. DLP µ ) min s.c. b T y + µ n i= lnt i) A T y t = c t 0 Les conditions nécessaires d optimalité pour DLP µ ) s écrivent : A T y t = c x = µt e t 0. Pour notre système, le pas de Newton est la solution de Pour α suffisamment petit, le point A T y t = 0 A x = 0 x + µ T 2 t = x + µ T e. x +, y +, t + ) = x, y, t ) + α x, y, t) satisfait aussi A T y + t + = c, Ax + = b, et x +, t + > 0. Avec des transformations similaires à la méthode primale, on obtient : y = AT 2 x = T AT ) AT )e AT 2 µ AT ) b T 2 t = A T AT 2 AT AT 2 AT ) AT ))µ e T x ) AT ) AT )e A T AT 2 µ AT ) b Exemple 68
6.4 Primal-Dual Path Following Expression des conditions de Karush-Kuhn-Tucer : Primal Path Following : Dual Path Following : t = µx e. x = µt e Primal-Dual Path Following : XT e = µe Cette forme ne correspond à aucune fonction barrière connue, mais quand µ = 0, on retrouve la contrainte des écarts complémentaires. Nous voulons résoudre : Le pas de Newton est la solution de A T y t = c XT e = µe x, t 0. A x = 0 A T y t = 0 T x + X t = X T e + µ e. Vu que A T y t = 0, on a : T x + X A T y = X T e + µ e. En multipliant par AT, et comme A x = 0, on obtient : et donc AT X A T y = AT X T e µ e), y = AT X A T ) AT X T e µ e) t = A T AT X A T ) AT X T e µ e) x = T X A T AT X A T ) AT I)X T e µ e) 69
Exemple 70