programmation linéaire en nombres entiers. introduction problème de programmation linéaire en...

50
Programmation linéaire en nombres entiers

Upload: gauthier-gomes

Post on 04-Apr-2015

147 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Programmation linéaire en nombres entiers. Introduction Problème de programmation linéaire en nombres entiers (P) F(P) = domaine réalisable de P Exemple

Programmation linéaire

en

nombres entiers

Page 2: Programmation linéaire en nombres entiers. Introduction Problème de programmation linéaire en nombres entiers (P) F(P) = domaine réalisable de P Exemple

Introduction

• Problème de programmation linéaire en nombres entiers

(P)

• F(P) = domaine réalisable de P

• Exemple

njx

mibxa

xc

j

i

n

jjij

j

n

jj

,,1entier ,0

,,1 àSujet

Min

1

1

entier,0,

2

2010 àSujet

5Min

21

1

21

21

xx

x

xx

xxz

Page 3: Programmation linéaire en nombres entiers. Introduction Problème de programmation linéaire en nombres entiers (P) F(P) = domaine réalisable de P Exemple

Introduction

• Problème de programmation linéaire en nombres entiers

(P)

• F(P) = domaine réalisable de P

• Exemple

njx

mibxa

xc

j

i

n

jjij

j

n

jj

,,1entier ,0

,,1 àSujet

Min

1

1

entier,0,

2

2010 àSujet

5Min

21

1

21

21

xx

x

xx

xxz

2010 21 xx

21 x

( ) 0,0 , 1,0 , 2,0 , 0,1 , 1,1 , 2,1 , 0,2F P

Page 4: Programmation linéaire en nombres entiers. Introduction Problème de programmation linéaire en nombres entiers (P) F(P) = domaine réalisable de P Exemple

Introduction

• Problème de programmation linéaire en nombres entiers

(P)

• F(P) = domaine réalisable de P

• dénote le problème (P) où les contraintes d’intégralité sur les variables sont rélaxées.

• Exemple

njx

mibxa

xc

j

i

n

jjij

j

n

jj

,,1entier ,0

,,1 àSujet

Min

1

1

entier,0,

2

2010 àSujet

5Min

21

1

21

21

xx

x

xx

xxz

P

2010 21 xx

21 x

P

Page 5: Programmation linéaire en nombres entiers. Introduction Problème de programmation linéaire en nombres entiers (P) F(P) = domaine réalisable de P Exemple

Introduction

• Problème de programmation linéaire en nombres entiers

• F(P) = domaine réalisable de P

• dénote le problème (P) où les contraintes d’intégralité sur les variables sont rélaxées.

• Exemple

njx

mibxa

xc

j

i

n

jjij

j

n

jj

,,1entier ,0

,,1 àSujet

Min

1

1

entiers,0,

2

2010 àSujet

5Min

21

1

21

21

xx

x

xx

xxz

P

2010 21 xx

21 x

PF

P

Page 6: Programmation linéaire en nombres entiers. Introduction Problème de programmation linéaire en nombres entiers (P) F(P) = domaine réalisable de P Exemple

Introduction

• Problème de programmation linéaire en nombres entiers

(P)

• Résolution du problème

Pourquoi pas résoudre le problème relaxé et arrondir la solution?

• Exemple

Solution du problème relaxé:

(2, 9/5) et z = –11

Solution arrondie: (2, 1) et z = –7

njx

mibxa

xc

j

i

n

jjij

j

n

jj

,,1entier ,0

,,1 àSujet

Min

1

1

entiers,0,

2

2010 àSujet

5Min

21

1

21

21

xx

x

xx

xxz

2010 21 xx

21 x

PF

Or (0, 2) est réalisable avec z = –10

Page 7: Programmation linéaire en nombres entiers. Introduction Problème de programmation linéaire en nombres entiers (P) F(P) = domaine réalisable de P Exemple

Méthodes de résolution

• Principe de base

Générer un ensemble de contraintes

linéaires que nous ajoutons à (P)

• Exemple

entiers,0,

2

2010 àSujet

5Min

21

1

21

21

xx

x

xx

xxz

2010 21 xx

21 x

PF

42 21 xx

Page 8: Programmation linéaire en nombres entiers. Introduction Problème de programmation linéaire en nombres entiers (P) F(P) = domaine réalisable de P Exemple

Méthodes de résolution

• Principe de base

Générer un ensemble de contraintes linéaires que nous ajoutons à (P) pour engendrer un nouveau problème (PR) tel que

De plus en résolvant le problème relaxé , la solution optimale est entière et donc une solution optimale pour (P).

• Exemple

2010 21 xx

21 x

PF

42 21 xx

entiers,0,

42

2

2010 àSujet

5Min

21

21

1

21

21

xx

xx

x

xx

xxz

F PR F P

F PR F P

PR

Page 9: Programmation linéaire en nombres entiers. Introduction Problème de programmation linéaire en nombres entiers (P) F(P) = domaine réalisable de P Exemple

Méthode des coupes de Gomory

• Principe des méthodes de coupes

Introduire de nouvelles contraintes linéaires au problème pour réduire le domaine réalisable du problème relaxé sans pour autant éliminer de points du domaine réalisable du problème avec les contraintes de nombre entier sur les variables.

• La procédure consiste à résoudre une suite de problèmes relaxés jusqu’à ce qu’une solution optimale en nombres entiers soit obtenue.

• Un problème de la suite est obtenu du précédent en lui ajoutant une contrainte linéaire (coupe) supplémentaire.

Page 10: Programmation linéaire en nombres entiers. Introduction Problème de programmation linéaire en nombres entiers (P) F(P) = domaine réalisable de P Exemple

n

j 1

1

Considérons le problème de programmation linéaire

en nombres entiers suivant:

( ) Min

Sujet à 1, ,

0,entier, 1, ,

j j

n

ij j ij

j

P c x

a x b i m

x j n

Voyons comment construire une coupe de Gomory.

Soit une base optimale de ( ), et la variable de basedans la ième ligne du tableau optimal prenant une valeur qui n'est pas entière.

kB P xi

Page 11: Programmation linéaire en nombres entiers. Introduction Problème de programmation linéaire en nombres entiers (P) F(P) = domaine réalisable de P Exemple

1

1

1 2

11 12 1 1 1

1 2

1

var terme

base droite

0 1 0 0

1 0 0 0

m

m

k j j j n

j j n

k i i ij in i

j m m

x x x x x x x z

x t t t t b

x t t t t b

x t t

2

1 2

0 0 1 0

0 0 0 1

mj mn m

j n

t t b

z c c c c z

Le tableau optimal est de la forme:

La ligne correspondante du tableau optimal est de la forme:

1

où : est l'indice d'une variable hors base et n'est pas entier.

ik ij jj J

i

x t x b

J j j b

Page 12: Programmation linéaire en nombres entiers. Introduction Problème de programmation linéaire en nombres entiers (P) F(P) = domaine réalisable de P Exemple

La ligne correspondante du tableau est de la forme:

1

où : est l'indice d'une variable hors base et

n'est pas entier.

ik ij jj J

i

x t x b

J j j

b

Dénotons le plus grand entier (plancher) .Puisque 0 , alors

et par conséquent. (2)

j

ij j ij jj J j J

ik ij j k ij jj J j J

d dx j

t x t x

x t x x t x b

Page 13: Programmation linéaire en nombres entiers. Introduction Problème de programmation linéaire en nombres entiers (P) F(P) = domaine réalisable de P Exemple

entier. pasest n' b

et base hors variableuned' indicel'est :où

1

:forme la deest du tableau antecorrespond ligne La

i

i

Jjjijk

jjJ

bxtx

(3).satisfait )( desolution touteAinsi

)3(.

que (2) de découle il , variablesdes

éintégralitd' contrainte la sconsidéron nous Si

P

bxtx

x

ijJj

ijk

j

)2(.

conséquentpar et

alors ,0 Puisque

.(plancher)entier grand plus le sDéfinisson

ijJj

ijk

Jjjijj

Jjij

j

bxtx

xtxt

jx

dd

0et 0

que Notons

4

:(1)et (3) entre différence lefaisant

en obtenuerelation la maintenant sConsidéron

iijij

ijJj

ijij

bbtt

bbxtt

i

i

).( desolution aucune éliminen' )( danson introductison et

(4),satisfait elle alors (3),et (1)satisfait )( desolution toutePuisque

PP

P

Page 14: Programmation linéaire en nombres entiers. Introduction Problème de programmation linéaire en nombres entiers (P) F(P) = domaine réalisable de P Exemple

0et 0

que Notons

4

:(1)et (3) entre différence lefaisant

en obtenuerelation la maintenant sConsidéron

iijij

ijJj

ijij

bbtt

bbxtt

i

i

).( desolution aucune éliminen' )( danson introductison et

(4),satisfait elle alors (3),et (1)satisfait )( desolution toutePuisque

PP

P

).( relaxé problèmedu réalisable domaine

leréduit on introductison et (4) passatisfait ne 0

où )( relaxé problèmedu actuellesolution la contre,Par

P

Jjx

P

j

Page 15: Programmation linéaire en nombres entiers. Introduction Problème de programmation linéaire en nombres entiers (P) F(P) = domaine réalisable de P Exemple

Pour poursuivre la résolution, il suffit d'introduire la contrainte

où est une variable d'écart avec coût nul, au dernier tableau du

simplex

i ii iij ij j ij ij jj J j J

t t x b b t t x x b b

x

e pour générer une solution de base au nouveau problème en

considérant comme la variable de base dans la nouvelle ligne du tableau.

Cette solution de base n'est pas réalisable puisque 0.i i

x

x b b

Il suffit de poursuivre la résolution avec l'algorithme dual du simplexe.

Page 16: Programmation linéaire en nombres entiers. Introduction Problème de programmation linéaire en nombres entiers (P) F(P) = domaine réalisable de P Exemple

1

1

1 2

11 12 1 1 1

1 2

var terme

base droite

0 1 0 0 0

1 0 0 0 0

m

m

k j j j n

j j n

k i i ij in i

j

x x x x x x x x z

x t t t t b

x t t t t b

x t

1 2

1 1 2 2

1 2

0 0 1 0 0

0 0 0 1 0

0 0 0 0 1

i

m m mj mn m

ii i i i ij ij in in

j n

t t t b

x t t t t t t t t b b

z c c c c z

Page 17: Programmation linéaire en nombres entiers. Introduction Problème de programmation linéaire en nombres entiers (P) F(P) = domaine réalisable de P Exemple

Pour poursuivre la résolution, il suffit d'introduire la contrainte

où est une variable d'écart avec coût nul, au dernier tableau du

simplex

i ii iij ij j ij ij jj J j J

t t x b b t t x x b b

x

e pour générer une solution de base au nouveau problème en

considérant comme la variable de base dans la nouvelle ligne du tableau.

Cette solution de base n'est pas réalisable puisque 0.i i

x

x b b

Il suffit de poursuivre la résolution avec l'algorithme dual du simplexe.

Notes:

1) Si (i.e., est entier) , et si n'est pas entier, alors

1

indique que ( ) n'est pas réalisable puisque le terme de gauche prend une

valeur entière

iij ij ij

ik ij jj J

t t t j J b

x t x b

P

pour toute solution réalisable de ( ) alors que le terme de

droite n'est pas entier.

2) Une dérivation similaire s'applique à toutes les itérations.

P

Page 18: Programmation linéaire en nombres entiers. Introduction Problème de programmation linéaire en nombres entiers (P) F(P) = domaine réalisable de P Exemple

1 2

1 2 3

1 2 3

Considérons le problème suivantMin 21 11Sujet à 7 4 13

, , 0, entiers

x xx x x

x x x

Page 19: Programmation linéaire en nombres entiers. Introduction Problème de programmation linéaire en nombres entiers (P) F(P) = domaine réalisable de P Exemple

1 2 3

2 3 4

Itération 1:Solution de base optimal de ( )

4 1 13

7 7 7valeur opt. 39

Nouvelle contrainte:4 4 1 1 13 13

7 7 7 7 7 7

P

x x x

x x x

1647134

Ainsi .4713Or

.647

6

7

1

7

4

:egéométriqution Interpréta

1212

213

3232

xxxx

xxx

xxxx

i iij ij j i ij ij j ij J j J

t t x b b t t x x b b

1 2

1 2 3

1 2 3

Min 21 11Sujet à 7 4 13

, , 0, entiers

x xx x x

x x x

Page 20: Programmation linéaire en nombres entiers. Introduction Problème de programmation linéaire en nombres entiers (P) F(P) = domaine réalisable de P Exemple

entiers ,0,,,7

6

7

1

7

4

1347 àSujet

1121Min

de relaxé problème le Résoudre

:2Itération

4321

432

321

21

xxxx

xxx

xxx

xx

2

137opt.valeur

2

3

4

7

4

1

1

obtenons Nous

432

41

xxx

xx

Page 21: Programmation linéaire en nombres entiers. Introduction Problème de programmation linéaire en nombres entiers (P) F(P) = domaine réalisable de P Exemple

2 3 4

3 4 5

3 4 5

1 7 3Nouvelle contrainte à partir de la 2ième ligne :

4 4 21 1 7 7 3 3

4 4 4 4 2 21 1 1

4 4 2

x x x

x x x

x x x

3 4

4

2 3 4

3 2 3

3

3 1 2

Interprétation géométrique2

Substituons la valeur de tirée de ladernière contrainte ajoutée

4 1 6

7 7 7pour obtenir

4 1 62.

7 7 7Substituons maintenant la valeur de

13 7 4pour ob

x xx

x x x

x x x

xx x x

1 2 2

1 2 1 2

tenir8 32 4 6

13 8 27 7 7 7

8 68 4 2 13 2 3

7 7

x x x

x x x x

iij ij j ij J

iij ij j ij J

t t x b b

t t x x b b

1 2

1 2 3

2 3 4

1 2 3 4

Min 21 11Sujet à 7 4 13

4 1 6

7 7 7, , , 0, entiers

x xx x x

x x x

x x x x

Page 22: Programmation linéaire en nombres entiers. Introduction Problème de programmation linéaire en nombres entiers (P) F(P) = domaine réalisable de P Exemple

33optimaleValeur

1,3,0

:entière optimalesolution Donc

1

32

1

obtenons Nous

321

41

521

531

xxx

xx

xxx

xxx

entiers ,0,,,,2

1

4

1

4

12

3

4

7

4

1

1 àSujet

1121Min

problèmeleRésoudre

:3Itération

54321

543

432

41

21

xxxxx

xxx

xxx

xx

xx

Page 23: Programmation linéaire en nombres entiers. Introduction Problème de programmation linéaire en nombres entiers (P) F(P) = domaine réalisable de P Exemple

Référence:

A. Schrijver, Theory of Linear and Integer Programming,

Wiley & Sons, 1986, 354 - 357

Convergence de la méthode de coupes de Gomory

En faisant certaines hypothèses sur le choix de la ligne du

tableau pour spécifier la prochaine coupe, l'auteur demontre:

"... the cutting plane method terminates"

Page 24: Programmation linéaire en nombres entiers. Introduction Problème de programmation linéaire en nombres entiers (P) F(P) = domaine réalisable de P Exemple

Méthode de Branch & Bound

• Dans cette méthode nous résolvons également une suite de problèmes relaxés.

• Nous résolvons d’abord . Si la solution optimale est entière, alors cette solution est optimale pour le problème original (P).

• Sinon, nous utilisons une variable n’est pas entière.

• Nous considérons deux nouvelles contraintes

P x

ii xx valeur ladont

(plancher de )

ou

(plafond de )

ii i

ii i

x x x

x x x

1

1

Min

( ) Sujet à 1, ,

0, entier 1, ,

n

j jj

n

ij j ij

j

c x

P a x b i m

x j n

1

1

Min

( ) Sujet à 1, ,

0, 1, ,

n

j jj

n

ij j ij

j

c x

P a x b i m

x j n

Page 25: Programmation linéaire en nombres entiers. Introduction Problème de programmation linéaire en nombres entiers (P) F(P) = domaine réalisable de P Exemple

66611 21 xx

4510 21 xx

entiers ,0,

4510

66611 àSujet

5Min

21

21

21

21

xx

xx

xx

xxz

375.24

125.4,75.3

:relaxé prob. opt. Sol.

21

z

xx

1

1

Nouvelles contraintes considérées:

3.75 3

ou

3.75 4

x

x

Avec ces deux nouvelles contraintes - points réalisables de sont conservés - une tranche du domaine réalisable du problème relaxé est éliminée

P

Page 26: Programmation linéaire en nombres entiers. Introduction Problème de programmation linéaire en nombres entiers (P) F(P) = domaine réalisable de P Exemple

66611 21 xx

4510 21 xx

entiers ,0,

4510

66611 àSujet

5Min

21

21

21

21

xx

xx

xx

xxz

375.24

125.4,75.3

:relaxé prob. opt. Sol.

21

z

xx

1

1

Nouvelles contraintes considérées:

3.75 3

ou

3.75 4

x

x

Tranche de

éliminée

F P

Page 27: Programmation linéaire en nombres entiers. Introduction Problème de programmation linéaire en nombres entiers (P) F(P) = domaine réalisable de P Exemple

66611 21 xx

4510 21 xx

entiers ,0,

4510

66611 àSujet

5Min

21

21

21

21

xx

xx

xx

xxz

375.24

125.4,75.3

:relaxé prob. opt. Sol.

21

z

xx

1

1

Nouvelles contraintes :3.75 3

ou3.75 4

x

x

Tranche de

éliminée

F P

2PF 3PF

2 3

Par contre, ce qui reste de n'est plus connexe puisqu'il

comporte deux sous-ensembles et .

F P

F P F P

Page 28: Programmation linéaire en nombres entiers. Introduction Problème de programmation linéaire en nombres entiers (P) F(P) = domaine réalisable de P Exemple

66611 21 xx

4510 21 xx

entiers ,0,

4510

66611 àSujet

5Min

21

21

21

21

xx

xx

xx

xxz

1

1

Nouvelles contraintes considérées:

3.75 3

ou

3.75 4

x

x

2PF 3PF

entiers ,0,

4

4510

66611 àSujet

5Min

21

1

21

21

212

xx

x

xx

xx

xxzP

entiers ,0,

3

4510

66611 àSujet

5Min

21

1

21

21

213

xx

x

xx

xx

xxzP

22

33

Poursuivre la résolution en associant des problèmes à

et à .

P F P

P F P

2 3La meilleure des deux solutions optimales de et est la solution optimale de .

P PP

Page 29: Programmation linéaire en nombres entiers. Introduction Problème de programmation linéaire en nombres entiers (P) F(P) = domaine réalisable de P Exemple

• Prochaine itération

Choisir un des deux problèmes (P2) ou (P3 )

Le traiter comme nous avons fait pour P.

• Dans notre exemple, nous choisissons le problème (P3)

Page 30: Programmation linéaire en nombres entiers. Introduction Problème de programmation linéaire en nombres entiers (P) F(P) = domaine réalisable de P Exemple

2

2

Nouvelles contraintes considérées:

4.2 4

ou

4.2 5

x

x

66611 21 xx

4510 21 xx

2PF 3PF

entiers ,0,

3

4510

66611 àSujet

5Min

21

1

21

21

213

xx

x

xx

xx

xxzP

3

1 2

Sol. opt. prob. relaxé :

3, 4.2

24

P

x x

z

Tranche de

éliminée

F P

Page 31: Programmation linéaire en nombres entiers. Introduction Problème de programmation linéaire en nombres entiers (P) F(P) = domaine réalisable de P Exemple

2

2

Nouvelles contraintes considérées:

4.2 4

ou

4.2 5

x

x

66611 21 xx

4510 21 xx

2PF 5F P

entiers ,0,

3

4510

66611 àSujet

5Min

21

1

21

21

213

xx

x

xx

xx

xxzP

entiers

àSujet Min

,0,43

451066611

5

21

2

1

21

21

215

xxxx

xxxxxxzP 4 1 2

1 2

1 2

1

2

1 2

Min 5 Sujet à 11 6 66

10 4535

, 0, entiers

P z x xx x

x xxx

x x

Page 32: Programmation linéaire en nombres entiers. Introduction Problème de programmation linéaire en nombres entiers (P) F(P) = domaine réalisable de P Exemple

• Prochaine itération

Choisir un des problèmes qui n’a pas encore été traité.

Le traiter comme nous avons fait pour P.

• Dans notre exemple, nous choisissons le problème (P5)

5 4 2, ,P P P

Page 33: Programmation linéaire en nombres entiers. Introduction Problème de programmation linéaire en nombres entiers (P) F(P) = domaine réalisable de P Exemple

66611 21 xx

4510 21 xx

2PF 5PF

entiers

àSujet Min

,0,43

451066611

5

21

2

1

21

21

215

xxxx

xxxxxxzP

5

1 2

Sol. opt. prob. relaxé :

3, 4

23

P

x x

z

Puisque la solution du sous-problème relaxé est entière, elle est une solution réalisable de (P).Nous ne générons pas de nouveau sous-problème puisque nous avons identifié la meilleure solution de cette région du domaine réalisable de (P). Au cours du processus, nous conservons la meilleure solution entière rencontrée dont la valeur constitue une borne supérieure BS sur la valeur optimale de (P).

Page 34: Programmation linéaire en nombres entiers. Introduction Problème de programmation linéaire en nombres entiers (P) F(P) = domaine réalisable de P Exemple

• Prochaine itération

Choisir un des problèmes qui n’a pas encore été traité.

Le traiter comme nous avons fait pour (P).

• Dans notre exemple, nous choisissons le problème (P4)

4 2,P P

Page 35: Programmation linéaire en nombres entiers. Introduction Problème de programmation linéaire en nombres entiers (P) F(P) = domaine réalisable de P Exemple

66611 21 xx

4510 21 xx

2PF

entiers

àSujet Min

,0,53

451066611

5

21

2

1

21

21

214

xxxx

xxxxxxzP

4

4

Problème non réalisable

P

F P

Il n’y a donc pas lieu de poursuivre la fouille dans cette partie dudomaine réalisable de (P)qui est vide.

Page 36: Programmation linéaire en nombres entiers. Introduction Problème de programmation linéaire en nombres entiers (P) F(P) = domaine réalisable de P Exemple

• Prochaine itération

Choisir un des problèmes qui n’a pas encore été traité.

Le traiter comme nous avons fait pour (P).

• Dans notre exemple, il ne reste que le problème (P2)

2P

Page 37: Programmation linéaire en nombres entiers. Introduction Problème de programmation linéaire en nombres entiers (P) F(P) = domaine réalisable de P Exemple

entiers ,0,

4

4510

66611 àSujet

5Min

21

1

21

21

212

xx

x

xx

xx

xxzP

66611 21 xx

4510 21 xx

2PF 2

1 2

Sol. opt. prob. relaxé :

4, 3.667

22.333

P

x x

z

La solution optimale du problème relaxé n’est pas entière mais sa valeur z = –22.333 > BS = – 23Il n’y a donc pas lieu de poursuivre la fouille dans cette partie dudomaine réalisable de (P) car il est impossible d’y trouver une solutionentière de valeur inférieure à – 23.

Page 38: Programmation linéaire en nombres entiers. Introduction Problème de programmation linéaire en nombres entiers (P) F(P) = domaine réalisable de P Exemple

• La procédure s’arrête quand tous les problèmes relaxés générés ont été résolus

• La solution entière dont la valeur est égale à BS est une solution optimale de (P).

Page 39: Programmation linéaire en nombres entiers. Introduction Problème de programmation linéaire en nombres entiers (P) F(P) = domaine réalisable de P Exemple

Représentation comme un arbre d’énumération

P

2P 3P

4P 5P

41 x 31 x

42 x52 x

Sol. entièreBS = – 23

SolutionNon-réalisable

Sol. non entièrez = – 22.333 > BS

Solution optimale

2.42 x

75.31 x1 2

1 2

1 2

1 2

Min 5Sujet à 11 6 66

10 45, 0,

z x xx x

x xx x

3 1 2

1 2

1 2

1

1 2

Min 5 Sujet à 11 6 66

10 453

, 0,

P z x xx x

x xx

x x

5 1 2

1 2

1 2

1

2

1 2

Min 5 Sujet à 11 6 66

10 4534

, 0,

P z x xx x

x xxx

x x

4 1 2

1 2

1 2

1

2

1 2

Min 5 Sujet à 11 6 66

10 4535

, 0,

P z x xx x

x xxx

x x

2 1 2

1 2

1 2

1

1 2

Min 5 Sujet à 11 6 66

10 454

, 0,

P z x xx x

x xx

x x

Problèmes candidats

P

2P

3P 4P

5P

Page 40: Programmation linéaire en nombres entiers. Introduction Problème de programmation linéaire en nombres entiers (P) F(P) = domaine réalisable de P Exemple

Approche du Branch & Bound

• Approche itérative.• À chaque itération, - il y a une liste de problèmes candidats à être analysés. Au départ, la liste contient uniquement le problème original (P). - nous choisissons un problème candidat et nous résolvons le problème relaxé correspondant - la solution optimale du problème relaxé nous permet de mettre à jour la liste de problèmes candidats ou la borne supérieure de même que la meilleure solution rencontrée

Page 41: Programmation linéaire en nombres entiers. Introduction Problème de programmation linéaire en nombres entiers (P) F(P) = domaine réalisable de P Exemple

Procédure du Branch & Bound

• Initialisation

Liste de problème candidat contient uniquement (P)

BS = ∞

Aller à l’étape 2.

• Étape 1

Si la liste est vide, terminer. La solution optimale est celle

associée à BS, a moins que BS = ∞ dans lequel cas le problème

P n’as pas de solution.

• Étape 2

Choisir le premier problème candidat (PC) en tête de liste.

Page 42: Programmation linéaire en nombres entiers. Introduction Problème de programmation linéaire en nombres entiers (P) F(P) = domaine réalisable de P Exemple

Si la liste est vide, terminer. La solution optimale est celle

associée à , a moins que = dans lequel cas le problème

n'as pas de solutio

Étape

n

1

.

BS BS

Choisir le premier problème candidat en têt

Étape

e de li t .

2

s ePC

Analyser en solutionnant .

Si , aller à l 'étape 1.

Si , aller à l 'étape 1.

Si la solution optimale d

Étap

e est entière, alo

e

rs

3

PC PC

F PC

v PC BS

PC

si , alors : ,v PC BS BS v PC aller à l'étape1.

Page 43: Programmation linéaire en nombres entiers. Introduction Problème de programmation linéaire en nombres entiers (P) F(P) = domaine réalisable de P Exemple

Analyser en solutionnant .

Si , aller à l 'étape 1.

Si , aller à l 'étape 1.

Si la solution optimale d

Étap

e est entière, alo

e

rs

3

PC PC

F PC

v PC BS

PC

si , alors : ,v PC BS BS v PC aller à l'étape1.

Choisir une variable qui n'est pas entière

ap

.

Ét e 4

jx

Générer un premier nouveau problème en ajoutant la contrainte

au problème et le placer en tête de la listej jx x PC

Générer un deuxième nouveau problème en ajoutant la contrainte

au problème et le placer en tête de la listej jx x PC Aller à l'étape 2.

Page 44: Programmation linéaire en nombres entiers. Introduction Problème de programmation linéaire en nombres entiers (P) F(P) = domaine réalisable de P Exemple

Si la liste est vide, terminer. La solution optimale est celle

associée à , a moins que = dans lequel cas le problème

n'as pas de solutio

Étape

n

1

.

BS BS

Choisir le premier problème candidat en têt

Étape

e de li t .

2

s ePC

Analyser en solutionnant .

Si , aller à l 'étape 1.

Si , aller à l 'étape 1.

Si la solution optimale d

Étap

e est entière, alo

e

rs

3

PC PC

F PC

v PC BS

PC

si , alors : ,v PC BS BS v PC aller à l'étape1.

Page 45: Programmation linéaire en nombres entiers. Introduction Problème de programmation linéaire en nombres entiers (P) F(P) = domaine réalisable de P Exemple

Principe de fouille dans l'arbre

Page 46: Programmation linéaire en nombres entiers. Introduction Problème de programmation linéaire en nombres entiers (P) F(P) = domaine réalisable de P Exemple

Représentation comme un arbre d’énumération

P

2P 3P

4P 5P

41 x 31 x

42 x52 x

Sol. entièreBS = – 23

SolutionNon-réalisable

Sol. non entièrez = – 22.333 > BS

Solution optimale

2.42 x

75.31 x1 2

1 2

1 2

1 2

Min 5Sujet à 11 6 66

10 45, 0,

z x xx x

x xx x

3 1 2

1 2

1 2

1

1 2

Min 5 Sujet à 11 6 66

10 453

, 0,

P z x xx x

x xx

x x

5 1 2

1 2

1 2

1

2

1 2

Min 5 Sujet à 11 6 66

10 4534

, 0,

P z x xx x

x xxx

x x

4 1 2

1 2

1 2

1

2

1 2

Min 5 Sujet à 11 6 66

10 4535

, 0,

P z x xx x

x xxx

x x

2 1 2

1 2

1 2

1

1 2

Min 5 Sujet à 11 6 66

10 454

, 0,

P z x xx x

x xx

x x

Problèmes candidats

P

2P

3P 4P

5P

Page 47: Programmation linéaire en nombres entiers. Introduction Problème de programmation linéaire en nombres entiers (P) F(P) = domaine réalisable de P Exemple

Principe de fouille dans l'arbre

a) Fouille en profondeur:

descendre rapidement dans l'arbre pour aller chercher

le plus rapidement possible une première solution

entière réalisable

b) Fouille au meilleur noeud potentiel:

faire quelques itérations à chaque noeud de la liste pour

tenter d'identifier celui qui a le plus de potentiel de faire

décroitre la borne supérieure

c) Fouille en largeur:

compléter un étage de l'arbre avant de descendre dans

celui-ci

Page 48: Programmation linéaire en nombres entiers. Introduction Problème de programmation linéaire en nombres entiers (P) F(P) = domaine réalisable de P Exemple

Choix de la variable de séparation ,j j j j jx x x x x

La variable telle que

a) le plus grand

j

j j

x

x x b) le plus petitj jx x c) le plus proche de 0.5j jx x

Page 49: Programmation linéaire en nombres entiers. Introduction Problème de programmation linéaire en nombres entiers (P) F(P) = domaine réalisable de P Exemple

Solution optimale pour le problème couran

Utiliser l'algorithme dual pour résoudre

t (au point courant de l'arbre)

n'est pas

le problème relaxé

c

réalisable pour le p

hoisi dans

roblème ob

la l

tenu

iste

en ajoutant une contrainte

du type ou .

On peut donc utiliser l'algorithme dual pour résoudre ce nouveau problème

en partant de la solution optimale du problème précédent.

j j j jx x x x

Page 50: Programmation linéaire en nombres entiers. Introduction Problème de programmation linéaire en nombres entiers (P) F(P) = domaine réalisable de P Exemple

Référence.

A. Atamturk, M.W.P. Savelsbergh, "Integer-Programming Software

Systems", Annals of Operations Research 140, 67-124, 2005.