Académique Documents
Professionnel Documents
Culture Documents
Cours de Recherche Op Erationnelle I: Grenoble, 2008-2009
Cours de Recherche Op Erationnelle I: Grenoble, 2008-2009
Grenoble, 2008-2009
Nadia.Brauner@g-scop.inpg.fr
1
Auteurs
Ont participe `a la redaction de ce cours (par ordre darrivee)
Nadia Brauner
Christophe Rapine
Julien Moncel
Laurent Beaudou
Ont aide, corrige, relu et donne des idees
Gerd Finke
Yann Kieffer
Van Dat Cung
Ont donne les TD et propose des exercices
Ayse Akbalik
Sergei Lenglet
2
Formations `a Grenoble
Formation initiale
RO `a lUJF (L3 info, M1 Info, L3 Miage, PolytechRICM2)
Gestion de la production `a lUJF (M1 Miage)
Outils Formels et Graphes (PolytechRICM2)
RO `a lENSIMAG (1A, 2A, LOSI)
RO `a lENSGI (1A, 2A, LOSI)
Master 2 Recherche Mathematiques et Informatique, Option
Recherche Operationnelle, Combinatoire et Optimisation
Formation continue
Recherche operationnelle (tous les ans, 4 jours)
Graphes et optimisation (tous les ans, 3 jours)
La recherche operationnelle
La Recherche Op
erationnelle
Applications
M
ethodologie
Outils
R
ef
erences
Plan
La Recherche Operationnelle
Applications
Methodologie
Outils
References
N. Brauner
La Recherche Op
erationnelle
Applications
M
ethodologie
Outils
R
ef
erences
Plan
La Recherche Operationnelle
Applications
Methodologie
Outils
References
N. Brauner
La Recherche Op
erationnelle
Applications
M
ethodologie
Outils
R
ef
erences
La Recherche Op
erationnelle
Applications
M
ethodologie
Outils
R
ef
erences
Recherche Operationnelle
D
efinitions
Methodes scientifiques pour resoudre des probl`emes
doptimisation lies aux organisations du monde reel
Une discipline `a la croisee des mathematiques et de
linformatique
prolongement de lalgorithmique
manipulant des structures plus elaborees : graphes, poly`edres...
domaine dapplication de la theorie de la complexite
algorithmique
N. Brauner
La Recherche Op
erationnelle
Applications
M
ethodologie
Outils
R
ef
erences
Plan
La Recherche Operationnelle
Applications
Methodologie
Outils
References
N. Brauner
La Recherche Op
erationnelle
Applications
M
ethodologie
Outils
R
ef
erences
Recherche Operationnelle
Voyageur de commerce (TSP)
Un voyageur de commerce, base `a Toulon, doit visiter ses
clients `a travers la France.
Il souhaite effectuer la tournee la plus courte possible.
N. Brauner
10
La Recherche Op
erationnelle
Applications
M
ethodologie
Outils
R
ef
erences
Recherche Operationnelle
Voyageur de commerce
Instance : n villes avec une matrice de distances
Solution : tournee visitant chaque ville et revenant `a Toulon
N. Brauner
11
La Recherche Op
erationnelle
Applications
M
ethodologie
Outils
R
ef
erences
Recherche Operationnelle
Algorithme Glouton pour le TSP
N. Brauner
12
La Recherche Op
erationnelle
Applications
M
ethodologie
Outils
R
ef
erences
Recherche Operationnelle
Applications
Feuille de TD : Recherche operationnelle, Introduction
Exercice 1 : Vente de telephones portables
Exercice 2 : Transport de lecteurs MP3
N. Brauner
13
La Recherche Op
erationnelle
Applications
M
ethodologie
Outils
R
ef
erences
Recherche Operationnelle
Transport
graphe biparti oriente avec ponderation
quantite dune marchandise aux sommets
co
uts de transport, distance sur les arcs
trouver le meilleur plan de distribution
ai iaP
PP
cij
P
min
j
PP
qabj
cij xij
xij
ai
xij
bj
xij
jB
X
iA
N. Brauner
14
La Recherche Op
erationnelle
Applications
M
ethodologie
Outils
R
ef
erences
Recherche Operationnelle
Applications
Feuille de TD : Recherche operationnelle, Introduction
Exercice 3 : Planification de projet
N. Brauner
15
La Recherche Op
erationnelle
Applications
M
ethodologie
Outils
R
ef
erences
Recherche Operationnelle
Applications
Plus court chemin
Quel est le trajet le plus court
entre Grenoble et Nice
en voiture ?
N. Brauner
16
La Recherche Op
erationnelle
Applications
M
ethodologie
Outils
R
ef
erences
Recherche Operationnelle
24h de RO
8h : optimisation de la recolte et du dep
ot des dechets
recyclables
...
15h : placement automatique des vehicules pour une
association de partage de voitures
16h : gestion des retards dans les transports publics pour
minimiser limpact sur les passagers
...
http://www.24hor.org/
N. Brauner
17
La Recherche Op
erationnelle
Applications
M
ethodologie
Outils
R
ef
erences
Recherche Operationnelle
Domaines dapplication
Conception, configuration et exploitation
de syst`emes techniques complexes
(reseaux de communication, syst`emes dinformation)
gestion de la chane logistique
(transports, production, stocks. . . )
gestion strategique dinvestissements
et aussi
sante, instruction publique, voirie,
ramassage et distribution de courrier,
production et transport denergie,
telecommunications, banques, assurances. . .
N. Brauner
18
La Recherche Op
erationnelle
Applications
M
ethodologie
Outils
R
ef
erences
Recherche Operationnelle
Domaines dapplication
Production : maximiser le profit selon disponibilite de la main
duvre, demande du marche, capacite de production, prix de
revient du materiau brut. . .
Transport : minimiser distance totale parcourue selon quantites de
materiaux `a transporter, capacite des transporteurs, points de
ravitaillement en carburant. . .
I grande importance dans le milieu industriel :
production, transport, emploi du temps, finance. . .
N. Brauner
19
La Recherche Op
erationnelle
Applications
M
ethodologie
Outils
R
ef
erences
Plan
La Recherche Operationnelle
Applications
Methodologie
Outils
References
N. Brauner
20
La Recherche Op
erationnelle
Applications
M
ethodologie
Outils
R
ef
erences
Recherche Operationnelle
Face `
a un probl`
eme pratique de d
ecision
Aspects mathematiques
contraintes, objectifs, simplifications
Modelisation
graphes, programmation lineaire, PPC...
21
La Recherche Op
erationnelle
Applications
M
ethodologie
Outils
R
ef
erences
Plan
La Recherche Operationnelle
Applications
Methodologie
Outils
References
N. Brauner
22
La Recherche Op
erationnelle
Applications
M
ethodologie
Outils
R
ef
erences
Recherche Operationnelle
Programmation lin
eaire
min le co
ut / max le profit
min / max
c1 x1 + c2 x2 . . . cn xn
satisfaire la demande
a1 x1 + a2 x2 . . . an xn b1
quantites produites
x1 , x2 . . . xn 0
N. Brauner
23
La Recherche Op
erationnelle
Applications
M
ethodologie
Outils
R
ef
erences
Recherche Operationnelle
Optimisation Combinatoire
Trouver la meilleure solution parmi un nombre fini mais tr`es
grand de choix
Un probl`eme dOC se caracterise par :
La presence de choix, `a faire parmi un ensemble fini
dalternatives
Une notion de co
ut, ou de gain, ou de perte
La necessite de faire globalement les bons choix, de mani`ere `a
optimiser la valeur objective
24
La Recherche Op
erationnelle
Applications
M
ethodologie
Outils
R
ef
erences
Recherche Operationnelle
Graphes
sommet
arete
1
:
3
...
N. Brauner
25
La Recherche Op
erationnelle
Applications
M
ethodologie
Outils
R
ef
erences
Recherche Operationnelle
Autre
Files dattente
Stochastique
Simulation
` linterface de
A
Informatique : algorithmique
Mathematiques : modelisation
Economie
: gestion, strategie
N. Brauner
26
La Recherche Op
erationnelle
Applications
M
ethodologie
Outils
R
ef
erences
Plan
La Recherche Operationnelle
Applications
Methodologie
Outils
References
N. Brauner
27
La Recherche Op
erationnelle
Applications
M
ethodologie
Outils
R
ef
erences
Bibliographie
che, J.-F.
de Werra, D., Liebling, T.-M., and He
Recherche Operationnelle pour Ingenieurs, Tome 1.
Presses Polytechniques et Universitaires Romandes, 2003.
Sakarovitch, M.
Optimisation Combinatoire, Graphes et Programmation
Lineaire.
Hermann, Enseignement des sciences, Paris, 1984.
Sakarovitch, M.
Optimisation Combinatoire, Programmation Discr`ete.
Hermann, Enseignement des sciences, Paris, 1984.
Wolsey, L. A.
Integer Programming.
Wiley-Interscience, 1998.
N. Brauner
28
La Recherche Op
erationnelle
Applications
M
ethodologie
Outils
R
ef
erences
Webographie
Cours
La RO sur wikipedia
http://fr.wikipedia.org/
Poly de cours
http://www.g-scop.inpg.fr/~braunern/
Complements au cours
http://www.g-scop.inpg.fr/~rapinec/
Vie de la RO en France
Societe francaise de RO
http://www.roadef.org
Groupe de Recherche en RO du CNRS
http://www-poleia.lip6.fr/~fouilhoux/gdrro/
Seminaire de RO `a Grenoble
http://www.g-scop.inpg.fr/~moncelj/seminaire/
N. Brauner
29
La Recherche Op
erationnelle
Applications
M
ethodologie
Outils
R
ef
erences
Webographie
Collection de ressources pour la RO
http://www2.informs.org/Resources/
http://www.ensta.fr/~diam/ro/
Logiciels pour la RO
http://www.coin-or.org/resources.html
http://www.wior.uni-karlsruhe.de/bibliothek/
Blogs sur la RO
http://blog.vcu.edu/lamclay/
http://mat.tepper.cmu.edu/blog/
Probl`
emes difficiles
http://www.nada.kth.se/~viggo/problemlist/
N. Brauner
30
La Recherche Op
erationnelle
Applications
M
ethodologie
Outils
R
ef
erences
Entreprises francaises
Des entreprises francaises specialisees en RO
EURODECISION
Conseil en optimisation des ressources et planification de la
production, outils daide `a la decision
ILOG
Optimization tools and engines, Visualization software
components, Supply chain applications
ARTELYS
Solutions en optimisation
Des entreprises grenobloises qui font de la RO
Opti-time
Equitime
Alma
N. Brauner
31
La Recherche Op
erationnelle
Applications
M
ethodologie
Outils
R
ef
erences
Entreprises francaises
Des entreprises francaises qui ont un p
ole R&D en RO
Airfrance
SNCF
EDF/GDF
France Telecom
Bouygues
Bouygues Telecom
Amadeus
N. Brauner
32
La Recherche Op
erationnelle
Applications
M
ethodologie
Outils
R
ef
erences
Recherche Operationnelle
En conclusion
faire le mieux
co
ut min, meilleur profit, plus courte distance, le plus rapide. . .
N. Brauner
33
Mod
elisation
R
esolution
Plan
Modelisation
Resolution
N. Brauner
35
Mod
elisation
R
esolution
Sudoku
N. Brauner
36
Mod
elisation
R
esolution
Sudoku et PPC
Raisonnement par elimination
on ne cherche pas directement une valeur pour les variables
mais plut
ot les valeurs qui peuvent etre prises par une
variable : reduction du domaine
37
Mod
elisation
R
esolution
On se trouve o`u ?
Un probl`
eme, une solution : la solution est-elle une solution
du probl`eme ?
simulation, verification
Un probl`
eme : trouver une solution du probl`eme
programmation par contrainte (CSP)
Un probl`
eme : trouver la meilleure solution du probl`eme
programmation lineaire
N. Brauner
38
Mod
elisation
R
esolution
Un premier exemple
Domaine des variables
x, y {0, 1 . . . 7}
Contraintes
x y =6
x +y =5
x >y
N. Brauner
39
Mod
elisation
R
esolution
N. Brauner
40
Mod
elisation
R
esolution
N. Brauner
41
Mod
elisation
R
esolution
Application de la PPC
inspire de Gilles Pesant
Modelisation de gestion de projet
Puzzle combinatoire
Conception de materiel informatique
verification de circuits, connexions des couches de circuits
moins efficace que le code dedie, mais plus flexible
Placement dobjets
placement des containers dans un port
remplissage des containers
N. Brauner
42
Mod
elisation
R
esolution
Application de la PPC
Probl`emes de decoupage
Minimiser les pertes lors de la decoupe du papier, du verre, du
bois, du metal, etc.
La performance depend du contexte et de la difficulte des
contraintes
Papier : facile donc la programmation lineaire fonctionne bien
Pi`eces metalliques : plus difficile donc utiliser la PPC
Cuir et tissus : trop difficile seules les heuristiques fonctionnent
http://www.alma.fr
N. Brauner
43
Mod
elisation
R
esolution
Application de la PPC
Allocation despace
Portes pour les avions
Quais pour les trains ou les bateaux
Allocation de frequences
Trouver des frequences radio pour les cellulaires, les
communications radios, larmee, etc.
Ordonnancement de la production
Planifier des taches sur des machines dans une usine
Plus important succ`es de la PPC
Librairies dedies `a lordonnancement (ex. ILOG Scheduler)
N. Brauner
44
Mod
elisation
R
esolution
Application de la PPC
Tournee de vehicules
Confection de routes sujet `a beaucoup de contraintes.
Librairies specialisees, contraintes dediees
http://www.equitime.org/
N. Brauner
45
Mod
elisation
R
esolution
Plan
Modelisation
Resolution
N. Brauner
46
Mod
elisation
R
esolution
N. Brauner
47
Mod
elisation
R
esolution
Domaines
D
efinition
X1 , X2 . . . Xn les variables de decision
Domaine
La variable Xi doit prendre ses valeurs dans le domaine Di
discret
fini ou infini
N. Brauner
48
Mod
elisation
R
esolution
Domaines
Exercice
Sont-ce des domaines ?
{1, 2, 3, 4}
Lensemble des entiers naturels.
Lensemble des reels
Les entiers naturels impairs
Lintervalle [1, 1]
Les points `a coordonnees enti`eres du plan
N. Brauner
49
Mod
elisation
R
esolution
Contraintes
Cest quoi ?
Variables
Domaines
Contraintes
x 6= 3y
3x 2
=3
AB C
N. Brauner
50
Mod
elisation
R
esolution
Contraintes
D
eclaration dune contrainte
2 types de declaration :
extension : on enum`ere les valeurs admises
(x = 1 et y = 2) ou (x = 2 et y = 4) ou (x = 3 et y = 0)
N. Brauner
51
Mod
elisation
R
esolution
Contraintes
Caract
eristiques des contraintes
Relationnelle : non dirigee comme une fonction qui definit
la valeur dune variable en fonction des autres variables
x 2y = z permet
de determiner z si x et y sont connues
mais aussi x si y et z sont connues
et y si x et z sont connues
52
Mod
elisation
R
esolution
Contraintes
Arit
e dune contrainte : le nombre de variables dans la contrainte
unaire : arite = 1
x x = 4 ou est-un-triangle(y )
binaire : arite = 2
x 6= y ou A B = A
ternaire : arite = 3
x + y < 3 z 4 ou (non x) ou y ou z = vrai
n-aire : arite = n
Si n est le nombre de variables : contrainte globale
toutesDifferentes(E ),
o`
u E est un ensemble de variables
N. Brauner
53
Mod
elisation
R
esolution
Contraintes
Exemples suppl
ementaires
Contraintes logiques
Si x = 4 alors y = 5
x = y ou x = 2y
Contraintes globales
Toutes les variables sont differentes
Meta-contraintes
La valeur 5 est utilisee exactement 3 fois
N. Brauner
54
Mod
elisation
R
esolution
N. Brauner
55
Mod
elisation
R
esolution
N. Brauner
56
Mod
elisation
R
esolution
N. Brauner
57
Mod
elisation
R
esolution
N. Brauner
58
Mod
elisation
R
esolution
CSP
CSP surcontraint : na pas de solution
trouver une affectation totale qui maximise le nombre de
contraintes satisfaites = max-CSP
affecter un poids `a chaque contrainte (proportionnel `a
limportance de cette contrainte) et chercher une affectation
totale qui minimise la somme des poids des contraintes violees
= CSP value (VCSP)
CSP sous-contraint : admet beaucoup de solutions differentes,
preferences entre les differentes solutions (fonction qui associe
une valeur numerique `a chaque solution) et trouver une
solution du CSP qui maximise cette fonction = CSOP
(Constraint Satisfaction Optimisation Problem)
N. Brauner
59
Mod
elisation
R
esolution
Plan
Modelisation
Resolution
N. Brauner
60
Mod
elisation
R
esolution
Un constat
N. Brauner
61
Mod
elisation
R
esolution
N. Brauner
62
Mod
elisation
R
esolution
Modelisation
Attention
Il ny a pas quune modelisation possible !
Modelisation
variables L1 , L2 , L3 , L4
domaines Li {1, 2, 3, 4}
contraintes
i =
6 j, Li 6= Lj
i =
6 j, Li + i 6= Lj + j
Li i 6= Lj j
N. Brauner
63
Mod
elisation
R
esolution
Modelisation
Autre mod
elisation pour le probl`
eme des reines ?
N. Brauner
64
Mod
elisation
R
esolution
Modelisation
Quelle est la meilleure mod
elisation ?
1
N. Brauner
65
Mod
elisation
R
esolution
N. Brauner
66
Mod
elisation
R
esolution
N. Brauner
67
Mod
elisation
R
esolution
S
M
O
E
O
N
N
R
E
D
E
Y
o`
u chaque lettre represente un chiffre different (compris entre 0
et 9). On souhaite connatre la valeur de chaque lettre, sachant
que la premi`ere lettre de chaque mot represente un chiffre
different de 0.
Modelisez ce probl`eme sous la forme dun CSP.
N. Brauner
68
Mod
elisation
R
esolution
N. Brauner
69
Mod
elisation
R
esolution
Plan
Modelisation
Resolution
N. Brauner
70
Mod
elisation
R
esolution
Resolution nave
Enum
eration
On gen`ere toutes les affectations totales possibles
On verifie si elles sont consistantes
si on en trouve une consistante, cest gagne
N. Brauner
71
Mod
elisation
R
esolution
Resolution nave
Un probl`eme `a n variables qui peuvent prendre 2 valeurs.
109 affectations traitees par seconde.
n
10
20
30
40
50
60
70
nb daffectations
103
106
109
1012
1015
1018
1021
temps
... do`
u linteret de bien choisir la modelisation
N. Brauner
72
Mod
elisation
R
esolution
Les rem`edes
Sarreter quand une affectation partielle est inconsistante
backtrack
N. Brauner
73
Mod
elisation
R
esolution
Backtrack
Principe :
On parcourt larbre des affectations en profondeur
Lorsquune affectation partielle est inconsistante, on nexplore
pas le sous-arbre correspondant
N. Brauner
74
Mod
elisation
R
esolution
N. Brauner
75
Mod
elisation
R
esolution
Backtrack
Backtrack
M
ethode nave
4 Moins daffectations
considerees
N. Brauner
76
Mod
elisation
R
esolution
N. Brauner
77
Mod
elisation
R
esolution
N. Brauner
78
Mod
elisation
R
esolution
N. Brauner
79
Mod
elisation
R
esolution
N. Brauner
80
Mod
elisation
R
esolution
N. Brauner
81
Mod
elisation
R
esolution
N. Brauner
82
Mod
elisation
R
esolution
Propagation de contraintes
Nud-consistance :
4 Moins daffectations
considerees
8 Toutes les contraintes sont
testees `a chaque affectation
meme partielle
4 Facile `a mettre en uvre
Arc-consistance :
4 Beaucoup moins
daffectations considerees
8 Etablir
larc-consistance
peut prendre beaucoup de
temps selon les contraintes.
8 Moins facile `a mettre en
uvre
N. Brauner
83
Mod
elisation
R
esolution
Syst`emes
Syst`
emes bas
es sur la programmation logique
ECLiPSE Prolog
GNU Prolog
Syst`
emes bas
es sur des librairies
ILOG soveur (C++)
Choco (Java)
Facile (Ocaml)
N. Brauner
84
N. Brauner
85
N. Brauner
86
Programmation lineaire
Programmation lin
eaire
Interpr
etation g
eom
etrique
Lalgorithme du simplexe
Plan
10
Interpretation geometrique
11
12
Lalgorithme du simplexe
N. Brauner
88
Programmation lin
eaire
Interpr
etation g
eom
etrique
Lalgorithme du simplexe
Plan
10
Interpretation geometrique
11
12
Lalgorithme du simplexe
N. Brauner
89
Programmation lin
eaire
Interpr
etation g
eom
etrique
Lalgorithme du simplexe
Programmation lineaire
Cadre de la PL
Programmation lineaire
nombre fini de variables reelles, contraintes lineaires, objectif
lineaire
Variables x1 , x2 . . . xn reelles
Contrainte generique (contrainte i) :
n
X
aij xj bi
j=1
n
X
cj xj
j=1
N. Brauner
90
Programmation lin
eaire
Interpr
etation g
eom
etrique
Lalgorithme du simplexe
Programmation lineaire
Exemple : culture de courgettes et navets
Contraintes concernant les quantites dengrais et danti-parasites
8` engrais A disponible
2`/m2 necessaires pour courgettes, 1`/m2 pour navets
7` engrais B disponible
1`/m2 necessaires pour courgettes, 2`/m2 pour navets
3` anti-parasites disponible
1`/m2 necessaires pour navets
Objectif : produire le maximum (en poids) de legumes, sachant
que rendements = 4kg /m2 courgettes, 5kg /m2 navets
N. Brauner
91
Programmation lin
eaire
Interpr
etation g
eom
etrique
Lalgorithme du simplexe
Programmation lineaire
Exemple : culture de courgettes et navets
Variables de d
ecision
xc : surface de courgettes
xn : surface de navets
Fonction objectif
Contraintes
2xc + xn 8
(engrais A)
xc + 2xn 7
(engrais B)
xn 3
(anti-parasites)
xc 0 et xn 0
N. Brauner
92
Programmation lin
eaire
Interpr
etation g
eom
etrique
Lalgorithme du simplexe
Programmation lineaire
Int
er
et de la PL
Probl`eme general doptimisation sous contraintes
ERALE
AUCUNE m
ethode GEN
de r
esolution ! !
Probl`eme lineaire quelconque
existence de methodes de resolution generales et efficaces
Ces methodes sont efficaces en theorie et en pratique
existence de nombreux logiciels de resolution :
Excel, CPLEX, Mathematica, LP-Solve. . .
Cadre restrictif
variables reelles
contraintes lineaires
objectif lineaire
N. Brauner
93
Programmation lin
eaire
Interpr
etation g
eom
etrique
Lalgorithme du simplexe
Programmation lineaire
Repr
esentation in extenso
max 4xc + 5xn
2xc + xn 8 (engrais A)
xc + 2xn 7 (engrais B)
xn 3
(anti-parasites)
xc 0 et xn 0
Repr
esentation matricielle
xc
xn
2 1
8
1 2 xc
7
xn
0 1
3
max
(4
xc 0
5)
xn 0
N. Brauner
94
Programmation lin
eaire
Interpr
etation g
eom
etrique
Lalgorithme du simplexe
Programmation lineaire
Repr
esentation in extenso
P
max z =
j cj xj
s.c.
aij xj
xj
i
=
i = 1, 2 . . . m
j = 1, 2 . . . n
N. Brauner
95
Programmation lin
eaire
Interpr
etation g
eom
etrique
Lalgorithme du simplexe
Programmation lineaire
second membre b =
b1
b2
..
.
bm
matrice de format
a11 a12
a21 a22
A=
am1 am2
mn
a1n
a2n
. . . amn
...
...
..
.
n var. de decision X =
x1
x2
..
.
xn
Repr
esentation matricielle
max z = cx
s.c.
Ax
co
ut (ou profit) c = (c1 , c2 . . . cn )
x
0
N. Brauner
96
Programmation lin
eaire
Interpr
etation g
eom
etrique
Lalgorithme du simplexe
Programmation lineaire
Vocabulaire
xi variable de decision du probl`eme
x = (x1 , . . . , xn ) solution r
ealisable (admissible)
ssi elle satisfait toutes les contraintes
ensemble des solutions realisables = domaine ou region
admissible
x = (x1 , . . . , xn ) solution optimale
ssi elle est realisable et optimise la fonction-objectif
contraintes inegalite ou egalite lineaire
a11 x1 + a12 x2 . . . + a1n xn b1
a21 x1 + a22 x2 . . . + a2n xn b2
a31 x1 + a32 x2 . . . + a3n xn = b3
97
Programmation lin
eaire
Interpr
etation g
eom
etrique
Lalgorithme du simplexe
Programmation lineaire
Applications
Feuille de TD : Programmation lineaire, Modelisation
Exercice 1 : Production de vins
Exercice 2 : Fabrication dhuile dolives
Exercice 3 : Compagnie aerienne
Exercice 4 : Publicite
N. Brauner
98
Programmation lin
eaire
Interpr
etation g
eom
etrique
Lalgorithme du simplexe
Programmation lineaire
Forme canonique dun PL
maximisation
toutes les variables sont non negatives
toutes les contraintes sont des inequations du type
max z =
s.c.
j cj xj
aij xj
xj
bi
i = 1, 2 . . . m
j = 1, 2 . . . n
forme matricielle
max z = cx
s.c. Ax
x
b
0
N. Brauner
99
Programmation lin
eaire
Interpr
etation g
eom
etrique
Lalgorithme du simplexe
Programmation lineaire
Forme standard dun PL
maximisation
toutes les variables sont non negatives
toutes les contraintes sont des equations
max z =
s.c.
j cj xj
aij xj
xj
= bi
i = 1, 2 . . . m
j = 1, 2 . . . n
forme matricielle
max z = cx
s.c. Ax
x
= b
0
N. Brauner
100
Programmation lin
eaire
Interpr
etation g
eom
etrique
Lalgorithme du simplexe
Programmation lineaire
Passage entre les formes
equation inequation
ax = b
ax b
ax b
max min
max f (x) = min f (x)
inequation equation : ajouter une variable decart
ax b
ax b
ax + s = b,
ax s = b,
s0
s0
101
Programmation lin
eaire
Interpr
etation g
eom
etrique
Lalgorithme du simplexe
Programmation lineaire
Passage entre les formes
Feuille de TD : Programmation lineaire, Resolution
Exercice 1
N. Brauner
102
Programmation lin
eaire
Interpr
etation g
eom
etrique
Lalgorithme du simplexe
Programmation lineaire
Lin
eariser un probl`
eme non lin
eaire
ei : expression lineaire des variables de decision
obj : min max{e1 , e2 . . . en }
min y
y ei
i = 1, 2 . . . n
obj : max min{e1 , e2 . . . en }
max y
y ei
i = 1, 2 . . . n
obj : min |e1 |
|e| = max(e, e)
min y
y e1
y e1
min e + + e
e1 = e + e
+
e ,e 0
N. Brauner
103
Programmation lin
eaire
Interpr
etation g
eom
etrique
Lalgorithme du simplexe
Programmation lineaire
Lin
eariser un probl`
eme non lin
eaire
Feuille de TD : Programmation lineaire, Resolution
Exercice 2
N. Brauner
104
Programmation lin
eaire
Interpr
etation g
eom
etrique
Lalgorithme du simplexe
Programmation lineaire
Un peu dhistoire
annees 30-40 : Kantorovitch, economiste sovietique
mod`eles lineaires pour la planification et loptimisation de
la production
annees 40-50 : Dantzig, mathematicien americain
algorithme du simplexe
application historique
Operations Vittles et Plainfare pour ravitaillement de la trizone
pendant le blocus de Berlin par pont aerien (23 juin 1948 12
mai 1949)
simplexe execute `a la main (des milliers de variables), jusqu`a
12 000 tonnes de materiel par jour !
105
Programmation lin
eaire
Interpr
etation g
eom
etrique
Lalgorithme du simplexe
Plan
10
Interpretation geometrique
11
12
Lalgorithme du simplexe
N. Brauner
106
Programmation lin
eaire
Interpr
etation g
eom
etrique
Lalgorithme du simplexe
Interpretation geometrique
Exemple : culture de courgettes et navets
Variables de d
ecision
xc : surface de courgettes
xn : surface de navets
Fonction objectif
Contraintes
2xc + xn 8
(engrais A)
xc + 2xn 7
(engrais B)
xn 3
(anti-parasites)
xc 0 et xn 0
N. Brauner
107
Programmation lin
eaire
Interpr
etation g
eom
etrique
Lalgorithme du simplexe
Interpretation geometrique
Interpr
eter les contraintes
courgettes et navets
2x + y 8 demi-plan de R2
x + 2y 7 demi-plan
y 3 demi-plan
x 0 et y 0 demi-plans
Ensemble des solutions realisables = intersection de ces
demi-plans : poly`
edre
x
N. Brauner
108
Programmation lin
eaire
Interpr
etation g
eom
etrique
Lalgorithme du simplexe
Interpretation geometrique
Optimiser lobjectif
Les lignes de niveau {4x + 5y = constante} sont des droites
parall`eles
4x 5y=10
4x 5y=18
4x 5y=22
4x 5y=25
x
N. Brauner
109
Programmation lin
eaire
Interpr
etation g
eom
etrique
Lalgorithme du simplexe
Interpretation geometrique
G
eom
etrie dun PL
Lensemble des solutions realisables est toujours
un poly`
edre (intersection de demi-espaces)
N. Brauner
110
Programmation lin
eaire
Interpr
etation g
eom
etrique
Lalgorithme du simplexe
Interpretation geometrique
G
eom
etrie dun PL
N. Brauner
111
Programmation lin
eaire
Interpr
etation g
eom
etrique
Lalgorithme du simplexe
Programmation lineaire
Solutions dun PL
La region admissible peut etre
vide
nb solutions optimales : 0
112
Programmation lin
eaire
Interpr
etation g
eom
etrique
Lalgorithme du simplexe
Plan
10
Interpretation geometrique
11
12
Lalgorithme du simplexe
N. Brauner
120
Programmation lin
eaire
Interpr
etation g
eom
etrique
Lalgorithme du simplexe
Rappels
max
s.c.
z
Ax
x
= cx
b
0
x = (x1 x2 . . . xn )
b = (b1 b2 . . . bm )
c = (c1 c2 . . . cn )
N. Brauner
121
Programmation lin
eaire
Interpr
etation g
eom
etrique
Lalgorithme du simplexe
aij xj bi
n
X
aij xj + ei = bi , ei 0
j=1
PL standard :
max z(x) = c.x
s.c
Ax = b
x
0
On travaille dans un espace de dimension plus grande, mais toutes
les contraintes sont des egalites.
I Manipulations algebriques plus aisees
N. Brauner
122
Programmation lin
eaire
Interpr
etation g
eom
etrique
Lalgorithme du simplexe
max z = 4x + 5y
s.c. 2x + y + e1 = 8
x + 2y + e2 = 7
y + e3 = 3
x, y , e1 , e2 , e3 0
9 points interessants
(intersection de contraintes)
5 points admissibles
123
Programmation lin
eaire
Interpr
etation g
eom
etrique
Lalgorithme du simplexe
x
0
0
0
0
4
7
3
2.5
1
x,
y
0
8
3.5
3
0
0
0
2
3
3
+ y
+ 2y
y
y,
e1
8
0
4.5
5
0
-6
0
0
3
e1
+
e1 ,
e2
e3
7
3
-9
-5
0
-0.5
1
0
3
3
0
3
0
0
1
-1.5
0
0
0
= 8
= 7
+ e3 = 3
e2 ,
e3 0
sol de base admiss.
4
4
4
8
4
8
4
4
4
4
4
8
8
8
4
4
4
8
4
4
e2
pt extreme
(0,0)
(0,3)
(4,0)
(3,2)
(1,3)
{points extr
emes} {solutions de base admissibles}N. Brauner
124
Programmation lin
eaire
Interpr
etation g
eom
etrique
Lalgorithme du simplexe
xB = B 1 b B 1 NxN
N. Brauner
125
Programmation lin
eaire
Interpr
etation g
eom
etrique
Lalgorithme du simplexe
2x + y + e1 = 8
x + 2y + e2 = 7
y + e3 = 3
x, y , e1 , e2 , e3 0
Base initiale ? {e1 , e2 , e3 } par exemple :
2x + y + e1 = 8
e1 = 8 2x y
x + 2y + e2 = 7
e2 = 7 x 2y
y + e3 = 3
e3 = 3 y
e1 , e2 , e3 = variables de base, x, y = variables hors base
N. Brauner
126
Programmation lin
eaire
Interpr
etation g
eom
etrique
Lalgorithme du simplexe
e1
e2
e3
et solution de base
= 8 2x y
= 7 x 2y
=3y
e1 = 8 2x y = 8
e2 = 7 x 2y = 7
x =y =0
e3 = 3 y = 3
N. Brauner
127
Programmation lin
eaire
Interpr
etation g
eom
etrique
Lalgorithme du simplexe
x 0
n!
m!(nm)!
N. Brauner
128
Programmation lin
eaire
Interpr
etation g
eom
etrique
Lalgorithme du simplexe
N. Brauner
129
Programmation lin
eaire
Interpr
etation g
eom
etrique
Lalgorithme du simplexe
N. Brauner
130
Programmation lin
eaire
Interpr
etation g
eom
etrique
Lalgorithme du simplexe
Plan
10
Interpretation geometrique
11
12
Lalgorithme du simplexe
N. Brauner
131
Programmation lin
eaire
Interpr
etation g
eom
etrique
Lalgorithme du simplexe
Lalgorithme du simplexe
Vers un algorithme de r
esolution
I Methode de resolution nave : enumerer tous les sommets,
calculer f sur ces points, prendre le sommet pour lequel f est
optimise :
fonctionne : nombre fini de sommets
limitation : ce nombre peut etre tr`es grand en general...
Lalgorithme du simplexe (G. B. Dantzig 1947) Algorithme
iteratif permettant de resoudre un probl`eme de programmation
lineaire.
N. Brauner
132
Programmation lin
eaire
Interpr
etation g
eom
etrique
Lalgorithme du simplexe
Lalgorithme du simplexe
Principe damelioration locale
` partir dun sommet, chercher un sommet voisin qui ameliore
A
lobjectif.
Principe damelioration locale (maximisation) :
Soit x0 sommet non optimum. Alors il existe x, un sommet voisin
de x0 , tel que f (x) > f (x0 ).
I Methode de resolution : on part dun sommet x0 quelconque, on
passe `a un sommet voisin pour lequel f augmente, et ainsi de suite.
Remarque : on passe dun probl`eme continu (variables reelles) `a
un probl`eme discret (nombre fini de sommets)...
N. Brauner
133
Programmation lin
eaire
Interpr
etation g
eom
etrique
Lalgorithme du simplexe
Lalgorithme du simplexe
Illustration 2D : courgettes et navets
x0 = (0, 0), z = 0 x = (0, 3), z = 15
x0 = (0, 3), z = 15 x = (1, 3), z = 19
x0 = (1, 3), z = 19 x = (3, 2), z = 22
z = 4x + 5y
x =3,2 , z =22
x
I plus damelioration locale possible optimum
N. Brauner
134
Programmation lin
eaire
Interpr
etation g
eom
etrique
Lalgorithme du simplexe
Lalgorithme du simplexe
Illustration concr`
ete
I Standardisation :
Maximiser
z = 4x + 5y
2x
+
y 8
x + 2y 7
s.c.
y 3
x, y 0
Maximiser
z = 4x + 5y
2x
+
y + e1 = 8
x + 2y + e2 = 7
s.c.
y + e3 = 3
x, y , e1 , e2 , e3 0
2x + y + e1 = 8
e1 = 8 2x y
x + 2y + e2 = 7
e2 = 7 x 2y
y + e3 = 3
e3 = 3 y
e1 , e2 , e3 = variables de base, x, y = variables hors base
N. Brauner
135
Programmation lin
eaire
Interpr
etation g
eom
etrique
Lalgorithme du simplexe
Lalgorithme du simplexe
Solution de base associ
ee
I on met les variables hors base `a 0
I on en deduit :
valeur des variables de base
valeur de z
e1 = 8 2x y = 8
e2 = 7 x 2y = 7 et z = 4x + 5y = 0
ici : x = y = 0
e3 = 3 y = 3
N. Brauner
136
Programmation lin
eaire
Interpr
etation g
eom
etrique
Lalgorithme du simplexe
Lalgorithme du simplexe
Changement de base
Observation essentielle : z = 4x + 5y = 0 on peut augmenter z
si x ou y rentre dans la base.
Essayons avec y : quelle est la valeur max que pourra avoir y ?
e1 = 8 2x y 0 y 8
e2 = 7 x 2y 0 y 3.5
e3 = 3 y 0 y 3
Bilan : ymax = 3, pour y = ymax on a e1 = 5 x, e2 = 1 x, et
e3 = 0
I candidat pour une nouvelle base :
{e1 , e2 , e3 } {y } \ {e3 } = {e1 , e2 , y }
N. Brauner
137
Programmation lin
eaire
Interpr
etation g
eom
etrique
Lalgorithme du simplexe
Lalgorithme du simplexe
Nouvelle base {e1 , e2 , y
}
e1 = 8 2x y
e1 = 8 2x y = 5 2x + e3
e2 = 7 x 2y
e2 = 7 x 2y = 1 x + 2e3
e3 = 3 y
y = 3 e3
Exprimons z en fonction des variables hors base
I z = 4x + 5y = 15 + 4x 5e3
Solution de base associee
e1 = 5 2x + e3 = 5
e2 = 1 x + 2e3 = 1
x = e3 = 0
y = 3 e3 = 3
et
z = 15
N. Brauner
138
Programmation lin
eaire
Interpr
etation g
eom
etrique
Lalgorithme du simplexe
Lalgorithme du simplexe
It
eration
z = 15 + 4x 5e3 peut encore augmenter si x entre dans la base
Si x entre, qui sort ?
Valeur max de x :
e1 = 5 2x + e3 0 x 2.5
e2 = 1 x + 2e3 0 x 1
y = 3 e3 0 aucune contrainte sur x
Bilan : xmax = 1 et e2 sort.
Nouvelle base {e1 , y , x}
e1 = 3 + 2e2 3e3
x = 1 e2 + 2e3
y
= 3 e3
z = 19 4e2 + 3e3
N. Brauner
139
Programmation lin
eaire
Interpr
etation g
eom
etrique
Lalgorithme du simplexe
Lalgorithme du simplexe
It
eration (suite)
z = 19 4e2 + 3e3 peut encore augmenter si e3 entre dans la base
Si e3 entre, qui sort ?
Valeur max de e3 :
e1 = 3 + 2e2 3e3 0 e3 1
x = 1 e2 + 2e3 0 aucune contrainte sur e3
y = 3 e3 0 e3 3
Bilan : e3max = 1, e1 sort. Nouvelle base {e3 , y , x} :
e3 = 1 + 2/3e2 1/3e1
x = 3 + 1/3e2 2/3e1
y = 2 2/3e2 + 1/3e1
z = 22 2e2 e1
N. Brauner
140
Programmation lin
eaire
Interpr
etation g
eom
etrique
Lalgorithme du simplexe
Lalgorithme du simplexe
Terminaison
On a z = 22 2e2 e1 , donc z 22
Or la solution de base x = 3, y = 2, e3 = 1 donne z = 22
I optimum
La condition de terminaison concerne les coefficients de z exprimee
avec les variables hors base.
N. Brauner
141
Programmation lin
eaire
Interpr
etation g
eom
etrique
Lalgorithme du simplexe
Lalgorithme du simplexe
max z = 20x1 + 10x2
s.c.
x1 + 2x2 120
x1 +
x2 100
x1
70
x2
50
x1 ,
x2 0
forme standard
max z
s.c. z 20x1 10x2
x1 + 2x2 + s1
x1 +
x2
+ s2
x1
+ s3
x2
+ s4
=0
= 120
= 100
= 70
= 50
N. Brauner
142
Programmation lin
eaire
Interpr
etation g
eom
etrique
Lalgorithme du simplexe
Lalgorithme du simplexe
Forme standard
max z
s.c. z 20x1 10x2
x1 + 2x2 + s1
x1 +
x2
+ s2
x1
+ s3
x2
+ s4
=0
= 120
= 100
= 70
= 50
Forme tableau
z
s1
s2
s3
s4
z x1
x2
1 20 10
0
1
2
0
1
1
0
1
0
0
0
1
s1
0
1
0
0
0
s2
0
0
1
0
0
s3
0
0
0
1
0
s4
0
0
0
0
1
0
120
100
70
50
N. Brauner
143
Programmation lin
eaire
Interpr
etation g
eom
etrique
Lalgorithme du simplexe
Lalgorithme du simplexe
Co
uts r
eduits
B, une base de Ax = b
la fonction objectif :
= cx = cB xB + cN xN
= cB B 1 b (cB B 1 N cN )xN
n
X
= z0
(cB B 1 aj cj )xj
j=1
n
X
= z0
(zj cj )xj
j=1
zj cj = cB B 1 aj cj est le co
ut reduit de la variable hors base xj
N. Brauner
144
Programmation lin
eaire
Interpr
etation g
eom
etrique
Lalgorithme du simplexe
Lalgorithme du simplexe
`a chaque iteration
z
xB
z
xN
1 co
uts reduits
0
..
..
.
.
0
xB
0
z0
Id
`a loptimum
z
xB
z
1
0
..
.
xN
+
xB
0
z0
..
Id
0
N. Brauner
145
Programmation lin
eaire
Interpr
etation g
eom
etrique
Lalgorithme du simplexe
Lalgorithme du simplexe
Principe heuristique : faire rentrer en base la variable avec le
coefficient le plus negatif x1
z
s1
s2
s3
s4
z
1
0
0
0
0
x1
x2
20 10
1
2
1
1
1
0
0
1
s1
0
1
0
0
0
s2
0
0
1
0
0
s3
0
0
0
1
0
s4
0
0
0
0
1
0
120
100
70
50
N. Brauner
146
Programmation lin
eaire
Interpr
etation g
eom
etrique
Lalgorithme du simplexe
Lalgorithme du simplexe
Principe du quotient minimal
colonne pivot x1 second membre 0 quotient
a1 0
b1
b2
a2 > 0
b2
a2
b3
a3 > 0
b3
a3
a4 = 0
b4
n
o
b
faire sortir s3
ligne r barr = min aii |ai > 0
z
s1
s2
s3
s4
z
1
0
0
0
0
x1
x2
20 10
1
2
1
1
1
0
0
1
s1
0
1
0
0
0
s2
0
0
1
0
0
s3
0
0
0
1
0
s4
0
0
0
0
1
0
120
100
70
50
N. Brauner
147
Programmation lin
eaire
Interpr
etation g
eom
etrique
Lalgorithme du simplexe
Lalgorithme du simplexe
exprimer la contrainte z avec les variables hors base x2 et s3
z 10x2 + 20s3 = 1400
diviser la ligne pivot par le coefficient de la variable entrante
x1 + s3 = 70
supprimer x1 des autres contraintes
2x2 + s1 s3 = 50
x2 + s2 s3 = 30
a
..
.
|
colonne
pivot
c
..
.
ligne pivot
= a a pb c
N. Brauner
148
Programmation lin
eaire
Interpr
etation g
eom
etrique
Lalgorithme du simplexe
Lalgorithme du simplexe
z
s1
s2
x1
s4
z
1
0
0
0
0
x1
0
0
0
1
0
x2
10
2
1
0
1
s1
0
1
0
0
0
s2
0
0
1
0
0
s3
20
1
1
1
0
s4
0
0
0
0
1
1400
50
30
70
50
N. Brauner
149
Programmation lin
eaire
Interpr
etation g
eom
etrique
Lalgorithme du simplexe
Lalgorithme du simplexe
z
s1
s2
x1
s4
z
x2
s2
x1
s4
z
1
0
0
0
0
z
1
0
0
0
0
x1
0
0
0
1
0
x1
0
0
0
1
0
x2
s1
10 0
2
1
1
0
0
0
1
0
x2
s1
0
5
1
1
2
0 12
0
0
0 12
s2
0
0
1
0
0
s2
0
0
1
0
0
s3
20
1
1
1
0
s3
15
21
12
1
1
2
s4
0
0
0
0
1
s4
0
0
0
0
1
1400
50
30
70
50
1650
25
5
70
25
N. Brauner
150
Programmation lin
eaire
Interpr
etation g
eom
etrique
Lalgorithme du simplexe
Lalgorithme du simplexe
Phase II
Donnees : un programme lineaire et une solution de base admissible
Resultat : une solution de base admissible optimale ou declarer
PL non borne
1
151
Programmation lin
eaire
Interpr
etation g
eom
etrique
Lalgorithme du simplexe
Lalgorithme du simplexe
Solution de base degeneree si une ou plusieurs variables de
base sont zeros (plus de bijection entre les solutions de base
admissibles et les points extremes
Si toutes les solutions de base sont admissibles sont non
degenerees, lalgorithme du simplexe termine apr`es un nombre
fini diterations
N. Brauner
152
Programmation lin
eaire
Interpr
etation g
eom
etrique
Lalgorithme du simplexe
Lalgorithme du simplexe
Phase I
Feuille de TD : Programmation lineaire, Resolution
Phase 1
N. Brauner
153
Dualite
N. Brauner
154
Illustration
economique
Ecrire
le dual
Propri
et
es
Plan
13
Illustration economique
14
15
Ecrire
le dual
16
Proprietes
N. Brauner
155
Illustration
economique
Ecrire
le dual
Propri
et
es
Dualite
En g
en
eral
contraintes :
variables :
Nouveau concept
Primal
Dual
donnees A, b, c
memes donnees A, b, c
minimiser
maximiser
N. Brauner
156
Illustration
economique
Ecrire
le dual
Propri
et
es
Plan
13
Illustration economique
14
15
Ecrire
le dual
16
Proprietes
N. Brauner
157
Illustration
economique
Ecrire
le dual
Propri
et
es
Plan
13
Illustration economique
14
15
Ecrire
le dual
16
Proprietes
N. Brauner
158
Illustration
economique
Ecrire
le dual
Propri
et
es
vitamine A
vitamine C
Prix par kg
1
1
0
35
produits (unites/kg)
2
3
4
5
0
2
2
1
1
3
1
3
30 60 50 27
6
2
2
22
demande
(unites)
9
19
But : minimiser le co
ut total
Modelisation
N. Brauner
159
Illustration
economique
Ecrire
le dual
Propri
et
es
N. Brauner
161
Illustration
economique
Ecrire
le dual
Propri
et
es
Modelisation matricielle
Probl`
eme primal
famille : acheter des produits alimentaires `a co
ut minimum et
satisfaire la demande en vitamine A et C
Modelisation sous forme matricielle
Probl`
eme dual
producteur de vitamines synthetiques : etre competitif vis-`a-vis des
produits alimentaires comme source de vitamine et maximiser le
profit de vente
Modelisation sous forme matricielle
N. Brauner
163
Illustration
economique
Ecrire
le dual
Propri
et
es
demande j
produit j
aij
cj
co
ut i
bi
Probl`
eme primal (demandeur de produit) : quelle quantite xi de
ressource i acheter pour satisfaire la demande `a co
ut minimum
min
bi xi
s.c.
aij xi cj
Probl`
eme dual (vendeur de produit) : `a quel prix proposer les
produits pour maximiser le profit tout en restant competitif
max
X
j
cj wj
s.c.
aij wj bi
j
N. Brauner
165
Illustration
economique
Ecrire
le dual
Propri
et
es
Plan
13
Illustration economique
14
15
Ecrire
le dual
16
Proprietes
N. Brauner
166
Illustration
economique
Ecrire
le dual
Propri
et
es
N. Brauner
167
Illustration
economique
Ecrire
le dual
Propri
et
es
y1 , y2 , y3
4x1 +
2x1 +
(4y1 + 2y2 )x1
5x2
x2
x2
+ (5y1 + y2 + y3 )x2
20
y1
6
y2
2
y3
20y1 + 6y2 + 2y3
0
Finalement,
min 20y1 + 6y2 + 2y3
s.c.
4y1
5y1
yi
+ 2y2
+ y2 +
y3
0
N. Brauner
170
Illustration
economique
Ecrire
le dual
Propri
et
es
Plan
13
Illustration economique
14
15
Ecrire
le dual
16
Proprietes
N. Brauner
171
Illustration
economique
Ecrire
le dual
Propri
et
es
(P)
(D)
min z = cx
s.c. Ax b
x 0
max v = wb
s.c. wA c
w 0
N. Brauner
172
Illustration
economique
Ecrire
le dual
Propri
et
es
max
dual
primal
contrainte
contrainte =
contrainte
variable 0
variable 0
variable 0
175
Illustration
economique
Ecrire
le dual
Propri
et
es
Ecrire
le dual
Ecrire
le programme dual
max z = 4x1 + 5x2 + 2x3
2x1 + 4x2
= 3
2x3 2
3x1 + x2 + x3 2
x2 + x3 1
x1 0 x2 0 x3 0
N. Brauner
176
Illustration
economique
Ecrire
le dual
Propri
et
es
Plan
13
Illustration economique
14
15
Ecrire
le dual
16
Proprietes
N. Brauner
177
Illustration
economique
Ecrire
le dual
Propri
et
es
Proprietes
Propriete
Le dual du dual est equivalent au primal
verifier sur un exemple
max z = 2x1 + 3x2 + 4x3
2x1 + x2
x3
3x1 + x2 + x3
x2
3
2
2
1
x1 , x2 , x3 0
N. Brauner
178
Illustration
economique
Ecrire
le dual
Propri
et
es
Proprietes
(P)
min z = cx
s.c. Ax b
x 0
(D)
max v = wb
s.c. wA c
w 0
N. Brauner
180
Illustration
economique
Ecrire
le dual
Propri
et
es
Et loptimalite ?
Certificat doptimalite
Si
z = cx = wb = v
pour des solutions admissibles x de (P) et w et (D), alors x et w
sont optimales
Theor`eme de dualite forte
Si (P) a des solutions et (D) a des solutions, alors
cx = w b
N. Brauner
181
Illustration
economique
Ecrire
le dual
Propri
et
es
N. Brauner
182
Illustration
economique
Ecrire
le dual
Propri
et
es
Propriete
Propriete des ecarts complementaires
Pour x optimale de (P) et w optimale de (D) alors
une contrainte de (P) est serree `a egalite
OU
la variable associee `a cette contrainte est nulle dans w
idem dans lautre sens
xj tj = 0 et si wi = 0
preuve
N. Brauner
184
Illustration
economique
Ecrire
le dual
Propri
et
es
N. Brauner
186
Illustration
economique
Ecrire
le dual
Propri
et
es
Ecarts
complementaires : pour trouver une solution optimale
du dual connaissant une solution optimale du primal
Dualite forte : garantit quune preuve doptimalite (utilisant la
dualite) est possible
N. Brauner
188
Probl`
emes classiques
Techniques de mod
elisation
Relaxation lin
eaire
Introduction
Programmation Lineaire (PL)
Variables de decision continues (reels)
Algorithme du Simplexe efficace
N. Brauner
190
Probl`
emes classiques
Techniques de mod
elisation
Relaxation lin
eaire
Introduction
Combinatoire
Structure discr`ete
Tr`es grand nombre de possibilites
N. Brauner
191
Probl`
emes classiques
Techniques de mod
elisation
Relaxation lin
eaire
Introduction
Probl`
eme doptimisation combinatoire
Un probl`eme doptimisation combinatoire typique
INSTANCE
Un ensemble dobjets 1, . . . , n, avec des poids ci
SOLUTIONS REALISABLES
Un ensemble F de parties de {1, . . . , n}
CRITERE
maximiser c(S) =
ci
iS
N. Brauner
192
Probl`
emes classiques
Techniques de mod
elisation
Relaxation lin
eaire
Plan
17
Probl`emes classiques
18
Techniques de modelisation
19
Relaxation lineaire
20
N. Brauner
193
Probl`
emes classiques
Techniques de mod
elisation
Relaxation lin
eaire
Plan
17
Probl`emes classiques
18
Techniques de modelisation
19
Relaxation lineaire
20
N. Brauner
194
Probl`
emes classiques
Techniques de mod
elisation
Relaxation lin
eaire
utilite
10
7
3
6
2
4
5
poids (g)
200
1500
1500
1200
500
800
700
N. Brauner
195
Probl`
emes classiques
Techniques de mod
elisation
Relaxation lin
eaire
N. Brauner
196
Probl`
emes classiques
Techniques de mod
elisation
Relaxation lin
eaire
Modelisation
INSTANCE :
SOLUTIONS :
SOLUTIONS REALISABLES :
CRITERE :
N. Brauner
197
Probl`
emes classiques
Techniques de mod
elisation
Relaxation lin
eaire
i N
N. Brauner
198
Probl`
emes classiques
Techniques de mod
elisation
Relaxation lin
eaire
un livre
un autre livre
un pull
des chaussettes
des chaussures
des assiettes
des verres
taille
2
2
3
1
2
5
6
199
Probl`
emes classiques
Techniques de mod
elisation
Relaxation lin
eaire
N. Brauner
200
Probl`
emes classiques
Techniques de mod
elisation
Relaxation lin
eaire
Alice
10
1
1
0
1
0
Babar
4
1
0
1
0
1
Casimir
5
1
1
1
0
0
Donald
6
0
1
1
0
0
Elmer
7
0
0
0
1
1
N. Brauner
201
Probl`
emes classiques
Techniques de mod
elisation
Relaxation lin
eaire
N. Brauner
202
Probl`
emes classiques
Techniques de mod
elisation
Relaxation lin
eaire
N. Brauner
203
Probl`
emes classiques
Techniques de mod
elisation
Relaxation lin
eaire
N. Brauner
204
Probl`
emes classiques
Techniques de mod
elisation
Relaxation lin
eaire
N. Brauner
205
Probl`
emes classiques
Techniques de mod
elisation
Relaxation lin
eaire
Plan
17
Probl`emes classiques
18
Techniques de modelisation
19
Relaxation lineaire
20
N. Brauner
206
Probl`
emes classiques
Techniques de mod
elisation
Relaxation lin
eaire
N. Brauner
207
Probl`
emes classiques
Techniques de mod
elisation
Relaxation lin
eaire
min fy + cx
x My
y {0, 1}
o`
u M est une constante x
N. Brauner
208
Probl`
emes classiques
Techniques de mod
elisation
Relaxation lin
eaire
yi = 1
i=1
k
X
pi yi
x=
i=1
yi {0, 1} pour i = 1, 2 . . . k
N. Brauner
209
Probl`
emes classiques
Techniques de mod
elisation
Relaxation lin
eaire
x My
x Ky
o`
u M est une constante plus grande que x
y {0, 1}
Implication logique : x = 1 y = 1
avec x et y deux variables booleennes {0, 1}
x y
OU logique : x ou y doit etre `a Vrai
avec x et y deux variables booleennes {0, 1}
x +y 1
N. Brauner
210
Probl`
emes classiques
Techniques de mod
elisation
Relaxation lin
eaire
ti + di tj + M(1 yij )
t + dj ti + Myij
j
yij {0, 1}
N. Brauner
211
Probl`
emes classiques
Techniques de mod
elisation
Relaxation lin
eaire
y
x
x
x0
+ x0 1 y
{0, 1}
N. Brauner
212
Probl`
emes classiques
Techniques de mod
elisation
Relaxation lin
eaire
Plan
17
Probl`emes classiques
18
Techniques de modelisation
19
Relaxation lineaire
20
N. Brauner
213
Probl`
emes classiques
Techniques de mod
elisation
Relaxation lin
eaire
Formulation
Probl`eme combinatoire `a resoudre
max{cx | x X } avec X Zn
Une modelisation du probl`eme en PLNE
definit un poly`edre P = {x Rn | Ax b}
Definition
Un PLNE est une formulation de X ssi X = P Zn
N. Brauner
214
Probl`
emes classiques
Techniques de mod
elisation
Relaxation lin
eaire
Illustration graphique
N. Brauner
215
Probl`
emes classiques
Techniques de mod
elisation
Relaxation lin
eaire
Illustration graphique
N. Brauner
216
Probl`
emes classiques
Techniques de mod
elisation
Relaxation lin
eaire
Relaxation Lineaire
Pour resoudre un PLNE
une idee simple est doublier que les variables sont enti`eres
on recherche alors loptimum du PL sur le poly`edre P
on peut utiliser lalgorithme du simplexe
Definition
La relaxation lineaire dune formulation en PLNE est le PL
max{cx | Ax b , x Rn }
Lien entre loptimum du PL et loptimum du PLNE ?
N. Brauner
217
Probl`
emes classiques
Techniques de mod
elisation
Relaxation lin
eaire
N. Brauner
218
Probl`
emes classiques
Techniques de mod
elisation
Relaxation lin
eaire
Exemple I
max z = 4x1
s.c.
+ x2 36
+ 4x2 22
7x1
x1
x1 , x2
x2
entiers
N. Brauner
219
Probl`
emes classiques
Techniques de mod
elisation
Relaxation lin
eaire
Exemple II
Stable maximum
Ensemble S de sommets
dun graphe
F
B
2 `a 2 non adjacent
220
Probl`
emes classiques
Techniques de mod
elisation
Relaxation lin
eaire
Exemple III
min z = x1
s.c.
x1 17x2 = 3
x1 11x3 = 4
x1 6x4 = 5
x1 , x2 , x3 , x4 0
1
entiers
N. Brauner
221
Probl`
emes classiques
Techniques de mod
elisation
Relaxation lin
eaire
zIP
= max{cx | Ax b , x Zn }
La relaxation lineaire
zL = max{cx | Ax b , x Rn }
verifie
1
2
z
zIP
L
N. Brauner
222
Probl`
emes classiques
Techniques de mod
elisation
Relaxation lin
eaire
Plan
17
Probl`emes classiques
18
Techniques de modelisation
19
Relaxation lineaire
20
N. Brauner
223
Probl`
emes classiques
Techniques de mod
elisation
Relaxation lin
eaire
Methodes enumeratives
Nombre fini de solutions
F = {S1 , S2 , . . . , SN }
- Parcourir toutes les solutions
- Pour chaque S F,
evaluer c(S)
- Retenir la meilleure solution
Probl`eme
Le nombre de solutions potentielles est fini mais gigantesque
Esperance de vie du soleil ' 5 milliards dannees < 258 secondes
N. Brauner
224
Probl`
emes classiques
Techniques de mod
elisation
Relaxation lin
eaire
Enum
eration implicite : eliminer a priori des solutions
Detecter que des solutions sont mauvaises ou irrealisables
sans les evaluer explicitement.
N. Brauner
225
Probl`
emes classiques
Techniques de mod
elisation
Relaxation lin
eaire
X1
X2
z*1
z*2
N. Brauner
226
Probl`
emes classiques
Techniques de mod
elisation
Relaxation lin
eaire
X1
X2
z*1
>
z*2
N. Brauner
227
Probl`
emes classiques
Techniques de mod
elisation
Relaxation lin
eaire
Borne superieure
Comment determiner quil est inutile dexplorer X2 sans
calculer z2 ?
Estimation [par exc`es] de la valeur de z2
Definition
Une fonction des instances dans R est une borne superieure ssi elle
est superieure `a la valeur optimum pour chaque instance.
Pour un PLNE, une borne superieure est donnee par
sa relaxation lineaire
N. Brauner
228
Probl`
emes classiques
Techniques de mod
elisation
Relaxation lin
eaire
Enum
eration arborescente implicite
Pour resoudre z = max{cx | x X }
On decoupe lensemble des solutions X
Sur chaque Y X , on calcule une borne superieure B(Y ) de
loptimum z (Y ).
Si B(Y ) `a la meilleure solution trouvee, alors on elague Y
Sinon on decoupe recursivement Y
N. Brauner
229
Probl`
emes classiques
Techniques de mod
elisation
Relaxation lin
eaire
Dcoupage
du problme
x*
N. Brauner
230
Probl`
emes classiques
Techniques de mod
elisation
Relaxation lin
eaire
P1
x*
X
P2
N. Brauner
231
Probl`
emes classiques
Techniques de mod
elisation
Relaxation lin
eaire
P1
P3
P4
X
P2
N. Brauner
232
Probl`
emes classiques
Techniques de mod
elisation
Relaxation lin
eaire
P1
P3
P4
N. Brauner
233
Probl`
emes classiques
Techniques de mod
elisation
Relaxation lin
eaire
P6
P5
P3
P4
N. Brauner
234
Probl`
emes classiques
Techniques de mod
elisation
Relaxation lin
eaire
P6
P5
P3
P4
N. Brauner
235
Probl`
emes classiques
Techniques de mod
elisation
Relaxation lin
eaire
236
Probl`
emes classiques
Techniques de mod
elisation
Relaxation lin
eaire
5x1 + 7x2 35
4x1 + 9x2 36
x1 , x2 0 entiers
faire le dessin
z = 14,47
x1 = 3,71
x2 = 2,35
x2 3
x2 2
z = 13,5
z = 14,4
x1 = 2,25
x1 = 4,2
x2 = 3
x1 3
x2 = 2
x1 2
Pas de
sol
ralisable
x2 4
x1 5
x1 4
z = 13,33
z = 14,29
z = 14
x1 = 2
x1 = 5
x1 = 4
x2 = 3,11
x2 = 1,43
x2 3
x2 = 2
x2 2
x2 1
z = 12
z = 13
z = 14,2
x1 = 0
x1 = 2
x1 = 5,6
x2 = 4
x2 = 3
x2 = 1
x1 5
Pas de
sol
ralisable
x1 6
z = 13
z = 14,14
x1 = 5
x1 = 6
x2 = 1
x2 = 0,71
x2 1
x2 0
z = 14
Pas de
sol
ralisable
x1 = 7
x2 = 0
N. Brauner
237
Application
Approvisionnement des stations service
Une compagnie petroli`ere souhaite determiner les emplacements
possibles pour ses dep
ots (destines `a fournir ses stations
service). Les stations service sont au nombre de n et on a m
depot. On a un seul produit.
cij : co
ut unitaire de transport entre un dep
ot i et la station
service j
fi : co
ut fixe douverture du dep
ot i
si : capacite du dep
ot i
dj : demande de la station service j (peut etre satisfaite par
plusieurs depots)
Formulez un programme lineaire qui permet de minimiser les
co
uts tout en respectant les contraintes.
N. Brauner
238
Application
M
elange de maximum 4 charbons (exo de D. de Wolf)
On melange des charbons dans un haut fourneau o`
u ensuite, une
reaction `a haute temperature produit le coke. Il y a 8 charbons
disponibles. Ces charbons sont entres par des bandes porteuses
qui sont au nombre de 4 (au maximum 4 charbons differents
dans le melange). Si un charbon est dans le melange, il doit
letre `a hauteur de minimum 5%. On exige que la teneur du
melange en Silicium soit dau plus 1,8 %. Le tableau suivant
reprend les prix et teneur en Si des charbons.
Charbon
Prix Teneur Si
Charbon
Prix Teneur Si
Charbon 1 12
2%
Charbon 5 13
1%
Charbon 2 14
2,5 %
Charbon 6
9
5%
Charbon 3 17
1%
Charbon 7 15
2%
Charbon 4 10
5%
Charbon 8 11
1,5 %
On veut determiner un melange qui est de co
ut minimum.
N. Brauner
239
Application
Dimensionnement de lots (DLS)
Une demande journali`ere dt sur un horizon T
Co
ut de production pt (x) = ft + at x
Co
ut de stockage unitaire ht (par jour par unite)
Quel plan de production choisir pour minimiser les co
uts ?
N. Brauner
240
Application
Dimensionnement de lots (DLS)
demande
production
stock
N. Brauner
241
Application
Dimensionnement de lots (DLS)
Une demande journali`ere dt sur un horizon T
Co
ut de production pt (x) = ft + at x
Co
ut de stockage unitaire ht (par jour par unite)
Quel plan de production choisir pour minimiser les co
uts ?
N. Brauner
242
Application
Dimensionnement de lots (DLS)
Modelisation du co
ut de production, non lineaire
p(x) = f + ax
f
Variables de decision
yt {0, 1} indicatrice des instants de production
yt 1 ssi xt > 0, et 0 sinon
Comment traduire le lien entre y et x ?
N. Brauner
243
N. Brauner
244
Plan
N. Brauner
245
AMPL
A faire
N. Brauner
246
N. Brauner
247
Pr
esentation des outils
Mod`
eles
Lenvironnement
Donn
ees
Application
Plan
21
22
Mod`eles
23
Lenvironnement
24
Donnees
25
Application
N. Brauner
248
Pr
esentation des outils
Mod`
eles
Lenvironnement
Donn
ees
Application
Plan
21
22
Mod`eles
23
Lenvironnement
24
Donnees
25
Application
N. Brauner
249
Pr
esentation des outils
Mod`
eles
Lenvironnement
Donn
ees
Application
Modeleur et solveur
output
mod`ele
dvar a[] ;
...
donnees
brutes
(BD, GUI. . . )
(BD, GUI
tableur)
6
a[]
modeleur
A
A
6
x, cx
min cx
s.c. Ax = b
l x u
c, A, b solveur
l, u
250
Pr
esentation des outils
Mod`
eles
Lenvironnement
Donn
ees
Application
N. Brauner
251
Pr
esentation des outils
Mod`
eles
Lenvironnement
Donn
ees
Application
Lenvironnement de developpement
IDE : Integrated Development Environment
Organiser des projets
Saisir des donnees et des mod`eles OPL
Visualiser les donnees et les solutions
Controler loptimisation
+ outils pour le debuggage et aide en ligne
N. Brauner
252
Pr
esentation des outils
Mod`
eles
Lenvironnement
Donn
ees
Application
Ecrire
code dans langage prefere pour
generer dynamiquement le fichier de donnees
lire le mod`ele et les donnees
resoudre le probl`eme
recuperer la solution
N. Brauner
253
Pr
esentation des outils
Mod`
eles
Lenvironnement
Donn
ees
Application
Plan
21
22
Mod`eles
23
Lenvironnement
24
Donnees
25
Application
N. Brauner
254
Pr
esentation des outils
Mod`
eles
Lenvironnement
Donn
ees
Application
max 3xr
s.c. xr
3xr
xr ,
5xf
4
2xf 12
+ 2xf 18
xf 0
N. Brauner
255
Pr
esentation des outils
Mod`
eles
Lenvironnement
Donn
ees
Application
5xf
4
2xf 12
+ 2xf 18
xf 0
dvar float+ xr ;
La fonction objectif
Les contraintes
subject to {
CSucre
: 3*xr + 2*xf <= 18;
}
N. Brauner
256
Pr
esentation des outils
Mod`
eles
Lenvironnement
Donn
ees
Application
Commentaires en vert
Mots cles en bleu
N. Brauner
257
Pr
esentation des outils
Mod`
eles
Lenvironnement
Donn
ees
Application
Problem Browser
Console
N. Brauner
258
Pr
esentation des outils
Mod`
eles
Lenvironnement
Donn
ees
Application
Plan
21
22
Mod`eles
23
Lenvironnement
24
Donnees
25
Application
N. Brauner
259
Pr
esentation des outils
Mod`
eles
Lenvironnement
Donn
ees
Application
Lenvironnement
Output
Issues
Console
Solutions
Conflicts and Relaxations
Engine Log
Engine Statistics
Profiler
N. Brauner
260
Pr
esentation des outils
Mod`
eles
Lenvironnement
Donn
ees
Application
Lenvironnement
Barres doutils
Model Outline
Projets (configurations)
N. Brauner
261
Pr
esentation des outils
Mod`
eles
Lenvironnement
Donn
ees
Application
Laide
Menu Aide
Sommaire de laide
N. Brauner
262
Pr
esentation des outils
Mod`
eles
Lenvironnement
Donn
ees
Application
Plan
21
22
Mod`eles
23
Lenvironnement
24
Donnees
25
Application
N. Brauner
263
Pr
esentation des outils
Mod`
eles
Lenvironnement
Donn
ees
Application
{string} Produits =
{"rhubarbe", "fraise", "sucre"} ;
{string} Pots =
{"ConfRhubarbe", "ConfFraise"};
int Profit[Pots] = [3, 5];
int Besoin[Pots][Produits] =
[[1, 0, 3],[0, 2, 2]] ;
int Dispo[Produits] = [4, 12, 18] ;
N. Brauner
264
Pr
esentation des outils
Mod`
eles
Lenvironnement
Donn
ees
Application
N. Brauner
265
Pr
esentation des outils
Mod`
eles
Lenvironnement
Donn
ees
Application
266
Pr
esentation des outils
Mod`
eles
Lenvironnement
Donn
ees
Application
N. Brauner
267
Pr
esentation des outils
Mod`
eles
Lenvironnement
Donn
ees
Application
Debuggage
Outils de debuggage des mod`eles :
Decrire des contraintes avec donnees
Tracer lexecution
Utiliser le graphique de Engine Statistics
Mettre en pause pour voir solution courante
N. Brauner
268
Pr
esentation des outils
Mod`
eles
Lenvironnement
Donn
ees
Application
Plan
21
22
Mod`eles
23
Lenvironnement
24
Donnees
25
Application
N. Brauner
269
Pr
esentation des outils
Mod`
eles
Lenvironnement
Donn
ees
Application
270
Pr
esentation des outils
Mod`
eles
Lenvironnement
Donn
ees
Application
N. Brauner
271
Pr
esentation des outils
Mod`
eles
Lenvironnement
Donn
ees
Application
272
Pr
esentation des outils
Mod`
eles
Lenvironnement
Donn
ees
Application
Produit A
Produit B
Stock A
Stock B
Heures supp
Mars
500
200
Avril
500
2857,14
0
2057,14
0
Mai
3000
1214,29
0
2771,43
10
Juin
5400
428,671
400
200
75
N. Brauner
273
Pr
esentation des outils
Mod`
eles
Lenvironnement
Donn
ees
Application
Produit A
Produit B
Stock A
Stock B
Heures supp
Heures supp ent
Mars
500
200
Avril
500
2858
0
2058
0.06
1
Mai
3000
1214
0
2772
9.98
10
Juin
5400
428
400
200
74.96
75
N. Brauner
274
Pr
esentation des outils
Mod`
eles
Lenvironnement
Donn
ees
Application
N. Brauner
275
Pr
esentation des outils
Mod`
eles
Lenvironnement
Donn
ees
Application
N. Brauner
276
Formulations et coupes
Formulation
In
egalit
e valide
Algorithme de plan s
ecant
Plan
26
Formulation
27
Inegalite valide
28
N. Brauner
278
Formulation
In
egalit
e valide
Algorithme de plan s
ecant
Plan
26
Formulation
27
Inegalite valide
28
N. Brauner
279
Formulation
In
egalit
e valide
Algorithme de plan s
ecant
P
Pj xij = 1
i hi xij Hyj
yj , xij {0, 1}
i N
j N
i, j N
N. Brauner
280
Formulation
In
egalit
e valide
Algorithme de plan s
ecant
Enorm
ement de symetries sont presentes
Si loptimum utilise 3 botes, autant prendre les 3 premi`eres !
Quelle contrainte ajouter ?
N. Brauner
281
Formulation
In
egalit
e valide
Algorithme de plan s
ecant
N. Brauner
282
Formulation
In
egalit
e valide
Algorithme de plan s
ecant
10
Formulation II
(Cuts off)
Formulation I
(Cuts on)
temps
nuds
temps
nuds
temps
nuds
> 3h
> 35 millions
129s
500000
3s
2000
N. Brauner
283
Formulation
In
egalit
e valide
Algorithme de plan s
ecant
N. Brauner
284
Formulation
In
egalit
e valide
Algorithme de plan s
ecant
Illustration graphique
N. Brauner
285
Formulation
In
egalit
e valide
Algorithme de plan s
ecant
Illustration graphique
N. Brauner
286
Formulation
In
egalit
e valide
Algorithme de plan s
ecant
Formulation Ideale
Une formulation P est
meilleure que P 0 si P P 0
La formulation ideale est la
formulation la plus proche
de X
Cest lenveloppe convexe
conv (X )
conv(X)
N. Brauner
287
Formulation
In
egalit
e valide
Algorithme de plan s
ecant
Formulation Ideale
Propriete
max{cx | x X } = max{cy | y conv (X )}
A gauche, un probl`eme combinatoire (discret)
A droite, un Programme Lineaire (continu)
Si lon a une formulation qui decrit conv (X )
la relaxation lineaire resout le probl`eme `a loptimum pour tout
objectif lineaire
N. Brauner
288
Formulation
In
egalit
e valide
Algorithme de plan s
ecant
Moralite
Dans une formulation en PLNE, il ne faut pas etre econome
de ses contraintes !
Ameliore les bornes des relaxations lineaires
Diminue le nombre de nuds visites
Lideal etant que la relaxation donne directement une solution
enti`ere sans brancher
Existe-t-il des m
ethodes pour trouver des contraintes qui
am
eliorent la formulation ?
Peut-on d
ecrire conv (X ) ?
N. Brauner
289
Formulation
In
egalit
e valide
Algorithme de plan s
ecant
Plan
26
Formulation
27
Inegalite valide
28
N. Brauner
290
Formulation
In
egalit
e valide
Algorithme de plan s
ecant
Inegalite valide
Probl`eme combinatoire `a resoudre
max{cx | x X } avec X Z n
Definition
Une inegalite valide est une inegalite x 0 verifiee par tous les
points de X
N. Brauner
291
Formulation
In
egalit
e valide
Algorithme de plan s
ecant
Une remarque
Si on a une inegalite valide
y b
y une variable enti`ere, b un reel. Alors
y bbc
est aussi une inegalite valide
Cette remarque permet de generer bien des coupes !
N. Brauner
292
Formulation
In
egalit
e valide
Algorithme de plan s
ecant
Coupes de Chvatal-Gomory
Programme lineaire max{cx | Ax b, x entier}. Pour une ligne i
de la matrice on a
X
aij xj bi
i
aij xj bi
293
Formulation
In
egalit
e valide
Algorithme de plan s
ecant
Exemple
Probl`eme `a 2 variables x et
y enti`eres
Formulation
5/4
3x + 4y 5
Objectif max 9x + 10y
P
X
5/3
N. Brauner
294
Formulation
In
egalit
e valide
Algorithme de plan s
ecant
Ajouts de coupes
Il existe de nombreuses familles de coupes dans la litterature
(Flow Cover, Mixed Integer Rounding, . . .)
Leur ajout renforce la formulation
Mais
Si le probl`eme est difficile, decrire conv (X ) demande un
nombre exponentiel de contraintes !
Que faire si une bonne formulation n
ecessite trop de
coupes ?
N. Brauner
295
Formulation
In
egalit
e valide
Algorithme de plan s
ecant
Plan
26
Formulation
27
Inegalite valide
28
N. Brauner
296
Formulation
In
egalit
e valide
Algorithme de plan s
ecant
Problematique
Formulation initiale
P = {x R n | Ax b}
Famille F de coupes
On veut ameliorer la formulation
pour decrire conv (X )
N. Brauner
297
Formulation
In
egalit
e valide
Algorithme de plan s
ecant
Idee
rajouter les inegalites valides uniquement dans la region de
loptimum
N. Brauner
298
Formulation
In
egalit
e valide
Algorithme de plan s
ecant
Algorithme de Separation
Evidemment on ne sait pas o`
u est
loptimum
On connat loptimum x de la
relaxation lineaire
Separation : Trouver une inegalite
valide x 0 de F coupant x :
x > 0
x*
X
N. Brauner
299
Formulation
In
egalit
e valide
Algorithme de plan s
ecant
x*
x*
X
N. Brauner
300
Formulation
In
egalit
e valide
Algorithme de plan s
ecant
PROGRAMMATION LINEAIRE
Resoudre la formulation P
optimum x*
Alors
Si x* est entier
Optimum sur X
FIN
Sinon
ALGORITHME DE SEPARATION
Trouver une inegalite
valide v violee par x*
Ajouter v a P
N. Brauner
301
Formulation
In
egalit
e valide
Algorithme de plan s
ecant
Terminaison de lalgorithme
Un algorithme de Plan Secant termine
Soit en trouvant une solution enti`ere : optimum sur X
Soit en cas dechec de lalgorithme de separation
Aucune inegalite valide de F nest violee par x
Pour achever la resolution `a loptimum :
Utiliser un algorithme de Branch & Bound standard sur la
formulation obtenue
N. Brauner
302
Formulation
In
egalit
e valide
Algorithme de plan s
ecant
x*
X
N. Brauner
303
Formulation
In
egalit
e valide
Algorithme de plan s
ecant
N. Brauner
304
Formulation
In
egalit
e valide
Algorithme de plan s
ecant
N. Brauner
305
Formulation
In
egalit
e valide
Algorithme de plan s
ecant
demande
production
stock
N. Brauner
306
Formulation
In
egalit
e valide
Algorithme de plan s
ecant
N. Brauner
307
Formulation
In
egalit
e valide
Algorithme de plan s
ecant
Variables de decision
yt {0, 1} indicatrice des instants de production
yt 1 ssi xt > 0, et 0 sinon
Comment traduire le lien entre y et x ?
N. Brauner
308
Formulation
In
egalit
e valide
Algorithme de plan s
ecant
xt + It = dt + It+1 t = 1, . . . , T 1
xT + IT = dT
x Dt yt
t = 1, . . . , T
t
yt {0, 1}
t = 1, . . . , T
N. Brauner
309
Formulation
In
egalit
e valide
Algorithme de plan s
ecant
N. Brauner
310
Formulation
In
egalit
e valide
Algorithme de plan s
ecant
Formulation UFL
Formulation moins naturelle
Variables de decision
yt {0, 1} indicatrice des instants de production
xuv fraction de la demande de v produite le jour u
Contraintes ?
N. Brauner
311
Formulation
In
egalit
e valide
Algorithme de plan s
ecant
N. Brauner
312
Formulation
In
egalit
e valide
Algorithme de plan s
ecant
Formulation UFL
Avec la formulation UFL
OPL resout sans faire de Branch & Bound !
la relaxation lineaire donne directement loptimum entier
Si on active les coupes Flow cover
OPL resout la formulation AGG en explorant seulement 5
nuds !
Que se passe-t-il ?
N. Brauner
313
Formulation
In
egalit
e valide
Algorithme de plan s
ecant
Conclusion
Lalgorithme de Branch & Bound peu etre inefficace
Il est primordial davoir une bonne formulation
Reformulation a priori, formulation etendue
Algorithme de Plan Secant
Algorithme de Branch & Bound
N. Brauner
314
Programmation dynamique
Optimisation Combinatoire
Principe de Sous-optimalit
e
Programmation Dynamique
Dominances
Plan
29
Optimisation Combinatoire
30
Principe de Sous-optimalite
31
Programmation Dynamique
32
Dominances
N. Brauner
316
Optimisation Combinatoire
Principe de Sous-optimalit
e
Programmation Dynamique
Dominances
Plan
29
Optimisation Combinatoire
30
Principe de Sous-optimalite
31
Programmation Dynamique
32
Dominances
N. Brauner
317
Optimisation Combinatoire
Principe de Sous-optimalit
e
Programmation Dynamique
Dominances
Combinatoire
Structure discr`ete
Tr`es grand nombre de possibilites
N. Brauner
318
Optimisation Combinatoire
Principe de Sous-optimalit
e
Programmation Dynamique
Dominances
Probl`emes combinatoires
Definition
Un probl`eme doptimisation se definit par
INSTANCE : decrit les donnees dentree
SOLUTIONS REALISABLES : decrit lensemble F des
solutions admissibles
CRITERE `a optimiser. Mesure c sur les solutions realisables
Definition generique : une infinite dinstances
On recherche une methode (algorithme) capable de fournir
pour chaque instance I :
une solution optimale S
ou la valeur OPT (I ) du crit`ere `a loptimum
OPT (I ) = c(S ) = max{c(S)|S F}
N. Brauner
319
Optimisation Combinatoire
Principe de Sous-optimalit
e
Programmation Dynamique
Dominances
Probl`emes combinatoires
Un probl`eme doptimisation combinatoire typique
INSTANCE : Un ensemble dobjets 1, . . . , n, avec des poids ci
SOLUTIONS REALISABLES : Un ensemble F de parties de
{1, . . . , n}
CRITERE maximiser
c(S) =
ci
iS
N. Brauner
320
Optimisation Combinatoire
Principe de Sous-optimalit
e
Programmation Dynamique
Dominances
Le sac `a dos
Un randonneur veut remplir son sac de capacite 4kg avec les
objets les plus utiles
objets
carte
gourde
2`eme gourde
pull
Kway
tomme
fruits secs
utilite
10
7
3
6
2
4
5
poids (g)
200
1500
1500
1200
500
800
700
N. Brauner
321
Optimisation Combinatoire
Principe de Sous-optimalit
e
Programmation Dynamique
Dominances
Le Sac `a dos
Probl`eme doptimisation classique
Utiliser au mieux une capacite
Choix dun portefeuille
dinvestissement
Apparat dans des probl`emes plus
complexes
Modelisation
INSTANCE :
SOLUTIONS REALISABLES :
CRITERE :
N. Brauner
322
Optimisation Combinatoire
Principe de Sous-optimalit
e
Programmation Dynamique
Dominances
Methodes enumeratives
Nombre fini de solutions
F = {S1 , S2 , . . . , SN }
- Parcourir toutes les solutions
- Pour chaque S F,
evaluer c(S)
- Retenir la meilleure solution
Probl`eme
Le nombre de solutions potentielles est fini mais gigantesque
Esperance de vie du soleil ' 5 milliards dannees < 258 secondes
N. Brauner
323
Optimisation Combinatoire
Principe de Sous-optimalit
e
Programmation Dynamique
Dominances
N. Brauner
324
Optimisation Combinatoire
Principe de Sous-optimalit
e
Programmation Dynamique
Dominances
Plan
29
Optimisation Combinatoire
30
Principe de Sous-optimalite
31
Programmation Dynamique
32
Dominances
N. Brauner
325
Optimisation Combinatoire
Principe de Sous-optimalit
e
Programmation Dynamique
Dominances
Principe de sous-optimalite
On veut resoudre un probl`eme P sur une instance I
Structure specifique de P
Les morceaux dune solution optimale sont optimaux
P
P1
P2
N. Brauner
326
Optimisation Combinatoire
Principe de Sous-optimalit
e
Programmation Dynamique
Dominances
Principe de sous-optimalite
Principe de sous-optimalite
Loptimum sur une instance I peut se construire `a partir de
solutions optimales sur des instances plus simples I1 , . . . , Ik
OPT (I ) = f (OPT (I1 ), . . . , OPT (Ik ))
On a une formulation recursive de OPT (I )
Il suffit de calculer loptimum pour OPT (I1 ), . . . , OPT (Ik )
puis dappliquer f
Chaque OPT (Ij ) sexprime `a son tour en fonction dinstances
plus simples
Jusqu`a obtenir une instance de base I directement calculable
N. Brauner
327
Optimisation Combinatoire
Principe de Sous-optimalit
e
Programmation Dynamique
Dominances
N. Brauner
328
Optimisation Combinatoire
Principe de Sous-optimalit
e
Programmation Dynamique
Dominances
Decomposition en sous-probl`emes
Instance I `a resoudre
Partition des solutions selon lobjet n
F 0 = {S F|n
/ S} ne contenant pas n
00
F = {S F|n S} contenant n
On a OPT (I ) = max{c(S 0 ), c(S 00 )}
N. Brauner
329
Optimisation Combinatoire
Principe de Sous-optimalit
e
Programmation Dynamique
Dominances
Decomposition en sous-probl`emes
330
Optimisation Combinatoire
Principe de Sous-optimalit
e
Programmation Dynamique
Dominances
Decomposition en sous-probl`emes
331
Optimisation Combinatoire
Principe de Sous-optimalit
e
Programmation Dynamique
Dominances
Sac `a dos
` dos
Sac a
Instance: n objets de poids wi et dutilite ui , un sac de taille
W.
Solution: sous-ensemble S dobjets tel que w (S) W .
Critere: lutilite totale u(S) des objets
N. Brauner
332
Optimisation Combinatoire
Principe de Sous-optimalit
e
Programmation Dynamique
Dominances
Parametrisation
Principe de sous-optimalite : les probl`emes qui apparaissent dans la
decomposition correspondent au probl`eme initial sur des instances
plus simples
Instance I 0 pour un sous-probl`eme
I 0 diff`ere de I par certains param`etres (entiers) p1 , . . . , pl
Pour le Sac `a dos : les objets consideres et la taille du sac
On decrit I 0 par la valeur de ses param`etres (x10 , . . . , xl0 )
Definition
On appelle etat le vecteur de param`etres (x1 , . . . , xl ) decrivant une
sous-instance.
N. Brauner
333
Optimisation Combinatoire
Principe de Sous-optimalit
e
Programmation Dynamique
Dominances
Graphe dEtat
Vecteur de param`etres (x1 , . . . , xl ) : etat
Dependance entre les instances (calcul de f )
parametre 2
I
3
2
1
0
0
parametre 1
N. Brauner
334
Optimisation Combinatoire
Principe de Sous-optimalit
e
Programmation Dynamique
Dominances
Plan
29
Optimisation Combinatoire
30
Principe de Sous-optimalite
31
Programmation Dynamique
32
Dominances
N. Brauner
335
Optimisation Combinatoire
Principe de Sous-optimalit
e
Programmation Dynamique
Dominances
Programmation Dynamique
` dos
Sac a
Instance: n objets de poids wi et dutilite ui , un sac de taille
W.
Solution: sous-ensemble S dobjets tel que w (S) W .
Critere: lutilite totale u(S) des objets
N. Brauner
336
Optimisation Combinatoire
Principe de Sous-optimalit
e
Programmation Dynamique
Dominances
Programmation Dynamique
Un etat peut etre calcule un tr`es grand nombre de fois
Idee : on derecursive
On memorise les etats au lieu de les recalculer
Il suffit de parcourir les etats dans un ordre topologique
inverse du graphe detat
Evaluer les
etats de base OPT [0, . . . , 0].
Parcourir les
etats jusqu`
a X
Pour chaque
etat X , dependant de
X1 , . . . , Xk dej`a evalues, m
emoriser
OPT [X ] = f (OPT [X1 ], . . . , OPT [Xk ))
]
Retourner OPT [X
N. Brauner
337
Optimisation Combinatoire
Principe de Sous-optimalit
e
Programmation Dynamique
Dominances
Sac `a dos
Sac `a dos de taille 7, avec 4 objets
valeurs des objets 2
poids des objets
4
3
5
4
6
5
N. Brauner
338
Optimisation Combinatoire
Principe de Sous-optimalit
e
Programmation Dynamique
Dominances
Efficacite
Quel est le temps de resolution ?
Depend
du nombre detats
du temps t pour evaluer la fonction f en chaque etat.
t(x1 , . . . , xl )
N. Brauner
339
Optimisation Combinatoire
Principe de Sous-optimalit
e
Programmation Dynamique
Dominances
Sac `a dos
Temps de resolution du sac `a dos
Quel est le temps pour evaluer un etat (i, w ) ?
Quel est le nombre detats ?
N. Brauner
340
Optimisation Combinatoire
Principe de Sous-optimalit
e
Programmation Dynamique
Dominances
N. Brauner
341
Optimisation Combinatoire
Principe de Sous-optimalit
e
Programmation Dynamique
Dominances
Plan
29
Optimisation Combinatoire
30
Principe de Sous-optimalite
31
Programmation Dynamique
32
Dominances
N. Brauner
342
Optimisation Combinatoire
Principe de Sous-optimalit
e
Programmation Dynamique
Dominances
Dimensionnement de lots
Une demande journali`ere dt sur un horizon T
Co
ut de production pt (x) = ft + at x
Co
ut de stockage unitaire ht (par jour par unite)
Quel plan de production choisir pour minimiser les co
uts ?
Comment decrire une solution ?
N. Brauner
343
Optimisation Combinatoire
Principe de Sous-optimalit
e
Programmation Dynamique
Dominances
Dimensionnement de lots
demande
production
stock
N. Brauner
344
Optimisation Combinatoire
Principe de Sous-optimalit
e
Programmation Dynamique
Dominances
Principe de sous-optimalite
Comment exprimer un principe de sous-optimalite ?
Quels param`etres sont necessaires ?
Quel est le temps de resolution ?
N. Brauner
345
Optimisation Combinatoire
Principe de Sous-optimalit
e
Programmation Dynamique
Dominances
Dominance
Definition (Dominance)
Une dominance est une propriete D verifiee par au moins une
solution optimale.
Proprit D
Solutions
ralisables
Solutions
optimales
N. Brauner
346
Optimisation Combinatoire
Principe de Sous-optimalit
e
Programmation Dynamique
Dominances
Dimensionnement de lots
Politiques ZIO
Une politique ZIO consiste `a ne produire que si le stock est vide
si It > 0, alors xt = 0
Si pour chaque instant at + ht at+1 , alors les politiques ZIO sont
dominantes
Argument dechange
On consid`ere un planning (optimal) qui ne verifie pas la
dominance
On montre quon peut le modifier en preservant lobjectif
N. Brauner
347
Optimisation Combinatoire
Principe de Sous-optimalit
e
Programmation Dynamique
Dominances
N. Brauner
348
Optimisation Combinatoire
Principe de Sous-optimalit
e
Programmation Dynamique
Dominances
N. Brauner
349
M
ethodologie
D
ecoupe de rouleaux
Charbon
Localisation
Planification dexp
eriences
Plan
33
Methodologie
34
Decoupe de rouleaux
35
Charbon
36
Localisation
37
Planification dexperiences
N. Brauner
351
M
ethodologie
D
ecoupe de rouleaux
Charbon
Localisation
Planification dexp
eriences
Plan
33
Methodologie
34
Decoupe de rouleaux
35
Charbon
36
Localisation
37
Planification dexperiences
N. Brauner
352
M
ethodologie
D
ecoupe de rouleaux
Charbon
Localisation
Planification dexp
eriences
Methodologie
Face `a un probl`eme pratique de decision :
Comprendre le probl`eme
En degager les aspects mathematiques
Reconnatre un type de probl`eme classique
informs
http://www2.informs.org/Resources/
wikipedia (portail RO fait et corrige par des chercheurs)
N. Brauner
353
M
ethodologie
D
ecoupe de rouleaux
Charbon
Localisation
Planification dexp
eriences
Methodologie
Analyser la complexite
que peut-on esperer pour le temps de resolution imparti ?
solution exacte, approchee, avec performance...
probl`emes NP-complets
http://www.nada.kth.se/viggo/problemlist/
ordonnancement
http://www.mathematik.uni-osnabrueck.de/
research/OR/class/
N. Brauner
354
M
ethodologie
D
ecoupe de rouleaux
Charbon
Localisation
Planification dexp
eriences
Methodologie
Proposer une formulation
graphes, programmation lineaire, PPC...
N. Brauner
355
M
ethodologie
D
ecoupe de rouleaux
Charbon
Localisation
Planification dexp
eriences
Plan
33
Methodologie
34
Decoupe de rouleaux
35
Charbon
36
Localisation
37
Planification dexperiences
N. Brauner
356
M
ethodologie
D
ecoupe de rouleaux
Charbon
Localisation
Planification dexp
eriences
Decoupe
Rouleaux de papier de longueur standard 180 cm
Couteaux de decoupe (nombre et position arbitraires)
Couper des rouleaux de meme diam`etre
Liste des commandes pour la prochaine periode
longueur
80
45
27
nombre de rouleaux
200
120
130
N. Brauner
357
M
ethodologie
D
ecoupe de rouleaux
Charbon
Localisation
Planification dexp
eriences
Decoupe
Etapes
de la r
esolution
Solution manuelle
Borne inferieure
Schemas de decoupe
Variables et contraintes
Fonction objectif 1, resolution et analyse
Fonction objectif 2, interpretation et resolution
. . . et la contrainte dintegralite ?
N. Brauner
358
M
ethodologie
D
ecoupe de rouleaux
Charbon
Localisation
Planification dexp
eriences
Plan
33
Methodologie
34
Decoupe de rouleaux
35
Charbon
36
Localisation
37
Planification dexperiences
N. Brauner
359
M
ethodologie
D
ecoupe de rouleaux
Charbon
Localisation
Planification dexp
eriences
Fabrication de charbon
On melange des charbons dans un haut fourneau o`
u ensuite, une
reaction `a haute temperature produit le coke. Il y a 8 charbons
disponibles. Ces charbons sont entres par des bandes porteuses
qui sont au nombre de 4 (au maximum 4 charbons differents
dans le melange). Si un charbon est dans le melange, il doit
letre `a hauteur de minimum 5%. On exige que la teneur du
melange en Silicium soit dau plus 1,8 %. Le tableau suivant
reprend les prix et teneur en Si des charbons.
Charbon
Prix Teneur Si
Charbon
Prix Teneur Si
Charbon 1 12
2%
Charbon 5 13
1%
Charbon 2 14
2,5 %
Charbon 6
9
5%
Charbon 3 17
1%
Charbon 7 15
2%
Charbon 4 10
5%
Charbon 8 11
1,5 %
On veut determiner un melange qui est de co
ut minimum.
(exo de D. de Wolf)
N. Brauner
360
M
ethodologie
D
ecoupe de rouleaux
Charbon
Localisation
Planification dexp
eriences
Plan
33
Methodologie
34
Decoupe de rouleaux
35
Charbon
36
Localisation
37
Planification dexperiences
N. Brauner
361
M
ethodologie
D
ecoupe de rouleaux
Charbon
Localisation
Planification dexp
eriences
N. Brauner
362
M
ethodologie
D
ecoupe de rouleaux
Charbon
Localisation
Planification dexp
eriences
co
ut ouverture
7
8
4
28
20
10
capacite
70
70
40
110
50
50
station
1
2
3
4
5
6
7
demande
30
30
30
10
20
10
10
N. Brauner
363
M
ethodologie
D
ecoupe de rouleaux
Charbon
Localisation
Planification dexp
eriences
A
10
10
20
100
100
60
30
B
10
10
10
50
80
60
40
C
30
25
10
10
30
60
60
D
35
30
10
10
10
20
20
E
35
30
30
20
10
10
10
F
100
95
50
30
10
10
20
N. Brauner
364
M
ethodologie
D
ecoupe de rouleaux
Charbon
Localisation
Planification dexp
eriences
Plan
33
Methodologie
34
Decoupe de rouleaux
35
Charbon
36
Localisation
37
Planification dexperiences
N. Brauner
365
M
ethodologie
D
ecoupe de rouleaux
Charbon
Localisation
Planification dexp
eriences
Planification dexperiences
Dans une industrie chimique, une phase amont teste differents
produits de synth`ese pour determiner les meilleures
compositions.
Les reactions se font `a temperature elevee dans un four de
cuisson
Le process :
Remplissage
1/2 journee
Cuisson
de 3 `a 14 jours
Filtrage
2 jours
N. Brauner
366
M
ethodologie
D
ecoupe de rouleaux
Charbon
Localisation
Planification dexp
eriences
Cuisson
Un robot a ete achete pour automatiser la cuisson
Chaque experience est chargee dans une barre de cuisson
N. Brauner
367
M
ethodologie
D
ecoupe de rouleaux
Charbon
Localisation
Planification dexp
eriences
Remplissage
Cette etape correspond
A la preparation dune barre de cuisson
Au melange des differents constituants
Pour la realiser, 3 postes de travail ont ete installes,
chacun pouvant traiter une barre.
Un operateur est requis pour surveiller le deroulement des
operations.
N. Brauner
368
M
ethodologie
D
ecoupe de rouleaux
Charbon
Localisation
Planification dexp
eriences
Filtrage
Cette etape correspond
A lanalyse des resultats de lexperience
Elle est realisee de mani`ere semi-automatique
Un operateur doit surveiller le deroulement des analyses
Les 8 barres de cuisson peuvent etre analysees simultanement
N. Brauner
369
M
ethodologie
D
ecoupe de rouleaux
Charbon
Localisation
Planification dexp
eriences
Operateur
La presence dun chimiste qualifie est requise
Pendant le remplissage
Pendant le filtrage
Au demarrage de la cuisson (programmation du robot)
A la fin de la cuisson
lancer le filtrage pour arreter la reaction
le filtrage peut ensuite etre interrompu
Seule la cuisson peut
etre r
ealis
ee sans la pr
esence du
chimiste
N. Brauner
370
M
ethodologie
D
ecoupe de rouleaux
Charbon
Localisation
Planification dexp
eriences
Disponibilites
Le planning des absences du chimiste est connu `a lavance
(week-end, conges, autres obligations)
L M M
J V S
D L
J V S
D L
matin
apresmidi
V S
D L M M J
S D
L M
matin
apresmidi
N. Brauner
371
M
ethodologie
D
ecoupe de rouleaux
Charbon
Localisation
Planification dexp
eriences
N. Brauner
372
M
ethodologie
D
ecoupe de rouleaux
Charbon
Localisation
Planification dexp
eriences
Jeu de donnees
Vous devez planifier 17 experiences
6 avec un temps de cuisson de 14 jours
8 avec un temps de cuisson de 7 jours
3 avec un temps de cuisson de 3 jours
Le planning des disponibilites de loperateur
L M M
J V S
semaine 1
semaine 2
semaine 3
semaine 4
semaine 5
N. Brauner
373