71
Introduction Mod´ elisation B&B Sac ` a dos GAP Extensions ef´ erences Optimisation en nombres entiers MTH8415 S. Le Digabel, Polytechnique Montr´ eal H2020 (v2) MTH8415: Optimisation en nombres entiers 1/58

Optimisation en nombres entiers - GERAD · Introduction Mod elisation B&B Sac a dos GAP Extensions R ef erences Mod ele de probl eme lin eaire en nombres entiers (PLNE) max x c>x

  • Upload
    others

  • View
    46

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Optimisation en nombres entiers - GERAD · Introduction Mod elisation B&B Sac a dos GAP Extensions R ef erences Mod ele de probl eme lin eaire en nombres entiers (PLNE) max x c>x

Introduction Modelisation B&B Sac a dos GAP Extensions References

Optimisation en nombres entiers

MTH8415

S. Le Digabel, Polytechnique Montreal

H2020(v2)

MTH8415: Optimisation en nombres entiers 1/58

Page 2: Optimisation en nombres entiers - GERAD · Introduction Mod elisation B&B Sac a dos GAP Extensions R ef erences Mod ele de probl eme lin eaire en nombres entiers (PLNE) max x c>x

Introduction Modelisation B&B Sac a dos GAP Extensions References

Plan

1. Introduction

2. Modelisation

3. Algorithme d’enumeration implicite

4. Probleme du sac a dos

5. Resolution avec un solveur : Probleme d’affectationgeneralisee (GAP)

6. Extensions

References

MTH8415: Optimisation en nombres entiers 2/58

Page 3: Optimisation en nombres entiers - GERAD · Introduction Mod elisation B&B Sac a dos GAP Extensions R ef erences Mod ele de probl eme lin eaire en nombres entiers (PLNE) max x c>x

Introduction Modelisation B&B Sac a dos GAP Extensions References

1. Introduction

2. Modelisation

3. Algorithme d’enumeration implicite

4. Probleme du sac a dos

5. Resolution avec un solveur : Probleme d’affectationgeneralisee (GAP)

6. Extensions

References

MTH8415: Optimisation en nombres entiers 3/58

Page 4: Optimisation en nombres entiers - GERAD · Introduction Mod elisation B&B Sac a dos GAP Extensions R ef erences Mod ele de probl eme lin eaire en nombres entiers (PLNE) max x c>x

Introduction Modelisation B&B Sac a dos GAP Extensions References

Types de problemes

Probleme d’optimisation lineaire ou non lineaire :

I En nombres entiers : Toutes les variables doivent etre entieres(x ∈ Zn)

I En variables binaires : Toutes les variables doivent etrebinaires (x ∈ {0, 1}n)

I Mixte : Certaines variables peuvent etre entieres ou binaires,les autre continues.

Dans ce cours, on se concentre sur les problemes lineaires ennombres entiers et en variables binaires

MTH8415: Optimisation en nombres entiers 4/58

Page 5: Optimisation en nombres entiers - GERAD · Introduction Mod elisation B&B Sac a dos GAP Extensions R ef erences Mod ele de probl eme lin eaire en nombres entiers (PLNE) max x c>x

Introduction Modelisation B&B Sac a dos GAP Extensions References

Modele de probleme lineaire en nombres entiers(PLNE)

maxx

c>x

s.c.

{Ax ≥ bx ∈ Zn

avec c ∈ Rn, b ∈ Rm, A ∈ Rm×n

I Relaxation continue : Remplacer la contrainte x ∈ Zn parx ∈ Rn. On obtient un probleme lineaire (PL)

I La valeur de la solution de la relaxation est une bornesuperieure sur la valeur de la solution du PLNE

I Tout point realisable x ∈ Zn avec Ax ≥ b donne une borneinferieure sur la valeur de la solution du PLNE

MTH8415: Optimisation en nombres entiers 5/58

Page 6: Optimisation en nombres entiers - GERAD · Introduction Mod elisation B&B Sac a dos GAP Extensions R ef erences Mod ele de probl eme lin eaire en nombres entiers (PLNE) max x c>x

Introduction Modelisation B&B Sac a dos GAP Extensions References

Complexite

I Un PLNE est souvent beaucoup plus difficile a resoudre quesa relaxation continue

I Il arrive meme que ce soit impossible a faire dans un tempsraisonnable : Voir lecon #8 (theorie de la complexite) : LePLNE est NP-difficile

MTH8415: Optimisation en nombres entiers 6/58

Page 7: Optimisation en nombres entiers - GERAD · Introduction Mod elisation B&B Sac a dos GAP Extensions R ef erences Mod ele de probl eme lin eaire en nombres entiers (PLNE) max x c>x

Introduction Modelisation B&B Sac a dos GAP Extensions References

Idees pour la resolution

I Il arrive parfois que la solution de la relaxation soit entiere,i.e. les coordonnees du point extreme optimal sont entieres

I Dans ce cas, cette solution du PL est aussi la solution duPLNE, car elle a donne a la fois une borne superieure et uneborne inferieure

I Tous les problemes de flot sur un reseau ont une solutionentiere si les donnees sont entieres

I En general, arrondir la solution du PL ne fonctionne pas carune solution arrondie peut :I Ne pas etre realisable pour le PLNE

I Etre eloignee de la solution du PLNE

MTH8415: Optimisation en nombres entiers 7/58

Page 8: Optimisation en nombres entiers - GERAD · Introduction Mod elisation B&B Sac a dos GAP Extensions R ef erences Mod ele de probl eme lin eaire en nombres entiers (PLNE) max x c>x

Introduction Modelisation B&B Sac a dos GAP Extensions References

Solution du PL vs solution du PLNE

MTH8415: Optimisation en nombres entiers 8/58

Page 9: Optimisation en nombres entiers - GERAD · Introduction Mod elisation B&B Sac a dos GAP Extensions R ef erences Mod ele de probl eme lin eaire en nombres entiers (PLNE) max x c>x

Introduction Modelisation B&B Sac a dos GAP Extensions References

Enveloppe convexeI L’ensemble realisable est

l’intersection d’un polyedre(en noir) et des pointsentiers dans ce polyedre

I L’enveloppe convexe (envert) est donnee par d’autrescontraintes, mais definit lememe ensemble realisable

I La solution de la relaxationcorrespondra alors a lasolution optimale du PLNE

I Probleme. . .

MTH8415: Optimisation en nombres entiers 9/58

Page 10: Optimisation en nombres entiers - GERAD · Introduction Mod elisation B&B Sac a dos GAP Extensions R ef erences Mod ele de probl eme lin eaire en nombres entiers (PLNE) max x c>x

Introduction Modelisation B&B Sac a dos GAP Extensions References

1. Introduction

2. Modelisation

3. Algorithme d’enumeration implicite

4. Probleme du sac a dos

5. Resolution avec un solveur : Probleme d’affectationgeneralisee (GAP)

6. Extensions

References

MTH8415: Optimisation en nombres entiers 10/58

Page 11: Optimisation en nombres entiers - GERAD · Introduction Mod elisation B&B Sac a dos GAP Extensions R ef erences Mod ele de probl eme lin eaire en nombres entiers (PLNE) max x c>x

Introduction Modelisation B&B Sac a dos GAP Extensions References

Introduction

Le but de cette section est de montrer des astuces afin quecertains cas puissent se modeliser a l’aide d’un probleme lineaire envariables binaires

Ces cas sont :

I Conditions logiques

I Cout fixe

I Selection de k contraintes parmi m et de k variables parmi n

I Penalite pour ne pas respecter une contrainte

I Intervalles non connexes

I Fonctions lineaires par morceaux

MTH8415: Optimisation en nombres entiers 11/58

Page 12: Optimisation en nombres entiers - GERAD · Introduction Mod elisation B&B Sac a dos GAP Extensions R ef erences Mod ele de probl eme lin eaire en nombres entiers (PLNE) max x c>x

Introduction Modelisation B&B Sac a dos GAP Extensions References

Conditions logiques

I On ne peut pas exprimer de conditions logiques directement(avec des si, sinon, alors, etc.), sinon le modele n’est pluslineaire

I Les exemples suivants considerent des variables binaires

I La condition x = 1⇔ y = 1 se modelise a l’aide de lacontrainte x = y

I Pour les autres exemples, il est utile de se baser sur une tabledes valeurs possibles afin de determiner les situations aeliminer a l’aide de contraintes

MTH8415: Optimisation en nombres entiers 12/58

Page 13: Optimisation en nombres entiers - GERAD · Introduction Mod elisation B&B Sac a dos GAP Extensions R ef erences Mod ele de probl eme lin eaire en nombres entiers (PLNE) max x c>x

Introduction Modelisation B&B Sac a dos GAP Extensions References

Conditions logiques : x = 1⇒ y = 1

La ligne en rouge dans la table suivante correspond au cas aeliminer :

x y

0 00 11 01 1

On ajoute donc la contrainte

y ≥ x

MTH8415: Optimisation en nombres entiers 13/58

Page 14: Optimisation en nombres entiers - GERAD · Introduction Mod elisation B&B Sac a dos GAP Extensions R ef erences Mod ele de probl eme lin eaire en nombres entiers (PLNE) max x c>x

Introduction Modelisation B&B Sac a dos GAP Extensions References

Conditions logiques : x = 0⇒ y = 1

La ligne en rouge correspond au cas a eliminer :

x y

0 00 11 01 1

On ajoute donc la contrainte

x+ y ≥ 1

MTH8415: Optimisation en nombres entiers 14/58

Page 15: Optimisation en nombres entiers - GERAD · Introduction Mod elisation B&B Sac a dos GAP Extensions R ef erences Mod ele de probl eme lin eaire en nombres entiers (PLNE) max x c>x

Introduction Modelisation B&B Sac a dos GAP Extensions References

Conditions logiques : (x = 1 et y = 1)⇒ z = 1La ligne en rouge correspond au cas a eliminer :

x y z x+ y − z

0 0 0 00 0 1 −10 1 0 10 1 1 01 0 0 11 0 1 01 1 0 21 1 1 1

On ajoute donc la contrainte

x+ y − z ≤ 1

MTH8415: Optimisation en nombres entiers 15/58

Page 16: Optimisation en nombres entiers - GERAD · Introduction Mod elisation B&B Sac a dos GAP Extensions R ef erences Mod ele de probl eme lin eaire en nombres entiers (PLNE) max x c>x

Introduction Modelisation B&B Sac a dos GAP Extensions References

Conditions logiques : (x = 1 ou y = 1)⇒ z = 1Les lignes en rouge correspondent aux cas a eliminer :

x y z −x+ y − z x− y − z x+ y − z

0 0 0 0 0 00 0 1 −1 −1 −10 1 0 1 −1 10 1 1 0 −2 01 0 0 −1 1 11 0 1 −2 0 01 1 0 0 0 21 1 1 −1 −1 1

On ajoute donc les contraintes

−x+ y − z ≤ 0x− y − z ≤ 0x+ y − z ≤ 1

MTH8415: Optimisation en nombres entiers 16/58

Page 17: Optimisation en nombres entiers - GERAD · Introduction Mod elisation B&B Sac a dos GAP Extensions R ef erences Mod ele de probl eme lin eaire en nombres entiers (PLNE) max x c>x

Introduction Modelisation B&B Sac a dos GAP Extensions References

Modelisation d’un cout fixeI Un objectif a minimiser contient le terme Cx avec C un cout

proportionnel a la valeur de x

I On veut ajouter un cout fixe F lorsque x > 0

I On introduit une variable binaire y et :I On ajoute le terme Fy a l’objectif : Cx→ Cx+ Fy

I On ajoute la contrainte

x ≤My

avec M une borne superieure sur x

I S’il est avantageux d’avoir x > 0, alors automatiquement yvaudra 1 et on paiera le cout fixe. Sinon, y seraautomatiquement mise a 0 pour ne pas payer le cout fixe

MTH8415: Optimisation en nombres entiers 17/58

Page 18: Optimisation en nombres entiers - GERAD · Introduction Mod elisation B&B Sac a dos GAP Extensions R ef erences Mod ele de probl eme lin eaire en nombres entiers (PLNE) max x c>x

Introduction Modelisation B&B Sac a dos GAP Extensions References

Selection de k contraintes parmi mI On doit satisfaire au moins k contraintes parmi les m

contraintes du systeme d’inegalites Ax ≤ b avec x,b ∈ Rn etA ∈ Rm×n

I On introduit m variables binaires yi, i = 1, 2, . . . ,m. On aurayi = 1 si on permet a la contrainte i d’etre violee, 0 sinon

I Les m inegalite deviennent

Ax ≤ b→ Ax ≤ b+My

avec y ∈ {0, 1}m et M ∈ R suffisamment grand

I Puis, on ajoute la contraintem∑i=1

yi ≤ m− k (au moins k

contraintes satisfaites)

MTH8415: Optimisation en nombres entiers 18/58

Page 19: Optimisation en nombres entiers - GERAD · Introduction Mod elisation B&B Sac a dos GAP Extensions R ef erences Mod ele de probl eme lin eaire en nombres entiers (PLNE) max x c>x

Introduction Modelisation B&B Sac a dos GAP Extensions References

Selection de k variables parmi n

I On a n variables xi, i = 1, 2, . . . , n, telles que 0 ≤ x ≤ u,avec u ∈ Rn

I On veut qu’au plus k des n variables puissent avoir une valeurstrictement positive

I On introduit les n variables binaires yi, i = 1, 2, . . . , n, tellesque si yi = 1, xi > 0, et sinon xi = 0

I On change les bornes 0 ≤ xi ≤ ui → 0 ≤ xi ≤ uiyi,i = 1, 2, . . . , n

I Puis, on ajoute la contrainten∑

i=1yi ≤ k

MTH8415: Optimisation en nombres entiers 19/58

Page 20: Optimisation en nombres entiers - GERAD · Introduction Mod elisation B&B Sac a dos GAP Extensions R ef erences Mod ele de probl eme lin eaire en nombres entiers (PLNE) max x c>x

Introduction Modelisation B&B Sac a dos GAP Extensions References

Penalite pour ne pas respecter une contrainte

I Pour un probleme de minimisation, on veut ajouter unepenalite P si la contrainte a>x ≤ b est violee, avec a,x ∈ Rn

et b ∈ R

I On introduit la variable binaire y qui vaut 1 si la contrainteest violee, et 0 sinon

I On ajoute le terme Py dans l’objectif

I On modifie la contrainte :

a>x ≤ b→ a>x ≤ b+My

avec M ∈ R suffisamment grand

MTH8415: Optimisation en nombres entiers 20/58

Page 21: Optimisation en nombres entiers - GERAD · Introduction Mod elisation B&B Sac a dos GAP Extensions R ef erences Mod ele de probl eme lin eaire en nombres entiers (PLNE) max x c>x

Introduction Modelisation B&B Sac a dos GAP Extensions References

Intervalles non connexes (1)

I On veut que la variable x ∈ R soit egale a 0 ou bien dansl’intervalle [`;u], avec `, u ∈ R

I On introduit la variable binaire y qui vaut 1 si x ∈ [`;u], etx = 0 sinon, en introduisant les contraintes

`y ≤ x ≤ uy

MTH8415: Optimisation en nombres entiers 21/58

Page 22: Optimisation en nombres entiers - GERAD · Introduction Mod elisation B&B Sac a dos GAP Extensions R ef erences Mod ele de probl eme lin eaire en nombres entiers (PLNE) max x c>x

Introduction Modelisation B&B Sac a dos GAP Extensions References

Intervalles non connexes (2)

I On veut que la variable x ∈ R soit egale a 0, ou dansl’intervalle [200; 500], ou dans l’intervalle [700; 1000]

I On introduit deux variables binaires y1, y2 et deux variablescontinues x1, x2, et on ajoute les contraintes suivantes auprobleme :

x = x1 + x2y1 + y2 ≤ 1200y1 ≤ x1 ≤ 500y1700y2 ≤ x2 ≤ 1000y2x1, x2 ∈ Ry1, y2 ∈ {0, 1}

MTH8415: Optimisation en nombres entiers 22/58

Page 23: Optimisation en nombres entiers - GERAD · Introduction Mod elisation B&B Sac a dos GAP Extensions R ef erences Mod ele de probl eme lin eaire en nombres entiers (PLNE) max x c>x

Introduction Modelisation B&B Sac a dos GAP Extensions References

Intervalles non connexes (3)

I La variable x ∈ R ne peut prendre qu’une valeur comprisedans l’ensemble {2, 3, 5, 7}

I On introduit 4 variables binaires y1, y2, y3, y4 et on ajoute lescontraintes

x = 2y1 + 3y2 + 5y3 + 7y4y1 + y2 + y3 + y4 = 1y1, y2, y3, y4 ∈ {0, 1}

MTH8415: Optimisation en nombres entiers 23/58

Page 24: Optimisation en nombres entiers - GERAD · Introduction Mod elisation B&B Sac a dos GAP Extensions R ef erences Mod ele de probl eme lin eaire en nombres entiers (PLNE) max x c>x

Introduction Modelisation B&B Sac a dos GAP Extensions References

Fonctions lineaires par morceaux (1/3)On veut modeliser la fonction continue lineaire par morceauxsuivante :

f(x) =

0.5x+ 5 si 0 ≤ x < 102x− 10 si 10 ≤ x < 150.2x+ 17 si 15 ≤ x ≤ 40

5

7

9

11

13

15

17

19

21

23

25

0 5 10 15 20 25 30 35 40

MTH8415: Optimisation en nombres entiers 24/58

Page 25: Optimisation en nombres entiers - GERAD · Introduction Mod elisation B&B Sac a dos GAP Extensions R ef erences Mod ele de probl eme lin eaire en nombres entiers (PLNE) max x c>x

Introduction Modelisation B&B Sac a dos GAP Extensions References

Fonctions lineaires par morceaux (2/3)

I On introduit trois variables continues x1, x2, x3 ∈ R et deuxvariables binaires y1, y2 ∈ {0, 1}

I On ajoute les contraintes suivantes :10y1 ≤ x1 ≤ 105y2 ≤ x2 ≤ 5y10 ≤ x3 ≤ 25y2

I La fonction par morceaux pourra s’exprimer parfx = 5 + 0.5x1 + 2x2 + 0.2x3

I La quantite x est representee par x = x1 + x2 + x3

MTH8415: Optimisation en nombres entiers 25/58

Page 26: Optimisation en nombres entiers - GERAD · Introduction Mod elisation B&B Sac a dos GAP Extensions R ef erences Mod ele de probl eme lin eaire en nombres entiers (PLNE) max x c>x

Introduction Modelisation B&B Sac a dos GAP Extensions References

Fonctions lineaires par morceaux (3/3) : VerificationI Si y1 = y2 = 0 :

I 0 ≤ x1 ≤ 10, x2 = x3 = 0I x = x1 ∈ [0; 10]I fx = 5 + 0.5x1 = 0.5x+ 5

I Si y1 = 0 et y2 = 1 : Impossible car 5 ≤ x2 ≤ 0

I Si y1 = 1 et y2 = 0 :I x1 = 10, x2 ∈ [0; 5], x3 = 0I x = 10 + x2 ∈ [10; 15]I fx = 5 + 5 + 2x2 = 10 + 2x2 = 10 + 2(x− 10) = 2x− 10

I Si y1 = y2 = 1 :I x1 = 10, x2 = 5, x3 ∈ [0; 25]I x = 15 + x3 ∈ [15; 40]I fx = 5 + 5 + 10 + 0.2x3 = 20 + 0.2(x− 15) = 0.2x+ 17

MTH8415: Optimisation en nombres entiers 26/58

Page 27: Optimisation en nombres entiers - GERAD · Introduction Mod elisation B&B Sac a dos GAP Extensions R ef erences Mod ele de probl eme lin eaire en nombres entiers (PLNE) max x c>x

Introduction Modelisation B&B Sac a dos GAP Extensions References

1. Introduction

2. Modelisation

3. Algorithme d’enumeration implicite

4. Probleme du sac a dos

5. Resolution avec un solveur : Probleme d’affectationgeneralisee (GAP)

6. Extensions

References

MTH8415: Optimisation en nombres entiers 27/58

Page 28: Optimisation en nombres entiers - GERAD · Introduction Mod elisation B&B Sac a dos GAP Extensions R ef erences Mod ele de probl eme lin eaire en nombres entiers (PLNE) max x c>x

Introduction Modelisation B&B Sac a dos GAP Extensions References

Algorithme d’enumeration implicite

I Branch and Bound (B&B) [Land and Doig, 1960]

I L’algorithme est exact et garantit l’obtention de la solutionoptimale, mais en pratique cela peut prendre enormement detemps

I Resolution d’une serie de problemes lineaires, le premier etantla relaxation PL du PLNE

I Ces differentes resolutions sont organisees dans un arbre debranchement

I A chaque resolution, il y a deux etapes principales :Evaluation et Separation

MTH8415: Optimisation en nombres entiers 28/58

Page 29: Optimisation en nombres entiers - GERAD · Introduction Mod elisation B&B Sac a dos GAP Extensions R ef erences Mod ele de probl eme lin eaire en nombres entiers (PLNE) max x c>x

Introduction Modelisation B&B Sac a dos GAP Extensions References

B&B : Evaluation et separation (maximisation)

I Evaluation : Resoudre la relaxation continue courante et endeduire :I Une borne superieure

I Une borne inferieure, si possible. Par exemple si la solution dela relaxation courante est entiere, ou bien avec une heuristique

I Separation :I Separer (brancher) le probleme courant en plusieurs

sous-problemes (typiquement deux)

I Par exemple : Si la relaxation courante donne xi = 2.3, creerdeux sous-problemes avec la contrainte xi ≤ 2 et xi ≥ 3,respectivement

MTH8415: Optimisation en nombres entiers 29/58

Page 30: Optimisation en nombres entiers - GERAD · Introduction Mod elisation B&B Sac a dos GAP Extensions R ef erences Mod ele de probl eme lin eaire en nombres entiers (PLNE) max x c>x

Introduction Modelisation B&B Sac a dos GAP Extensions References

B&B : Elagation

I L’arbre de branchement se construit au fur et a mesure

I Il existe plusieurs strategies pour le parcourir : Largeurd’abord, profondeur d’abord, etc.

I On met a jour en tout temps la solution et la meilleure valeurconnue du PLNE

I A chaque nœud de cet arbre, on maintient des bornesinferieures et superieures. Chaque sous-probleme de ce nœudne pourra generer de solutions en dehors de ces bornes

I Ainsi, on peut decider de ne pas explorer certaines parties del’arbre car on sait deja qu’on ne pourra pas faire mieux que lameilleure valeur connue jusqu’a present : Principe del’elagation. Et d’ou le terme d’enumeration implicite

MTH8415: Optimisation en nombres entiers 30/58

Page 31: Optimisation en nombres entiers - GERAD · Introduction Mod elisation B&B Sac a dos GAP Extensions R ef erences Mod ele de probl eme lin eaire en nombres entiers (PLNE) max x c>x

Introduction Modelisation B&B Sac a dos GAP Extensions References

B&B : Exemple

Resoudre le PLNE avec un algorithme de B&B :

maxx1,x2

f(x1, x2) = 2x1 + 3x2

s.c.

4x1 + 12x2 ≤ 3310x1 + 4x2 ≤ 35x1, x2 ∈ N

MTH8415: Optimisation en nombres entiers 31/58

Page 32: Optimisation en nombres entiers - GERAD · Introduction Mod elisation B&B Sac a dos GAP Extensions R ef erences Mod ele de probl eme lin eaire en nombres entiers (PLNE) max x c>x

Introduction Modelisation B&B Sac a dos GAP Extensions References

B&B : Exemple : Ensemble realisable

MTH8415: Optimisation en nombres entiers 32/58

Page 33: Optimisation en nombres entiers - GERAD · Introduction Mod elisation B&B Sac a dos GAP Extensions R ef erences Mod ele de probl eme lin eaire en nombres entiers (PLNE) max x c>x

Introduction Modelisation B&B Sac a dos GAP Extensions References

B&B : Exemple : Premiere relaxation

I Evaluation : Resoudre la relaxation lineaire du PLNE :I La solution du PL x = (2.769, 1.826) pour f(x) = 11.019 n’est

pas entiere : ce n’est donc pas la solution optimale du probleme

I La valeur optimale (11.019) nous donne une borne superieurepour la valeur optimale du PLNE, que l’on peut arrondir a 11car tous les couts sont entiers

I Separation : On separe le probleme original en deuxproblemes.I Ce branchement peut se faire sur x1 ou x2

I On choisit (arbitrairement) x1 et on ajoute une nouvellecontrainte au PLNE : x1 ≤ 2 (Prob. I) ou x1 ≥ 3 (Prob. II)

MTH8415: Optimisation en nombres entiers 33/58

Page 34: Optimisation en nombres entiers - GERAD · Introduction Mod elisation B&B Sac a dos GAP Extensions R ef erences Mod ele de probl eme lin eaire en nombres entiers (PLNE) max x c>x

Introduction Modelisation B&B Sac a dos GAP Extensions References

B&B : Exemple : Problemes I et IIProb. I :

maxx1,x2

2x1 + 3x2

s.c.

4x1 + 12x2 ≤ 3310x1 + 4x2 ≤ 35x1 ≤ 2x1, x2 ≥ 0

Prob. II :maxx1,x2

2x1 + 3x2

s.c.

4x1 + 12x2 ≤ 3310x1 + 4x2 ≤ 35x1 ≥ 3x1, x2 ≥ 0

MTH8415: Optimisation en nombres entiers 34/58

Page 35: Optimisation en nombres entiers - GERAD · Introduction Mod elisation B&B Sac a dos GAP Extensions R ef erences Mod ele de probl eme lin eaire en nombres entiers (PLNE) max x c>x

Introduction Modelisation B&B Sac a dos GAP Extensions References

B&B : Exemple : Premiere separation

MTH8415: Optimisation en nombres entiers 35/58

Page 36: Optimisation en nombres entiers - GERAD · Introduction Mod elisation B&B Sac a dos GAP Extensions R ef erences Mod ele de probl eme lin eaire en nombres entiers (PLNE) max x c>x

Introduction Modelisation B&B Sac a dos GAP Extensions References

B&B : Exemple : Problemes III et IVLe deuxieme branchement sur x2, sous le nœud du probleme I,donne les problemes III et IV suivants :

Prob. III : maxx1,x2

2x1 + 3x2 s.c.

4x1 + 12x2 ≤ 3310x1 + 4x2 ≤ 35x1 ≤ 2x2 ≤ 2x1, x2 ≥ 0

Prob. IV : maxx1,x2

2x1 + 3x2 s.c.

4x1 + 12x2 ≤ 3310x1 + 4x2 ≤ 35x1 ≤ 2x2 ≥ 3x1, x2 ≥ 0

Le probleme IV est irrealisable : Cette branche est elaguee

MTH8415: Optimisation en nombres entiers 36/58

Page 37: Optimisation en nombres entiers - GERAD · Introduction Mod elisation B&B Sac a dos GAP Extensions R ef erences Mod ele de probl eme lin eaire en nombres entiers (PLNE) max x c>x

Introduction Modelisation B&B Sac a dos GAP Extensions References

B&B : Exemple : Deuxieme separation

MTH8415: Optimisation en nombres entiers 37/58

Page 38: Optimisation en nombres entiers - GERAD · Introduction Mod elisation B&B Sac a dos GAP Extensions R ef erences Mod ele de probl eme lin eaire en nombres entiers (PLNE) max x c>x

Introduction Modelisation B&B Sac a dos GAP Extensions References

B&B : Exemple : Fin

I Nous ne separerons pas le Probleme III puisque sa solutionoptimale est entiere

I Nous pourrions separer le Probleme II (en ajoutant lacontrainte x2 ≤ 1 ou x2 ≥ 2) mais c’est inutile :I Brancher sous le Prob. II ne peut que mener a une solution de

valeur de l’objectif ≤ 9

I Puisque nous avons deja un point entier de valeur 10, il n’y adonc pas de meilleur point entier dans l’ensemble realisable duProb. II

I Arret de l’algorithme : il n’y a plus de nœud a resoudre : Lasolution optimale est obtenue : x∗ = (2, 2) avec f(x∗) = 10

MTH8415: Optimisation en nombres entiers 38/58

Page 39: Optimisation en nombres entiers - GERAD · Introduction Mod elisation B&B Sac a dos GAP Extensions R ef erences Mod ele de probl eme lin eaire en nombres entiers (PLNE) max x c>x

Introduction Modelisation B&B Sac a dos GAP Extensions References

B&B : Exemple : Arbre de branchement

MTH8415: Optimisation en nombres entiers 39/58

Page 40: Optimisation en nombres entiers - GERAD · Introduction Mod elisation B&B Sac a dos GAP Extensions R ef erences Mod ele de probl eme lin eaire en nombres entiers (PLNE) max x c>x

Introduction Modelisation B&B Sac a dos GAP Extensions References

1. Introduction

2. Modelisation

3. Algorithme d’enumeration implicite

4. Probleme du sac a dos

5. Resolution avec un solveur : Probleme d’affectationgeneralisee (GAP)

6. Extensions

References

MTH8415: Optimisation en nombres entiers 40/58

Page 41: Optimisation en nombres entiers - GERAD · Introduction Mod elisation B&B Sac a dos GAP Extensions R ef erences Mod ele de probl eme lin eaire en nombres entiers (PLNE) max x c>x

Introduction Modelisation B&B Sac a dos GAP Extensions References

Modele

maxx1,x2,...,xn

n∑i=1

uixi

s.c.

n∑

i=1wixi ≤W

x ∈ {0, 1}n

I Chaque variable correspond a un objet que l’on prend ou pasdans le sac

I ui > 0 : Utilite de l’objet i ; wi > 0 : Poids de l’objet i

I W : Capacite du sac (telle que W <∑n

i=1wi)

I On suppose que les objets sont ordonnes selon les ratios ui/wi

decroissants : u1w1≥ u2

w2≥ . . . ≥ un

wn

I Probleme NP-complet (dans sa version decision)

MTH8415: Optimisation en nombres entiers 41/58

Page 42: Optimisation en nombres entiers - GERAD · Introduction Mod elisation B&B Sac a dos GAP Extensions R ef erences Mod ele de probl eme lin eaire en nombres entiers (PLNE) max x c>x

Introduction Modelisation B&B Sac a dos GAP Extensions References

Relaxation (borne sup.)Il n’est pas necessaire de resoudre le PL avec une methodegenerique car la solution peut etre obtenue avec la simpleprocedure suivante :

1. Sachant que les objets sont ordonnes selon des ui/wi

decroissants, trouver l’indice k tel que∑k

i=1wi ≤W et∑k+1i=1 wi > W

2. Poser

xi = 1 pour 0 ≤ i ≤ k

xk+1 =W −

∑ki=1wi

wk+1

xi = 0 pour k + 2 ≤ i ≤ n

La valeur de la relaxation (borne sup.) est

z =

⌊k∑

i=1

ui + uk+1xk+1

⌋(arrondi seulement si les couts sont entiers)

MTH8415: Optimisation en nombres entiers 42/58

Page 43: Optimisation en nombres entiers - GERAD · Introduction Mod elisation B&B Sac a dos GAP Extensions R ef erences Mod ele de probl eme lin eaire en nombres entiers (PLNE) max x c>x

Introduction Modelisation B&B Sac a dos GAP Extensions References

Heuristique gloutonne (borne inf.)

1. Trouver l’indice k tel que∑k

i=1wi ≤W et∑k+1

i=1 wi > W

2. Poser

{xi = 1 pour 0 ≤ i ≤ kxi = 0 pour k + 1 ≤ i ≤ n

3. Amelioration : S’il existe un indice ` ∈ [k + 1;n] tel que∑ki=1wi + w` ≤W , alors poser x` = 1

Cette heuristique donne un point realisable pour le sac a dos, etdonc une borne inferieure a sa valeur optimale. Cette borne est

z =k∑

i=1ui ou

k∑i=1

ui + u` si ` existe

MTH8415: Optimisation en nombres entiers 43/58

Page 44: Optimisation en nombres entiers - GERAD · Introduction Mod elisation B&B Sac a dos GAP Extensions R ef erences Mod ele de probl eme lin eaire en nombres entiers (PLNE) max x c>x

Introduction Modelisation B&B Sac a dos GAP Extensions References

Resolution par B&B sur exemple

On considere l’instance suivante :

maxx∈{0,1}5

20x1 + 17x2 + 14x3 + 27x4 + 16x5

s.c. 7x1 + 6x2 + 5x3 + 10x4 + 7x5 ≤ 22

ou les ratios ui/wi sont bien ordonnes :

2.86 > 2.83 > 2.8 > 2.7 > 2.29

Note : La resolution par programmation dynamique sera vue a lalecon #7 (programmation dynamique)

MTH8415: Optimisation en nombres entiers 44/58

Page 45: Optimisation en nombres entiers - GERAD · Introduction Mod elisation B&B Sac a dos GAP Extensions R ef erences Mod ele de probl eme lin eaire en nombres entiers (PLNE) max x c>x

Introduction Modelisation B&B Sac a dos GAP Extensions References

Exemple B&B : nœud racine

I La premiere relaxation donne : x1 = x2 = x3 = 1, x4 = 0.4,x5 = 0, pour z = b61.8c = 61

I La premiere borne inf. est obtenue avec x1 = x2 = x3 = 1,x4 = x5 = 0, pour z = 51

I On branche ensuite sur la variable fractionnaire x4 avecx4 = 0 et x4 = 1

I Les acetates suivantes decrivent une exploration en profondeurd’abord, puis en largeur d’abord

MTH8415: Optimisation en nombres entiers 45/58

Page 46: Optimisation en nombres entiers - GERAD · Introduction Mod elisation B&B Sac a dos GAP Extensions R ef erences Mod ele de probl eme lin eaire en nombres entiers (PLNE) max x c>x

Introduction Modelisation B&B Sac a dos GAP Extensions References

Exemple B&B : Profondeur d’abord

MTH8415: Optimisation en nombres entiers 46/58

Page 47: Optimisation en nombres entiers - GERAD · Introduction Mod elisation B&B Sac a dos GAP Extensions R ef erences Mod ele de probl eme lin eaire en nombres entiers (PLNE) max x c>x

Introduction Modelisation B&B Sac a dos GAP Extensions References

Exemple B&B : Profondeur d’abord

MTH8415: Optimisation en nombres entiers 46/58

Page 48: Optimisation en nombres entiers - GERAD · Introduction Mod elisation B&B Sac a dos GAP Extensions R ef erences Mod ele de probl eme lin eaire en nombres entiers (PLNE) max x c>x

Introduction Modelisation B&B Sac a dos GAP Extensions References

Exemple B&B : Profondeur d’abord

MTH8415: Optimisation en nombres entiers 46/58

Page 49: Optimisation en nombres entiers - GERAD · Introduction Mod elisation B&B Sac a dos GAP Extensions R ef erences Mod ele de probl eme lin eaire en nombres entiers (PLNE) max x c>x

Introduction Modelisation B&B Sac a dos GAP Extensions References

Exemple B&B : Profondeur d’abord

MTH8415: Optimisation en nombres entiers 46/58

Page 50: Optimisation en nombres entiers - GERAD · Introduction Mod elisation B&B Sac a dos GAP Extensions R ef erences Mod ele de probl eme lin eaire en nombres entiers (PLNE) max x c>x

Introduction Modelisation B&B Sac a dos GAP Extensions References

Exemple B&B : Profondeur d’abord

MTH8415: Optimisation en nombres entiers 46/58

Page 51: Optimisation en nombres entiers - GERAD · Introduction Mod elisation B&B Sac a dos GAP Extensions R ef erences Mod ele de probl eme lin eaire en nombres entiers (PLNE) max x c>x

Introduction Modelisation B&B Sac a dos GAP Extensions References

Exemple B&B : Profondeur d’abord

MTH8415: Optimisation en nombres entiers 46/58

Page 52: Optimisation en nombres entiers - GERAD · Introduction Mod elisation B&B Sac a dos GAP Extensions R ef erences Mod ele de probl eme lin eaire en nombres entiers (PLNE) max x c>x

Introduction Modelisation B&B Sac a dos GAP Extensions References

Exemple B&B : Profondeur d’abord

MTH8415: Optimisation en nombres entiers 46/58

Page 53: Optimisation en nombres entiers - GERAD · Introduction Mod elisation B&B Sac a dos GAP Extensions R ef erences Mod ele de probl eme lin eaire en nombres entiers (PLNE) max x c>x

Introduction Modelisation B&B Sac a dos GAP Extensions References

Exemple B&B : Profondeur d’abord

MTH8415: Optimisation en nombres entiers 46/58

Page 54: Optimisation en nombres entiers - GERAD · Introduction Mod elisation B&B Sac a dos GAP Extensions R ef erences Mod ele de probl eme lin eaire en nombres entiers (PLNE) max x c>x

Introduction Modelisation B&B Sac a dos GAP Extensions References

Exemple B&B : Profondeur d’abord

MTH8415: Optimisation en nombres entiers 46/58

Page 55: Optimisation en nombres entiers - GERAD · Introduction Mod elisation B&B Sac a dos GAP Extensions R ef erences Mod ele de probl eme lin eaire en nombres entiers (PLNE) max x c>x

Introduction Modelisation B&B Sac a dos GAP Extensions References

Exemple B&B : Profondeur d’abord

MTH8415: Optimisation en nombres entiers 46/58

Page 56: Optimisation en nombres entiers - GERAD · Introduction Mod elisation B&B Sac a dos GAP Extensions R ef erences Mod ele de probl eme lin eaire en nombres entiers (PLNE) max x c>x

Introduction Modelisation B&B Sac a dos GAP Extensions References

Exemple B&B : Profondeur d’abord

MTH8415: Optimisation en nombres entiers 46/58

Page 57: Optimisation en nombres entiers - GERAD · Introduction Mod elisation B&B Sac a dos GAP Extensions R ef erences Mod ele de probl eme lin eaire en nombres entiers (PLNE) max x c>x

Introduction Modelisation B&B Sac a dos GAP Extensions References

Exemple B&B : Largeur d’abord

MTH8415: Optimisation en nombres entiers 47/58

Page 58: Optimisation en nombres entiers - GERAD · Introduction Mod elisation B&B Sac a dos GAP Extensions R ef erences Mod ele de probl eme lin eaire en nombres entiers (PLNE) max x c>x

Introduction Modelisation B&B Sac a dos GAP Extensions References

Exemple B&B : Largeur d’abord

MTH8415: Optimisation en nombres entiers 47/58

Page 59: Optimisation en nombres entiers - GERAD · Introduction Mod elisation B&B Sac a dos GAP Extensions R ef erences Mod ele de probl eme lin eaire en nombres entiers (PLNE) max x c>x

Introduction Modelisation B&B Sac a dos GAP Extensions References

Exemple B&B : Largeur d’abord

MTH8415: Optimisation en nombres entiers 47/58

Page 60: Optimisation en nombres entiers - GERAD · Introduction Mod elisation B&B Sac a dos GAP Extensions R ef erences Mod ele de probl eme lin eaire en nombres entiers (PLNE) max x c>x

Introduction Modelisation B&B Sac a dos GAP Extensions References

Exemple B&B : Largeur d’abord

MTH8415: Optimisation en nombres entiers 47/58

Page 61: Optimisation en nombres entiers - GERAD · Introduction Mod elisation B&B Sac a dos GAP Extensions R ef erences Mod ele de probl eme lin eaire en nombres entiers (PLNE) max x c>x

Introduction Modelisation B&B Sac a dos GAP Extensions References

1. Introduction

2. Modelisation

3. Algorithme d’enumeration implicite

4. Probleme du sac a dos

5. Resolution avec un solveur : Probleme d’affectationgeneralisee (GAP)

6. Extensions

References

MTH8415: Optimisation en nombres entiers 48/58

Page 62: Optimisation en nombres entiers - GERAD · Introduction Mod elisation B&B Sac a dos GAP Extensions R ef erences Mod ele de probl eme lin eaire en nombres entiers (PLNE) max x c>x

Introduction Modelisation B&B Sac a dos GAP Extensions References

Presentation du GAP [Wolsey, 1998]I On assigne des taches a des individus

I Chaque tache consomme une ressource (temps, argent, etc.)

I La quantite de ressource consommee sera differente selonl’individu qui aura cette tache

I Chaque tache doit etre accomplie par un (et seulement un)individu

I Un individu peut etre assigne a plus d’une tache pourvu qu’ilait suffisamment de ressources a sa disposition

I Il y a un profit associe a l’affectation d’une tache a unindividu. Ce profit est different pour chacun

I On souhaite trouver l’affectation optimale qui respecte lescontraintes d’usage des ressources

MTH8415: Optimisation en nombres entiers 49/58

Page 63: Optimisation en nombres entiers - GERAD · Introduction Mod elisation B&B Sac a dos GAP Extensions R ef erences Mod ele de probl eme lin eaire en nombres entiers (PLNE) max x c>x

Introduction Modelisation B&B Sac a dos GAP Extensions References

Parametres et variables

I Indices :I i ∈ I = {1, 2, . . . ,m} (taches)

I j ∈ J = {1, 2, . . . , n} (individus)

I Parametres :I cij : Profit obtenu quand on associe la tache i a l’individu j

I aij : Ressource consommee quand on associe la tache i al’individu j

I bj : Ressource disponible pour l’individu j

I Variables :xij = 1 si la tache i est associee a l’individu j, 0 sinon

MTH8415: Optimisation en nombres entiers 50/58

Page 64: Optimisation en nombres entiers - GERAD · Introduction Mod elisation B&B Sac a dos GAP Extensions R ef erences Mod ele de probl eme lin eaire en nombres entiers (PLNE) max x c>x

Introduction Modelisation B&B Sac a dos GAP Extensions References

Modele

maxx

∑i∈I

∑j∈J

cijxij

s.c.

∑j∈J

xij = 1 i ∈ I∑i∈I

aijxij ≤ bj j ∈ J

xij ∈ {0, 1} i ∈ I, j ∈ J

MTH8415: Optimisation en nombres entiers 51/58

Page 65: Optimisation en nombres entiers - GERAD · Introduction Mod elisation B&B Sac a dos GAP Extensions R ef erences Mod ele de probl eme lin eaire en nombres entiers (PLNE) max x c>x

Introduction Modelisation B&B Sac a dos GAP Extensions References

Resolution avec le solveur Excel (1)

I Voir fichier GAP.xlsx

I Le processus de solution peut etre relativement long(' 10 sec)

I On peut l’accelerer en ajoutant des contraintes qui eliminentdes solutions que l’ont sait irrealisables

MTH8415: Optimisation en nombres entiers 52/58

Page 66: Optimisation en nombres entiers - GERAD · Introduction Mod elisation B&B Sac a dos GAP Extensions R ef erences Mod ele de probl eme lin eaire en nombres entiers (PLNE) max x c>x

Introduction Modelisation B&B Sac a dos GAP Extensions References

Resolution avec le solveur Excel (2)

I Puisqu’un employe ne peut prendre en charge plus d’unetache qui demande plus de la moitie de ses ressources, nouspouvons ajouter les contraintes suivantes :

x11 + x21 + x41 + x71 + x81 + x91 + x10,1 ≤ 1x22 + x32 + x62 + x72 + x82 + x10,2 ≤ 1x43 + x53 + x63 + x73 + x83 + x93 + x10,3 ≤ 1x14 + x44 + x64 + x74 + x94 + x10,4 ≤ 1x15 + x25 + x65 + x85 ≤ 1

I La solution du nouveau probleme peut etre obtenue en' 2 secondes

MTH8415: Optimisation en nombres entiers 53/58

Page 67: Optimisation en nombres entiers - GERAD · Introduction Mod elisation B&B Sac a dos GAP Extensions R ef erences Mod ele de probl eme lin eaire en nombres entiers (PLNE) max x c>x

Introduction Modelisation B&B Sac a dos GAP Extensions References

Resolution avec le solveur Excel (3)

I On etend le meme principe afin d’ajouter de nouvellescontraintes que l’on sait que la solution doit satisfaire

I Ainsi, pour chaque employe, on selectionne des ensembles detaches qui ne peuvent s’effectuer ensemble

I La solution du nouveau probleme devient instantanee

Ces inegalites sont donc cruciales pour une resolution efficace. Cesont des inegalites valides, a la base des algorithmes de typeBranch and Cut

MTH8415: Optimisation en nombres entiers 54/58

Page 68: Optimisation en nombres entiers - GERAD · Introduction Mod elisation B&B Sac a dos GAP Extensions R ef erences Mod ele de probl eme lin eaire en nombres entiers (PLNE) max x c>x

Introduction Modelisation B&B Sac a dos GAP Extensions References

1. Introduction

2. Modelisation

3. Algorithme d’enumeration implicite

4. Probleme du sac a dos

5. Resolution avec un solveur : Probleme d’affectationgeneralisee (GAP)

6. Extensions

References

MTH8415: Optimisation en nombres entiers 55/58

Page 69: Optimisation en nombres entiers - GERAD · Introduction Mod elisation B&B Sac a dos GAP Extensions R ef erences Mod ele de probl eme lin eaire en nombres entiers (PLNE) max x c>x

Introduction Modelisation B&B Sac a dos GAP Extensions References

ExtensionsI Theorie polyedrale (faces, facettes, etc.)

I Dualite lagrangienne

I Familles de coupes / inegalites valides (coupes deChvatal-Gomory, coupes disjonctives, etc.)

I Algorithme Branch and cut

I Cas non-lineaire

I Metaheuristiques

I Theorie des graphes

I Solveurs :I OL entier/binaire/mixte : CPLEX, Gurobi, etc.

I ONL entier/binaire/mixte : Baron, Bonmin, etc.

MTH8415: Optimisation en nombres entiers 56/58

Page 70: Optimisation en nombres entiers - GERAD · Introduction Mod elisation B&B Sac a dos GAP Extensions R ef erences Mod ele de probl eme lin eaire en nombres entiers (PLNE) max x c>x

Introduction Modelisation B&B Sac a dos GAP Extensions References

1. Introduction

2. Modelisation

3. Algorithme d’enumeration implicite

4. Probleme du sac a dos

5. Resolution avec un solveur : Probleme d’affectationgeneralisee (GAP)

6. Extensions

References

MTH8415: Optimisation en nombres entiers 57/58

Page 71: Optimisation en nombres entiers - GERAD · Introduction Mod elisation B&B Sac a dos GAP Extensions R ef erences Mod ele de probl eme lin eaire en nombres entiers (PLNE) max x c>x

Introduction Modelisation B&B Sac a dos GAP Extensions References

References I

Audet, C. (2001).

Notes de cours, MTH6404, Programmation en nombres entiers.

Land, A. and Doig, A. (1960).

An Automatic Method of Solving Discrete Programming Problems.

Econometrica, 28(3) :497–520.

Wolsey, L. (1998).

Integer programming.

Wiley-Interscience series in discrete mathematics and optimization. J.Wiley & sons, New York (N.Y.), Chichester, Weinheim.

MTH8415: Optimisation en nombres entiers 58/58