Vous êtes sur la page 1sur 121

U NIVERSIT DU H AVRE - UFR DES S CIENCES ET T ECHNIQUES

Cours dOptimisation Combinatoire et Mtaheuristiques


Approches avances de rsolution exacte - Partie 3

Cdric Joncour
Bureau B112 (aile B, 1er tage)
cedric.joncour@univ-lehavre.fr
http://lmah.univ-lehavre.fr/~joncour

Master 2 - Anne 2013 - Semestre 2

U NIVERSIT DU H AVRE - UFR DES S CIENCES ET T ECHNIQUES

Cours dOptimisation Combinatoire et Mtaheuristiques


Approches avances de rsolution exacte - Partie 3

Cdric Joncour
Bureau B112 (aile B, 1er tage)
cedric.joncour@univ-lehavre.fr
http://lmah.univ-lehavre.fr/~joncour

Master 2 - Anne 2013 - Semestre 2

Rfrences bibliographiques
Recherche Oprationnelle - Tome 1
de Jacques Teghem
Programmation mathmatique
de Michel Minoux
Optimisation combinatoire 1-5
de Vangelis Th. Paschos
Optimisation discrte
dAlain Billionnet
Combinatorial Optimization : Theory
and applications (traduction)
de Bernhard Korte et Jens Vygen

Integer Programming
de Laurence A. Wolsey
Integer and Combinatorial Programming
de George L. Nemhauser et Laurence A. Wolsey
Computers and intractibility : a guide
to the theory of NP-completeness
de Michael R. Garey et David S.
Johnson
Linear Programming : Foundations
and extensions
de Robert J. Vanderbei

Pour plus dinfos... en.wikipedia.org & www.roadef.org/


Livre blanc de la recherche oprationnelle dit par la ROADEF

Introduction

Le contexte de loptimisation 1/2


Dfinition de loptimisation

La science cherchant analyser et rsoudre analytiquement ou


numriquement les problmes qui consistent dterminer le meilleur
lment dun ensemble, au sens dun critre quantitatif donn
Un problme : Question que lon se pose lie une situation ?
Analyser et rsoudre : Comprendre le problme puis proposer une
ou des solutions pour rpondre au problme
Critre quantitatif : Toutes les solutions nont pas la mme importance
Meilleur lment : Chercher la solution la plus intressante
Domaines dapplications

Civil (services publics, hopitaux, transport public, informatique)


Industriel (automobile, aviation, nergie, tlcom, production)
Financier (gestion de portefeuille)
Militaire (gestion des ressources, logistique)

Introduction

Le contexte de loptimisation 2/2


Loptimisation et la recherche oprationnelle

Prendre des dcisions : choix faire/dcider


organiser un plan, contrler les oprations
allouer des ressources, ranger des tches
dfinir des chemins ou des tournes

En optimisant un critre (ou objectif) : but cherch du problme


Et en respectant des contraintes : restrictions lies au problme
Quelques exemples simples

Organiser sa journe de travail pour finir temps chaque tche


Plannifier ses dpenses pour rpondre ses principaux besoins
Trouver le plus court chemin entre son appartement et luniversit
But recherch de loptimisation

Trouver la meilleure solution ralisable pour un problme donn

Introduction

Terminologie
Problme doptimisation : problme de la forme
min / max{f (x) : x S}
Variable de dcision : lment x

Rn reprsentant linconnu

Rgion ralisable : ensemble des solutions (affectation de valeur x)


vrifiant les contraintes du problme
ensemble S
Solution ralisable : solution vrifiant les contraintes du problme
x est ralisable x S
Critre optimiser : fonction objectif f : S

Solution optimale : meilleur solution ralisable selon lobjectif f


x S est optimale f (x ) f (x ), x S
But recherch de loptimisation

Etant donn f : S

R, trouver x S tel que f (x ) f (x),

x S

En pratique, la solution x peut savrer difficile trouver

Introduction

Objectif du cours
Etude de problmes combinatoires classiques

Problme du sac--dos et du placement de botes


Problme du plus court chemin et du voyageur de commerce
Problme de coloration de graphe
Mthodes avances de rsolution exacte

Notion de qualit de formulation


Rsolution des problmes de grand taille (variables/contraintes)
Mthodes de dcomposition des problmes
Approche polydrale
Quelques algorithmes ddis (si on a le temps)

Classification des problmes


Problmes dordonnancement

Introduction

Sommaire du cours

Premire partie I
T ECHNIQUES

DE MODLISATION

Graphes

Graphes non orients


Graphe non orient

Un graphe non orient G est un couple (V , E) tel que


E {X V : |X | = 2}
V : ensemble des sommets
E : ensemble des artes
Une arte est une paire de sommets :
{u, v } E avec u, v V
1
5

6
7

10

9
4

8
3

Soit le graphe non orient G = (V , E) avec


V ={1, 2, 3, 4, 5, 6, 7, 8, 9, 10}

{1, 2}, {2, 3}, {3, 4}, {4, 5}, {5, 1}


E = {1, 6}, {2, 7}, {3, 8}, {4, 9}, {5, 10}

{6, 8}, {6, 9}, {7, 9}, {7, 10}, {8, 10}

Graphes

Graphes orients
Graphe orient

Un graphe orient G est un couple (V , A) tel que A V V


V : ensemble de sommets
A : ensemble darcs
Chaque arc est un couple de sommets :
(u, v ) A avec u, v V
1
5

Soit le graphe orient G = (V , A) avec


V =n{1, 2, 3, 4, 5}
o
A = (1, 2), (2, 3), (3, 4), (4, 5), (5, 1)

Graphes

Graphes pondrs

Graphe pondr

Un graphe pondr est un graphe auquel on a associ une (ou


plusieurs) fonction de valuation
Un graphe peut tre pondr/valu sur ses sommets et/ou ses artes
15
pu

cuv

pv

15

10
10

4
30

45

10

3
10

3
5

25

5
9

10

Optimisation combinatoire

Schma dtude dun problme doptimisation


Quelles sont les donnes du problme ?
rcolter les donnes du problme, comprendre le problme,...
Comment modliser le problme ?
Quelles dcisions doit-on prendre ?
slectionner/placer des objets, dfinir un ordre ou une quantit,
choisir un vnement, effectuer une opration particulire...
Quel est lobjectif recherch ?
maximiser un profit, minimiser des cots ou une quantit,...
Quels sont les contraintes du problme ?
respecter des capacits ou des contraintes de prcdence,...

Quelle est la complexit de ce problme ?


Comment rsoudre le problme ?
concevoir des algorithmes (exacts vs approchs) donnant des
solutions ralisables/optimales, dvelopper des mthodes
alternatives ou hybrides,...

Optimisation combinatoire

Quest ce quun problme doptimisation combinatoire ?


Loptimisation combinatoire/discrte

Soit N = {e1 , . . . , en } un ensemble fini discret avec :


cj un cot de llment j N
Soit S un ensemble de sous-ensembles ralisables de N
Trouver unensolution X de
maximum :
o S de cot minimum/profit
X
min / max c(X ) : X S
avec c(X ) =
cj fonction de cot
X N

X N

jX

N : ensemble des dcisions possibles


S : ensemble des solutions ralisables (ensemble de dcisions)
Comme lespace des candidats solutions est discret fini, il est possible
dnumrer chacune des solutions ralisables
de vrifier quune solution est ralisable
de calculer le cot dune solution ralisable
de conserver la meilleure solution aprs numration exhaustive

Optimisation combinatoire

Le problme de la recherche densemble stable


Problme densemble stable de poids max (max weight independant set)

Trouver un sous ensemble de sommets S dun graphe, de poids max,


tel que chaque sommet de S nest reli aucun autre sommet de S
Applications

Stable de cardinalit maximale


Allocation de frquences
Gestion de conflit
Coloration de graphe
Donnes : G = (V , E) graphe non orient avec
wi poids du sommet i V
Objectif :

slectionner des sommets du graphe dont le poids total est


maximale

Contraintes : choisir un seul sommet entre deux sommets adjacents

Optimisation combinatoire

Le problme de sac--dos
Problme du sac--dos (knapsack problem)

source : wikipdia - auteur : Dake

Choisir un sous-ensemble dobjets dutilit maximale placer dans un


sac tel que la capacit du sac soit respecte
Applications

Gestion de portefeuille
Dcoupe de matriaux
Chargement de camions
Placement de botes

Donnes : W : capacit maximale du sac


I : ensemble de n objets avec, pour chaque objet i I,
pi lutilit et wi le poids
Objectif :

choisir des objets afin de maximiser lutilit totale

Contraintes : ne pas dpasser la capacit du sac

Optimisation combinatoire

Le problme du plus court chemin


Problme du plus court chemin (shortest path problem)

Trouver un chemin de longueur minimale entre deux villes donnes :


une ville de dpart (source s) et une ville destination (puits t)

10

1
7

7
5

10

Applications
5

Route la moins coteuse


t

2
3

Route la rapide dans un rseau


Transfert de ressource/information
Problme de flot de cot minimum

Donnes : G = (V , A) graphe orient avec deux sommets s et t, et


cij longueur de larc (i, j) A
Objectif :

choisir des artes en minimisant la longueur totale

Contraintes : former un chemin entre s et t

Optimisation combinatoire

Le problme darbre couvrant de poids minimum


Problme de larbre couvrant de poids minimum (min spanning tree)

Choisir un sous-ensemble dartes dun graphe de cot minimum tel


que ce sous-ensemble forme un arbre couvrant du graphe
3

2
5

3
6

4
2

5
3

Applications

Construction dun rseau


Installation dun pipeline
Connection lectrique
Recherche dun arbre de Steiner

Donnes : G = (V , E) graphe non orient, connexe avec


pe poids de larte e E
Objectif :

slectionner des artes afin de minimiser le poids total

Contraintes : former un arbre laide des artes


couvrir tous les sommets laide dun arbre

Optimisation combinatoire

Le problme du voyageur de commerce


Problme du voyageur de commerce (travelling salesman problem)

Trouver un cycle hamiltonien dans un graphe de longueur minimale :


chaque sommet du graphe est visit une et une seule fois
2

Applications
5
3

1
4

Tournes de vhicules
Connection de composants dans
un circuit intgr
Ordonnancement des tches avec
de changement de configuration

Donnes : G = (V , E) graphe non orient avec


ce longueur de larte e E
Objectif :

choisir des artes afin de minimiser la longueur totale

Contraintes : former une tourne laide des artes


visiter chaque ville une et une seule fois avec un tour

Optimisation combinatoire

Le problme de recouvrement
Problme de recouvrement (covering problem)

Couvrir cot minimum un ensemble de secteurs laide dun


sous-ensemble de sites potentiellement utilisables
Applications

Localisation dentrepts/antennes
Gestion demploi du temps
Plannification/ordonnancement
Coloration de graphe
Tournes de vhicule
Donnes : N = {1, . . . , n} : ensemble de secteurs couvrir
M : ensemble de sites potentiels avec, pour tout i N,
ci le cot dinstallation du site i
et Ei N le sous ensemble de secteurs couvert par i
Problme : choisir des lments de M pour couvrir N moindre cot

Optimisation combinatoire

Difficult des problmes doptimisation combinatoire


Problme du voyageur de commerce

Trouver un tour de cot minimal tel que chaque client est visit une et
une seule fois
Reprsentation : chaque permutation des indices dfinit un tour :
= (1 , 2 , . . . , k , . . . , n )
o k = i indique que la ville i est visite en k e position
Le cot associ une solution est :
cot() = c1 2 + c2 3 + + cn1 n + cn 1
Nombre de solutions possibles

Si le graphe est complet, le nombre de tours possibles est


n
n!

10
> 106

20
> 1018

100
> 10157

(n1)!
2

1000
> 102567

On ne peut pas numrer toutes les possibilits en pratique !

Mthodes de modlisation

Modlisation par la programmation mathmatique


Problme doptimisation combinatoire
nX

cj : X S

min

X N

jX

Posons x {0, 1}|N| tel que


(

xj =

1,
0,

si llment j est choisi


sinon

j N

Alors le problme se formule


nX
o
min
cj xj : x P {0, 1}|N|
jN

o P espace form par les contraintes exprimant les proprits


satisfaire pour tre dans lensemble S :
x P {0, 1}|N| X S
P {0, 1}|N| : ensemble des solutions ralisables discret et fini
Les points de x s P {0, 1}|N| sont les vecteurs dincidence de la

Mthodes de modlisation

Modlisation du problme du stable de poids maximum


Donnes : G = (V , E) graphe non orient avec
wi poids du sommet i V
Problme combinatoire : max
X V

Variables : xi =
Objectif :

nP

wi : X est un stable

iX

1 si le sommet i est choisi


0 sinon

i V

Maximiser le poids des


Xsommets slectionns :
max
wi xi
iV

Contraintes :

Ne pas slectionner deux sommets adjacents :


(xi = 0) (xj = 0),
{i, j} E
[ou]
xi xj = 0,
{i, j} E
Domaine de dfinition des variables :
xi {0, 1},
i V

Est-il possible de formuler ce problme laide de contraintes linaires ?

Mthodes de modlisation

Modlisation du problme du sac--dos


Donnes : W : capacit maximale du sac
I : ensemble de n objets avec, pour chaque objet i I,
pi lutilit et wi le poids
Problme combinatoire : max
X I

Variables : xi =
Objectif :

nP

pi :

iX

wi W

iX

1 si lobjet i est choisi


0 sinon

i I

Maximiser lutilit desX


objets slectionns :
max
pi xi
iI

Contraintes :

Respect
X de la capacit du sac :
wi xi W
iI

Domaine de dfinition des variables :


xi {0, 1},
i I
Est-il possible damliorer la formulation ?

Mthodes de modlisation

Modlisation du problme du plus court chemin


Donnes : G = (V , A) graphe orient avec deux sommets s et t, et
cij longueur de larc (i, j) A
Problme combinatoire : min

X A

Variables : xij =
Objectif :

n P

cij : X forme un chemin s t

(i,j)X

1 si larc (i, j) est choisi


0 sinon

(i, j) A

Minimiser la longueur des arcs choisis : min

cij xij

(i,j)A

Contraintes :

Contraintes de respect du flot


:

1 si i = s
X
X
xji
xij = 0 si i 6= s, t ,

1 si i = t
jV + (i)
jV (i)
Domaine de dfinition des variables :
xij {0, 1},
(i, j) A

Existe-t-il une formulation idale du problme ?

i V

Mthodes de modlisation

Modlisation du problme de larbre couvrant de poids m


Donnes : G = (V , E) graphe non orient, connexe avec
pe poids de larte e E
Problme combinatoire : min
X E

Variables : xe =
Objectif :

n P

pe : X forme un arbre couvrant

eX

1 si larte e est choisie


0 sinon

e E

Minimiser le poids des artes choisies : min

pe xe

eE

Contraintes :

Choisir
X|V | 1 artes pour former un arbre :
xe = |V | 1
eE

Eviter X
dobtenir un sous-graphe non connexe :
xe |S| 1, S V
eE(S)

Domaine de dfinition des variables :


xe {0, 1},
e E
Comment rsoudre une formulation avec un nombre lev de contraintes ?

Mthodes de modlisation

Modlisation du problme de voyageur de commerce


Donnes : G = (V , E) graphe non orient avec
ce cot de larte e E
Problme combinatoire : min
X E

Variables : xe =
Objectif :

n P

ce : X est un cycle hamiltonien

eX

1 si larte e est choisie


0 sinon

e E

Minimiser les cots des artes choisies : min

ce xe

eE

Contraintes :

VisiterX
chaque sommet une fois :
xe = 2,
i V
eE(i)

Eliminer
Xles sous-tours non connects :
xe |S| 1, S V : 2 |S| |V | 1
eE(S)

Domaine de dfinition des variables :


xe {0, 1},
e E
Est-il possible de formuler le problme autrement ?

Mthodes de modlisation

Modlisation du problme de recouvrement


Donnes : N = {1, . . . , n} : ensemble de base couvrir
{Ei N}iM ensemble de sous-ensembles de N avec
ci cot associ lensemble Ei , pour i M
et ai n un vecteur des lments de Ei (aij = 1 si j Ei )

Problme combinatoire : min

X M

Variables : xi =
Objectif :

nP
iX

ci :

Ei = N

iX

1 si llment Ei est choisi


0 sinon

i M

Minimiser les cots des ensembles choisis :

ci xi

iM

Contraintes :

Couvrir
X chaque lment de base au moins une fois :
aij xi 1
j N
iM

Domaine de dfinition des variables :


xi {0, 1}
i M
Comment rsoudre une formulation avec un nombre lev de variables ?

Mthodes de modlisation

Problmes de recouvrement/partitionnement/remplissage
Problme de recouvrement (set covering) : min

nP

X M

min

ci xi :

iM

ci xi :

iM

nP
iX

iM

ci xi :

ci :

Ei = N,

iX

o
Ei =

iX

aij xi = 1 j N; xi {0, 1} i M

X
iM

iM

X M

max

Problme de remplissage (set packing) : max

iX

aij xi 1 j N; xi {0, 1} i M

X M

iX

Ei = N

iM

Problme de partitionnement : min / max

min / max

ci :

nP
iX

ci :

Ei =

iX

aij xi 1 j N; xi {0, 1} i M

Mthodes de modlisation

Cas particuliers du problme de recouvrement 1/2


Problme de coloration de graphe (graph coloring problem)

Colorier avec le moins de couleur tous les sommets dun graphe tel que
chaque paire de sommets adjacents nont pas la mme couleur

Donnes : G = (V , E) graphe non orient


Objectif :

chercher une coloration minimale des sommets

Contraintes : deux couleurs diffrentes pour les sommets adjacents


Cas particuliers du problme de recouvrement

N : ensemble des sommets du graphe


M : ensemble des stables du graphe avec ci = 1, i M

Mthodes de modlisation

Cas particuliers du problme de recouvrement 2/2


Problme de placement de botes (bin packing problem)

Placer un ensemble de botes de longueurs diffrentes dans le moins


de cartons possible de longueur fixe
Botes
1
wi : 4

5
4

5
1

W =6

Donnes : N : ensemble de n botes avec


wi longueur de la bote i N et W longueur des cartons
Objectif : minimiser le nombre de cartons utiliss
Contraintes : ne pas dpasser la capacit dun carton
Cas particuliers du problme de partitionnement

N : ensemble des botes


M : ensemble des remplissages possibles du carton

Mthodes de modlisation

Forme gnrale dun problme combinatoire


Un problme doptimisation
n Xcombinatoire se modlise
o comme suit :
|N|
min
cj xj : x P {0, 1}
jN

Cependant, certaines dcisions seront similaires


Forme gnrale dune modlisation dun problme combinatoire
n
o

min f (x) : x P

Zn

Objectif de ce cours

Apprendre :
modliser nos problmes par des programmes linaires en
nombres entiers
rsoudre des programmes linaires en nombres entiers de faon
exacte

Programmation linaire

La programmation linaire
Programme linaire

Optimiser une fonction linaire sous des contraintes linaires

(PL)

max

s. c.

cx
Ax b
x 0

Rn , b Rm et A Rmn : donnes du problme


x Rn : variables/inconnus du problme
c

cx : fonction objectif du problme (fonction linaire)


Ax b, x 0n : contraintes linaires du problme
Polydre/Rgion ralisable : ensemble des solutions ralisables

P = {x

Rn : Ax b, x 0n }

Programmation linaire

Reprsentation graphique
Programme linaire

(PL)
avec P = {x

Z PL = max {cx : x P}

Rn : Ax b, x 0n }
cx = z
cx = z1

Pour une solution x donn, on notera z = cx la valeur de cette solution

Programmation linaire

Ide de la rsolution
Remarques

Contraintes et objectif linaire existence dun optimum sur un point


extrme de la rgion ralisable
Donc, il suffit dexaminer les points extrmes
Ide de rsolution
optimum

Passer de points extrmes en points


extrmes jusqu loptimum

Programmation linaire en nombres entiers

Extension de la programmation linaire


Soit le programme linaireen nombres entiers :
max cx

Ax b
x P
(PLE)

x 0n

x n

Problmatique

Certaines valeurs ne peuvent tre fractionnaires : dcision oui/non,


quantit indivisible,...
Rajouter une condition supplmentaire : x

Zn

difficile rsoudre

Programmation linaire en nombres entiers

Modlisation par la programmation linaire entire


Le problme du stable de poids maximum
Question : Quels sommets slectionner afin de maximiser le poids
total tel que les sommets slectionns soient non
adjacents ?
Donnes : G = (V , E) graphe non orient avec
wi poids du sommet i V
(

Variables : xi =
Objectif :

1 si le sommet i est choisi


0 sinon

i V

Maximiser le poids des


Xsommets choisis :
max
wi xi
iV

Contraintes :

Ne pas slectionner deux sommets adjacents :


xi + xj 1,
{i, j} E
Domaine de dfinition des variables :
xi {0, 1},
i V

Programmation linaire en nombres entiers

Quelques astuces de modlisation : objectifs particuliers


Soient e1 , . . . , en des expressions linaires
1

modlisation dun objectif du type min max {ei } :


i=1,...,n

rajouter une variable y


remplacer lobjectif par min y
rajouter les contraintes y ei ,

i = 1, . . . , n

une modlisation similaire est possible pour max min {ei }


i=1,...,n

modlisation dun objectif du type min

n
P

|ei | :

i=1

rajouter n variables yi

R avec
i = 1, . . . , n
n

remplacer lobjectif par min

yi

i=1

rajouter les contraintes yi ei , yi ei ,

i = 1, . . . , n

Remarque

La linarisation de min min {ei } et de max


i=1,...,n

n
P
i=1

|ei | est plus difficile

Programmation linaire en nombres entiers

Quelques astuces de modlisation : variables particulire


Soient v1 , . . . , vn , l, u des valeurs relles quelconques
Soit M une valeur numrique suffisamment grande
1
modlisation dune variable discrte x {v1 , . . . , vn } :
rajouter n variables binaires yi {0, 1} avec i = 1, . . . , n
n
n
P
P
yi = 1
utiliser les contraintes x =
vi yi et
i=1
2

i=1

modlisation dune variable binaire y {0, 1} dactivation de


bornes :
si y = 1 alors l x u, sinon x = 0
utiliser la contrainte ly x uy

souvent utilis pour modliser des cots fixes dutilisation dune


ressource
modlisation de variables incompatibles xi , xj :
(xi = 0) (xj = 0)

rajouter deux variables binaires yi , yj {0, 1}


utiliser les contraintes xi M(1 yi ), xj M(1 yj ), yi + yj 1

Programmation linaire en nombres entiers

Quelques astuces de modlisation : contraintes logiques


Soient e, e1 , . . . , en des expressions linaires
Soient l, u, v1 , . . . , vn des valeurs relles quelconques
Soit M une valeur suffisamment grande
1
modlisation dune contrainte disjonctive exclusif (e u) (e l) :
rajouter une variable binaire y {0, 1}
utiliser les contraintes e u + M(1 y ),
2

e l My

modlisation dune contrainte disjonctive exclusif du type


n
W

(ei vi ) :

i=1

rajouter n variables binaires yi {0, 1} avec i = 1, . . . , n


n
P
utiliser les contraintes
yi = 1, ei vi + M(1 yi ), i = 1, . . . , n
i=1
3

modlisation dun produit de variables binaires xi xj avec


xi , xj {0, 1} :
rajouter une variable binaire yij {0, 1}
remplacer le produit xi xj par yij dans les contraintes
rajouter les contraintes xi yij , xj yij , xi + xj 1 + yij

Programmation linaire en nombres entiers

Vocabulaire en programmation linaire entire

xPL

(PLE) Z = max {cx : x P


o P = {x

xPLE

Zn }

Rn : Ax b, x 0n }

Vocabulaire

Solution ralisable : Solution x P n


(solutions ralisables : points bleus)
Relaxation linaire : Problme max{cx : Ax b, x 0n , x
(valeur de la relaxation linaire : carr vert)

Rn }

Polydre entier : Polydre tel que tous les points extrmes sont des
points entiers (polydre entier : contour pointill gris)

o ZPLE
et ZPLE

= Z
ZPLE
= cxPLE
cxPL
PL
sont les valeurs de loptimum et de la relaxation linaire

Programmation linaire en nombres entiers

Arrondir la solution de la relaxation linaire ?


x2

Exemple 1 :
max
x1 + x2
s. c. 2x1 + 2x2 1
8x1 6x2 3
x1 , x2

xPL

xPLE

x1

Arrondir la solution donne pas forcment de solutions ralisables !


x2

Exemple 2 :
max 25x1 + 16x2
s. c. 50x1 + 31x2 250
3x1 2x2 4
x1 ,
x2

xPL

xPLE

x1

Arrondir la solution donne pas forcment une solution optimale !

Programmation linaire en nombres entiers

Enumrer exhaustivement toutes les solutions ?


Problme du sac--dos

Choisir un sous-ensemble dobjets dutilit maximale respectant une


contrainte de capacit
Variables : xi = 1 si lobjet i N est rang dans le sac ; 0 sinon
P

Formulation : max
px
P iN i i
s. c.
iN wi xi W
xi {0, 1} i N
Explosion combinatoire : Nombre de sous ensembles possibles 2n
complexit
algorithme
n
n2
n3
n5

10
.00001 s
.0001 s
.001 s
.1 s

2n

.001 s

taille instance/temps rsolution


20
30
40
50
.00002 s .00003 s .00004 s .00005 s
.0004 s
.0009 s
.0016 s
.0025 s
.008 s
.027 s
.064 s
.124 s
3.2 s
24.3 s
1.7 m
5.2 m
1s

17.9 m

12.7 j

35.7 a

60
.00006 s
.0036 s
.216 s
13.0 m
36600 a

On ne peut pas numrer toutes les solutions en pratique !

Programmation linaire en nombres entiers

Classes de complexit des problmes 1/2


Problme dcisionnel

Problme dcisionnel : problme algorithmique pos sous la forme


de question dont la rponse est soit oui, soit non :
tant donn une instance du problme, dire si elle vrifie les conditions
La classe N P

Un problme dcisionnel appartient la classe N P ssi il existe un


algorithme non dterministe rsolvant le problme en temps polynomial
Pour les problmes de la classe N P, il existe un certificat qui dtermine,
en temps polynomial, la vracit dune solution
Classification des problmes

classe N P

N PC

Programmation linaire en nombres entiers

Classes de complexit des problmes 2/2


La classe P : problmes faciles de la classe N P

Un problme dcisionnel (PD) appartient la classe P ssi il existe un


algorithme dterministe rsolvant le problme en temps polynomial
Les problmes de la classe P appartiennent la classe N P : P N P
La classe N P-complet : problmes de N P connus comme difficiles

Un problme dcisionnel (PD) appartient la classe N PC ssi


le problme (PD) appartient la classe N P et
il est aussi difficile que tous les autres problmes de la classe N P
P PD,
P N P
Les problmes de la classe N P-complet (ou N PC) sont les problmes
les plus difficile de la classe N P
Question ouverte ?

P = NP ?

ou

P=
6 NP ?

Programmation linaire en nombres entiers

Difficult des problmes doptimisation


Soit le problme doptimisation cominatoire (PO) :
(PO)

max{c(x) : x S}

Problme dcisionnel (PD) dun problme doptimisation (PO)

Question : tant donn z

R, existe-t-il x S tel que cx z ?

La classe N P-difficile

Un problme P est N P-difficile ssi il est aussi difficile que tous les
autres problmes de la classe N P :
P 0 P,
P 0 N P
Classes de complexit des problmes doptimisation

Un problme doptimisation (PO) appartient la classe N P-facile


si son problme dcisionnel (PD) associ appartient la classe P
Un problme doptimisation (PO) appartient la classe N P-difficile
si son problme dcisionnel (PD) associ appartient la classe
N PC

Programmation linaire en nombres entiers

Difficult de la programmation linaire


Soit le programme linaire :
avec P = {x

(PL)

max{cx : x P}

: Ax b, x 0n }

Problme dcisionnel dun programme linaire

Question : Etant donn z

R, existe-t-il x P tel que cx z ?

Classe de complexit dun programme linaire

Le problme dcisionnel dun programme linaire appartient la classe


P (dmonstration par lalgorithme de lellipsode)
Les programmes linaires sont N P-faciles ! !
Remarques

En pratique, lalgorithme du simplexe converge plus rapidement


Un programme linaire a un nombre infini de solutions ralisables

Programmation linaire en nombres entiers

Difficult de la programmation linaire en nombres entier


Soit le programme linaire en nombres entiers :
(PLE)

avec P = {x

max{cx : x P

Rn : Ax b, x 0n }

Zn }

Problme dcisionnel dun programme linaire en nombres entiers

Question : Etant donn z

R, existe-t-il x P Zn tel que cx z ?

Classe de complexit dun programme linaire en nombres entiers

Le problme dcisionnel dun programme linaire en nombres entiers


appartient en gnral la classe N P-complet
Les programmes linaires entiers sont en gnral N P-difficiles ! !
Remarques

Certains problmes appartiennent cependant la classe P


Un programme linaire entier a un nombre dnombrable (voire fini)
de solutions ralisables

Programmation linaire en nombres entiers

Quelques concepts de la programmation linaire entire

xPL

(PLE) Z = max {cx : x P


avec P = {x
0n }

Rn : Ax

Zn }

xPLE

b, x

Notions de bornes

BI Optimum BS
Borne primale (BP) : Borne infrieure (BI) sur le profit maximum
Exemple : valeur dune solution ralisable
Borne duale (BD) : Borne suprieure (BS) sur le profit maximum
Exemple : valeur dune relaxation du problme
Qualit de formulation : Qualit des bornes (cart faible des bornes)
Exemple : bonne description du polydre entier
Pour un problme de minimisation, les bornes sont BD=BS et BP=BI

Deuxime partie II
T ECHNIQUES

CLASSIQUES DE

RSOLUTION

Mthodes de rsolution

Rsolution par numration intelligente


Soit le problme doptimisation combinatoire initial :
(PO)

max{f (x) : x S} avec S

Rn

Objectif

Eviter une numration exhaustive


Rsolution exacte dun programme linaire entier

Procder des numrations intelligentes pour trouver loptimum


en fixant des valeurs aux variables au fur et mesure
Algorithme de sparation et valuation (Branch-and-Bound) :
numration base sur le principe de bornes
Programmation dynamique (Dynamic Programming) :
numration base sur le principe de dominance de solutions
Programmation par contraintes (Constraint Programming) :
numration base sur la dtection dirralisabilit

Mthodes de rsolution

Algorithme de sparation et valuation


Soit le problme doptimisation combinatoire initial :
(PO 0 )

max{f (x) : x S 0 } avec S 0

Rn

Ide de rsolution : diviser pour mieux rgner

Rsoudre p problmes indpendants (PO k ) plus restreints :


(PO k )

max{f (x) : x S k }

avec S 0 =

Sp

k =1 S

Algorithme de sparation et valuation

A chaque tape, subdiviser lensemble S k en utilisant les procdures :


Evaluation : estimer la valeur de la meilleure solution ralisable
possible dun ensemble de solutions S k
Sparation : sparer lensemble des solutions ralisables courant S k
en p sous-ensembles indpendants S n+1 , . . . , S n+p
Elaguation : liminer les ensembles de solutions S l pour lesquels on
garantit quils ne contiennent pas loptimum
Cheminement : choisir le prochain ensemble de solutions S l tudier

Mthodes de rsolution

Algorithme de sparation et valuation : reprsentation


Reprsentation graphique dun algorithme de sparation et valuation

Utiliser un arbre enracin (appel arbre de sparation et valuation) :


un nud reprsente un sous-ensemble de solutions S rsoudre
un arc est cr entre deux nuds chaque sparation
nud 0
S0

max{f (x) : x S 0 }

nud 1
S1

nud 2
S2

nud 3
S3

max{f (x):x S 1 }

max{f (x):x S 2 }

max{f (x):x S 3 }

nud p
Sp

max{f (x):x S p }

S0
S1

S2

S3

Sp

Mthodes de rsolution

Procdures importantes
Procdure dvaluation : recherche dune estimation (borne duale)

Calculer une borne duale (rsoudre une relaxation du problme)


Procdure de sparation : choix et fixation de dcision (branchement)

Branchement sur des variables : choisir une variable puis fixer une
valeur en traitant les diffrents cas possibles
:


ex : S {xi = 1 } S {xi = 2 } S {xi = p }
Branchement sur des contraintes
:


P
P
ex : S { ni=1 xi = 0} S { ni=1 xi = 1}
Fixer un ordre relatif de certains lments
Procdure dlaguation : rgle de dominance de bornes

Eliminer un nud si :
lvaluation est moins bonne que la meilleure solution trouve
la meilleure solution ralisable du nud courant est connue
le nud courant ne contient pas de solutions ralisables

Mthodes de rsolution

Diagramme dun algorithme de sparation et valuation


Initialisation problme (PO 0 )
n = 0, L = {(PO 0 )}, Z = , x = vide
quoi initialiser ?

L vide ?
non

quel problme ?

oui

Problme combinatoire
(PO i ) Z i = max{cx : x S i }
Arrt: retourner (Z , x )

Choisir un problme (PO k ) de L


Poser L = L \ {(PO k )}

Rsoudre une relaxation sur (PO k )


Soit Z k la valeur de la relaxation
et x k la solution de la relaxation
quelle relaxation ?

Sk = ?
non

oui

Problme lagu (PO k )

Zk Z ?

oui

Problme lagu (PO k )

oui

Problme lagu (PO k )


Poser Z = Z k , x = x k

non
xk
comment sparer ?

ralisable ?
non

Sparer (PO k ) en p problmes (PO n+1 ), . . . , (PO n+p )


Poser L = L {(PO n+1 ), . . . , (PO n+p )}, n = n + p

Mthodes de rsolution

Arbre de sparation et valuation pour un PLE


Soit le programme linaire entier :
max{cx : x S = P

Zn }

avec P = {x

Rn : Ax b, x 0}

Algorithme de sparation et valuation utilisant une relaxation linaire

Evaluation : utiliser une relaxation linaire :


rsoudre max{cx : x P}
choisir une variable xi tel que xi =
/

N pour la relaxation

Sparation : sparer le domaine P en deux en ajoutant une contrainte


disjonctive sur la variable
xi :


S {xi bc} S {xi de}
nud 0
Z

xi bc

nud 1
S 1 = P {xi bc}
Z 1 = max

S0 = P n
= max cx : x P

S0

S
xi de

Zn

cx : x P {xi bc}

nud 2
S 2 = P {xi de}
Z 2 = max

Zn

cx : x P {xi de}

Mthodes de rsolution

Exemple de rsolution exacte


Rsolvons le programme linaire entier suivant :
n

max z = 2x1 + x2 : (x1 , x2 ) P


(

avec P =

(x1 , x2 )

R2

Z2

x x2 3, 6x1 + 5x2 36
: 1
0 x1 ,
0 x2 4

Procdure dvaluation choisie

Evaluation : relaxation linaire


La solution de la relaxation linaire est
x2

51 18
11 , 11

de valeur

6x1 + 5x2 = 36
x1 = 4

x1 x2 = 3

x1

120
11

Mthodes de rsolution

Exemple darbre de sparation et valuation 1/4


z=
2x1 + x2
x1 x2 3
6x1 + 5x2 36
P=
x2 4

x1 , x2 0

rsoudre max{z}

x2

xP

Nud 0 0
Eval : Z0 = 10.91
x = (4.64, 1.64)

Z0

x1

Mthodes de rsolution

Exemple darbre de sparation et valuation 2/4


z=
2x1 + x2
x1 x2 3
6x1 + 5x2 36
P=
x2 4

x1 , x2 0

rsoudre max{z}
Nud 0 0
Eval : Z0 = 10.91
x = (4.64, 1.64)

x2 b1.64c
rsoudre


max z : x2 1
xP

x2

xP

Nud 1 1
Eval : Z1 = 9
x = (4, 1)
Solution ralisable

x2 d1.64e

2
Z2

Nud 2 2 rsoudre


Eval : Z2 = 10.67 max z : x2 2
xP
x = (4.33, 2)

Z1

x2 2
x2 1

x1

Mthodes de rsolution

Exemple darbre de sparation et valuation 3/4


z=
2x1 + x2
x1 x2 3
6x1 + 5x2 36
P=
x2 4

x1 , x2 0

xP

Nud 0 0
Eval : Z0 = 10.91
x = (4.64, 1.64)

Nud 1 1
Eval : Z1 = 9
x = (4, 1)

max z :
xP

x1 4
x2 2

4 =

3
Z3

x2 d1.64e

Z1

x1

Nud 2 2 rsoudre


Eval : Z2 = 10.67 max z : x2 2
xP
x = (4.33, 2)

Solution ralisable
x1 b4.33c
rsoudre
n

x1 4 x1 5

xP

x2 b1.64c
rsoudre


max z : x2 1

x2

rsoudre max{z}

Nud 3 3
Eval : Z3 = 10.4
x = (4, 2.4)

x1 d4.33e
Nud 4 4 rsoudre
n
o
Eval : Z4 = max z : x1 5
x2 2
xP
Irralisable
Elaguer par irralisibilit

Mthodes de rsolution

Exemple darbre de sparation et valuation 4/4


z=
2x1 + x2
x1 x2 3
6x1 + 5x2 36
P=
x2 4

x1 , x2 0

rsoudre max{z}

xP

Nud 1 1
Eval : Z1 = 9
x = (4, 1)

max z :
xP

x1 4
x2 2

max z :
xP

x1 4
x2 = 2

x2 3
Z5

x2 2

Z1

x1

Nud 2 2 rsoudre


Eval : Z2 = 10.67 max z : x2 2
xP
x = (4.33, 2)
x1 d4.33e

Nud 3 3
Eval : Z3 = 10.4
x = (4, 2.4)

x2 b2.4c
rsoudre
n

Z6

x2 d1.64e

Solution domine
x1 b4.33c
rsoudre
n

Nud 0 0
Eval : Z0 = 10.91
x = (4.64, 1.64)

x2 b1.64c
rsoudre


max z : x2 1

x2

xP

Nud 4 4 rsoudre
n
o
Eval : Z4 = max z : x1 5
x2 2
xP
Irralisable
Elaguer par irralisibilit
x2 d2.4e

Nud 5 5
Eval : Z5 = 10
x = (4, 2)

Nud 6 6
Eval : Z6 = 10
x = (3.5, 3)

Solution ralisable

Elaguer par dominance

rsoudre
n
max z :
xP

x1 4
x2 3

Mthodes de rsolution

Mcanismes importants
1

Initialisation :
calculer une solution ralisable initiale (heuristique gloutonne)
simplifier la formulation par des pr-traitements

Choix des bornes :


choisir une bonne relaxation (qualit relaxation vs temps calcul)
calculer la valeur dun problme dual (existe pas toujours)
ajouter des contraintes valides (amlioration des bornes)
choisir une formulation de qualit (optimum proche relaxation)

Choix des branchements :


variable la plus prioritaire ou la plus fractionnaire (pour la relaxation)
favoriser lmergence de solutions entires

Choix du cheminement des nuds :


Parcours en profondeur : mergence de solutions ralisables
Parcours des meilleurs nuds (valeur de la borne duale) : limiter le
nombre de nuds tudier

Autres procdures :
utiliser des heuristiques primales : construire une solution partir
dune relaxation
nettoyer la formulation aprs branchement

Qualit de formulation

Formulation valide dun problme doptimisation comb.


Soit le problme doptimisation combinatoire :
(PO) max{cx : x S} avec S

Rn

Notons S = {x s }ps=1 lensemble des points entiers ralisables (en bleu)


P2
P1

Contrairement la programmation linaire, un problme entier


peut se formuler de diffrentes manires
Formulation valide

Un polydre P = {x n : Ax b} tel que les seuls points entiers


contenus dans le polydre P sont les solutions ralisables au problme
S=P n

Qualit de formulation

Formulation naturelle du problme de coloration de graph


variables modlisant laffectation dune couleur chaque sommet
Donnes : G = (V , E) graphe non orient avec V = {1, . . . , n}
K = {1, . . . , k } ensemble de k couleurs (ex : k = n)
(

1 si la couleur c est affecte au sommet i


0 sinon
i V , c K

Variables : xic =
(

yc =
Objectif :

1 si la couleur c est utilise


0 sinon

minimiser le nombre de couleur utilise : min

Contraintes :

c K
P

cK

yc

affectation dune couleur chaque sommet :


P
xic = 1,
i V
cK

les sommets adjacents nont pas la mme couleur :


xic + xjc 1,
{i, j} E, c K
naffecter des couleurs que si la couleur est utilise :
P
xic nyc ,
c K
iV

Qualit de formulation

Formulation par lots du problme de coloration de graphe


variables modlisant des lots de sommets avec une mme couleur
Donnes : G = (V , E) un graphe non orient avec V = {1, . . . , n}
(

Variables : wij =

1 si i est dans le lot de sommet de rfrence j


0 sinon
i, j V : {i, j}
/ E, i j

wii =
Objectif :

1 si le sommet i est la rfrence dun lot


0 sinon

minimiser le nombre de sommets rfrence :

i V
wii

iV

Contraintes :

affectation dune couleur chaque sommet :


P
wij = 1,
i V
jV :ji

les sommets adjacents nont pas la mme couleur :


wik + wjk 1,
{i, j} E, k V (k i, j)
naffecter des couleurs que si la couleur est utilise :
P
wij nwjj ,
j V
iV :ji

Qualit de formulation

Qualit de formulation dun problme entier


Soit le problme doptimisation combinatoire :
(PO) Z = max{cx : x S} avec S

Rn

Dominance entre formulations

Soient P 1 et P 2 deux polydres valides du problme (PO)


P 1 domine P 2 ssi tout point de P 1 est dans P 2 : P 1 P 2
Comparaison des relaxations linaires

Soient P 1 et P 2 deux polydres valides de (PO) tel que P 1 P 2


Z Z PL (P 1 ) Z PL (P 2 )
Bonne formulation

Formulation dont la relaxation linaire issu du polydre associ donne


une enveloppe assez ajuste des solutions entires
Pour une bonne formulation, la relaxation linaire
donne une borne duale proche de loptimum entier
offre ventuellement une approximation (par arrondi) de loptimum

Qualit de formulation

Qualit des formulations pour le problme de coloration

La formulation par lot domine-t-elle la formulation naturelle ?


Soit Pnat (resp. Plot ) le polydre associ la formulation naturelle (resp.
par lot).
Lemme

Le polydre Plot domine le polydre Pnat


Cependant, Plot est loin de la meilleure formulation

Qualit de formulation

Amlioration des formulations du problme de coloration

Amlioration de la formulation naturelle

Remplacer xic + xjc 1, {i, j} E, c K par :


xic + xjc yc , {i, j} E, c K
Remplacer

iV

xic nyc , c K par :


xic yc , i V , c K

Amlioration de la formulation par lots

Remplacer wik + wjk 1, {i, j} E, k V (k i, j) par :


wik + wjk wkk , {i, j} E, k V (k i, j)
Remplacer

wij n wjj , j V par :


wij wjj , i, j V (j i)

iV :ji

Qualit de formulation

Remarques sur les symtries dans les formulations


Symtries des solutions

Permutation des valeurs affectes aux variables correspondant une


solution similaire
Pour viter dnumerer plusieurs solutions quivalentes, il est
intressant de rajouter des contraintes supplmentaires
Exemple du problme de coloration de graphes

La formulation naturelle possde des symtries de solution :


chaque permutation de couleur sur les sommets donne
des solutions ralisables quivalentes
Nouvelles contraintes pour la formulation naturelle

Ne pas utiliser la c e couleur si la c 1e nest pas utilise :


yc yc1 , c K \ {1}
Colorier moins de sommets avec la c e couleur quavec la c 1e :
P
P
c K \ {1}
iV xic
iV xi,c1 ,

Qualit de formulation

Formulation idale dun problme entier


Soit le problme combinatoire
(PO) max{cx : x S}
Notons S = {x s }ps=1 lensemble des points entiers ralisables (en bleu)

P2
P1

P 1 P 2 P 1, P 2
conv (S)

conv (S) P 1 , P 2

Formulation idale

Polydre dcrivant lenveloppe convexe des solutions entires :


P = conv(S)
Cest--dire que les points extrmes de P sont entiers

Qualit de formulation

Obtention de la formulation idale dun problme entier


Soit le problme combinatoire

P1

(PO) max{cx : x S}

conv (S)

Comment obtenir une description complte de la formulation


idale pour un problme ?
Motivations

Si lenveloppe convexe des points entiers est connu, il suffit de rsoudre


un problme linaire (simplex retourne un point extrme)
Dbut de rponse

Il est aussi difficile dobtenir une description de la formulation idale


dun problme entier que de rsoudre ce problme entier

Qualit de formulation

Obtention de la formulation idale dun problme entier


Soit un programme entier : max{cx : Ax b, x 0, x

Zn }

Solution de la relaxation linaire

La solution de la relaxation linaire est de la forme (xB , xN ) = (B 1 b, 0)


Daprs la rgle de Cramer
B 1 = com(B)
avec com(B) comatrice de B
det(B)
Consquence

Si det(B) = 1 pour toute base B et b

Zm alors xPL Zn

Matrices totalement uni-modulaire (TU)

Une matrice A est totalement uni-modulaire (TU) ssi toutes


sous-matrices carres de A a un dterminant gal 1 ou 0
Proprit des matrices totalement uni-modulaire

(PL) max{cx : Ax b, x 0} a une solution optimale entire pour tout


b m ssi A est totalement uni-modulaire

Qualit de formulation

Matrice totalement uni-modulaire


Exemples de matrice totalement uni-modulaire

Matrice dincidence dun graphe


(1, 2)
1 +1
2 1
3
0
4
0

(1, 3)
+1
0
1
0

(2, 1)
1
+1
0
0

(2, 4)
0
+1
0
1

(3, 1)
1
0
+1
0

Matrice avec la proprit


de uns-conscutifs

0 0 1 1 0 0 0
0 1 1 1 1 1 1
0

Applications

Problmes de flot
Problmes de couplage

(3, 4)
0
0
+1
1

Troisime partie III


T ECHNIQUES

DE RSOLUTION PAR

PLANTS COUPANTS / PAR GNRATION DE


COLONNES

Thorie polydrale

Aspects gomtriques : polydres


Hyperplans et polydres

Hyperplan : H = {x
Demi-espace ferm :

Rn : Pnj=1 j xj P
= , 6= 0n }
n
D = {x R : nj=1 j xj , 6= 0n }

Polydre : intersection
de demi-espaces ferms et dhyperplans
n
o
P
P = x n : nj=1 aij xj bi i = 1, . . . , m

x2
x1 + 2x2 = 8

2x1 x2 = 0

Un hyperplan : 2x2 + x1 8 = 0
Un demi-plan ferm :
2x2 + x1 8 0
Un
( polydre born :
)
x1 + 2x2 8, 5x1 5x2 18
x2 + x1 3, 2x1 x2 0, x2 1

x2 = 1
x2 + x1 = 3

5x1 5x2 = 18

x1

Soit M = {1, . . . , m} est lensemble des indices des contraintes


P
chaque ingalit nj=1 aij xj bi sera not Ai x bi avec i M

Thorie polydrale

Aspects gomtriques : polytopes


Soit le polydre P = {x

Rn : Ax b}

Polydres borns

Polydre born (ou polytope) : P est born si


il existe u 0 tel que x P, |xi | u, i = 1, . . . , n

Polydre born

Polydre non born

Caractrisation des polydres non borns

Le polydre P est non born ssi il existe un point x P et une direction


d 6= 0n n tel que
x + d P, pour tout 0

Thorie polydrale

Aspects gomtriques : points particuliers dun polydre

Un polydre est de la forme P = {x n : Ax b} =


6
Pour la suite, on considre seulement des polydres rationnels
Cest--dire que A mn , b m

Notations

(A= , b= ) : matrice
correspondant aux lignes de (A, b) dincides

=
M = i M : Ai x = bi , pour tout point x P
(A , b ) :matrice correspondant aux lignes de (A, b) dindices

M = i M : Ai x < bi , pour au moins un point x P
n

Ainsi, P se rcrit P = x

Rn : A=x = b=, Ax b

Points particuliers dun polydre

Point intrieur du polydre P : point x P tel que i M , Ai x < bi


Proposition

Si P est non vide, alors P contient un point intrieur

Thorie polydrale

Aspects gomtriques : points affinements indpendants


Points affinements indpendants

Soient E un ensemble de n et x 1 , . . . , x des points de E


Les points x 1 , . . . , x sont affinements indpendants si lunique solution
(1 , . . . , )

tel que

k = 0 et

k =1

k x k = 0

est

k = 0, k

k =1

Vecteurs linairements indpendants

Soient E un espace vectoriel de n et v 1 , . . . , v des vecteurs de E


Les vecteurs v 1 , . . . , v sont linairements indpendants si la solution
(1 , . . . , )

R du systme

k v k = 0

est

k = 0, k

k =1

Proposition

les points x 1 , . . . , x sont affinements indpendants ssi


les vecteurs x 2 x 1 , . . . , x x 1 sont linairements indpendants

Thorie polydrale

Aspects gomtriques : dimension dun polydre


Soit le polydre P = {x

Rn : A=x = b=, Ax b} =6

Dimension dun polydre

Dimension du polydre P : dim(P) = k si le nombre maximum de


points de P affinement indpendants est k + 1
Polydre de pleine dimension : polydre P tel que dim(P) = n
Proposition

La dimension de P est dim(P) = n rang(A= )


Do, un polydre P est de pleine dimension si
P na pas de contraintes satisfaites lgalit pour tout point x P
P admet une description minimale unique P = {x n : A0 x b0 }

x2

x2 dim(Q) = 1

dim(P) = 0

x1

x2

x1

dim(R) = 2

x1

Thorie polydrale

Aspects gomtriques : enveloppes convexe et conique


Espace convexe

Combinaison convexe des points S = {x s }ps=1 : x n tel que


P
P
x = ps=1 s x s avec ps=1 s = 1 et s 0, s = 1, . . . , p
Enveloppe convexe des points S = {x s }ps=1 :
n

conv(S) = x

Rn : x =

p
P

s x s ,

s=1

p
P

s = 1, s 0 s = 1, . . . , p

s=1

Combinaison positive des vecteurs V = {r t }qt=1 : r


P
r = qt=1 t v t avec t 0, t = 1, . . . , q

Rn tel que

Enveloppe conique des vecteurs V = {r t }qt=1 :


n

cone(V) = r

Rn : r = P t r t , r 0 r = 1, . . . , q
q

t=1

0n
Enveloppe convexe

Enveloppe conique
ou cne gnr par V

Thorie polydrale

Lien entre optimisation combinatoire et prog. linaire


Proposition

Soient S n un ensemble fini, dnombrable de points ralisables et


c n un vecteurnde cot, alors
o
n
o
max cx : x S = max cx : x conv(S)

Remarque

Si S

Rn est un ensemble fini, alors conv(S) est un polydre born

Consquence

Si conv(S) est connu, alors il suffit de rsoudre un programme linaire


pour rsoudre le problme max{cx : x S}
Il est donc utile de sintresser la gomtrie des polydres

Thorie polydrale

Ingalits valides en programmation linaire 1/2

Soit le polydre P = {x n : Ax b} =
6
Quelles sont les ingalits ncessaires la description de P ?
Ingalits linaires valides

R
R

Ingalit valide : x avec n et est valide pour P si


P {x n : x }
Cest--dire que lingalit est satisfaite par tous les points de P
Proposition

x est une ingalit valide pour P ssi


il existe u m
+ tel que uA et ub

Consquence

Toute combinaison dingalits de P est une ingalit valide :


pour tout vecteur u m
+ , (, ) = (uA, ub) est valable

Thorie polydrale

Ingalits valides en programmation linaire 2/2


Soit Z PL = max{4x1 + 3x2 : (x1 , x2 ) P}
avec(
x1 + 2x2 4 (a),
P = (x1 , x2 ) 2 :
2x1 + 2x2 7 (b),

5x1 + x2 20
(c)
x1 , x2 0
(d) (e)

Exemples dingalits valides pour P


x2

x1 = 12

4x1 + 3x2 = 24

(a)

P
(b)

2x1 1 valide car :


en posant u = ( 32 , 23 , 0, 0, 0) on a
uA = (2, 0) et ub = 2
et ainsi = uA et ub
2
3 (a)

+ 32 (b) donne x1 1
ici u = ( 23 , 32 , 0, 0, 0)

(c)

x1

(a) + (c) donne 4x1 + 3x2 24


ici u = (1, 0, 1, 0, 0)
remarque : Z PL 24 et u reprsente
une solution duale

Thorie polydrale

Aspects gomtriques : faces dun polydre


Soit le polydre P = {x

Rn : Ax b, A=x = b=} =6

Faces

Face :

F est une face de P sil existe une ingalit valide x


(induisant la face) tel que :
F = {x P : x = }

Face propre : F est une face propre de P si F 6= et F 6= P

face propre

P
facette
face non propre

Remarques

Toute face propre dfinit un polydre tel que dim(F ) dim(P) 1


Une face F = {x P : x = } est non vide ssi max{x : x P} =

Thorie polydrale

Aspects gomtriques : facettes dun polydre


Soit le polydre P = {x

Rn : Ax b, A=x = b=} =6

Facettes

Facette :

F est une facette de P si F est une face propre de P telle


que :
dim(F ) = dim(P) 1

Remarque

Les facettes sont les faces propres maximales (au sens de linclusion)
Proposition (condition suffisante la description de P)

Supposons que P 6= . Alors toute contrainte de A x b qui ninduit


pas une facette est redondante

Thorie polydrale

Description du polydres par les facettes


Proposition

Un sous-ensemble F non vide de P est une face ssi il existe un


sous-systme A0 x b0 de A x b tel que F = {x P : A0 x = b0 } =
6
Proposition (condition ncessaire la description de P)

Pour toute facette F de P, une des ingalits dfinissant F est


ncessaire la description de P
Thorme

Le polydre P dfinissant P est minimal si et seulement si


les lignes de A= sont linairement indpendantes
toute ingalit de A x b dfinit une facette distincte de P
Corollaire

Si P est un polydre de pleine dimension, alors il existe un systme


linaire minimal unique qui dcrit P

Thorie polydrale

Aspects gomtriques : points extrmes

Soit le polydre P = {x n : Ax b} =
6
Quels sont les points ncessaires la description de P ?
Points extrmes dun polydre

Point extrme du polydre P : xe P point extrme de P si


il nexiste pas x 1 , x 2 P (x 1 6= x 2 ) tel que xe = 21 x 1 + 12 x 2

Lensemble convexe des points


extrmes de P est not :
conv(P) = conv({x s }ps=1 )

Proposition

xe P est un point extrme ssi {xe } est une face de dimension 0


Remarque

Les points extrmes sont les faces propres minimales

Thorie polydrale

Aspects gomtriques : rayons extrmes


Soit le polydre P = {x

Rn : Ax b} et le cne C = {r Rn : Ar 0m }

Rayons dun polydre

Rayon du polydre P : er rayon de P si er C \ {0n } (er 6= 0n )


Rayon extrme du polydre P : er C rayon extrme de P si
il nexiste pas r 1 , r 2 (r 1 6= r 2 ) rayons de P tel que er = 12 r 1 + 12 r 2
x2

Lensemble conique des rayons


extrmes de P est not :
P

cne de rcession : C = {r : Ar 0m }
x1

cone(P) = cone({r t }qt=1 )


En particulier, le cne de rcession de P vrifie cone(P) = C

Proposition
e
r C est un rayon extrme ssi {er : 0} est une face de C de dim 1

Thorie polydrale

Proprits diverses sur les polydres


Soit P = {x

Rn : Ax b} =6

Proprits des polydres borns

aucun rayons
max{cx : x P} admet une solution optimale en un point extrme
pour tout point extrme x , il existe un vecteur cot c
x est optimal pour max{cx : x P}

Rn tel que :

Proprits des polydres non borns

r cone(P) est un rayon de P ssi


{y n : y = x + r , 0} P pour tout x P
Cest--dire que tout dplacement suivant un rayon est ralisable

si lobjectif crot le long dun rayon r cone(P) de P alors le


problme est non born : sil existe r cone(P) tel que cr > 0 alors
x P, (x + r )

Thorie polydrale

Description du polydre par les points et rayons


Soit un polydre P = {x

Rn : Ax b} tel que rang(A) = n

Thorme

Soient X = {x s }ps=1 et R = {r t }qt=1 les points et rayons extrmes de P


Alors, pour tout vecteur c n , le problme max{cx : x P}

est irralisable ssi p = 0


est non born ssi p > 0 et il existe t tel que cr t > 0
a une solution optimale z ssi p > 0 et cr t 0 pour tout t
Thorme de Minkowski

Si P 6= 0, alors
(

P=

x=

p
X
s=1

s x +

q
X
t=1

t r :

p
X

s = 1, s 0 s, t 0 t

s=1

Avec {x s }ps=1 et {r t }qt=1 lensemble des points et rayons extrmes de P


P = conv(P) + cone(P)

Thorie polydrale

Rsum de la situation
1

Un polydre peut tre dcrit de deux faons diffrentes :


soit laide de facettes
soit laide de points/rayons extrmes

Application loptimisation combinatoire :


essayer de dterminer des facettes de conv(S)
essayer de connatre les points extrmes de conv(S)

Chacune de ces visions donne des mthodes diffrentes :


1

Gnration de coupes

Gnration de colonnes

Soit
(PO)

max{cx : x conv(S})

Comment trouver des ingalits valides pour (PO) ?


Comment montrer que ces ingalits sont des facettes ?

Thorie polydrale

Optimisation et Sparation
Soit le problme doptimisation :
(PO) min{cx : x P}
avec P = {x n : Ax b}

Problme de sparation (PS)

Etant donn x n , dterminer si x P


Et si x
/ P, dterminer un hyperplan sparant x de P
Cest--dire chercher une ingalit valide x de P tel que x >
x
P
x =

Thorme optimisation/sparation

Le problme doptimisation (PO) est rsolu en temps polynomial ssi le


problme de sparation (PS) est rsolu en temps polynomial

Approche polydrale

Application loptimisation combinatoire


Soit un problme doptimisation
combinatoireo:
nX
cj : S S
max
SN

jS

o
N = {e1 , . . . , en } est un ensemble de base fini
S est une famille de sous-ensemble de N formant lensemble des
solutions ralisables
vecteur dincidence

A chaque lment S de lensembe S est associ un vecteur dincidence


x S {0, 1}|N| :
(
1 si j S
xjS =
0 sinon
Ainsi, lensemble des solutions ralisables S est dcrit par :
S = {x s }ps=1
o x s est un vecteur dincidence dune solution ralisable S

Approche polydrale

Description du polytope des solutions


Soit un problme doptimisation combinatoire :
max{cx : x S}
avec S = {x s }ps=1
Polytope des solutions
nP
p

conv(S) =

s
s=1 s x :

Pp

s=1 s = 1, s 0 s = 1, . . . , p

Proposition

Si xe
/ conv(S), alors il existe une ingalit qui spare xe et conv(S)
Thorme

Un ensemble non vide de points P n est un polytope ssi il existe un


ensemble de points S tel que P = conv(S)
Consquences

Si S est fini, conv(S) est donc un polytope


On a quivalence entre max{cx : x S} et max{cx : x conv(S)}

Approche polydrale

Motivations dune tude polydrale 1/2


Soit S = P

Z2

P=

avec

R2

(x1 , x2 )

x1 + 2x2 4 (a),
:
2x1 + 2x2 7 (b),

5x1 + x2 20
(c)
x1 , x2 0
(d) (e)

x2

(a)

()

S = {x t }Tt=1 : points ralisables entiers

()

()

conv (S)

(c)

(b)

Ici, S =

()

(2, 2), (2, 3), (3, 1)


(3, 2), (3, 3), (4, 0)

x1

conv(S) =

(x1 , x2 )

x + x2 4
(),
: 1
3x1 + x2 12 (),

x1 2 ()
x2 3 ()

Est-il possible de trouver rapidement lenveloppe convexe des


solutions ralisables ?

Approche polydrale

Motivations dune tude polydrale 2/2


Soit un problme doptimisation combinatoire
(POC) max{cx : x S}
avec S = {x s }ps=1 un ensemble fini de points ralisables
Condition de rsolution de (POC) par la programmation linaire

Connatre les ingalits linaires dcrivant conv(S)


Objectif : dcrire le polydre conv(S)
e b
e tel que conv(S) = {x
Trouver A,

e b}
e
Rn : Ax

Conjecture

Pour les problmes linaires entiers difficile , il nexiste pas de


description compact de conv(S) (nombre polynomial de contraintes)
Cependant on peut tenter dobtenir une meilleure approximation de
conv(S) (surtout autour de lobjectif) par lajout dingalits valides

Approche polydrale

Ingalits valides en programmation linaire entire 1/2


Soit un problme doptimisation combinatoire
(POC) max{cx : x S}
avec S = {x s }ps=1 un ensemble fini de points ralisables
Ingalits valides pour un problme doptimisation combinatoire

Ingalit valide : x avec n et est valide pour S si


x est satisfaite pour tout point x S

conv (S)

Lien avec le polytope des solutions

une ingalit valide est valide pour S ssi elle est valide pour le polydre
conv(S) : conv(S) {x n : x }

Approche polydrale

Ingalits valides en programmation linaire entire 2/2


Soit Z = {7x1 + 2x2 : (x1 , x2 ) S} avec S = P
(

P=

(x1 , x2 )

Z2

x1 + 2x2 4 (a),
:
2x1 + 2x2 7 (b),

Z2 et

5x1 + x2 20
(c)
x1 , x2 0
(d) (e)

Exemples dingalits valides pour S


x2

7x1 + 2x2 30.2

x1 + x2 = 4

Z
(a)

PL

x2 = 3
x1 + x2 = 6

5(a) + (c) :j11x


40 x2 40
11
k2
x2

(c)
(b)

x1
Z

Comme x 2 ,
7
(b) : x1 + x2
l 2m
x1 + x2 40
11 = 4 valide
40
11

= 3 valide

4(a) + 3(c) : xj1 +k x2


x1 + x2

76
11

76
11

= 6 valide

Approche polydrale

Ajout de contraintes simples : contraintes logiques


Arrondissement des bornes

Z : li xi ui }, alors dli e xi bui c est valide


Exemple : soit S = {x Z : 0.2 x 1.3} x = 1
Soit S = {x

Ajout de contraintes logiques

Soit un problme entier avec des variables binaires : xi {0, 1}, i


Dduire des contraintes logiques simples partir de contraintes
impliquant plusieurs variables x
Exemple : considrons
S = {(x1 , x2 , x3 , x4 ) {0, 1}4 : 7x1 + 3x2 4x3 2x4 1}
si x1 = 1, on doit avoir x3 = x4 = 1, donc
x1 x3 et x1 x4
si x2 = 1, on doit avoir x3 = 1 ou x4 = 1, donc
x2 x3 + x4
si x1 = x2 = 1 alors la contrainte est viole, donc
x1 + x2 1

Approche polydrale

Approche polydrale
Le problme de sparation

Etant donn x n , dterminer si x conv(S)


/ conv(S), dterminer un hyperplan sparant x de conv(S)
Et si x
Cest--dire chercher une ingalit valide x de P tel que x >
Cependant, conv(S) nest pas connu a priori. Que faire ?
Approche polydrale

Etude consistant dterminer des ingalits valides pour approximer le


polydre conv(S)
Gnrer des ingalits valides laide de combinaisons de
contraintes et darrondis
Trouver des ingalits valides en tudiant les proprits
combinatoires du problme

Approche polydrale

Ingalits gnriques : coupes de Chvtal-Gomory


Proposition

Soit S = {y

Z : y b}, lingalit suivante est valide pour S :


y bbc

Exemple

Soit S = P 2 la rgion entire avec P = {x 2 : 11x1 + 11x


j 2 k 76}
En posant y = x1 + x2 , on en dduit lingalit x1 + x2 76
11 = 6

Proposition

Soit A est une matrice m n avec (A1 , . . . , An ) les colonnes de A


Soit S = P n avec P = {x n : Ax b, x 0n }
Alors, pour tout u m
+ , lingalit suivante est valide pour S

Pn

i=1 buA

i cx

bubc

Approche polydrale

Exemple de coupes de Chvtal-Gomory

Soit S = P 2 avec
P = {x 2+ : 7x1 2x2 14 (a), 2x1 2x2 3 (b), x2 3 (c)}

x2

(c)

x1 = 2

x1 x2 = 1

(a)
(b)

x1

En prenant u =
En prenant u =

( 17 , 0, 72 ), on obtient lingalit x1 20
7
1
(0, 2 , 0), on obtient lingalit x1 x2

=2
j k
3
2

=1

Soit S = P
avec
3
P = {x + : 13x1 + 20x2 + 11x3 30 (a), x1 + x2 1 (b)}
1 2
32
En prenant u = ( 11
, 11 ), on obtient 15
11 x1 + 2x2 + x3 11
Et donc,
32
x1 + 2x2 + x3 d 11
e=3

Approche polydrale

Utilisation des coupes de Chvtal-Gomory


Les ingalits de Chvtal-Gomory sont-elles utilisables ?
Thorme

Chaque ingalit valide pour S peut tre obtenue en appliquant la


procdure de Chvtal-Gomory un nombre fini de fois
Applicabilit des ingalits de Chvtal-Gomory

En thorie, toutes les ingalits valides qui dcrivent conv(S)


peuvent tre obtenues laide de la procdure
Cependant, dterminer les bons cfficients u restent difficile
En pratique, cette procdure est utilise pour prouver que des
(familles d)ingalits sont valables
Lobjectif est de trouver des familles dingalits valides

Approche polydrale

Qualit des ingalits valides


Soit S = P

Zn avec P = {x Rn : Ax b, x 0n }

Dominance dingalites valides

Lingalit valide x de S est domine par lensemble des ingalits


valides i x i (i = 1, . . . , m) sil existe m
+ tel que :


, 6=

m
X
i=1

i i ,

m
X
i=1

i i ,

m
X
i=1

i i

et

m
X

i i

i=1

Le rang de Chvtal par rapport P de lingalit valide x est :


0 si elle est quivalente (ou domine) aux ingalits Ax b
k si elle est quivalente (ou domine) une combinaison
dingalits de rang infrieur k 1 et obtenues par la procdure
Plus le rang de lingalit est lev, meilleure sera lingalit
Description des faces du polydre conv(S)

Si F est une face non vide de conv(S) de dimension p 1, alors il existe


p points x 1 , . . . , x p S affinements indpendants tel que x i F , i

Approche polydrale

Techniques de preuves de facettes


Soit x une ingalit valide de conv(S) = {x
Supposons que conv(S) est de pleine dimension

e b}
e
Rn : Ax

Preuve de ncessit : montrer que x est essentielle la


description de conv(S) : montrer quil existe un point x n tel que
x > et
e b
e
x satisfaisait toutes les autres ingalits de Ax

Preuve directe : exhiber n points affinements indpendantes


x 1 , . . . , x n de S tels que
x i ,
i = 1, . . . , n

Preuve par maximalit : montrer que la face F induit par x


nest contenue dans aucune facette :
Supposons quil existe une facette de conv(S) induite par
0 x 0 tel que F {x conv(S) : 0 x = 0 }
montrons que, dans ce cas, 0 = avec > 0

Approche polydrale

Application au polytope des stables 1/3


Etude du problme de la recherche du stable de cardinalit maximal
Donnes : G = (V , E) un graphe non orient
Objectif : trouver un ensemble stable de cardinalit maximale
S
|V | vecteur dincidence du stable S :
Polytope des stables : soit
( x
1 si u S
xuS =
u V
0 sinon
Le polytope des stables est not

P(G) = conv x S
Modlisation : max{

uV

R|V | : S V est un stable

xu : x P(G)}

Proposition

Le polytope P(G) est de pleine dimension


Proposition
P

u xu une ingalit valide de P(G) distincte de xu 0, u V

Soit

uV

Si lingalit induit une facette de P(G), alors u 0, u V

Approche polydrale

Application au polytope des stables 2/3


max

n P

xu : xu + xv 1, {u, v } E; xu {0, 1}, u V

uV

Proposition

Les ingalits xu 0, u S induisent des facettes de P(G)


Clique

Clique : ensemble C V tel que {u, v } E pour tout u, v C (u 6= v )


Contraintes valides sur les cliques

Soit C V une clique de cardinalit maximale, alors


P
xu 1 est une ingalit valide induisant une facette de P(G)
uC

Contraintes valides sur les cycles impairs

Soit C un cycle de longueur impair,


j k alors
P
|C|
x

= |C|1
est valide
uC u
2
2

Approche polydrale

Application au polytope des stables 3/3


max

n P

xu : xu + xv 1, {u, v } E; xu {0, 1}, u V

uV

Roue dun graphe

Une roue de longueur k est le graphe suivant :


vk

v1

v2

v0
v6

v5

v3
v4

Cette roue sera not R = {v0 , C} o C = [v1 , . . . , vk , v1 ] est un cycle


Contraintes valides sur les roues impaires

Soit R = {v0 , C} une roue de longueur impaire, alors


P
|C|1
xu + |C|1
est une ingalit valide
2 x0
2
uC

induisant une facette si v0 nest adjacent aucun sommet de V \ R

Gnration de coupes

Motivations dun ajout itrative dingalits valides


Soit le problme linaire entier :
(PLE) Z = max{cx : x S}
n
avec S = P
et P = {x n : Ax b}
Soit F = {(, ) : x IV pour S} une famille dingalits valides

Ajouter toutes ingalits valides de F au dpart ?

Notons P F = P {x n : x , (, ) F}
Etudier le polydre P F plutt que le polydre P ?
Avantages :

obtention de meilleure bornes


diminution de la taille dun arbre de sparation et
valuation

Inconvnients : taille du problme plus important (simplex rsolu avec


plus de contraintes)
nombre souvent trs important dingalits valides
ajouter rsolution trop longue
Gnrer plutt des coupes (ingalits valides) au fur et mesure

Gnration de coupes

Procdure de sparation
Soit le programme linaire entier :
(PLE) Z = max{cx : x S}

avec S = P n et P = {x n : Ax b}
Soit F = {(, ) : x IV pour S} une famille dingalits valides
Procdure de sparation

Etant donn
une famille dingalits valables (note F) et
une solution de la relaxation linaire de (PLE) (note xb )
algorithme qui cherche et renvoie une ingalit de F viole par xb
Algorithme de sparation pour une famille dingalit F

Entre : la solution de la relaxation linaire xb = argmax{cx : x P}


Sortie : retourner une coupe x F tel que xb >
La procdure de sparation dpend de la famille dingalits considre

Gnration de coupes

Algorithme des plans coupants 1/2


Soit le problme linaire entier :
(PLE) Z = max{cx : x S}
avec S = P

Zn et P = {x Rn : Ax b, x 0}

Principe de lalgorithme des plans coupants

Etant donn une famille dingalits valides F,


algorithme qui consiste sparer les solutions de la relaxation
linaire par lajout dingalits valides de F

conv (S)

Z2PL
Z1PL
Z0PL

coupe 3 coupe 2 coupe 1

Gnration itrative dingalits valides de F (si la procdure de


sparation en trouvent) coupant les solutions de la relaxation linaire

Gnration de coupes

Algorithme des plans coupants 2/2


R

k = 0, P 0 = {x n : Ax b, x 0}
Initialisation problme (PL0 )

Problme doptimisation linaire


(PLi ) Z i = max{cx : x P i }

Rsoudre le problme (PLk )


Soit x k la solution du problme
x k entier ?

oui

Arrt : solution
optimale trouve

non
Appeler le problme de sparation :
separation(b
xk )
existence (, 0 ) F
tel que x k > 0 ?

Poser k k + 1

non Arrt : plus


damliorations
Rajouter la coupe :
P k +1 = P k {x n : x 0 }

oui

Amlioration de la relaxation linaire chaque ajout dingalits valides

conv(S) P k P 1 P 0

Z ZkPL Z1PL Z0PL

Gnration de coupes

Algorithme de sparation et coupure


Algorithme de Branch and Cut

combinaison de deux mmthodes :


un algorithme de sparation et valuation
une procdure de plans coupants chaque nud
nud 0
Rsoudre le PL
Gnrer une coupe

xi bc

nud 1

xi de

nud 2

Rsoudre le PL

Rsoudre le PL

Gnrer une coupe

Gnrer une coupe

Gnration de coupes

Ingalits combinatoires pour le problme de sac--dos 1


Donnes : W : capacit maximale du sac
I : ensemble de n objets avec pour chaque objet i I :
pi lutilit et wi le poids
Formulation : max

nP

iI pi xi :

iI wi xi W ,

x {0, 1}|I|

Couverture du sac

Lensemble C I couvre le sac si

iC

wi > W

Ingalit de couverture (cover inequality)

Si lensemble C I couvre le sac, alors


P
iC xi |C| 1 est valide
Remarque

Lingalit se gnralise sur un problme plusieurs contraintes de


sac--dos ; en particulier, pour le polydre P = {x n+ : Ax b}

Gnration de coupes

Ingalits combinatoires pour le problme de sac--dos 2


Soit X PL = {x [0, 1]|I| : iI wi xi W } les solutions relles
P
Soit F = {C I : iC wi > W } la famille des couvertures
P

Procdure de sparation

Etant donn xb X PL ,
P
Chercher une couverture C F tel que iC xbi > |C| 1
P
Sil existe une telle couverture, ajouter lingalit iC xbi |C| 1
Recherche dune couverture viole
(

Soit C la couverture cherche, posons zi =

1 si i C
,
0 si i
/C

i I

Existe-t-il z {0, 1}|I| t.q. iI wi zi > W et iI xbi zi > iI zi 1 ?


P
P
Rsoudre = min{ iI (1 xbi )zi : iI wi zi > W , z {0, 1}|I| } < 1 ?
si < 1 on ajoute une ingalit viole ; sinon, il en existe pas
P

Trouver revient rsoudre un problme de sac--dos ! !

Gnration de coupes

Ingalits combinatoires pour le problme de sac--dos 3


Soient un sac de capacit 6 (W = 6) et cinq objets (n = 5) :
i
pi
wi
pi /wi

1
30
2
15

2
28
2
14

3
27
3
9

4
34
4
8.5

5
7
1
7

Rappel : calcul de la relaxation linaire pour le problme de sac--dos


1
2

Trier les objets dans lordre dcroissant du rapport profit/poids ( wpii )


Poser, pour
chaque objetPk I :

1
si ki=1 wi W

xk =

Pk 1
i=1

wk

wi

si ki=1 wi > W
sinon
P

et

Pk 1
i=1

La solution de la relaxation linaire est donc :


1 = (1, 1, 2 , 0, 0) et
Z1LP = 76
xPL
3

wi W

Gnration de coupes

Ingalits combinatoires pour le problme de sac--dos 4


i
pi
wi
pi /wi
1

1
30
2
15

2
28
2
14

3
27
3
9

4
34
4
8.5

5
7
1
7

et

W =6

1 = (1, 1, 2 , 0, 0) et Z PL = 76
La solution relle est xPL
1
3
Or w1 + w2 + w3 = 7 > W et x1 + x2 + x3 = 83 > 2
On rajoute donc lingalit :
x1 + x2 + x3 2 (a)
2 = (1, 1, 0, 1 , 0) et Z PL = 75
La nouvelle solution relle est xPL
2
2
Or w1 + w2 + w4 = 8 > W et x1 + x2 + x4 = 25 > 2
On rajoute lingalit :
x1 + x2 + x4 2 (b)
3 = (1, 4 , 1 , 1 , 1) et Z PL = 71.6 Or
La nouvelle solution relle est xPL
3
5 5 5
w1 + w4 + w5 = 7 > W et x1 + x4 + x5 = 11
>
2
5
On rajoute lingalit :
x1 + x4 + x5 2 (c)

Gnration de coupes

Ingalits combinatoires pour le problme de sac--dos 5


i
pi
wi
pi /wi
4

1
30
2
15

2
28
2
14

3
27
3
9

4
34
4
8.5

5
7
1
7

et

W =6

4 = (1, 3 , 1 , 1 , 3 ) et Z PL = 71.2
La nouvelle solution relle est xPL
4
4 4 4 4
Aucune ingalit de couverture est viole

Mais, en combinant les ingalits (a), (b) et (d) : x3 + x4 1


On obtient lingalit :
j k
1
1
1
5
(a)
+
(b)
+
(d)

x
+
x
+
x
+
x

1
2
3
4
2
2
2
2 = 2 (e)
5 = ( 1 , 1, 0, 1 , 1) et Z PL = 67
La nouvelle solution relle est xPL
5
2
2
Or w2 + w4 + w5 = 7 > W et x1 + x2 + x4 = 25 > 2
On rajoute lingalit :
x2 + x4 + x5 2 (f )

Gnration de coupes

Ingalits combinatoires pour le problme de sac--dos 6


i
pi
wi
pi /wi
7

1
30
2
15

2
28
2
14

3
27
3
9

4
34
4
8.5

5
7
1
7

et

W =6

6 = ( 2 , 2 , 1 , 1 , 1) et Z PL = 66
La nouvelle solution relle est xPL
6
3 3 3 3
Aucune ingalit de couverture est viole

Mais, en combinant les ingalits (c), (d), (e) et (f )


On obtient lingalit :
j k
1
1
1
1
7
(c)
+
(d)
+
(e)
+
(f
)

x
+
x
+
x
+
2x
+
x

5
1
2
3
4
2
2
2
2
2 =3
8

7 = (1, 1, 0, 0, 1) et Z PL = 65
La nouvelle solution relle est xPL
7
Cette solution est entire donc elle est optimale

(g)

Gnration de coupes

Conclusions et perspectives
Conclusions

Lalgorithme des plans coupants :


est complmentaire une mthode de sparation et valuation
(ingalits classiques intgres aux logiciels commerciaux)
acclere la rsolution exacte dun programme linaire entier
(ajouter manuellement des ingalits)
permet de rsoudre des formulations avec un nombre lev de
contraintes (exemple : problme du voyageur de commerce)
Aller plus loin

Les problmes de la classe N P-faciles possdent :


une description de lenveloppe convexe de taille polynomial ou
un algorithme de sparation polynomial

Les mthodes de dcompositions :


si S = S 1 S 2 , tudier plutt conv(S 1 ) et conv(S 2 )
dcomposition de Benders (formulation avec variables liantes)

Quatrime partie IV
T ECHNIQUES

DE RSOLUTION PAR

DCOMPOSITION

Vous aimerez peut-être aussi