![Page 1: Programmation linéaire en nombres entiers - Recherche : …ferland/ift3515/contenu_cou… · · 2012-11-20• Résolution du problème Pourquoi pas résoudre le problème relaxé](https://reader033.vdocuments.net/reader033/viewer/2022052711/5acbb7e27f8b9ad13e8bf077/html5/thumbnails/1.jpg)
Programmation linéaire
en
nombres entiers
![Page 2: Programmation linéaire en nombres entiers - Recherche : …ferland/ift3515/contenu_cou… · · 2012-11-20• Résolution du problème Pourquoi pas résoudre le problème relaxé](https://reader033.vdocuments.net/reader033/viewer/2022052711/5acbb7e27f8b9ad13e8bf077/html5/thumbnails/2.jpg)
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 - Recherche : …ferland/ift3515/contenu_cou… · · 2012-11-20• Résolution du problème Pourquoi pas résoudre le problème relaxé](https://reader033.vdocuments.net/reader033/viewer/2022052711/5acbb7e27f8b9ad13e8bf077/html5/thumbnails/3.jpg)
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 - Recherche : …ferland/ift3515/contenu_cou… · · 2012-11-20• Résolution du problème Pourquoi pas résoudre le problème relaxé](https://reader033.vdocuments.net/reader033/viewer/2022052711/5acbb7e27f8b9ad13e8bf077/html5/thumbnails/4.jpg)
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 - Recherche : …ferland/ift3515/contenu_cou… · · 2012-11-20• Résolution du problème Pourquoi pas résoudre le problème relaxé](https://reader033.vdocuments.net/reader033/viewer/2022052711/5acbb7e27f8b9ad13e8bf077/html5/thumbnails/5.jpg)
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 - Recherche : …ferland/ift3515/contenu_cou… · · 2012-11-20• Résolution du problème Pourquoi pas résoudre le problème relaxé](https://reader033.vdocuments.net/reader033/viewer/2022052711/5acbb7e27f8b9ad13e8bf077/html5/thumbnails/6.jpg)
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 - Recherche : …ferland/ift3515/contenu_cou… · · 2012-11-20• Résolution du problème Pourquoi pas résoudre le problème relaxé](https://reader033.vdocuments.net/reader033/viewer/2022052711/5acbb7e27f8b9ad13e8bf077/html5/thumbnails/7.jpg)
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 - Recherche : …ferland/ift3515/contenu_cou… · · 2012-11-20• Résolution du problème Pourquoi pas résoudre le problème relaxé](https://reader033.vdocuments.net/reader033/viewer/2022052711/5acbb7e27f8b9ad13e8bf077/html5/thumbnails/8.jpg)
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 - Recherche : …ferland/ift3515/contenu_cou… · · 2012-11-20• Résolution du problème Pourquoi pas résoudre le problème relaxé](https://reader033.vdocuments.net/reader033/viewer/2022052711/5acbb7e27f8b9ad13e8bf077/html5/thumbnails/9.jpg)
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 - Recherche : …ferland/ift3515/contenu_cou… · · 2012-11-20• Résolution du problème Pourquoi pas résoudre le problème relaxé](https://reader033.vdocuments.net/reader033/viewer/2022052711/5acbb7e27f8b9ad13e8bf077/html5/thumbnails/10.jpg)
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 - Recherche : …ferland/ift3515/contenu_cou… · · 2012-11-20• Résolution du problème Pourquoi pas résoudre le problème relaxé](https://reader033.vdocuments.net/reader033/viewer/2022052711/5acbb7e27f8b9ad13e8bf077/html5/thumbnails/11.jpg)
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 - Recherche : …ferland/ift3515/contenu_cou… · · 2012-11-20• Résolution du problème Pourquoi pas résoudre le problème relaxé](https://reader033.vdocuments.net/reader033/viewer/2022052711/5acbb7e27f8b9ad13e8bf077/html5/thumbnails/12.jpg)
( )
{ }
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) .Puisque 0 , alors
et par conséquent. (2)
j
ij j ij j
j J j J
ik ij j k ij j
j J j J
d d
x j
t x t x
x t x x t x b
∈ ∈
∈ ∈
= ≤ ≥ ∀
≤
+ ≤ + =
∑ ∑
∑ ∑
![Page 13: Programmation linéaire en nombres entiers - Recherche : …ferland/ift3515/contenu_cou… · · 2012-11-20• Résolution du problème Pourquoi pas résoudre le problème relaxé](https://reader033.vdocuments.net/reader033/viewer/2022052711/5acbb7e27f8b9ad13e8bf077/html5/thumbnails/13.jpg)
( )
{ }
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
≤+
≤
∀≥
≤=
∑
∑∑
∈
∈∈
( ) ( ) ( )
( ) ( ) 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
![Page 14: Programmation linéaire en nombres entiers - Recherche : …ferland/ift3515/contenu_cou… · · 2012-11-20• Résolution du problème Pourquoi pas résoudre le problème relaxé](https://reader033.vdocuments.net/reader033/viewer/2022052711/5acbb7e27f8b9ad13e8bf077/html5/thumbnails/14.jpg)
( ) ( ) ( )
( ) ( ) 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 ∈∀=
![Page 15: Programmation linéaire en nombres entiers - Recherche : …ferland/ift3515/contenu_cou… · · 2012-11-20• Résolution du problème Pourquoi pas résoudre le problème relaxé](https://reader033.vdocuments.net/reader033/viewer/2022052711/5acbb7e27f8b9ad13e8bf077/html5/thumbnails/15.jpg)
( ) ( ) ( ) ( )
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 j
j 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 - Recherche : …ferland/ift3515/contenu_cou… · · 2012-11-20• Résolution du problème Pourquoi pas résoudre le problème relaxé](https://reader033.vdocuments.net/reader033/viewer/2022052711/5acbb7e27f8b9ad13e8bf077/html5/thumbnails/16.jpg)
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 - Recherche : …ferland/ift3515/contenu_cou… · · 2012-11-20• Résolution du problème Pourquoi pas résoudre le problème relaxé](https://reader033.vdocuments.net/reader033/viewer/2022052711/5acbb7e27f8b9ad13e8bf077/html5/thumbnails/17.jpg)
( ) ( ) ( ) ( )
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 j
j 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 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 18: Programmation linéaire en nombres entiers - Recherche : …ferland/ift3515/contenu_cou… · · 2012-11-20• Résolution du problème Pourquoi pas résoudre le problème relaxé](https://reader033.vdocuments.net/reader033/viewer/2022052711/5acbb7e27f8b9ad13e8bf077/html5/thumbnails/18.jpg)
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 - Recherche : …ferland/ift3515/contenu_cou… · · 2012-11-20• Résolution du problème Pourquoi pas résoudre le problème relaxé](https://reader033.vdocuments.net/reader033/viewer/2022052711/5acbb7e27f8b9ad13e8bf077/html5/thumbnails/19.jpg)
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 20: Programmation linéaire en nombres entiers - Recherche : …ferland/ift3515/contenu_cou… · · 2012-11-20• Résolution du problème Pourquoi pas résoudre le problème relaxé](https://reader033.vdocuments.net/reader033/viewer/2022052711/5acbb7e27f8b9ad13e8bf077/html5/thumbnails/20.jpg)
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 - Recherche : …ferland/ift3515/contenu_cou… · · 2012-11-20• Résolution du problème Pourquoi pas résoudre le problème relaxé](https://reader033.vdocuments.net/reader033/viewer/2022052711/5acbb7e27f8b9ad13e8bf077/html5/thumbnails/21.jpg)
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 22: Programmation linéaire en nombres entiers - Recherche : …ferland/ift3515/contenu_cou… · · 2012-11-20• Résolution du problème Pourquoi pas résoudre le problème relaxé](https://reader033.vdocuments.net/reader033/viewer/2022052711/5acbb7e27f8b9ad13e8bf077/html5/thumbnails/22.jpg)
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 - Recherche : …ferland/ift3515/contenu_cou… · · 2012-11-20• Résolution du problème Pourquoi pas résoudre le problème relaxé](https://reader033.vdocuments.net/reader033/viewer/2022052711/5acbb7e27f8b9ad13e8bf077/html5/thumbnails/23.jpg)
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 - Recherche : …ferland/ift3515/contenu_cou… · · 2012-11-20• Résolution du problème Pourquoi pas résoudre le problème relaxé](https://reader033.vdocuments.net/reader033/viewer/2022052711/5acbb7e27f8b9ad13e8bf077/html5/thumbnails/24.jpg)
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 25: Programmation linéaire en nombres entiers - Recherche : …ferland/ift3515/contenu_cou… · · 2012-11-20• Résolution du problème Pourquoi pas résoudre le problème relaxé](https://reader033.vdocuments.net/reader033/viewer/2022052711/5acbb7e27f8b9ad13e8bf077/html5/thumbnails/25.jpg)
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 - Recherche : …ferland/ift3515/contenu_cou… · · 2012-11-20• Résolution du problème Pourquoi pas résoudre le problème relaxé](https://reader033.vdocuments.net/reader033/viewer/2022052711/5acbb7e27f8b9ad13e8bf077/html5/thumbnails/26.jpg)
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 - Recherche : …ferland/ift3515/contenu_cou… · · 2012-11-20• Résolution du problème Pourquoi pas résoudre le problème relaxé](https://reader033.vdocuments.net/reader033/viewer/2022052711/5acbb7e27f8b9ad13e8bf077/html5/thumbnails/27.jpg)
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 - Recherche : …ferland/ift3515/contenu_cou… · · 2012-11-20• Résolution du problème Pourquoi pas résoudre le problème relaxé](https://reader033.vdocuments.net/reader033/viewer/2022052711/5acbb7e27f8b9ad13e8bf077/html5/thumbnails/28.jpg)
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 29: Programmation linéaire en nombres entiers - Recherche : …ferland/ift3515/contenu_cou… · · 2012-11-20• Résolution du problème Pourquoi pas résoudre le problème relaxé](https://reader033.vdocuments.net/reader033/viewer/2022052711/5acbb7e27f8b9ad13e8bf077/html5/thumbnails/29.jpg)
• 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 - Recherche : …ferland/ift3515/contenu_cou… · · 2012-11-20• Résolution du problème Pourquoi pas résoudre le problème relaxé](https://reader033.vdocuments.net/reader033/viewer/2022052711/5acbb7e27f8b9ad13e8bf077/html5/thumbnails/30.jpg)
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 - Recherche : …ferland/ift3515/contenu_cou… · · 2012-11-20• Résolution du problème Pourquoi pas résoudre le problème relaxé](https://reader033.vdocuments.net/reader033/viewer/2022052711/5acbb7e27f8b9ad13e8bf077/html5/thumbnails/31.jpg)
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 32: Programmation linéaire en nombres entiers - Recherche : …ferland/ift3515/contenu_cou… · · 2012-11-20• Résolution du problème Pourquoi pas résoudre le problème relaxé](https://reader033.vdocuments.net/reader033/viewer/2022052711/5acbb7e27f8b9ad13e8bf077/html5/thumbnails/32.jpg)
• 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 - Recherche : …ferland/ift3515/contenu_cou… · · 2012-11-20• Résolution du problème Pourquoi pas résoudre le problème relaxé](https://reader033.vdocuments.net/reader033/viewer/2022052711/5acbb7e27f8b9ad13e8bf077/html5/thumbnails/33.jpg)
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 dontla valeur constitue une borne supérieure BS sur la valeur optimale de (P).
![Page 34: Programmation linéaire en nombres entiers - Recherche : …ferland/ift3515/contenu_cou… · · 2012-11-20• Résolution du problème Pourquoi pas résoudre le problème relaxé](https://reader033.vdocuments.net/reader033/viewer/2022052711/5acbb7e27f8b9ad13e8bf077/html5/thumbnails/34.jpg)
• 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 - Recherche : …ferland/ift3515/contenu_cou… · · 2012-11-20• Résolution du problème Pourquoi pas résoudre le problème relaxé](https://reader033.vdocuments.net/reader033/viewer/2022052711/5acbb7e27f8b9ad13e8bf077/html5/thumbnails/35.jpg)
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 36: Programmation linéaire en nombres entiers - Recherche : …ferland/ift3515/contenu_cou… · · 2012-11-20• Résolution du problème Pourquoi pas résoudre le problème relaxé](https://reader033.vdocuments.net/reader033/viewer/2022052711/5acbb7e27f8b9ad13e8bf077/html5/thumbnails/36.jpg)
• 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 - Recherche : …ferland/ift3515/contenu_cou… · · 2012-11-20• Résolution du problème Pourquoi pas résoudre le problème relaxé](https://reader033.vdocuments.net/reader033/viewer/2022052711/5acbb7e27f8b9ad13e8bf077/html5/thumbnails/37.jpg)
( )
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 38: Programmation linéaire en nombres entiers - Recherche : …ferland/ift3515/contenu_cou… · · 2012-11-20• Résolution du problème Pourquoi pas résoudre le problème relaxé](https://reader033.vdocuments.net/reader033/viewer/2022052711/5acbb7e27f8b9ad13e8bf077/html5/thumbnails/38.jpg)
• 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 - Recherche : …ferland/ift3515/contenu_cou… · · 2012-11-20• Résolution du problème Pourquoi pas résoudre le problème relaxé](https://reader033.vdocuments.net/reader033/viewer/2022052711/5acbb7e27f8b9ad13e8bf077/html5/thumbnails/39.jpg)
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 40: Programmation linéaire en nombres entiers - Recherche : …ferland/ift3515/contenu_cou… · · 2012-11-20• Résolution du problème Pourquoi pas résoudre le problème relaxé](https://reader033.vdocuments.net/reader033/viewer/2022052711/5acbb7e27f8b9ad13e8bf077/html5/thumbnails/40.jpg)
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 41: Programmation linéaire en nombres entiers - Recherche : …ferland/ift3515/contenu_cou… · · 2012-11-20• Résolution du problème Pourquoi pas résoudre le problème relaxé](https://reader033.vdocuments.net/reader033/viewer/2022052711/5acbb7e27f8b9ad13e8bf077/html5/thumbnails/41.jpg)
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 - Recherche : …ferland/ift3515/contenu_cou… · · 2012-11-20• Résolution du problème Pourquoi pas résoudre le problème relaxé](https://reader033.vdocuments.net/reader033/viewer/2022052711/5acbb7e27f8b9ad13e8bf077/html5/thumbnails/42.jpg)
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 43: Programmation linéaire en nombres entiers - Recherche : …ferland/ift3515/contenu_cou… · · 2012-11-20• Résolution du problème Pourquoi pas résoudre le problème relaxé](https://reader033.vdocuments.net/reader033/viewer/2022052711/5acbb7e27f8b9ad13e8bf077/html5/thumbnails/43.jpg)
( ) ( )
( )
( )
( )
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 44: Programmation linéaire en nombres entiers - Recherche : …ferland/ift3515/contenu_cou… · · 2012-11-20• Résolution du problème Pourquoi pas résoudre le problème relaxé](https://reader033.vdocuments.net/reader033/viewer/2022052711/5acbb7e27f8b9ad13e8bf077/html5/thumbnails/44.jpg)
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 45: Programmation linéaire en nombres entiers - Recherche : …ferland/ift3515/contenu_cou… · · 2012-11-20• Résolution du problème Pourquoi pas résoudre le problème relaxé](https://reader033.vdocuments.net/reader033/viewer/2022052711/5acbb7e27f8b9ad13e8bf077/html5/thumbnails/45.jpg)
Principe de fouille dans l'arbre
![Page 46: Programmation linéaire en nombres entiers - Recherche : …ferland/ift3515/contenu_cou… · · 2012-11-20• Résolution du problème Pourquoi pas résoudre le problème relaxé](https://reader033.vdocuments.net/reader033/viewer/2022052711/5acbb7e27f8b9ad13e8bf077/html5/thumbnails/46.jpg)
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 47: Programmation linéaire en nombres entiers - Recherche : …ferland/ift3515/contenu_cou… · · 2012-11-20• Résolution du problème Pourquoi pas résoudre le problème relaxé](https://reader033.vdocuments.net/reader033/viewer/2022052711/5acbb7e27f8b9ad13e8bf077/html5/thumbnails/47.jpg)
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 - Recherche : …ferland/ift3515/contenu_cou… · · 2012-11-20• Résolution du problème Pourquoi pas résoudre le problème relaxé](https://reader033.vdocuments.net/reader033/viewer/2022052711/5acbb7e27f8b9ad13e8bf077/html5/thumbnails/48.jpg)
( )Choix de la variable de séparation ,j j j j j
x 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 49: Programmation linéaire en nombres entiers - Recherche : …ferland/ift3515/contenu_cou… · · 2012-11-20• Résolution du problème Pourquoi pas résoudre le problème relaxé](https://reader033.vdocuments.net/reader033/viewer/2022052711/5acbb7e27f8b9ad13e8bf077/html5/thumbnails/49.jpg)
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 - Recherche : …ferland/ift3515/contenu_cou… · · 2012-11-20• Résolution du problème Pourquoi pas résoudre le problème relaxé](https://reader033.vdocuments.net/reader033/viewer/2022052711/5acbb7e27f8b9ad13e8bf077/html5/thumbnails/50.jpg)
Référence.
A. Atamturk, M.W.P. Savelsbergh, "Integer-Programming Software
Systems", Annals of Operations Research 140, 67-124, 2005.