You are on page 1of 41

8.

Programmation linaire
en
nombres entiers
Introduction
Problme de programmation
linaire en nombres entiers
(P)
F(P) = domaine ralisable de P
Exemple
n j x
m i b x a
x c
j
i
n
j
j ij
j
n
j
j
, , 1 entier , 0
, , 1 Sujet
Min
1
1

=
= =

=
=
entier , 0 ,
2
20 10 Sujet
5 Min
2 1
1
2 1
2 1

+
=
x x
x
x x
x x z
Introduction
Problme de programmation
linaire en nombres entiers
(P)
F(P) = domaine ralisable de P
Exemple
n j x
m i b x a
x c
j
i
n
j
j ij
j
n
j
j
, , 1 entier , 0
, , 1 Sujet
Min
1
1

=
= =

=
=
entier , 0 ,
2
20 10 Sujet
5 Min
2 1
1
2 1
2 1

+
=
x x
x
x x
x x z
20 10
2 1
= + x x
2
1
= x
( ) ( ) ( ) ( ) ( ) ( ) ( ) { }
( ) 0, 0 , 1, 0 , 2, 0 , 0,1 , 1,1 , 2,1 , 0, 2 F P =
Introduction
Problme de programmation
linaire en nombres entiers
(P)
F(P) = domaine ralisable de P
dnote le problme (P) o les
contraintes dintgralit sur les
variables sont rlaxes.
Exemple
n j x
m i b x a
x c
j
i
n
j
j ij
j
n
j
j
, , 1 entier , 0
, , 1 Sujet
Min
1
1

=
= =

=
=
entier , 0 ,
2
20 10 Sujet
5 Min
2 1
1
2 1
2 1

+
=
x x
x
x x
x x z
( ) P
20 10
2 1
= + x x
2
1
= x
( ) P
Introduction
Problme de programmation
linaire en nombres entiers
F(P) = domaine ralisable de P
dnote le problme (P) o les
contraintes dintgralit sur les
variables sont rlaxes.
Exemple
n j x
m i b x a
x c
j
i
n
j
j ij
j
n
j
j
, , 1 entier , 0
, , 1 Sujet
Min
1
1

=
= =

=
=
entiers , 0 ,
2
20 10 Sujet
5 Min
2 1
1
2 1
2 1

+
=
x x
x
x x
x x z
( ) P
20 10
2 1
= + x x
2
1
= x
( ) P F
( ) P
Introduction
Problme de programmation
linaire en nombres entiers
(P)
Rsolution du problme
Pourquoi pas rsoudre le
problme relax et arrondir la
solution?
Exemple
Solution du problme relax:
(2, 9/5) et z = - 11
Solution arrondie: (2, 1) et z = - 7
n j x
m i b x a
x c
j
i
n
j
j ij
j
n
j
j
, , 1 entier , 0
, , 1 Sujet
Min
1
1

=
= =

=
=
entiers , 0 ,
2
20 10 Sujet
5 Min
2 1
1
2 1
2 1

+
=
x x
x
x x
x x z
20 10
2 1
= + x x
2
1
= x
( ) P F
Or (0, 2) est ralisable avec z = -10
Mthodes de rsolution
Principe de base
Gnrer un ensemble de contraintes
linaires que nous ajoutons (P)
Exemple
entiers , 0 ,
2
20 10 Sujet
5 Min
2 1
1
2 1
2 1

+
=
x x
x
x x
x x z
20 10
2 1
= + x x
2
1
= x
( ) P F
4 2
2 1
= + x x
Mthodes de rsolution
Principe de base
Gnrer un ensemble de contraintes
linaires que nous ajoutons (P)
pour engendrer un nouveau
problme (PR) tel que
De plus en rsolvant le problme
relax , la solution optimale
est entire et donc une solution
optimale pour (P).
Exemple
20 10
2 1
= + x x
2
1
= x
( ) P F
4 2
2 1
= + x x
entiers , 0 ,
4 2
2
20 10 Sujet
5 Min
2 1
2 1
1
2 1
2 1

+
=
x x
x x
x
x x
x x z
( )
( )
( ) ( )
F PR F P
F PR F P

=
PR
Mthode des coupes de Gomory
Principe des mthodes de coupes
Introduire de nouvelles contraintes linaires au problme pour
rduire le domaine ralisable du problme relax sans pour
autant liminer de points du domaine ralisable du problme
avec les contraintes de nombre entier sur les variables.
La procdure consiste rsoudre une suite de problmes
relaxs jusqu ce quune solution optimale en nombres entiers
soit obtenue.
Un problme de la suite est obtenu du prcdent en lui ajoutant
une contrainte linaire (coupe) supplmentaire.
n
j 1
1
Considrons le problme de programmation linaire
en nombres entiers suivant:
( ) Min
Sujet 1, ,
0, entier, j 1, ,n
j j
n
ij j i
j
j
P c x
a x b i m
x
=
=
= =
=

Voyons comment construire une coupe de Gomory.


Soit une base optimale de ( ), et la variable de base
dans la ime ligne du tableau optimal prenant une valeur
qui n'est pas entire.
k
B P x
i
n , 1, j entier, , 0
, , 1 Sujet
Min ) (
: suivant entiers nombres en
linaire ion programmat de problme le s Considron
1
n
1 j

=
= =

=
=
j
i
n
j
j ij
j j
x
m i b x a
x c P
( )
{ }
La ligne correspondante du tableau est de la forme:
1
o : est l'indice d'une variable hors base et
n'est pas entier.
i
k ij j
j J
i
x t x b
J j j
b

+ =
=

( )
{ }
La ligne correspondante du tableau est de la forme:
1
o : est l'indice d'une variable hors base et
n'est pas entier.
i
k ij j
j J
i
x t x b
J j j
b

+ =
=

Dnotons le plus grand entier (plancher) .


Puisque 0 , alors
et par consquent
. (2)
j
ij j ij j
j J j J
i
k ij j
j J
d d
x j
t x t x
x t x b

=
(


(


(
+

( )
{ }
entier. pas est n' b
et base hors variable une d' indice l' est : o
1
: forme la de est du tableau ante correspond ligne La
i
i
J j
j ij k
j j J
b x t x
=
= +


(3). satisfait ) ( de solution toute Ainsi
) 3 ( .
que (2) de dcoule il , variables des
intgralit d' contrainte la s considron nous Si
P
b x t x
x
i
j
J j
ij k
j
+




) 2 ( .
consquent par et
alors , 0 Puisque
. (plancher) entier grand plus le s Dfinisson
i
j
J j
ij k
J j
j ij j
J j
ij
j
b x t x
x t x t
j x
d d
+



( )

( ) ( )

( )

( ) 0 et 0
que Notons
4
: (1) et (3) entre diffrence le faisant
en obtenue relation la maintenant s Considron
<

i
ij ij
i
j
J j
ij ij
b b t t
b b x t t
i
i
). ( de solution aucune limine n' ) ( dans on introducti son et
(4), satisfait elle alors (3), et (1) satisfait ) ( de solution toute Puisque
P P
P

( )

( ) ( )

( )

( ) 0 et 0
que Notons
4
: (1) et (3) entre diffrence le faisant
en obtenue relation la maintenant s Considron
<

i
ij ij
i
j
J j
ij ij
b b t t
b b x t t
i
i
). ( de solution aucune limine n' ) ( dans on introducti son et
(4), satisfait elle alors (3), et (1) satisfait ) ( de solution toute Puisque
P P
P
). ( relax problme du ralisable domaine
le rduit on introducti son et (4) pas satisfait ne 0
o ) ( relax problme du actuelle solution la contre, Par
P
J j x
P
j
=
( ) ( ) ( ) ( )
Pour poursuivre la rsolution, il suffit d'introduire la contrainte
o est une variable d'cart avec cot nul, au dernier tableau du
simplex
i i
i i
ij ij j ij ij j
j J j J
t t x b b t t x x b b
x


( (
( ( + =



( )
e pour gnrer une solution de base au nouveau problme en
considrant comme la variable de base dans la nouvelle ligne du tableau.
Cette solution de base n'est pas ralisable puisque 0.
i
i
x
x b b

(
= <

Il suffit de poursuivre la rsolution 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 ralisable puisque le terme de gauche prend une
valeur entire
i
ij ij ij
i
k ij j
j J
t t t j J b
x t x b
P

( =

+ =

pour toute solution ralisable de ( ) alors que le terme de


droite n'est pas entier.
2) Une drivation similaire s'applique toutes les itrations.
P
1 2
1 2 3
1 2 3
Considrons le problme suivant
Min 21 11
Sujet 7 4 13
, , 0, entiers
x x
x x x
x x x

+ + =

1 2 3
2 3 4
Itration 1:
Solution de base optimal de ( )
4 1 13
7 7 7
valeur opt. 39
Nouvelle contrainte:
4 4 1 1 13 13
7 7 7 7 7 7
P
x x x
x x x
+ + =
=
| | | |
( ( (
+ + =
| |
( ( (

\ \
1 6 4 7 13 4
Ainsi . 4 7 13 Or
. 6 4
7
6
7
1
7
4
: e gomtriqu tion Interprta
1 2 1 2
2 1 3
3 2 3 2
+ +
=

x x x x
x x x
x x x x
( ) ( ) ( ) ( )
i i
ij 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 11
Sujet 7 4 13
, , 0, entiers
x x
x x x
x x x

+ + =

entiers , 0 , , ,
7
6
7
1
7
4
13 4 7 Sujet
11 21 Min
de relax problme le Rsoudre
: 2 Itration
4 3 2 1
4 3 2
3 2 1
2 1

= +
= + +

x x x x
x x x
x x x
x x
2
1
37 opt. valeur
2
3
4
7
4
1
1
obtenons Nous
4 3 2
4 1
=
= +
= +
x x x
x x
2 3 4
3 4 5
3 4 5
1 7 3
Nouvelle contrainte partir de la 2ime ligne :
4 4 2
1 1 7 7 3 3
4 4 4 4 2 2
1 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
Interprtation gomtrique
2
Substituons la valeur de tire de la
dernire contrainte ajoute
4 1 6
7 7 7
pour obtenir
4 1 6
2.
7 7 7
Substituons maintenant la valeur de
13 7 4
pour ob
x x
x
x x x
x x x
x
x x x

+ =
+
=
1 2 2
1 2 1 2
tenir
8 32 4 6
13 8 2
7 7 7 7
8 6
8 4 2 13 2 3
7 7
x x x
x x x x
+ + +
+ + +
( ) ( )
( ) ( )
i
ij ij j i
j J
i
ij 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 11
Sujet 7 4 13
4 1 6
7 7 7
, , , 0, entiers
x x
x x x
x x x
x x x x

+ + =
+ =

33 optimale Valeur
1 , 3 , 0
: entire optimale solution Donc
1
3 2
1
obtenons Nous
3 2 1
4 1
5 2 1
5 3 1
=
= = =
= +
= + +
= +
x x x
x x
x x x
x x x
entiers , 0 , , , ,
2
1
4
1
4
1
2
3
4
7
4
1
1 Sujet
11 21 Min
problme le Rsoudre
: 3 Itration
5 4 3 2 1
5 4 3
4 3 2
4 1
2 1

= +
= +
= +

x x x x x
x x x
x x x
x x
x x
Mthode de Branch & Bound
Dans cette mthode nous rsolvons galement une suite de
problmes relaxs.
Nous rsolvons dabord . Si la solution optimale est
entire, alors cette solution est optimale pour le problme
original (P).
Sinon, nous utilisons une variable nest pas
entire.
Nous considrons deux nouvelles contraintes
( )
P x
i
i
x x valeur la dont

(
) de (plafond
) de (plancher
i
i
i
i
i
i
x x x
x x x

66 6 11
2 1
= + x x
45 10
2 1
= + x x
entiers , 0 ,
45 10
66 6 11 Sujet
5 Min
2 1
2 1
2 1
2 1

+
+
=
x x
x x
x x
x x z
375 . 24
125 . 4 , 75 . 3
: relax prob. opt. Sol.
2 1
=
= =
z
x x

(
4 75 . 3
3 75 . 3
: s considre s contrainte Nouvelles
1
1
=
=
x
x
( )
Avec ces deux nouvelles contraintes
- points ralisables de sont conservs
- une tranche du domaine ralisable du
problme relax est limine
P
66 6 11
2 1
= + x x
45 10
2 1
= + x x
entiers , 0 ,
45 10
66 6 11 Sujet
5 Min
2 1
2 1
2 1
2 1

+
+
=
x x
x x
x x
x x z
375 . 24
125 . 4 , 75 . 3
: relax prob. opt. Sol.
2 1
=
= =
z
x x

(
4 75 . 3
3 75 . 3
: s considre s contrainte Nouvelles
1
1
=
=
x
x
( )
Tranche de
limine
F P
66 6 11
2 1
= + x x
45 10
2 1
= + x x
entiers , 0 ,
45 10
66 6 11 Sujet
5 Min
2 1
2 1
2 1
2 1

+
+
=
x x
x x
x x
x x z
375 . 24
125 . 4 , 75 . 3
: relax prob. opt. Sol.
2 1
=
= =
z
x x
1
1
Nouvelles contraintes :
3.75 3
3.75 4
x
x
=
(

=
(
(
( )
Tranche de
limine
F P
( ) 2 P F
( ) 3 P F
( )
( ) ( )
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
66 6 11
2 1
= + x x
45 10
2 1
= + x x
entiers , 0 ,
45 10
66 6 11 Sujet
5 Min
2 1
2 1
2 1
2 1

+
+
=
x x
x x
x x
x x z

(
4 75 . 3
3 75 . 3
: s considre s contrainte Nouvelles
1
1
=
=
x
x
( ) 2 P F
( ) 3 P F
( )
entiers , 0 ,
4
45 10
66 6 11 Sujet
5 Min
2 1
1
2 1
2 1
2 1 2

+
+
=
x x
x
x x
x x
x x z P
( )
entiers , 0 ,
3
45 10
66 6 11 Sujet
5 Min
2 1
1
2 1
2 1
2 1 3

+
+
=
x x
x
x x
x x
x x z P
( )
( )
( )
( )
2
2
3
3
Poursuivre la rsolution en associant des problmes
et .
P F P
P F P
( ) ( )
( )
2 3
La meilleure des deux solutions optimales de et
est la solution optimale de .
P P
P
Prochaine itration
Choisir un des deux problmes (P
2
)ou (P
3
)
Le traiter comme nous avons fait pour P.
Dans notre exemple, nous choisissons le problme (P
3
)
2
2
Nouvelles contraintes considres:
4.2 4
4.2 5
x
x
=
(

=
(
(
66 6 11
2 1
= + x x
45 10
2 1
= + x x
( ) 2 P F
( ) 3 P F
( )
entiers , 0 ,
3
45 10
66 6 11 Sujet
5 Min
2 1
1
2 1
2 1
2 1 3

+
+
=
x x
x
x x
x x
x x z P
( )
3
1 2
Sol. opt. prob. relax :
3, 4.2
24
P
x x
z
= =
=
( )
Tranche de
limine
F P
2
2
Nouvelles contraintes considres:
4.2 4
4.2 5
x
x
=
(

=
(
(
66 6 11
2 1
= + x x
45 10
2 1
= + x x
( ) 2 P F
( )
5
F P
( )
entiers , 0 ,
3
45 10
66 6 11 Sujet
5 Min
2 1
1
2 1
2 1
2 1 3

+
+
=
x x
x
x x
x x
x x z P
( )
entiers
Sujet
Min
, 0 ,
4
3
45 10
66 6 11
5
2 1
2
1
2 1
2 1
2 1 5

+
+
=
x x
x
x
x x
x x
x x z P
( )
4 1 2
1 2
1 2
1
2
1 2
Min 5
Sujet 11 6 66
10 45
3
5
, 0, entiers
P z x x
x x
x x
x
x
x x
=
+
+

Prochaine itration
Choisir un des problmes qui na pas encore t trait.
Le traiter comme nous avons fait pour P.
Dans notre exemple, nous choisissons le problme (P
5
)
66 6 11
2 1
= + x x
45 10
2 1
= + x x
( ) 2 P F
( ) 5 P F
( )
entiers
Sujet
Min
, 0 ,
4
3
45 10
66 6 11
5
2 1
2
1
2 1
2 1
2 1 5

+
+
=
x x
x
x
x x
x x
x x z P
( )
5
1 2
Sol. opt. prob. relax :
3, 4
23
P
x x
z
= =
=
Puisque la solution du sous-problme relax est entire, elle est une solution
ralisable de (P).
Nous ne gnrons pas de nouveau sous-problme puisque nous avons identifi la
meilleure solution de cette rgion du domaine ralisable de (P).
Au cours du processus, nous conservons la meilleure solution entire rencontre dont
la valeur constitue une borne suprieure BS sur la valeur optimale de (P).
Prochaine itration
Choisir un des problmes qui na pas encore t trait.
Le traiter comme nous avons fait pour (P).
Dans notre exemple, nous choisissons le problme (P
4
)
66 6 11
2 1
= + x x
45 10
2 1
= + x x
( ) 2 P F
( )
entiers
Sujet
Min
, 0 ,
5
3
45 10
66 6 11
5
2 1
2
1
2 1
2 1
2 1 4

+
+
=
x x
x
x
x x
x x
x x z P
( )
( )
4
4
Problme non ralisable

P
F P =
Il ny a donc pas lieu de poursuivre la fouille dans cette partie du
domaine ralisable de (P)qui est vide.
Prochaine itration
Choisir un des problmes qui na pas encore t trait.
Le traiter comme nous avons fait pour (P).
Dans notre exemple, il ne reste que le problme (P
2
)
( )
entiers , 0 ,
4
45 10
66 6 11 Sujet
5 Min
2 1
1
2 1
2 1
2 1 2

+
+
=
x x
x
x x
x x
x x z P
66 6 11
2 1
= + x x
45 10
2 1
= + x x
( ) 2 P F
( )
2
1 2
Sol. opt. prob. relax :
4, 3.667
22.333
P
x x
z
= =
=
La solution optimale du problme relax nest pas entire mais
sa valeur z = 22.333 > BS = 23
Il ny a donc pas lieu de poursuivre la fouille dans cette partie du
domaine ralisable de (P) car il est impossible dy trouver une solution
entire de valeur infrieure 23.
La procdure sarrte quand tous les problmes relaxs
gnrs ont t rsolus
La solution entire dont la valeur est gale BS est une
solution optimale de (P).
Approche du Branch & Bound
Approche itrative.
chaque itration,
- il y a une liste de problmes candidats tre analyss. Au
dpart, la liste contient uniquement le problme original (P).
- nous choisissons un problme candidat et nous rsolvons le
problme relax correspondant
- la solution optimale du problme relax nous permet de
mettre jour la liste de problmes candidats ou la borne
suprieure de mme que la meilleure solution rencontre
Procdure du Branch & Bound
Initialisation
Liste de problme candidat contient uniquement (P)
BS =
Aller ltape 2.
tape 1
Si la liste est vide, terminer. La solution optimale est celle
associe BS, a moins que BS = dans lequel cas le problme
P nas pas de solution.
tape 2
Choisir le premier problme candidat (PC) en tte de liste.
Si la liste est vide, terminer. La solution optimale est celle
associe , a moins que = dans lequel cas le problme
n'as pas de solutio
tape
n
1
.
BS BS
i
( )
Choisir le premier problme candidat en tt
tape
e de li t .
2
s e PC
i
( )
( )
( )
( )
( )

Analyser en solutionnant .
Si , aller l ' tape 1.
Si , aller l ' tape 1.
Si la solution optimale d
tap
e est entire, alo
e
rs
3
PC PC
F PC
v PC BS
PC
=

i
( ) ( )
si , alors : , v PC BS BS v PC < =
aller l'tape1.
( )
( )
( )
( )
( )

Analyser en solutionnant .
Si , aller l ' tape 1.
Si , aller l ' tape 1.
Si la solution optimale d
tap
e est entire, 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 entire
ap
.
t e 4
j
x
i
( )
Gnrer un premier nouveau problme en ajoutant la contrainte
au problme et le placer en tte de la liste
j j
x x PC (
(
( )
Gnrer un deuxime nouveau problme en ajoutant la contrainte
au problme et le placer en tte de la liste
j j
x x PC (

Aller l'tape1.
Rfrence.
A. Atamturk, M.W.P. Savelsbergh, "Integer-Programming Software
Systems", Annals of Operations Research 140, 67-124, 2005.

You might also like