Vous êtes sur la page 1sur 61

Partie 2 :

Programmation Linaire
en Nombres Entiers

Pr. Y. BENADADA

ENSIAS - IAD

PLAN :
CHAP 1 : PROGRAMMATION EN NOMBRES ENTIERS
CHAP 2 : PROCEDURE GENERALE D'OPTIMISATION
COMBINATOIRE.
CHAP 3 : RESOLUTION DU PROBLEME (PLE) PAR LA
METHODE DU BRANCH-AND-BOUND
CHAP 4 : RESOLUTION DES PROGRAMMES
LINEAIRES BINAIRES:
CHAP 5 : CONVERGENCE DE LA METHODE DU BRANCH
AND BOUND
CHAP 6 : ADAPTATION DE LA METHODE DU B&B AU
PROBLEME D'AFFECTATION :
CHAP 7 : METHODE DE COUPES DE GOMORY:

Pr. Y. BENADADA

ENSIAS - IAD

CHAPITRE 1 :

PROGRAMMATION
EN NOMBRES ENTIERS

Pr. Y. BENADADA

ENSIAS - IAD

(PNE)

Min CT x
s. Ax = b
x0
xj entier , j=1,2,...,n
avec x=(x1, x2 ,..., xn)T

Programmation Linaire Continue : PLC


pas de contraintes dintgrit

Programmation Linaire Mixte : PLM


certaines variables peuvent ne pas tre entires

Programmation Linaire en nombres Entiers:


PLE
contraintes dintgrit

Programmation Linaire Binaire : PLB


x = 0 ou 1
Pr.j Y. BENAD
ENSIAS - IAD

A- Mthodes
Naves :

1) Mthode dArrondi :

Min z = -x1 - x2
s.
-2 x1 + 2x2 1
16 x1 -14x2 7
x1, x2 0 et entiers.

Pr. Y. BENAD

ENSIAS - IAD

~
x (7,8) avec z 15

x (7,7.5) avec z 14.5


~
x

x
x

7
6

x (7,7 ) avec z 14

5
4
X*

3
2

x * ( 3,3) S.O.

Fig. n1

Pr. Y. BENAD

ENSIAS - IAD

2) Mthode d'numration (explicite)


Considrons un problme de programmation
linaire en nombres entiers, alors on a :

Cas 1 : 10 variables {1,2,3,...,9}

910 = 34 86 784 401 > 3.109 cas,

Cas 2 : 50 variables binaires :

250 cas.

Pr. Y. BENAD

ENSIAS - IAD

Y a -t-il des mthodes efficaces?

B- Mthodes Efficaces

Mthode de Branch-and-Bound,

Mthode de coupes,

Mthode de Benders,

Mthode des groupes.

Pr. Y. BENAD

ENSIAS - IAD

CHAPITRE 2 :

PROCEDURE GENERALE
DOPTIMISATION
COMBINATOIRE

Pr. Y. BENAD

ENSIAS - IAD

Stratgie vague et globale de rsolution

Procdure Gnrale

Branch and Bound

Pr. Y. BENAD

Coupes de Gomory

ENSIAS - IAD

10

2.1 Notions de base :


- Notion de Partitionnement
- Notion de Relaxation
- Notion de Suspension de Fouille (Fathoming)
Notation :
(P) : problme d'optimisation
F(P) : domaine ralisable de (P)
V(P) : valeur optimale de (P).

Pr. Y. BENAD

ENSIAS - IAD

11

(i) PARTITIONNEMENT
Dfinition:
On dit que (P) est partitionn en sous
problmes (P1), (P2), ..., (Pq) si
F(P1), F(P2), ..., F(Pq) est une partition de
F(P). i.e. si :
1) toute solution ralisable de (P) est
ralisable pour exactement un des (Pj);
2) toute solution ralisable pour l'un des
(Pj) est ralisable pour (P).
Pr. Y. BENAD

ENSIAS - IAD

12

Exemples :
1) xj = 0 ou 1 dans (P)

xj = 0 dans (P1)
xj = 1 dans (P2)

2) 0 xj 2 dans (P)
xj entier

3) 0 xj 4 dans (P)

xj = 0 dans (P0)
xj = 1 dans (P1)
xj = 2 dans (P2)
0 xj 2 dans (P1)
3 xj 4 dans (P2)

Pr. Y. BENAD

ENSIAS - IAD

13

Stratgie Vague et Globale de Rsolution :

Essayer de solutionner (P).


Si cest sans succs, alors partitionner (P) en deux ou
plusieurs sous problmes que lon place dans une liste.
Slectionner un problme dans la liste.
C'est le Problme Candidat (PC).
Essayer de solutionner le (PC).
Si c'est avec succs, alors slectionner un autre (PC)
dans la liste.
Si c'est sans succs, alors partitionner (PC) et placer
ses descendants dans la liste.
Le processus est rpt tant que la liste est non vide.

Pr. Y. BENAD

ENSIAS - IAD

14

Remarque:
Chaque fois qu'on russit, on identifie un lment
de F(P) et on retient la meilleure solution de (P)
rencontre jusqu'ici. Cette solution est appele
point

"incombent" : cest un point candidat

tre une solution optimale du problme de


programmation en nombres entiers.

Pr. Y. BENAD

ENSIAS - IAD

15

(ii) Relaxation:
Le problme (P) est dit relax si certaines
contraintes sont relches,
on le note alors par: (PR).
D'o les proprits:
F(P) F(PR)
F(PR) =

F(P) =
V(PR) V(P)
(Min)
Si une solution optimale de (PR) est dans
F(P) alors elle est optimale de (P).
Pr. Y. BENAD

ENSIAS - IAD

16

(iii) Critre de cessation de fouille


(Striliser ou Fathoming)
Notons par zs la valeur de la fonction conomique
au point incumbent. On dira qu'un problme
candidat (PC) d'un problme d'optimisation
combinatoire est strilis si l'un des critres
suivants est satisfait:
1er critre :
F(PCR) =
2me critre : V(PCR) zs
3me critre : une solution optimale de (PCR)
est ralisable pour (PC)
(avec V(PCR) < zs )
Pr. Y. BENAD

ENSIAS - IAD

17

Remarque:
Si (PC) est strilis alors il ne sera plus pris
en considration.
Sinon, alors on peut excuter l'une des deux
actions suivantes:

engendrer des descendants du (PC)

slectionner une autre relaxation "plus


adquate" pour essayer d'appliquer les
critres de cessation de fouille.

Pr. Y. BENAD

ENSIAS - IAD

18

2.2 Procdure Gnrale


Et1: La liste des candidats contient le problme(P).
Posons Zs = +
Et2: Terminer si la liste est vide:
Si au moins une solution ralisable de (P) a
t rencontre alors ce point "incumbent" est
une solution optimale de (P).
Autrement, F(P)=.
Et3: Choisir un problme dans la liste qui devient
(PC). Eliminer (PC) de la liste.
Et4: Identifier une relaxation (PCR) de (PC).
Pr. Y. BENAD

ENSIAS - IAD

19

Procdure Gnrale (suite)


Et5: Traiter (PCR).
Et6: Si F(PCR)= , alors aller l'tape 2.
Et7: Si V(PCR) zs alors aller l'tape 2.
Et8: Si la solution optimale de (PCR) est
ralisable pour (PC), alors nous venons
d'identifier une nouvelle solution de (P).
Or, V(PC)=V(PCR)< zs alors on pose
zs=V(PC),
et cette solution est le nouveau point
"incumbent". Retourner l'tape 2.

Pr. Y. BENAD

ENSIAS - IAD

20

Procdure Gnrale (suite)


Et9: Si on dcide de poursuivre avec (PC), aller
l'tape 10.
Autrement, aller l'tape 11.
Et10: Modifier la relaxation de (PC) pour en
obtenir une nouvelle qu'on dnote (PCR).
Aller
l'tape 5.
Et11: Partitionner (PC) et placer les nouveaux
sous problmes dans la liste.
Aller l'tape3.
Pr. Y. BENAD

ENSIAS - IAD

21

CHAPITRE 3 :

RESOLUTION DU PROBLEME (PLE)


PAR LA METHODE DU

BRANCH-AND-BOUND

Pr. Y. BENAD

ENSIAS - IAD

22

3.1Exemplelllustratif:
Considronslemodlelinaireennombresentiers
suivant:

Min Z(x) = 4x1 - 6 x2


s.
(P)

-x1+ x2 1
x1 + 3 x2 9
3x1+ x2 15
x1, x2 0

x1 et x2 entiers
Pr. Y. BENAD

ENSIAS - IAD

23

MinZ(x)
(PR) s. xF

La S.O. (continue) est

x ( x 1.5, x 2.5)

Pr. Y. BENAD

ENSIAS - IAD

24

On doit sparer I'ensemble F sur l'une de ses


composantes (non entires).
On choisit de sparer sur x1.
On obtient 2 sous-ensembles:
(x F et x1 x*1 ) ou (x F et x1 x*1 +1)
c'est dire:
(x F et x1 1) ou (x F et x1 2)
Pr. Y. BENAD

ENSIAS - IAD

25

Ceci nous dfinit deux sous-programmes:


(branching ou sparation)
Min z(x)
s. x F
x1 1

Min z(x)
s. x F
x1 2

x1 =

x1 = 2

1
x2 =
x2 =
2
Pr. Y. BENADz =

7/3
z = -6
ENSIAS - IAD

26

8
7
6
5
4
3

2
1

z=- 8
x1 2

x 1 1
1

z=-6

Fig. n3 (Sparation selon x 1)

Pr. Y. BENAD

ENSIAS - IAD

27

Remarque : Au lieu de sparer sur


x1 on peut aussi sparer sur x2, on
obtient alors:

Min z(x)
s. x F
x2 2

Min z(x)
s. x F
x2

x1 = 1

x2 = 2
z=

Nonralisable

-8
Pr. Y. BENAD

ENSIAS - IAD

28

Pr. Y. BENAD

ENSIAS - IAD

29

3.2- L'Algorithme du Branch and Bound:

(PLE)

(PLC)

Pr. Y. BENAD

Min z(x)
s. x F
xj entier
Min z(x)
s. x F

ENSIAS - IAD

30

Procdure du Branch and Bound (1/4):


Initialisation:
Rsoudre (PLC).
Si cette solution est ralisable pour (PLE), Stop.
Cette solution est alors optimale pour (PLE).
Trouver une borne suprieure zs de la
fonction-objectif

Pr. Y. BENAD

ENSIAS - IAD

31

Procdure du Branch and Bound (2/4):


1.

Sparation:
Choisir l'une des composantes non-entires x j*
de la solution du sous-problme.
Partitionner le sous-problme en 2 sous-problmes
en ajoutant lune des deux contraintes :

xj xj*

ou

xj xj* +1.

2.Evaluation: Pour chaque nouveau sous-problme,


dterminer une borne infrieure z i de la fonctionobjectif.
Pr. Y. BENAD

ENSIAS - IAD

32

Procdure du Branch and Bound (3/4):


3. Strilisation:
Exclure des prochaines considrations chaque
sous-problme si:
a) le sous-problme nest pas ralisable
b) zi zs
c) zi est atteinte en un point entier (ralisable de ce
sous-problme), (et zi<zs). Cest le nouveau
point "incumbent". On pose alors zs = zi

Retourner 3 pour voir si on peut striliser d'autres


sous-ensembles.
Pr. Y. BENAD

ENSIAS - IAD

33

Procdure du Branch and Bound (4/4):


4. Test:
Si tous les sous-problmes sont striliss,
STOP.
(Le point incumbent est alors optimal pour
(PLE)).
Sinon, retourner 1.

Pr. Y. BENAD

ENSIAS - IAD

34

3.3- Exemple:
Min z(x) = 3x1-7x2 -12 x3
s.
Initialisation:

-3x1+6 x2 +8x3 12
6x1-3 x2 +7x3 8

(PLE)

-6x1+3
x2 +3x3 5
La solution optimale
du (PLC),
x1,non-ralisable
x2, x3 0
x = (0, 10/33, 14/11)T est
de (PLE).
x = 0 : solution ralisable de (PLE)
Zs = Z0 =0
x = 0 est un point incumbent.
Pr. Y. BENAD

ENSIAS - IAD

35

1.Sparation : On branche sur x2 :


Fx2 0 ou Fx2 1
2.Evaluation : Une borne infrieure du nouveau
problme est donne par :

Min z(x)
s. x F
x2 0

Min z(x)
s. x F
x2 1

x=(0,0,8/7)T
Zi = -98/7

x=(2/3,1,1)T
Zi = -17

Pr. Y. BENAD

ENSIAS - IAD

36

3.

Strilisation :
Aucun des sous-ensembles ne peut tre
strilis.

4.

Test : Retourner 1 car les 2 sous-ensembles


demeurent non striliss.

Pr. Y. BENAD

ENSIAS - IAD

37

Dbut Zs = 0
x=(0, 0.3,1.3)T
Zi = -17.4

x2 0

x2 1

x=(0, 0,,1.1)T
Zi = -13.7

x3 2

x=(0.7,1,1)T
Zi = -17

x3 1

Non-Ralisable

x=(0,0,1)T
Zi = -12

x1 1
x=(1,1.3,0.9)T
Zi = -16.8

x1 0
x=(0,1.67,0)T
Zi = -11.67

(a)

Stratgie "d'exploration en largeur d'abord"


(Breadth-First ou FIFO)

Pr. Y. BENAD

ENSIAS - IAD

38

Stratgie "d'exploration en largeur


d'abord"
Dbut
Zs = 0
(Breadth-First ou FIFO)
x=(0, 0.3,1.3)T
Zi = -17.4

x2 0

x2 1

x=(0, 0,,1.1)T
Zi = -13.7

x=(0.7,1,1)T
Zi = -17

x3 2
Non-Ralisable

(a)

x3 1

x1 1

x=(0,0,1)T
Zi = -12

x1 0

x=(1,1.3,0.9)T
Zi = -16.8

x=(0,1.67,0)T
Zi = -11.67

(c) zs=-12 x3 0

x2 3
x=(2,3,0)T
zi = -15

x=(1,1.3,0.9)T
Zi = -15.6

x3 1

(b)

Non-Ralisable

x2 4

(a)

Non-Ralisable

(a)

(c) zs=-15

Pr. Y. BENAD

ENSIAS - IAD

39

Dbut zs = 0
x=(0, 0.3,1.3)T
zi = -17.4

x2 0

x2 1

x=(0, 0,,1.1)T
zi = -13.7

(b)

x=(0.7,1,1)T
zi = -17

x1 0
x=(0,1.67,0)
zi = -11.67

Stratgie "d'exploration
en profondeur d'abord"
(Depth-First ou LIFO)

x1 1
x=(1,1.3,0.9)T
zi = -16.8

x3 0

(b)

x=(1,1.3,0.9)T
zi = -15.6

x2 3
x=(2,3,0)T
zi = -15

x3 1
Non-Ralisable

(a)
x2 4
Non-Ralisable

(a)

(c) zs=-15

Pr. Y. BENAD

ENSIAS - IAD

40

CHAPITRE 4 :

Rsolution des
Programmes
linaires
Binaires:

Pr. Y. BENADADA

ENSIAS - IAD

41

4.1 - exemple:
Min

z(x) = 2x1 + 3x2 +7 x3+7x4

s.

x1 + x2 -2x3-5x4 2

(MLB)

-x1+ 2x2+x3+4x4 -3

xi =0 ou 1, i=1,2,3,4

(MLBR) Min
s.

z(x)

xS

Pr. Y. BENAD

ENSIAS - IAD

42

z(0)=0 est une borne infrieure de la

fonction conomique de (MLB) car : c j > 0,


j=1, 2, 3, 4
Donc si x = 0 est ralisable pour (MLB) alors
c'est une solution optimale de (MLB).

Une

borne suprieure de
conomique est donne par :

la

fonction

xT = (1,1,1,1)
zs = 2 + 3 + 7 + 7 = 19.
Pr. Y. BENAD

ENSIAS - IAD

43

On partitionne S selon la composante


x1 :
Min z(x)
s. xS
x1=0
Solutions :
x=(0,0,0,0)T
zi =0
Pr. Y. BENAD

Min
s. xS

z(x)
x1=1

x=(1,0,0,0)T
zi =2
ENSIAS - IAD

44

Cessation de fouille:

Pour les 2 sous-programmes on a zi < zs donc


on ne peut pas appliquer le 2me critre.

1er critre sur le sous-programme de


gauche :
f1(x) = 0+ x2 -2x3-5x4
f2(x) = 0+ 2x2 +x3+4x4
La plus grande valeur que peut prendre f 1(x)
est
f1(0,1,0,0)T = 1 < 2.
Donc xSx1=0, f1(x)<2.
Donc le sous-programme de gauche est
strilis par le 1er critre.

Pr. Y. BENAD

ENSIAS - IAD

45

1er critre sur le sous-programme de


droite : g1(x) = 1+ x2 -2x3 - 5x4
g2(x) = 1+ 2x2 + x3+ 4x4
g1(1,1,0,0) T = 2 et g2(1,1,1,1)T = 6

Le sous-programme de droite peut tre


ralisable, donc non strilis par le 1 er
critre.

(1,0,0,0)T n'est pas ralisable pour (MLB),


donc on ne peut pas striliser le sousprogramme de droite par 3me critre.

Pr. Y. BENAD

ENSIAS - IAD

46

Dbut Zs = 19
x = (0,0,0,0) T
zi = 0
x1=0
x1=1

Non ralisable
x=(1,0,0,0)T
(a)
zi = 2
x2=0
x2 =1

Non-ralisable
(a)
zi=5
(c)
zs=5

Pr. Y. BENAD

x=(1,1,0,0)T

ENSIAS - IAD

47

4.2- Amlioration de la Borne


Infrieure:
me
2exemple:
Critre
(b): zi zs

Min z(x) = 2x1 + 3x2 +7 x3+7x4


s.
x1 + x2 -2x3+5x4 2
(MLB)
-x1+ 2x2+x3+4x4 -3

Peut-on faire mieux ?F

xi =0 ou 1, i=1,2,3, 4

Pr. Y. BENAD

ENSIAS - IAD

48

Peut-on faire mieux ?


La solution (0,0,0,0)T est non-ralisable, donc
chaque solution ralisable doit avoir
au moins l'une de ses composantes gale 1
z* Mincj : 1j4 = 2
zi = 2 et xi=(1,0,0,0)T
La solution xi est non-ralisable, donc non-optimale
Pr. Y. BENAD

ENSIAS - IAD

49

On spare sur x1 :
x1=0 et (0,0,0,0)T est non-ralisable
l'une des xj, j = 2, 3, 4 est gale 1
z* Mincj : 2j4 = 3
zi = 3
xi = (0,1,0,0) T
x1=1 et (1,0,0,0)T est non-ralisable
l'une des xj, j = 2, 3, 4 est gale 1
z* 2+Mincj : 2j4=2+3=5
zi = 5
xi = (1,1,0,0)T
Pr. Y. BENAD

ENSIAS - IAD

50

Dbut Zs = 19

x = (1,0,0,0) T
zi = 2

x1=0

x1=1

x=(0,1,0,0)T x=(1,1,0,0)T
zi= 3
z i= 5
(c) zs=5
x2=0
x2 =1
x=(0,0,1,0)T
zi=7
(b)

Pr. Y. BENAD

x=(0,1,1,0)T
zi=10
(b)

ENSIAS - IAD

51

4.3- Algorithme du Branch and Bound


pour un problme binaire:

Hypothse : 0 c1 c2... cn
Procdure:
Initialisation:
Si x=0 est ralisable STOP.
Sinon, poser
zs=cj , zi = c1 et xi=(1,0,...,0)T
Si xi est ralisable STOP.
Sinon, poser k = 1.
Pr. Y. BENAD

ENSIAS - IAD

52

1.

Sparation:
Choisir un sous-ensemble des solutions
ralisables et partitionner le en 2 sousensembles en ajoutant les contraintes :
" xk = 0 " et " xk = 1 ".

Pr. Y. BENAD

ENSIAS - IAD

53

2.

Evaluation:
Pour chaque nouveau sous-ensemble
dterminer une borne infrieure zi de la
fonction conomique en posant:
xk = (x1k,..., xkk ,1,0,...0)T
o xi = xik pour i=1,2,...,k, sont les contraintes
qui dterminent le sous-ensemble en
considration.

Pr. Y. BENAD

ENSIAS - IAD

54

3. Strilisation:
Exclure des prochaines considrations
chaque sous-ensemble si:
(a) il y a au moins une contrainte qui
n'est satisfaite par aucun point du
sousensemble.
(b) zi zs.
(c) xi est ralisable. Dans ce cas xi est le point
"incumbent". Poser zs = zi.
Retourner 3 pour voir si on peut striliser
d'autres sous-ensembles.
Pr. Y. BENAD

ENSIAS - IAD

55

4. Test darrt :
Si tous les sous-ensembles sont striliss,
STOP (le point "incumbent" est optimal).
Sinon, poser k=k+1 et retourner en 1.

Pr. Y. BENAD

ENSIAS - IAD

56

4.4 Rendre les cots relatifs


positifs et croissants
-Transformer une variable entire en variable binaire
Rgle gnrale :
Si x est entier et si 0 x k alors nous pouvons
substituer une combinaison linaire :
x = y1 + 2y2 + 22y3 + ... + 2pyp+1
de p+1 variables y1 , y2 ,..., yp+1 {0,1}.
(p est le plus petit entier tel que k 2p+1-1).
Pr. Y. BENAD

ENSIAS - IAD

57

Exemple : Transformer le problme suivant


en un problme binaire :
Min

z(x) = 3x1 - 4x2


s.

(P)

x1-2x2 12
-2 x1 4
1 x2 3
x1, x2 0, entiers

Pr. Y. BENAD

ENSIAS - IAD

58

y1, y2, y3, y4, y5 {0,1}.

Soit

Posons
x1 = -2 + y1 + 2y2 + 4y3
x2 = 1 + y4 + 2y5
D'o le problme quivalent de (P):
Min z = -10 + 3y1 + 6y2 + 12y3 -4y4 - 8y5
y1 + 2y2 + 4y3 +2y4 + 4y5 6

s.

y1 + 2y2 + 4y3
y4 + 2y5

6
2

y1, y2, y3, y4, y5 {0,1}.


Pr. Y. BENAD

ENSIAS - IAD

59

Rendre les cots relatifs positifs et ordonns :


0c1c2...cn.
Posons:

u1 = y1

u2 = 1- y4

u3 = y2

u4 =1- y5

u5 = y3

Pr. Y. BENAD

ENSIAS - IAD

60

Min z = 2 + 3u1 + 4u2 + 6u3 +8u4 +12u5


s.

u1 - 2u2 + 2u3 - 4u4 +4u5 6


u1

12u5 0

+ 2u3 +
u2

2u4

u1, u2, u3, u4, y5 {0,1}.

Pr. Y. BENAD

ENSIAS - IAD

61

Vous aimerez peut-être aussi