Vous êtes sur la page 1sur 158

Leçon 1

Programmation linéaire

Xavier Goaoc

1
Leçon 1
Programmation linéaire

Xavier Goaoc

1
La programmation linéaire est la théorie des systèmes d’inégalités linéaires.

système linéaire, sous-espace affine, pivot de Gauss


→ programme linéaire, polyèdre, algorithme du simplexe

Développée tardivement (Kantorovitch 1939, Dantzig 1947, ...)


impact difficile à surévaluer, en théorie et en pratique.

2
Premiers exemples
de programmes linéaires

3
Un programme linéaire (PL) est un problème qui consiste à maximiser sur Rd
une fonction linéaire sous des contraintes linéaires.

max x1 + x2
t.q. x1 ≥ 0
2x2 − x1 ≤ 2
x1 + x2 ≥ 0
x2 − 2x1 ≥ −4

4
Un programme linéaire (PL) est un problème qui consiste à maximiser sur Rd
une fonction linéaire sous des contraintes linéaires.

x2
max x1 + x2
t.q. x1 ≥ 0
2x2 − x1 ≤ 2
x1 + x2 ≥ 0
x2 − 2x1 ≥ −4

x1

4
Un programme linéaire (PL) est un problème qui consiste à maximiser sur Rd
une fonction linéaire sous des contraintes linéaires.

x2
max x1 + x2
t.q. x1 ≥ 0
2x2 − x1 ≤ 2
x1 + x2 ≥ 0
x2 − 2x1 ≥ −4

x1

4
Un programme linéaire (PL) est un problème qui consiste à maximiser sur Rd
une fonction linéaire sous des contraintes linéaires.

x2
max x1 + x2
t.q. x1 ≥ 0
2x2 − x1 ≤ 2
x1 + x2 ≥ 0
x2 − 2x1 ≥ −4

x1

4
Un programme linéaire (PL) est un problème qui consiste à maximiser sur Rd
une fonction linéaire sous des contraintes linéaires.

x2
max x1 + x2
t.q. x1 ≥ 0
2x2 − x1 ≤ 2
x1 + x2 ≥ 0
x2 − 2x1 ≥ −4

x1

4
Un programme linéaire (PL) est un problème qui consiste à maximiser sur Rd
une fonction linéaire sous des contraintes linéaires.

x2
max x1 + x2
t.q. x1 ≥ 0
2x2 − x1 ≤ 2
x1 + x2 ≥ 0
x2 − 2x1 ≥ −4

x1

4
Un programme linéaire (PL) est un problème qui consiste à maximiser sur Rd
une fonction linéaire sous des contraintes linéaires.

x2
max x1 + x2
t.q. x1 ≥ 0
2x2 − x1 ≤ 2
x1 + x2 ≥ 0
x2 − 2x1 ≥ −4

x1

4
Un programme linéaire (PL) est un problème qui consiste à maximiser sur Rd
une fonction linéaire sous des contraintes linéaires.

x2
max x1 + x2
t.q. x1 ≥ 0
2x2 − x1 ≤ 2
x1 + x2 ≥ 0
x2 − 2x1 ≥ −4

x1

4
Un programme linéaire (PL) est un problème qui consiste à maximiser sur Rd
une fonction linéaire sous des contraintes linéaires.

x2
max x1 + x2
t.q. x1 ≥ 0
2x2 − x1 ≤ 2
x1 + x2 ≥ 0
x2 − 2x1 ≥ −4

x1

Une forme générale

max cT x
t.q. Ax ≤ b

x ∈ Rd , A ∈ Rn×d , b ∈ Rn

4
Un programme linéaire (PL) est un problème qui consiste à maximiser sur Rd
une fonction linéaire sous des contraintes linéaires.

x2
max x1 + x2
t.q. x1 ≥ 0
2x2 − x1 ≤ 2
x1 + x2 ≥ 0
x2 − 2x1 ≥ −4

x1

Une forme générale

max cT x
t.q. Ax ≤ b    
  −1 0 0
1 −1 2, b = 2
 
x ∈ Rd , A ∈ Rn×d , b ∈ Rn c=
1
,A=
−1 −1 0
2 −1 4

4
Résoudre un programme linéaire = déterminer un vecteur x optimal
ou qu’aucun x ne satisfait toutes les contraintes.

Valeur d’ un PL = valeur maximale dans [−∞, +∞] atteinte par la fonction à optimiser

5
Résoudre un programme linéaire = déterminer un vecteur x optimal
ou qu’aucun x ne satisfait toutes les contraintes.

Valeur d’ un PL = valeur maximale dans [−∞, +∞] atteinte par la fonction à optimiser

Algorithmes du simplexe, méthode de l’ellipsoide, méthodes de point intérieur,


algorithmes primal-dual, méthodes par échantillonnage, . . .

5
Résoudre un programme linéaire = déterminer un vecteur x optimal
ou qu’aucun x ne satisfait toutes les contraintes.

Valeur d’ un PL = valeur maximale dans [−∞, +∞] atteinte par la fonction à optimiser

Algorithmes du simplexe, méthode de l’ellipsoide, méthodes de point intérieur,


algorithmes primal-dual, méthodes par échantillonnage, . . .

On sait résoudre les programmes linéaires efficacement

en pratique : algorithmes du simplexe, implantation efficaces, . . .


plusieurs milliers de variables et de contraintes.

5
Résoudre un programme linéaire = déterminer un vecteur x optimal
ou qu’aucun x ne satisfait toutes les contraintes.

Valeur d’ un PL = valeur maximale dans [−∞, +∞] atteinte par la fonction à optimiser

Algorithmes du simplexe, méthode de l’ellipsoide, méthodes de point intérieur,


algorithmes primal-dual, méthodes par échantillonnage, . . .

On sait résoudre les programmes linéaires efficacement

en pratique : algorithmes du simplexe, implantation efficaces, . . .


plusieurs milliers de variables et de contraintes.

en théorie : algorithmes polynomiaux en la représentation du PL.


(On cherche encore un algorithme polynomial en n et d. . . )

5
Résoudre un programme linéaire = déterminer un vecteur x optimal
ou qu’aucun x ne satisfait toutes les contraintes.

Valeur d’ un PL = valeur maximale dans [−∞, +∞] atteinte par la fonction à optimiser

Algorithmes du simplexe, méthode de l’ellipsoide, méthodes de point intérieur,


algorithmes primal-dual, méthodes par échantillonnage, . . .

On sait résoudre les programmes linéaires efficacement

en pratique : algorithmes du simplexe, implantation efficaces, . . .


plusieurs milliers de variables et de contraintes.

en théorie : algorithmes polynomiaux en la représentation du PL.


(On cherche encore un algorithme polynomial en n et d. . . )

Réduire une question à un (ou plusieurs) PL est une bonne nouvelle !

5
Exemple 1 : optimisation logistique

Une pâtisserie industrielle possède deux sites de production, à Quimper et à Vannes.


Elle expédie sa production vers Rouen, Paris et Bordeau. La capacité maximale
de production de Quimper est de 350 caisses/semaine et celle de Vannes est de
650 caisses par semaine. La demande à satisfaire à chaque destination est de 300
caisses par semaine. Les quantités de CO2 émises pour transporter une caisse d’un
site de production vers un site de consommation sont :
Paris Rouen Bordeau
Quimper 25 17 18
Vannes 25 18 14
On cherche à déterminer le plan de production et de transport qui satisfait les
demandes en dégageant le moins de CO2 possible.

6
Exemple 1 : optimisation logistique

Une pâtisserie industrielle possède deux sites de production, à Quimper et à Vannes.


Elle expédie sa production vers Rouen, Paris et Bordeau. La capacité maximale
de production de Quimper est de 350 caisses/semaine et celle de Vannes est de
650 caisses par semaine. La demande à satisfaire à chaque destination est de 300
caisses par semaine. Les quantités de CO2 émises pour transporter une caisse d’un
site de production vers un site de consommation sont :
Paris Rouen Bordeau
Quimper 25 17 18
Vannes 25 18 14
On cherche à déterminer le plan de production et de transport qui satisfait les
demandes en dégageant le moins de CO2 possible.

min 25xP Q + 25xP V + 17xRQ + 18xRV + 18xBQ + 14xBV


t.q. xP Q + xP V ≥ 300 xP Q + xRQ + xBQ ≤ 350
xRQ + xRV ≥ 300 xP V + xRV + xBV ≤ 650
xBQ + xBV ≥ 300 xP Q , . . . , xBV ≥ 0

6
Exemple 1 : optimisation logistique

Une pâtisserie industrielle possède deux sites de production, à Quimper et à Vannes.


Elle expédie sa production vers Rouen, Paris et Bordeau. La capacité maximale
de production de Quimper est de 350 caisses/semaine et celle de Vannes est de
650 caisses par semaine. La demande à satisfaire à chaque destination est de 300
caisses par semaine. Les quantités de CO2 émises pour transporter une caisse d’un
site de production vers un site de consommation sont :
Paris Rouen Bordeau
Quimper 25 17 18
Vannes 25 18 14
On cherche à déterminer le plan de production et de transport qui satisfait les
demandes en dégageant le moins de CO2 possible.

max − (25xP Q + 25xP V + 17xRQ + 18xRV + 18xBQ + 14xBV )


t.q. xP Q + xP V ≥ 300 xP Q + xRQ + xBQ ≤ 350
xRQ + xRV ≥ 300 xP V + xRV + xBV ≤ 650
xBQ + xBV ≥ 300 xP Q , . . . , xBV ≥ 0

6
Exemple 1 : optimisation logistique

Une pâtisserie industrielle possède deux sites de production, à Quimper et à Vannes.


Uneexpédie
Elle imprimerie fonctionne 45
sa production versheures parParis
Rouen, semaine. En une heure
et Bordeau. elle peutmaximale
La capacité imprimer
et production
de découper 25dejeux de tarot,
Quimper 50 350
est de jeux caisses/semaine
de 54 cartes ou et75celle
jeuxdedeVannes
32 cartes.
est deLe
marché
650 hebdomadaire
caisses par semaine.estLadedemande
500 jeuxà satisfaire
de tarot, à1000 jeuxdestination
chaque de 54 cartes
est et
de 1500
300
jeux depar
caisses 32semaine.
cartes. LesLesexpéditions
quantités deontCOlieu une fois par semaine, donc le local de
2 émises pour transporter une caisse d’un
stockage
site doit être vers
de production capable de de
un site contenir la totalitésont
consommation de la: production hebdomadaire.
Il contient au plus 2000 jeux de tarot Paris ou Rouen
4000 jeux de 54 cartes ou 7500 jeux de
Bordeau
32 cartes (ou toute combinaison,
Quimper par 25 exemple 17 1000 jeux
18 de tarot et 2000 jeux de
54 cartes). Le profit réalisé
Vannes est de 25
1 euro par 18 jeu de tarot,
14 30 centimes par jeu de
54 cartes
On chercheet à25déterminer
centime par jeu de
le plan de32production
cartes. L’entreprise cherche
et de transport quilasatisfait
productionles
qui maximise
demandes son profit...
en dégageant le moins de CO2 possible.

max − (25xP Q + 25xP V + 17xRQ + 18xRV + 18xBQ + 14xBV )


t.q. xP Q + xP V ≥ 300 xP Q + xRQ + xBQ ≤ 350
xRQ + xRV ≥ 300 xP V + xRV + xBV ≤ 650
xBQ + xBV ≥ 300 xP Q , . . . , xBV ≥ 0

6
Exemple 1 : optimisation logistique

Une pâtisserie industrielle possède deux sites de production, à Quimper et à Vannes.


Uneexpédie
Elle imprimerie fonctionne 45
sa production versheures
Rouen,parParis
semaine. En une heure
et Bordeau. elle peutmaximale
La capacité imprimer
et production
de découper 25dejeux de tarot,
Quimper 50 350
est de jeux caisses/semaine
de 54 cartes ou et75celle jeuxde
deVannes
32 cartes.
est deLe
marché
650 hebdomadaire
caisses par semaine.estLadedemande 500 jeuxà satisfaire
de tarot, à1000 jeuxdestination
chaque de 54 cartesest et
de 1500
300
jeux depar
caisses Un restaurateur
32semaine.
cartes. Les disposedeont
Lesexpéditions
quantités de
CO 880
lieu oursins
une foisetpardesemaine,
720 huı̂tres.
donc Ille local de
2 émises pour transporter une caisse d’un
stockage
site propose
doit
de production à saunclientèle
être vers
capable de de
site deux latypes
contenir d’assiette
totalité
consommation : assiette hebdomadaire.
de la: production
sont à 20
Il contient euros
au plus (42000
oursins,
jeux1de huı̂tre)
Parisou Rouen
tarot assiette
4000 jeux àBordeau
15
de euros (2 oursins,
54 cartes ou 7500 jeux de
32 cartes (ou3 huı̂tre). Quelle recette
toute combinaison,
Quimper 25 maximum
par exemple est jeux
17 1000 envisageable
18 de tarot par ce jeux de
et 2000
54 cartes). restaurateur ? est de 25
Le profit réalisé
Vannes 1 euro par 18 jeu de tarot,
14 30 centimes par jeu de
54 cartes
On chercheet à25déterminer
centime par jeu de
le plan de32production
cartes. L’entreprise cherche
et de transport quilasatisfait
productionles
qui maximise
demandes son profit...
en dégageant le moins de CO2 possible.

max − (25xP Q + 25xP V + 17xRQ + 18xRV + 18xBQ + 14xBV )


t.q. xP Q + xP V ≥ 300 xP Q + xRQ + xBQ ≤ 350
xRQ + xRV ≥ 300 xP V + xRV + xBV ≤ 650
xBQ + xBV ≥ 300 xP Q , . . . , xBV ≥ 0

6
Exemple 2 : flot dans un graphe

Un réseau (informatique, routier, . . . )


1
40
1600

00

Chaque arête a une capacité


1500 = flot maximal (de données, de voitures, . . . )
2 3
sur cette arête par unité de temps
70
2200

80 0
1100

11

850 1300
4 5 6
1400
1750

0
92

2100 3630
7 8 9

7
Exemple 2 : flot dans un graphe

Un réseau (informatique, routier, . . . )


1
40
1600

00

Chaque arête a une capacité


1500 = flot maximal (de données, de voitures, . . . )
2 3
sur cette arête par unité de temps
70
2200

80 0
1100

11
Le flot maximum possible entre deux sommets
850 1300
4 5 6 donné est donné par un PL.
1400
1750

0
92

2100 3630
7 8 9

7
Exemple 2 : flot dans un graphe

Un réseau (informatique, routier, . . . )


1
40
1600

00

Chaque arête a une capacité


1500 = flot maximal (de données, de voitures, . . . )
2 3
sur cette arête par unité de temps
70
2200

80 0
1100

11
Le flot maximum possible entre deux sommets
850 1300
4 5 6 donné est donné par un PL.
1400
1750

0
92
une variable par arête
2100 3630
7 8 9 écrire les lois de Kirchhoff
(sauf aux deux sommets en question)
maximiser le flot en un des sommets spéciaux

7
Exemple 3 : régression linéaire `1

     
x1 x x
, 2 , . . . , n des points de données dans R2 .
y1 y2 yn

8
Exemple 3 : régression linéaire `1

     
x1 x x
, 2 , . . . , n des points de données dans R2 .
y1 y2 yn

Comment trouver la droite minimisant la


somme des distance `1 à ces points ?

8
Exemple 3 : régression linéaire `1

     
x1 x x
, 2 , . . . , n des points de données dans R2 .
y1 y2 yn

Comment trouver la droite minimisant la


somme des distance `1 à ces points ?

Idée : introduire deux variables a, b


et chercher
Pn
min i=1 |axi + b − yi |

8
Exemple 3 : régression linéaire `1

     
x1 x x
, 2 , . . . , n des points de données dans R2 .
y1 y2 yn

Comment trouver la droite minimisant la


somme des distance `1 à ces points ?

Idée : introduire deux variables a, b


et chercher
Pn
min i=1 |axi + b − yi |

pas PL...

8
Exemple 3 : régression linéaire `1

     
x1 x x
, 2 , . . . , n des points de données dans R2 .
y1 y2 yn

Comment trouver la droite minimisant la


somme des distance `1 à ces points ?

Idée : introduire deux variables a, b


et chercher
Pn
min i=1 |axi + b − yi |

Meilleure idée : introduire 2+n variables a, b, e1 , e2 , . . . , en pas PL...


et chercher

min e1 + e2 + . . . + en
t.q. ei ≥ axi + b − yi
pour i = 1, 2, . . . , n
ei ≥ − (axi + b − yi )
8
Méthode du simplexe

Intuition géométrique

9
max cT x Ax ≤ b = intersection de demi-espaces de Rd
(P)
t.q. Ax ≤ b = polyèdre convexe (évent. vide)

x ∈ Rd , A ∈ Rn×d , b ∈ Rn

10
max cT x Ax ≤ b = intersection de demi-espaces de Rd
(P)
t.q. Ax ≤ b = polyèdre convexe (évent. vide)

x ∈ Rd , A ∈ Rn×d , b ∈ Rn Les lignes de niveau de cT x sont des hyperplans

10
max cT x Ax ≤ b = intersection de demi-espaces de Rd
(P)
t.q. Ax ≤ b = polyèdre convexe (évent. vide)

x ∈ Rd , A ∈ Rn×d , b ∈ Rn Les lignes de niveau de cT x sont des hyperplans

On cherche un point d’appui


de l’hyperplan support à Ax ≤ b
dans la direction c.

10
max cT x Ax ≤ b = intersection de demi-espaces de Rd
(P)
t.q. Ax ≤ b = polyèdre convexe (évent. vide)

x ∈ Rd , A ∈ Rn×d , b ∈ Rn Les lignes de niveau de cT x sont des hyperplans

On cherche un point d’appui


de l’hyperplan support à Ax ≤ b
dans la direction c.

On peut restreindre la recherche


aux sommets de Ax ≤ b.

10
max cT x
n’a pas de solution si et seulement si
t.q. Ax ≤ b

ou cT x est non bornée


Ax ≤ b est vide
sur Ax ≤ b

11
max cT x
n’a pas de solution si et seulement si
t.q. Ax ≤ b

ou cT x est non bornée


Ax ≤ b est vide
sur Ax ≤ b

11
max cT x
n’a pas de solution si et seulement si
t.q. Ax ≤ b

ou cT x est non bornée


Ax ≤ b est vide
sur Ax ≤ b

11
max cT x
n’a pas de solution si et seulement si
t.q. Ax ≤ b

ou cT x est non bornée


Ax ≤ b est vide
sur Ax ≤ b

Dans les autres cas, le problème est fini : énumérer les sommets du polyhèdre

11
max cT x
n’a pas de solution si et seulement si
t.q. Ax ≤ b

ou cT x est non bornée


Ax ≤ b est vide
sur Ax ≤ b

Dans les autres cas, le problème est fini : énumérer les sommets du polyhèdre

Intersections bornées
d’un nombre fini de
demi-espaces
(H-représentation)
=
Enveloppes convexes
d’ensembles finis de
points
(V -representation)
=
polytopes convexes

11
max cT x
n’a pas de solution si et seulement si
t.q. Ax ≤ b

ou cT x est non bornée


Ax ≤ b est vide
sur Ax ≤ b

Dans les autres cas, le problème est fini : énumérer les sommets du polyhèdre

Intersections bornées Upper bound theorem : un polytope à n sommets


d’un nombre fini de d n−b d+1 c n−b d+2
2
c
dans R a au plus bdc
2
+ b d−1 c
facettes.
demi-espaces 2 2

(H-représentation)
=
Enveloppes convexes
d’ensembles finis de
points
(V -representation)
=
polytopes convexes

11
max cT x
n’a pas de solution si et seulement si
t.q. Ax ≤ b

ou cT x est non bornée


Ax ≤ b est vide
sur Ax ≤ b

Dans les autres cas, le problème est fini : énumérer les sommets du polyhèdre

Intersections bornées Upper bound theorem : un polytope à n sommets


d’un nombre fini de d n−b d+1 c n−b d+2
2
c
dans R a au plus bdc
2
+ b d−1 c
facettes.
demi-espaces 2 2

(H-représentation)
= Si P est un polytope contenant l’origine,
Enveloppes convexes P ? = {y ∈ Rd : ∀x ∈ P y · x ≤ 1} est son polaire.
d’ensembles finis de
points
(V -representation)
=
1

polytopes convexes

11
max cT x
n’a pas de solution si et seulement si
t.q. Ax ≤ b

ou cT x est non bornée


Ax ≤ b est vide
sur Ax ≤ b

Dans les autres cas, le problème est fini : énumérer les sommets du polyhèdre

Intersections bornées Upper bound theorem : un polytope à n sommets


d’un nombre fini de d n−b d+1 c n−b d+2
2
c
dans R a au plus bdc
2
+ b d−1 c
facettes.
demi-espaces 2 2

(H-représentation)
= Si P est un polytope contenant l’origine,
Enveloppes convexes P ? = {y ∈ Rd : ∀x ∈ P y · x ≤ 1} est son polaire.
d’ensembles finis de
points
(V -representation)
=
1

polytopes convexes

11
max cT x
n’a pas de solution si et seulement si
t.q. Ax ≤ b

ou cT x est non bornée


Ax ≤ b est vide
sur Ax ≤ b

Dans les autres cas, le problème est fini : énumérer les sommets du polyhèdre

Intersections bornées Upper bound theorem : un polytope à n sommets


d’un nombre fini de d n−b d+1 c n−b d+2
2
c
dans R a au plus bdc
2
+ b d−1 c
facettes.
demi-espaces 2 2

(H-représentation)
= Si P est un polytope contenant l’origine,
Enveloppes convexes P ? = {y ∈ Rd : ∀x ∈ P y · x ≤ 1} est son polaire.
d’ensembles finis de
points
(V -representation)
= Bijection entre
1

polytopes convexes les faces de P de dimension k, et


les faces de P ? de dimension d − 1 − k
11
Si on sait...

12
Si on sait...
trouver un premier sommet,

12
Si on sait...
trouver un premier sommet,
étant donné un sommet, construire ses voisins,

12
Si on sait...
trouver un premier sommet,
étant donné un sommet, construire ses voisins,

marcher en optimisant localement conduit à l’optimum global.

12
Si on sait...
trouver un premier sommet,
étant donné un sommet, construire ses voisins,

marcher en optimisant localement conduit à l’optimum global.

La méthode du simplexe marche ainsi, mais manipule les sommets symboliquement.

12
Si on sait...
trouver un premier sommet,
étant donné un sommet, construire ses voisins,

marcher en optimisant localement conduit à l’optimum global.

La méthode du simplexe marche ainsi, mais manipule les sommets symboliquement.

12
Si on sait...
trouver un premier sommet,
étant donné un sommet, construire ses voisins,

marcher en optimisant localement conduit à l’optimum global.

La méthode du simplexe marche ainsi, mais manipule les sommets symboliquement.

sommet ' d contraintes saturées

12
Si on sait...
trouver un premier sommet,
étant donné un sommet, construire ses voisins,

marcher en optimisant localement conduit à l’optimum global.

La méthode du simplexe marche ainsi, mais manipule les sommets symboliquement.

sommet ' d contraintes saturées

relaxer une contrainte


donne un degré de liberté
' une arête incidente au sommet.

12
Si on sait...
trouver un premier sommet,
étant donné un sommet, construire ses voisins,

marcher en optimisant localement conduit à l’optimum global.

La méthode du simplexe marche ainsi, mais manipule les sommets symboliquement.

sommet ' d contraintes saturées

relaxer une contrainte


donne un degré de liberté
' une arête incidente au sommet.

Quand on s’éloigne sur cette arête,


on trouve le voisin quand
une première nouvelle contrainte sature.
12
Méthode du simplexe

Présentation algébrique

13
Tout PL peut s’écrire sous forme équationnelle : b
=
x
max cT x A
(P)
t.q. Ax = b
x≥0
(A : n lignes et d colonnes)

14
Tout PL peut s’écrire sous forme équationnelle : b
=
x
max cT x A
(P)
t.q. Ax = b
x≥0
(A : n lignes et d colonnes)

Idée : introduire des variables d’écart.



3x1 − x2 + e = 2
3x1 − x2 ≤ 2 →
e ≥ 0

14
Tout PL peut s’écrire sous forme équationnelle : b
=
x
max cT x A
(P)
t.q. Ax = b
x≥0
(A : n lignes et d colonnes)

max x1 + x2
t.q. x1 ≥ 0
2x2 − x1 ≤ 2
x1 + x2 ≥ 0
Idée : introduire des variables d’écart. x2 − 2x1 ≥ −4

3x1 − x2 + e = 2
3x1 − x2 ≤ 2 →
e ≥ 0
max x1 + x2
t.q. x1 ≥ 0

14
Tout PL peut s’écrire sous forme équationnelle : b
=
x
max cT x A
(P)
t.q. Ax = b
x≥0
(A : n lignes et d colonnes)

max x1 + x2
t.q. x1 ≥ 0
2x2 − x1 ≤ 2
x1 + x2 ≥ 0
Idée : introduire des variables d’écart. x2 − 2x1 ≥ −4

3x1 − x2 + e = 2
3x1 − x2 ≤ 2 →
e ≥ 0
max x1 + x2
t.q. x1 ≥ 0
2x2 − x1 − e1 = 2

14
Tout PL peut s’écrire sous forme équationnelle : b
=
x
max cT x A
(P)
t.q. Ax = b
x≥0
(A : n lignes et d colonnes)

max x1 + x2
t.q. x1 ≥ 0
2x2 − x1 ≤ 2
x1 + x2 ≥ 0
Idée : introduire des variables d’écart. x2 − 2x1 ≥ −4

3x1 − x2 + e = 2
3x1 − x2 ≤ 2 →
e ≥ 0
max x1 + x2
t.q. x1 ≥ 0
2x2 − x1 − e1 = 2
x1 + x2 + e2 = 0

14
Tout PL peut s’écrire sous forme équationnelle : b
=
x
max cT x A
(P)
t.q. Ax = b
x≥0
(A : n lignes et d colonnes)

max x1 + x2
t.q. x1 ≥ 0
2x2 − x1 ≤ 2
x1 + x2 ≥ 0
Idée : introduire des variables d’écart. x2 − 2x1 ≥ −4

3x1 − x2 + e = 2
3x1 − x2 ≤ 2 →
e ≥ 0
max x1 + x2
t.q. x1 ≥ 0
2x2 − x1 − e1 = 2
x1 + x2 + e2 = 0
x2 − 2x1 + e3 = −4

14
Tout PL peut s’écrire sous forme équationnelle : b
=
x
max cT x A
(P)
t.q. Ax = b
x≥0
(A : n lignes et d colonnes)

max x1 + x2
t.q. x1 ≥ 0
2x2 − x1 ≤ 2
x1 + x2 ≥ 0
Idée : introduire des variables d’écart. x2 − 2x1 ≥ −4

3x1 − x2 + e = 2
3x1 − x2 ≤ 2 →
e ≥ 0
max x1 + x2
t.q. x1 ≥ 0
2x2 − x1 − e1 = 2
x1 + x2 + e2 = 0
x2 − 2x1 + e3 = −4
e1 , e2 , e3 ≥ 0

14
Tout PL peut s’écrire sous forme équationnelle : b
=
x
max cT x A
(P)
t.q. Ax = b
x≥0
(A : n lignes et d colonnes)

max x1 + x2
t.q. x1 ≥ 0
2x2 − x1 ≤ 2
x1 + x2 ≥ 0
Idée : introduire des variables d’écart. x2 − 2x1 ≥ −4

3x1 − x2 + e = 2
3x1 − x2 ≤ 2 →
e ≥ 0
max x1 + x2
t.q. x1 ≥ 0
2x2 − x1 − e1 = 2
x1 + x2 + e2 = 0
x2 − 2x1 + e3 = −4
On suppose les lignes de A linéairement indépendantes. e1 , e2 , e3 ≥ 0

14
max cT x
t.q. Ax = b
x≥0
Les sommets de Ax = b, x ≥ 0 sont les solutions faisables de support minimal.

15
max cT x
t.q. Ax = b
x≥0
Les sommets de Ax = b, x ≥ 0 sont les solutions faisables de support minimal.

Théorème (Carathéodory). Toute combinaison positive d’un ensemble A


de vecteurs est combinaison positive d’au plus rk A de ces vecteurs.

15
max cT x
t.q. Ax = b
x≥0
Les sommets de Ax = b, x ≥ 0 sont les solutions faisables de support minimal.

Théorème (Carathéodory). Toute combinaison positive d’un ensemble A


de vecteurs est combinaison positive d’au plus rk A de ces vecteurs.

Preuve. Soit b = Ax avec x ≥ 0 une combinaison positive.


Restreignons A au support de x et supposons ce support de taille > rk(A).

15
max cT x
t.q. Ax = b
x≥0
Les sommets de Ax = b, x ≥ 0 sont les solutions faisables de support minimal.

Théorème (Carathéodory). Toute combinaison positive d’un ensemble A


de vecteurs est combinaison positive d’au plus rk A de ces vecteurs.

Preuve. Soit b = Ax avec x ≥ 0 une combinaison positive.


Restreignons A au support de x et supposons ce support de taille > rk(A).
Alors il existe z ∈ ker A non trivial et b = A(x + tz) pour tout t ∈ R.
Le support de x + tz est contenu dans le support de x.

15
max cT x
t.q. Ax = b
x≥0
Les sommets de Ax = b, x ≥ 0 sont les solutions faisables de support minimal.

Théorème (Carathéodory). Toute combinaison positive d’un ensemble A


de vecteurs est combinaison positive d’au plus rk A de ces vecteurs.

Preuve. Soit b = Ax avec x ≥ 0 une combinaison positive.


Restreignons A au support de x et supposons ce support de taille > rk(A).
Alors il existe z ∈ ker A non trivial et b = A(x + tz) pour tout t ∈ R.
Le support de x + tz est contenu dans le support de x.
Faire varier t permet de réduire le support.

15
max cT x
t.q. Ax = b
x≥0
Les sommets de Ax = b, x ≥ 0 sont les solutions faisables de support minimal.

Théorème (Carathéodory). Toute combinaison positive d’un ensemble A


de vecteurs est combinaison positive d’au plus rk A de ces vecteurs.

Preuve. Soit b = Ax avec x ≥ 0 une combinaison positive.


Restreignons A au support de x et supposons ce support de taille > rk(A).
Alors il existe z ∈ ker A non trivial et b = A(x + tz) pour tout t ∈ R.
Le support de x + tz est contenu dans le support de x.
Faire varier t permet de réduire le support.

15
max cT x
t.q. Ax = b
x≥0
Les sommets de Ax = b, x ≥ 0 sont les solutions faisables de support minimal.

Théorème (Carathéodory). Toute combinaison positive d’un ensemble A


de vecteurs est combinaison positive d’au plus rk A de ces vecteurs.

Preuve. Soit b = Ax avec x ≥ 0 une combinaison positive.


Restreignons A au support de x et supposons ce support de taille > rk(A).
Alors il existe z ∈ ker A non trivial et b = A(x + tz) pour tout t ∈ R.
Le support de x + tz est contenu dans le support de x.
Faire varier t permet de réduire le support.

15
max cT x
t.q. Ax = b
x≥0
Les sommets de Ax = b, x ≥ 0 sont les solutions faisables de support minimal.

Théorème (Carathéodory). Toute combinaison positive d’un ensemble A


de vecteurs est combinaison positive d’au plus rk A de ces vecteurs.

Preuve. Soit b = Ax avec x ≥ 0 une combinaison positive.


Restreignons A au support de x et supposons ce support de taille > rk(A).
Alors il existe z ∈ ker A non trivial et b = A(x + tz) pour tout t ∈ R.
Le support de x + tz est contenu dans le support de x.
Faire varier t permet de réduire le support.

15
max cT x
t.q. Ax = b
x≥0
Les sommets de Ax = b, x ≥ 0 sont les solutions faisables de support minimal.

Théorème (Carathéodory). Toute combinaison positive d’un ensemble A


de vecteurs est combinaison positive d’au plus rk A de ces vecteurs.

Preuve. Soit b = Ax avec x ≥ 0 une combinaison positive.


Restreignons A au support de x et supposons ce support de taille > rk(A).
Alors il existe z ∈ ker A non trivial et b = A(x + tz) pour tout t ∈ R.
Le support de x + tz est contenu dans le support de x.
Faire varier t permet de réduire le support.

La méthode du simplexe utilise les supports pour représenter les sommets et marcher.

15
max cT x
t.q. Ax = b
x≥0
Les sommets de Ax = b, x ≥ 0 sont les solutions faisables de support minimal.

Théorème (Carathéodory). Toute combinaison positive d’un ensemble A


de vecteurs est combinaison positive d’au plus rk A de ces vecteurs.

Preuve. Soit b = Ax avec x ≥ 0 une combinaison positive.


Restreignons A au support de x et supposons ce support de taille > rk(A).
Alors il existe z ∈ ker A non trivial et b = A(x + tz) pour tout t ∈ R.
Le support de x + tz est contenu dans le support de x.
Faire varier t permet de réduire le support.

La méthode du simplexe utilise les supports pour représenter les sommets et marcher.

Regardons cela sur un exemple...


max x1 + x2
t.q. −x1 + x2 ≤1
x1 ≤3
x2 ≤2
x1 , x2 ≥0
15
max cT x
t.q. Ax = b
x≥0
Les sommets de Ax = b, x ≥ 0 sont les solutions faisables de support minimal.

Théorème (Carathéodory). Toute combinaison positive d’un ensemble A


de vecteurs est combinaison positive d’au plus rk A de ces vecteurs.

Preuve. Soit b = Ax avec x ≥ 0 une combinaison positive.


Restreignons A au support de x et supposons ce support de taille > rk(A).
Alors il existe z ∈ ker A non trivial et b = A(x + tz) pour tout t ∈ R.
Le support de x + tz est contenu dans le support de x.
Faire varier t permet de réduire le support.

La méthode du simplexe utilise les supports pour représenter les sommets et marcher.

Regardons cela sur un exemple...


max x1 + x2 max x1 + x2
t.q. −x1 + x2 ≤1 t.q. −x1 + x2 + x3 =1
x1 ≤3 x1 + x4 =3
x2 ≤2 x2 + x5 =2
x1 , x2 ≥0 x1 , . . . , x5 ≥0
15
 
0 max x1 + x2
0 t.q. −x1 + x2 + x3 =1
  x1 + x4 =3
1
On part d’une solution faisable de support minimal, e.g.  
x2 + x5 =2
3
x1 , . . . , x5 ≥0
2

16
 
0 max x1 + x2
0 t.q. −x1 + x2 + x3 =1
  x1 + x4 =3
1
On part d’une solution faisable de support minimal, e.g.  
x2 + x5 =2
3
x1 , . . . , x5 ≥0
2
On exprime objectif et variables du support
en les variables hors-support.
  x3 = 1 + x1 − x2
0
0 x4 = 3 − x1
 
1
 
3
x5 = 2 − x2
2 obj = x1 + x2

16
 
0 max x1 + x2
0 t.q. −x1 + x2 + x3 =1
  x1 + x4 =3
1
On part d’une solution faisable de support minimal, e.g.  
x2 + x5 =2
3
x1 , . . . , x5 ≥0
2
On exprime objectif et variables du support
en les variables hors-support.
  x3 = 1 + x1 − x2
0
0 x4 = 3 − x1
Augmenter x1 ou x2 améliore l’objectif et reste faisable !  
1
 
3
x5 = 2 − x2
2 obj = x1 + x2

16
 
0 max x1 + x2
0 t.q. −x1 + x2 + x3 =1
  x1 + x4 =3
1
On part d’une solution faisable de support minimal, e.g.  
x2 + x5 =2
3
x1 , . . . , x5 ≥0
2
On exprime objectif et variables du support
en les variables hors-support.
  x3 = 1 + x1 − x2
0
0 x4 = 3 − x1
Augmenter x1 ou x2 améliore l’objectif et reste faisable !  
1
 
3
x5 = 2 − x2
2 obj = x1 + x2
On augmente (au choix) x2 jusqu’à une
solution faisable de support minimal.  
0 x2 = 1 + x1 − x3
x3 s’annule. pour x2 = 1. 1
x4 = 3 − x1
 
0
 
3
x5 = 1 − x1 + x3
1
obj = 1 + 2x1 − x3

16
 
0 max x1 + x2
0 t.q. −x1 + x2 + x3 =1
  x1 + x4 =3
1
On part d’une solution faisable de support minimal, e.g.  
x2 + x5 =2
3
x1 , . . . , x5 ≥0
2
On exprime objectif et variables du support
en les variables hors-support.
  x3 = 1 + x1 − x2
0
0 x4 = 3 − x1
Augmenter x1 ou x2 améliore l’objectif et reste faisable !  
1
 
3
x5 = 2 − x2
2 obj = x1 + x2
On augmente (au choix) x2 jusqu’à une
solution faisable de support minimal.  
0 x2 = 1 + x1 − x3
x3 s’annule. pour x2 = 1.  
1
1
x4 = 3 − x1
 
2 0
 
  3
0 x5 = 1 − x1 + x3
On peut encore augmenter x1 ...
 
2 1
0 obj = 1 + 2x1 − x3

x2 = 2 − x5
x4 = 2 + x5 − x3
x1 = 1 − x5 + x3

obj = 3 − 2x5 + x3
16
 
0 max x1 + x2
0 t.q. −x1 + x2 + x3 =1
  x1 + x4 =3
1
On part d’une solution faisable de support minimal, e.g.  
x2 + x5 =2
3
x1 , . . . , x5 ≥0
2
On exprime objectif et variables du support
en les variables hors-support.
  x3 = 1 + x1 − x2
0
0 x4 = 3 − x1
Augmenter x1 ou x2 améliore l’objectif et reste faisable !  
1
 
3
x5 = 2 − x2
2 obj = x1 + x2
On augmente (au choix) x2 jusqu’à une
solution faisable de support minimal.  
0 x2 = 1 + x1 − x3
x3 s’annule. pour x2 = 1.  
1
1
x4 = 3 − x1
   
3 2 0
 
2   3
 
2
0 x5 = 1 − x1 + x3
On peut encore augmenter x1 ...  
 
2 1
0
0 obj = 1 + 2x1 − x3
0
puis x3 ...
x2 = 2 − x5 x2 = 2 − x5
x3 = 2 + x5 − x4 x4 = 2 + x5 − x3
x1 = 3 − x4 x1 = 1 − x5 + x3

obj = 5 − x5 − x4 obj = 3 − 2x5 + x3


16
 
0 max x1 + x2
0 t.q. −x1 + x2 + x3 =1
  x1 + x4 =3
1
On part d’une solution faisable de support minimal, e.g.  
x2 + x5 =2
3
x1 , . . . , x5 ≥0
2
On exprime objectif et variables du support
en les variables hors-support.
  x3 = 1 + x1 − x2
0
0 x4 = 3 − x1
Augmenter x1 ou x2 améliore l’objectif et reste faisable !  
1
 
3
x5 = 2 − x2
2 obj = x1 + x2
On augmente (au choix) x2 jusqu’à une
solution faisable de support minimal.  
0 x2 = 1 + x1 − x3
x3 s’annule. pour x2 = 1.  
1
1
x4 = 3 − x1
   
3 2 0
 
2   3
 
2
0 x5 = 1 − x1 + x3
On peut encore augmenter x1 ...  
 
2 1
0
0 obj = 1 + 2x1 − x3
0
puis x3 ...
2 − x5 2 − x5
 
3 x2 = x2 =
2 x3 = 2 + x5 − x4 x4 = 2 + x5 − x3
 
2.
pour arriver à l’optimum  
0 x1 = 3 − x4 x1 = 1 − x5 + x3
0 obj = 5 − x5 − x4 obj = 3 − 2x5 + x3
16
En général :

Même principe, solutions représentées par leur support.


base = support d’une solution de support minimal

Il faut se donner une règle de pivot en cas de choix multiples.

17
En général :

Même principe, solutions représentées par leur support.


base = support d’une solution de support minimal

Il faut se donner une règle de pivot en cas de choix multiples.

En détail...

Construire une solution faisable initiale.


Résoudre un LP... de solution initiale triviale.

17
En général :

Même principe, solutions représentées par leur support.


base = support d’une solution de support minimal

Il faut se donner une règle de pivot en cas de choix multiples.

En détail...

Construire une solution faisable initiale.


Résoudre un LP... de solution initiale triviale.

Détecter que cT x n’est pas borné sur Ax = b, x ≥ 0.


Lors d’un pivot, aucune variable ne s’annule.

17
En général :

Même principe, solutions représentées par leur support.


base = support d’une solution de support minimal

Il faut se donner une règle de pivot en cas de choix multiples.

En détail...

Construire une solution faisable initiale.


Résoudre un LP... de solution initiale triviale.

Détecter que cT x n’est pas borné sur Ax = b, x ≥ 0.


Lors d’un pivot, aucune variable ne s’annule.

Gérer les dégénerescences sans cycler.


Des pivots n’augmentant pas l’objectif peuvent être nécessaires.
17
La règle de pivot détermine, la variable choisie pour augmenter l’objectif.

Largest coefficient

Largest increase

Steepest edge : suivre l’arête la mieux alignée avec c.

Devex : heuristique approximant Steepest edge.

Bland’s rule : privilégie la variable d’indice minimum.

Shadow vertex
...

18
La règle de pivot détermine, la variable choisie pour augmenter l’objectif.

Largest coefficient

Largest increase
très efficace
Steepest edge : suivre l’arête la mieux alignée avec c.
en pratique
Devex : heuristique approximant Steepest edge.
Ne cycle pas
Bland’s rule : privilégie la variable d’indice minimum.
naturellement
Shadow vertex
...

18
La règle de pivot détermine, la variable choisie pour augmenter l’objectif.

Largest coefficient

Largest increase
très efficace
Steepest edge : suivre l’arête la mieux alignée avec c.
en pratique
Devex : heuristique approximant Steepest edge.
Ne cycle pas
Bland’s rule : privilégie la variable d’indice minimum.
naturellement
Shadow vertex
...

Exemples exponentiels, diamètre d’un polytope, complexité lissée, . . .

18
La règle de pivot détermine, la variable choisie pour augmenter l’objectif.

Largest coefficient

Largest increase
très efficace
Steepest edge : suivre l’arête la mieux alignée avec c.
en pratique
Devex : heuristique approximant Steepest edge.
Ne cycle pas
Bland’s rule : privilégie la variable d’indice minimum.
naturellement
Shadow vertex
...

Exemples exponentiels, diamètre d’un polytope, complexité lissée, . . .

Random Edge : choisir aléatoirement uniformément... ou pas.

18
Programmation mixte et entière

19
Un programme mixte est un PL dans lequel certaines variables sont contraintes à prendre
des valeurs entières.

max cT x Modélise des ressources


t.q. Ax ≤ b non fractionnables.
x ∈ Zk × Rd−k

20
Un programme mixte est un PL dans lequel certaines variables sont contraintes à prendre
des valeurs entières.

max cT x Modélise des ressources


t.q. Ax ≤ b non fractionnables.
x ∈ Zk × Rd−k

20
Un programme mixte est un PL dans lequel certaines variables sont contraintes à prendre
des valeurs entières.

max cT x Modélise des ressources


t.q. Ax ≤ b non fractionnables.
x ∈ Zk × Rd−k

Toutes les variables dans Z (k = d) : programmation entière.

20
Un programme mixte est un PL dans lequel certaines variables sont contraintes à prendre
des valeurs entières.

max cT x Modélise des ressources


t.q. Ax ≤ b non fractionnables.
x ∈ Zk × Rd−k

Toutes les variables dans Z (k = d) : programmation entière.

Résoudre un programme mixte général est théoriquement difficile.


Décider la faisabilité est NP-difficile déjà avec toutes les variables dans {0, 1}.

Des méthodes pratiques peuvent marcher, même si des instances inabordables existent
(http://miplib.zib.de/miplib2010.php)
Cutting planes, branch-and-bound, . . .

20
Relaxation...

Si on ignore les contraintes d’intégralité,

- le problème devient facile à résoudre (c’est un PL),


- la solution au PL borne inférieurement la solution du programme mixte/entier,

21
Relaxation...

Si on ignore les contraintes d’intégralité,

- le problème devient facile à résoudre (c’est un PL),


- la solution au PL borne inférieurement la solution du programme mixte/entier,

21
Relaxation...

Si on ignore les contraintes d’intégralité,

- le problème devient facile à résoudre (c’est un PL),


- la solution au PL borne inférieurement la solution du programme mixte/entier,

et on peut parfois borner supérieurement l’écart entre les deux solutions !

On va regarder 3 exemples issus de problèmes d’optimisation sur des graphes.

21
Couplage parfait de poids maximum (maximum weight matching ).

4
6 3 9
9 2
4
6 3 1
7 2
8
5
5

22
Couplage parfait de poids maximum (maximum weight matching ).

4 arête entre i et j
6 3 9
9 2
4 variable xi,j , poids pi,j
6 3 1
7 2 (xi,j = xj,i )
8
5
5

22
Couplage parfait de poids maximum (maximum weight matching ).

P
4 arête entre i et j max i,jpi,j xi,j
6 3 9 t.q. xi,j ∈ Z
9 2
0 ≤ xi,j ≤ 1
4 variable xi,j , poids pi,j ∀i,
P
6 3 1 j xi,j = 1
7 2 (xi,j = xj,i )
8
5
5

22
Couplage parfait de poids maximum (maximum weight matching ).

P
4 arête entre i et j max i,jpi,j xi,j
6 3 9 t.q. xi,j ∈ Z
(R)
9 2
0 ≤ xi,j ≤ 1
4 variable xi,j , poids pi,j ∀i,
P
6 3 1 j xi,j = 1
7 2 (xi,j = xj,i )
8
5
5

22
Couplage parfait de poids maximum (maximum weight matching ).

P
4 arête entre i et j max i,jpi,j xi,j
6 3 9 t.q. xi,j ∈ Z
(R)
9 2
0 ≤ xi,j ≤ 1
4 variable xi,j , poids pi,j ∀i,
P
6 3 1 j xi,j = 1
7 2 (xi,j = xj,i )
8
5
5

Théorème. Si le graphe est biparti et le PL (R) est faisable, il


a au moins une solution optimale où tous les xi,j sont entiers.

22
Couplage parfait de poids maximum (maximum weight matching ).

P
4 arête entre i et j max i,jpi,j xi,j
6 3 9 t.q. xi,j ∈ Z
(R)
9 2
0 ≤ xi,j ≤ 1
4 variable xi,j , poids pi,j ∀i,
P
6 3 1 j xi,j = 1
7 2 (xi,j = xj,i )
8
5
5

Théorème. Si le graphe est biparti et le PL (R) est faisable, il


a au moins une solution optimale où tous les xi,j sont entiers.

Preuve : On part d’une solution x∗ au PL.


Supposons que x∗i,j n’est pas entier.

22
Couplage parfait de poids maximum (maximum weight matching ).

P
4 arête entre i et j max pi,j xi,j
i,j
6 3 9 t.q. xi,j ∈ Z
(R)
9 2
0 ≤ xi,j ≤ 1
4 variable xi,j , poids pi,j ∀i,
P
6 3 1 j xi,j = 1
7 2 (xi,j = xj,i )
8
5
5

Théorème. Si le graphe est biparti et le PL (R) est faisable, il


a au moins une solution optimale où tous les xi,j sont entiers.

Preuve : On part d’une solution x∗ au PL.


Supposons que x∗i,j n’est pas entier.
Il existe x∗j,k qui est aussi non-entier. x∗i,j = 1.)
P
(Car i

22
Couplage parfait de poids maximum (maximum weight matching ).

P
4 arête entre i et j max pi,j xi,j
i,j
6 3 9 t.q. xi,j ∈ Z
(R)
9 2
0 ≤ xi,j ≤ 1
4 variable xi,j , poids pi,j ∀i,
P
6 3 1 j xi,j = 1
7 2 (xi,j = xj,i )
8
5
5

Théorème. Si le graphe est biparti et le PL (R) est faisable, il


a au moins une solution optimale où tous les xi,j sont entiers.

Preuve : On part d’une solution x∗ au PL.


Supposons que x∗i,j n’est pas entier.
Il existe x∗j,k qui est aussi non-entier. x∗i,j = 1.)
P
(Car i

22
Couplage parfait de poids maximum (maximum weight matching ).

P
4 arête entre i et j max pi,j xi,j
i,j
6 3 9 t.q. xi,j ∈ Z
(R)
9 2
0 ≤ xi,j ≤ 1
4 variable xi,j , poids pi,j ∀i,
P
6 3 1 j xi,j = 1
7 2 (xi,j = xj,i )
8
5
5

Théorème. Si le graphe est biparti et le PL (R) est faisable, il


a au moins une solution optimale où tous les xi,j sont entiers.

Preuve : On part d’une solution x∗ au PL.


Supposons que x∗i,j n’est pas entier.
Il existe x∗j,k qui est aussi non-entier. x∗i,j = 1.)
P
(Car i

22
Couplage parfait de poids maximum (maximum weight matching ).

P
4 arête entre i et j max pi,j xi,j
i,j
6 3 9 t.q. xi,j ∈ Z
(R)
9 2
0 ≤ xi,j ≤ 1
4 variable xi,j , poids pi,j ∀i,
P
6 3 1 j xi,j = 1
7 2 (xi,j = xj,i )
8
5
5

Théorème. Si le graphe est biparti et le PL (R) est faisable, il


a au moins une solution optimale où tous les xi,j sont entiers.

Preuve : On part d’une solution x∗ au PL.


Supposons que x∗i,j n’est pas entier.
Il existe x∗j,k qui est aussi non-entier. x∗i,j = 1.)
P
(Car i

22
Couplage parfait de poids maximum (maximum weight matching ).

P
4 arête entre i et j max pi,j xi,j
i,j
6 3 9 t.q. xi,j ∈ Z
(R)
9 2
0 ≤ xi,j ≤ 1
4 variable xi,j , poids pi,j ∀i,
P
6 3 1 j xi,j = 1
7 2 (xi,j = xj,i )
8
5
5

Théorème. Si le graphe est biparti et le PL (R) est faisable, il


a au moins une solution optimale où tous les xi,j sont entiers.

Preuve : On part d’une solution x∗ au PL.


Supposons que x∗i,j n’est pas entier.
Il existe x∗j,k qui est aussi non-entier. x∗i,j = 1.)
P
(Car i

et on peut former ainsi... un cycle... de longueur paire.

22
Couplage parfait de poids maximum (maximum weight matching ).

P
4 arête entre i et j max pi,j xi,j
i,j
6 3 9 t.q. xi,j ∈ Z
(R)
9 2
0 ≤ xi,j ≤ 1
4 variable xi,j , poids pi,j ∀i,
P
6 3 1 j xi,j = 1
7 2 (xi,j = xj,i )
8
5
5

Théorème. Si le graphe est biparti et le PL (R) est faisable, il


a au moins une solution optimale où tous les xi,j sont entiers.

Preuve : On part d’une solution x∗ au PL.


Supposons que x∗i,j n’est pas entier.
Il existe x∗j,k qui est aussi non-entier. x∗i,j = 1.)
P
(Car i

et on peut former ainsi... un cycle... de longueur paire.


− On décale de ±t les x∗i,j du cycle
t t
+ +t
−t


t −t +t
t
+

22
Couplage parfait de poids maximum (maximum weight matching ).

P
4 arête entre i et j max pi,j xi,j
i,j
6 3 9 t.q. xi,j ∈ Z
(R)
9 2
0 ≤ xi,j ≤ 1
4 variable xi,j , poids pi,j ∀i,
P
6 3 1 j xi,j = 1
7 2 (xi,j = xj,i )
8
5
5

Théorème. Si le graphe est biparti et le PL (R) est faisable, il


a au moins une solution optimale où tous les xi,j sont entiers.

Preuve : On part d’une solution x∗ au PL.


Supposons que x∗i,j n’est pas entier.
Il existe x∗j,k qui est aussi non-entier. x∗i,j = 1.)
P
(Car i

et on peut former ainsi... un cycle... de longueur paire.


− On décale de ±t les x∗i,j du cycle
t t
+ +t
−t

on fait varier t partant de 0 (% ou & selon pi,j )


− jusqu’à rendre une variable entière.
t −t +t
t
+

22
Couplage parfait de poids maximum (maximum weight matching ).

P
4 arête entre i et j max pi,j xi,j
i,j
6 3 9 t.q. xi,j ∈ Z
(R)
9 2
0 ≤ xi,j ≤ 1
4 variable xi,j , poids pi,j ∀i,
P
6 3 1 j xi,j = 1
7 2 (xi,j = xj,i )
8
5
5

Théorème. Si le graphe est biparti et le PL (R) est faisable, il


a au moins une solution optimale où tous les xi,j sont entiers.

Preuve : On part d’une solution x∗ au PL.


Supposons que x∗i,j n’est pas entier.
Il existe x∗j,k qui est aussi non-entier. x∗i,j = 1.)
P
(Car i

et on peut former ainsi... un cycle... de longueur paire.


− On décale de ±t les x∗i,j du cycle
t t
+ +t
−t

on fait varier t partant de 0 (% ou & selon pi,j )


− jusqu’à rendre une variable entière.
t −t +t
t

et on recommence.
+

22
Couverture par sommets minimale (minimum vertex cover ).

23
Couverture par sommets minimale (minimum vertex cover ).
P
min xi
i sommet i
t.q. xi ∈ Z
0 ≤ xi ≤ 1
∀ arête ij, xi + xj ≥ 1 variable xi

23
Couverture par sommets minimale (minimum vertex cover ).
P
min xi
i sommet i
t.q. xi ∈ Z
0 ≤ xi ≤ 1
∀ arête ij, xi + xj ≥ 1 variable xi

Décider si le MVC comporte au moins k sommets est NP-difficile.

23
Couverture par sommets minimale (minimum vertex cover ).
P
min xi
i sommet i
t.q. xi ∈ Z
0 ≤ xi ≤ 1
∀ arête ij, xi + xj ≥ 1 variable xi

Décider si le MVC comporte au moins k sommets est NP-difficile.

Mais on peut calculer une solution faisable pas trop mauvaise en


calculant une solution x∗ au PL obtenu par relaxation,
arrondissant x∗ en x̂ par x̂i = 1 si x∗i ≥ 1
2 et x̂i = 0 sinon.

23
Couverture par sommets minimale (minimum vertex cover ).
P
min xi
i sommet i
t.q. xi ∈ Z
0 ≤ xi ≤ 1
∀ arête ij, xi + xj ≥ 1 variable xi

Décider si le MVC comporte au moins k sommets est NP-difficile.

Mais on peut calculer une solution faisable pas trop mauvaise en


calculant une solution x∗ au PL obtenu par relaxation,
arrondissant x∗ en x̂ par x̂i = 1 si x∗i ≥ 1
2 et x̂i = 0 sinon.

Pour tout graphe, si xopt est l’optimal du programme entier, on a


P ∗ P opt P P ∗
i xi ≤ i xi ≤ i x̂i ≤ 2 i xi

23
Couverture par sommets minimale (minimum vertex cover ).
P
min xi
i sommet i
t.q. xi ∈ Z
0 ≤ xi ≤ 1
∀ arête ij, xi + xj ≥ 1 variable xi

Décider si le MVC comporte au moins k sommets est NP-difficile.

Mais on peut calculer une solution faisable pas trop mauvaise en


calculant une solution x∗ au PL obtenu par relaxation,
arrondissant x∗ en x̂ par x̂i = 1 si x∗i ≥ 1
2 et x̂i = 0 sinon.

Pour tout graphe, si xopt est l’optimal du programme entier, on a


P ∗ P opt P P ∗
i xi ≤ i xi ≤ i x̂i ≤ 2 i xi
P P opt
en particulier i x̂i ≤ 2 x
i i

On peut donc calculer une 2-approximation efficacement.


23
Ensemble indépendant maximum (maximum independent set).

24
Ensemble indépendant maximum (maximum independent set).
P
max ixi sommet i
t.q. xi ∈ Z
0 ≤ xi ≤ 1
∀ arête ij, xi + xj ≤ 1 variable xi

24
Ensemble indépendant maximum (maximum independent set).
P
max ixi sommet i
t.q. xi ∈ Z
0 ≤ xi ≤ 1
∀ arête ij, xi + xj ≤ 1 variable xi

Décider si le MIS comporte au moins k sommets est NP-difficile.

24
Ensemble indépendant maximum (maximum independent set).
P
max ixi sommet i
t.q. xi ∈ Z
0 ≤ xi ≤ 1
∀ arête ij, xi + xj ≤ 1 variable xi

Décider si le MIS comporte au moins k sommets est NP-difficile.

La relaxation a une solution où chaque xi = 12 .

L’écart entre la solution de la relaxation est l’optimal est non-borné (Kn ).

24
Ensemble indépendant maximum (maximum independent set).
P
max ixi sommet i
t.q. xi ∈ Z
0 ≤ xi ≤ 1
∀ arête ij, xi + xj ≤ 1 variable xi

Décider si le MIS comporte au moins k sommets est NP-difficile.

La relaxation a une solution où chaque xi = 12 .

L’écart entre la solution de la relaxation est l’optimal est non-borné (Kn ).

En fait, approximation efficace impossible si P 6= N P .

24
Dualité

25
Essayons de commenter la valeur de...

max 2x1 + 3x2


t.q. 4x1 + 8x2 ≤ 12
2x1 + x2 ≤ 3
3x1 + 2x2 ≤ 4
x1 , x2 ≥ 0

26
Essayons de commenter la valeur de...

max 2x1 + 3x2


t.q. 4x1 + 8x2 ≤ 12 x1 , x2 ≥ 0 donc 2x1 + 3x2 ≤ 4x1 + 8x2 ≤ 12

2x1 + x2 ≤ 3
3x1 + 2x2 ≤ 4
x1 , x2 ≥ 0

26
Essayons de commenter la valeur de...

max 2x1 + 3x2


t.q. 4x1 + 8x2 ≤ 12 x1 , x2 ≥ 0 donc 2x1 + 3x2 ≤ 4x1 + 8x2 ≤ 12
1
2x1 + x2 ≤ 3 mieux... 2x1 + 3x2 ≤ 2
(4x1 + 8x2 ) ≤ 6

3x1 + 2x2 ≤ 4
x1 , x2 ≥ 0

26
Essayons de commenter la valeur de...

max 2x1 + 3x2


t.q. 4x1 + 8x2 ≤ 12 x1 , x2 ≥ 0 donc 2x1 + 3x2 ≤ 4x1 + 8x2 ≤ 12
1
2x1 + x2 ≤ 3 mieux... 2x1 + 3x2 ≤ 2
(4x1 + 8x2 ) ≤ 6
1
3x1 + 2x2 ≤ 4 encore mieux... 2x1 + 3x2 = 3
((4x1 + 8x2 ) + (2x1 + x2 )) ≤ 5
x1 , x2 ≥ 0

26
Essayons de commenter la valeur de...

max 2x1 + 3x2


t.q. 4x1 + 8x2 ≤ 12 x1 , x2 ≥ 0 donc 2x1 + 3x2 ≤ 4x1 + 8x2 ≤ 12
1
2x1 + x2 ≤ 3 mieux... 2x1 + 3x2 ≤ 2
(4x1 + 8x2 ) ≤ 6
1
3x1 + 2x2 ≤ 4 encore mieux... 2x1 + 3x2 = 3
((4x1 + 8x2 ) + (2x1 + x2 )) ≤ 5
x1 , x2 ≥ 0

En multipliant la ième contrainte par yi on obtient...

max 2x1 + 3x2 min 12y1 + 3y2 + 4y3


t.q. 4x1 + 8x2 ≤ 12 t.q. 4y1 + 2y2 + 3y3 ≥ 2
2x1 + x2 ≤ 3 ≤ 8y1 + y2 + 2y3 ≥ 3
3x1 + 2x2 ≤ 4 y1 , y2 , y3 ≥ 0
x1 , x2 ≥ 0

26
Essayons de commenter la valeur de...

max 2x1 + 3x2


t.q. 4x1 + 8x2 ≤ 12 x1 , x2 ≥ 0 donc 2x1 + 3x2 ≤ 4x1 + 8x2 ≤ 12
1
2x1 + x2 ≤ 3 mieux... 2x1 + 3x2 ≤ 2
(4x1 + 8x2 ) ≤ 6
1
3x1 + 2x2 ≤ 4 encore mieux... 2x1 + 3x2 = 3
((4x1 + 8x2 ) + (2x1 + x2 )) ≤ 5
x1 , x2 ≥ 0

En multipliant la ième contrainte par yi on obtient...

max 2x1 + 3x2 min 12y1 + 3y2 + 4y3


t.q. 4x1 + 8x2 ≤ 12 t.q. 4y1 + 2y2 + 3y3 ≥ 2
2x1 + x2 ≤ 3 ≤ 8y1 + y2 + 2y3 ≥ 3
3x1 + 2x2 ≤ 4 y1 , y2 , y3 ≥ 0
x1 , x2 ≥ 0

26
Essayons de commenter la valeur de...

max 2x1 + 3x2


t.q. 4x1 + 8x2 ≤ 12 x1 , x2 ≥ 0 donc 2x1 + 3x2 ≤ 4x1 + 8x2 ≤ 12
1
2x1 + x2 ≤ 3 mieux... 2x1 + 3x2 ≤ 2
(4x1 + 8x2 ) ≤ 6
1
3x1 + 2x2 ≤ 4 encore mieux... 2x1 + 3x2 = 3
((4x1 + 8x2 ) + (2x1 + x2 )) ≤ 5
x1 , x2 ≥ 0

En multipliant la ième contrainte par yi on obtient...

max 2x1 + 3x2 min 12y1 + 3y2 + 4y3


t.q. 4x1 + 8x2 ≤ 12 t.q. 4y1 + 2y2 + 3y3 ≥ 2
2x1 + x2 ≤ 3 ≤ 8y1 + y2 + 2y3 ≥ 3
3x1 + 2x2 ≤ 4 y1 , y2 , y3 ≥ 0
x1 , x2 ≥ 0

26
Essayons de commenter la valeur de...

max 2x1 + 3x2


t.q. 4x1 + 8x2 ≤ 12 x1 , x2 ≥ 0 donc 2x1 + 3x2 ≤ 4x1 + 8x2 ≤ 12
1
2x1 + x2 ≤ 3 mieux... 2x1 + 3x2 ≤ 2
(4x1 + 8x2 ) ≤ 6
1
3x1 + 2x2 ≤ 4 encore mieux... 2x1 + 3x2 = 3
((4x1 + 8x2 ) + (2x1 + x2 )) ≤ 5
x1 , x2 ≥ 0

En multipliant la ième contrainte par yi on obtient...

max 2x1 + 3x2 min 12y1 + 3y2 + 4y3


t.q. 4x1 + 8x2 ≤ 12 t.q. 4y1 + 2y2 + 3y3 ≥ 2
2x1 + x2 ≤ 3 ≤ 8y1 + y2 + 2y3 ≥ 3
3x1 + 2x2 ≤ 4 y1 , y2 , y3 ≥ 0
x1 , x2 ≥ 0

26
Essayons de commenter la valeur de...

max 2x1 + 3x2


t.q. 4x1 + 8x2 ≤ 12 x1 , x2 ≥ 0 donc 2x1 + 3x2 ≤ 4x1 + 8x2 ≤ 12
1
2x1 + x2 ≤ 3 mieux... 2x1 + 3x2 ≤ 2
(4x1 + 8x2 ) ≤ 6
1
3x1 + 2x2 ≤ 4 encore mieux... 2x1 + 3x2 = 3
((4x1 + 8x2 ) + (2x1 + x2 )) ≤ 5
x1 , x2 ≥ 0

En multipliant la ième contrainte par yi on obtient...

max 2x1 + 3x2 min 12y1 + 3y2 + 4y3


t.q. 4x1 + 8x2 ≤ 12 t.q. 4y1 + 2y2 + 3y3 ≥ 2
2x1 + x2 ≤ 3 ≤ 8y1 + y2 + 2y3 ≥ 3
3x1 + 2x2 ≤ 4 y1 , y2 , y3 ≥ 0
x1 , x2 ≥ 0

max T
c x min bT y
Plus généralement, t.q. Ax ≤ b ≤ t.q. AT y ≥ c
x≥0 y≥0
26
max cT x
t.q. Ax ≤ b
x≥0

27
max cT x associer yi à la ième min bT y
t.q. Ax ≤ b ligne de A t.q. AT y ≥ c
x≥0 y≥0

27
max cT x associer yi à la ième min bT y
t.q. Ax ≤ b ligne de A t.q. AT y ≥ c
x≥0 y≥0

=
max −bT y
t.q. −AT y ≤ −c
y≥0

27
max cT x associer yi à la ième min bT y
t.q. Ax ≤ b ligne de A t.q. AT y ≥ c
x≥0 y≥0

=
min −cT x associer xi à la ième max −bT y
t.q. −(AT )T x ≥ −b ligne de −AT t.q. −AT y ≤ −c
x≥0 y≥0

27
max cT x associer yi à la ième min bT y
t.q. Ax ≤ b ligne de A t.q. AT y ≥ c
x≥0 y≥0
=

=
min −cT x associer xi à la ième max −bT y
t.q. −(AT )T x ≥ −b ligne de −AT t.q. −AT y ≤ −c
x≥0 y≥0

27
primal dual
max cT x associer yi à la ième min bT y
t.q. Ax ≤ b ligne de A t.q. AT y ≥ c
x≥0 y≥0
=

=
min −cT x associer xi à la ième max −bT y
t.q. −(AT )T x ≥ −b ligne de −AT t.q. −AT y ≤ −c
x≥0 y≥0

27
primal dual
max cT x associer yi à la ième min bT y
t.q. Ax ≤ b ligne de A t.q. AT y ≥ c
x≥0 y≥0
=

=
min −cT x associer xi à la ième max −bT y
t.q. −(AT )T x ≥ −b ligne de −AT t.q. −AT y ≤ −c
x≥0 y≥0

PL primal PL dual
variables x1 , x 2 , . . . , x n y1 , y 2 , . . . , y m
matrice A AT
terme de droite b c
On peut dualiser un PL fonction max cT x min bT y
sous forme quelconque. contraintes ième inégalité est ≤ yi ≥ 0
ième inégalité est ≥ yi ≤ 0
ième inégalité est = yi ∈ R
xi ≥ 0 ième inégalité est ≤
... ...
27
La valeur d’un PL ”maximisant” est toujours majorée par la valeur de son dual.
Théorème de dualité faible.

28
La valeur d’un PL ”maximisant” est toujours majorée par la valeur de son dual.
Théorème de dualité faible.

primal infaisable faisable faisable


dual non-borné borné
infaisable

faisable
non-borné
faisable
borné

28
La valeur d’un PL ”maximisant” est toujours majorée par la valeur de son dual.
Théorème de dualité faible.

primal infaisable faisable faisable


dual non-borné borné Dualité faible
infaisable primal non-borné ⇒ dual infaisable

faisable
non-borné
faisable
borné

28
La valeur d’un PL ”maximisant” est toujours majorée par la valeur de son dual.
Théorème de dualité faible.

primal infaisable faisable faisable


dual non-borné borné Dualité faible
infaisable primal non-borné ⇒ dual infaisable

faisable A prouver
non-borné =
primal faisable borné
faisable ⇒ dual faisable et de même valeur
borné =

Théorème (dualité forte). Un PL et son dual sont


soit tous deux infaisables,
soit l’un infaisable et l’autre faisable non borné,
soit tous deux faisables bornés et de même valeur.

28
La valeur d’un PL ”maximisant” est toujours majorée par la valeur de son dual.
Théorème de dualité faible.

primal infaisable faisable faisable


dual non-borné borné Dualité faible
infaisable primal non-borné ⇒ dual infaisable

faisable A prouver
non-borné =
primal faisable borné
faisable ⇒ dual faisable et de même valeur
borné =

Théorème (dualité forte). Un PL et son dual sont a3


a2
soit tous deux infaisables,
a1
soit l’un infaisable et l’autre faisable non borné,
soit tous deux faisables bornés et de même valeur.
b

Preuve classique via lemme de Farkas. Ax = b a une solution ≥ 0

28
La valeur d’un PL ”maximisant” est toujours majorée par la valeur de son dual.
Théorème de dualité faible.

primal infaisable faisable faisable


dual non-borné borné Dualité faible
infaisable primal non-borné ⇒ dual infaisable

faisable A prouver
non-borné =
primal faisable borné
faisable ⇒ dual faisable et de même valeur
borné =

Théorème (dualité forte). Un PL et son dual sont a3


a2
soit tous deux infaisables,
a1
soit l’un infaisable et l’autre faisable non borné,
soit tous deux faisables bornés et de même valeur.
b
y

Preuve classique via lemme de Farkas. Ax = b a une solution ≥ 0


xor
∃y tq y T A ≥ 0 et y T b < 0
28
Prop. Si un PL est faisable et borné, alors son dual est faisable et de même valeur.

Preuve. on part de max cT x t.q. Ax ≤ b, x ≥ 0.

forme équationnelle : max cT x t.q. Ax ≤ b, x ≥ 0.

29
Prop. Si un PL est faisable et borné, alors son dual est faisable et de même valeur.

Preuve. on part de max cT x t.q. Ax ≤ b, x ≥ 0.

forme équationnelle : max cT x t.q. Ax ≤ b, x ≥ 0.


Im et xT = (x

A= A xn+1 , xn+2 , . . . , xn+m )

{
variables d’écart

29
Prop. Si un PL est faisable et borné, alors son dual est faisable et de même valeur.

Preuve. on part de max cT x t.q. Ax ≤ b, x ≥ 0.

forme équationnelle : max cT x t.q. Ax ≤ b, x ≥ 0.


Im et xT = (x

A= A xn+1 , xn+2 , . . . , xn+m )

{
variables d’écart

on applique l’algorithme du simplexe jusqu’à trouver une solution x∗ de support B

on pose y ∗ = (cTB A−1 T


B ) et on montre que c’est une solution faisable du dual,

29
Prop. Si un PL est faisable et borné, alors son dual est faisable et de même valeur.

Preuve. on part de max cT x t.q. Ax ≤ b, x ≥ 0.

forme équationnelle : max cT x t.q. Ax ≤ b, x ≥ 0.


Im et xT = (x

A= A xn+1 , xn+2 , . . . , xn+m )

{
variables d’écart

on applique l’algorithme du simplexe jusqu’à trouver une solution x∗ de support B

on pose y ∗ = (cTB A−1 T


B ) et on montre que c’est une solution faisable du dual,

T T T
revient à A y ∗ ≥ c ou encore A (cTB A−1 T −1 T
B ) = A (AB ) cB ≥ c

29
Prop. Si un PL est faisable et borné, alors son dual est faisable et de même valeur.

Preuve. on part de max cT x t.q. Ax ≤ b, x ≥ 0.

forme équationnelle : max cT x t.q. Ax ≤ b, x ≥ 0.


Im et xT = (x

A= A xn+1 , xn+2 , . . . , xn+m )

{
variables d’écart

on applique l’algorithme du simplexe jusqu’à trouver une solution x∗ de support B

on pose y ∗ = (cTB A−1 T


B ) et on montre que c’est une solution faisable du dual,

T T T
revient à A y ∗ ≥ c ou encore A (cTB A−1 T −1 T
B ) = A (AB ) cB ≥ c
 T
Dans le support, A (A−1 T
B ) cB = cB ≥ cB
B

29
Prop. Si un PL est faisable et borné, alors son dual est faisable et de même valeur.

Preuve. on part de max cT x t.q. Ax ≤ b, x ≥ 0.

forme équationnelle : max cT x t.q. Ax ≤ b, x ≥ 0.


Im et xT = (x

A= A xn+1 , xn+2 , . . . , xn+m )

{
variables d’écart

on applique l’algorithme du simplexe jusqu’à trouver une solution x∗ de support B

on pose y ∗ = (cTB A−1 T


B ) et on montre que c’est une solution faisable du dual,

T T T
revient à A y ∗ ≥ c ou encore A (cTB A−1 T −1 T
B ) = A (AB ) cB ≥ c
 T
Dans le support, A (A−1 T
B ) cB = cB ≥ cB
B
 T

Hors-support, A (A−1 T
B ) cB = cH − r où r est le vecteur des gains, donc ≤ 0.
H

29
Prop. Si un PL est faisable et borné, alors son dual est faisable et de même valeur.

Preuve. on part de max cT x t.q. Ax ≤ b, x ≥ 0.

forme équationnelle : max cT x t.q. Ax ≤ b, x ≥ 0.


Im et xT = (x

A= A xn+1 , xn+2 , . . . , xn+m )

{
variables d’écart

on applique l’algorithme du simplexe jusqu’à trouver une solution x∗ de support B

on pose y ∗ = (cTB A−1 T


B ) et on montre que c’est une solution faisable du dual,

T T T
revient à A y ∗ ≥ c ou encore A (cTB A−1 T −1 T
B ) = A (AB ) cB ≥ c
 T
Dans le support, A (A−1 T
B ) cB = cB ≥ cB
B
 T

Hors-support, A (A−1 T
B ) cB = cH − r où r est le vecteur des gains, donc ≤ 0.
H

 −1   
∗ ∗ T −1
T T
c x =c x = cTB x∗B = cTB AB b = cB AB b = (y ∗ )T b = bT y ∗

29
Prop. Si un PL est faisable et borné, alors son dual est faisable et de même valeur.

Preuve. on part de max cT x t.q. Ax ≤ b, x ≥ 0.

forme équationnelle : max cT x t.q. Ax ≤ b, x ≥ 0.


Im et xT = (x

A= A xn+1 , xn+2 , . . . , xn+m )

{
variables d’écart

on applique l’algorithme du simplexe jusqu’à trouver une solution x∗ de support B

on pose y ∗ = (cTB A−1 T


B ) et on montre que c’est une solution faisable du dual,

T T T
revient à A y ∗ ≥ c ou encore A (cTB A−1 T −1 T
B ) = A (AB ) cB ≥ c
 T
Dans le support, A (A−1 T
B ) cB = cB ≥ cB
B
 T

Hors-support, A (A−1 T
B ) cB = cH − r où r est le vecteur des gains, donc ≤ 0.
H

 −1   
∗ ∗ T −1
T T
c x =c x = cTB x∗B = cTB AB b = cB AB b = (y ∗ )T b = bT y ∗

29
Soient (P ) un PL, (D) son dual,
x∗ une solution faisable de (P ) et y ∗ une solution faisable de (D).

x∗i = 0 ou y ∗ sature la ième contrainte de (D),


x∗ et y ∗ sont complémentaires ssi ∀i,
yi∗ = 0 ou x∗ sature la ième contrainte de (P ).

30
Soient (P ) un PL, (D) son dual,
x∗ une solution faisable de (P ) et y ∗ une solution faisable de (D).

x∗i = 0 ou y ∗ sature la ième contrainte de (D),


x∗ et y ∗ sont complémentaires ssi ∀i,
yi∗ = 0 ou x∗ sature la ième contrainte de (P ).

Théorème (complémentarité). x∗ et y ∗ sont optimaux ssi ils sont complémentaires.

30
Soient (P ) un PL, (D) son dual,
x∗ une solution faisable de (P ) et y ∗ une solution faisable de (D).

x∗i = 0 ou y ∗ sature la ième contrainte de (D),


x∗ et y ∗ sont complémentaires ssi ∀i,
yi∗ = 0 ou x∗ sature la ième contrainte de (P ).

Théorème (complémentarité). x∗ et y ∗ sont optimaux ssi ils sont complémentaires.

Vérifier une solution x∗ à un PL est facile quand son support est minimal.
On vérifie que x∗ est faisable et on construit une solution y ∗ du dual.
y ∗ sature les contraintes associées au support de x∗ ⇒ résolution d’un système.
x∗ est optimal ssi x∗ et y ∗ ont même valeurs.

30
C’est tout pour aujourd’hui...

31

Vous aimerez peut-être aussi