Rappels de programmation linéaire - educnet.enpc.fr · ont travaillé sur la programmation...
Transcript of Rappels de programmation linéaire - educnet.enpc.fr · ont travaillé sur la programmation...
Rappels de programmation linéaire
CERMICS,ENPC
Diapositives : F. Meunier, Intervenant : A. Parmentier
18 octobre 2017
Partie
1. La programmation linéaire : définition et exemples
2. Quelques propriétés théoriques
3. Algorithmes
4. Dualité
Diapositives : F. Meunier, Intervenant : A. Parmentier, ENPC 18 octobre 2017 2 / 43
La programmation linéaire : définition etexemples.
Diapositives : F. Meunier, Intervenant : A. Parmentier, ENPC 18 octobre 2017 3 / 43
Définition
Un programme linéaire est un programme qui peut s’écrire sous laforme (forme inéquationnelle)
Min cT xs.c. Ax ≤ b,
où x, c ∈ Rn, b ∈ Rm et où A est une m × n matrice réelle.
Diapositives : F. Meunier, Intervenant : A. Parmentier, ENPC 18 octobre 2017 4 / 43
Définition
cT x est la fonction objectif.
Ax ≤ b sont les contraintes.
x sont les variables (de décision).
Tout x satisfaisant les contraintes est une solution réalisable.
Tout x solution du programme est une solution optimale.
Diapositives : F. Meunier, Intervenant : A. Parmentier, ENPC 18 octobre 2017 5 / 43
Représentation graphique
x
y
y = 3
2x+ y = 8
x+ 2y = 7
Diapositives : F. Meunier, Intervenant : A. Parmentier, ENPC 18 octobre 2017 6 / 43
Représentation graphique
x
y
y = 3
2x+ y = 8
x+ 2y = 7
P
P = {(x, y) : 2x+ y ≤ 8, x+ 2y ≤ 7, y ≤ 3, x ≥ 0, y ≥ 0}
Diapositives : F. Meunier, Intervenant : A. Parmentier, ENPC 18 octobre 2017 7 / 43
Représentation graphique
x
y
4x+ 5y = 3
4x+ 5y = 84x+ 5y = 16
4x+ 5y = 20
4x+ 5y = 23
Diapositives : F. Meunier, Intervenant : A. Parmentier, ENPC 18 octobre 2017 8 / 43
Représentation graphique
x
y
l’optimum est atteint en (x∗, y∗) = (3, 2)
4x+ 5y = 22
Diapositives : F. Meunier, Intervenant : A. Parmentier, ENPC 18 octobre 2017 9 / 43
Programme linéaire : on sait faire !
Dans les problèmes réels : nombre de contraintes très souvent > 1000.
Ni l’intuition, ni le dessin peuvent alors nous tirer d’affaire.
Heureusement, depuis la fin des années 40, de nombreux chercheursont travaillé sur la programmation linéaire, et sont parvenus à laconclusion suivante :
Un programme linéaire peut être résolu efficacement, tantsur le plan pratique que théorique.
Diapositives : F. Meunier, Intervenant : A. Parmentier, ENPC 18 octobre 2017 10 / 43
Les trois familles d’algorithme
• l’algorithme du simplexe, trouvé par Dantzig en 1947• les ellipsoïdes, trouvé par Khachyan en 1979• l’algorithme des points intérieurs, trouvé par Karmarkar en 1984
les ellispoïdes = premier algorithme polynomial pour la programmationlinéaire.
Diapositives : F. Meunier, Intervenant : A. Parmentier, ENPC 18 octobre 2017 11 / 43
Plan théorique, plan pratique
Plan pratique De nombreux logiciels (libres et commerciaux) résolventdes programmes linéaires de grande taille. Il y aprincipalement deux algorithmes qui sont utilisés dans cescodes : l’algorithme du simplexe et l’algorithme des pointsintérieurs.
Plan théorique La programmation linéaire est dans P : l’algorithme despoints intérieurs résout la programmation linéaire entemps polynomial, mais pas l’algorithme du simplexe.
Diapositives : F. Meunier, Intervenant : A. Parmentier, ENPC 18 octobre 2017 12 / 43
Partie
1. La programmation linéaire : définition et exemples
2. Quelques propriétés théoriques
3. Algorithmes
4. Dualité
Diapositives : F. Meunier, Intervenant : A. Parmentier, ENPC 18 octobre 2017 13 / 43
Quelques propriétés théoriques
Diapositives : F. Meunier, Intervenant : A. Parmentier, ENPC 18 octobre 2017 14 / 43
Forme standard, forme canonique, forme inéquationnelle
Forme inéquationnelleMin cT xs.c. Ax ≤ b,
Forme standardMin cT xs.c. Ax = b,
x ≥ 0
Forme canoniqueMin cT xs.c. Ax ≤ b,
x ≥ 0
Diapositives : F. Meunier, Intervenant : A. Parmentier, ENPC 18 octobre 2017 15 / 43
Nettoyage préliminaire
Hypothèse : Nos programmes linéaires sous forme standard se-ront tels que les lignes de A sont linéairement indépendantes.
On peut en effet toujours se ramener à une telle situation.
Diapositives : F. Meunier, Intervenant : A. Parmentier, ENPC 18 octobre 2017 16 / 43
Une notation
Pour B ⊆ {1, 2, . . . , n} :AB = sous-matrice de A réduite aux colonnes indicées par B.xB = sous-vecteur de x réduit aux composantes indicées par B.
Exemple.B = {1, 4, 5}Si
A =
1 2 0 3 3 10 8 9 3 4 45 6 0 7 1 1
,alors
AB =
1 3 30 3 45 7 1
.Si x = (5, 4, 5, 1, 1, 2), alors xB = (5, 1, 1).
Diapositives : F. Meunier, Intervenant : A. Parmentier, ENPC 18 octobre 2017 17 / 43
Une notation, suite
Pour B ⊆ {1, . . . , n} et N = {1, . . . , n} \ BAx = b peut se voir sous la forme
ABxB + ANxN = b
Diapositives : F. Meunier, Intervenant : A. Parmentier, ENPC 18 octobre 2017 18 / 43
Réécriture dans une base
B ⊆ {1, 2, . . . , n} avec m éléments = base si la matrice AB estinversible.
Réécrire le système Ax = b dans la base B :
xB + A−1B ANxN = A−1
B b.
La solution x̃ du système Ax = b obtenue en posant x̃B := A−1B b et
x̃N := 0 est une solution basique.
Si elle est réalisable, i.e. si A−1B b ≥ 0, alors x̃ est une solution basique
réalisable, et B est une base réalisable.
Diapositives : F. Meunier, Intervenant : A. Parmentier, ENPC 18 octobre 2017 19 / 43
Optimalité et solution basique
TheoremConsidérons un programme linéaire sous forme standardAlorsI s’il y a une solution réalisable et si la fonction objectif est bornée
inférieurement, alors il existe une solution optimale.I s’il existe une solution optimale, alors il existe une solution
optimale qui soit basique réalisable.
Diapositives : F. Meunier, Intervenant : A. Parmentier, ENPC 18 octobre 2017 20 / 43
Un algorithme naïf
On peut donc trouver l’optimum en un nombre fini d’opérations – auplus le nombre de bases
(nm
).
L’algorithme du simplexe exploite cette idée de façon plus astucieuse.
Diapositives : F. Meunier, Intervenant : A. Parmentier, ENPC 18 octobre 2017 21 / 43
Polyèdre
Un polyèdre est l’intersection d’un nombre fini de demi-espacesdélimités par des hyperplans.Les contraintes
Ax ≤ b,
délimitent donc un polyèdre. De même pour
Ax = b,x ≥ 0
ouAx ≤ b,x ≥ 0
En conséquence, les solutions réalisables d’un programme linéaireforment toujours un polyèdre.
Diapositives : F. Meunier, Intervenant : A. Parmentier, ENPC 18 octobre 2017 22 / 43
Convexité et polytope
Un polyèdre P est un ensemble convexe : si x et y sont dans P, lesegment [x, y] est inclus dans P. Un polyèdre borné est un polytope.
FIGURE – Un polytope FIGURE – Un polyèdre non borné
La programmation linéaire est un cas particulier de la programmationconvexe.
Diapositives : F. Meunier, Intervenant : A. Parmentier, ENPC 18 octobre 2017 23 / 43
Points extrêmes
Un polyèdre possède en général des points extrêmes ou sommets, quisont les “pointes”, ou les “piques” du polyèdre. Mathématiquement,v ∈ P est un point extrême de P si pour tout x, y ∈ P, on a l’implication
(le segment [x, y] contient v)⇒ (v = x ou v = y).
On ne peut avoir de segment inclus dans P et non réduit à un point quicontienne strictement v .
Diapositives : F. Meunier, Intervenant : A. Parmentier, ENPC 18 octobre 2017 24 / 43
Solutions basiques réalisables = points extrêmes
TheoremSoit P l’ensemble des solutions réalisables d’un programme linéairesous forme standard. Soit v ∈ P. Les deux assertions sont équiva-lentes :I v est une solution basique réalisable.I v est un point extrême de P.
En particulier, on voit qu’un polyèdre n’a qu’un nombre fini de pointsextrêmes.
Diapositives : F. Meunier, Intervenant : A. Parmentier, ENPC 18 octobre 2017 25 / 43
Optimum – vision géométrique
Si un programme linéaire sous forme standard admet une solutionoptimale, il admet en particulier une solution optimale qui est un point
extrême de l’ensemble des points réalisables.
Si un programme linéaire (de minimisation) est réalisable mais nonborné, il admet un rayon infini dans son ensemble de points réalisables
le long duquel le critère peut être rendu arbitrairement petit.
Diapositives : F. Meunier, Intervenant : A. Parmentier, ENPC 18 octobre 2017 26 / 43
Partie
1. La programmation linéaire : définition et exemples
2. Quelques propriétés théoriques
3. Algorithmes
4. Dualité
Diapositives : F. Meunier, Intervenant : A. Parmentier, ENPC 18 octobre 2017 27 / 43
Algorithmes
Diapositives : F. Meunier, Intervenant : A. Parmentier, ENPC 18 octobre 2017 28 / 43
Algorithme du simplexe
x
y
l’optimum est atteint en (x∗, y∗) = (3, 2)
4x+ 5y = 22
Diapositives : F. Meunier, Intervenant : A. Parmentier, ENPC 18 octobre 2017 29 / 43
L’algorithme du simplexe
On considère un programme sous forme standard
Min cT xs.c. Ax = b,
x ≥ 0
Après manipulation, ce programme se réécrit de manière équivalente
Min cTBA−1
B b + (cTN − cT
BA−1B AN)xN
s.c. xB + A−1B ANxN = A−1
B b,x ≥ 0.
Diapositives : F. Meunier, Intervenant : A. Parmentier, ENPC 18 octobre 2017 30 / 43
Programme dans la base B
Min cTBA−1
B b + (cTN − cT
BA−1B AN)xN
s.c. xB + A−1B ANxN = A−1
B b,x ≥ 0.
Avantages : on peut lire directement la solution basique réalisableassociée à la base B.
En effet : la solution basique réalisable est telle que x̃N = 0. Valeur ducritère en x̃N = 0, précisément cT
BA−1B b.
On peut voir l’optimalité immédiatement.
Diapositives : F. Meunier, Intervenant : A. Parmentier, ENPC 18 octobre 2017 31 / 43
Bases voisines
Soient B et B′ deux bases réalisables. Elles sont voisines si|B \ B′| = 1.
On a alors aussi nécessairement |B′ \ B| = 1.
Diapositives : F. Meunier, Intervenant : A. Parmentier, ENPC 18 octobre 2017 32 / 43
Itération générale
On suppose donné une base réalisable B.
Construire une base réalisable voisine B′ qui améliore le critère(=pivot) : se fait simplement à la lecture des entrées de cT
N − cTBA−1
B AN
et de A−1B AN .
Programme sous forme équivalente
Min cTB′A−1
B′ b +(
cTN′ − cT
B′A−1B′ AN′
)xN′
s.c. xB′ + A−1B′ AN′xN′ = A−1
B′ b,x ≥ 0.
(1)
Recommencer.
De deux choses l’une :soit on termine sur une base optimale, soit à la lecture des coef-ficients, on voit que le programme est non borné (i.e −∞ est lavaleur optimale).
Diapositives : F. Meunier, Intervenant : A. Parmentier, ENPC 18 octobre 2017 33 / 43
L’algorithme des points intérieurs
L’algorithme des points intérieurs cherche à éviter le bord du polyèdreet reste le plus possible à l’intérieur 6= simplexe). C’est seulement à ladernière étape que l’algorithme atteint le bord, précisément sur unesolution optimale.
Consiste à considérer le coût pénalisé
fµ(x) := cT x − µn∑
i=1
log xi
et à considérer le programme suivant
Min fµ(x)s.c. Ax = b,
x > 0,(2)
où x > 0 signifie que xi > 0 pour i = 1, . . . , n.Diapositives : F. Meunier, Intervenant : A. Parmentier, ENPC 18 octobre 2017 34 / 43
Idée de l’algorithme : faire tendre progressivement µ vers 0 et chercherla solution optimale x∗(µ) du programme précédent pour chaquevaleur de µ successive.
La suite des x∗(µ) tend vers l’optimum.
La recherche de la solution optimale x∗(µ) se fait en faitapproximativement et utilise la solution optimale approximative duprogramme pour la valeur de µ précédente – cette étape revient alors àune simple résolution d’un système linéaire.
Diapositives : F. Meunier, Intervenant : A. Parmentier, ENPC 18 octobre 2017 35 / 43
Efficacité de l’algorithme des points intérieurs
Complexité : O(n3L) où L est le nombre maximum de bits nécessairespour coder un coefficient du programme = algorithme polynomial.
nombre d’itérations (nombre de µ distincts pour lequel x∗(µ) estapproximativement calculé) = O(
√nL) mais en pratique cela semble
plutôt être un O(log n), ce qui en fait un algorithme réellement efficace.
Diapositives : F. Meunier, Intervenant : A. Parmentier, ENPC 18 octobre 2017 36 / 43
Partie
1. La programmation linéaire : définition et exemples
2. Quelques propriétés théoriques
3. Algorithmes
4. Dualité
Diapositives : F. Meunier, Intervenant : A. Parmentier, ENPC 18 octobre 2017 37 / 43
Dualité
Diapositives : F. Meunier, Intervenant : A. Parmentier, ENPC 18 octobre 2017 38 / 43
Le dual
Soit un programme sous forme standard :
Min cT xs.c. Ax = b,
x ≥ 0
On peut définir le programme dual :
Max bT ys.c. AT y ≤ c
Diapositives : F. Meunier, Intervenant : A. Parmentier, ENPC 18 octobre 2017 39 / 43
Théorème faible de la dualité
Si x est solution du primal et y solution du dual, alors on a le théorèmefaible de la dualité :
cT x ≥ bT y .
Rappel : grâce à cette propriété, on peut prouver l’optimalité – ou laqualité – d’une solution du primal.
Diapositives : F. Meunier, Intervenant : A. Parmentier, ENPC 18 octobre 2017 40 / 43
Théorème fort de la dualité
Theorem (Dualité forte)
Min cT xs.c. Ax = b, (P)
x ≥ 0Max bT ys.c. AT y ≤ c, (D)
exclusivement :1. Ni (P), ni (D) n’ont de solution réalisable.2. (P) est non borné et (D) n’a pas de solution réalisable.3. (D) est non borné et (P) n’a pas de solution réalisable.4. (P) et (D) sont tous deux réalisables. Ils ont alors tous deux des
solutions optimales, respectivement x∗ et y∗, et l’on a
cT x∗ = bT y∗.
Autrement dit, le minimum de (P) est égal au maximum de (D).Diapositives : F. Meunier, Intervenant : A. Parmentier, ENPC 18 octobre 2017 41 / 43
Recette de dualisation
Programme linéaire primal Programme linéaire dualVariables x1, x2, . . . , xn y1, y2, . . . , ymMatrice A AT
Membre de droite b cFonction objectif Min cT x Max bT y
Contraintesième contrainte a ≤
≥=
yi ≤ 0yi ≥ 0yi ∈ R
xj ≥ 0xj ≤ 0xj ∈ R
jème contrainte a ≤≥=
Diapositives : F. Meunier, Intervenant : A. Parmentier, ENPC 18 octobre 2017 42 / 43
Dual du dual = primal
Le dual du dual est équivalent au primal.
Diapositives : F. Meunier, Intervenant : A. Parmentier, ENPC 18 octobre 2017 43 / 43