Vous êtes sur la page 1sur 355

Cours de recherche operationnelle I

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

Recherche Operationnelle ou Science de la Decision


D
efinitions
Cambridge Dictionary
Operational research UK (US operations research)
The systematic study of how best to solve problems in business
and industry
Wikipedia
Operations research, operational research, or simply OR, is the use
of mathematical models, statistics and algorithms to aid in
decision-making
Roadef
Recherche Operationnelle : approche scientifique pour la resolution
de probl`emes de gestion de syst`emes complexes
N. Brauner

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

Une boite `a outils de methodes, tant positives que negatives,


pour aborder sainement et sereinement les probl`emes
doptimisation

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...

Analyse des mod`eles et resolution


etude de complexite : que peut-on esperer pour le temps de
resolution imparti ?
mise au point dalgorithmes

Implementation et analyse des resultats


valider par rapport `a la demande
iterer avec le demandeur si necessaire

Deploiement des solutions


Integration logicielle
N. Brauner

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

avec des ressources limitees

a10 x1 + a20 x2 . . . an0 xn b10

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

exemples : emplois du temps. . .


Combinatoire
echiquier tronque
http://mathsamodeler.ujf-grenoble.fr/LAVALISE/
N. Brauner

24

La Recherche Op
erationnelle

Applications

M
ethodologie

Outils

R
ef
erences

Recherche Operationnelle
Graphes


sommet 

arete 

1




:
3

Valuation des aretes = co


uts, temps, distance, capacites. . .
meilleur chemin de i `a j
meilleurs parcours
passant par chaque ville
passant par chaque arete

...
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. . .

avec les ressources disponibles


temps machine, postes de travail, memoire, ressource homme,
mati`ere premi`ere, camions. . .

N. Brauner

33

Programmation par contraintes

Programmation par contrainte

Mod
elisation

R
esolution

Plan

Programmation par contrainte

Modelisation

Resolution

N. Brauner

35

Programmation par contrainte

Mod
elisation

R
esolution

Sudoku

Precis de Sudoku, N. Jussien

N. Brauner

36

Programmation par contrainte

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

Raisonnement local : contraintes considerees independamment


verifier choix coherents : tests satisfiabilite
eliminer valeurs impossibles : filtrage

Transmission des deductions aux autres regions


les contraintes communiquent et interagissent par
lintermediaire des variables, lorsque le domaine courant dune
variable change, toutes les contraintes dans lesquelles elles
apparaissent sont reveillees : propagation

= principes au cur de la programmation par contraintes


N. Brauner

37

Programmation par contrainte

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

Programmation par contrainte

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

Programmation par contrainte

Mod
elisation

R
esolution

La PPC, quest-ce que cest ?


Des id
ees en vrac
Outil informatique pour resoudre des probl`emes combinatoires
Minimise letape de conception : modelisation facile, langage
proche des concepts des utilisateurs
Contraindre = maintenir dans les limites
permet deliminer rapidement des solutions non realisables
Bien separer modelisation et resolution
Notion naturelle de contraintes :
affecter stages `a etudiants
ranger des objets dans une boite
planifier le trafic aerien
etablir un menu equilibre et appetissant

N. Brauner

40

Programmation par contrainte

Mod
elisation

R
esolution

La PPC, quest-ce que cest ?


D
efinition plus formelle
CSP : ensemble de probl`emes definis par des contraintes et
consistant `a chercher une solution les respectant
Resolution dun CSP combinatoire : envisager tr`es grand
nombre de combinaisons avant den trouver une qui satisfait
toutes les contraintes
Trop long introduire des raisonnements ou heuristiques
pour reduire la combinatoire et orienter la recherche
Solveur de contraintes : on decrit les contraintes et le solveur
prend en charge automatiquement la resolution
inspire cours de Christine Solnon
http://bat710.univ-lyon1.fr/~csolnon/

N. Brauner

41

Programmation par contrainte

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

Programmation par contrainte

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

Programmation par contrainte

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)

Conception dhoraires academiques


Planifier lhoraire des cours ou des examens, en tenant compte
des differentes ressources (etudiants, professeurs, locaux)

N. Brauner

44

Programmation par contrainte

Mod
elisation

R
esolution

Application de la PPC
Tournee de vehicules
Confection de routes sujet `a beaucoup de contraintes.
Librairies specialisees, contraintes dediees

Construction dhoraires de personnel


Affecter les gens `a des taches precises
Sante, commerce de detail, usine, etc.
Permet de modeliser les contraintes complexes

http://www.equitime.org/

N. Brauner

45

Programmation par contrainte

Mod
elisation

R
esolution

Plan

Programmation par contrainte

Modelisation

Resolution

N. Brauner

46

Programmation par contrainte

Mod
elisation

R
esolution

La programmation par contraintes


Objectif
Trouver une solution r
ealisable
Qui respecte des contraintes faciles `a verifier
Formules mathematiques simples, tableaux de valeurs possibles

Avec des ensembles de valeurs possibles


pour les variables de d
ecision

N. Brauner

47

Programmation par contrainte

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

Programmation par contrainte

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

Programmation par contrainte

Mod
elisation

R
esolution

Contraintes
Cest quoi ?
Variables
Domaines


Contraintes

Une contrainte restreint les valeurs que lon peut affecter


simultanement `a des variables
Exemples :
2x + 3y = 12

x 6= 3y

3x 2

(ABC ) forme un triangle isoc`ele

=3

AB C

x, y , z distincts deux `a deux

N. Brauner

50

Programmation par contrainte

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)

intension : on utilise les signes mathematiques connus


x <y

N. Brauner

51

Programmation par contrainte

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

declarative : specifie la relation entre les variables, sans donner


de procedure pour assurer/verifier cette relation
x 2y = z, on ne soccupe pas de donner un algorithme
permettant de resoudre cette equation
ordre des contraintes non significatif
N. Brauner

52

Programmation par contrainte

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

Programmation par contrainte

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

Programmation par contrainte

Mod
elisation

R
esolution

Probl`eme de satisfaction de contraintes


(X , D, C ) tel que

X = {X1 , X2 , . . . , Xn } lensemble des variables


D = {D1 , D2 , . . . , Dn } o`
u Di est le domaine de Xi

C = {C1 , C2 , . . . , Cm } lensemble des contraintes


Exemple
X = {a, b, c, d}
D(a) = D(b) = D(c) = D(d) = {0, 1}
C = {a 6= b, c 6= d, a + c < b}

N. Brauner

55

Programmation par contrainte

Mod
elisation

R
esolution

Solution dun CSP


Une affectation est le fait dinstancier des variables.
A = {(X1 , V1 ), (X3 , V3 ), (X4 , V4 )}
associe la valeur V1 de D1 `a la variable X1 ...
Une affectation est :
partielle ou totale
consistante ou inconsistante
Une solution est une affectation totale consistante

N. Brauner

56

Programmation par contrainte

Mod
elisation

R
esolution

Solution dun CSP


Probl`
eme
X = {a, b, c, d}
D(a) = D(b) = D(c) = D(d) = {0, 1}
C = {a 6= b, c 6= d, a + c < b}

A1 = {(a, 1), (b, 0), (c, 0), (d, 0)}


A2 = {(a, 0), (b, 0)}
A3 = {(a, 1), (b, 0)}
A4 = {(a, 0), (b, 1), (c, 0), (d, 1)}

N. Brauner

57

Programmation par contrainte

Mod
elisation

R
esolution

Le jeu du : CSP, pas CSP !


Connaissant les pi`eces de mon porte-monnaie, puis-je rendre
exactement 8 euros et 57 centimes ?
Connaissant les pi`eces de mon porte-monnaie, quelle est la
meilleure facon de rendre 8 euros et 57 centimes ?
Est-il possible de colorier une carte avec 5 couleurs sans
fronti`ere monochrome ?
Sur un cercle, trouver un point `a distance 2 dune droite.

N. Brauner

58

Programmation par contrainte

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

Programmation par contrainte

Mod
elisation

R
esolution

Plan

Programmation par contrainte

Modelisation

Resolution

N. Brauner

60

Programmation par contrainte

Mod
elisation

R
esolution

Un constat

Un probl`eme est rarement donne sous la forme dun CSP

N. Brauner

61

Programmation par contrainte

Mod
elisation

R
esolution

Le probl`eme des reines


Jeu : placer 4 reines sur un echiquier 4 4 sans quelles ne se
menacent
Modelisation
variables L1 , L2 , L3 , L4 et
C1 , C2 , C3 , C4
domaines Li {1, 2, 3, 4} et
Ci {1, 2, 3, 4}
contraintes lignes, colonnes
et diagonales differentes.

N. Brauner

62

Programmation par contrainte

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

Programmation par contrainte

Mod
elisation

R
esolution

Modelisation
Autre mod
elisation pour le probl`
eme des reines ?

N. Brauner

64

Programmation par contrainte

Mod
elisation

R
esolution

Modelisation
Quelle est la meilleure mod
elisation ?
1

Celle qui modelise le mieux la realite du probl`eme

Celle qui est la plus facile `a trouver

Celle qui permettra de resoudre le probl`eme le plus


efficacement

N. Brauner

65

Programmation par contrainte

Mod
elisation

R
esolution

Exercice : le retour de monnaie


On sinteresse `a un distributeur automatique de boissons.
Lutilisateur ins`ere des pi`eces de monnaie pour un total de T
centimes dEuros, puis il selectionne une boisson, dont le prix est
de P centimes dEuros (T et P etant des multiples de 10). Il
sagit alors de calculer la monnaie `a rendre, sachant que le
distributeur a en reserve E2 pi`eces de 2=
C, E1 pi`eces de 1=C, C50
pi`eces de 50 centimes, C20 pi`eces de 20 centimes et C10 pi`eces
de 10 centimes.
Modelisez ce probl`eme sous la forme dun CSP.

N. Brauner

66

Programmation par contrainte

Mod
elisation

R
esolution

Correction : le retour de monnaie

N. Brauner

67

Programmation par contrainte

Mod
elisation

R
esolution

Exercice : Send More Money


On consid`ere laddition suivante :
+
=

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

Programmation par contrainte

Mod
elisation

R
esolution

Correction : Send More Money

N. Brauner

69

Programmation par contrainte

Mod
elisation

R
esolution

Plan

Programmation par contrainte

Modelisation

Resolution

N. Brauner

70

Programmation par contrainte

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

Avantage : tr`es facile `a mettre en uvre


Inconvenient : tr`es gourmand en ressource temps

N. Brauner

71

Programmation par contrainte

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

Programmation par contrainte

Mod
elisation

R
esolution

Les rem`edes
Sarreter quand une affectation partielle est inconsistante
backtrack

Restreindre les domaines des variables durant lexecution


propagation de contraintes

Utiliser des heuristiques


Utiliser nos connaissances sur le probl`eme etudie
...

N. Brauner

73

Programmation par contrainte

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

Programmation par contrainte

Mod
elisation

R
esolution

Backtrack : jeu de dames


Exemple dex
ecution

N. Brauner

75

Programmation par contrainte

Mod
elisation

R
esolution

Backtrack
Backtrack

M
ethode nave

4 Moins daffectations
considerees

8 Toutes les affectations sont


considerees

8 Toutes les contraintes sont


testees `a chaque affectation
meme partielle

4 On ne teste les contraintes


que sur les affectations
totales

4 Facile `a mettre en uvre

4 Tr`es facile `a mettre en


uvre

Importance de lordre des variables

N. Brauner

76

Programmation par contrainte

Mod
elisation

R
esolution

Propagation des contraintes


Principe :
On restreint le domaine dune variable
avec les contraintes, on restreint les autres domaines
Exemple
0 < x 10 et 3 y 9
contrainte : x > y
Alors on peut restreindre le domaine de x `a 4 x 10

N. Brauner

77

Programmation par contrainte

Mod
elisation

R
esolution

Propagation des contraintes


Id
ee : `a partir dun CSP, on cherche un CSP equivalent avec des
domaines plus petits
On propage :
Quand un domaine est reduit
Quand une des bornes du domaine est changee
Quand un domaine est un singleton
On propage :
Une fois : nud-consistance
Deux fois : arc-consistance
Ou plus...

N. Brauner

78

Programmation par contrainte

Mod
elisation

R
esolution

Propagation des contraintes


Nud-consistance
Formellement, un CSP (X , D, C ) est consistant de nud si pour
toute variable Xi de X , et pour toute valeur v de D(Xi ),
laffectation partielle (Xi , v ) satisfait toutes les contraintes unaires
de C .
Algorithmiquement, pour chaque variable Xi non affectee dans A,
on enl`eve de D(Xi ) toute valeur v telle que laffectation
A {(Xi , v )} est inconsistante.

N. Brauner

79

Programmation par contrainte

Mod
elisation

R
esolution

Propagation des contraintes


Nud-consistance

N. Brauner

80

Programmation par contrainte

Mod
elisation

R
esolution

Propagation des contraintes


Arc-consistance
Formellement, un CSP (X , D, C ) est consistant darc si pour tout
couple de variables (Xi , Xj ) de X , et pour toute valeur vi
appartenant `a D(Xi ), il existe une valeur vj appartenant `a D(Xj )
telle que laffectation partielle {(Xi , vi ), (Xj , vj )} satisfasse toutes
les contraintes binaires de C .
Algorithmiquement, pour chaque variable Xi non affectee dans A,
on enl`eve de D(Xi ) toute valeur v telle quil existe une variable Xj
non affectee pour laquelle, pour toute valeur w de D(Xj ),
laffectation A {(Xi , v ), (Xj , w )} soit inconsistante.

N. Brauner

81

Programmation par contrainte

Mod
elisation

R
esolution

Propagation des contraintes


Arc-consistance : exemple dexecution

N. Brauner

82

Programmation par contrainte

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

Programmation par contrainte

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

Exercice : Affectation de stock


N entrepots (co
ut douverture ouvre(i) )
M boutiques
co
uts dacheminement de chaque entrep
ot `a chaque boutique
transfert(i, j)
capacite : chaque entrep
ot ne peut fournir quun certain
nombre de boutiques cap(i)
Question : avec un budget de mille euros, puis-je subvenir aux
besoins de mes boutiques ?

N. Brauner

85

Correction : Affectation de stock

N. Brauner

86

Programmation lineaire

Programmation lin
eaire

Interpr
etation g
eom
etrique

Bases et points extr


emes

Lalgorithme du simplexe

Plan

Introduction `a la programmation lineaire

10

Interpretation geometrique

11

Bases et points extremes

12

Lalgorithme du simplexe

N. Brauner

88

Programmation lin
eaire

Interpr
etation g
eom
etrique

Bases et points extr


emes

Lalgorithme du simplexe

Plan

Introduction `a la programmation lineaire

10

Interpretation geometrique

11

Bases et points extremes

12

Lalgorithme du simplexe

N. Brauner

89

Programmation lin
eaire

Interpr
etation g
eom
etrique

Bases et points extr


emes

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

Fonction-objectif generique (`a maximiser / minimiser) :


f (x1 , x2 . . . xn ) =

n
X

cj xj

j=1
N. Brauner

90

Programmation lin
eaire

Interpr
etation g
eom
etrique

Bases et points extr


emes

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

Bases et points extr


emes

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

max 4xc + 5xn

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

Bases et points extr


emes

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

Bases et points extr


emes

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

Bases et points extr


emes

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

Bases et points extr


emes

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

Bases et points extr


emes

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

fonction objectif (ou fonction economique) lineaire


max / min c1 x1 + c2 x2 . . . + cn xn
N. Brauner

97

Programmation lin
eaire

Interpr
etation g
eom
etrique

Bases et points extr


emes

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

Bases et points extr


emes

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

Bases et points extr


emes

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

Bases et points extr


emes

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

variable non contrainte variables positives



x = x+ x
x 0
x +, x 0
N. Brauner

101

Programmation lin
eaire

Interpr
etation g
eom
etrique

Bases et points extr


emes

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

Bases et points extr


emes

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

Bases et points extr


emes

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

Bases et points extr


emes

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 !

1975 : prix Nobel economie Kantorovitch


XXI`eme si`ecle : logiciels de PL disponibles partout, utilisation
de la PL dans tous les domaines industriels...
N. Brauner

105

Programmation lin
eaire

Interpr
etation g
eom
etrique

Bases et points extr


emes

Lalgorithme du simplexe

Plan

Introduction `a la programmation lineaire

10

Interpretation geometrique

11

Bases et points extremes

12

Lalgorithme du simplexe

N. Brauner

106

Programmation lin
eaire

Interpr
etation g
eom
etrique

Bases et points extr


emes

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

max 4xc + 5xn

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

Bases et points extr


emes

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

Bases et points extr


emes

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

Bases et points extr


emes

Lalgorithme du simplexe

Interpretation geometrique
G
eom
etrie dun PL
Lensemble des solutions realisables est toujours
un poly`
edre (intersection de demi-espaces)

Les lignes de niveau {f = constante} de la fonction-objectif f sont


des hyperplans affines (n = 2 droite, n = 3 plan...)

N. Brauner

110

Programmation lin
eaire

Interpr
etation g
eom
etrique

Bases et points extr


emes

Lalgorithme du simplexe

Interpretation geometrique
G
eom
etrie dun PL

Optimum atteint au bord


Loptimum de la fonction-objectif, sil existe, est atteint en (au
moins) un sommet du poly`edre.
Justification mathematique :
les derivees partielles
Pnde f (x) = c.x ne sannulent jamais,
et le domaine {x | j=1 aij xj bi , i = 1, . . . , m} est compact
loptimum est atteint au bord...

N. Brauner

111

Programmation lin
eaire

Interpr
etation g
eom
etrique

Bases et points extr


emes

Lalgorithme du simplexe

Programmation lineaire
Solutions dun PL
La region admissible peut etre
vide
nb solutions optimales : 0

non vide, bornee


nb solutions optimales : 1 ou

non vide, non bornee


nb solutions optimales : 0 ou 1 ou

Proposer des exemples de PL pour chacun des cas


Feuille de TD : Programmation lineaire, Resolution
Exercice 3
N. Brauner

112

Programmation lin
eaire

Interpr
etation g
eom
etrique

Bases et points extr


emes

Lalgorithme du simplexe

Plan

Introduction `a la programmation lineaire

10

Interpretation geometrique

11

Bases et points extremes

12

Lalgorithme du simplexe

N. Brauner

120

Programmation lin
eaire

Interpr
etation g
eom
etrique

Bases et points extr


emes

Lalgorithme du simplexe

Bases et points extremes


A matrice m n

Rappels
max
s.c.

z
Ax
x

= cx
b
0

x = (x1 x2 . . . xn )
b = (b1 b2 . . . bm )
c = (c1 c2 . . . cn )

Les contraintes definissent un poly`edre


La solution optimale est un sommet du poly`edre
Comment enumerer les sommets dun poly`edre ?

N. Brauner

121

Programmation lin
eaire

Interpr
etation g
eom
etrique

Bases et points extr


emes

Lalgorithme du simplexe

Bases et points extremes


Passage `
a la forme standard
Forme standard
On peut rajouter des variables d
ecart :
n
X
j=1

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

Bases et points extr


emes

Lalgorithme du simplexe

Bases et points extremes


Passage `
a la forme standard
max z = 4x + 5y
s.c. 2x + y 8
x + 2y 7
y 3
x, y 0

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

enumeration de ces 9 points


comme solution de la forme
standard (solutions de base)
N. Brauner

123

Programmation lin
eaire

Interpr
etation g
eom
etrique

Bases et points extr


emes

Lalgorithme du simplexe

Bases et points extremes


s.c. 2x
x

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

Bases et points extr


emes

Lalgorithme du simplexe

Bases et points extremes


Syst`eme lineaire Ax=b
A format m n, rang A = m n
Base de A : sous-matrice B(m m) inversible de A
A = (B, N)


xB
=b
ou
BxB + NxN = b
(B, N)
xN

xB = B 1 b B 1 NxN

Solution de base associee `a B :


xN = 0 variables hors base
xB = B 1 b variables de base

N. Brauner

125

Programmation lin
eaire

Interpr
etation g
eom
etrique

Bases et points extr


emes

Lalgorithme du simplexe

Bases et points extremes


Base et solution de base

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

Bases et points extr


emes

Lalgorithme du simplexe

Bases et points extremes


Base

e1
e2

e3

et solution de base
= 8 2x y
= 7 x 2y
=3y

I on met les variables hors base `a 0


I on en deduit les valeur des variables de base

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

Bases et points extr


emes

Lalgorithme du simplexe

Bases et points extremes


Ax = b,

x 0

(xB , 0) associee `a B est une solution de base admissible si


xB 0
{points extr
emes du poly`edre} {solutions de base
admissibles du syst`eme lineaire correspondant}
nombre de points extremes Cnm =

n!
m!(nm)!

solution de base degeneree : certaines variables de base sont


nulles
si A est inversible : solution de base unique

N. Brauner

128

Programmation lin
eaire

Interpr
etation g
eom
etrique

Bases et points extr


emes

Lalgorithme du simplexe

Bases et points extremes


Base voisine et pivotage
Bases voisines
Deux sommets voisins correspondent `a deux bases B et B 0 telles
quon remplace une variable de B pour obtenir B 0
I passer `a un sommet voisin = changer de base (base voisine)
principe du pivotage

N. Brauner

129

Programmation lin
eaire

Interpr
etation g
eom
etrique

Bases et points extr


emes

Lalgorithme du simplexe

Bases et points extremes


Qui faire entrer 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 2x, e2 = 1 x, et
e3 = 0
I candidat pour une nouvelle base :
{e1 , e2 , e3 } {y } \ {e3 } = {e1 , e2 , y }
(x, y , e1 , e2 , e3 ) = (0, 3, 5, 1, 0)

N. Brauner

130

Programmation lin
eaire

Interpr
etation g
eom
etrique

Bases et points extr


emes

Lalgorithme du simplexe

Plan

Introduction `a la programmation lineaire

10

Interpretation geometrique

11

Bases et points extremes

12

Lalgorithme du simplexe

N. Brauner

131

Programmation lin
eaire

Interpr
etation g
eom
etrique

Bases et points extr


emes

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

Bases et points extr


emes

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

Bases et points extr


emes

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

Bases et points extr


emes

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

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

135

Programmation lin
eaire

Interpr
etation g
eom
etrique

Bases et points extr


emes

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

Bases et points extr


emes

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

Bases et points extr


emes

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

Bases et points extr


emes

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

Bases et points extr


emes

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

Bases et points extr


emes

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

Bases et points extr


emes

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

Bases et points extr


emes

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

Bases et points extr


emes

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

Bases et points extr


emes

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

Bases et points extr


emes

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

Qui faire sortir ?

N. Brauner

146

Programmation lin
eaire

Interpr
etation g
eom
etrique

Bases et points extr


emes

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

Bases et points extr


emes

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

Bases et points extr


emes

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

x1 , s1 , s2 , s4 en base et x2 , s3 hors base


sol de base (70, 0, 50, 30, 0, 50) de valeur 1400
Faire rentrer x2
quotient min faire sortir s1

N. Brauner

149

Programmation lin
eaire

Interpr
etation g
eom
etrique

Bases et points extr


emes

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

x1 , x2 , s2 , s4 en base et s1 , s3 hors base


sol de base (70, 25, 0, 5, 0, 25) de valeur 1650
optimale car z = 1650 5s1 15s3 et s1 = s3 = 0

N. Brauner

150

Programmation lin
eaire

Interpr
etation g
eom
etrique

Bases et points extr


emes

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

Choix dune colonne (variable) entrante


choisir une variable hors base xj (colonne) ayant un co
ut reduit
negatif
sil nexiste pas de colonne entrante : STOP, la solution de
base est optimale

Choix dune ligne (variable) sortante


Choisir une ligne r minimisant le quotient
sil nexiste pas de ligne sortante : STOP le tableau courant est
non borne

Mise `a jour de la base et du tableau


pivoter autour de arj et retourner en (1)
N. Brauner

151

Programmation lin
eaire

Interpr
etation g
eom
etrique

Bases et points extr


emes

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

Bases et points extr


emes

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

Comment prouver loptimalit


e?

Ecrire
le dual

Propri
et
es

Plan

13

Illustration economique

14

Comment prouver loptimalite ?

15

Ecrire
le dual

16

Proprietes

N. Brauner

155

Illustration
economique

Ecrire
le dual

Comment prouver loptimalit


e?

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

Comment prouver loptimalit


e?

Ecrire
le dual

Propri
et
es

Plan

13

Illustration economique

14

Comment prouver loptimalite ?

15

Ecrire
le dual

16

Proprietes

N. Brauner

157

Illustration
economique

Comment prouver loptimalit


e?

Ecrire
le dual

Propri
et
es

Plan

13

Illustration economique

14

Comment prouver loptimalite ?

15

Ecrire
le dual

16

Proprietes

N. Brauner

158

Illustration
economique

Ecrire
le dual

Comment prouver loptimalit


e?

Propri
et
es

Probl`eme primal (P)


Une famille utilise 6 produits alimentaires
comme source de vitamine A et C

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

Comment prouver loptimalit


e?

Ecrire
le dual

Propri
et
es

Probl`eme dual (D) associe `a (P)


Un producteur de cachets de vitamine synthetique veut convaincre
la famille dacheter ses vitamines.
quel prix de vente wA et wC ?
pour etre competitif
et maximiser le profit
Modelisation

N. Brauner

161

Illustration
economique

Comment prouver loptimalit


e?

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

Comment prouver loptimalit


e?

Propri
et
es

Generalisation de lillustration economique


ressource i

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

Comment prouver loptimalit


e?

Ecrire
le dual

Propri
et
es

Plan

13

Illustration economique

14

Comment prouver loptimalite ?

15

Ecrire
le dual

16

Proprietes

N. Brauner

166

Illustration
economique

Comment prouver loptimalit


e?

Ecrire
le dual

Propri
et
es

Comment prouver loptimalite ?


Lobjectif est de demontrer loptimalite dune solution
max z = x1 + x2
4x1 + 5x2 20
2x1 + x2 6
x2 2
x1 , x2 0
Id
ee : trouver une combinaison valide des contraintes permettant
de borner terme `a terme la fonction objectif

N. Brauner

167

Illustration
economique

Ecrire
le dual

Comment prouver loptimalit


e?

Propri
et
es

Comment prouver loptimalite ?


max z = x1 + x2

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

(borne sup minimale)


(borner terme `a terme lobjectif)
1
1

0
N. Brauner

170

Illustration
economique

Comment prouver loptimalit


e?

Ecrire
le dual

Propri
et
es

Plan

13

Illustration economique

14

Comment prouver loptimalite ?

15

Ecrire
le dual

16

Proprietes

N. Brauner

171

Illustration
economique

Comment prouver loptimalit


e?

Ecrire
le dual

Propri
et
es

Forme canonique de dualite


Donnee A, b, c

(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

Comment prouver loptimalit


e?

Ecrire
le dual

Propri
et
es

Tableau des signes


min
primal
dual
variable 0
variable 0
variable 0
contrainte
contrainte =
contrainte

max
dual
primal
contrainte
contrainte =
contrainte
variable 0
variable 0
variable 0

Lecriture du Dual est automatique :


les variables
la fonction objectif
les contraintes
N. Brauner

175

Illustration
economique

Comment prouver loptimalit


e?

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

Comment prouver loptimalit


e?

Ecrire
le dual

Propri
et
es

Plan

13

Illustration economique

14

Comment prouver loptimalite ?

15

Ecrire
le dual

16

Proprietes

N. Brauner

177

Illustration
economique

Comment prouver loptimalit


e?

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

Comment prouver loptimalit


e?

Propri
et
es

Proprietes
(P)

min z = cx
s.c. Ax b
x 0

(D)

max v = wb
s.c. wA c
w 0

Theor`eme de dualite faible


Pour chaque paire de solutions admissibles x de (P) et w de (D)
z = cx wb = v

Consequence : que se passe-t-il si lun est non borne ?

N. Brauner

180

Illustration
economique

Comment prouver loptimalit


e?

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

Comment prouver loptimalit


e?

Ecrire
le dual

Propri
et
es

Propriete des ecarts complementaires


Pour lexemple des vitamines
ecrire le primal avec les variables decart (si )
ecrire le dual avec les variables decart (ti )
trouver une solution du primal optimale
trouver une solution du dual optimale
ecrire les paires de variables (si , wi ) et (xj , tj )
que remarquez-vous ?

N. Brauner

182

Illustration
economique

Comment prouver loptimalit


e?

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

Comment prouver loptimalit


e?

Ecrire
le dual

Propri
et
es

Propriete des ecarts complementaires


Int
er
et Si on connat x optimal de (P), alors on peut trouver y
en appliquant le theor`eme des ecarts complementaires (et ainsi
prouver loptimalite de x )
essayer sur un exemple
max z = x1 + x2
4x1 + 5x2 20
2x1 + x2 6
x2 2
x1 , x2 0
avec x1 = 2 et x2 = 2

N. Brauner

186

Illustration
economique

Comment prouver loptimalit


e?

Ecrire
le dual

Propri
et
es

Petite philosophie de la dualite


` quoi servent les trois theor`emes de dualite
A
Dualite faible : pour faire la preuve doptimalite

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

Programmation lineaire en nombres entiers

Probl`
emes classiques

Techniques de mod
elisation

Relaxation lin
eaire

Branch & Bound

Introduction
Programmation Lineaire (PL)
Variables de decision continues (reels)
Algorithme du Simplexe efficace

Probl`emes Lineaire en Nombres Entiers (PLNE)


Variables de decision discr`etes (entiers, booleens {0, 1})
Choix dune bonne formulation souvent difficile
Pas de methode generale efficace de resolution
Algorithme de Branch & Bound, Branch & Cut. . .

Programme Lineaire Mixte (MIP pour Mixed Integer


Program)
A la fois des variables reelles et enti`eres

N. Brauner

190

Probl`
emes classiques

Techniques de mod
elisation

Relaxation lin
eaire

Branch & Bound

Introduction
Combinatoire
Structure discr`ete
Tr`es grand nombre de possibilites

N. Brauner

191

Probl`
emes classiques

Techniques de mod
elisation

Relaxation lin
eaire

Branch & Bound

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

Lensemble F est en general defini par des contraintes.


Son cardinal peut etre tr`es grand (ici potentiellement 2n )

N. Brauner

192

Probl`
emes classiques

Techniques de mod
elisation

Relaxation lin
eaire

Branch & Bound

Plan

17

Probl`emes classiques

18

Techniques de modelisation

19

Relaxation lineaire

20

Branch & Bound

N. Brauner

193

Probl`
emes classiques

Techniques de mod
elisation

Relaxation lin
eaire

Branch & Bound

Plan

17

Probl`emes classiques

18

Techniques de modelisation

19

Relaxation lineaire

20

Branch & Bound

N. Brauner

194

Probl`
emes classiques

Techniques de mod
elisation

Relaxation lin
eaire

Branch & Bound

Probl`emes classiques doptimisation combinatoire


Le sac `
a dos
Un beau jour de vacances, vous avez decide de partir en
randonnee dans le Vercors. Vous voulez remplir votre sac de
capacite 3kg 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

195

Probl`
emes classiques

Techniques de mod
elisation

Relaxation lin
eaire

Branch & Bound

Probl`emes classiques doptimisation combinatoire


Le sac `
a dos
` Dos
Probl`eme generique de Sac a
un ensemble dobjets N = {1, 2 . . . n}
`a chaque objet est associe
une utilite ui
un poids wi

un randonneur dispose dun sac-`a-dos


dont le poids total ne doit pas depasser
W (capacite du sac-`a-dos)
determiner quels objets prendre pour
maximiser lutilite

N. Brauner

196

Probl`
emes classiques

Techniques de mod
elisation

Relaxation lin
eaire

Branch & Bound

Probl`emes classiques doptimisation combinatoire


Le sac `
a dos
Probl`eme doptimisation classique
Utiliser au mieux une capacite
Choix dun portefeuille
dinvestissement

Modelisation
INSTANCE :
SOLUTIONS :
SOLUTIONS REALISABLES :
CRITERE :
N. Brauner

197

Probl`
emes classiques

Techniques de mod
elisation

Relaxation lin
eaire

Branch & Bound

Probl`emes classiques doptimisation combinatoire


Le sac `
a dos
variables

xi = 1 si lobjet i est choisi, 0 sinon


P
objectif
max iN ui xi
P
contraintes
iN wi xi W
xi {0, 1}

i N

N. Brauner

198

Probl`
emes classiques

Techniques de mod
elisation

Relaxation lin
eaire

Branch & Bound

Probl`emes classiques doptimisation combinatoire


Remplissage de botes (bin packing)
Un demenageur souhaite empaqueter des objets en minimisant le
nombre de botes de capacite W = 6 necessaires

un livre
un autre livre
un pull
des chaussettes
des chaussures
des assiettes
des verres

taille
2
2
3
1
2
5
6

Decrivez une solution realisable pour le demenageur

Proposez une modelisation avec un PLNE


N. Brauner

199

Probl`
emes classiques

Techniques de mod
elisation

Relaxation lin
eaire

Branch & Bound

Probl`emes classiques doptimisation combinatoire


Remplissage de botes (bin packing)
des articles N = {1, 2 . . . n} de taille {s1 , s2 . . . sn }
`a ranger dans des botes de capacite W
en utilisant de moins de botes possible

N. Brauner

200

Probl`
emes classiques

Techniques de mod
elisation

Relaxation lin
eaire

Branch & Bound

Probl`emes classiques doptimisation combinatoire


Couverture densembles
On souhaite choisir les intervenants dans un projet afin davoir
toutes les competences necessaires en minimisant le co
ut
Co
ut (h ou =C)
Rech. Op.
Java
Bases de donnees
Theorie des graphes
UML

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

Decrivez une solution realisable pour le projet

Proposez une modelisation avec un PLNE

Elmer
7
0
0
0
1
1

N. Brauner

201

Probl`
emes classiques

Techniques de mod
elisation

Relaxation lin
eaire

Branch & Bound

Probl`emes classiques doptimisation combinatoire


Couverture densembles
matrice A = (aij )i=1..n,j=1..m `a coefficients 0 ou 1
cj > 0, le co
ut de la colonne j
une colonne j couvre une ligne i si aij = 1
trouver un sous-ensemble des colonnes de A de co
ut minimum
tel que chaque ligne de A soit couverte au moins une fois

N. Brauner

202

Probl`
emes classiques

Techniques de mod
elisation

Relaxation lin
eaire

Branch & Bound

Probl`emes classiques doptimisation combinatoire


Partition densembles
matrice A = (aij )i=1..n,j=1..m `a coefficients 0 ou 1
cj > 0, le co
ut de la colonne j
une colonne j couvre une ligne i si aij = 1
trouver un sous-ensemble des colonnes de A de co
ut minimum
tel que chaque ligne de A soit couverte exactement une fois

N. Brauner

203

Probl`
emes classiques

Techniques de mod
elisation

Relaxation lin
eaire

Branch & Bound

Probl`emes classiques doptimisation combinatoire


Affectation
N1 et N2 deux ensembles de meme cardinal n
A N1 N2 : un collection de couples de nuds representant
toutes les affectations possibles
cij : co
ut du couple (i, j) A
trouver une affectation de co
ut minimum tel que chaque
element de N1 est affecte `a un et un seul element de N2

N. Brauner

204

Probl`
emes classiques

Techniques de mod
elisation

Relaxation lin
eaire

Branch & Bound

Probl`emes classiques doptimisation combinatoire


Plus court chemin
Trouver un chemin de distance minimum entre deux nuds, s
et t dun reseau donne.

N. Brauner

205

Probl`
emes classiques

Techniques de mod
elisation

Relaxation lin
eaire

Branch & Bound

Plan

17

Probl`emes classiques

18

Techniques de modelisation

19

Relaxation lineaire

20

Branch & Bound

N. Brauner

206

Probl`
emes classiques

Techniques de mod
elisation

Relaxation lin
eaire

Branch & Bound

Techniques generales de modelisation


La PLNE permet de resoudre beaucoup de probl`emes
combinatoires
mais ATTENTION `a lefficacite de la resolution. . .
Les variables enti`eres sont introduites
Pour decrire des structures discr`etes
sous-ensemble S {1, . . . , n}
vecteur indicateur (x1 , . . . , xn ) {0, 1}n
Pour lineariser des expressions non lineaires

N. Brauner

207

Probl`
emes classiques

Techniques de mod
elisation

Relaxation lin
eaire

Branch & Bound

Techniques generales de modelisation


x : une variable de decision
Objectif avec co
ut fixe (fonction affine) : min f 1{x>0} + cx
Le co
ut est compose dun co
ut unitaire c et dun co
ut fixe f
paye uniquement si x > 0
On introduit une variable y indicatrice de {x > 0}
y 1 ssi x > 0, et 0 sinon

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

Branch & Bound

Techniques generales de modelisation


Restriction `
a un ensemble discret de valeurs
x doit prendre sa valeur parmi {p1 , p2 . . . pk }
On introduit une variable yi indicatrice de {x = pi }
yi 1 ssi x = pi , et 0 sinon
k
X

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

Branch & Bound

Techniques generales de modelisation


Contraintes de seuil : si x > 0 alors x K (constante)

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

Branch & Bound

Techniques generales de modelisation


Contraintes disjonctives
deux taches de durees di et dj doivent etre usinees sur une
m
 eme ressource
ti + di tj si i est realisee avant j
tj + dj ti si j est realisee avant i

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

Branch & Bound

Techniques generales de modelisation


Termes quadratiques
lineariser xx 0 avec x, x 0 {0, 1}
On introduit une variable y xx 0
On doit traduire y = 1 ssi (x = 1 et x 0 = 1)

y
x

x
x0
+ x0 1 y
{0, 1}

N. Brauner

212

Probl`
emes classiques

Techniques de mod
elisation

Relaxation lin
eaire

Branch & Bound

Plan

17

Probl`emes classiques

18

Techniques de modelisation

19

Relaxation lineaire

20

Branch & Bound

N. Brauner

213

Probl`
emes classiques

Techniques de mod
elisation

Relaxation lin
eaire

Branch & Bound

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

Branch & Bound

Illustration graphique

N. Brauner

215

Probl`
emes classiques

Techniques de mod
elisation

Relaxation lin
eaire

Branch & Bound

Illustration graphique

N. Brauner

216

Probl`
emes classiques

Techniques de mod
elisation

Relaxation lin
eaire

Branch & Bound

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

Branch & Bound

Illustration graphique de la relaxation

N. Brauner

218

Probl`
emes classiques

Techniques de mod
elisation

Relaxation lin
eaire

Branch & Bound

Exemple I
max z = 4x1

s.c.

+ x2 36
+ 4x2 22

7x1
x1

x1 , x2

x2

entiers

Trouvez graphiquement loptimum fractionnaire

Trouvez graphiquement loptimum entier

N. Brauner

219

Probl`
emes classiques

Techniques de mod
elisation

Relaxation lin
eaire

Branch & Bound

Exemple II
Stable maximum
Ensemble S de sommets
dun graphe

F
B

2 `a 2 non adjacent

Quel est loptimum entier sur un triangle ?

Quel est loptimum fractionnaire sur un triangle ?


la relaxation lineaire donne peu dindication !
N. Brauner

220

Probl`
emes classiques

Techniques de mod
elisation

Relaxation lin
eaire

Branch & Bound

Exemple III
min z = x1
s.c.

x1 17x2 = 3
x1 11x3 = 4
x1 6x4 = 5

x1 , x2 , x3 , x4 0
1

entiers

Trouvez loptimum fractionnaire, son arrondi et loptimum


entier

N. Brauner

221

Probl`
emes classiques

Techniques de mod
elisation

Relaxation lin
eaire

Branch & Bound

Propriete de la relaxation lineaire


Pour une formulation en PLNE

zIP
= max{cx | Ax b , x Zn }

La relaxation lineaire
zL = max{cx | Ax b , x Rn }
verifie
1
2

z
zIP
L

Si la solution optimale de la relaxation lineaire est enti`ere,


alors cest aussi une solution optimale pour le PLNE

N. Brauner

222

Probl`
emes classiques

Techniques de mod
elisation

Relaxation lin
eaire

Branch & Bound

Plan

17

Probl`emes classiques

18

Techniques de modelisation

19

Relaxation lineaire

20

Branch & Bound

N. Brauner

223

Probl`
emes classiques

Techniques de mod
elisation

Relaxation lin
eaire

Branch & Bound

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

Branch & Bound

Challenge de loptimisation combinatoire


Comment trouver la meilleure solution sans parcourir toutes les
solutions ?

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

Branch & Bound

Principe du Branch & Bound


On veut resoudre z = max{cx | x X }
Si on partitionne X en (X1 , X2 )
Alors z = max{z1 , z2 }
X

X1

X2

z*1

z*2

N. Brauner

226

Probl`
emes classiques

Techniques de mod
elisation

Relaxation lin
eaire

Branch & Bound

Principe du Branch & Bound


Si z1 > z2
Alors il est inutile dexplorer le sous-ensemble X2
X2 ne contient pas de solution optimale.
X

X1

X2

z*1

>

z*2

N. Brauner

227

Probl`
emes classiques

Techniques de mod
elisation

Relaxation lin
eaire

Branch & Bound

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

Branch & Bound

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

Branch & Bound

Comment decouper lespace des solutions ?












On resout la relaxation lineaire du probl`eme sur X `a loptimum


Si la solution x est enti`ere, on a trouve loptimum sur X
Sinon pour une variable (au moins) on a : a < xi < a + 1

Dcoupage
du problme

x*

N. Brauner

230

Probl`
emes classiques

Techniques de mod
elisation

Relaxation lin
eaire

Branch & Bound

Branchement sur une variable fractionnaire






P1

On partitionne X en deux nouveaux sous-probl`emes :


X1 = x X et xi a
X2 = x X et a + 1 xi

x*
X

P2
N. Brauner

231

Probl`
emes classiques

Techniques de mod
elisation

Relaxation lin
eaire

Branch & Bound

Exploration de lensemble X2 de solutions









P1

On recherche la meilleure solution sur X2 :


On resout la relaxation lineaire sur P2
On partitionne en 2 nouveaux sous-probl`emes

P3

P4

X
P2

N. Brauner

232

Probl`
emes classiques

Techniques de mod
elisation

Relaxation lin
eaire

Branch & Bound

Exploration de lensemble X1 de solutions












P1

On a trouve la solution optimale sur X2


Existe-t-il une meilleure solution sur X1 ?
La borne superieure ne nous permet pas delaguer X1

P3

P4

N. Brauner

233

Probl`
emes classiques

Techniques de mod
elisation

Relaxation lin
eaire

Branch & Bound

Exploration de lensemble X1 de solutions


On recherche la meilleure solution sur X1 :
On partitionne en 2 nouveaux sous-probl`emes












P6


P5

P3

P4

N. Brauner

234

Probl`
emes classiques

Techniques de mod
elisation

Relaxation lin
eaire

Branch & Bound

Fin du Branch & Bound


La solution optimale sur X est la meilleure des 2 solutions
trouvees sur X1 et X2 .












P6


P5

P3

P4

N. Brauner

235

Probl`
emes classiques

Techniques de mod
elisation

Relaxation lin
eaire

Branch & Bound

Branch & Bound


1

resoudre la relaxation lineaire

brancher sur une variable non enti`ere (`a choisir)


2 sous probl`emes

diviser `a nouveau un nud fils en deux (6= choix possibles)

continuer `a separer sur les nuds dont la valeur est > `a la


borne inf jusqu`a ce quil ny ait plus de branchement possible

On coupe une branche si


La relaxation lineaire na pas de solution
la relaxation lineaire donne une solution enti`ere
la valeur de la borne superieure est inferieure `a la valeur de la
meilleure solution enti`ere obtenue
Note : On ne peut rien couper tant quon na pas de solution
disponible
N. Brauner

236

Probl`
emes classiques

Techniques de mod
elisation

Relaxation lin
eaire

Branch & Bound

Branch & Bound


z = 2x1 + 3x2
sc.

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 ?

Comment decrire une solution ?

Comment decrire une solution realisable ?

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

Utilisation du modeleur AMPL

N. Brauner

244

Plan

N. Brauner

245

AMPL
A faire

N. Brauner

246

Utiliser un solveur via un modeleur


OPL 5.1 et Cplex

N. Brauner

247

Pr
esentation des outils

Mod`
eles

Lenvironnement

Donn
ees

Application

Plan

21

Presentation des outils

22

Mod`eles

23

Lenvironnement

24

Donnees

25

Application

N. Brauner

248

Pr
esentation des outils

Mod`
eles

Lenvironnement

Donn
ees

Application

Plan

21

Presentation des outils

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

Solveurs : CPLEX, LPSolve, XPRESS, MINOS. . .


Langages de modelisation : GAMS (pionnier), OPL, AMPL,
AIMMS. . .
N. Brauner

250

Pr
esentation des outils

Mod`
eles

Lenvironnement

Donn
ees

Application

Le langage de modelisation OPL


OPL = Optimization Programming Language
Langage pour les probl`emes doptimisation
Supporte des mod`eles de programmation mathematiques pour
contraintes ou objectifs lineaires ou quadratiques
variables enti`eres ou reelles

Typage avance pour lorganisation des donnees


Se connecte `a SGBDR ou tableur
Script pour recuperer des donnees et resolutions iteratives

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

Integrer un mod`ele dans une application


Developper un mod`ele OPL avec OPL IDE
(mod`ele et donnees separes)
Compiler dans OPL IDE

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

(C++, MS.net, Java, ASP.net, JSP)

N. Brauner

253

Pr
esentation des outils

Mod`
eles

Lenvironnement

Donn
ees

Application

Plan

21

Presentation des outils

22

Mod`eles

23

Lenvironnement

24

Donnees

25

Application

N. Brauner

254

Pr
esentation des outils

Mod`
eles

Lenvironnement

Donn
ees

Application

Developper un mod`ele simple


On souhaite produire des confitures de rhubarbe et de fraise
Un pot de rhubarbe necessite 1kg de rhubarbe et 3kg de sucre
et rapporte (marge) 3 euros
Un pot de fraise necessite 2kg de fraise et 2kg de sucre et
rapporte (marge) 5 euros
Les quantites disponibles sont 4kg de rhubarbe, 12kg de fraise
et 18kg de sucre.

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

Developper un mod`ele simple


max 3xr
s.c. xr
3xr
xr ,

5xf

4
2xf 12
+ 2xf 18
xf 0

Creation du projet Confitures puis, description du mod`ele


Les variables de decision

dvar float+ xr ;

La fonction objectif

maximize 3*xr + 5*xf;

Les contraintes

subject to {
CSucre
: 3*xr + 2*xf <= 18;
}
N. Brauner

256

Pr
esentation des outils

Mod`
eles

Lenvironnement

Donn
ees

Application

Developper un mod`ele simple


L
editeur

Commentaires en vert
Mots cles en bleu
N. Brauner

257

Pr
esentation des outils

Mod`
eles

Lenvironnement

Donn
ees

Application

Resoudre un mod`ele simple


Lancer la resolution et visualiser la solution
Notification

Problem Browser

Console

N. Brauner

258

Pr
esentation des outils

Mod`
eles

Lenvironnement

Donn
ees

Application

Plan

21

Presentation des outils

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

noter laide sur un mot cle


(keyword help)

N. Brauner

262

Pr
esentation des outils

Mod`
eles

Lenvironnement

Donn
ees

Application

Plan

21

Presentation des outils

22

Mod`eles

23

Lenvironnement

24

Donnees

25

Application

N. Brauner

263

Pr
esentation des outils

Mod`
eles

Lenvironnement

Donn
ees

Application

Separation du mod`ele et des donnees


Dans lexercice confiture, separer les donnees du mod`ele
D
eclaration des donn
ees dans le fichier mod`
ele
Produits
Pots
Profit
Besoin
Quantites dispo.

{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

Separation du mod`ele et des donnees


D
eclaration des contraintes
constraint cap[Produits] ;
D
eclaration des variables de d
ecision
dvar float+ x[Pots] ;
Objectif : maximiser le profit
maximize sum(po in Pots) Profit[po]*x[po] ;
Contraintes : respecter les quantit
es disponibles
subject to{
forall (pr in Produits)
cap[pr]
: sum(po in Pots)
Besoin[po][pr]*x[po] <= Dispo[pr] ;
}

N. Brauner

265

Pr
esentation des outils

Mod`
eles

Lenvironnement

Donn
ees

Application

Separation du mod`ele et des donnees


Dans lexercice confiture, saisir les donnees dans un fichier .dat
D
eclaration des donn
ees dans un fichier .dat
Produits = {"rhubarbe", "fraise", "sucre"} ;
Pots = {"ConfRhubarbe", "ConfFraise"};
Besoin = ][
"ConfRhubarbe":[1, 0, 3],
"ConfFraise":[0, 2, 2]
]];
Profit = [3, 5];
Dispo = [4, 12, 18] ;
N. Brauner

266

Pr
esentation des outils

Mod`
eles

Lenvironnement

Donn
ees

Application

Separation du mod`ele et des donnees


D
eclaration de donn
ees externes dans un mod`
ele
{string} Produits = ... ;
{string} Pots = ...;
int Besoin[Pots][Produits] = ...;
int Profit[Pots] = ...;
int Dispo[Produits] = ...;
Ajouter le fichier de donn
es au projet
Ajouter le fichier de donn
ees `
a la configuration

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

Presentation des outils

22

Mod`eles

23

Lenvironnement

24

Donnees

25

Application

N. Brauner

269

Pr
esentation des outils

Mod`
eles

Lenvironnement

Donn
ees

Application

Production de moteurs davions


Production de deux composantes (A et B) dun moteur davion.
Notification des besoins pour les trois prochains mois.
avril mai
juin
A 1000 3000 5000
B 1000 500 3000
capacites
machine (h) hommes (h) stock (m3 )
avril
400
300
10 000
mai
500
300
10 000
juin
600
300
10 000
capacites
machine (h/unite) homme (h/unite) stock (m3 /unite)
A
0.10
0.05
2
B
0.08
0.07
3
N. Brauner

270

Pr
esentation des outils

Mod`
eles

Lenvironnement

Donn
ees

Application

Production de moteurs davions


Production de deux composantes (A et B) dun moteur davion.
co
uts de production : 20 par unites de A et 10 par unites de B
co
ut de stockage : 1,5% de la valeur
horaire mensuel de base : 225
co
ut de lheure supplementaire de travail : 10
stock fin mars : 500 A et 200 B
stock minimum impose fin juin : 400 A et 200 B
Trouver un plan de production des trois prochain mois qui
minimise les co
uts.
Proposer une modelisation mathematique de ce probl`eme

N. Brauner

271

Pr
esentation des outils

Mod`
eles

Lenvironnement

Donn
ees

Application

Production de moteurs davions


Variables
production : x[produit, mois]
stock : s[produit, mois]
heures supplementaires I [mois]
Objectif : production + stock + heures supplementaires
Contraintes
definition du stock
stock minimum fin juin
capacites des machines
capacites des hommes
capacites des stocks
definition des heures supplementaires
N. Brauner

272

Pr
esentation des outils

Mod`
eles

Lenvironnement

Donn
ees

Application

Production de moteurs davions


Modeliser ce probl`eme avec OPL et le resoudre avec CPLEX
Solution fractionnaire : co
ut 224724.2857

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

Production de moteurs davions


Solution enti`ere : co
ut 224724.5

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

Production de moteurs davions


Programme lineaire avec 15 variables et 20 contraintes
2 produits
3 mois
1 type de machines
1 type dhommes
1 type de stockage

N. Brauner

275

Pr
esentation des outils

Mod`
eles

Lenvironnement

Donn
ees

Application

Pour aller plus loin


Donnees dans Excel
Ilog script
Application VB
Web appli et Java
AMPL : un autre langage de modelisation
http://www.ampl.com

N. Brauner

276

Formulations et coupes

Formulation

In
egalit
e valide

Algorithme de plan s
ecant

Plan

26

Formulation

27

Inegalite valide

28

Algorithme de plan secant

N. Brauner

278

Formulation

In
egalit
e valide

Algorithme de plan s
ecant

Plan

26

Formulation

27

Inegalite valide

28

Algorithme de plan secant

N. Brauner

279

Formulation

In
egalit
e valide

Algorithme de plan s
ecant

Remplissage de Boite (bin packing)


Un ensemble de n objets de hauteur hi
A ranger dans des botes de hauteur H
Minimiser le nombre de botes utilisees
Formulation P en PLNE
xij 1 si i est range dans la bote j
yj 1 si la bote j est utilisee
X
min
yj
jN

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

Remplissage de Boite (bin packing)

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

Resolution des 2 formulations


Le premier PLNE est une formulation du BinPacking
Ajouter les contraintes de symetries, nest-ce pas redondant ?
Essayons de resoudre linstance
15 objets `a ranger dans des botes de hauteur H = 20
hauteurs 6

10 en trois exemplaires chacun

(tr`es) petit exemple


Quelle est la solution optimale ?

N. Brauner

282

Formulation

In
egalit
e valide

Algorithme de plan s
ecant

Resolution des 2 formulations


15 objets `a ranger dans des botes de hauteur H = 20
hauteurs 3 6

10

Resolution sous OPL


Formulation I
(Cuts off)

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

Formulations dun PLNE


Probl`eme combinatoire `a resoudre
max{cx | x X } avec X Z n
Une modelisation du probl`eme en PLNE
poly`edre P = {x R n | Ax b}
Definition
Un PLNE est une formulation de X ssi X = P Z n
Il existe une infinit
e de formulations pour un probl`
eme

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

Algorithme de plan secant

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

Pour tout reel > 0


X

aij xj bi

Linegalite suivante est donc valide (x 0)


X
baij cxj bi
i

En appliquant la remarque, on obtient une coupe de C-G


X
baij cxj bbi c
i
N. Brauner

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

Quel est loptimum de la relaxation lineaire ?


Quel est loptimum entier ?
Quelles coupes de Chvatal-Gomory trouve-t-on ?

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

Algorithme de plan secant

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 )

Le plus simple : reformuler en ajoutant F `a P


Le probl`eme : |F| >> 1
Ajouter toutes les coupes a priori est d
eraisonnable

N. Brauner

297

Formulation

In
egalit
e valide

Algorithme de plan s
ecant

Algorithme de Plan Secant (Cutting Plane)


Probl`eme combinatoire
max{cx | x X } avec X Z n
La description compl`ete de
conv (X ) est inutile
Seule la description autour de
loptimum nous interesse

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

Ajouter cette inegalite pour


ameliorer la relaxation lineaire

N. Brauner

299

Formulation

In
egalit
e valide

Algorithme de plan s
ecant

Algorithme de Plan Secant


On resout le relaxation lineaire sur la nouvelle formulation
On cherche une nouvelle inegalite coupant x 0
On it`ere jusqu`a obtenir une solution x enti`ere

x*
x*
X

N. Brauner

300

Formulation

In
egalit
e valide

Algorithme de plan s
ecant

Algorithme de Plan Secant

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

Comparaison avec le Branch & Bound


Algorithme de Plan Secant : raffine la description du poly`edre
autour de loptimal
Algorithme de Branch & Bound : decoupe le poly`edre en
morceaux

x*
X

N. Brauner

303

Formulation

In
egalit
e valide

Algorithme de plan s
ecant

Branch & Cut


Les algorithmes de plan secant peuvent echouer
`a separer une solution fractionnaire
ou, trop dinegalites sont necessaires
Un algorithme de Branch & Bound doit alors etre utilise.
Branch & Cut
Un Branch & Cut consiste `a appliquer un algorithme de plan
secant sur chaque nud avant de brancher
But : ameliorer la formulation de chaque nud
Nombre de nuds explores << Branch & Bound
Calcul de chaque nud >> Branch & Bound

N. Brauner

304

Formulation

In
egalit
e valide

Algorithme de plan s
ecant

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 ?

Comment decrire une solution ?

Comment decrire une solution realisable ?

N. Brauner

305

Formulation

In
egalit
e valide

Algorithme de plan s
ecant

Dimensionnement de lots (DLS)

demande

production

stock
N. Brauner

306

Formulation

In
egalit
e valide

Algorithme de plan s
ecant

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 h (par jour par unite)
Quel plan de production choisir pour minimiser les co
uts ?

N. Brauner

307

Formulation

In
egalit
e valide

Algorithme de plan s
ecant

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

308

Formulation

In
egalit
e valide

Algorithme de plan s
ecant

Formulations dun PLNE


On obtient la formulation AGG
min ft yt + hIt
t

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

Que se passe-t-il si on essaie de la resoudre ?

N. Brauner

309

Formulation

In
egalit
e valide

Algorithme de plan s
ecant

Limite du Branch & Bound


OPL ne parvient pas `a resoudre ! Pourtant :
Le probl`eme est facile et lexemple est petit
Il existe des algorithmes qui la resolvent instantanement
La formulation naturelle nest pas efficace
Peut-on formuler differemment le probl`eme ?

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

Comparaison des 2 formulations


Formulation AGG
O(T ) variables binaires et continues
O(T ) contraintes
Formulation UFL
O(T ) variables binaires
O(T 2 ) variables continues
O(T 2 ) contraintes
La seconde formulation est beaucoup plus grosse
Est-ce le bon crit`
ere de comparaison pour un PLNE ?

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

Heureusement, les logiciels commerciaux font du Branch &


Cut avec des familles generiques de coupes
Jouer sur le parametrage peut etre utile.
Enrichir la formulation initiale en connaissant la structure du
probl`eme (symetries,. . .) aussi !

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

Lensemble F est en general defini par des contraintes.


Son cardinal peut etre tr`es grand (ici potentiellement 2n )

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

Challenge de loptimisation combinatoire


Comment trouver la meilleure solution sans parcourir toutes les
solutions ?
Utiliser la structure du probl`eme
Enumeration implicite : eliminer a priori des solutions
Detecter que des solutions sont mauvaises ou irrealisables
sans les evaluer explicitement.
Programmation dynamique : reduire lespace de recherche `a
des sous-solutions optimales.

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

Le probl`eme P se decompose en sous-probl`emes P1 , . . . , Pk .


Loptimum sur P sobtient `a partir des optimaux des
sous-probl`emes.

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

Calcul recursif de loptimum


I1
I
I2
I3

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

Deux sous-probl`emes `a resoudre


Sur F 0 : probl`eme P restreint aux n 1 premiers objets
Sur F 00 : egalement restreint aux n 1 premiers objets
mais structure des solutions realisables ?
N. Brauner

330

Optimisation Combinatoire

Principe de Sous-optimalit
e

Programmation Dynamique

Dominances

Decomposition en sous-probl`emes

Decrire F 00 comme {S F|n S} est inefficace


enumeration explicite de toutes les solutions
F 00 doit pouvoir etre decrit comme un sous-probl`eme de P
N. Brauner

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

Quel est loptimum de OPT (I ) par rapport `a lobjet n ?


Comment ecrire le principe de sous-optimalite ?

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

Dessinez le graphe detat pour 4 objets de poids 1 et un sac


de capacite 3.
Que remarque-t-on ?

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

Calculer le tableau OPT

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.

Le temps de resolution est alors


X

t(x1 , . . . , xl )

(x1 ,...,xl )Etats

Souvent on a une borne uniforme sur t(x1 , . . . , xl ) T


Le temps de resolution est majore par
T #Etats

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

Calcul dune solution optimale


La programmation dynamique fournit OPT (I )
Comment obtenir une solution S ?
Conserver des pointeurs dans le tableau : chemin dans le
graphe detat
Methode de Backtracking
Les 2 methodes consistent `a remonter le calcul de OPT (I )
Donner une solution optimale pour le sac `a dos `a partir du
tableau OPT de la programmation dynamique

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

Algorithme de Wagner & Within


Exprimer un principe de sous-optimalite en utilisant la
dominance
Quel est maintenant le temps de resolution ?

N. Brauner

348

Optimisation Combinatoire

Principe de Sous-optimalit
e

Programmation Dynamique

Dominances

Bilan de la programmation dynamique


Paradigme pouvant etre tr`es efficace
Pas de condition sur la forme de la fonction objectif...
. . .mais la propriete de sous-optimalite doit etre verifiee
Gourmand en memoire
Devient inoperant si lespace des etats est grand
Necessite de trouver des dominances pour le reduire

N. Brauner

349

Methodologie et etudes de cas

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...

Implementer une solution


solveurs, librairies, algorithmes connus, heuristiques,
metaheuristiques, programmation dynamique,
programme ad hoc

Analyser et interpreter les resultats


Valider par rapport `a la demande initiale
Iterer avec le demandeur si necessaire

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

Trouver les schemas de decoupe qui minimisent la perte

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

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
depots. 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)
Determiner les emplacements des stations services qui
permettent de minimiser les co
uts pour les donnees suivantes.

N. Brauner

362

M
ethodologie

D
ecoupe de rouleaux

Charbon

Localisation

Planification dexp
eriences

Approvisionnement des stations service


6 depots possibles, 7 stations services
depot
A
B
C
D
E
F

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

Approvisionnement des stations service


Co
uts de transport
1
2
3
4
5
6
7

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

On dispose de 8 barres de cuisson


Le robot peut traiter les 8 barres simultanement
La temperature et la duree de chaque barre est programmable.

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

Les buts de lindustriels


Planifier les experiences `a effectuer sur un horizon de lordre de 1
mois afin de
Maximiser lutilisation du robot (investissement important)
Finir au plus tot pour obtenir les resultats des tests
De nouvelles experiences sont `a planifier chaque mois

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

Vous aimerez peut-être aussi