programmation linéaire en nombres entiers

58
Programmation linéaire en nombres entiers

Upload: others

Post on 24-Oct-2021

15 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Programmation linéaire en nombres entiers

Programmation linéaire

en

nombres entiers

Page 2: Programmation linéaire en nombres entiers

Introduction

• Problème de programmationlinéaire en nombres entiers

(P)

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

• Exemple

njx

mibxa

xc

j

i

n

j

jij

j

n

j

j

,,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 programmationlinéaire en nombres entiers

(P)

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

• Exemple

njx

mibxa

xc

j

i

n

j

jij

j

n

j

j

,,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 programmationliné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

j

jij

j

n

j

j

,,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 programmationliné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

j

jij

j

n

j

j

,,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 programmationliné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

j

jij

j

n

j

j

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

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

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

( )PR

Page 9: Programmation linéaire en nombres entiers

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

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 i

j

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 x

i

Page 11: Programmation linéaire en nombres entiers

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 j

j J

i

x t x b

J j j b

+ =

=

Page 12: Programmation linéaire en nombres entiers

( )

{ }

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 j

j J

i

x t x b

J j j

b

+ =

=

Dénotons le plus grand entier (plancher) .d d= ≤

Ainsi et puisque 0 , alors

et

Par conséquent. (2)

ij ij

j

ij ij ij ij

ij j ij j

j J j J

ik ij j k ij j

j J j J

t t

x j

t x t x

t x t x

x t x x t x b

∈ ∈

∈ ∈

≤ ≥ ∀

≤ ≤

+ ≤ + =

∑ ∑

∑ ∑

Page 13: Programmation linéaire en nombres entiers

( )

{ }

entier. pasest n' b

et base hors variableuned' indicel'est :où

1

:forme la deest du tableau antecorrespond ligne La

i

i

Jj

jijk

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

ij

Jj

ijk

j

≤+∑∈

)2(.

conséquentpar et

alors ,0 Puisque

.(plancher)entier grand plus le sDéfinisson

ij

Jj

ijk

Jj

jijj

Jj

ij

j

bxtx

xtxt

jx

dd

≤+

∀≥

≤=

∑∑

∈∈

( ) ( ) ( )

( ) ( )

Considérons maintenant la relation obtenue en

faisant la différence entre (3) et (1):

4

Notons que

0 et 0

i

i

iij ij j

j J

iij ij

t t x b b

t t b b

− ≤ −

− ≤ − <

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

( ) ( ) ( )

( ) ( ) 0et 0

que Notons

4

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

en obtenuerelation la maintenant sConsidéron

<−≤−

−≤−∑∈

iijij

ij

Jj

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 ∈∀=

( ) ( )

( )

Introduisons cette coupe 4 dans le problème pour obtenir

le problème qui est résolu à son tour.

P

PR

Page 15: Programmation linéaire en nombres entiers

( ) ( ) ( ) ( )

Utiliser l'algorithme dual du simplex en introduisant la contrainte

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

simpl

i ii iij ij j ij ij j

j J j J

t t x b b t t x x b b

x

τ

τ

∈ ∈

− ≤ − ↔ − + = − ∑ ∑

( )

( )

exe lors de la résolution du problème afin de 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

P

PR xτ

( ) n'est pas réalisable puisque 0.

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

i ix b bτ = − <

( )Deux alternatives se présentent pour résoudre le problème . PR

Utiliser l'algorithme primal du simplexe.•

Page 16: Programmation linéaire en nombres entiers

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

τ − − − − −

− −

… … … … …

… … … … …

… … … … …

( ) ( )

Dans le dernier tableau du simplexe, introduire la contrainte

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

i iij ij j

j J

t t x x b b

x

τ

τ

− + = − ∑

Page 17: Programmation linéaire en nombres entiers

( ) ( ) ( ) ( )

Utiliser l'algorithme dual du simplex en introduisant la contrainte

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

simpl

i ii iij ij j ij ij j

j J j J

t t x b b t t x x b b

x

τ

τ

∈ ∈

− ≤ − ↔ − + = − ∑ ∑

( )

( )

exe lors de la résolution du problème afin de 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

P

PR xτ

( ) n'est pas réalisable puisque 0.

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

i ix b bτ = − <

Page 18: Programmation linéaire en nombres entiers

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

τ − − − − −

− −

… … … … …

… … … … …

… … … … …

0<

Page 19: Programmation linéaire en nombres entiers

( ) ( ) ( ) ( )

Utiliser l'algorithme dual du simplex en introduisant la contrainte

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

simpl

i ii iij ij j ij ij j

j J j J

t t x b b t t x x b b

x

τ

τ

∈ ∈

− ≤ − ↔ − + = − ∑ ∑

( )

( )

exe lors de la résolution du problème afin de 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

P

PR xτ

( ) n'est pas réalisable puisque 0.

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

i ix b bτ = − <

Page 20: Programmation linéaire en nombres entiers

( )

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 j

j 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 21: Programmation linéaire en nombres entiers

1 2

1 2

1 2

Considérons le problème suivant

Min 21 11

Sujet à 7 4 13

, 0, entiers

x x

x x

x x

− −

+ ≤

1 2

1 2 3

1 2 3

Le problème standardisé:

Min 21 11

Sujet à 7 4 13

, , 0, entiers

x x

x x x

x x x

− −

+ + =

Page 22: Programmation linéaire en nombres entiers

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 i

j 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 23: Programmation linéaire en nombres entiers

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 24: Programmation linéaire en nombres entiers

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 i

j J

iij ij j i

j 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 25: Programmation linéaire en nombres entiers

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 26: Programmation linéaire en nombres entiers

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 27: Programmation linéaire en nombres entiers

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 j

j

n

ij j i

j

j

c x

P a x b i m

x j n

=

=

= =

≥ =

∑ �

1

1

Min

( ) Sujet à 1, ,

0, 1, ,

n

j j

j

n

ij j i

j

j

c x

P a x b i m

x j n

=

=

= =

≥ =

∑ �

Page 28: Programmation linéaire en nombres entiers

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 29: Programmation linéaire en nombres entiers

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 30: Programmation linéaire en nombres entiers

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 31: Programmation linéaire en nombres entiers

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 P

P

Page 32: Programmation linéaire en nombres entiers

• 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 33: Programmation linéaire en nombres entiers

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 34: Programmation linéaire en nombres entiers

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

≤+

≤+

−−=

xx

x

x

xx

xx

xxzP( )4 1 2

1 2

1 2

1

2

1 2

Min 5 Sujet à 11 6 66

10 4535

, 0, entiers

P z x x

x xx xxx

x x

= − −

+ ≤+ ≤

≤≥

Page 35: Programmation linéaire en nombres entiers

• 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 36: Programmation linéaire en nombres entiers

66611 21 =+ xx

4510 21 =+ xx

( )2PF( )5PF

( )

entiers

àSujet Min

,0,43

451066611

5

21

2

1

21

21

215

≤+

≤+

−−=

xx

x

x

xx

xx

xxzP

( )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 37: Programmation linéaire en nombres entiers

• 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 38: Programmation linéaire en nombres entiers

66611 21 =+ xx

4510 21 =+ xx

( )2PF

( )

entiers

àSujet Min

,0,53

451066611

5

21

2

1

21

21

214

≤+

≤+

−−=

xx

x

x

xx

xx

xxzP

( )

( )

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 39: Programmation linéaire en nombres entiers

• 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 40: Programmation linéaire en nombres entiers

( )

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 maissa 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 41: Programmation linéaire en nombres entiers

• 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 42: Programmation linéaire en nombres entiers

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 x

x xx 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 x

x xx 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 x

x xx 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 x

x xx xx

x x

= − −

+ ≤+ ≤

≥≥

Problèmes candidats

( )P

( )2P

( )3P( )4P

( )5P

Page 43: Programmation linéaire en nombres entiers

Approche du Branch & Bound

• Approche itérative.• À chaque itération,

- il y a une liste de problèmes candidats à être analysés. Audé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 demettre à jour la liste de problèmes candidats ou la bornesupérieure de même que la meilleure solution rencontrée

Page 44: Programmation linéaire en nombres entiers

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 45: Programmation linéaire en nombres entiers

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 ∞

i

( ) Choisir le premier problème candidat en têt

Étape

e de li t .

2

s ePC

i

( ) ( )

( )

( )

( )

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

= Φ

i

( ) ( )si , alors : ,v PC BS BS v PC< =

aller à l'étape1.

Page 46: Programmation linéaire en nombres entiers

( ) ( )

( )

( )

( )

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

= Φ

i

( ) ( )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

i

( )

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 47: Programmation linéaire en nombres entiers

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 ∞

i

( ) Choisir le premier problème candidat en têt

Étape

e de li t .

2

s ePC

i

( ) ( )

( )

( )

( )

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

= Φ

i

( ) ( )si , alors : ,v PC BS BS v PC< =

aller à l'étape1.

Page 48: Programmation linéaire en nombres entiers

Principe de fouille dans l'arbre

Page 49: Programmation linéaire en nombres entiers

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 x

x xx 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 x

x xx 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 x

x xx 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 x

x xx xx

x x

= − −

+ ≤+ ≤

≥≥

Problèmes candidats

( )P

( )2P

( )3P( )4P

( )5P

Page 50: Programmation linéaire en nombres entiers

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 51: Programmation linéaire en nombres entiers

( )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 j

x x −

c) le plus proche de 0.5j j

x x −

Page 52: Programmation linéaire en nombres entiers

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 ≥ ≤

Par exemple, si nous ajoutons la contrainte ,

alors en utilisant la variable d'écart

la contrainte devient

j j

j j

x x

x

x x x

τ

τ

+ =

Page 53: Programmation linéaire en nombres entiers

1

1

1 2

11 12 1 1 1

1 2

var. termes

base droite

0 1 0 0 0

1 0 0 0 0

mk j j j n

j j n

k i i ij in i

x x x x x x x x z

x t t t t b

x t t t t b

τ −… … … … …

… … … … …

… … … … …

1

1 2

1 2

0 0 1 0 0

0 0 0 1 0 0 0 1 0

0 0 0 0 1

mj m m mj mn m

j

j n

x t t t t b

x x

z c c c c z

τ

− −

… … … … …

… … … … …

… … … … …

Page 54: Programmation linéaire en nombres entiers

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 ≥ ≤

Par exemple, si nous ajoutons la contrainte ,

alors en utilisant la variable d'écart

la contrainte devient

ou

j j

j j j j

x x

x

x x x x x x

τ

τ τ

− = − + = −

Page 55: Programmation linéaire en nombres entiers

1

1

1 2

11 12 1 1 1

1 2

var. termes.

base droite

0 1 0 0 0

1 0 0 0

mk j j j n

j j n

k i i ij in

x x x x x x x x z

x t t t t b

x t t t t

τ −… … … … …

… … … … …

… … … … …

1

1 2

1 2

0

0 0 1 0 0

0 0 0 1 0 0 0 1 0

0 0 0 0 1

m

i

j m m mj mn m

j

j n

b

x t t t t b

x x

z c c c c z

τ − −

− −

… … … … …

… … … … …

… … … … …

Page 56: Programmation linéaire en nombres entiers

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 ≥ ≤

Mais le tableau optimal doit être sauvé dans chaque noeud fils

après avoir résolu le problème relaxé dans le noeud père

Page 57: Programmation linéaire en nombres entiers

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

( )P

( )2

Conserver tableau optimal dunoeud père

P

41 ≥x 31 ≤x

75.31 =x1 2

1 2

1 2

1 2

Min 5 s.t. 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 s.t. 11 6 66

10 453

, 0,

P z x x

x xx xx

x x

= − −

+ ≤+ ≤

≤≥

( )5 1 2

1 2

1 2

1

2

1 2

Min 5 s.t. 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 s.t. 11 6 66

10 4535

, 0,

P z x x

x xx xxx

x x

= − −

+ ≤+ ≤

≤≥

( )2 1 2

1 2

1 2

1

1 2

Min 5 s.t. 11 6 66

10 454

, 0,

P z x x

x xx xx

x x

= − −

+ ≤+ ≤

≥≥

Candidate problem

( )P

( )2P

( )3P( )4P

( )5P

( )3

Conserver tableau optimal dunoeud père

P

Page 58: Programmation linéaire en nombres entiers

Référence.

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

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