etude bibliographique sur la programmation...

88
Etude Bibliographique sur la Programmation Linéaire Rapport pour l’Etude Métiers « Algorithmes de Programmation Linéaire Embarquable pour le Rendez-Vous Orbital » Convention CNES N˚104057/00 Note NT 1.0 Version 1.0 D. Arzelier, N. Jozefowiez, P. Lopez, C. Louembet CNRS; LAAS; 7 avenue du colonel Roche, F-31077 Toulouse, France Université de Toulouse; UPS, INSA, INP, ISAE; LAAS; F-31077 Toulouse, France

Upload: trinhdien

Post on 14-Sep-2018

229 views

Category:

Documents


0 download

TRANSCRIPT

Etude Bibliographique sur la Programmation

LinéaireRapport pour l’Etude Métiers « Algorithmes de Programmation

Linéaire Embarquable pour le Rendez-Vous Orbital »Convention CNES N 104057/00

Note NT 1.0Version 1.0

D. Arzelier, N. Jozefowiez, P. Lopez, C. LouembetCNRS ; LAAS ; 7 avenue du colonel Roche, F-31077 Toulouse, France

Université de Toulouse ; UPS, INSA, INP, ISAE ; LAAS ; F-31077 Toulouse, France

Notations

- N : ensemble des nombres entiers ;- Z : ensemble des nombres relatifs ;- R : ensemble des nombres réels ;- co A1, · · · , AN : enveloppe convexe des N éléments A1, · · · , AN ;- ∂A : frontière de l’ensemble A ;- S+

n : cône des matrices semi définies positives de dimension n ;- S++

n : cône des matrices définies positives de dimension n ;- P : polyèdre des points réalisables pour un problème primal de PL ;- P+ : intérieur du polyèdre des points réalisables pour un problème primal de PL ;- D : polyèdre des points réalisables pour un problème primal de PL ;- D+ : intérieur du polyèdre des points réalisables pour un problème primal de PL ;- A ≺ B : ordre partiel de Löwner défini dans S++

n i.e. B −A ∈ S+n ;

- u v : inégalité large composante par composante pour les vecteurs u ∈ Rn et v ∈ Rn ;- ∇U : vecteur gradient de la fonction scalaire U : Rn → R

- ∇g : matrice gradient du champ de vecteur ~g : Rn → R

n ;- ut : vecteur transposé du vecteur u ∈ Rn ;- At : matrice transposée du vecteur A ∈ Rm×n ;- A−t : matrice transposée de l’inverse de la matrice A ;- Aj : colonne j de la matrice A ∈ Rm×n ;- Aj : ligne j de la matrice A ∈ Rm×n ;- Om×n : matrice nulle de dimension m par n ;- Im : matrice identité de dimension m ;- 1m : vecteur de Rm composé de 1 ;- ei : vecteur unitaire de la base canonique avec 1 sur la ième composante et 0 ailleurs ;- e : vecteur tel que e =

[

1 · · · 1]t ∈ Rn ;

- diag(x1, · · · , xn) : matrice diagonale dont l’élément diagonal i, i est xi ;- EI∈I [·] : opérateur espérance mathématique ;

1

2 Notations

Table des matières

1 Introduction 51.1 Définition et formulations des problèmes de programmation linéaire . . . . . . . . . 51.2 Variations sur le problème de programmation linéaire . . . . . . . . . . . . . . . . . 81.3 Quelques éléments historiques et notes bibliographiques . . . . . . . . . . . . . . . 9

2 Théorie de la programmation linéaire 112.1 Géométrie de la programmation linéaire . . . . . . . . . . . . . . . . . . . . . . . . 11

2.1.1 Ensembles convexes, cônes, hyperplans, polyèdres et polytopes . . . . . . . 112.1.2 Points extrêmes, sommets, solutions réalisables de base d’un polyèdre . . . 142.1.3 Cas des polyèdres sous forme standard . . . . . . . . . . . . . . . . . . . . . 162.1.4 Dégénérescence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182.1.5 Existence et optimalité des points extrêmes . . . . . . . . . . . . . . . . . . 19

2.2 Théorie de la dualité . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212.2.1 Construction du dual d’un programme linéaire . . . . . . . . . . . . . . . . 212.2.2 Théorème fondamental de la dualité . . . . . . . . . . . . . . . . . . . . . . 232.2.3 Théorème des écarts complémentaires . . . . . . . . . . . . . . . . . . . . . 252.2.4 Solution de base duale et dégénérescence duale . . . . . . . . . . . . . . . . 282.2.5 Analyse de sensibilité . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

2.3 Théorie de la complexité et programmation linéaire . . . . . . . . . . . . . . . . . . 302.3.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 302.3.2 Complexité d’un algorithme et d’un problème . . . . . . . . . . . . . . . . . 312.3.3 Classes de complexité . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32

3 Algorithme du simplexe 353.1 Cas favorable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35

3.1.1 Initialisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 363.1.2 Invariants de boucle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 373.1.3 L’itération principale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 373.1.4 Quelques remarques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 393.1.5 Fin de l’exemple . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 393.1.6 Programme sous forme canonique associé à un tableau simplicial . . . . . . 39

3.2 Cas d’arrêt particuliers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 403.2.1 Problèmes bornés . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 403.2.2 Problèmes non bornés . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 413.2.3 Sommets multiples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 413.2.4 Le problème de l’arrêt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 413.2.5 Complexité de l’algorithme . . . . . . . . . . . . . . . . . . . . . . . . . . . 42

3.3 Problèmes de démarrage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 423.4 Récapitulatif de l’algorithme du simplexe . . . . . . . . . . . . . . . . . . . . . . . 45

3.4.1 Phase 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 453.4.2 Phase 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46

3.5 Algorithme du simplexe dual . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46

3

4 Table des matières

4 Méthodes du point intérieur 494.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49

4.1.1 Rappels sur les conditions d’optimalité de Karush-Kuhn-Tucker . . . . . . . 504.1.2 Fonction barrière logarithmique et chemin central . . . . . . . . . . . . . . . 504.1.3 Classification des méthodes du point intérieur . . . . . . . . . . . . . . . . . 54

4.2 Méthodes Primales-Duales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 554.2.1 Cadre de travail . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 554.2.2 Méthodes de suivi du chemin central . . . . . . . . . . . . . . . . . . . . . . 57

4.2.2.1 Méthodes de suivi de chemin à pas courts . . . . . . . . . . . . . . 594.2.2.2 Méthodes de Prédiction/Correction . . . . . . . . . . . . . . . . . 614.2.2.3 Méthodes de suivi de chemin à pas longs . . . . . . . . . . . . . . 64

4.2.3 Méthodes de réduction de potentiel . . . . . . . . . . . . . . . . . . . . . . . 664.2.3.1 Algorithme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 674.2.3.2 Convergence et complexité polynomiale . . . . . . . . . . . . . . . 67

4.2.4 Itéré initial et détection de programme irréalisable . . . . . . . . . . . . . . 694.2.4.1 Problème homogène auto-dual . . . . . . . . . . . . . . . . . . . . 704.2.4.2 Méthode de suivi de chemin à itérés non admissibles . . . . . . . . 72

A Méthodes du point intérieur historiques 75A.1 La méthode de Karmarkar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75A.2 Méthode de mise à l’échelle affine . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77A.3 Problème de complémentarité linéaire . . . . . . . . . . . . . . . . . . . . . . . . . 78

A.3.1 Problème de complémentarité linéaire monotone . . . . . . . . . . . . . . . 78A.3.2 Problème de complémentarité linéaire mixte . . . . . . . . . . . . . . . . . . 79

A.4 Rappels sur la méthode de Newton . . . . . . . . . . . . . . . . . . . . . . . . . . . 81A.5 Minimisation linéaire sous contrainte de norme . . . . . . . . . . . . . . . . . . . . 83Références . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84

Chapitre 1

Introduction

1.1 Définition et formulations des problèmes de programma-

tion linéaire

Un problème de programmation linéaire consiste à maximiser ou à minimiser une fonctionlinéaire z = f1 x1 + · · · + fn xn où x ∈ Rn est le vecteur des variables de décision appartenant àun domaine P décrit par des contraintes linéaires qui peuvent être des égalités et/ou des inégalitéslarges (1.1).

A1 x1 +A2 x2 + · · ·+An xn = aB1 x1 +B2 x2 + · · ·+Bn xn bC1 x1 + C2 x2 + · · ·+ Cn xn c

xi ≥ 0 ∀ i ∈ N1

xi ≤ 0 ∀ i ∈ N2

(1.1)

où Aj ∈ Rp, a ∈ Rp, Bj ∈ Rq, b ∈ Rq, Cj ∈ Rr, c ∈ Rr, N1 et N2 sont des sous-ensembles de1, · · · , n. Si i n’appartient ni à N1 ni à N2 alors la variable de décision xi est libre en signe. Lesystème (1.1) définit un domaine P appelé domaine des solutions réalisables. x ∈ P est une solutionréalisable. z = f tx est appelé la fonction objectif ou fonction économique. Les composantes fi sontles coûts.

Soit x ∈ P une solution réalisable alors une contrainte d’inégalité B1j x1 + · · ·+Bn

j xn ≤ bj estdite active si B1

j x1 + · · ·+Bnj xn = bj sinon elle est dite inactive.

Un problème de programmation linéaire se présente donc sous sa forme matricielle la plusgénérale :

[max] ou [min] f t xsous

Ax = aB x bC x cxi ≥ 0 ∀ i ∈ N1

xi ≤ 0 ∀ i ∈ N2

(1.2)

Remarque 1Un problème de maximisation max f tx pouvant toujours être résolu comme le problème de mi-nimisation min −f tx, nous adoptons la convention du minimum pour tous les problèmes abordésdans la suite de ce rapport.

Définition 1 (solution optimale-coût optimal)On appelle solution optimale toute solution réalisable x∗ pour laquelle la fonction coût est optimale(f tx∗ ≤ f tx, ∀ x ∈ P). f tx∗ est le coût optimal ou optimum.

5

6 Introduction

Exemple 1 (Commande optimale en temps discret)Considérons un système dynamique dont le modèle d’état en temps discret est donné par :

xk+1 = Fxk +Guk, x0 = xyk = Mxk

(1.3)

où xk ∈ Rn est le vecteur d’état à l’instant k, uk ∈ R

m est le vecteur de commande à l’instant ket yk ∈ R est la sortie mesurée à l’instant k. On suppose que le vecteur de commande doit vérifierles contraintes linéaires à chaque instant :

Hkuk hk, ∀ k = 0, · · · , T − 1 (1.4)

où Hk ∈ Rlk×m, h ∈ Rlk .Connaissant x0 = x, le problème de commande optimale associé est de déterminer la séquence de

commande u0, u1, · · · , uT−1 amenant l’état final xT en l’origine 0 de l’espace d’état en minimisantla sortie du système à chaque instant.

maxk=0,··· ,T−1

|yk| (1.5)

Un tel problème de commande optimale peut être modélisé comme le problème de programmationlinéaire suivant :

minv, xk, yk, uj

k = 1, · · · , T − 1j = 0, · · · , T − 1

v

sous−v ≤ yk ≤ v ∀ k = 1, · · · , T − 1xk+1 = Fxk +Guk ∀ k = 0, · · · , T − 1yk = Mxk ∀ k = 1, · · · , T − 1Hkuk hk ∀ k = 0, · · · , T − 1

(1.6)

Le problème (1.6) peut être aisément reformulé en le problème (1.2) avec les notations suivantes(le vecteur des variables de décision est noté X pour le distinguer du vecteur d’état du systèmedynamique) :

f =

10...0

X =

vx1

...xT−1

y1...

yT−1

u0

...uT−1

A =

[

A

A

]

a =

−Fx0

O

...

...O

xT

O

...O

B =

[

B

B

]

b =

O

...O

h0

...hT−1

(1.7)c = O(T−1)×1 C =

[

1 O(T−1)×(T−1) IT−1 O(T−1)×(T−1)

]

(1.8)

avec :

A =

O −I O O · · · O G O · · · · · · O

O F −I O O · · · O G O · · · O

.... . .

. . .. . .

. . .. . .

. . .. . .

. . .. . .

...O · · · O F −I O · · · · · · · · · G O

O · · · · · · O F O O · · · · · · O G

(1.9)

Définitions et formulations 7

A =

O M O O · · · O −1 O · · · · · · O

O O M O O · · · O −1 O · · · O

.... . .

. . .. . .

. . .. . .

. . .. . .

. . .. . .

......

. . .. . .

. . .. . .

. . .. . .

. . .. . .

. . . O

O · · · · · · · · · O M O · · · · · · O −1

(1.10)

B =[

−1T−1 O(T−1)×(T−1) IT−1 O(T−1)×T

]

(1.11)

B =

O · · · O H0 O O

.... . .

. . .. . .

. . . O

O · · · · · · · · · O HT−1

(1.12)

Lorsque P ⊂ R2, il est possible d’utiliser une méthode graphique afin de résoudre le problèmede programmation linéaire en deux variables. Nous nous servirons de ce cas afin d’illustrer lesdifférentes notions présentées dans ce rapport.

Exemple 2 (2D)Soit l’exemple suivant de problème de programmation linéaire en deux dimensions :

J∗ = maxx,y

2x+ y = minx,y

−2x− y

sous x ≥ 0y ≥ 0x ≤ 2y ≤ 2x+ y ≤ 3

(1.13)

y

x

1

1 2

2

0

(x∗, y∗) = (2, 1)

J∗ = 5

ff

P

Figure 1.1 – Domaine réalisable et solution optimale pour le problème (1.13)

La figure 1.1 permet d’illustrer clairement l’ensemble des notions qui seront présentées dans lasuite de ce rapport et qui sont résumées brièvement par :

- Chaque contrainte d’inégalité est matérialisée par une droite délimitant deux demi-plans. Ledomaine P des solutions réalisables est un polytope formé de l’intersection de tous les demi-plans réalisables issus des contraintes du problème (1.13). Il est ici représenté en couleur surla figure 1.1.

8 Introduction

- Les courbes des iso-coûts ou lignes de niveau f tx = k pour k ∈ R sont les droites en bleudont le gradient est représenté par le vecteur f . L’ensemble des solutions réalisables pourlesquelles la fonction coût vaut k est l’intersection du polytope P avec la droite f t x = k.

- La solution optimale x∗, y∗) = (2, 1) est obtenue en choisissant la ligne de niveau dont le coûtest maximal et qui a une intersection non vide avec P . On obtient le coût optimal J∗ = 5pour l’intersection de la ligne de niveau avec un des sommets du polytope.

1.2 Variations sur le problème de programmation linéaire

La formulation très générale du problème de programmation linéaire (1.2) peut se décliner endifférentes formes particulières permettant de vérifier les hypothèses et prérequis des méthodes derésolution et de simplifier la présentation des futurs algorithmes.

Définition 2 (Forme canonique)Un programme linéaire est dit sous forme canonique s’il s’écrit

min f t xsous

C x cx O

(1.14)

Dans un programme linéaire sous forme canonique, toutes les inégalités sont dans le mêmesens, les variables de décision sont positives ou nulles et les contraintes d’égalité en sont absentesà l’inverse de la formulation standard.

Définition 3 (Forme standard)Un programme linéaire est dit sous forme standard s’il s’écrit

min f t xsous

Ax = ax O

(1.15)

Proposition 1Tout programme linéaire général (1.2) peut être mis sous forme standard (resp. sous forme cano-nique).

Les passages d’une forme à l’autre sont possibles à l’aide des propriétés élémentaires suivantes.- Toute inégalité est équivalente à une inégalité en multipliant ses termes par −1 ;- Toute égalité est équivalente à deux inégalités : a = O, a ∈ Rn équivaut ainsi aux deux

inégalités : a O, a O ;- Toute inégalité (resp. ) peut être transformée en une égalité au moyen de « variables

d’écart ». Ainsi Bx b (resp. Cx c) devient Bx+ Z = b (resp. Cx − Z = c) avec Z ∈ Rq

et Z O (resp. Z ∈ Rr et Z O) ;

- Toute variable xi libre en signe peut être remplacée par deux variables positives ou nullesx+i ≥ 0 et x−

i ≥ 0 telles que xi = x+i − x−

i ;

Exemple 3 (2D)L’exemple académique s’écrit sous forme canonique comme :

J∗ = minx,y

−2x− y

sous x ≥ 0y ≥ 0−x ≥ −2−y ≥ −2−x− y ≥ −3

(1.16)

Quelques éléments historiques 9

La forme standard de l’exemple académique est donc donnée par :

J∗ = minx,y

−2x− y

sous x ≥ 0y ≥ 0z1 ≥ 0z2 ≥ 0z3 ≥ 0x+ z1 = 2y + z2 = 2x+ y + z3 = 3

(1.17)

Dans de nombreux cas (cf. exemple de la commande optimale en temps discret), le critère àminimiser n’est pas un critère linéaire mais linéaire par morceaux. Par exemple considérons leproblème

minx,y

n∑

i=1

fi|xi|

sous Ax b

(1.18)

où fi ≥ 0, ∀ i = 1, · · · , n. Deux méthodes permettent de mettre le problème d’optimisation (1.18)sous forme d’un programme linéaire.

1- On remarque que |xi| est le plus petit nombre zi tel que xi ≤ zi et −zi ≤ xi conduisant àreformuler le problème (1.18) comme :

minx,y

n∑

i=1

fizi

sous Ax bx zx −z

(1.19)

- Une méthode alternative consiste à séparer chaque variable de décision en deux nouvellesvariables non négatives xi = x+

i − x−i , x+

i ≥ 0, x−i ≥ 0 avec la formulation du problème de

programmation linéaire qui s’en déduit :

minx,y

n∑

i=1

fi(x+i + x−

i )

sous Ax+ −Ax− bx+ O

x− O

(1.20)

1.3 Quelques éléments historiques et notes bibliographiques

Le développement de la théorie et des outils de la programmation linéaire a réellement prisson essor à partir des années 1940 même si les structures mathématiques sous-jacentes ainsi quequelques éléments algorithmiques ont vu le jour durant la période 1870 -1930 avec les travaux deJ.B. Fourier (fondements de la programmation linéaire et de la méthode du simplexe), T. Motzkin(théorie de l’élimination, dualité) Farkas (dualité), Minkowski (dualité), Caratheodory (polyèdreset polytopes), de la Vallée Poussin (méthode d’élimination de Motzkin), Von Neuman (théorie desjeux). La fondation de la programmation linéaire en tant que domaine d’étude est principalementcréditée à D.B. Dantzig auteur de l’algorithme du simplexe en 1947 dans le contexte du projetSCOOP (Scientific Computation of Optimal Programs) et du complexe militaro-industriel installéau sein de l’US Air Force au Pentagone. L’algorithme devait répondre aux besoins de planifica-tion des transports lors d’opérations militaires modélisés comme un problème de programmationlinéaire. Signalons que L.V. Kantorovich, mathématicien et économiste soviétique, a proposé des

10 Introduction

modèles de programmation linéaire pour des applications industrielles en économie planifiée ainsiqu’une méthode expérimentale de résolution par des variables duales, malheureusement non sou-tenue par une théorie formelle. Cela lui a valu de partager « le prix Nobel » d’économie avec T.Koopmans en 1975 [21], [12].

Aussi performant et largement utilisé que peut être l’algorithme du simplexe, le fait qu’il ap-partienne à la classe des algorithmes non polynomiaux a incité les chercheurs à proposer d’autresalgorithmes dont la polynomialité était avérée. Le premier algorithme polynomial pour la program-mation linéaire est dérivé de la méthode générale de l’ellipsoïde défini par A. Nemirovski (Prix Johnvon Neumann 2003), D. B. Yudin et N. Shor en 1970. L. Khachiyan a ainsi construit un algorithmede l’ellipsoide adapté à la programmation linéaire en 1979 dont le mérite tient plus à la contributionen théorie de la complexité et à l’ouverture ainsi réalisée vers les méthodes polynomiales plutôtqu’en son efficacité pratique jugée médiocre. Une nouvelle avancée décisive a été réalisée en 1984par N. Karmarkar [14], chercheur à IBM qui a proposé, pour la première fois, une méthode despoints intérieurs dont il a démontré la complexité polynomiale dans le pire des cas. La majorité dessolutions logicielles actuelles sont construites autour de l’algorithme du simplexe et d’algorithmesdes points intérieurs.

Sur un sujet devenu une matière d’enseignement indispensable dans la majorité des écolesd’ingénieurs et des universités, la bibliographie est nécessairement très riche. Nous nous sommesessentiellement appuyés sur les monographies classiques telles que [4], [20], [16], [2], [5], [30], [26],[3], [17], [25].

Chapitre 2

Théorie de la programmation linéaire

2.1 Géométrie de la programmation linéaire

Cette section a pour but principal de definir les notions géométriques mais également leurinterprétation algébrique qui seront nécessaires à la compréhension des solutions algorithmiquesutilisées en programmation linéaire. En particulier, nous verrons que la notion de convexité et lagéométrie des polyèdres et polytopes vont jouer un rôle prépondérant en programmation linéaire.

2.1.1 Ensembles convexes, cônes, hyperplans, polyèdres et polytopes

Définition 4 (Ensemble convexe)Un sous-ensemble C ⊂ V d’un espace vectoriel V est convexe ssi :

∀ x ∈ C, ∀ y ∈ C (1 − λ)x+ λy ∈ C ∀λ ∈ [0 , 1]

Cette définition signifie qu’un ensemble C est convexe si le segment joignant deux de ses pointsquelconques est contenue dans l’ensemble C.

. .

..

.

.

Figure 2.1 – Deux ensembles convexes et un ensemble non convexe

Propriété 1- L’intersection d’une collection arbitraire d’ensembles convexes est un ensemble convexe.

C = ∩i∈ICi

est convexe.- Si C est convexe et β ∈ R, l’ensemble :

βC = x ∈ Rn : x = βc c ∈ C

est convexe.- Si C, D sont deux sous-ensembles convexes de V alors l’ensemble :

C +D = x ∈ Rn : x = c+ d, c ∈ C, d ∈ D

est convexe.

11

12 Théorie de la programmation linéaire

Définition 5 (Combinaison convexe)Soient x1, · · · , xk ∈ Rn, une combinaison convexe de x1, · · · , xk est le vecteur

k∑

i=1

λixi, λi ≥ 0,k∑

i=1

λi = 1 (2.1)

Définition 6 (Enveloppe convexe)- Soit S ⊂ V , l’enveloppe convexe de S, notée co(S), est l’ensemble défini comme l’inter-

section de tous les ensembles convexes contenant S. L’enveloppe convexe est le plus petitensemble convexe de V contenant S.

co(S) = ∑

i

λixi : xi ∈ S λi ≥ 0∑

i

λi = 1

- L’enveloppe convexe des vecteurs x1, · · · , xk ∈ Rn, cox1, · · · , xk est l’ensemble de toutesles combinaisons convexes (2.1).

Propriété 2L’enveloppe convexe d’un nombre fini de vecteurs de Rn est un ensemble convexe.

.

.

.

..

.

.

.

.

..

Figure 2.2 – Enveloppes convexes de points et d’un ensemble

Définition 7 (Cône)Un sous-ensemble K ⊂ V est un cône ssi

∀x ∈ K, λ ≥ 0 λx ∈ K.

Un cône qui possède la propriété de convexité est un cône convexe.

.

.0

.

.

.0

0 .

.

Figure 2.3 – Deux cônes non convexes et un cône convexe

Géométrie de la programmation linéaire 13

Définition 8 (Hyperplan)Soit a 6= 0 ∈ Rn et c ∈ R. L’ensemble défini par :

H =

x ∈ Rn : atx = c

est un hyperplan de Rn.

x1

x2

x0

x

a

Figure 2.4 – Hyperplan et demi-plan x ∈ H , x1 6∈ H−, x2 ∈ H+

H est une variété linéaire de dimension n − 1 de Rn. Un hyperplan est la frontière du demi-plancorrespondant et le vecteur a est perpendiculaire à l’hyperplan.

Définition 9 (Demi-plans fermés)Soient a 6= 0 ∈ Rn, c ∈ R. On considère l’hyperplan :

H =

x ∈ Rn : atx = c

On définit alors, à partir de H les demi-plans fermés positif et négatif, donnés par :

H+ =

x ∈ Rn : atx ≤ c

H− =

x ∈ Rn : atx ≥ c

qui sont des espaces convexes.

Définition 10 (Hyperplan support)Un hyperplan support d’un ensemble convexe C tel que int(C) 6= ∅ en un point x ∈ ∂C est définipar :

∃ a 6= 0 ∈ Rn : at(x− x) ≥ 0 ∀ x ∈ C HS = x ∈ Rn | at(x− x) = 0

C

HS

x

a

Figure 2.5 – Hyperplan support d’un ensemble convexe C

14 Théorie de la programmation linéaire

Définition 11 (Polyèdre)Un polyèdre P ⊂ Rn est un ensemble décrit par

P = x ∈ Rn : Cx c (2.2)

où C ∈ Rr×n et c ∈ R

r.

Un polyèdre est formé comme l’intersection d’un nombre fini de demi-espaces fermés.

Définition 12 (Ensemble borné)Un ensemble S ⊂ Rn est borné s’il existe K ∈ R tel que la valeur absolue de chaque composantede chaque élément de S est plus petite que K.

Définition 13 (Polytope)Un polyèdre convexe et borné est un polytope convexe.

Figure 2.6 – Polyèdre convexe et polytope

Ce qui précède permet de définir une des proriétés fondamentales des problèmes de program-mation linéaire utilisée en particulier par la méthode du simplexe.

Théorème 1L’ensemble réalisable du problème de programmation linéaire (1.2) est un polyèdre convexe bornéou non borné.

2.1.2 Points extrêmes, sommets, solutions réalisables de base d’un po-lyèdre

Nous définissons la notion de point extrême ou de sommet d’un polyèdre de deux manièrescomplémentaires.

Définition 14 (Point extrême et sommet)- Etant donné un polyèdre P , un vecteur x ∈ P est un point extrême de P s’il n’existe pas

deux vecteurs y, z 6= x ∈ P et λ ∈]0, 1[ tels que

x = λy + (1− λ)z

- Etant donné un polyèdre P , un vecteur x ∈ P est un sommet de P s’il existe un vecteur ctel que ctx < cty, ∀ y 6= x ∈ P .

Géométrie de la programmation linéaire 15

∂CA1

A2

A3

A4

A5

A6

C1 C2

C3C4

Figure 2.7 – Sommets (points extrêmes) de différents ensembles convexes

La figure 2.7 présente différents cas de figure d’ensembles de points extrêmes. Dans le casdu disque, l’ensemble des points extrêmes est ∂C, soit le cercle définissant la frontière du disquealors que pour les deux polytopes, on retrouve classiquement les sommets A1, A2, · · · , A6 etC1, C2, C3, C4.

Considérons un polyèdre P défini par les contraintes inégalités et égalités :

P =

x ∈ Rn : atix = ai, btjx ≤ bj , ∀ i ∈ M1, ∀ j ∈ M2

(2.3)

où M1 et M2 sont des ensembles finis d’indice.

Définition 15 (Contrainte active)Si le vecteur x∗ ∈ Rn vérifie atix = ai (resp. btix = bi) pour i ∈ M1 (resp. i ∈ M2) alors lacontrainte associée est dite active en x∗.

Définition 16 (Solution de base)x∗ ∈ Rn est une solution de base du polyèdre P si :

- Toutes les contraintes égalités ∀ i ∈ M1 sont actives en x∗ ;- Parmi toutes les contraintes actives en x∗, n sont linéairement indépendantes i.e. il existen vecteurs ai, bi, i ∈ I linéairement indépendants (I ensemble des indices des contraintesactives).

Si x∗ est une solution de base satisfaisant toutes les contraintes définissant le polyèdre P alors x∗

est une solution de base réalisable.

A

B

C

D

E

F

P

Figure 2.8 – Solutions de base d’un polyèdre

16 Théorie de la programmation linéaire

La figure 2.8 représente un polyèdre borné en deux dimensions (un polytope en deux dimensions)pour lequel les points A, B, C, D, E, F sont des solutions de base car pour chacun de cespoints, deux contraintes sont actives et linéairement indépendantes. Les points C, D, E, F sontdes solutions de base réalisables pour le polyèdre P .

Le résultat suivant unifie les points de vue géométrique et algébrique définissant la même notion.

Théorème 2Soit P un polyèdre non vide et x∗ ∈ R

n alors tout sommet (ou point extrême) de P est une solutionde base réalisable. De plus, il ne peut exister qu’un nombre fini de solutions de base ou de solutionsde base réalisables.

Définition 17 (Solutions de base adjacentes)Pour un polyèdre P ⊂ Rn donné, deux solutions de base distinctes sont dites adjacentes s’il existen− 1 contraintes linéairement indépendantes actives simultanément en ces deux sommets. Si deuxsolutions adjacentes sont également réalisables alors le segment liant ces deux sommets est unearête de l’ensemble réalisable.

Dans l’exemple de la figure 2.8, A et F sont adjacentes à E et [E,F ] est une arête de l’ensembleréalisable.

2.1.3 Cas des polyèdres sous forme standard

La définition très générale donnée pour les solutions de base réalisable peut être précisée dansle cas des polyèdres définis sous forme standard.

P = x ∈ Rn : Ax = a, x O (2.4)

avec les hypothèses suivantes.

Hypothèse 1- Le polyèdre P est non vide ;- A ∈ Rm×n avec m ≤ n ;- A est une matrice de rang plein i.e. rang(A) = m.

L’hypothèse de rang sur A n’est pas une hypothèse restrictive. Dans le cas contraire, cela signifieque le système d’équations linéaires contient des contraintes redondantes qui peuvent être élimi-nées pour obtenir un systèmes d’équations linéaires vérifiant l’hypothèse de rang et définissant unpolyèdre identique au polyèdre initial.

On définit l’ensemble d’indices b(1), · · · , b(m), · · · ∈ N.

Proposition 2En reprenant la définition 16 et en l’appliquant à la forme standard (2.4), il est toujours possiblede construire une solution de base x∗ de P sous les hypothèses 1 :

- Extraire de la matrice A une sous-matrice AB =[

Ab(1) · · · Ab(m)]

∈ Rm×m inversible ;- Choisir xi = 0 ∀ i 6= b(1), · · · , b(m) ;- Résoudre le système linéaire en xB =

[

xb(1) · · · xb(m)

]t:

ABxB = a ⇔ xB = A−1B a (2.5)

La solution de base est alors donnée par :

x∗ =

xb(1)

...0· · ·

xb(m)

0

(2.6)

Géométrie de la programmation linéaire 17

Définition 18 (Matrice de base)Toute sous-matriceAB composée des colonnes de base (linéairement indépendantes) Ab(1), · · · , Ab(m)

est appelée matrice de base et ses colonnes forment une base de Rm. Cette base sera notée par l’en-semble d’indices qu’elle contient b(1), · · · , b(m). Deux bases sont considérées comme différentessi elles ne sont pas formées à partir des mêmes ensembles d’indices (sans tenir compte de l’ordre)b(1), · · · , b(m).

Exemple 4 (2D)Reprenons l’exemple académique défini dans le chapitre introductif.

J∗ = minx,y

−2x− y

sous x ≤ 2y ≤ 2x+ y ≤ 3x ≥ 0y ≥ 0

(2.7)

Nous rappelons que la forme standard de l’exemple académique est donnée par :

J∗ = minx, y

z1, z2, z3

−2x− y

sous x+ z1 = 2y + z2 = 2x+ y + z3 = 3x ≥ 0y ≥ 0z1 ≥ 0z2 ≥ 0z3 ≥ 0

(2.8)

Les données de ce programme linéaire sous forme standard s’écrivent sous forme matricielle comme :

A =

1 0 1 0 00 1 0 1 01 1 0 0 1

a =

223

(2.9)

En choisissant les colonnes (3, 4, 5) de A, on obtient la matrice de base

AB1 =

1 0 00 1 00 0 1

=[

A3 A4 A5

]

(2.10)

La solution de base est donnée par[

x y z1 z2 z3]t

=[

0 0 2 2 3]t

qui est unesolution de base réalisable puisque tous ses éléments sont positifs ou nuls. Par contre, la solutionde base x2 =

[

2 2 0 0 −1]t

associée à la matrice de base

AB2 =

1 0 00 1 01 1 1

=[

A1 A2 A5

]

(2.11)

n’est pas réalisable.

Définition 19 (Variables de base)Les variables dont les indices appartiennent à la base b(1), · · · , b(m) sont appelées variables debase. Les autres sont appelées variables hors base.

18 Théorie de la programmation linéaire

Exemple 5 (Exemple 2D (suite))Dans le premier cas, les variables de base sont les variables d’écart z1, z2 et z3 et les variables horsbase sont x, y.

Définition 20 (Forme canonique)Un programme linéaire sous forme standard est dit sous forme canonique par rapport à unebase b(1), · · · , b(m) si la matrice AB est l’identité et les coûts correspondant aux variables debase sont nuls.

Exemple 6 (Exemple académique (suite))Le programme linéaire de l’exemple académique est sous forme canonique par rapport à la base AB1 .

Remarque 2La solution de base associée à une base b(1), · · · , b(m) est calculée par inversion du sous-systèmelinéaire inversible ABxB = a pour obtenir les variables de base et en posant les variables hors baseégales à zéro.

Proposition 3Pour un problème de programmation linéaire sous forme standard et canonique, les valeurs desvariables de base dans la solution de base se lisent dans le vecteur a.

Cette proposition est une conséquence du fait que la matrice AB est égale à la matrice identité.

Définition 21 (Coût réduit)Soit x une solution de base, AB la matrice de base associée et fB le vecteur de la fonction coûtassocié aux variables de base. Pour j donné, le coût réduit f j de la variable xj est défini par :

f j = fj − f tBA

−1B Aj (2.12)

Il est à noter que la définition (21) implique en particulier que le coût réduit associé à une variablede base est nécessairement nul.

Exemple 7 (Exemple 2D (suite))Reprenons la solution de base B2 de l’exemple académique. Les variables de base sont les variablesx, y, z3 dont les coûts associés sont donnés par le vecteur f t

B2=[

−2 −1 0]

. Cela permet decalculer les coûts réduits associés à la solution de base B2.

f j = fj − f tB2

A−1B2

Aj = fj −[

−2 −1 0]

1 0 00 1 0−1 −1 1

Aj , j = 1, · · · , 5 (2.13)

Le vecteur des coûts réduits est donc donné par ft=[

0 0 2 1 0]

.

2.1.4 Dégénérescence

La définition des solutions de base ouvre la possibilité pour que le nombre de contraintes activesen une solution de base soit supérieure à la dimension de l’espace du polyèdre, définissant ainsila notion de solution de base dégénérée. Cette notion de dégénérescence des solutions de basepeut ainsi affecter très fortement le comportement numérique des algorithmes de programmationlinéaire. Elle est donc très importante et doit être précisément définie.

Définition 22 (Dégénérescence)- Soit un polyèdre P ⊂ Rn donné sous la forme (2.3). Une solution x∗ de base (réalisable) deP est dite dégénérée si le nombre de contraintes actives en x∗ est supérieur strictement à n.

Géométrie de la programmation linéaire 19

- Soit un polyèdre P ⊂ Rn donné sous la forme standard (2.4). Une solution x∗ de base(réalisable) de P est dite dégénérée si plus de n−m composantes de x∗ sont nulles.

La figure 2.9 illustre que le point A est une solution de base dégénérée alors que le point D est unesolution de base réalisable dégénérée.

A

B

C

D

E

F

P

Figure 2.9 – Solutions de base dégénérées

Remarque 3- La dégénérescence des solutions de base réalisables n’est en général pas une propriété géomé-

trique du polyèdre (i.e. indépendante de sa représentation). Prenons l’exemple du polyèdreP défini de manière équivalente sous forme standard et non standard :

P =

x ∈ R3 : x1 − x2 = 0, x1 + x2 + 2x3 = 2, x O

=

x ∈ R3 : x1 − x2 = 0, x1 + x2 + 2x3 = 2, x1 ≥ 0, x3 ≥ 0

Le sommet est une solution de base réalisable dégénérée dans le premier cas alors qu’elle estune solution de base réalisable non dégénérée dans le second.

- Dans le cas standard, il est possible d’associer, en général, plusieurs bases à une solutionde base dégénérée. Dans ce cas, une ou plusieurs variables de base sont nulles. Dans le sensinverse, un point extrême correspond à une unique solution de base réalisable.

2.1.5 Existence et optimalité des points extrêmes

Dans cette section, les conditions d’existence et d’optimalité d’une solution d’un problèmede programmation linéaire sont rappelées. Les conditions d’existence sont essentiellement liées àl’existence d’une ligne infinie contenue dans le polyèdre définissant le domaine du problème de PL.

Définition 23 (Ligne infinie)Un polyèdre P ⊂ R

n contient une ligne infinie si ∃ x ∈ P et d 6= 0 ∈ Rn tels que x = λd ∈ P ,

∀ λ ∈ R.

Théorème 3Un polyèdre P non vide possède un point extrême si seulement si P ne contient pas de ligne infinie.

En particulier, tout polyèdre borné non vide possède au moins un point extrême. Cela permet dedéduire un résultat général quant à l’optimalité des points extrêmes.

20 Théorie de la programmation linéaire

Corollaire 1Pour le problème de programmation linéaire (PL) :

J∗ = minx∈P

f ′x

où le polyèdre P 6= ∅, on a l’alternative suivante :- J∗ = −∞ ;- Il existe un point extrême optimal.

Du fait que tout polyèdre non vide sous forme standard est contenu dans l’orthant positif, lesrésultats précédents peuvent être étendus au cas standard de la façon suivante.

Théorème 4Pour un problème de PL donné sous forme standard (1.15) sous les hypothèses 1,

i- S’il existe une solution réalisable, il existe une solution réalisable de base ;ii- S’il existe une solution réalisable et que la fonction objectif f ′x est bornée inférieurement

sur l’ensemble des solutions réalisables, il existe une solution optimale ;iii- S’il existe une solution réalisable optimale, il existe une solution réalisable de base optimale.

Pour un problème de PL sous forme standard, il suffit de s’intéresser aux solutions réalisables debase pour déterminer la solution optimale si elle existe car elle sera toujours atteinte en un de cespoints. De plus, des conditions d’optimalité peuvent être données en termes des coûts réduits.

Théorème 5Soit x une solution de base réalisable associée à une matrice de base AB et soit f le vecteurcorrespondant des coûts réduits :

- Si f O alors x est optimal ;- si x est optimal et non dégénéré alors f O.

De plus, nous avons la définition supplémentaire suivante :

Définition 24 (Matrice de base optimale)Une matrice de base AB est dite optimale si les deux conditions suivantes sont vérifiées :

1- A−1B a O ;

2- ft= f t − fBA

−1B A O.

Exemple 8 (Exemple 2D (suite))Reprenons la solution de base B2 de l’exemple académique. Les variables de base sont les variables

x, y, z3 dont les coûts réduits sont donc donnés par ft=[

0 0 2 1 0]

qui vérifie la condition2 d’optimalité. Si l’on calcule la première condition, on obtient :

A−1B2

a =

22−1

6 O

donc cette solution de base n’est pas réalisable comme il a été vu précédemment. En revanche, sil’on choisit la base B3 définie par la matrice :

AB3 =

1 0 00 1 11 1 0

A−1B3

=

1 0 0−1 0 11 1 −1

et les variables de base x, y, z2, on obtient alors :

A−1B3

a =

211

O f3 = f −AtA−1B3

f tB3

=

00101

O

Théorie de la dualité 21

La base B3 est donc réalisable et optimale.

Du fait de la convexité de l’ensemble réalisable non vide d’un problème de PL, il est possible dedéduire le résultat suivant.

Lemme 1Toute solution d’un problème de programmation linéaire qui est une solution minimale locale estune solution minimale globale.

Ces résultats ne permettent toutefois pas de se prononcer sur l’unicité de la solution optimaledu fait de la possibilité de l’existence d’une infinité de solutions dans le cas où le vecteur f estperpendiculaire à une des contraintes définissant le polyèdre réalisable (lignes de niveau du coûtparallèles à une contrainte).

2.2 Théorie de la dualité

Pour chaque problème de PL, il est possible de construire un autre problème de PL dit dualà partir des mêmes données (fonction coût, coefficients des contraintes...). Si le problème original,le primal, est un problème de minimisation alors le dual est un problème de maximisation et lesvaleurs respectives des fonctions objectif sont égales à l’optimum si elles sont finies. La constructiondu programme de PL dual ainsi que l’étude de ses propriétés constitue la théorie de la dualité. Ellepropose, entre autres, une interprétation économique qui adjoint à chaque contrainte du problèmeprimal une variable duale ou paramètre de Lagrange définissant le prix associé à la violationde la contrainte. La recherche de l’ensemble des prix optimaux pour le premier problème peutainsi se reformuler comme un problème de PL dual opérant sur les variables duales. Elle permetégalement de comprendre plus profondément les algorithmes de résolution des problèmes de PL etd’en proposer de nouveaux.

2.2.1 Construction du dual d’un programme linéaire

Reprenons la forme initiale et générale (1.2) du problème de PL présentée en introduction. Onnote N3 l’ensemble des indices des variables xi qui sont libres et qui ne sont donc pas contraintes ensigne. La dualité linéaire est une application particulière de la dualité Lagrangienne qui se définità partir du Lagrangien construit comme :

L(x, λp, λq, λr) = f tx+ λtp(a−Ax) + λt

q(b−Bx) + λtr(c− Cx) (2.14)

où λ =[

λtp λt

q λtr

]t ∈ Rp+q+r est le vecteur des variables adjointes ou vecteur des variablesde Lagrange ou vecteur des variables duales. La fonction L(x, λp, λq, λr) est construite à partir dela fonction coût du problème (1.2) à laquelle ont été ajoutées des pénalités en cas de violation descontraintes de (1.2). Pour que ces termes additionnels jouent le rôle de pénalités en cas de violationdes contraintes, il est nécessaire que les variables de Lagrange vérifient :

λp libre λq O λr O (2.15)

A partir du Lagrangien, on définit la fonction duale de Lagrange, solution du problème primalrelaxé :

g(λ) = infx∈P

L(x, λp, λq, λr) = λt

abc

+ infx∈P

n∑

i=1

[

fi − λtpA

i − λtqB

i − λtrC

i]

xi (2.16)

On obtient aisément :

infx∈P

n∑

i=1

[

fi − λtpA

i − λtqB

i − λtrC

i]

xi =

0, si

fi ≥ λtM i i ∈ N1

fi ≤ λtM i i ∈ N2

fi = λtM i i ∈ N3

−∞ sinon

22 Théorie de la programmation linéaire

où M i est la ième colonne de la matrice M définie par :

M =

Ai

Bi

Ci

De plus, la fonction duale de Lagrange vérifie l’inégalité :

g(λ) = infx∈P

λt

abc

+

n∑

i=1

[

fi − λtpA

i − λtqB

i − λtrC

i]

xi

≤ f tx∗ +n∑

i=1

[

fi − λtpA

i − λtqB

i − λtrC

i]

x∗i ≤ f tx∗

(2.17)

Cela signifie que pour chaque valeur du vecteur des variables duales λ, la fonction duale fournit uneborne inférieure au coût optimal. Un problème relaxé appelé dual du problème initial peut ainsiêtre construit afin de trouver la meilleure borne inférieure au coût optimal du problème primal.

maxλ

g(λ)

sous λp libreλq O

λr O

(2.18)

On déduit les formulations primale et duale du problème de PL (1.2).

Primal Dual

min f t xsous

Ax = aB x bC x cxi ≥ 0 ∀ i ∈ N1

xi ≤ 0 ∀ i ∈ N2

xi libre ∀ i ∈ N3

max λt

abc

sousλtM i ≤ fi ∀ i ∈ N1

λtM i ≥ fi ∀ i ∈ N2

λtM i = fi ∀ i ∈ N3

λp libreλq O

λr O

(2.19)

Dans le cas particulier où le problème de PL primal est sous forme standard, on obtient le problèmedual suivant :

Primal Dualmin f t xsous

Ax = ax ≥ 0

max λt asous

λtA f t

λ libre

(2.20)

Exemple 9 (2D)Reprenons l’exemple académique (1.13) du chapitre introductif

minx,y

−2x− y

sous x ≥ 0y ≥ 0x ≤ 2y ≤ 2x+ y ≤ 3

(2.21)

Théorie de la dualité 23

Avec les notations utilisées dans ce rapport, on a :

f =

[

−2−1

]

b =

223

B =

1 00 11 1

B1 =

101

B2 =

011

On écrit alors le lagrangien associé :

L(x, y, λ) = λtb+[

−2− λtB1 −1− λtB2]

[

xy

]

(2.22)

avec le vecteur des variables duales λ ∈ R3 et λ O. La fonction duale de Lagrange s’écrit donccomme :

g(λ) = infx,y∈P

L(x, y, λ) =

λtb si

−2− λtB1 ≥ 0−1− λtB2 ≥ 0

−∞ sinon(2.23)

Le problème dual est donc donné par :

maxλ

2λ1 + 2λ2 + 3λ3

sousλ O

−2− λ1 − λ3 ≥ 0−1− λ2 − λ3 ≥ 0

(2.24)

La construction du problème primal fait apparaître une transformation formelle permettant depasser de la formulation primale à la formulation duale et associe à chaque contrainte du primal,hors contraintes de signe, une variable duale qui aura un signe imposé si la contrainte primale estune inégalité. Pour chaque variable du primal, une contrainte duale inégalité est introduite si lavariable est signée ou égalité si la variable est libre. Enfin, la transformation est involutive :

Proposition 4Le dual d’un dual est un programme linéaire équivalent au primal.

De plus, il est possible de montrer que les opérations permettant de transformer un primal en unprimal équivalent ne détruisent pas la dualité.

Théorème 6On suppose qu’un problème de PL (P1) a été transformé en un problème de PL équivalent (P2)par les opérations suivantes :

- Remplacer une variable libre de (P1) par la différence de deux variables d’écart positives ;- remplacer une contrainte inégalité par une contrainte égalité par l’introduction d’une variable

d’écart positive ;- éliminer les contraintes égalités redondantes.

Les problèmes de PL duaux (P1) et (P2) sont équivalents (ils sont irréalisables ou ont la mêmesolution optimale).

2.2.2 Théorème fondamental de la dualité

Dans la section précédente, la notion de dualité a été essentiellement présentée du point de vueformel. Les relations et propriétés partagées par le problème de PL primal et son dual peuvent êtresynthétisées dans le théorème fondamental de la dualité proposé initialement, sans démonstration,

24 Théorie de la programmation linéaire

par John Von Neumann en 1947 puis démontré rigoureusement par Gale, Kuhn et Tucker en s’ap-puyant sur le lemme de Farkas en 1951. Pour présenter ce résultat, nous reprenons la formulationsymétrique de Von Neumann du problème de PL et de son dual.

Primal Dualmin f t xsous

Ax bx ≥ O

max bt λsous

Atλ fλ O

(2.25)

où A ∈ Rm×n.

Théorème 7 (Dualité faible)Si x est une solution réalisable du problème primal (2.25) et λ est une solution réalisable duproblème dual (2.25) alors :

λtb ≤ f tx (2.26)

Ce résultat montre qu’une solution réalisable d’un des problèmes de PL qui sont en relation dedualité fournit une borne à la valeur de l’autre problème. De ce premier résultat, il est possibled’établir le résultat fondamental du à Von Neumann.

Théorème 8 (Dualité forte)Si l’un ou l’autre des problèmes de PL (2.25) ont une solution optimale finie alors l’autre a néces-sairement une solution optimale finie et les valeurs respectives des fonctions objectif sont égales.

f tx∗ = λ∗tb (2.27)

Théorème 9Quand deux problèmes de PL sont en dualité, seuls les trois cas suivants peuvent se produire.

1. Le problème de Pl primal et le problème dual ont chacun au moins une solution réalisable.Les deux problèmes sont bornés et réalisent le même objectif à l’optimum (principe de ladualité de Von Neumann) ;

2. L’un des deux problèmes de PL n’a pas de solution réalisable et l’autre a une solution réali-sable. Ce dernier est non borné.

3. Aucun des deux problèmes de PL n’a de solution réalisable.

Exemple 10 (2D)Si nous reprenons l’exemple en 2 dimensions dont les formes primale et duale sont rappelées ci-dessous :

Primal Dualminx,y

−2x− y

sousx ≥ 0y ≥ 0x ≤ 2y ≤ 2

x+ y ≤ 3

maxλ

2λ1 + 2λ2 + 3λ3

sousλ1 ≤ 0λ2 ≤ 0λ3 ≤ 0

−2− λ1 − λ3 ≥ 0−1− λ2 − λ3 ≥ 0

Le problème primal une solution réalisable optimale donnée par (x∗, y∗) = (2, 1) alors que le pro-blème possède également une solution réalisable optimale calculée comme (λ1, λ2, λ3) = (−1, 0,−1).

Théorie de la dualité 25

Exemple 11Considérons le problème de PL primal suivant :

p∗ = minx

[

−1 1]

µ

sous[

0 −1]

x = 1

x 0

Il apparaît clairement que ce problème primal ne peut avoir de solution réalisable puisque lacontrainte linéaire conduit à x2 = −1 qui est en contradiction avec la contrainte de positivité desvariables de décision. On a donc p∗ = −∞. Si l’on calcule le dual de ce problème de PL, on obtientalors :

d∗ = maxλ

λ

sous[

01

]

λ [

−11

]

qui est un problème non borné et pour lequel on obtient d∗ = ∞ confirmant l’irréalisabilité duproblème primal.

Remarque 4Si le problème primal est donné sous la forme standard suivante :

minx

f tx

sousAx = ax O

(2.28)

le problème dual associé sera défini par :

maxλ

atλ

sousAtλ f

(2.29)

Cette paire de problèmes de PL correspond à la forme asymétrique de la dualité en programmationlinéaire.

2.2.3 Théorème des écarts complémentaires

La relation entre les solutions d’un problème primal et les solutions du problème dual associéest définie par le théorème connu sous le nom de « théorème des écarts complémentaires » ou« théorème des relations d’exclusion ». Pour le formuler, nous reprenons la paire de problèmes dePL primal-dual donnée par la formulation symétrique de Von-Neumann :

Primal Dual

min f t xsous

Ax bx ≥ O

max bt λsous

Atλ fλ O

(2.30)

où A ∈ Rm×n.

26 Théorie de la programmation linéaire

Théorème 10 (Théorème des écarts complémentaires)Soient x et λ deux solutions respectivement réalisables du problème primal et du problème dual.Les vecteurs x et λ sont des solutions respectivement optimales pour le problème primal et leproblème dual si et seulement si :

λi(Aix− bi) = 0 ∀ i = 1, · · · ,m(fj − λtAj)xj = 0 ∀ j = 1, · · · , n (2.31)

Remarque 5Le théorème des écarts complémentaires a été donné pour la paire de problèmes sous la formulationsymétrique de Von-Neumann mais il peut être donné pour n’importe quelle paire duale.

Différents commentaires peuvent être faits sur le théorème des écarts complémentaires :- Si l’on introduit des variables d’écart zi ≥ 0, ∀ i pour les contraintes inégalités du problème

primal et des variables d’écarts wi ≥ 0, ∀ i pour les contraintes inégalités du problème dual,les conditions de complémentarité (2.31) deviennent :

λizi = 0 ∀ i = 1, · · · ,mwjxj = 0 ∀ j = 1, · · · , n (2.32)

- La première condition est toujours vérifiée si le problème primal est sous forme standard. Si leproblème primal a une solution optimale x∗ telle que l’inégalité Aix

∗ > bi est vérifiée alors lethéorème de complémentarité implique nécessairement que la variable duale associée à cetteinégalité est telle que λ∗

i = 0. Toute contrainte inactive à l’optimum peut être supprimée duproblème primal sans modifier la valeur du coût optimal et il est donc inutile d’y associerune pénalité λ∗

i non nulle.- Si le problème primal est sous forme standard alors pour toute variable de base réalisable

optimale non dégénérée xj 6= 0, la seconde condition de complémentarité λtAj = cj permetd’obtenir le vecteur des variables duales par l’inversion d’un système linéaire :

λt = fBA−1B

où fB est le sous-vecteur du critère primal correspondant aux variables de base.

Théorème 11 (Théorème des écarts complémentaires stricts)Si un problème de PL a une solution optimale alors il existe une solution optimale (x∗, z∗) duproblème primal et une solution optimale (λ∗, w∗) du problème dual telles que x∗ + w∗ > 0 etλ∗ + z∗ > 0.

Exemple 12 (2D)Si nous reprenons l’exemple en 2 dimensions dont les formes primale et duale sont rappelées ci-dessous :

Primal Dualminx,y

−2x− y

sousx ≥ 0y ≥ 0x ≤ 2y ≤ 2

x+ y ≤ 3

maxλ

2λ1 + 2λ2 + 3λ3

sousλ1 ≤ 0λ2 ≤ 0λ3 ≤ 0

−2− λ1 − λ3 ≥ 0−1− λ2 − λ3 ≥ 0

Le problème de PL primal a une solution optimale donnée par (x∗, y∗) = (2, 1) alors que le problèmede PL dual a une solution optimale donnée par (λ∗

1, λ∗2, λ

∗3) = (−1, 0,−1). Les deux solutions

optimales primale et duale montrent que les variables d’écart primales (z∗1 , z∗2 , z

∗3) et duales (w∗

1 , w∗2)

optimales sont calculées comme :

z∗1 = 0 w∗1 = 0

z∗2 = 1 w∗2 = 0

z∗3 = 0

Théorie de la dualité 27

Il est donc possible de retrouver les conclusions du théorème des écarts complémentaires stricts.

z∗1 − λ∗1 = 1 > 0 w∗

1 + x∗ = 2 > 0z∗2 − λ∗

2 = 1 > 0 w∗2 + y∗ = 1 > 0

z∗3 − λ∗3 = 1 > 0

Notons que, dans le contexte général de l’optimisation sous contraintes, le système de conditionsnécessaires et suffisantes d’optimalité donné par le théorème des écarts complémentaires peut êtreobtenu par application des conditions d’optimalité de Karush-Kuhn-Tucker (KKT). Reprenons leproblème de PL sous forme standard et son dual où l’on a introduit les variables d’écart wi ≥ 0, ∀ i.

Primal Dual

min f t xsous

Ax = ax ≥ O

max at λsous

Atλ+ w = f

(2.33)

où A ∈ Rm×n. L’application des conditions de KKT au problème primal nous dit que la solutiondu problème primal (4.1) doit vérifier le système de conditions suivant :

∃ (λ ∈ Rm, w ∈ R

n) tels que

Ax = a

Atλ+ w = f

xiwi = O, ∀ i = 1, · · · , n(x,w) O

(2.34)

avec λ et w définis comme les multiplicateurs de Lagrange associés aux contraintes Ax = a et x 0respectivement. On retrouve que la seconde équation de ce système est identique à la contrainted’égalité du problème dual défini par (2.33). De plus, en vérifiant que pour toute paire de vecteursu et v tels que (u, v) 0

uivi = 0, ∀ i ⇔∑

i

uivi = 0 ⇔ utv = 0,

il vient alors qu’une solution x est optimale si et seulement si

∃ (λ ∈ Rm, w ∈ R

n) tels que

Ax = a

Atλ+ w = f

xtw = O

(x,w) O

(2.35)

Ces dernières conditions expriment la propriété de dualité forte : une condition nécessaire et suf-fisante d’optimalité d’une solution au problème primal est l’existence d’une solution admissible(λ,w) au problème dual telle que le saut de dualité est nul. Le saut de dualité étant l’écart entre lecoût primal et dual, f tx−atλ, un saut de dualité nul se déduit facilement de la condition xtw = 0 :

wtx = (f −Atλ)x = f tx− λt(Ax) = f tx− atλ.

De façon similaire, les conditions KKT pour le problème dual sont données par le systèmed’équations (2.35), imposant ainsi l’existence d’une solution primale x admissible avec un saut dedualité nul.

28 Théorie de la programmation linéaire

2.2.4 Solution de base duale et dégénérescence duale

Soit un problème primal de PL donné sous forme standard.

minx

f t x

sousAx = ax O

(2.36)

où A ∈ Rm×n est de rang plein en ligne. Son dual s’écrit alors comme :

maxλ

at λ

sousAt λ f

(2.37)

Il est alors possible d’établir des relations entre les solutions de base primales, les solutions de baseduales et de déduire une condition de dégénérescence du dual.

Théorème 12- Toute solution de base primale de matrice de base AB détermine également une solution de

base duale donnée par :λ = A−t

B fB (2.38)

- La solution de base duale est réalisable si et seulement si tous les coûts réduits associés f j

sont non négatifs.- Pour cette solution de base duale, les coûts réduits tels que f j = 0 correspondent à des

contraintes actives du problème dual.- Cette solution de base duale est dégénérée si et seulement si au moins une des variables hors

base a un coût réduit nul.

Exemple 13Soit le problème primal de PL sous forme standard :

min −14x1 − 10x3

sous x1 − x2 + x3 + z1 = 32x1 + x2 + 4x3 + z2 = 85x1 − x2 + x3 + z3 = 5

x1, x2, x3, z1, z2, z3 ≥ 0

(2.39)

dont le dualmax 3λ1 + 8λ2 + 5λ3

sous λ1 + 2λ2 + 5λ3 ≤ −14−λ1 + λ2 − λ3 ≤ 0λ1 + 4λ2 + λ3 ≤ −10

λ1, λ2, λ3 ≤ 0

(2.40)

Si l’on choisit une base donnée par sa matrice de base AB , ses variables de base xB et sa solutionx∗ :

AB =

1 1 12 4 05 1 0

xB = A−1B a =

2

3

5

3

2

3

x∗ =

2

3

0

5

3

2

3

0

Théorie de la dualité 29

une solution de base duale associée est calculée par :

λ = A−tB =

0−2−2

Le calcul des coûts réduits associés à cette solution de base donne :

f =

000022

On en déduit que la solution de base duale est réalisable mais dégénérée. Les quatre premièrescontraintes du problème dual sont actives en cette solution de base pour un espace paramétriquede dimension 3.

2.2.5 Analyse de sensibilité

L’analyse de sensibilité se définit comme l’étude de l’influence de perturbations dans les donnéesd’un problème de PL sur la solution et le coût optimaux. Elle s’intéresse également à l’évolution dela solution et du coût optimaux quand on ajoute/supprime une contrainte/variable. Cette sectionprésente un résumé de quelques résultats d’analyse de sensibilité. Un exposé détaillé des résultatsd’analyse de sensibilité et de programmation linéaire paramétrique pourrait en effet faire l’objetd’un chapitre complet [2], [25], [7]. Pour cette présentation, nous reprenons le problème de PLprimal écrit sous forme standard (2.36) et son dual (2.37). On suppose qu’une base optimaledonnée par la matrice AB a été calculée ainsi que sa solution optimale de base xB = A−1

B a. Lesdeux conditions suivantes sont alors vérifiées :

x∗B = A−1

B a O f −AtA−tB fB O (2.41)

La première condition correspond à la réalisabilité de la solution optimale du problème primalalors que la seconde traduit son optimalité. Le principe de l’analyse de sensibilité consiste à étudiercomment ces conditions sont affectées par des perturbations dans les données (A, a, f) du problèmede PL ou par des additions/suppressions de contraintes/variables. Nous omettons ici les résultatsconcernant les perturbations sur la matrice A qui sont plus complexes à appréhender.

Théorème 13- Si un des éléments de a ou de f est altéré par une perturbation δ, l’intervalle de valeurs deδ pour lesquelles la base de départ reste optimale peut être calculé explicitement.1- Le second membre perturbé est donné par a = a + δei. La condition d’optimalité n’est

pas affectée par ce changement alors que la condition de réalisabilité est toujours vérifiéepour δ tel que :

maxj|aB

ji>0

(

−xb(j)

aBji

)

≤ δ ≤ minj|aB

ji<0

(

−xb(j)

aBji

)

(2.42)

où aBji est l’élément ji de la matrice AB . Pour δ vérifiant cette condition, le coût optimalassocié au problème perturbé devient :

λ∗ta+ δλ∗i (2.43)

Si δ est en dehors de cet intervalle, la solution optimale initiale vérifie la condition d’opti-malité primale (duale réalisable) mais n’est pas réalisable pour le primal.

30 Théorie de la programmation linéaire

2- Si l’un des éléments de la fonction coût est perturbé par fj = fj + δ alors la condition deréalisabilité n’est pas affectée.

δ ≥ −f j si j hors base

δqli ≤ f i ∀ i 6= j si j = b(l) base

(2.44)

où qli est l’élément l de A−1B Ai.

- Si une nouvelle variable xn+1 est ajoutée avec la colonne associée An+1 et le coefficient decoût fn+1, la base AB reste optimale si et seulement si le coût réduit associé

fn+1 = fn+1 − f tBA

−1B An+1 ≥ 0 (2.45)

- Si une nouvelle contrainte inégalité αtx ≥ β est ajoutée alors la base AB reste optimale si lacondition suivante est vérifiée.

αtBA

−1B a− β ≥ 0 (2.46)

Exemple 14 (2D (suite))Si l’on ajoute la contrainte −2x − y ≥ −6 au problème de PL académique, la condition (2.46)s’écrit alors :

[

−2 −1 0] [

2//2//1]

= −6 ≥ −6

avec α =[

−2 −1 0 0 0]

, αB =[

−2 −1 0]

et β = −6. La base AB3 reste donc opti-male malgré l’addition de cette contrainte. Cela est parfaitement logique puisque cette contraintene change pas le domaine réalisable. A l’inverse, si l’on considère la contrainte donnée par x ≤ 1,on obtient la condition (2.46) :

[

−1 0 0] [

2//2//1]

= −2 6≥ −1

avec α =[

−1 0 0 0 0]

, αB =[

−1 0 0]

et β = −1. La condition (2.46) n’est plusvérifiée et la base AB3 n’est plus optimale pour ce nouveau problème de PL.

2.3 Théorie de la complexité et programmation linéaire

2.3.1 Introduction

La présentation de cette section ne se veut pas complètement rigoureuse ni exhaustive mais apour objectif d’exposer les principales définitions permettant d’aborder les questions élémentairesde complexité des algorithmes de résolution des problèmes de PL du point de vue pratique. Onpourra se reporter à la référence [11] pour un exposé plus complet sur la théorie de la complexitéet [27, chapitre 3], [30, section 1.4], [2, section 11.8], [18, chapitre 3] pour des éléments de théoriede la complexité en programmation linéaire.

La théorie de la complexité étudie les ressources en termes de temps de calcul et d’espacemémoire, nécessaires à la résolution d’un problème par un calculateur. En particulier, elle a pourobjet de définir des grandes classes de problèmes en fonction de leur complexité supposée derésolution. Pour réaliser cette classification, il faut définir précisément et formellement les notions deproblème, d’algorithme et enfin ce que l’on entend par complexité. Un problème est en général définicomme une question à résoudre pour un ensemble de paramètres ou de variables libres dont la valeurn’est pas spécifiée. Un jeu de données (instance en anglais) est obtenu en attribuant des valeursparticulières à l’ensemble de ces paramètres. La théorie de la complexité s’applique particulièrementaux problèmes de décision plutôt qu’aux problèmes d’optimisation. Dans le premier cas, il s’agitd’établir pour le problème une solution de type oui/non ou 0/1 comme réponse à la question posée.Le problème de décision est défini alors comme une fonction de l’ensemble des données vers 0, 1.Il est toutefois toujours possible de transformer le problème d’optimisation en problème de décision(en imposant une borne sur la valeur à optimiser) et d’y appliquer la théorie de la complexité.

Théorie de la complexité et PL 31

Un algorithme est défini de manière générale comme une procédure composée d’étapes élémen-taires. Un algorithme A est dit résoudre un problème P s’il peut être appliqué pour n’importe queljeu de données I de P et est garanti de toujours produire une solution pour ce jeu de données I.Un algorithme est souvent assimilé à un programme d’ordinateur écrit dans un langage particulier.Quoique de portée générale, la théorie de la complexité nécessite de définir précisément le modèlede machine utilisé. Citons par exemple la machine de Turing déterministe, la machine de Turingnon déterministe ou la machine de Von Neumann. Les notions présentées dans cette section sontprincipalement définies dans le cadre de la machine de Turing et de l’arithmétique rationnelle.Cherchant en général l’algorithme le plus « efficace » pour résoudre un problème donné, il estnaturel d’essayer de définir une mesure de cette efficacité. Le temps d’exécution de l’algorithmedéfini comme une fonction de la taille du jeu de données du problème à résoudre est généralementle facteur dominant déterminant l’efficacité pratique d’un algorithme dans la résolution d’un pro-blème donné. La taille du jeu de données dépend quant à elle du schéma de codage retenu pourl’entrée des données. Le calcul de la complexité en temps sera donc dépendant du modèle de lamachine et du schéma de codage utilisés. Toutefois, la théorie générale de la complexité et lesquelques éléments présentés ici restent valides en dépit de ces différences si l’on garde à l’esprit queles résultats sont obtenus pour un codage particulier et un modèle de machine donné.

2.3.2 Complexité d’un algorithme et d’un problème

Soit un algorithme A résolvant un problème P sur les données I. On définit ν(I) ∈ N mesurantla longueur d’écriture des données I au moyen d’un alphabet fini (ensemble fini de symboles).ν(I) représente la taille du problème, i.e. la taille mémoire nécessaire afin de stocker l’ensembledes données I du problème P . Par exemple, en programmation linéaire (sous forme standard), lesdonnées sont constituées par les éléments du triplet (A, a, f). La taille n (parfois également m) dela matrice A définit la dimension du problème de PL. De plus, on associe la complexité c(A, I) ∈ N

à la paire (A, I) pour mesurer le nombre d’étapes élémentaires de la résolution du problème P surles données I à l’aide de l’algorithme A. Différents types de complexité sont usuellement utilisésdans le domaine de l’analyse de complexité : complexité dans le pire des cas, complexité moyenne,complexité asymptotique... Seuls les deux premiers types sont définis dans ce document. La majoritédes calculs de complexité se fondent sur l’analyse dans le pire des cas.

Définition 25 (Complexité dans le pire des cas)Le calcul de complexité dans le pire des cas consiste à déterminer une borne supérieure sur letemps d’exécution requis pour résoudre un problème donné avec n’importe quel jeu de données I.Formellement, si tout jeu de données I appartient à l’ensemble Ip alors la complexité dans le piredes cas cpc(A) se définit comme :

cpc(A) = supI∈Ip

c(A, I) (2.47)

Toutefois, l’analyse de complexité de certains algorithmes (l’algorithme du simplexe en est unexemple typique) a montré de grands écarts entre la complexité calculée dans le pire des cas et lesperformances relevées pour certains jeux de données typiques. Pour pallier ce défaut, les algorithmespeuvent être également caractérisés par une complexité moyenne.

Définition 26 (Complexité moyenne)On suppose que l’ensemble des données possibles est noté Ip et que l’on dispose d’une distributionde probabilités sur Ip alors la complexité moyenne de l’algorithme A est calculée par :

cm(A) = EI∈Ip[c(A, I)] (2.48)

32 Théorie de la programmation linéaire

2.3.3 Classes de complexité

Définition 27 (Algorithme et problème polynomial)Un algorithme A résolvant un problème P est polynomial si, pour toute donnée I, il existe unpolynôme Q tel que c(A, I) = O(Q(ν(I)). Cela signifie qu’il existe une constante k telle que :

c(A, I) ≤ kQ(ν(I))

Un algorithme pour lequel une telle constante k n’existe pas est appelé algorithme en tempsexponentiel.

Un problème P sera dit polynomial s’il existe un algorithme A polynomial résolvant ce problèmeP . La classe des problèmes polynomiaux est notée classe P .

Le modèle de calcul pour définir la classe P est la machine de Turing déterministe. La notationusuelle pour la complexité polynomiale c(A, I) est donnée par O(pα1

1 pα22 · · · ) où les pi sont des pa-

ramètres du problème P . La notation signifie que c(A, I) se comporte comme le monôme pα1

1 pα2

2 · · ·quand les pi tendent vers l’infini. La classe des algorithmes polynomiaux est considérée de manièregénérale comme une classe d’algorithmes efficaces en pratique et la classe des problèmes P commeune classe de problèmes « faciles » à résoudre à l’inverse des algorithmes nécessitant un tempsexponentiel de calcul pour la résolution d’un problème P .

Définition 28 (Problèmes NP)Un problème est dit appartenir à la classe NP s’il peut être résolu en temps polynomial par unemachine de Turing non déterministe.

Un des questionnements majeurs en théorie de la complexité concerne la question P = NP ?. Demanière non rigoureuse, on peut définir la classe P comme la classe des problèmes qui peuventêtre résolus rapidement alors que la classe NP est celle des problèmes dont une solution peutêtre validée rapidement. La seule relation clairement identifiée entre les deux classes est P ⊆ NPpuisque les machines de Turing déterministes forment une sous-classe des machines de Turingnon-déterministes. Si P 6= NP alors une autre sous-classe de problèmes peut être définie. Afin dedéfinir cette classe de manière rigoureuse, il est nécessaire d’introduire la notion de transformationpolynomiale.

Définition 29 (Transformation polynomiale)Un problème P se transforme en temps polynomial en le problème P ′ (avec la notation P ∝ P ′)s’il existe un algorithme en temps polynomial tel que la solution, pour un jeu de données I de Pest identique à la solution pour un jeu de données I ′ pour le problème P ′.

Deux problèmes P et P ′ seront polynomialement équivalents si P ∝ P ′ et P ′ ∝ P .

La signification principale d’une transformation polynomiale d’un problème est liée essentiellementau résultat suivant.

Lemme 2Si P ∝ P ′ alors P ∈ P ⇒ P ′ ∈ P .

Définition 30 (Problèmes NP-complets)Un problème P est dit NP-complet si P ∈ NP et pour tout problème P ′ ∈ NP alors P et P ′

sont polynomialement équivalents.

Un exemple de problème NP-complet est donné par celui du problème de décision du voyageur decommerce. De manière informelle, la classe P peut être considérée comme la classe des problèmesles plus « faciles » à résoudre de NP alors que la classe des problèmes NP-complets regrouperaitla classe des problèmes « les plus difficiles » à résoudre de NP . Enfin, si l’on ne se limite pas à laclasse des problèmes NP , on peut définir une dernière classe.

Définition 31 (Problèmes NP-difficiles)Un problème P tel que tout problème P ′ NP-complet peut être polynomialement transformé enP , P ′ ∝ P, ∀ P ′ ∈ NP-complet est un problème NP-difficile.

Théorie de la complexité et PL 33

Le problème d’optimisation du voyageur de commerce est un problème NP-difficile.

34 Théorie de la programmation linéaire

Chapitre 3

Algorithme du simplexe

L’algorithme du simplexe permet de résoudre des programmes linéaires en nombres réels uni-quement. Bien que sa complexité dans le pire des cas soit exponentielle, il se comporte très bien surles programmes linéaires issus de « vrais » problèmes et souvent bien mieux que des algorithmesconcurrents de meilleure complexité dans le pire des cas. Il a été inventé par George Dantzig en1947.

Dans l’algorithme du simplexe, on commence par transformer le programme linéaire à traiteren un programme linéaire équivalent sous forme standard. Il ne reste alors plus qu’à déterminerune solution optimale d’un programme linéaire sous forme standard.

L’algorithme du simplexe consiste à se déplacer d’un sommet du polyèdre en un autre sommetdu polyèdre tout en augmentant l’objectif économique. Ce raisonnement est valable parce que lepolyèdre des solutions réalisables est convexe : il n’y a pas de risque de se trouver coincé dans unminimum local. La convexité découle du fait que les contraintes sont données par des expressionslinéaires.

3.1 Cas favorable

Exemple 15 (Boulanger)Un boulanger veut produire des rouleaux de pâte brisée (prix de vente : 4 euros le rouleau) et desrouleaux de pâte feuilletée (prix de vente : 5 euros le rouleau). La production d’un rouleau de pâtebrisée nécessite 2 kilos de farine et 1 kilo de beurre. Celle d’un rouleau de pâte feuilletée 1 kilo defarine, 2 kilos de beurre et 1 kilo de sel. Comment maximiser les bénéfices sachant qu’il disposed’un stock de 8000 kilos de farine, 7000 kilos de beurre et 3000 kilos de sel ? On a affaire à unprogramme linéaire en deux variables :

1. x1 le nombre de milliers de rouleaux de pâte brisée à produire

2. x2 le nombre de milliers de rouleaux de pâte feuilletée à produire

Mathématiquement, le programme linéaire s’écrit :

max 4000 x1 + 5000 x2

2 x1 + x2 ≤ 8 (farine)x1 + 2 x2 ≤ 7 (beurre)

x2 ≤ 3 (sel)x1, x2 ≥ 0 (x1, x2 ∈ R)

On le met sous forme standard en utilisant trois variables d’écart x3, x4 et x5.

max z = 4000 x1 + 5000 x2

2 x1 + x2 + x3 = 8x1 + 2 x2 + x4 = 7

x2 + x5 = 3x1, . . . , x5 ≥ 0

35

36 Algorithme du simplexe

Sous forme matricielle, on a :

f t x = max zAx = ax ≥ 0

avec f =

40002000000

, A =

2 1 1 0 01 2 0 1 00 1 0 0 1

, a =

873

, x =

x1

x2

x3

x4

x5

.

3.1.1 Initialisation

On commence par extraire de la matrice une base I qui soit « réalisable » et telle que leprogramme linéaire soit « sous forme canonique par rapport à elle ». Comme on va le voir, la listeI = (3, 4, 5) des indices des variables d’écart fournit une telle base.

A =

2 1 1 0 01 2 0 1 00 1 0 0 1

.

Définition 32Soit I une base. Les variables dont les indices appartiennent à I sont appelées variables de base.Les autres sont appelées variables hors base.

Les variables de base sont ici les variables d’écart x3, x4 et x5.

Définition 33Un programme linéaire sous forme standard est dit sous forme canonique par rapport à une base I

si la matrice AI est l’identité et les coûts correspondant aux variables de base sont nuls.

Le programme linéaire de l’exemple est sous forme canonique par rapport à la base I.

Définition 34On suppose une base fixée. On appelle solution de base la solution x du système Ax = a obtenueen posant les variables hors base égales à zéro.

La solution de base I est ici

x =

x1

x2

x3

x4

x5

=

00873

.

Définition 35Une base est dite réalisable si la solution de base qui lui correspond est réalisable.

La solution de base est par définition une solution du système Ax = a. Il ne reste plus qu’àvérifier la contrainte de positivité des variables, qui n’est pas exprimée par les équations. La base Ichoisie dans l’exemple est donc réalisable.

Proposition 5Les valeurs des variables de base dans la solution de base se lisent dans le vecteur a.

C’est une conséquence du fait que la matrice AI est l’identité.On associe un sommet du polyèdre D à chaque solution de base : on l’obtient en supprimant,

dans la solution de base, les coordonnées correspondant aux variables introduites par la mise sousforme standard. Dans notre cas, on supprime les coordonnées d’indice 3, 4 et 5, qui correspondent

Cas favorable 37

aux variables d’écart. Sur l’exemple, le sommet associé à la solution de base I est l’origine x1 =x2 = 0.

On définit z0 comme la constante pour laquelle la droite de l’objectif f t x = z0 passe par lesommet associé à la solution de base x. Dit autrement :

Définition 36On définit z0 comme l’objectif économique évalué sur la solution de base : z0 =

deff tx.

On forme un premier « tableau simplicial » à partir du programme linéaire et de la base Ichoisie en bordant la matrice A à droite avec le vecteur a, à gauche avec le vecteur des variablesde base et en dessous avec l’objectif. On place chaque variable de base sur la ligne où figure savaleur dans la solution de base. On initialise la case en bas à droite à −z0. Comme la base initialeest formée des variables d’écart qui ne contribuent pas à l’objectif on a z0 = 0.

x1 x2 x3 x4 x5

x3 2 1 1 0 0 8x4 1 2 0 1 0 7x5 0 1 0 0 1 3

4000 5000 0 0 0 0

3.1.2 Invariants de boucle

L’algorithme du tableau simplicial s’écrit schématiquement ainsi :

Algorithme 1 Algorithme du tableau simplicial

Former le premier tableau simplicial ;Tant que Ce n’est pas fini Faire

Former le tableau simplicial suivant (et changer de base)Fin tant que

Définition 37Un invariant de boucle « tant que » est une propriété vraie à chaque fois que la condition du « tantque » est évaluée.

Un invariant de boucle « tant que » doit donc être vrai au début de la première itération. Il doitaussi être vrai lorsque la boucle s’arrête, c’est-à-dire lorsque la condition s’évalue en « faux ». Com-biné à la négation de la condition, l’invariant permet alors de déduire les propriétés des variablescalculées par la boucle.

Proposition 6(invariants de boucle)

Les propriétés suivantes sont des invariants de l’itération principale de l’algorithme du tableausimplicial :

1. Le programme linéaire est sous forme canonique par rapport à la base.

2. La base est réalisable (les éléments de la dernière colonne sont positifs ou nuls).

3. Les variables de base sont listées sur la première colonne.

4. La case en bas à droite vaut −z0.

3.1.3 L’itération principale

Il s’agit d’un pivot de Gauss–Jordan muni d’une stratégie spéciale pour choisir le pivot. Dansce paragraphe, on se contente d’énoncer l’algorithme. On remarque que l’algorithme ne peut pasconclure au fait que le programme linéaire est sans solution réalisable. Ce cas-là est traité dans leparagraphe intitulé « problèmes de démarrage ».

38 Algorithme du simplexe

Pour choisir la colonne s du pivot, on cherche sur la dernière ligne (objectif) le coefficient (lecoût) le plus grand.

Si ce coût est négatif ou nul on s’arrête : une solution optimale est trouvée.S’il est positif, la colonne du pivot est trouvée.Sur l’exemple, la colonne du pivot est la colonne s = 2 (correspondant à x2).On cherche ensuite s’il existe au moins un élément strictement positif sur la colonne du pivot

(on ne cherche pas sur la ligne de l’objectif).S’il n’y en a pas alors on s’arrête : le problème n’est pas borné (il n’y a pas de solution optimale).Parmi toutes les lignes contenant un élément strictement positif, on choisit pour ligne du pivot

une ligne r telle que le rapport ar/Asr est minimal.

Sur l’exemple, on est amené à comparer les rapports 8/1, 7/2 et 3/1. Le rapport minimalest 3/1. La ligne du pivot est donc la ligne r = 3.

On applique une étape du pivot de Gauss–Jordan : on multiplie la ligne r par l’inverse du pivot(de telle sorte que le pivot devienne 1) et on ajoute un multiple de cette ligne à toutes les autreslignes (ligne d’objectif et dernière colonne incluses) de façon à faire apparaître des zéros sur lacolonne du pivot.

Enfin on change de base en faisant sortir de la base la variable x5 qui se trouve sur la ligne dupivot dans le tableau simplicial et en la remplaçant par la variable x2 correspondant à la colonnedu pivot. Sur l’exemple, on obtient

x1 x2 x3 x4 x5

x3 2 0 1 0 −1 5x4 1 0 0 1 −2 1x2 0 1 0 0 1 3

4000 0 0 0 −5000 −15000

Et on recommence.

Proposition 7Les invariants sont à nouveau vérifiés.

On vérifie que le nouveau programme linéaire est sous forme canonique par rapport à I ′. Aupassage, on remarque que l’ancienne base I est toujours une base (le pivot de Gauss ne change pasles bases) mais que le nouveau programme linéaire n’est pas sous forme canonique par rapport àelle.

La solution de base I ′ obtenue en posant les variables hors base x1 et x5 égales à zéro est

x′ =

x1

x2

x3

x4

x5

=

03510

.

Comme toutes ses coordonnées sont positives ou nulles, la base I ′ est réalisable. On a aussi que lesvaleurs des variables de base I ′ se lisent sur la colonne a′ et que le réel en bas à droite vaut bien−z′0 = −tf x′ = −4000 x1 − 5000 x2 = −15000.

Proposition 8Le sommet associé à la nouvelle base est adjacent au sommet associé à l’ancienne.

Le sommet associé à la nouvelle base est le sommet (x1, x2) = (0, 3). La droite parallèle à ladroite de l’objectif qui passe par ce sommet a pour équation 4000 x1 + 5000 x2 = 15000.

Proposition 9La valeur de z0 a augmenté.

Cas favorable 39

3.1.4 Quelques remarques

Le fait de choisir une colonne sur laquelle le coût est non nul fait que la variable qui entre enbase est bien une variable hors base (cf. le premier invariant).

Le choix de la colonne du pivot est heuristique. On peut en fait choisir n’importe quelle colonnesur laquelle le coût est positif. Sur l’exemple, on aurait pu faire entrer en base la variable x1. Ons’interdit de choisir une colonne sur laquelle le coût est négatif pour ne pas faire diminuer l’objectifréalisé.

Le choix de la ligne n’est pas heuristique. On voit sur l’exemple que si on choisit une autreligne que celle donnée par l’algorithme on obtient des nombres négatifs sur la colonne des secondsmembres c’est-à-dire une base non réalisable.

3.1.5 Fin de l’exemple

La colonne du pivot est la colonne s = 1 correspondant à x1. La ligne du pivot est la ligne r = 2.La variable x4 sort de la base. La variable x1 y entre. Le programme linéaire est sous formecanonique par rapport à la base I ′′ = (3, 1, 2). La solution de base I ′′ correspond au sommet(x1, x2) = (1, 3).

x1 x2 x3 x4 x5

x3 0 0 1 −2 3 3x1 1 0 0 1 −2 1x2 0 1 0 0 1 3

0 0 0 −4000 3000 −19000

La colonne du pivot est la colonne s = 5 correspondant à x5. La ligne du pivot est la ligne r = 1. Lavariable x3 sort de la base. La variable x5 entre. Le programme linéaire est sous forme canonique parrapport à la base I ′′′ = (5, 1, 2). La solution de base I ′′′ correspond à la solution (x1, x2) = (3, 2).

x1 x2 x3 x4 x5

x5 0 0 1/3 −2/3 1 1x1 1 0 2/3 −1/3 0 3x2 0 1 −1/3 2/3 0 2

0 0 −1000 −2000 0 −22000

Tous les coûts sont négatifs ou nuls (critère d’arrêt de l’algorithme). La solution de base I ′′′ estdonc optimale. L’objectif atteint pour cette solution est z′′′0 = 22000.

On vérifie que les trois propositions énoncées ci-dessus sont vérifiées à chaque itération.

3.1.6 Programme sous forme canonique associé à un tableau simplicial

On a compris sur un exemple qu’à tout programme linéaire sous forme canonique avec secondsmembres positifs ou nuls on pouvait associer un tableau simplicial satisfaisant les invariants. Laréciproque est vraie aussi.

Proposition 10À tout tableau simplicial satisfaisant les invariants, il est possible d’associer un programme linéairesous forme canonique avec seconds membres positifs ou nuls.

Il suffit pour cela de traduire le tableau simplicial comme un programme linéaire sous formestandard puis d’interpréter les variables de base comme des variables d’écart. Considérons à titred’exemple le deuxième tableau simplicial obtenu à partir de l’exemple du boulanger :

x1 x2 x3 x4 x5

x3 2 0 1 0 −1 5x4 1 0 0 1 −2 1x2 0 1 0 0 1 3

4000 0 0 0 −5000 −15000

40 Algorithme du simplexe

Ce tableau correspond au programme linéaire sous forme standard

max z = 4000 x1 − 5000 x5 + 150002 x1 + x3 − x5 = 5x1 + x4 − 2 x5 = 1

x2 + x5 = 3x1, . . . , x5 ≥ 0

Il s’agit en fait du programme linéaire obtenu en interprétant l’équation x2 + x5 = 3 comme larègle de substitution x2 → 3−x5 et en l’utilisant pour réécrire toutes les autres équations ainsi quel’objectif économique du programme initial. Interprétons maintenant les variables de base commedes variables d’écart. On obtient le programme linéaire suivant :

max z = 4000 x1 − 5000 x5 + 150002 x1 − x5 ≤ 5x1 − 2 x5 ≤ 1

x5 ≤ 3x1, x5 ≥ 0

On remarque que c’est bien le premier invariant qui rend cette transformation possible : chaquevariable choisie comme variable d’écart apparait avec un coefficient 1 dans exactement une équationet n’apparaît pas dans l’objectif économique. D’où l’expression « programme linéaire sous formecanonique par rapport à une base ».

La transformation est réversible : si on construit un premier tableau simplicial à partir de ceprogramme, on retrouve le tableau simplicial ci-dessus (au nommage des variables d’écart près).Résoudre ce programme linéaire équivaut donc à résoudre l’exemple du boulanger.

3.2 Cas d’arrêt particuliers

3.2.1 Problèmes bornés

Revenons au tableau simplicial :

x1 x2 x3 x4 x5

x3 2 0 1 0 −1 5x4 1 0 0 1 −2 1x2 0 1 0 0 1 3

4000 0 0 0 −5000 −15000

La solution réalisable courante est la solution de base

x′ =

03510

.

L’objectif est de maximiser 4000 x1 − 5000 x5 + 15000. On voit que les variables de base x2, x3 etx4 ont une valeur non nulle mais ne contribuent pas à l’objectif (on ne perdrait rien à diminuerleur valeur) alors que la variable x1 a une valeur nulle mais est associée à un coût positif dansl’objectif. On a tout intérêt à augmenter sa valeur. Il suffit pour cela de la faire entrer en base. Parun raisonnement similaire, on voit qu’on ne peut pas modifier la valeur de x5 sans faire diminuerl’objectif. On en déduit que lorsque tous les coûts sont négatifs ou nuls, il est impossible de faireentrer une variable en base sans faire diminuer l’objectif : on a atteint un maximum local et doncle maximum global recherché puisque le polyèdre des solutions réalisables est convexe.

Les raisonnements tenus ci-dessus justifient le critère d’arrêt de l’algorithme dans le cas deproblèmes bornés.

Cas d’arrêt particuliers 41

Théorème 14(condition suffisante d’optimalité)

Considérons un programme linéaire sous forme canonique par rapport à une base réalisable I.Si les coûts correspondant aux variables hors base sont négatifs ou nuls alors la solution de base Iest la solution optimale et l’objectif à l’optimum est z0.

3.2.2 Problèmes non bornés

Modifions un peu le deuxième tableau simplicial de telle sorte que l’algorithme s’arrête enindiquant que le programme linéaire est non borné. Il suffit de rendre négatifs tous les coefficientsprésents sur la colonne du pivot.

x1 x2 x3 x4 x5

x3 −2 0 1 0 −1 5x4 −1 0 0 1 −2 1x2 0 1 0 0 1 3

4000 0 0 0 −5000 −15000

Considérons le programme linéaire sous forme canonique associé à ce tableau simplicial.

max z = 4000 x1 − 5000 x5 + 15000−2 x1 − x5 ≤ 5−x1 − 2 x5 ≤ 1

x5 ≤ 3x1, x5 ≥ 0

Parce que tous les coefficients situés sur la colonne du pivot sont négatifs, on voit qu’on peutattribuer à x1 une valeur arbitrairement grande sans violer les contraintes. Parce que le coûtassocié à x1 est positif, on voit qu’augmenter la valeur de x1 augmente l’objectif réalisé.

On a donc bien affaire à un programme linéaire non borné.

Théorème 15(problème non borné)

Considérons un programme linéaire sous forme canonique par rapport à une base réalisable I.S’il existe un indice de colonne s tel que le coût fs soit positif et tous les coefficients de la colonne ssoient négatifs ou nuls alors le programme linéaire n’est pas borné.

3.2.3 Sommets multiples

Dans certains cas, il se peut que l’élément de la colonne des seconds membres situé sur la lignedu pivot, ar, soit nul. Dans ce cas, la valeur de la variable de base xs dans la solution de baseest nulle et l’objectif réalisé n’augmente pas. On passe d’un sommet à un sommet adjacent sansdéplacer la droite de l’objectif. Comme le polyèdre est convexe, les deux sommets sont superposés :on a affaire à un sommet « multiple ».

Les sommets multiples sont rares dans les petits programmes linéaires écrits avec un minimumde contraintes et de variables. Ils apparaissent plus naturellement dans des modèles plus volumineuxlorsqu’on rajoute, par exemple, des contraintes et des variables « mathématiquement inutiles » quiservent à nommer des quantités intermédiaires et simplifient l’écriture des modèles.

3.2.4 Le problème de l’arrêt

Dans le cas où l’objectif réalisé augmente strictement à chaque itération, l’algorithme s’arrêtenécessairement : des valeurs différentes de l’objectif réalisé correspondent à des sommets différentsdu polyèdre D , or D n’a qu’un nombre fini de sommets. L’algorithme n’est donc susceptible deboucler que dans le cas où l’objectif réalisé garde la même valeur, c’est-à-dire dans le cas de sommetsmultiples.

42 Algorithme du simplexe

La stratégie adoptée ne garantit pas l’arrêt de l’algorithme.Il se peut que l’algorithme énumère cycliquement une série de bases réalisables sans que l’objectif

réalisé change. Voici un exemple :

max z = (3/4)x1 − 20 x2 + (1/2)x3 − 6 x4

(1/4)x1 − 8 x2 − x3 + 9 x4 ≤ 0(1/2)x1 − 12 x2 − (1/2)x3 + 3 x4 ≤ 0

x3 ≤ 1.

Après mise sous forme standard et ajout de trois variables d’écart x5, x6 et x7, on obtient unpremier tableau simplicial et une première base (x5, x6, x7). En appliquant la stratégie que nousavons énoncée, on peut obtenir (« peut » parce qu’on a parfois plusieurs choix possibles pour laligne) successivement les bases (x1, x6, x7), (x1, x2, x7), (x3, x2, x7), (x3, x4, x7), (x5, x4, x7) et(x5, x6, x7). Le tableau simplicial obtenu à la dernière étape est égal au premier tableau simplicial.L’objectif réalisé en la solution de base a toujours gardé la valeur z0 = 0.

Théorème 16(stratégie garantie)

La stratégie suivante de sélection du pivot garantit l’arrêt de l’algorithme.

1. choisir la colonne possible de plus petit indice (s est le plus petit indice i tel que fi > 0).

2. choisir la ligne possible de plus petit indice (prendre pour r le plus petit indice i tel queAs

r > 0 et tel que la base obtenue après pivot soit réalisable).

Cette stratégie garantie est rarement utilisée parce que, sur beaucoup de problèmes pratiques,elle nécessite beaucoup plus d’itérations que la stratégie usuelle pour atteindre la solution optimale.Une bonne méthode consiste à appliquer la stratégie non garantie tout en conservant un petit his-torique des valeurs de l’objectif réalisé. Cet historique permet de vérifier que les valeurs de l’objectifréalisé ne restent pas stationnaires trop longtemps. Si ce n’est pas le cas, il suffit d’appliquer lastratégie garantie jusqu’à ce que la valeur de l’objectif réalisé change puis d’appliquer à nouveaula stratégie usuelle.

3.2.5 Complexité de l’algorithme

L’exemple suivant montre que l’algorithme du tableau simplicial (muni d’une stratégie qui ga-rantit l’arrêt) a une complexité en temps exponentielle en le nombre de variables (ou de contraintes)dans le pire des cas.

max z = 2n−1 x1 + 2n−2 x2 + · · ·+ 2 xn−1 + xn

x1 ≤ 54 x1 + x2 ≤ 25

8 x1 + 4 x2 + x3 ≤ 125...

2n x1 + 2n−1 x2 + · · ·+ 4 xn−1 + xn ≤ 5n

x1, . . . , xn ≥ 0.

Ce programme linéaire a n variables, n contraintes. Le polyèdre des solutions réalisables a 2n

sommets. L’algorithme du tableau simplicial, partant de x1 = · · · = xn = 0 énumère tous lessommets avant d’atteindre la solution optimale (x1, . . . , xn) = (0, . . . , 0, 5n). Si la complexité dansle pire des cas était représentative de la complexité pour les « vrais » exemples alors le simplexeserait inutilisable. Penser que certains problèmes comportent des centaines de milliers de variables.Heureusement, ce n’est pas le cas !

3.3 Problèmes de démarrage

On dit qu’un problème P peut se réduire en un problème Q si toute instance de P peut sereformuler en une instance de Q.

Problèmes de démarrage 43

Supposons qu’un problème P puisse se réduire en un problème Q et qu’on connaisse un algo-rithme de résolution pour toutes les instances de Q. Alors on dispose d’un algorithme de résolutionpour toutes les instances de P : il suffit, étant donné une instance de P , de la reformuler en uneinstance de Q, de déterminer la solution du problème reformulé avec l’algorithme connu puis deréinterpréter la solution obtenue comme une solution du problème initial.

Pour pouvoir traiter les programmes linéaires généraux, la difficulté consiste à former un premiertableau simplicial satisfaisant les invariants. En effet, former ce premier tableau équivaut à identifierun sommet du polyèdre des solutions réalisables (via la solution de base) et donc, en particulier,à démontrer que le programme linéaire admet au moins une solution réalisable. Dans le « casfavorable » (inégalités ≤ avec seconds membres positifs ou nuls), l’origine est une solution évidentemais c’est faux en général où il se peut que le programme linéaire soit infaisable.

Dans ce paragraphe, on montre que le problème de la recherche d’un premier tableau simplicialpeut se réduire en un problème d’optimisation, la résolution d’un autre programme linéaire, appelé« programme artificiel », qui relève, lui, du cas favorable 1. Dit autrement, si on sait résoudre lesprogrammes linéaires dans le cas favorable, on sait résoudre les programmes linéaires dans tous lescas. Une fois le programme artificiel résolu, on détermine facilement si le problème initial admetau moins une solution. Si c’est le cas, il ne reste plus qu’à résoudre le programme linéaire initialen partant de la base trouvée. Prenons pour programme linéaire initial :

(PL)

max z = −x1 − x2

−3 x1 − 4 x2 ≤ −122 x1 + x2 ≤ 4

x1, x2 ≥ 0

La mise sous forme standard introduit deux variables d’écart.

(PL)

max z = −x1 − x2

3 x1 + 4 x2 − x3 = 122 x1 + x2 + x4 = 4x1, x2, x3, x4 ≥ 0

La base (3, 4) n’est pas réalisable puisque la solution de base comporte une coordonnée négative(on a x3 = −12). Voici le programme artificiel associé à l’exemple.

(PLA)

minw = x5

3 x1 + 4 x2 − x3 + x5 = 122 x1 + x2 + x4 = 4

x1, x2, x3, x4, x5 ≥ 0

On a introduit une « variable artificielle » x5 dans l’équation qui pose problème. On a pris pour« objectif artificiel » : minimiser cette variable.

Explication. Le programme artificiel relève du cas favorable : la base évidente (x5, x4) estréalisable. Il y a bijection entre les solutions du programme linéaire initial et les solutions duprogramme artificiel telles que x5 = 0. Pour déterminer si le programme initial admet au moinsune solution, il suffit donc de déterminer si le programme artificiel a une solution telle que x5 = 0.C’est ce qu’on fait en prenant pour objectif : minimiser x5.

Pour pouvoir appliquer l’algorithme du tableau simplicial il reste une difficulté technique àlever : la variable x5 est en base alors que le coût f5 est non nul (l’un des invariants n’est passatisfait). Il suffit de reformuler l’objectif en utilisant l’équation où figure la variable artificielle :

3 x1 + 4 x2 − x3 + x5 = 12 ⇒ −x5 = 3 x1 + 4 x2 − x3 − 12.

Le nouvel objectif à maximiser est donc :

maxw = 3 x1 + 4 x2 − x3 − 12.

1. La méthode présentée ici est la méthode « des deux phases ». D’autres méthodes existent comme, par exemple,celle du « grand M ».

44 Algorithme du simplexe

Pour déterminer w0, on évalue l’objectif −x5 (ou encore 3 x1 + 4 x2 − x3 − 12) sur la solution debase. Attention à la constante cette fois. On obtient w0 = −12. On obtient ainsi un premier tableausimplicial satisfaisant tous les invariants de l’algorithme du tableau simplicial

x1 x2 x3 x4 x5

x5 3 4 −1 0 1 12x4 2 1 0 1 0 4

3 4 −1 0 0 12

On applique au programme artificiel l’algorithme donné dans le cas favorable. On trouve en uneitération le tableau simplicial suivant :

x1 x2 x3 x4 x5

x2 3/4 1 −1/4 0 1/4 3x4 5/4 0 1/4 1 −1/4 1

0 0 0 0 −1 0

On a une base réalisable I ′ = (2, 4) avec une solution de base I ′

x′ =

03010

.

L’optimum du programme artificiel est w0 = 0. La variable artificielle x5 est hors base. On obtientune première base réalisable pour le programme linéaire initial en « supprimant » purement etsimplement la variable artificielle. On obtient ainsi un programme linéaire équivalent au programmelinéaire initial avec une première base réalisable I = (2, 4) :

max z = −x1 − x2

3/4 x1 + x2 − 1/4 x3 = 35/4 x1 + 1/4 x3 + x4 = 1

x1, x2, x3, x4 ≥ 0

Synthétisons :

Proposition 11Le programme linéaire initial admet au moins une solution réalisable si et seulement si l’objectifréalisé à l’optimum du programme artificiel est w0 = 0.

Proposition 12Supposons que l’objectif réalisé à l’optimum du programme artificiel soit w0 = 0. La solutionoptimale du programme artificiel fournit une première base réalisable au programme linéraireinitial si et seulement si aucune variable artificielle n’est en base.

On remarque que le programme linéaire obtenu ne satisfait pas tous les invariants de l’algo-rithme du tableau simplicial puisque les coûts correspondant aux variables de base ne sont pastous nuls. On applique la même technique que précédemment : on réécrit l’objectif en se servantde la première équation.

3/4 x1 + x2 − 1/4 x3 = 3 ⇒ x2 = 3− 3/4 x1 + 1/4 x3.

Et donc −x1−x2 = −1/4 x1− 1/4 x3− 3. Le nouvel objectif est (on peut supprimer la constante) :

max z = −1/4 x1 − 1/4 x3.

Récapitulatif 45

Pour déterminer z0, on évalue l’objectif (attention à la constante) sur la solution de base : z0 = −3.

x1 x2 x3 x4

x2 3/4 1 −1/4 0 3x4 5/4 0 1/4 1 1

−1/4 0 −1/4 0 3

On peut appliquer l’algorithme étudié dans le cas favorable. Sur l’exemple, il s’arrête tout de suitepuisque tous les coûts sont négatifs ou nuls (mais c’est un hasard dû à l’exemple). La solutionoptimale du programme linéaire initial est donc

(

x1

x2

)

=

(

03

)

.

L’objectif réalisé à l’optimum est z0 = −3.

Remarques

Dans le cas général, on peut être amené à introduire plusieurs variables artificielles. L’objectifdu programme linéaire artificiel consiste alors à minimiser leur somme.

Il existe des cas « dégénérés » où, à l’optimum du programme artificiel, l’objectif réalisé est nul(prouvant que le programme initial a au moins une solution) mais où la base réalisable contient aumoins une variable artificielle (ayant alors forcément une valeur nulle).

C’est gênant parce qu’alors, en « supprimant » la variable artificielle, on « perd » la base finaledu programme artificiel qui doit nous servir de première base pour traiter le programme initialmais ce n’est pas rédhibitoire : comme sa valeur est nulle dans la solution de base, on ne modifie pasl’objectif réalisé à l’optimum du programme artificiel en la rendant hors base. Il suffit pour cela dela remplacer dans la base par une variable non artificielle en effectuant une étape supplémentairedu pivot de Gauss–Jordan.

3.4 Récapitulatif de l’algorithme du simplexe

Nous allons ici récapituler l’algorithme du simplexe primal. Nous supposons que le programmelinéaire est sous forme standard. Les données de l’algorithme sont : la matrice de membre gaucheA ∈ Rp×q, le vecteur des membres droits a ∈ Rp+, le vecteur de coût f ∈ Rp et le vecteur devariable x ≥ 0. On peut généraliser alors l’algorithme en deux phases. La première phase consisteà rechercher une base B associée à une solution réalisable de base SRB. La seconde phase consisteà résoudre le problème initial en partant de la solution réalisable trouvée lors de la premère phasesi une telle solution existe.

3.4.1 Phase 1

Deux cas peuvent se produire. Le premier cas se produit si la matrice A admet une baseB telle que la solution de base qui lui est associée est réalisable. Sinon, on cherche une baseadmettant une solution réalisable de base par le biais de la résolution d’un programme linéairearticiel PLa = minetz : Ax + Iz = b, x, z ≥ 0 où z est un vecteur de variables articielles (unevariable pour chaque contrainte) et I est la matrice identité. Dans les faits, il n’est pas nécessaired’ajouter une variable articielle pour chaque contrainte mais nous restons ici dans le cas le plusgénéral possible.

PLa est alors résolu par la méthode décrite dans la phase 2 ci-dessous. Si la solution optimaleest non nulle, cela signifie que le programme linéaire original n’admet pas de solution. Sinon onobtient un système de la forme minf ′tx : A′x+I ′z = a′;x ≥ 0, z ≥ 0 associé à une base réalisableB. Comme les variables artificielles sont hors-base et valent 0, on peut les supprimer et ne garderque le système de contraintes : A′x = a′ avec B la base réalisable. Il suffit alors de modifier levecteur de coût f tx pour mettre le système sous forme canonique par rapport B. Il s’agit alors derésoudre lors de la seconde phase le programme liéaire maxf ′′tx : A′x = a′;x ≥ 0.

46 Algorithme du simplexe

3.4.2 Phase 2

Dans la seconde phase, nous supposons que le programme linéaire minf tx : Ax = a, x ≥ 0 estsous forme canonique par rapport à la base B. L’algorithme du simplexe consiste alors de passer àune autre base adjacente améliorant le coût de la solution par un pivot de Gauss-Jordan. Cela estalors itéré jusqu’à arriver à un des critères d’arrêt. L’algorithme est alors :

Etape 1 (Initialisation) Commencer avec une base primale réalisable B (Il peut s’agir d’unebase évidente ou d’une base obtenue par la résolution d’un problème artificiel lors de laphase 1).

Etape 2 (Test d’optimalité) Si f < 0, une solution optimale a été trouvée. Cette solutions’obtient en posant les variables hors-base égales à 0 et en lisant les valeurs des variables debase directement dans le membre droit. Sinon on passe à l’étape 3.

Etape 3 (Changement de base par pivot) Choisir une variable s telle que fs > 0. Deux caspeuvent se produire :

1. (Cas non borné) Si As ≤ 0, le problème est alors non borné et l’algorithme s’arrête.

2. (Changement de base) Choisir la ligne r associée à la variable de base xr tel que ar > 0et ar/A

rs soit minimal. On effectue le changement de base (en faisant sortir xr de B et

en faisant entrer s dans B) par l’exécution d’un pivot de Gauss-Jordan avec Ars comme

pivot.

Notez que le choix de s est heuristique tandis que le choix de r lui est déterministe une fois schoisie. Dans les faits, l’algorithme utilise la structure du tableau simplicial lors des implémenta-tions pour faciliter le stockage des données.

3.5 Algorithme du simplexe dual

En alternative à l’algorithme, dit primal, du Simplexe que l’on a présenté précédemment, ondécrit ici l’algorithme dual du Simplexe. Ce dernier procède en se déplaçant d’une base réalisabledu programme dual à une autre. Cet algorithme prend tout son intérêt lorsqu’on dispose d’unesolution de base non réalisable dont tous les coûts réduits associés sont positifs ou nuls. Ce cassurvient, par exemple, lorsqu’on a une solution optimale d’un problème linéaire qui devient nonréalisable à la suite de l’adjonction de contraintes additionnelles.

Pour un tel problème, l’algorithme primal du Simplexe n’offre pas de résolution directe à partirde cette solution de base. Il faut en effet passer par la résolution d’un programme linéaire artificielpour obtenir une première base réalisable. Dans les faits, il est possible de résoudre par l’algorithmedu simplexe décrit précédemment le dual après avoir construit ce dernier. Cependant il est plusefficace de ne pas le construire explicitement et de faire les pivots en raisonnant sur le dual. Pourcela, l’algorithme précédent reste sensiblement identique. La différence se faisant sur le choix dupivot. En effet, dans l’algorithme du simplexe primal, on choisit d’abord la variable à faire entrerdans la base en fonction de son coût dans la fonction objectif. Ici, on choisit d’abord la variableà faire sortir de la base en fonction du membre droit de la contrainte à laquelle elle est associée,c’est-à-dire le coût de la variable d’écart associée dans le dual. Le choix de la variable à faire entrerétant alors dicté par la variable à faire sortir et le coût des variables hors-base dans la fonctionobjectif, soit les membres droits dans les contraintes du dual.

Formellement l’algorithme du simplexe dual s’écrit :

Etape 1 (Initialisation) Commencer avec une base duale réalisable B.

Etape 2 (Test d’optimalité) Si B est une base réalisable pour le primal, c’est-à-dire si aB ≥ 0alors on a une solution optimale. Cette solution s’obtient en posant les variables hors baseégale à 0 et en lisant les valeurs des variables de base dans a. En effet, à ce moment-là, B està la fois réalisable pour le dual et le primal. Sinon, on passe à l’étape 3.

Etape 3 (Changement de base par pivot) Choisir un s tel que as < 0. Deux cas peuvent seproduire :

Algorithme du simplexe dual 47

1. (Problème non admissible) Si Ajs ≥ 0 pour toute variable j hors base, le problème n’a

pas de solution admissible.

2. (Changement de base) Sinon choisir la variable r qui maximise le rapport fj/Ajs pour

tous les indices j tels que Ajs < 0. Effectuer le pivotage avec Ar

s comme pivot et revenirà l’Etape 2.

En revanche, comme tous les coûts réduits sont non-négatifs, on a une solution de base réalisabledu problème dual. L’algorithme dual du Simplexe permet de résoudre le problème dual, sans pourautant l’expliciter, et en garantissant donc la résolution du problème linéaire posé dans ce casparticulier.=

48 Algorithme du simplexe

Chapitre 4

Méthodes du point intérieur

4.1 Introduction

Contrairement à la méthode du simplexe, présentée au chapitre 3 et qui explore les frontièresde l’espace admissible en parcourant les sommets du polyèdre admissible, les algorithmes du pointintérieur calculent une suite d’itérés appartenant à l’intérieur de l’espace admissible et convergeantvers la solution optimale. Les méthodes du point intérieur ont été très rapidement populaires carelles offrent la possibilité de résoudre un problème d’optimisation linéaire en un temps polynomialdans le pire des cas alors que les algorithmes du simplexe sont réputés être de complexité algorith-mique exponentielle dans le pire des cas. Ainsi, les méthodes du point intérieur offrent la promessede réduire de manière significative le temps de résolution des problèmes de programmation linéaire.En contrepartie de cet avantage, les itérés successifs calculés par une méthode du point intérieurappartiennent à l’intérieur du domaine admissible et tendent (sans jamais l’atteindre) vers une so-lution optimale dont on sait qu’elle appartient à la frontière du domaine. Une procédure d’arrondipermettant l’obtention de la solution exacte à partir d’un itéré quasi optimale doit être définie.Le second concept majeur sur lequel sont fondées les méthodes du point intérieur consiste à rem-placer la résolution du problème d’optimisation linéaire initial par celle d’un système non linéaired’équations exprimant les conditions d’optimalité de Karush-Kuhn-Tucker. Ceci implique l’utilisa-tion de la méthode de Newton pour la résolution de ce système d’équations non linéairesEnfin, de par leur nature, le comportement des méthodes du simplexe et des méthodes du pointintérieur divergent lorsque qu’une face complète du domaine admissible est optimale. Les méthodesdu point intérieur convergent vers un point situé à l’intérieur de la face tandis que l’algorithme dusimplexe aboutit sur l’un de ses sommets.

Nous reprenons le programme linéaire écrit sous la forme primale standard :

minx∈Rn

f t x

sousAx = ax O

(4.1)

Nous noterons l’ensemble linéaire admissible primal P et son intérieur P+

P = x ∈ Rn|Ax = a, x O

P+ = x ∈ Rn|Ax = a, x ≻ O

(4.2)

Le problème dual de (4.1) est défini par :

maxy at λsous

At λ f, (4.3)

49

50 Méthodes du point intérieur

L’ensemble polyédrique admissible D associé et son intérieur D+ peuvent être donnés de manièreclassique ou en introduisant les variables d’écart s ∈ R

n :

D = λ ∈ Rm|Atλ f

= y ∈ Rm|Atλ+ s = f, s O

D+ = λ ∈ Rm|Atλ ≺ f

= λ ∈ Rm|Atλ+ s = f, λ ≻ O

(4.4)

Les méthodes du point intérieur qui sont l’objet de ce chapitre sont très variées mais ellesreposent sur quelques notions communes (conditions nécessaires d’optimalité, fonction barrière etchemin central) qui sont développées dans cette section.

4.1.1 Rappels sur les conditions d’optimalité de Karush-Kuhn-Tucker

Comme nous l’avons vu dans l’introduction, la principale caractéristique des méthodes du pointintérieur repose sur la résolution itérative de conditions nécessaires d’optimalité d’un problèmed’optimisation non linéaire convexe construit à partir du problème de PL original, d’une fonctionbarrière et d’un paramètre de barrière. Nous rappelons ici brièvement les conditions nécessaires etsuffisantes d’optimalité de Karush-Kuhn-Tucker pour un problème d’optimisation sous contrainteslinéaires et dont la fonction objectif est non linéaire convexe et différentiable.

minx∈Rn

f(x)

sous Ax = ax O

(4.5)

où la fonction f est supposée différentiable avec des dérivées partielles continues et A ∈ Rm×n. Lesconditions nécessaires et suffisantes d’optimalité de Karush-Kuhn-Tucker (KKT) sont définies parle théorème suivant.

Théorème 17 (KKT)Une solution réalisable x∗ ∈ R

n est une solution optimale du problème (4.5) si et seulement s’ilexiste un vecteur λ∗ ∈ Rm et un vecteur µ∗ ∈ Rn tels que les conditions suivantes sont satisfaites :

∇f(x∗)−Atλ∗ + µ∗ = 0Ax∗ = aµ∗i x

∗i = O ∀ i = 1, · · · , n

µ∗ O

(4.6)

Le vecteur λ∗ est un vecteur des multiplicateurs de Lagrange alors que µ∗ est appelé vecteur desmultiplicateurs de Karush-Kuhn-Tucker.

4.1.2 Fonction barrière logarithmique et chemin central

En programmation mathématique, quand on traite d’un problème de minimisation sous con-traintes égalité et inégalité définissant un domaine réalisable P , il peut être intéressant de seramener à un problème ne comportant que des contraintes égalité en substituant aux contraintesinégalité un terme additionnel (appelé terme barrière) à la fonction objectif pondéré par un para-mètre réel positif τ . Le terme barrière possède la propriété fondamentale de tendre vers +∞ quandun point test réalisable x approche la frontière du domaine réalisable. Une fonction barrière classi-quement utilisée en programmation mathématique convexe est la fonction barrière logarithmique.La fonction logarithme népérien est dérivable et finie sur l’orthant positif et tend vers l’infini à l’ap-proche des frontières de son domaine. Par exemple, si l’on reprend le problème de PL sous sa forme

Introduction 51

standard (4.1) (f(x) = f tx dans (4.5)), les contraintes inégalité sont définies par l’appartenancedu vecteur de décision x à l’orthant positif. La fonction barrière est alors définie par :

φB(x, τ) = −τ

n∑

i=1

lnxi (4.7)

où τ > 0 est le paramètre de barrière.

(a) τ = ∞ (b) τ = 1

(c) τ = 0.05 (d) chemin central

Figure 4.1 – Domaine admissible polytopique et les lignes de niveau de la fonction barrière.

La méthode de la fonction barrière logarithmique développée dans [10] et [8] se propose deremplacer le problème de minimisation convexe sous contraintes par une séquence de minimisationssans contraintes de la fonction barrière φB(x, τ) pour une séquence de valeurs du paramètre barrièreτ > 0. Une famille de problèmes de programmation non linéaire non contraint se substitue ainsiau problème initial de minimisation sous contraintes.

Définition 38 (Problème de barrière et chemin central)Le problème de minimisation (4.8) paramétré par τ > 0 est appelé problème barrière associé auproblème de PL sous forme standard (4.1) :

minx

f t + φB(x, τ)

sous Ax = b(4.8)

Quand le paramètre de barrière τ varie, la solution optimale minimisante de (4.8) x(τ)∗ décrit unecourbe à l’intérieur du domaine réalisable appelée chemin central.

Cp = x(τ) | solution de (4.8) ∀ τ > 0 (4.9)

Pour le paramètre de barrière τ = ∞, le problème de barrière devient alors :

minx

−n∑

i=1

lnxi

sous Ax = b

(4.10)

dont la solution optimale est le centre analytique du domaine réalisable.

52 Méthodes du point intérieur

Définition 39 (Centre analytique)Le point x∗

ac ∈ P+ solution optimale minimisante du problème de barrière (4.10) associé au pro-blème de PL (4.1) défini pour τ = ∞ est appelé centre analytique du domaine admissible ouréalisable primal.

Remarque 6Il est également possible de définir la notion de centre analytique d’un polyèdre général P donnépar un système de m inégalités :

P =

x ∈ Rn : btix ≤ bi, ∀ i = 1, · · · , n

comme la solution optimale minimisant la fonction barrière

−m∑

i=1

ln(bi − btix) (4.11)

Il est important de noter que cette définition n’est pas géométrique dans le sens où elle dépendde la représentation du polyèdre. Le centre analytique sera différent si l’on ajoute une contrainteredondante à la définition du polyèdre.

Il est également possible d’associer au problème dual (4.3) du problème primal standard un pro-blème de barrière défini par :

maxλ,w

atλ+ τ

n∑

i=1

lnwi

sous Atλ+ w = f

(4.12)

Pour τ > 0 fixé, les solutions de (4.12) sont notées (λ(τ), w(τ)). Ces solutions définissent un chemincentral dual

Cd = (λ(τ), w(τ)) | solution de (4.12) ∀ τ > 0 (4.13)

Les problèmes (4.8) et (4.12) sont des problèmes d’optimisation convexes pour lesquels il est possibled’écrire des conditions d’optimalité de Karush-Kuhn-Tucker.

Théorème 18Si x∗, λ∗ et w∗ vérifient les conditions de Karush-Kuhn-Tucker :

Ax(τ) = aAtλ(τ) + w(τ) = f

xi(τ)wi(τ) = τ ∀ i = 1, · · · , nx(τ) > O

w(τ) ≥ O

(4.14)

alors x∗, λ∗ et w∗ sont des solutions optimales aux problèmes (4.8) et (4.12).

Il est à noter que, pour une valeur donnée de τ , les centres analytiques du primal x(τ) ∈ P+ et dudual (λ(τ), w(τ)) ∈ D+ vérifient x(τ)tw(τ) = nτ .

Théorème 19Soient les problèmes primal (4.1) et dual (4.3) possédant des ensembles admissibles intérieurs telsque P+ 6= ∅ et D+ 6= ∅. Alors ∀ τ | 0 < τ < ∞, les centres analytiques du primal et du dual(x(τ), λ(τ), w(τ)) ∈ P+ ×D+ existent et sont uniques.

Introduction 53

Exemple 16 (2D (suite))Nous reprenons l’exemple académique en 2D

Primal Dual

minx,y

−2x− y

sousx ≤ 2y ≤ 2

x+ y ≤ 3x, y ≥ 0

maxλ

2λ1 + 2λ2 + 3λ3

sousλ1 ≤ 0λ2 ≤ 0λ3 ≤ 0

−2− λ1 − λ3 ≥ 0−1− λ2 − λ3 ≥ 0

La fonction barrière primale associée au primal est donnée par :

φpB(x, y) = − ln(xy)− ln(2− x) − ln(2− y)− ln(3− x− y)

Le centre analytique primal peut se calculer explicitement par minimisation de cette fonction donton écrit la stationarité du gradient :

− 1

x+

1

2− x+

1

3− x− y

−1

y+

1

2− y+

1

3− x− y

= 0 (xac, yac) = (

6−√6

5,6−

√6

5)

Ce système d’équations possède en effet 4 solutions telles que x = y dont deux ne sont pas dansle domaine de définition de la fonction barrière alors que parmi les deux autres, seule la solutionretenue conduit à un minimum de la fonction barrière. Le centre analytique et la fonction barrièresont présentés aux figures 4.2 et 4.3.

Figure 4.2 – Fonction barrière primale pour l’exemple 2D

54 Méthodes du point intérieur

x

y

−0.5 0 0.5 1 1.5 2 2.5−0.5

0

0.5

1

1.5

2

2.5

−2

−1.5

−1

−0.5

0

Figure 4.3 – Courbes de niveau de la fonction barrière primale et son centre analytique pourl’exemple 2D

4.1.3 Classification des méthodes du point intérieur

La littérature concernant les algorithmes du point intérieur pour la programmation linéaireest très riche du fait des très nombreuses variantes de l’algorithme initial proposé par Karmarkaren 1984 [14]. Malgré cette richesse et la relative proximité des différentes variantes, trois grandesclasses de méthodes peuvent être définies.

1- Les méthodes de mise à l’échelle affine reposent sur une approximation ellipsoïdale de l’en-semble polyédral des solutions réalisables. Prenant leur origine avec l’algorithme de Dikin de1967 [6], elles forment la classe des méthodes du point intérieur sans doute les plus simpleset les plus proches de la méthode du simplexe, tout en assurant des bonnes performancespratiques bien que l’on suspecte qu’elles ne soient pas des méthodes de classe polynomiale.

2- Les méthodes de réduction de potentiel ont pour principe d’imposer la réduction d’unefonction potentielle non linéaire à chaque étape, tout en maintenant une certaine distanceavec la frontière du domaine réalisable. L’algorithme de Karmarkar de 1984 appartient àcette catégorie.

3- Les méthodes de suivi de chemin reposent sur trois principes : transformer le problème de PLinitial sous contraintes en un problème non contraint en ajoutant les contraintes à la fonctioncoût au travers d’une fonction barrière logarithmique pénalisée comme l’inverse de la distanceà la frontière du domaine réalisable, résoudre de manière approchée le problème non contraintpar une méthode de Newton et enfin diminuer itérativement la pénalité afin que la solution duproblème non contraint suive un chemin convergeant vers la solution optimale du problèmeinitial de PL contraint. Ces méthodes démontrent en général un excellent comportementpratique et théorique.

Pour chacune de ces classes de méthodes, il est possible de définir des variantes primales, duales,primales-duales et auto-duales. Du fait que la majorité des solveurs rencontrés sont fondés sur desméthodes primales-duales du type 2 et 3, seuls les algorithmes associés seront présentés en détailsdans ce chapitre. Les méthodes de classe 1 ainsi que la méthode historique de Karmarkar sontbrièvement exposées à l’annexe A.

4.2. MÉTHODES PRIMALES-DUALES 55

4.2 Méthodes Primales-Duales

4.2.1 Cadre de travail

Les méthodes du point intérieur primales-duales ont pour but de trouver simultanément lasolution optimale primale pour le problème (4.1) et la solution optimale duale du problème (4.3)formant le triplet (x∗, λ∗, w∗) en appliquant des variantes de la méthode de Newton aux conditionsd’optimalité de KKT :

Ax = aAtλ+ w = f

XWe = O

x > O

w ≥ O

(4.15)

X =

x1 0 . . . 0

0 x2

......

. . . 00 . . . 0 xn

, W =

w1 0 . . . 0

0 w2

......

. . . 00 . . . 0 wn

, e =

11...1

∈ Rn (4.16)

De même, l’espace réalisable primal-dual F et son intérieur F+ sont alors définis par :

F = (x, λ, w) ∈ Rn × R

m × Rn|Ax = a, Atλ+ w = f, (x,w) 0

F+ = (x, λ, w) ∈ Rn × R

m × Rn|Ax = a, Atλ+ w = f, (x,w) ≻ 0

(4.17)

Les trois premières équations du système de KKT (4.15) forment un système carré d’équations nonlinéaires de dimensions 2n+m pour 2n+m inconnues. La difficulté principale de la résolution dusystème de KKT vient essentiellement des contraintes de positivité attachées aux variables x et w.

Les conditions (4.15) peuvent être reformulées à l’aide de l’application F : (x, λ, w) ∈R2n+m −→ R2n+m définie par :

F (x, λ, w) =

Atλ+ w − fAx− aXWe

= O (4.18)

(x,w) 0 (4.19)

Les deux premiers termes de l’application (4.18) sont linéaires alors que le troisième est non linéaire(bilinéaire). Le principe des méthodes du point intérieur primales-duales est de générer à partird’une condition initiale (x(0), λ(0), w(0)) ∈ F+, une séquence (x(k), λ(k), w(k)) ∈ F+ en appliquantune variante de la méthode de Newton (cf. annexe A.4 pour un rappel sur la méthode de Newton) àla fonction F (x, λ, w). Afin d’appliquer des méthodes itératives de type Newton, il est nécessaire dechoisir les directions de descente et la longueur des pas qui maintiennent la condition de positivitéstricte (x,w) ≻ 0, tout en convergeant vers la solution du système linéaire d’équations déduit del’approximation linéaire du système (4.18) autour d’un itéré (x(k), λ(k), w(k)) :

J(x(k), λ(k), w(k))

∆x(k)

∆λ(k)

∆w(k)

= −F (x(k), λ(k), w(k))

où J représente la matrice Jacobienne de F . Dans le cas où l’itéré k est strictement admissible, i.e.(x(k), λ(k), w(k)) ∈ F+, le système précédent s’écrit :

0 At IA 0 0

W (k) 0 X(k)

∆x(k)

∆λ(k)

∆w(k)

=

00

−X(k)W (k)e

(4.20)

56 Méthodes du point intérieur

De manière générale, l’itéré suivant (x(k+1), λ(k+1), w(k+1)) est calculé par une méthode de re-cherche monodimensionnelle portant sur le scalaire α(k) ∈]0, 1] tel que

(x(k+1), λ(k+1), w(k+1)) = (x(k), λ(k), w(k)) + α(k)(∆x(k),∆λ(k),∆w(k))

En pratique, seules de petites de valeurs de α(k) peuvent assurer le respect de la condition depositivité (x,w) ≻ 0. Ainsi, les directions de Newton (∆x(k),∆λ(k),∆w(k)) calculées à partir dusystème (4.20) ne permettent de progresser que très lentement vers la solution optimale.Les méthodes primales-duales vont modifier cette recherche en utilisant les concepts du chemincentral et du potentiel logarithmique. Il est à noter que, même si ces deux concepts sont deuxapproches d’une même idée, elles ont distinctement donné naissance à deux familles différentes deméthodes du point intérieur : les méthodes de suivi du chemin central (path-following methods) etles méthodes de réduction de potentiel (potential reduction methods).Pour ces deux familles de méthodes, les conditions de KKT sont altérées par l’introduction d’unsaut de dualité non nul :

Ax(τ) = a

Atλ(τ) + w(τ) = f

xti(τ)wi(τ) = τ i = 1, . . . , n

(x(τ), w(τ)) 0

Les conditions précédentes identiques aux conditions (4.14) définissent les points du chemin centralprimal-dual C.

Cpd = (x(τ), λ(τ), w(τ)) | solution de (4.14) ∀ τ > 0 (4.21)

En utilisant la notation (4.18), le système précédent peut être formulé comme :

F (x(τ), λ(τ), w(τ)) =

Atλ(τ) + w(τ) − fAx(τ) − aX(τ)W (τ)e

=

00τe

(4.22)

(x(τ), w(τ)) 0

Le paramètre τ force indirectement l’algorithme primal-dual à chercher des solutions appartenantà F+. Ainsi, puisque l’on impose une recherche à l’intérieur du domaine admissible, il est possiblede calculer des pas plus longs suivant les directions de Newton calculées en résolvant le système(4.22). Pour un itéré courant (x(k)(τ), λ(k)(τ), w(k)(τ)), les directions de Newton associées à larésolution de (4.22) sont les solutions du système :

0 At IA 0 0

W (k) 0 X(k)

∆x(k)

∆λ(k)

∆w(k)

=

00

−X(k)W (k)e+ σ(k)µ(k)e

(4.23)

où σ(k) ∈ [0, 1], le paramètre de centrage et µ(k), la mesure de la dualité, sont définis tels que :

µ(k) =1

n

n∑

i=1

x(k)i (τ)w

(k)i (τ) =

x(k)t(τ)w(k)(τ)

n=

τ (k)

σ(k)(4.24)

La direction de recherche (∆x(k),∆λ(k),∆w(k)), ainsi calculée, correspond à un pas de Newtondans le processus de convergence vers le point central (xσ(k)µ(k) , λσ(k)µ(k) , wσ(k)µ(k)) ∈ Cpd. Cesdeux paramètres permettent de décrire le saut de dualité τ (k) à chaque pas de Newton, tel queτ (k) = σ(k)µ(k).

Pour σ(k) = 1, les équations (4.23) définissent une direction de recherche de centrage vers lepoint du chemin central (xµ(k) , λµ(k) , wµ(k)) ∈ Cpd. Le pas de Newton produit un point « pluscentral » que l’itéré courant au dépens de la progression vers la solution primale-duale. L’avantagede construire un itéré près du chemin central réside dans le fait que, lors de l’itération suivante,des progrès plus significatifs pourront être réalisés. A l’inverse, lorsque σ(k) = 0, nous retrouvons

Méthodes de suivi du chemin central 57

un pas de Newton classique, appelé direction de mise à l’échelle affine, qui conduit à une grandeprogression vers la solution primale-duale mais en négligeant l’équilibre des produits x(k)

i w(k)i dans

l’orthant positif. Ainsi le réglage du paramètre de centrage σ(k) permet de faire un arbitrage entrel’objectif de réduction du saut de dualité et le centrage des itérés.

Fort des concepts présentés jusq’à présent, nous pouvons donner un cadre algorithmique géné-rique aux méthodes du point intérieur primales-duales qui vont être développées dans ce rapport :

Algorithme 2 Algorithme primal-dual générique

Entrées: (A, a, f), (x(0), λ(0), w(0)) ∈ F+, ǫ > 0Sorties: (x∗, λ∗, w∗) tel que µ∗ < ǫ

Tant que µ(k) > ǫ Faire

σ(k) ∈ [0, 1] et µ(k) = (x(k))tw(k)

n

Calculer

∆x(k)

∆λ(k)

∆w(k)

tel que :

0 At IA 0 0

W (k) 0 X(k)

∆x(k)

∆λ(k)

∆w(k)

=

00

−X(k)w(k)e + σ(k)µ(k)

Calculer α(k) tel que :

(x(k), w(k)) + α(k)(∆x(k),∆w(k)) = (x(k+1), w(k+1)) ≻ 0

Poser (x(k+1), λ(k+1), w(k+1)) = (x(k), λ(k), w(k)) + α(k)(∆x(k),∆λ(k),∆w(k))Fin tant que

Si l’algorithme 2 définit l’algorithme type des méthodes primales-duales, de nombreuses va-riantes peuvent être proposées suivant la manière dont ses étapes élémentaires sont mises en œuvrecomme cela a été défini dans la section 4.1.3. Nous étudierons plus particulièrement dans la suitede ce rapport, les méthodes du point intérieur dites de suivi de chemin central et de réduction depotentiel dans le cadre primal-dual car elles sont les plus présentes dans les solveurs actuellementdisponibles.

4.2.2 Méthodes de suivi du chemin central

Comme le suggère leur dénomination, cette classe de méthodes consiste à suivre le chemin cen-tral dans la direction des τ décroissants jusqu’à la solution optimale. Les itérés successifs construitspar ce type d’algorithme appartiennent à un voisinage défini quoique possiblement large du chemincentral tout en faisant tendre la mesure de dualité vers 0. Chaque direction de recherche est un pasde Newton dans la direction d’un point du chemin central Cpd avec comme valeur cible τ = σµ.L’algorithme générique de suivi du chemin central est donc le suivant :

58 Méthodes du point intérieur

Algorithme 3 Algorithme primal-dual de suivi de chemin central

Entrées: (x(0), λ(0), w(0)) ∈ F+, σmin et σmax : 0 < σmin < σmax < 1Sorties: (x∗, λ∗, w∗)

Pour k = 0, 1, 2, · · · FaireChoisir σ(k) ∈ [σmin, σmax]

Calculer

∆x(k)

∆λ(k)

∆w(k)

tel que

0 At IA 0 0

W (k) 0 X(k)

∆x(k)

∆λ(k)

∆w(k)

= −

−Atλ(k) + w(k) − f

Ax(k) − aX(k)W (k)e − σ(k)µ(k)e

(4.25)

avec µ(k) =(x(k))tw(k)

n;

Choisir le plus grand αmax > 0 tel que (x(k), w(k)) + α(∆x(k),∆w(k)) ≥ 0 ;Poser α(k) = min(1, η(k)αmax) pour η(k) ∈ (0, 1) ;Poser (x(k+1), λ(k+1), w(k+1)) = (x(k), λ(k), w(k)) + α(k)(∆x(k),∆λ(k),∆w(k)).

Fin pour

Des valeurs raisonnables pour les constantes sont σmin = 0.01 et σmax = 0.75. Les stratégiesde choix des paramètres σ(k) et η(k) à chaque pas sont particulièrement détaillées dans la référence[7, Section 8.3.4].

Comme nous l’avons indiqué, les méthodes de suivi de chemin central calculent en fait desitérés (x(k), λ(k), w(k)) qui appartiennent à un voisinage du chemin central (xτ , yτ , sτ ) ∈ Cpd.Ainsi, un des principaux critères de caractérisation des méthodes de suivi de chemin central est ladéfinition du voisinage (ou de la proximité) du chemin central. L’itéré courant dévie principalement

du chemin central du fait de la violation de la condition de positivité des produits x(k)i w

(k)i parmi

les conditions de KKT (4.22). Cette déviation est mesurée par la définition d’un voisinage autourde la valeur moyenne de ces produits associé à une norme particulière. Les deux voisinages (associésà leur norme) de Cpd les plus utilisés sont le voisinage de norme 2, noté N2 et le voisinage N−∞donnés par :

N2(θ) = (x, λ, w) ∈ F+|‖XWe− µe‖2 ≤ θµ (4.26)

avec µ, la mesure de dualité et θ ∈ [0, 1].

N−∞(γ) = (x, λ, w) ∈ F+|xiwi ≥ γµ, ∀i = 1, . . . , n (4.27)

où γ ∈ [0, 1].Pour tout point du voisinage N−∞(γ), chaque produit xiwi doit être au moins plus grand que le

γ−multiple de leur valeur moyenne. Cette définition de N−∞(γ) en fait un voisinage large pouvantenglober l’ensemble du domaine F+ lorsque γ tend vers zéro. Le voisinage N2 est plus restrictif.En effet, pour θ fixé, il est impossible que tous les points de F+ appartiennent à N2. Pour ces deuxvoisinages, les méthodes de suivi de chemin central permettent de faire tendre les produits xiwi

vers zéro avec des vitesses différentes de convergence.Le voisinage N2 est souvent associé aux méthodes de suivi de chemin central à pas courts. En effet,le paramètre de centrage σ doit être choisi proche de 1 afin d’éviter de sortir du voisinage choisi.Ces méthodes, si elles permettent de rester à proximité du chemin central, ne font que peu deprogrès vers la solution à chaque itération.Les méthodes dites de prédiction/correction utilisent deux voisinages N2 imbriqués l’un dansl’autre. Elles améliorent très sensiblement les performances des méthodes à pas courts. A chaqueétape de prédiction, l’itéré de départ est dans le voisinage interne et se déplace selon la directioncalculée pour σ = 0 jusqu’à atteindre les frontières du voisinage extérieur. Si l’écart entre les vo-lumes des deux voisinages est suffisant, la mesure de dualité peut être fortement réduite. L’étape

Méthodes de suivi du chemin central 59

de correction, calculée avec σ = 1 et α = 1, ramène l’itéré à l’intérieur du voisinage interne afin depréparer l’étape de prédiction suivante.Enfin, les méthodes de suivi de chemin central à pas longs font un choix pour σ moins conservateuri.e. σ 6∼ 1. Cependant, il faut procéder, dans ce cas, à une recherche de longueur de pas évitant àl’itéré de sortir de F+. L’utilisation du voisinage N−∞ permet, avec un choix judicieux de σ, defaire des progrès plus intéressants que dans les méthodes à pas courts. L’algorithme et la complexiténumérique de ces trois types de méthodes de suivi de chemin central sont présentés de manièresynthétique.

4.2.2.1 Méthodes de suivi de chemin à pas courts

Algorithme Les méthodes de suivi de chemin à pas courts ont comme objectif de maintenirles itérés successifs au voisinage N2 du chemin central. La stratégie adoptée est de maintenirconstant pour tout k le paramètre de centrage, σ(k) = σ et la longueur du pas α(k) = 1. Lorsque leparamètre σ est lié à la taille du voisinage θ, la mesure de dualité décroît avec une vitesse constante(1 − σ). L’algorithme formel associé aux méthodes de suivi de chemin à pas courts est donné parl’algorithme 4.

Algorithme 4 Algorithme primal-dual à pas courts

Entrées: (x(0), λ(0), w(0)) ∈ N2(θ), ǫ > 0Sorties: (x∗, λ∗, w∗) tels que µ∗ < ǫ

Tant que µ(k) > ǫ Faireθ = 0.4, σ(k) = σ = 1− 0.4√

n

Calculer

∆x(k)

∆λ(k)

∆w(k)

tel que

0 At IA 0 0

W (k) 0 X(k)

∆x(k)

∆λ(k)

∆w(k)

=

00

−X(k)W (k)e+ σ(k)µ(k)e

(4.28)

Poser (x(k+1), λ(k+1), w(k+1)) = (x(k), λ(k), w(k)) + (∆x(k),∆λ(k),∆w(k))Fin tant que

L’algorithme à pas courts est illustré par la figure 4.4 qui trace les premières itérations projetéesdans l’espace xiwi. L’axe des abscisses représente la valeur du produit x1w1 et celui des ordonnéesreprésente le produit x2w2 dans le contexte d’un problème de dimension 2. Dans cet espace nonlinéaire, le chemin central est la droite passant par l’origine et de coefficient directeur 1. Cependantles directions de recherche normalement linéaires sont représentées par des courbes. La solutionoptimale se trouve à l’origine. Cette représentation utilisée dans les figures 4.4, 4.5 et 4.6 illustrela manière dont les longueurs de pas sont influencées par la présence des voisinages N2(θ) et N2(γ).

L’un des points importants de l’analyse de l’algorithme à pas courts est de montrer que chaqueitéré reste dans le voisinage N2(θ). La démarche consiste à montrer que la direction de rechercheest bornée en norme. Ce résultat permet de déterminer une borne sur la distance entre l’itéré k+1et le chemin central. Finalement, en utilisant cette information, on établit une relation entre θ etσ telle que l’itéré k + 1 reste dans le voisinage N2 du chemin central [27, Chapitre 5].

Convergence et complexité polynomiale Pour analyser la convergence de l’algorithme desuivi de chemin central à pas courts, nous allons d’abord donner un lemme de décroissance de lamesure de dualité.

60 Méthodes du point intérieur

1

3

Chemin centralN2θ

x1w1

x2w2

0

2

Figure 4.4 – Itérés de l’algorithme à pas courts dans l’espace xiwi

Lemme 3Soit la direction de recherche (∆x(k),∆λ(k),∆w(k)) calculée grâce à l’équation (4.25), nous avonsalors

(∆x(k))t∆w(k) = 0 (4.29)

etµ(k+1) = (1 − α(1− σ))µ(k) (4.30)

Ainsi pour les algorithmes de suivi de chemin à pas courts, le choix des paramètres σ et α conduitau résultat suivant :

µ(k+1) = σµ(k) =

(

1− 0.4√n

)

µ(k), k = 0, 1, . . . (4.31)

L’équation (4.31) décrit la convergence globalement linéaire de la mesure de dualité par l’utilisationd’un algorithme à pas courts. La complexité polynomiale de l’algorithme se déduit d’un théorèmegénéral à toutes les méthodes de suivi de chemin.

Théorème 20Soit ǫ ∈]0, 1[ fixé, on suppose que l’algorithme génère une séquence d’itérés telle que la séquencede mesures de dualité vérifie :

µ(k+1) ≤(

1− δ

)

µ(k), k = 0, 1, . . . (4.32)

δ et ω étant des constantes positives. On suppose aussi que l’itéré initial (x(0), λ(0), w(0)) vérifiepour une constante positive κ :

µ(0) ≤ 1/ǫκ (4.33)

Alors, il existe un rang K tel que :K = O(

√n| ln ǫ|)

pour lequel :µ(k) ≤ ǫ, pour tout k ≥ K

La complexité polynomiale de l’algorithme à pas courts est un résultat direct du théorème 20est de la convergence linéaire (4.31) en posant δ = 0.4 et ω = 0.5.

Méthodes de suivi du chemin central 61

Théorème 21Pour ǫ > 0, il est supposé que l’itéré initial (x(0), λ(0), w(0)) appartienne au voisinage N2(0.4) telque

µ(0) ≤ 1/ǫκ

avec κ positif. Alors, l’algorithme à pas courts a une solution telle que µ(k) ≤ ǫ, ∀ k ≥ K après

K = O(√n ln(1/ǫ)) (4.34)

itérations.

4.2.2.2 Méthodes de Prédiction/Correction

Algorithme Comme nous l’avons vu précédemment dans la description des méthodes de suivide chemin central à pas courts, le paramètre de centrage σ joue un rôle important dans l’efficacitéde l’algorithme. En effet, pour une valeur σ proche de 1, le pas de Newton ne réalise que peude progrès mais permet de maintenir les itérés dans le voisinage N2 du chemin central. Dans lecas d’une valeur proche de 0, la réduction de la mesure de dualité est alors significative à chaqueitération autorisant une progression plus conséquente vers la solution optimale. Cependant, ce typede pas de Newton mène généralement les itérés en dehors de l’espace admissible.Prenant conscience de la difficulté d’améliorer la proximité au chemin central et la réduction dela mesure de dualité en une seule étape, Mehrotra a proposé un choix heuristique de σ en deuxétapes définissant ainsi l’algorithme de suivi de chemin central dit prédicteur-correcteur [19]. Cetalgorithme alterne deux types d’itérations différentes :

- Une étape de prédiction afin de réduire la mesure de dualité µ : σ = 0 ;

- une étape de correction afin d’amener l’itéré dans le voisinage du chemin central : σ = 1.

Le terme de prédiction/correction vient de l’analogie avec les méthodes d’intégration des équationsdifférentielles ordinaires qui alternent des étapes de prédiction avec des étapes de correction.Afin de mettre en place ces deux étapes, l’algorithme de prédiction/correction utilise deux voisi-nages N2 imbriqués l’un dans l’autre, à savoir N2(θ1) et N2(θ2) tels que θ1 < θ2. La conventionchoisie est que les itérés pairs (x(k), λ(k), w(k)) (k pair) appartiennent au voisinage interne N2(θ1)tandis que, pour k impair, les itérés appartiennent au voisinage externe N2(θ2). L’algorithme deMehrotra est ainsi donné par :

62 Méthodes du point intérieur

Algorithme 5 Algorithme de prédiction/correction primal-dual

Entrées: (x(0), λ(0), w(0)) ∈ N2(θ1), ǫ > 0Sorties: (x∗, λ∗, w∗) tel que µ∗ < ǫ

Tant que µ(k) > ǫ FaireSi k pair (prédiction) Alorsσ(k) = 0

Calculer

∆x(k)

∆λ(k)

∆w(k)

tel que

0 At IA 0 0

W (k) 0 X(k)

∆x(k)

∆λ(k)

∆w(k)

=

00

−X(k)W (k)e+ σ(k)µ(k)e

(4.35)

Calculer α(k) tel que

(x(k), λ(k), w(k)) + α(k)(∆x,∆λ(k) ,∆w(k)) ∈ N2(θ2)

Poser (x(k+1), λ(k+1), w(k+1)) = (x(k), λ(k), w(k)) + α(k)(∆x(k),∆λ(k),∆w(k))Fin siSi k impair (correction) Alorsσ(k) = 1

Calculer

∆x(k)

∆λ(k)

∆w(k)

tel que

0 At IA 0 0

W (k) 0 X(k)

∆x(k)

∆λ(k)

∆w(k)

=

00

−X(k)W (k)e+ µ(k)e

(4.36)

Poser (x(k+1), λ(k+1), w(k+1)) = (x(k), λ(k), w(k)) + (∆x(k),∆λ(k),∆w(k))Fin si

Fin tant que

L’examen des deux premières étapes de l’algorithme 5 permet de comprendre le comporte-ment global de l’algorithme de prédiction/correction (voir aussi la figure 4.5). Soit l’itéré initial(x(0), λ(0), w(0)) appartenant à N2(θ1), le pas de prédiction est calculé pour σ = 0. Une recherchelinéaire permet alors d’obtenir α(0) tel que l’itéré (x(1), λ(1), w(1)) appartienne à la frontière duvoisinage N2(θ2). L’étape de correction va ramener l’itéré (x(2), λ(2), w(2)) dans le voisinage N2(θ1)par application d’un pas de correction complet (σ = 1) et (α(1) = 1).Lors de l’étape de prédiction, la mesure de dualité µ est réduite d’un facteur (1− α(k)). Si l’étapede correction laisse inchangée µ en ramenant l’itéré dans le voisinage interne, elle permet toutefoisde se donner plus de lattitude pour exécuter l’étape de prédiction suivante.

Méthodes de suivi du chemin central 63

0

4

1

2

3

Chemin centralN2(θ2)

N2(θ1)

x2w2

x1w1

Figure 4.5 – Itérés de l’algorithme prédicteur/correcteur dans l’espace xiwi

Convergence et complexité polynomiale L’analyse de convergence consiste à étudier uni-quement le comportement des étapes de prédiction. Tout d’abord, un ensemble de variations pourα assurant l’appartenance de l’itéré impair à N2(θ2) est construit. Les résultats sont présentés enreprenant un exemple classique de la littérature :

θ1 =1

4, θ2 =

1

2

Lemme 4Soit l’itéré pair (x(k), λ(k), w(k)) ∈ N2(

14 ), et soit la direction de descente (∆x(k),∆λ(k),∆w(k))

calculée à partir du système (4.35), alors (x(k+1), λ(k+1), w(k+1)) ∈ N2(12 ) pour tout α(k) ∈ [0, α(k)]

α = min

(

1

2,

(

µ

8‖∆X(k)∆W (k)e‖

)1/2)

(4.37)

Ainsi, α est la longueur minimale que le pas de prédiction peut réaliser et la réduction de saut dedualité est au minimum calculée comme :

µ(k+1) = (1− α)µ(k)

Pour le choix de paramètres θ1 = 14 et θ2 = 1

2 , on peut vérifier que

α ≥ 0.4√n

On peut en déduire que, grâce aux étapes de prédiction, la réduction de la mesure de dualité µpossède une borne inférieure et permet un progrès minimal donné par :

µ(k+1) ≤(

1− 0.4√n

)

µ(k) (4.38)

Il nous faut maintenant montrer que l’itéré est bien ramené dans le voisinage interne lors desphases de correction.

64 Méthodes du point intérieur

Lemme 5Soit l’itéré impair (x(k), λ(k), w(k)) ∈ N2(θ2), et soit la direction de descente (∆x(k),∆λ(k),∆w(k))calculée à partir du système (4.36) (σ = 1), alors :

(x(k+1), λ(k+1), w(k+1)) ∈ N2(1

4), µ(k+1) = µ(k)

Du point de vue de la convergence, si seules les étapes de prédiction permettent d’améliorer lamesure de dualité, elles procurent néanmoins des réductions substantielles. Aussi, il est toujourspossible de prouver que l’algorithme de prédiction/correction est de complexité polynomiale àl’instar des méthodes à pas courts.

Théorème 22On suppose que l’itéré initial (x(0), λ(0), w(0)) ∈ N2(

12 ) vérifie pour une constante positive κ :

µ(0) ≤ 1/ǫκ (4.39)

alors il existe un rang K pour lequel :

µ(k) ≤ ǫ, pour tout k ≥ K

et tel que

K = O(√n| ln ǫ|)

L’intérêt des méthodes de prédiction/correction est multiple. Tout d’abord, les étapes de prédic-tion permettent de faire des progrès importants sans s’éloigner trop rapidement du chemin central.De plus, durant les dernières itérations, les directions de prédiction deviennent meilleures lorsquel’on approche de l’optimalité. Cela permet à l’algorithme de choisir des longueurs de pas prochesde 1.

4.2.2.3 Méthodes de suivi de chemin à pas longs

Algorithme Les méthodes de suivi de chemin à pas longs vont générer une séquence d’itérésappartenant au voisinage N−∞(γ). Rappelons que pour de faibles valeurs de γ (par exemple 10−3),le voisinage N−∞(γ) occupe une grande partie de l’intérieur de l’espace admissible F+. A chaqueitération, le paramètre de centrage σ(k) sera choisi dans un intervalle [σmin, σmax] ∈ [0, 1]. Ladirection de descente est obtenue par la résolution du système (4.23). La longueur du pas α(k) seraprise aussi grande que possible, tout en respectant l’appartenance au voisinage N−∞(γ) (d’où lenom de la méthode). L’algorithme de suivi de chemin central à pas longs se décrit formellementcomme suit.

Méthodes de suivi du chemin central 65

Algorithme 6 Algorithme primal-dual à pas longs

Entrées: x(0), λ(0), w(0) ∈ N−∞(γ) et les paramètres ǫ, γ, σmin, σmax tels que ǫ > 0, γ ∈ [0, 1]et [σmin, σmax] ∈ [0, 1]

Sorties: (x∗, λ∗, w∗) tels que µ∗ < ǫTant que µ(k) > ǫ Faire

σ(k) ∈ [σmin, σmax], µ(k) = (x(k))tw(k)

n

Calculer

∆x(k)

∆λ(k)

∆w(k)

tel que

0 At IA 0 0

W (k) 0 X(k)

∆x(k)

∆λ(k)

∆w(k)

=

00

−X(k)W (k)e+ σ(k)µ(k)e

Choisir α(k) ∈ [0, 1] le plus grand possible tel que

(x(k), λ(k), w(k)) + α(k)(∆x(k),∆λ(k),∆w(k)) ∈ N−∞

Poser (x(k+1), λ(k+1), w(k+1)) = (x(k), λ(k), w(k)) + α(k)(∆x(k),∆λ(k),∆w(k))Fin tant que

Le comportement de l’algorithme est illustré par la figure 4.6. Notons que si la représentationdes voisinages N2 et N−∞ en deux dimensions est identique (à savoir les voisinages sont délimitéspar des cônes de sommet en l’origine et centrés sur le chemin central), cela n’est plus vrai pour desdimensions plus grandes.

01

2

3

Chemin centralN−∞(γ)x2w2

x1w1

Figure 4.6 – Itérés de l’algorithme à pas longs dans l’espace xiwi

Convergence et complexité polynomiale La borne inférieure σmin doit permettre d’assurerque la direction de recherche va éloigner les itérés des frontières de F+. Ainsi, pour des petiteslongueurs de pas, la proximité des itérés au chemin central sera améliorée. Pour des valeurs plusimportantes de α, les itérés vont de nouveau se rapprocher des frontières. Ceci est notamment dûà l’erreur faite lors de l’approximation linéaire des conditions non linéaires de KKT. Le lemme 6et le théorème 23 montrent qu’un pas minimum peut-être réalisé avant d’atteindre les bords du

66 Méthodes du point intérieur

voisinage N−∞(γ). Une estimation de la réduction de la mesure de dualité à chaque itération peutainsi en être déduite.

Lemme 6Soit l’itéré (x(k), λ(k), w(k)) ∈ N−∞(γ), il vient alors

‖∆X(k)∆W (k)e‖ ≤ 2−2/3

(

1 +1

γ

)

Théorème 23Soit les paramètres γ, σmin, σmax, il existe une constante δ indépendante de n, telle que pour toutk,

µ(k+1) ≤(

1− δ

n

)

µ(k)

La complexité algorithmique est une conséquence des théorèmes 23 et 20.

Théorème 24Soit ǫ > 0, γ ∈]0, 1[ et l’itéré initial (x(0), λ(0), w(0)) ∈ N−∞(γ) tel que pour une constante positiveκ :

µ(0) ≤ 1/ǫκ (4.40)

alors il existe un rang K pour lequel :

µ(k) ≤ ǫ, pour tout k ≥ K

tel que :

K = O(n| ln ǫ|)

4.2.3 Méthodes de réduction de potentiel

Nous avons vu dans la sous-section 4.1.2, la définition des fonctions potentiel jouant un rôleprépondérant dans le développement des méthodes du point intérieur. Les méthodes de réduc-tion de potentiel reposent très fortement sur ces fonctions barrière. En effet, si elles suivent lesmêmes étapes que les méthodes de suivi de chemin central, elle sont construites, non pour suivreexplicitement le chemin central à chaque étape mais plutôt afin de réduire la fonction potentiellogarithmique à chaque itération. Celle-ci mesure en effet la progression de la séquence d’itérésvers la solution optimale. De nombreuses variantes de la fonction potentiel générique (4.7) ont étéutilisées dans les différents algorithmes de réduction de potentiel (algorithmes de Karmarkar, deYe [29] et de Freund [9] ou de Gonzaga et Todd [13]). Dans le cadre des méthodes primales-duales,Tanabe [23] et Todd et Ye [24] ont défini la fonction potentiel suivante :

φBρ(x,w) = ρ lnxtw −n∑

i=1

lnxiwi (4.41)

où ρ > n. Cette fonction est fondamentale dans le développement des méthodes de réduction depotentiel primales-duales. Le lien avec la fonction potentiel de Karmarkar (A.1) est facile à établiren utilisant la dualité. En effet, atλ étant une borne inférieure au coût primal, on peut remplacerZ par atλ dans (A.1). Puis, en utilisant la relation xtw = f tx−atλ, on retrouve le potentiel (4.41).L’ajout de la somme

i lnwi vient construire une fonction barrière sur la variable duale w pour lacontrainte de positivité w 0 comme cela a été fait pour la variable primale x 0. Naturellement,le domaine de validité de la fonction potentiel (4.41) est F+.

Méthodes de réduction de potentiel 67

4.2.3.1 Algorithme

Les algorithmes usuels de réduction de potentiel, mentionnés ci-dessus, travaillent essentielle-ment dans l’espace des variables primales et mettent à jour périodiquement les variables duales pard’autres moyens. L’algorithme, décrit ici, prend le parti de considérer simultanément les variablesprimales et duales. Cet algorithme, dû à Kojima, Mizuno et Yoshise [15], possède la meilleurecomplexité algorithmique parmi les algorithmes de réduction de potentiel. Il ne demande queO(

√n| ln ǫ|) itérations pour obtenir un saut de dualité inférieur à la tolérance ǫ. La fonction po-

tentiel considérée est la suivante :

φBρ(x,w) = (ρ− n) lnxtw + φBn(x,w) (4.42)

= (ρ− n) lnxtw −n∑

i=1

lnxiwi

xtw/n+ n lnn (4.43)

Cette fonction φBρ prend en considération conjointement la dualité (lnxtw) et la proximité aucentre analytique. En effet, φBρ sera meilleure si les termes xiwi sont très inférieurs à la mesurede dualité µ = xtw/n.

Parmi les méthodes du point intérieur , l’algorithme de réduction de potentiel a pour particu-larité de choisir le paramètre de centrage constant, σ(k) = n/ρ (ρ > n), et de réaliser une recherchelinéaire pour la longueur de pas α(k) tel que le potentiel φBρ soit minimisé le long de la directionde recherche.

Algorithme 7 Algorithme primal-dual de réduction de potentiel

Entrées: x(0), λ(0), w(0) ∈ F+

Sorties: (x∗, λ∗, w∗) tels que µ∗ < ǫTant que µ(k) > ǫ Faireσ(k) = n

ρ

Calculer

∆x(k)

∆λ(k)

∆w(k)

tel que :

0 At IA 0 0

W (k) 0 X(k)

∆x(k)

∆λ(k)

∆w(k)

=

00

−X(k)W (k)e

Choisir α(k) ∈ [0, 1] tel que

α(k) = arg minα(k)∈[0,αmax]

φBρ(x(k) + α(k)∆x(k), w(k) + α(k)∆w(k))

où αmax = supα ∈ [0, 1]|(x(k) + α(k)∆x(k), w(k) + α(k)∆w(k)) 0Poser (x(k+1), λ(k+1), w(k+1)) = (x(k), λ(k), w(k)) + α(k)(∆x(k),∆λ(k),∆w(k))

Fin tant que

4.2.3.2 Convergence et complexité polynomiale

L’analyse de la convergence de cet algorithme consiste à montrer que le potentiel φBρ est réduità chaque itération d’une quantité garantie.Dans un premier temps, un premier résultat établit que la réduction du potentiel implique laréduction de la mesure de dualité au travers des lemmes 7, 8, 9. Le théorème 25 nous donne unrésultat fondamental sur la complexité. Ce théorème est l’équivalent pour les méthodes de réductionde potentiel du théorème 20 pour les méthodes de suivi de chemin central.

68 Méthodes du point intérieur

Lemme 71. Nous avons

ln(1 + β)

≤ β, ∀ β > −1

= β, si et seulement si β = 0

2. Pour tout t ∈ Rn tel que ‖t‖∞ ≤ τ < 1, nous avons :

−n∑

i=1

ln(1 + ti) ≤ ett+‖t‖2

2(1− τ)

Lemme 8Soit (x,w) ≻ 0, nous avons alors :

φBn(x,w)

≥ n lnn

= n lnn, si et seulement si XWe = (xtw/n)e = µe

Le prochain résultat montre que le potentiel φBρ n’est pas borné de manière inférieure sur sondomaine de validité et déduit une relation en le potentiel φBρ et la mesure de dualité µ.

Lemme 91. φBρ is non borné sur son domaine de validité ;

2. Pour tout point (x, λ, w) ∈ F+, nous avons :

µ ≤ e

φBρ(x,w)

ρ− n (4.44)

avec µ = xtwn

Une conséquence de la seconde partie du lemme 9 est qu’il est possible de générer une séquenced’itérés (x(k), λ(k), w(k)) ∈ F+ pour laquelle le potentiel φBρ(x

(k), w(k)) tend vers −∞ et lamesure de dualité vers 0.

Les résultats suivants montrent que le potentiel est réduit à chaque itération d’une quantitéδ > 0 telle que :

φBρ(x(k+1), w(k+1)) ≤ φBρ(x

(k), w(k))− δ, k = 1, 2, . . . (4.45)

Tout d’abord, nous allons établir un résultat sur la complexité algorithmique de tous les algorithmesde réduction de potentiel qui réalisent l’incrément (4.45).

Théorème 25Soit l’itéré initial (x(0), λ(0), w(0)) ∈ F+ et l’algorithme générant une séquence d’itérés (x(k), w(k)) ∈F+ telle que (4.45) soit satisfaite à chaque itération pour un paramètre positif δ. Il vient alors quepour tout ǫ ∈]0, 1[, il existe un indice K donné par :

K =φBρ(x

(k), w(k))

δ+

ρ− n

δ| ln ǫ| (4.46)

tel que :µ(k) ≤, ∀ k ≥ K (4.47)

A chaque itération, une recherche de α(k) est réalisée. α(k) doit permettre de minimiser lepotentiel φBρ dans la direction de recherche (∆x(k),∆λ(k),∆w(k)). Or, ce potentiel est non convexesur la plage [0, αmax]. Ainsi, on utilise en lieu et place de φBρ une approximation quadratique q(α)qui borne le potentiel par le dessus. On montre que sur l’intervalle [0, αν ] ∈ [0, αmax] :

φBρ(x(k),+α∆x(k), w(k),+α∆w(k)) ≤ q(α) = φBρ(x

(k), w(k)) + αg1 +1

2α2g2

Itéré initial et irréalisabilité 69

où αν se définit par l’expression suivante :

αnumax(

‖X−1∆x(k)‖, ‖W−1∆w(k)‖)

= ν, ν ∈]0, 1[

Les coefficients de l’approximation q(α) sont donnés par :

g1 = ρwt∆x+ xt∆w

xtw− et(X−1∆x+W−1∆w)

g2 =1

1− ν(‖X−1∆x‖2 + ‖W−1∆w‖2

Dans ce contexte, il est montré dans [27], comment à partir d’estimations des coefficients g1 et g2,on obtient le résultat suivant :

Théorème 26Soit ν ∈]0, 1[ tel que l’on définisse α par :

α =vminν

‖r‖

avec r = (XW )12 e+ n

ρµ(XW )−12 e, alors il vient :

q(α)− q(0) ≤ 0.15

et ainsi (4.45) est satisfait pour δ = 0.15.

Le corollaire de ce théorème est l’obtention d’un résultat formel, basé sur le théorème 25, sur lacomplexité de la méthode de réduction de potentiel présentée.

Théorème 27Soient ρ ≥ n+

√n et ǫ > 0, supposons que l’itéré initial (x(0), λ(0), w(0)) ∈ F+ satisfait :

φBρ(x(0), w(0)) ≤ κ(ρ− n)| ln ǫ|

avec κ > 0 indépendant de n. Il existe alors un indice K défini par :

K =κ+ 1

0.15(ρ− n)| ln ǫ| = O((ρ− n)| ln ǫ)

pour lequel :(x(k), λ(k), w(k)) ∈ F+, µk ≤ ǫ, ∀ k ≥ K

4.2.4 Itéré initial et détection de programme irréalisable

Dans les sections précédentes, nous avons exposé plusieurs méthodes du point intérieur : troisméthodes de suivi de chemin central et une méthode de réduction de potentiel. Ces différentestechniques ont en commun la nécéssité de la donnée d’un itéré initial (x(0), λ(0), w(0)) strictementréalisable (etappartenant à un certain voisinage pour les méthodes de suivi de chemin). Il est sou-vent difficile de trouver un tel point et il peut s’avérer qu’il n’existe même pas pour un programmelinéaire parfaitement valide. Afin de s’en convaincre, considérons le problème suivant :

minx1,x2

2x1 + x2

sous x1 + x2 + x3 = 5x1 + x3 = 5

x 0

pour lequel l’espace primal admissible P est donné par P = (β, 0, 5− β)|β ∈ [0, 5]. On en déduitque l’intérieur de l’espace primal-dual F+ est un ensemble vide car x2 = 0 dans P .

70 Méthodes du point intérieur

De manière générale, les programmes linéaires sous forme standard obtenus par transformationd’un programme sous forme générale présentent régulièrement la propriété de ne pas posséder depoints strictement admissibles. De plus, en pratique, même si un itéré initial strictement admissibleexiste, la recherche de celui-ci est, en général une tâche difficile.

Nous présentons ici deux approches permettant de surmonter cette difficulté. Une premièretechnique est d’intégrer le programme dans un programme homogène auto-dual. L’intérêt de ceprogramme augmenté est multiple. Tout d’abord, un itéré initial strictement admissible est facileà identifier et le domaine admissible est non vide. Ce fait garantit la convergence systématiquedes algorithmes présentés jusqu’à présent. De plus, le programme homogène auto-dual donne desinformations sur l’éventuelle irréalisabilité du problème original, en précisant si celle-ci intervientau niveau du problème primal ou dual. Enfin, si une solution existe, elle sera facilement déduitede la solution du problème augmenté.La seconde technique consiste à utiliser un algorithme ne nécessitant pas que le point initial soitstrictement admissible mais seulement qu’il respecte la contrainte de positivité (x,w) ≻ 0. Cetalgorithme a été développé sur la base de l’algorithme de suivi de chemin central à pas longs.

4.2.4.1 Problème homogène auto-dual

Auto-dualité Un programme auto-dual est un programme pour lequel les problèmes primal etdual sont identiques. Dans le contexte des méthodes du point intérieur, cela autorise à éliminerla moitié du système de KKT afin de gagner en efficacité. Un problème auto-dual prend la formegénérale suivante :

minu,w

f tu+ gtw

sous M11u+M12w −f−M t

12u+M22w = −gu ≻ 0w libre

(4.48)

Les matrices M11 et M22 sont des matrices carrées et anti-symétriques i.e. M11 = −M t11 et M22 =

−M t22. On vérifie alors facilement que le problème dual de (4.48) n’est autre que lui-même. Après

avoir éliminer les redondances dans les conditions de KKT, on peut montrer que la solution de(4.48) peut être déduite de la solution du problème :

[

v0

]

=

[

M11 M12

−M12 M22

] [

uw

]

+

[

fg

]

utv = 0u, v 0

(4.49)

Ce problème est appelé problème complémentaire mixte. Il a pour propriété que toute solution(u, v, w) de (4.49) implique que (u,w) est solution du programme (4.48). Inversement, toute solution(u,w) de (4.48) implique que (u,M11u+M12w + f, w) est solution de l’équation (4.49).Comme décrit dans l’annexe A.3, le problème (4.49) peut être résolu par une méthode du pointintérieur. Rappelons ici que, de manière générale, la résolution de (4.49) ne procure pas de solutionsstrictement complémentaires comme le nécessité les solutions d’un programme linéaire. La réponseà ce problème est donnée dans le théorème suivant.

Théorème 28Si le programme linéaire auto-dual (4.48) admet une solution admissible alors le programme com-plémentaire mixte associé possède une solution strictement complémentaire.

Une preuve de ce théorème est disponible dans [27, Annexe A].

Forme auto-duale homogène Il existe deux types de forme auto-duale homogène. La formeauto-duale homogène, dite simplifiée, a été présentée pour la première fois par Xu, Hung et Ye [28].Si elle reformule les problèmes primal et dual en un seul problème auto-dual puis en un problèmede complémentarité mixte qui possède toujours une solution, elle nécessite toutefois l’utilisation

Itéré initial et irréalisabilité 71

d’un algorithme du point intérieur supportant des itérés non admissibles.Nous nous intéressons aux formes auto-duales homogènes décrites par Ye, Todd et Mizuno [31].L’avantage premier de cette forme est qu’il est très facile définir un itéré initial strictement admis-sible. Le problème auto-dual décrit dans [31] est le suivant :

min ((x(0))tw(0) + 1)ϑsous

−f tx+ atλ+ zϑ ≥ 0fς −Atλ− fϑ ≥ 0−bς +Ax+ aϑ = 0

−zς + f tx− atλ = −((x(0))tw(0) + 1)(ς, x) ≻ 0

λ, ϑ libre

(4.50)

où :a = a−Ax(0), f = f −Atλ(0) − w(0) z = f tx(0) + 1− atλ(0)

et (x(0), λ(0), w(0)) est l’itéré initial vérifiant (x(0), w(0)) ≻ 0. Les vecteurs a et f représententl’irréalisabilité de l’itéré initial par rapport aux contraintes du problème primal-dual. La variableς ∈ R est un facteur d’échelle sur les contraintes primales (Ax = a) et duales (Atλ ≥ f) tandisque ϑ ∈ R joue le même rôle vis-à-vis des vecteurs d’irréalisabilité initiale a et f . L’auto-dualité de(4.50) est facilement vérifiable. Remarquons que le terme « homogène » pour le problème (4.50) estlégèrement usurpé du fait que le membre de droite pour la dernière contrainte n’est pas nul. Nousallons maintenant définir le problème linéaire complémentaire mixte équivalent à (4.50) à l’aidede la variable supplémentaire κ ∈ R et de la variable duale w ∈ Rn. Il vient alors la formulationcomplémentaire du problème (4.50) :

κs00

=

0 −f t at zf 0 −At −f−a A 0 a−z f t −at 0

ςxλϑ

+

000

((x(0))tw(0) + 1)

,

(ς, x, κ, w) ≻ 0, ςκ+ xtw = 0

(4.51)

Un itéré initial strictement admissible pour le problème précédent est donné par :

(ς, x, λ, ϑ, κ, w) = (1, x(0), λ(0), 1, 1, w(0))

D’ailleurs, remarquons que le point (ς, x, λ, ϑ) = (1, x(0), λ(0), 1) est aussi un point strictementréalisable pour le problème (4.50). Il est possible de démontrer que l’ensemble des solutions de(4.50) et par conséquent de (4.51) est un ensemble borné. Dans le théorème suivant, il est établique pour toute solution du problème (4.50) alors ϑ = 0.

Théorème 29Soit une solution (ς∗, x∗, λ∗, ϑ∗, κ∗, w∗) au problème (4.51) alors ϑ∗ = 0

Enfin, les prochains théorèmes montrent comment l’ensemble des solutions du problème primal-dual est lié à celui du programme linéaire complémentaire mixte (4.51).

Théorème 30Le programme primal-dual possède un ensemble de solutions Ω 6= ∅ si et seulement si toutes lessolutions strictement complémentaires (ς∗, x∗, λ∗, ϑ∗, κ∗, w∗) de (4.51) sont telles que ς∗ > 0 etκ∗ = 0

Dans le cas où ς = 0 alors le problème primal et/ou le problème dual sont irréalisables. Le prochainrésultat montre comment identifier un programme défaillant à partir des solutions de (4.51).

Théorème 31Soit la solution strictement complémentaire (ς∗, x∗, λ∗, ϑ∗, κ∗, w∗) de (4.51) pour lequel κ∗ > 0.Alors, au moins une des propositions suivantes est vérifiée :

72 Méthodes du point intérieur

i f tx∗ < 0 et le programme dual est irréalisable ;

ii −atλ∗ < 0 et le programme primal est irréalisable.

Enfin, les solutions du programme original primal-dual (x∗, λ∗, w∗) peuvent être extraites d’unesolution strictement complémentaire (ς∗, x∗, λ∗, ϑ∗, κ∗, w∗) de (4.51) :

(x∗, λ∗, w∗) =

(

x∗

ς∗,λ∗

ς∗, f −At λ

ς∗

)

(4.52)

4.2.4.2 Méthode de suivi de chemin à itérés non admissibles

Après avoir défini une première technique basé sur l’auto-dualité et la conversion en problème decomplémentarité linéaire, nous allons présenter un algorithme qui ne requiert pas un itéré initialstrictement admissible pour converger vers une solution optimale et qui est réalisable même sil’intérieur de l’espace admissible primal-dual est vide. Cette méthode donne lieu à un algorithme ditdu point intérieur non admissible. Cet algorithme est une variante de l’algorithme de suivi de chemincentral à pas longs proposé précédemment. Il génère une séquence d’itérés (x(k), λ(k), w(k)),non nécessairement admissibles, mais dont la limite est admissible et optimale. L’intérêt pourles méthodes non admissibles est venu de la nécessité de développer des solveurs pratiques etergonomiques afin que l’utilisateur n’ait pas à spécifier un point initial strictement réalisable.

Algorithme Les principes de l’algorithme de suivi de chemin à itérés non admissibles n’est pasfondamentalement très éloigné du concept d’algorithme de suivi de chemin central à pas longs.Il prend toutefois en compte la distance à l’admissibilité de l’itéré actuel. Afin de décrire cettedistance, nous définissons les résidus suivants :

rP = Ax− b, rD = Atλ+ w − c (4.53)

Le calcul des directions de recherche va alors être modifié afin de prendre en compte la distance àl’admissibilité de l’itéré actuel.

0 At IA 0 0

W (k) 0 X(k)

∆x(k)

∆λ(k)

∆w(k)

=

−r(k)P

−r(k)D

−X(k)W (k)e+ σ(k)µ(k)e

(4.54)

où les résidus r(k)1 etr(k)2 sont évalués à l’itéré courant (x(k), λ(k), w(k)). A l’instar des méthodes desuivi de chemin à pas longs, la notion de voisinage N−∞ du chemin central est de nouveau utilisée.Celui-ci est défini par deux paramètres γ et β tels que :

N−∞(γ, β) =

(x, λ, w)|‖(rP , rD)‖ ≤ ‖(r(0)P , r(0)D )‖

µ(0)βγ, (x,w) > 0, xiwi ≥ γµ, i = 1, . . . , n

(4.55)Les paramètres γ ∈ (0, 1) et β ≥ 1 sont donnés. La mesure de dualité µ(0) est évaluée à l’itéré initial(x(0), λ(0), w(0)). La condition β ≥ 1 est nécessaire pour que l’itéré initial appartienne au voisinageN−∞(γ, β). On peut montrer que les points de ce voisinage admettent des résidus bornés par unmultiple de la mesure de dualité µ. La principale caractéristique de l’algorithme qui sera présentéest de forcer la convergence à zéro des résidus rP et rD en contraignant les itérés (x(k), λ(k), w(k))dans le voisinage N−∞(γ, β) et réduisant de manière monotone la mesure de dualité µ. La secondecondition xiwi ≥ γµ permet de garder chaque produit xiwi suffisament loin de zéro.

Itéré initial et irréalisabilité 73

Algorithme 8 Algorithme primal-dual de suivi de chemin à itérés non admissibles

Entrées: (x(0), λ(0), w(0)) tel que (x(0), w(0)) ≻ 0, γ ∈ [0, 1], β ≥ 1 et [σmin, σmax] ∈ [0, 0.5]Sorties: (x∗, λ∗, w∗) tel que µ∗ < ǫ

Tant que µ(k) > ǫ FaireChoisir σ(k) ∈ [σmin, σmax],

Calculer, avec µ(k) = (x(k))tw(k)

n ,

∆x(k)

∆λ(k)

∆w(k)

tel que :

0 At IA 0 0

W (k) 0 X(k)

∆x(k)

∆λ(k)

∆w(k)

=

−r(k)P

−r(k)D

−X(k)W (k)e+ σ(k)µ(k)e

Choisir α(k) ∈ [0, 1] le plus grand possible tel que

(x(k), λ(k), w(k)) + α(k)(∆x(k),∆λ(k),∆w(k)) ∈ N−∞

etµ(k+1) ≤ (1− .01α(k))µ(k) (4.56)

Poser (x(k+1), λ(k+1), w(k+1)) = (x(k), λ(k), w(k)) + α(k)(∆x(k),∆λ(k),∆w(k))Fin tant que

Convergence et complexité polynomiale La convergence de cet algorithme est analysée enmontrant qu’il existe une constante α > 0 telle que α(k) ≥ α pour tout k. En utilisant la condition(4.56), il vient :

µ(k+1) ≤ (1 − 0.1α(k))µ(k) ≤ (1− 0.1α)µ(k), pour tout k

Ainsi, la séquence de mesure de dualité µ(k) converge linéairement vers 0. Par ailleurs, on peutécrire

(r(k+1)P , r

(k+1)D ) = (1− α(k))(r

(k)P , r

(k)D )

Par conséquent, nous avons :

‖r(k+1)P , r

(k+1)D ‖ ≤ (1− α)‖r(k)P , r

(k)D ‖ (4.57)

et la séquence des résidus (r(k)P , r

(k)D ) converge vers 0.

Théorème 32La séquence de mesures de dualité µk générée par l’algorithme à itérés non admissibles converge

vers 0 ainsi que la séquence des normes de résidus ‖r(k)P , r(k)D ‖.

L’étude de la complexité algorithmique se base sur le fait que la borne α sur la longueur du pasest inversement polynomiale en n si le point de départ est :

(x(0), λ(0), w(0)) = (ζe, a, ζe)

où ζ est un scalaire vérifiant :‖(x∗, s∗)‖∞ ≤ ζ

Théorème 33Soit le paramètre ǫ > 0 et l’itéré initial donné par :

(x(0), λ(0), w(0)) = (ζe, a, ζe)

74 Méthodes du point intérieur

Supposons que le paramètre ζ satisfait :

ζ ≤ C

ǫκ

où C > 0 et κ > 0. Il existe alors un indice K tel que (x(k), λ(k), w(k)) généré par l’algorithme àitérés non admissibles satisfait

µ(k) ≥ ǫ ∀ k ≥ K

pour lequel :K = O(n2| log ǫ|)

La preuve de ce théorème est très technique et dépasse la portée de ce rapport. Une preuve estcependant disponible dans [27]. Ce dernier théorème impliquant la connaissance de la solution

optimale (x∗, λ∗, w∗), un itéré initial, dont le ratio ‖(r(0)P , r(0)D ‖/µ(0) est petit, permet en pratique

une convergence plus rapide qu’un itéré initial avec un ratio grand. Enfin, un dernier résultat nousindique que la séquence d’itérés est bornée dans le cas où F+ est non vide.

Théorème 34Soit la séquence d’itérés (x(k), λ(k), w(k)) générée par l’algorithme de suivi de chemin à itérésnon admissibles et supposons que l’intérieur de l’espace admissible soit non vide F+ 6= ∅. Il vientque la séquence (x(k), w(k)) est bornée et admet un point limite.

Annexe A

Méthodes du point intérieur

historiques

A.1 La méthode de Karmarkar

En 1984, l’algorithme de Karmarkar a été annoncé comme la première méthode de program-mation linéaire dont la complexité est polynomiale. Cette méthode utilise uniquement le domaineprimal sans faire référence au problème dual ni aux variables duales. A chaque itération, l’algo-rithme exécute une transformation projective de l’espace admissible qui fait de l’itéré courant x(k)

le centre de l’ensemble projeté dans lequel une direction de descente est ensuite calculée. L’objectifde la méthode est de réduire la fonction potentielle logarithmique φBK :

φBK(x) = ρ ln(f tx− Z)−n∑

i=1

lnxi (A.1)

où ρ = n + 1 et Z est une borne inférieure du coût optimal. Pour ce faire, Karmarkar a posé leproblème linéaire sous une forme normalisée appelée forme canonique de Karmarkar :

minx

f t x

sousAx = 0etx = nx 0

(A.2)

Le domaine admissible, noté P , est alors défini par :

P =

x | Ax = 0, etx = n, x 0

S’appuyant sur l’homogénéité de la fonction potentiel φBK , il pose alors la transformation projec-tive :

x′ = T (x) =n(X(k))−1x

et(X(k))−1xx ∈ P ′

La transformation inverse est donnée par :

x = T−1(x′) =nX(k)x′

etX(k)x′x′ ∈ K′

P

Cette projection transforme l’espace admissible P en P ′ et le potentiel φBK en φ′BK tel que :

P ′ = x′ | A(k)x′ = 0, etx′ = n, x′ 0

φ′BK(x′) = n ln((f (k))tx′)−

n∑

i=1

lnx′i

75

76 Méthodes du point intérieur historiques

avec f (k) = (X(k))−1f et A(k) = AX(k). Elle possède l’avantage d’être transparente vis-à-vis de ladernière contrainte de (A.2) etx = n qui devient etx′ = n. De plus, la différence de potentiel entredeux points de P+ est invariante par la projection T :

φBK(T (x(2)))− φBK(T (x(1))) = φ′BK(x(2))− φ′

BK(x(1))

Par la transformation projective T , le programme linéaire (A.2) est alors reformulé comme :

minx ((f (k))t x′

sous

A(k)x′ = 0etx′ = nx′ 0

(A.3)

L’idée de Karmarkar est de transformer l’itéré courant x(k) en centre analytique de l’ensembleadmissible projeté P ′ par la projection T . En effet, on peut montrer que le centre analytiqueT (x(k)) = e est le centre analytique de P ′. Ensuite, l’algorithme va tenter de réduire la valeur dupotentiel φ′

BK dans l’espace P ′. Pour ce faire, la minimisation va porter sur la linéarisation de φ′BK

autour du centre analytique e :

∇φ′BK(e)tx′ =

(

n

(f (k))tec(k) − e

)t

x′ =

(

n

f tx(k)f (k) − e

)t

x′ =n

f tx(k)(f (k))tx′ − n

Ainsi, en remarquant que f tx(k) et n sont fixes, on montre que le problème de minimisation dupotentiel sur P ′ s’écrit comme un problème d’optimisation linéaire sur l’intersection d’une bouleunité et d’un sous-espace défini par des contraintes linéaires :

minx ((f (k))t(x′ − e)sous

A(k)(x′ − e) = 0et(x′ − e) = n‖x′ − e‖ ≤ 1

(A.4)

La solution de ce problème est donnée par (cf. l’annexe A.5) :

x′ − e = −αd(k)

‖d(k)‖où

d(k) = X(k)(f −Atλ(k))− f tx(k)

ne

où λ(k) = (A(k)(A(k))t)−1A(k)f (k) est une approximation inférieure du coût minimal (f (k))tx′. Onmontre que la différence de potentiel entre le centre analytique de P ′ et le point x′ minimisant lepotentiel est borné :

φ′BK(x′)− φ′

BK(e) ≤ −δ

δ est une constante positive vérifiant δ = 3α/4 − α2/2(1 − α). Ainsi pour un α = 1/3, il vientδ = 1/6. De plus, en utilisant la projection inverse T−1(x′) = x(k+1) et T−1(e) = x(k), on peutaffirmer que la réduction de potentiel à chaque itération est bornée par une constante :

φBK(x(k+1))− φBK(x(k)) ≤ −1

6

La complexité d’un algorithme basé sur la méthode de Karmarkar est polynomiale et requiertO(n log(1/ǫ)) itérations pour obtenir une solution ǫ−optimale. Peu de temps après la publicationdes travaux de Karmarkar, Renegar [22] a publié un algorithme utilisant une méthode de Newtonconjointement avec une autre fonction logarithmique barrière donnée par :

minx

−n ln(Z − ctx) −n∑

i=1

lnxi

A.2. MÉTHODE DE MISE À L’ÉCHELLE AFFINE 77

avec la contrainte supplémentaire ctx Z, Z étant une borne supérieure du coût optimal ctx∗.L’intérêt de l’algorithme de Renegar est d’améliorer sensiblement la compléxité de l’algorithmeinitial. En effet, dans le pire des cas, il faudra O(

√n ln(1/ǫ)) itérations pour identifier une solution

admissible ǫ−optimale x tel que ‖ctx∗ − ctx‖ < ǫ.

A.2 Méthode de mise à l’échelle affine

Nous pouvons aussi citer, parmi les méthodes primales historiques, les méthodes de mise àl’échelle affine (affine scaling method). Elles ont été développées en premier lieu dans le cadre primalpar Dickin [6]. Ces méthodes de réduction de potentiel se basent sur des transformations projectivesaffines et non pas sur la notion de chemin central ou sur des méthodes de Newton. Dans le problèmeprimal, la contrainte de positivité sur x est remplacée par une contrainte d’appartenance à unellipsoïde centré autour de l’itéré courant :

minx

f t x

sousAx = a

‖(X(k))−1(x− x(k))| ≤ 1

(A.5)

où x(k) représente l’itéré courant, X(k) la matrice diagonale comportant le vecteur x(k) sur ladiagonale. On peut montrer que l’ellipsoïde, appelé ellipsoïde de Dikin, est entièrement inclus àl’intérieur de P . Le minimum sur cette ellipsoïde est obtenu en x(k+1) = x(k) +∆x(k) où 1

∆x(k) = −X(k)PAX(k)X(k)f

‖PAX(k)X(k)f‖Si les méthodes primales ont un intérêt théorique en termes d’analyse de complexité et de

vitesse de convergence ou encore en termes de concept de point intérieur, il apparaît que ce sontsurtout les méthodes utilisant les variables primales et duales qui ont été largement codées dansles solveurs numériques disponibles [1].

1. PQ est la matrice projection sur kerQ = x|Qx = 0, qui peut s’écrire PQ = I − Qt(QQt)−1Q si Q est derang plein.

78 Problème de complémentarité linéaire

A.3 Problème de complémentarité linéaire

Les problèmes de complémentarité linéaire sont une classe générale de problèmes en laquelle ilest aisé de transcrire les problèmes de programmation linéaire. Pour cette classe de problèmes, lesalgorithmes du point intérieur peuvent être ré-écrits au moyen de simples changements de notationset appliqués avec l’arsenal de propriétés qui font le succès des méthodes du point intérieur.

A.3.1 Problème de complémentarité linéaire monotone

Le problème de complémentarité linéaire monotone consiste à trouver x ∈ Rn et s ∈ Rn quisatisfont les contraintes suivantes :

w = Mx+ q, (x,w) 0, xtw = 0 (A.6)

M ∈ Rn×n est une matrice semi-définie positive et q un vecteur appartenant à R

n. Les conditionsxtw = 0 et (x,w) 0 impliquent que pout tout i xiwi=0 où de manière équivalente :

xi = 0 ou wi = 0 pour tout i = 1, . . . , n.

Si le problème (A.6) n’est pas un problème d’optimisation, il possède cependant des contrainteségalité (w = Mx+ q), des conditions de non-négativité ((x,w) 0) et de complémentarité (xtw =0) à l’instar des programmes linéaires. Ainsi le problème (A.6) peut-être reformulé sous la formed’un système non linéaire :

F (x,w) =

[

Mx+ q − wXWe

]

= 0 (A.7)

Le problème A.7 peut être résolu par des méthodes de descente de type Newton à l’instar desconditions de KKT pour les programmes linéaires. Un espace admissible et son intérieur peuventêtre alors définis :

F = (x,w) | w = Mx+ q, (x,w) 0F∗ = (x,w) | w = Mx+ q, (x,w) ≻ 0 (A.8)

Dans ce cadre, la notion de chemin central peut-être étendue. Il se définit alors comme l’ensembledes points (xτ , wτ ) avec τ > 0 tels que :

Mx+ q = w

xiwi = τ i = 1, . . . , n

(x,w) ≻ 0

(A.9)

Ainsi le cadre général des méthodes du point intérieur est aussi applicable au problème (A.7)

Algorithme 9 Algorithme de complémentarité linéaire

Entrées: (x(0), w(0)) ∈ F+

Pour k = 1, 2, · · · FaireRésoudre

[

M −I

W (k) X(k)

] [

∆x(k)

∆w(k)

]

=

[

0

−X(k)X(k)e+ σµe

]

pour σ(k) ∈ [0, 1] et µ(k) = (x(k))tw(k)

n ;Poser (x(k+1), w(k+1)) = (x(k), w(k)) + α(k)(∆x(k),∆w(k))Choisir α(k) tel que (x(k+1), w(k+1)) ≻ 0

Fin pour

Les notions de voisinage peuvent aussi être décrites comme pour les méthodes de suivi dechemin central. Ainsi, l’extension d’un algorithme tel que celui prédiction-correction est possible àpeu de frais.

Problème de complémentarité linéaire 79

Algorithme 10 Algorithme de complémentarité linéaire 2

Entrées: (x(0), w(0)) ∈ N2(θ1)Pour k = 1, 2, · · · Faire

Si k pair (prédiction) AlorsRésoudre

[

M −I

W (k) X(k)

] [

∆x(k)

∆w(k)

]

=

[

0

−X(k)W (k)e

]

(A.10)

avec σ = 0 ;Calculer α(k) ∈ [0, 1] le plus grand possible tel que :

(x(k+1), w(k+1)) = (x(k), w(k)) + α(k)(∆x(k),∆w(k)) ∈ N2(θ2)

Fin siSi k impair (correction) Alors

Résoudre[

M −IW (k) X(k)

] [

∆x(k)

∆w(k)

]

=

[

0−X(k)W (k)e+ µ(k)e

]

(A.11)

avec σ = 1.Poser (x(k+1), w(k+1)) = (x(k), w(k)) + (∆x(k),∆w(k)) ;

Fin siFin pour

Les différents résultats sur la convergence et la complexité de cet algorithme sont quasimentidentiques à ceux obtenus dans le cadre des programmes linéaires :

Théorème 35Soit ǫ > 0 et un itéré initial (x(0), w(0)) ∈ N2(θ1) avec θ1 = 1

4 et θ2 = 12 alors pour l’algorithme de

prédiction/correction avec :

µ0 ≤ C

ǫκ

où C et κ sont des constantes positives, il existe un indice K = O(√n| ln ǫ|) tel que

µ(k) ≤ ǫ k ≥ K

A.3.2 Problème de complémentarité linéaire mixte

Nous présentons maintenant une variante du problème de complémentarité linéaire appelé pro-blème de complémentarité linéaire mixte. Bien qu’équivalent à la forme standard (A.6), cette formemixte est plus générale que la précédente. Elle permet surtout un lien plus aisé avec les problèmesde programmation linéaire. L’équivalence entre les deux formes permet d’utiliser les algorithmesprécédents et de conserver les propriétés de convergence et de complexité algorithmique.

Le problème de complémentarité linéaire mixte consiste en la recherche des vecteurs x ∈ Rn,s ∈ Rn et z ∈ Rm tel que

[

w0

]

=

[

M11 M12

M21 M22

] [

xz

]

+

[

q1q2

]

, (x,w) 0, xtw = 0 (A.12)

où la matrice M =

[

M11 M12

M21 M22

]

, de dimensions (n +m) × (n +m) est semi-définie positive. En

utilisant la forme (A.12), les conditions de KKT pour un programme linéaire peuvent se réécrirecomme :

[

w0

]

=

[

0 −At

A 0

] [

]

+

[

f−a

]

, (x,w) 0, xtw = 0

80 Problème de complémentarité linéaire

Pour la forme mixte du problème de complémentarité linéaire, le calcul de la direction de recherchese décline la façon suivante :

M11 M12 −IM21 M22 0W 0 X

[

∆x(k)

∆z(k)∆w(k)

]

=

w −M11x−M12z − q1−M21x−M22z − q2−X(k)W (k)e + σµe

Rappels sur la méthode de Newton 81

A.4 Rappels sur la méthode de Newton

La méthode de Newton est une méthode itérative de résolution des systèmes d’équations nonlinéaires.

Soit F : Rn → Rn une fonction non linéaire différentiable. La méthode de Newton est uneprocédure itérative qui a pour objectif de trouver un point x∗ ∈ Rn tel que F (x∗) = 0. Ensupposant que l’on dispose d’un vecteur x(k) fournissant une approximation de la solution x∗, laméthode de Newton utilise une approximation du premier ordre (linéaire) de F autour de x(k) afind’améliorer cette approximation.

F (x(k) +∆x(k)) ≈ F (x(k)) + J(x(k))∆x(k) (A.13)

où J(x(k)) est la matrice Jacobienne de F calculée en x(k). L’élément (i, j) de J(x(k)) est calculécomme :

∂Fi(x)

∂xj |x=x(k)

On suppose que la matrice Jacobienne n’est pas singulière. L’itéré suivant x(k+1), constituantl’approximation suivante de x∗ est calculée comme :

x(k+1) = x(k) +∆x(k) (A.14)

où le pas de Newton ∆x(k) est choisi afin d’annuler l’approximation linéaire de la fonction F .

F (x(k)) + J(x(k))∆x(k) = O (A.15)

Le calcul de ∆x(k) est généralement effectué en pratique via la résolution du système linéaire :

J(x(k))∆x(k) = −F (x(k)) (A.16)

et non par l’inversion de la matrice J(x(k)).

F (x)

0 xx(k)x(k+1)

F (x(k)) + J(x(k))∆x(k)

x∗

Figure A.1 – Illustration de la méthode de Newton pour une fonction F scalaire

La convergence vers une solution est généralement rapide quand un itéré atteint un voisinagede la solution. En fait, si la fonction F est Lipschitz et continûment différentiable au voisinage de

82 Rappels sur la méthode de Newton

la solution x∗ et si la matrice Jacobienne n’est pas singulière alore la méthode de Newton convergequadratiquement.

‖x(k+1) − x∗‖2 ≤ K‖x(k) − x∗‖22 (A.17)

pour une constante K > 0. Si x0 se trouve éloigné d’un voisinage d’un des zéros x∗ de F, laméthode peut diverger. Il est alors possible de définir l’itération de base à l’aide d’une recherchemonodimensionnelle :

x(k+1) = x(k) + αkδx(k) (A.18)

où αk la longueur du pas de Newton peut être choisi comme :

αk = Arg[

minα

‖F (x(k) + α∆x(k))‖2]

(A.19)

Minimisation linéaire sous contrainte de norme 83

A.5 Minimisation linéaire sous contrainte de norme

Le problème de minimisation linéaire sous contrainte de norme peut prendre plusieurs formes :

minx

fTx

sousAx = 0

‖x‖2 ≤ 1

(A.20)

ouminx

gT y

sous‖AT y‖2 ≤ 1

(A.21)

x∗ est un minimum pour le problème (A.20) si et seulement s’il existe un vecteur y satisfaisant

AAT y = Af

et si f −AT y 6= 0 alors :

x∗ = − (f −AT y)

‖f −AT y‖Si f − AT y = 0 alors toute solution admissible miminise le coût. De même, le problème (A.21) aune solution y∗ qui est donnée par :

y∗ = − y

‖AT y‖où y 6= 0 vérifie la relation :

AAT = g

Si y = 0 alors toute solution admissible est solution du problème (A.21).Ainsi, les problèmes de minimisation sous contrainte de norme (A.20) et (A.21) se résument à

une résolution d’un système d’équations linéaires.

84 Minimisation linéaire sous contrainte de norme

Bibliographie

[1] H.Y. Benson. Encyclopedia of OR/MS, chapter Interior-Point Linear Programming Solvers.Wiley, A paraitre.

[2] D. Bertsimas and J. N. Tsitsiklis. Introduction to linear optimization. Optimization andComputation Series. Athena Scientific, Belmont, Massachussetts, USA, 1997.

[3] A. Billionnet. Optimisation discrète. Dunod, Paris, France, 2007.

[4] G. B. Dantzig. Applications et prolongements de la programmation linéaire. Dunod, Dunod,Paris, 1966.

[5] G. B. Dantzig and M. N. Thapa. Linear programming. Springer, New York, New York USA,1997.

[6] I. I. Dikin. Iterative solution of problems of linear and quadratic programming. SovietMathematics Doklady, 8 :674–675, 1967.

[7] M. C. Ferris, O. L. Mangasarian, and S. J. Wright. Linear programming with MATLAB.MPS-SIAM Series on Optimization. SIAM, Philadelphie, Pennsylvanie, USA, 2007.

[8] A.V. Fiacco and G.P. McCormick, editors. Nonlinear programming, sequential unconstrainedminimization techniques. John Wiley and Sons, New York, New York, USA, 1968.

[9] R. Freund. Polynomial-time algorithms for linear programming based only on primal scalingand projected gradients of a potential function. Mathematical Programming, 51 :203–222,1991.

[10] K.R. Frisch. The logarithmic potential method of convex programming. Technical report,University Institute of Economics, Oslo, Norvège, 1955.

[11] M. R. Garey and D. S. Johnson. Computers and Intractability, a guide to the theory ofNP-completeness. Freeman, San Francisco, Californie, USA, 1979.

[12] S. I. Gass. The first linear programming shoppe. Operations Research, 50(1) :61–68, 2002.

[13] C. Gonzaga and Todd M. An o(√nl-iteration large step primal-dual affine algorithm for linear

programming. SIAM Journal on optimization, 2 :349–359, 1992.

[14] N. Karmarkar. A new polynomial-time algorithm for linear programming. Combinatorica,4 :373–395, 1984.

[15] M. Kojima, Mizuno S., and Yoshise A. An o(√nl iteration potential reduction algorithm for

linear complementary problems. Mathematical Programming, 50 :33–342, 1991.

[16] D. G. Luenberger. Linear and nonlinear programming. Addison Wesley Publishing Company,Reading, Massachussets, USA, 1989.

[17] J. Matousek and B. Gärtner. Understanding and using linear programming. Springer, Hei-derlberg, Germany, 2007.

[18] J. F. Maurras. Programmation linéaire, complexité. Springer, Heiderlberg, Germany, 2002.

[19] S. Mehrotra and J.S. Wang. On the implementation of a primal-dual interior point method.SIAM Journal on Optimization, 2 :575–601, 1992.

[20] M. Minoux. Programmation mathématique. Dunod, Paris, France, 1983.

[21] A. Orden. LP from the ’40s to the ’90s. Interfaces, 23(5) :2–12, 1993.

85

86 BIBLIOGRAPHIE

[22] J. Renegar. A polynomial-time algorithm, based on Newton’s method, for linear programming.Mathematical Programming, 40 :59–93, 1988.

[23] K. Tanabe. Centered Newton method for mathematical programming. In System modelingand optimization : proceedings of the 13th IFIP conference, pages 197–206, Berlin, Au-gust/September 1987 1988. Springer-Verlag.

[24] M.J. Todd and Y. Ye. A centered projective algorithm for linear programming. Mathematicsof operation research, 38 :1006–1018, 1990.

[25] R. J. Vanderbei. Linear Programming : Foundations and extensions. International Series onOperations Research and Management Science. Springer, New York, New York, USA, 2008.

[26] H.P. Williams. Model building in mathematical programming. Wiley, New York, NY, USA,1999.

[27] S. Wright. Primal-dual interior-point methods. SIAM, 1997.

[28] X. Xu, P. Hung, and Y. Ye. A simplified homogeneous and self-dual linear programmingalgorithm and its implementation. Annals of operations research, 62 :151–172, 1996.

[29] Y. Ye. An o(n3l) potential reduction algorithm for linear programming. MathematicalProgramming, 1991.

[30] Y. Ye. Interior point algorithms. John Wiley and Sons, New York, New York, USA, 1997.

[31] Y. Ye, M. Todd, and S. Mizuno. An o(√nl)-iteration homogeneous and self-dual linear pro-

gramming algorithm. Mathematics of operations research, 4 :208–227, 1994.