Académique Documents
Professionnel Documents
Culture Documents
!
"
#
$
%
&
' %
(
)*$
%
#
#*)+,-$
.$
//
%
0/
. 1,)2 "
#
$
%
&
' % (
WƌŽŐƌĂŵŵĂƚŝŽŶůŝŶĠĂŝƌĞĞŶŶŽŵďƌĞĞŶƚŝĞƌƐ͗ƵŶĞ
ĂƉƉƌŽĐŚĞƉƌĂƚŝƋƵĞ
ǣ
TABLE DES MATIÈRES
1 Introduction 2
5 Conclusions 70
1
Chapitre 1
Introduction
2
Chapitre 2
3
Programmation en nombres entiers
1. Formuler le problème de taille des lots sans capacité comme un problème de localisa-
tion d’entrepôts sans capacité.
2. Considérons le problème de déterminer l’horaire de tournage des scènes d’un film dans
un même lieu. Soit S l’ensemble des scènes à tourner, A l’ensemble des acteurs, As le
sous-ensemble des acteurs requis pour la scène s ∈ S et J l’ensemble des jours dispo-
nibles pour tourner ces scènes. Au plus U scènes peuvent être tournées le même jour.
Les acteurs sont payés pour chaque jour dont leur présence est requise, indépendam-
ment du nombre de scènes à tourner dans une journée. Le cachet de l’acteur a ∈ A
pour un jour de tournage est ca dollars. L’objectif du problème consiste à minimiser
la somme des cachets versés aux acteurs.
(a) Formuler ce problème comme un programme linéaire en nombres entiers qui fait
appel à des variables binaires d’affectation scène/jour de tournage.
(b) Formuler ce problème comme un programme linéaire en nombres entiers qui est
basé sur l’énumération des groupes de scènes pouvant être tournées le même jour.
(c) Modifier chacune de ces formulations pour tenir compte des contraintes suivantes.
i. Les scènes s1 et s2 doivent être tournées la même journée.
ii. Les scènes s3 et s4 ne doivent pas être tournées la même journée.
iii. L’acteur a1 ne peut tourner plus de u1 scènes par jour (u1 < U ).
iv. L’acteur a2 ne peut tourner plus de u2 scènes par jour (u2 < U ) à moins qu’il
reçoive un supplément de cachet de δ dollars par scène supplémentaire.
4
3. Considérons un problème de planification d’une production juste-à-temps de différents
produits sur un horizon de temps fini. Soit T l’ensemble des périodes de l’horizon et P
l’ensemble des produits. À chaque période t ∈ T , on cherche à satisfaire une demande
de dpt unités du produit p ∈ P (dpt ∈ N). Pour ce faire, les unités d’un même produit
p ∈ P sont fabriquées par lot de taille p . Toutefois, dans un contexte juste-à-temps,
l’accumulation d’inventaire est proscrit autant que possible et entraı̂ne une pénalité de
qp+ dollars par unité du produit p en stock à la fin de chaque période. En contrepartie,
toute demande peut être satisfaite en retard moyennant une pénalité de qp− dollars par
unité du produit p en manque à la fin de chaque période. La production d’un lot du
produit p ∈ P requiert wp unités de temps et un total de W unités de temps est dispo-
nible par période de temps, liant ainsi la production des différents produits à chaque
période. Formuler comme un programme linéaire en nombres entiers le problème de
déterminer les lots à fabriquer à chaque période de façon à minimiser la somme des
pénalités. Supposer que l’inventaire est nul en début d’horizon.
(P N E) min c x
x
sujet à : Ax ≤ b
x≤u
x ∈ Nn .
5
Exercice 1
Formuler le problème de taille des lots sans capacité comme un problème de localisation
d’entrepôts sans capacité.
Solution
On peut considérer un lieu potentiel comme une période et considérer la variable unissant
les lieux et les clients comme une variable unissant deux périodes une à une. De cette façon,
on obtient les variables suivantes :
n
n
n
minimiser fj yj + cij xij (2.1)
xij :i,j∈N i≤j,
j=1 i=1 j=1
yj :j∈N i≤j
s. a.
j
xij = dj ∀j∈N (2.2)
i=1
xij ≤ dj yi ∀ i, j ∈ N : i ≤ j (2.3)
xij ≥ 0 ∀ i, j ∈ N : i ≤ j (2.4)
yj ∈ {0, 1} ∀j∈N (2.5)
La fonction objectif minimise les coûts définis ci-dessus. La contrainte 4.2 dit que la
demande doit être satisfaite pour chaque période. La contrainte 4.3 fait l’activation de la
production pour chaque période. Les autres contraintes sont pour le domaine des variables.
Pour tester cela, nous avons utilisé la langage Mosel avec le solveur Xpress. Nous avons
utilisés deux instances dont les données suivent :
Instance 1 :
ht : [7, 3, 4, 2, 20, 3, 5, 2, 8, 2]
6
pt : [6, 15, 17, 28, 11, 22, 16, 18, 9, 12]
dt : [101, 102, 103, 104, 105, 106, 107, 108, 109, 110]
Instance 2 :
pt : [6, 15, 17, 28, 11, 22, 16, 18, 9, 12, 5, 8, 17, 12, 19, 22, 4, 12, 24, 28, 6, 6, 8, 10, 9]
ft : [10, 1, 4, 21, 14, 5, 3, 0, 19, 2, 2, 40, 10, 3, 3, 20, 12, 2, 30, 1, 2, 4, 2, 1, 20]
Nous montrons les fichiers. mosc i-dessousd ontl ar ésolution,d ansl es ensd’optimisa-
tion, ont donné les mêmes résultats pour chaque instance, et pour chaque formulation par
rapportàlavaleuroptimale.Lesvaleursobtenuespourlesvariablesoptimalessontpratiques.
Lesfichierssontaussidisponiblesauhttp://www.4shared.com/rar/4N4A9MQvce/Question_
1.html.
7
Exercice 2
Considérerons le problème de déterminer l’horaire de tournage des scènes d’un film dans
un même lieu. Soit S l’ensemble des scènes à tourner, A l’ensemble des acteurs, As le sous-
ensemble des acteurs requis pour la scène s ∈ S et J l’ensemble des jours disponibles pour
tourner ces scènes. Au plus U scènes peuvent être tournées le même jour. Les acteurs sont
payés pour chaque jour dont leur présence est requise, indépendamment du nombre de scènes
à tourner dans une journée. Le cachet de l’acteur a ∈ A pour un jour de tournage est ca
dollars. L’objectif du problème consiste à minimiser la somme des cachets versés aux acteurs.
a) Formuler ce problème comme un programme linéaire en nombres entiers qui fait appel à
des variables binaires d’affectation scène/jour de tournage.
b) Formuler ce problème comme un programme linéaire en nombres entiers qui est basée sur
l’énumération des groupes de scènes pouvant être tournées le même jour.
c) Modifier chacune de ces formulations pour tenir compte des contraintes suivantes.
Solution
Lettre a
minimiser ca yaj (2.6)
y, z j∈J a∈A
s. a.
zsj ≤ U ∀j∈J (2.7)
s∈S
zsj = 1 ∀s∈S (2.8)
j∈J
zsj ≤ yaj ∀ s ∈ S, j ∈ J, a ∈ As (2.9)
zsj ∈ {0, 1} ∀ s ∈ S, j ∈ J (2.10)
yaj ∈ {0, 1} ∀ a ∈ A, j ∈ J (2.11)
La fonction objective minimise la somme des coûts de cachet versés aux acteurs. La
contrainte 3.15 dit que au plus U scènes peuvent être tournées le même jour. La contrainte
10
3.16 fait que tous les scènes doivent être tournées. La contrainte 2.9 fait l’activation de la
variable yaj de façon que les acteurs requis pour la scène s ∈ S travaillent le jour j durant
lequel cette scène aura lieu. Les autres contraintes sont pour le domaine des variables.
Lettre b
Soit R des ensembles de groupes réalisables de scènes, pouvant être tournées le même
jour. On définit les groupes potentiels comme toutes les combinaisons des scènes possibles.
Ainsi, pour chaque ensemble r ∈ R, nous avons un ensemble de scènes Sr ⊆ S. On peut
définir donc une matrice de paramètres ksr telle que :
⎧
⎨1 si le scène s ∈ Sr
ksr =
⎩0 sinon
On peut aussi créer le paramètre xas tel que :
⎧
⎨1 si l’acteur a est requis pour le scène s
xas =
⎩0 sinon
De⎧cette façon, on obtient un modèle ayant comme variables :
⎨1 si l’ensemble r des scènes est choisi pour avoir lieu le jour j
zrj =
⎩0 sinon
⎧
⎨1
si l’acteur a travail le jour j
yaj = ⎩
0 sinon
minimiser ca yaj (2.12)
y, z j∈J a∈A
s. a.
ksr zrj ≤ U ∀j∈J (2.13)
s∈S r∈R
ksr zrj = 1 ∀s∈S (2.14)
j∈J r∈R
xas ksr zrj ≤ yaj ∀ s ∈ S, j ∈ J, a ∈ A, r ∈ R (2.15)
zrj ∈ {0, 1} ∀ r ∈ R, j ∈ J (2.16)
yaj ∈ {0, 1} ∀ a ∈ A, j ∈ J (2.17)
La fonction objective minimise la somme des coûts de cachet versés aux acteurs. La
contrainte 2.13 dit que au plus U scènes peuvent être tournées le même jour. La contrainte
2.14 fait fait en sorte que toutes les scènes ne sont tournées qu’une seule fois. Cela empêche
aussi que les groupes de scènes aient des éléments communs. La contrainte 2.15 fait l’acti-
vation de la variable yaj , de façon que si la scène s ∈ Sr a lieu le jour j et a ∈ ASr , alors,
yaj = 1. Les autres contraintes sont pour le domaine des variables.
Lettre c
11
i) Ajouter la contrainte suivante :
zs1 j = zs2 j ∀ j ∈ J
zs3 j + zs4 j ≤ 1 ∀ j ∈ J
wj ∈ N ∀ j ∈ J
wj ∈ N ∀ j ∈ J
12
De plus, on doit remplacer la fonction objective 2.12 par :
min
y,z,w
ca yaj + δwj
j∈J a∈A j∈J
Pour tester cela, nous avons utilisé la langage Mosel avec le solveur Xpress. Tous les
fichiers sont aussi disponibles au http://www.4shared.com/rar/wdRwcs7gce/Question_
2.html.
Pour les résultats numériques, toutes les variables que ne sont pas montrés sont de valeurs
nulles. Sans considérer les contraintes abordés à la lettre c, nous avons eu ces résultats.
En ajoutant seulement la contrainte de la lettre c - ii les résultats sont les mêmes sans
contraintes, puisque cette contrainte n’est pas actif dans l’optimale pour notre instance.
En ajoutant seulement la contrainte de la lettre c - iii) :
13
Temps CPU total = 0.08 Temps CPU total = 0.151
Valeur optimale PNE = 34 Valeur optimale PNE = 34
Solution : Solution :
z(1,1) : 1 , z(2,2) : 1, z(3,2) : 1 z(11,1) : 1, z(12,2) : 1, z(13,2) : 1
z(4,3) : 1, z(5,1) : 1, y(1,1) : 1 z(14,3) : 1, z(15,1) : 1, y(1,1) : 1
y(1,2) : 1, y(2,1) : 1, y(2,2) : 1 y(1,2) : 1, y(2,1) : 1, y(2,2) : 1
y(2,3) : 1, y(3,2) : 1, y(4,1) : 1 y(2,3) : 1, y(3,2) : 1, y(4,1) : 1
w(2) : 1 w(2) : 1
14
Exercice 3
Considérerons un problème de planification d’une production juste-à-temps de différents
produits sur un horizon de temps fini. Soit T l’ensemble des périodes de l’horizon et P
l’ensemble des produits. À chaque période t ∈ T , on cherche à satisfaire une demande de
dpt unités du produit p ∈ P (dpt ∈ N ). Pour ce faire, les unités d’un même produit p ∈ P
sont fabriquées par lot de taille lp . Toutefois, dans un contexte juste-à-temps, l’accumulation
d’inventaire est proscrit autant que possible et entraîne une pénalité de qp+ dollars par unité
du produit p en stock à la fin de chaque période. En contrepartie, toute demande peut être
satisfaite en retard moyennant une pénalité de qp− dollars par unité du produit p en manque
à la fin de chaque période. La production d’un lot du produit p ∈ P requiert wp unités de
temps et un total de W unités de temps est disponible par période de temps, liant ainsi la
production des différents produits à chaque période. Formuler comme un programme linéaire
en nombres entiers le problème de déterminer les lots à fabriquer à chaque période de fa-
çon à minimiser la somme des pénalités. Supposer que l’inventaire est nul en début d’horizon.
Solution
On peut définir un ensemble de périodes T2 = T ∪{0}. De plus, on peut avoir les variables
suivantes :
minimiser (qp+ spt + qp− rpt ) (2.18)
x, s, r t∈T p∈P
s. a.
spt−1 + rpt − rpt−1 + lp xpt = dpt + spt ∀ p ∈ P, t ∈ T (2.19)
sp0 = 0 ∀ p∈P (2.20)
rp0 = 0 ∀ p∈P (2.21)
wp xpt ≤ W ∀ t∈T (2.22)
p∈P
spt ∈ N ∀ p ∈ P, t ∈ T (2.23)
rpt ∈ N ∀ p ∈ P, t ∈ T (2.24)
xpt ∈ N ∀ p ∈ P, t ∈ T (2.25)
lp xpt ≥ dpt ∀ p∈P (2.26)
t∈T t∈T
La fonction objetif minimise la somme des pénalités. La contrainte 2.19 fait la liaison
entre les variables de manière à satisfaire la demande sur toute la durée en laissant au
solveur la liberté d’avoir un surplus ou un manque. La contrainte 3.17 modélise la capacité de
production disponible par période de temps. Comme l’inventaire est nul en début d’horizon,
on peut fixer sp0 = 0 ∀p ∈ P . Dans le même sens, on fixe rp0 = 0 ∀p ∈ P , alors, on a
ajouté les contraintes 2.20, 3.17. On va considérer que la demande doit être satisfaite, sinon
la contrainte 2.26 peut être enlevé. Les autres sont pour le domaine des variables.
15
Pour tester cela, nous avons utilisé la langage Mosel avec le solveur Xpress. Une instance
a été crée de manière aléatoire pour l’analyse. Les fichiers sont aussi disponibles au http:
//www.4shared.com/rar/sg5fg923ce/Question_3.html. Nous montrons ici les résultats
numériques et le fichier .mos. Les résultats sont montrés en forme de tableau à la figure 2.7.
16
Exercice 4
Considérerons un programme linéaire en nombres entiers avec variables bornées :
(PNE) minimiser cT x
x
s. a.
Ax ≤ b
x ≤ u
x ∈ Nn
Solution
Lettre a
Pour chaque xj : j ∈ {1, ..., n} on crée 6 variables. Ainsi, nous avons utiliser les variables
suivantes :
⎧
⎨1 si la variable binaire i, lié à la variable xj , est actif
yij = ⎩
0 sinon
Définissons I = {1, .., 6} , J = {1, .., n} et M le nombre contraintes.
(PNEVB) minimiser cTj 2i−1 yij (2.27)
y j∈J i∈I
s. a.
amj 2i−1 yij ≤ bm ∀ m ∈ {1, .., M } (2.28)
j∈J i∈I
2i−1 yij ≤ uj ∀j∈J (2.29)
i∈I
yij ∈ {0, 1} ∀ i ∈ I, j ∈ J (2.30)
Lettre b
Pour tester cela, nous avons utilisé la langage Mosel avec le solveur Xpress dont le code
est affiché ci-dessous. Ces fichiers et les fichiers avec les sorties des résultats sont aussi
disponibles au http://www.4shared.com/rar/nt2gn3Hzce/Question_4.html.
Nous avons pris un extrait de la sortie des résultats. Les variables qui ne sont pas montrés
dans les résultats sont de valeurs nulles.
Pour l’instance bin1, on a :
18
Original problem has : 30 rows 120
cols 936 elements 120 globals
Original problem has :
10 rows 20 cols 136 elements 20 *** Search completed *** Time : 0
globals Nodes : 371
*** Search completed *** Time : Number of integer feasible solutions
0 Nodes : 171 found is 11
Number of integer feasible solu- Best integer solution found is -
tions found is 9 97.000000
Best integer solution found is Best bound is -97.000000
-97.000000 Temps CPU total = 0.137
Best bound is -97.000000
Valeur optimale PNE = -97
Temps CPU total = 0.05
Solution :
Valeur optimale PNE = -97 y(3,1) : 1 , y(4,1) : 1 , y(2,3) : 1 ,
y(3,3) : 1
Solution : y(4,6) : 1 , y(1,8) : 1 , y(3,10) : 1 ,
x(1) : 12 , x(3) : 2 , x(6) : 12, x(8) : y(2,11) : 1
1, x(10) : 4 y(2,12) : 1 , y(2,18) : 1 , y(1,19) : 1,
x(11) : 2 , x(12) : 2 , x(18) : 2, y(2,19) : 1
x(19) : 3
(a) Extrait des résultats du modèle PNE. (b) Extrait des résultats du modèle PNEVB.
On peut noter que le modèle PNEVB a plus de variables et de contraintes que le modèle
PNE. De plus, le nombre de nœuds est plus grand pour le modèle PNEVB que pour le modèle
PNE. Alors, cela nous donne comme hypothèse une corrélation positive entre le nombre de
nœuds et le temps de CPU total.
19
Pour l’instance bin2, on a :
(a) Extrait des résultats du modèle PNE. (b) Extrait des résultats du modèle PNEVB.
On peut noter que le modèle PNEVB a plus de variables et des contraintes que le modèle
PNE. Les résultats sont semblables à ceux de l’instance bin1.
Pour bin3, voyons les résultats :
22
Original problem has :
37 rows 150 cols 1476 elements 150 globals
(a) Extrait des résultats du modèle PNE. (b) Extrait des résultats du modèle PNEVB.
Le modèle PNEVB a encore un moins bon résultat. On note, une autre fois, une corré-
lation positive entre le nombre de nœuds et le temps de CPU.
23
Chapitre 3
24
1. Considérons le PNE suivant :
min c x (1)
x
sujet à : a
i x = bi , ∀i = 1, . . . , m1 (2)
d
j x ≤ ej , ∀j = 1, . . . , m2 (3)
n
x∈N . (4)
Utiliser la définition d’une relaxation présentée à la page 2.9 des notes de cours pour répondre
aux questions suivantes :
(a) Obtient-on une relaxation de PNE en remplaçant toutes les contraintes (2) par une
combinaison linéaire de celles-ci ?
(b) Obtient-on une relaxation de PNE en remplaçant toutes les contraintes (3) par une
combinaison linéaire de celles-ci ?
(c) Obtient-on une relaxation de PNE en ajoutant k variables supplémentaires yl ∈ N,
l = 1, . . . , k, à PNE ?
z= min −8x − 5y
x,y
sujet à : x+y ≤ 6
9x + 5y ≤ 45
x, y ∈ N.
25
3. Une matrice d’intervalle en colonnes A = aij de dimensions n × m est une matrice telle
que aij ∈ {0, 1} et, dans chaque colonne, les 1 sont consécutifs. Par exemple, la matrice
suivante est une matrice d’intervalle :
⎛ ⎞
1 0 0 0 1
⎜ 1 1 0 0 1 ⎟
⎜ ⎟.
⎝ 0 1 1 0 1 ⎠
0 0 1 1 0
(a) Considérons une matrice d’intervalle A carrée. Montrer que le déterminant de A est égal
à 0, 1 ou -1.
Indice : Le déterminant d’une matrice carrée B obtenue d’une matrice C en ajoutant sa
ligne i à sa ligne j (i = j) ou en soustrayant sa ligne i de sa ligne j (i = j) est égal au
déterminant de C.
(b) En utilisant le résultat précédent, montrer que toute matrice d’intervalle est totalement
unimodulaire.
4. Dans cette question, on considère le problème de la taille des lots avec capacité d’entreposage
qui peut se formuler comme suit (en utilisant la notation présentée dans la section 1.3.6 des
notes de cours et en supposant que ft = f , pt = p et ht = h, ∀t ∈ T ) :
n
min f yt + pxt + hst
x,y,s
t=1
sujet à : st−1 + xt = dt + st , ∀t ∈ T
x t ≤ Mt y t , ∀t ∈ T
s0 = 0,
st ≤ Q, ∀t ∈ T
xt , st ≥ 0, ∀t ∈ T
yt ∈ {0, 1}, ∀t ∈ T
26
ii. Proposer les meilleures valeurs possibles pour Mt (en supposant que vous ne connais-
sez pas de solution optimale). Résoudre l’exemplaire à nouveau et comparer les ré-
sultats obtenus avec ceux en a).
(b) Pour cette question et les suivantes, utiliser Mt = 300, ∀t ∈ T .
i. Comme s0 = 0, il est évident que y1 = 1 dans toute solution optimale. Ajouter donc
la contrainte y1 = 1 au modèle. Quel est son impact sur la valeur optimale de la
relaxation linéaire et sur le processus de résolution ? Conserver cette contrainte pour
toutes les autres questions, incluant (c).
ii. Les décisions de branchement pourraient porter sur les variables yt , une variable
à la fois (i.e., yt = 0 et yt = 1). En général, une solution optimale s’obtient plus
rapidement lorsque l’arbre de branchement est équilibré, i.e., lorsque les nombres de
noeuds dans la partie droite et la partie gauche de l’arbre sont presque égaux. Pour
ce faire, il faut prendre des décisions de branchement qui permettent d’augmenter
de façon relativement égale les bornes inférieures des deux noeuds-fils. Comparer
l’impact sur ces bornes des décisions de branchement que l’on peut prendre sur
chacune des variables y7 , y10 et y13 au noeud racine. Discuter les résultats obtenus.
iii. Suggérer une paire de décisions de branchement autre que yt = 0 et yt = 1. Quel est
son impact sur les bornes des noeuds-fils ? Comparer avec les résultats précédents.
(c) Dans ce numéro, vous devez implanter un branchement heuristique pour résoudre ce
problème. Il s’agit d’une procédure itérative qui, à chaque itération, résout la relaxation
linéaire courante et analyse la solution pour savoir si elle est entière. Si elle l’est, c’est
fini, on a obtenu une solution entière heuristique. Sinon, il faut identifier la variable yt
fractionnaire qui prend la valeur la plus élevée, la fixer à 1 et recommencer. Implanter
cette méthode avec Mosel (fichier lotC.mos). Donner la valeur de la solution obtenue et
comparer la avec la valeur optimale.
27
Exercice 1
Considérerons le PNE suivant.
minimiser
x
cT x (3.1)
s. a.
aTi x = bi ∀ i = 1, ..., m1 (3.2)
dTj x ≤ ej ∀ j = 1, ..., m2 (3.3)
x ∈ Nn (3.4)
Utiliser la définition d’une relaxation présentée à la page 2.9 des notes de cours pour
répondre aux questions suivantes :
(a) Obtient-on une relaxation de PNE en remplaçant toutes les contraintes (4.2) par une
combinaison linéaire de celles-ci ?
(b) Obtient-on une relaxation de PNE en remplaçant toutes les contraintes (4.3) par une
combinaison linéaire de celles-ci ?
(c) Obtient-on une relaxation de PNE en ajoutant k variables supplémentaires yl ∈ N, l =
1,...,k, à PNE ?
Solution
a)
m1
m1
λi (aTi x − bi ) = λi (0) = 0. (3.6)
i=1 i=1
Une solution pour 3.5 va être une solution pour 3.6 pour tout λi : i = 1, .., m1 . Alors, le
polyèdre formé par 3.5 est inclus dans le polyèdre définit par 3.6 (3.5 ⊆ 3.6). Comme nous
avons la même fonction objective, on obtient une relaxation de PNE en remplaçant toutes
les contraintes (4.2) par une combinaison linéaire de celles-ci.
b)
28
Nous avons que la combinaison linéaire des ces contraintes donnent :
m2
λj (dTj x − ej ) (3.8)
j=1
Si λj ≥ 0 ∀ j = 1, .., m2 , on peut assurer qu’une solution pour 3.7 sera une solution pour
3.8. Si un λ est négatif, on ne peut pas assurer que la combinaison est une relaxation pour le
PNE proposé. Par exemple nous pourrions avoir les contraintes −x1 + x2 ≤ 2 et x1 + x2 ≤ 3.
Si on fait la première moins la deuxième, cela fait 2x1 ≥ 1 qui coupe un morceau de la région
de faisabilité. On suppose donc que pour λj ≥ 0, nous avons (3.7 ⊂ 3.8). Par exemple nous
pouvons avoir :
c)
minimiser
x,y
cT x (3.9)
s. a.
aTi x = bi ∀ i = 1, ..., m1 (3.10)
dTj x ≤ ej ∀ j = 1, ..., m2 (3.11)
x ∈ Nn (3.12)
y ∈ Nk (3.13)
La fonction objective n’a pas changée. L’ensemble des contraintes par rapport à l’objectif
n’a pas changé, alors cette nouvelle formulation inclus la première. De plus, (3.13) augmente
le nombre de dimensions du polyèdre. Ainsi c’est une relaxation de PNE.
29
Exercice 2
Considérons le programme linéaire en nombres entiers vu en classe :
minimiser
x,y
−8x − 5y (3.14)
s. a.
x+y ≤ 6 (3.15)
9x + 5y ≤ 45 (3.16)
x, y ∈ N (3.17)
Solution
Nous avons développé l’algorithme pas à pas, ce qui nous montrons aux figures 3.1, 3.2
et 3.3.
30
Figure 3.3 – Application de l’algorithme pas à pas.
33
Figure 3.4 – Arbre d’énumération.
34
Exercice 3
Une matrice d’intervalle en colonnes A = (aij ) de dimensions n × m est une matrice telle que
aij ∈ {0, 1} et, dans chaque colonne, les 1 sont consécutifs. Par exemple, la matrice suivante
est une matrice d’intervalle :
⎛ ⎞
1 0 0 0 1
⎜1 1 0 0 1⎟
⎜ ⎟
⎜ ⎟
⎝0 1 1 0 1⎠
0 0 1 1 0
(a) Considérons une matrice d’intervalle A carrée. Montrer que le déterminant de A est égal
à 0, 1 ou -1.
Indice : Le déterminant d’une matrice carrée B obtenue d’une matrice C en ajoutant sa ligne
i à sa ligne j(i = j) ou en soustrayant sa ligne i de sa ligne j(i = j) est égal au déterminant
de C.
(b) En utilisant le résultat précédent, montrer que toute matrice d’intervalle est totalement
unimodulaire.
Solution
a)
On suppose Anxn . On suppose qu’on n’a pas une ligne ou une colonne avec seulement
des éléments nuls ni que A soit linéairement dépendante, cas où le déterminant serait 0.
b)
Si on supprime une colonne ou une ligne de la matrice A, cela ne change pas sa structure
d’intervalle. On peut donc avoir tous les sous-matrices carrés de A en faisant la suppres-
sion combinatoire d’une ligne et d’une colonne, deux lignes et deux colonnes, jusqu’au point
d’avoir des sous matrices 1x1. Ces matrices seront donc des matrices d’intervalles. En utili-
sant le résultat précédent, nous avons vu que une matrice d’intervalle A a det(A) ∈ {1, 0, −1}.
Par définition, une matrice est totalement unimodulaire si chacune de ses sous-matrices car-
rées a un déterminant égale à 1, −1 ou 0. Ainsi, det(A) = 1, −1 ou 0.
35
On peut montrer cela d’une autre manière aussi. En prenant l’idée d’Indice, on construit
la matrice A∗ : a∗i,j = ai,j − ai+1,j ∀ i = 1, .., n − 1, j = 1, .., n. Avec cela, dans chaque co-
lonne j, on aura au plus un indice i tel que a∗i,j = −1 et exactement un indice i tel que a∗i,j = 1.
La matrice A∗ a donc :
Ainsi, A∗ a les conditions suffisantes pour dire que elle est totalement unimodulaire.
36
Exercice 4
Solution
a) i.
Nous avons utilisé le langage Mosel avec le solveur Xpress dont le code est affiché ci-
dessous. On met aussi des extraits de la résolution en mettant l’emphase sur le PNE. Les
sorties ont été mises en format complet sur des fichiers disponibles au http://www.4shared.
com/rar/Ns-_bzf2ce/Question_4a.html.
37
Figure 3.7 – Extrait pour la sortie du programme avec M = 300.
38
Figure 3.9 – Extrait pour la sortie du programme avec M = 1000.
39
PRGHOORW
XVHVPP[SUV
XVHVPPV\VWHP
GHFODUDWLRQV
QEBSHU QRPEUHGHSHULRGHV
3(5 QEBSHUHQVHPEOHGHVSHULRGHV
3(5 QEBSHU
FDSLQWHJHUFDSDFLWHGHO
HQWUHSRW
KWUHDOFRXWSDUXQLWHHQLQYHQWDLUH
SWUHDOFRXWSDUXQLWHSURGXLWH
IWLQWHJHUFRXWIL[HSDUSHULRGHGHSURGXFWLRQ
7HPSV,QLWUHDO
HQGGHFODUDWLRQV
/HFWXUHGHVGRQQHHVGXILFKLHUORWGDW
LQLWLDOL]DWLRQVIURP
ORWGDW
FDSKWSWIWGW
HQGLQLWLDOL]DWLRQV
2EMHFWLIPLQLPLVHUFRXWVWRWDX[
&RXWB7RWDO VXPWLQ3(5IW
\WSW
[W
KW
VW
FRQWUDLQWHVGHGHPDQGH
[ GWV
IRUDOOLLQ3( VL[L GWLVL
FRQWUDLQWHV[YV\
IRUDOOLLQ3(5[L 0
\L
FRQWUDLQWHVFDSDFLWH
IRUDOOLLQ3(5VL FDS
FRQWUDLQWHVG
LQWHJULWHHWGRPDLQH
IRUDOOLLQ3(5[L!
IRUDOOLLQ3(5VL!
IRUDOOLLQ3(5\LLVBELQDU\
$XEHVRLQLPSULPHUOHSUREOHPH
H[SRUWSURE&RXWB7RWDO
VHWSDUDP;356BYHUERVH$FWLYHUDIILFKDJH
VHWSDUDP;356B&87675$7(*<'HVDFWLYHUOHVFRXSHV
VHWSDUDP;356B+(85675$7(*<'HVDFWLYHUOHVKHXULVWLTXHV
VHWSDUDP;356B35(62/9('HVDFWLYHUOHSUHWUDLWHPHQW
VHWSDUDP;356B12'(6(/(&7,21([SORUHUDYHFEHVWILUVW
VHWSDUDP;356B0,35(/67233DVGHWROHUDQFHPHWKRGHH[DFWH
VHWSDUDP;356B0,3/2*$IILFKHUDFKDTXHQRHXGVGHEUDQFKHPHQW
VHWSDUDP;356B0,37+5($'61RPEUHGHSURFHVVHXUV
7HPSV,QLW JHWWLPH
7HPSV,QLW JHWWLPH
PLQLPL]H&RXWB7RWDO5HVRXGUHOHSUREOHPH
,PSULPHUODVROXWLRQ
ZULWHOQ?Q9DOHXURSWLPDOH31( JHWREMYDO?Q
ZULWHOQ6ROXWLRQ
ZULWHOQ6ROXWLRQ
IRUDOOWLQ3(5_JHWVRO[W!GR
ZULWH[W JHWVRO[W
LIWPRG WKHQ
ZULWHOQ
HQGLI
HQGGR
IRUDOOWLQ3(5_JHWVRO\W!GR
ZULWH\W JHWVRO\W
LIWPRG WKHQ
ZULWHOQ
HQGLI
HQGGR
IRUDOOWLQ3(5_JHWVROVW!GR
ZULWHOQVW JHWVROVW
LIWPRG WKHQ
ZULWHOQ
HQGLI
HQGGR
HQGPRGHO
Pour les résultats, nous les avons résumé sous forme de tableau, montrés à la figure 3.10.
Étant donné que c’est la même instance, nous pouvons vérifier que avec M = 100, la
contrainte xt ≤ M yt ∀ t ∈ T a un impact sur la valeur et solution optimales. Pour les autres
valeurs de M, cette différence est noté seulement pour RL. On soupçonne ici que M = 100
est trot petit pour la formulation, la rendant mauvaise, comme on note pour la valeur de
x1 par exemple. Disons que pour RL cette contrainte est active dans l’optimale. Au fur et
à mesure qu’on augmente la valeur de M , plus on réussi à baisser la valeur optimale dans
un intervalle (même base). Par contre, cela n’affecte pas PNE, puisque la solution entière
ne change pas pour M ≥ 300. Par contre, le nombre de nœuds est affecté. Comme cette
contrainte est importante pour la RL, l’augmentation de M fait que la variable y s’adapte
plus pour atteindre une bonne valeur de la FO dans les nœuds de l’arbre du branch-and-
bound. Comme cela, le nombre de nœuds augmente du au besoin d’un plus grand nombre
de séparations.
a) ii.
T
Une façon d’obtenir une meilleure valeur possible pour Mt serait de faire Mt = di .
i=t
Nous avons testé cette idée en fixant sn = 0 et sans la fixer dont les solutions étaient les
mêmes, sauf que sans la contrainte sn = 0 le nombre de nœuds augmente en 2 pour PNE.
On montre un extrait de la sortie pour RL à la figure 3.11 et pour PNE à la figure 3.12.
42
Figure 3.11 – Résultats pour RL avec la modification de M.
43
Figure 3.12 – Résultats pour PNE avec la modification de M.
44
Nous pouvons constater que M = 100 est insuffisant pour donner une bonne formula-
tion car la valeur optimale de PNE est 3516.3, tel que trouvé pour M = 300, M = 500 et
M = 1000, et pour la modification apportée ici.
De plus, cette formulation a trouvé une borne inférieure pire que celle qui utilise M = 300,
mais meilleure que pour les autres formulations qui utilisent d’autres valeurs pour M . Néan-
moins, par rapport au nombre de nœuds, cette formulation est la meilleure. Puisqu’il en
résulte seulement 91 nœuds, le temps de CPU total a été meilleur.
b) i.
On note que l’impact est une augmentation de la borne inférieure pour la RL, ainsi
qu’une réduction du nombre de nœuds requis dans le processus de résolution du PNE (181
versus 203 ), ce qui apporte une petite réduction du temps de CPU requis.
b) ii.
En prenant la variable y7 pour être au nœud racine, on note que dans les nœuds avec
y7 = 0 et y7 = 1 donnent, respectivement, les valeurs optimales 3252.4 et 3282.52 pour la
RL. La différence entre ces bornes est de 30.12.
En appliquant le même raisonnement pour y10 on obtient d’un côté une borne inférieure
45
de 3242.05 et d’autre 3295.67 dont la différence est de 53.62.
Enfin pour y13 les bornes trouvés sont 3237.1 et 3308.75 avec une différence de 71.65.
La différence entre ces bornes permet de comparer de façon relative l’augmentation des
bornes inférieures des deux nœuds-fils. Plus cette différence est petite, plus l’arbre semble
être équilibré. Ainsi, avoir la variables y7 au nœud racine pour le branchement semble donner
comme résultat un arbre de branchement plus équilibré.
b) iii.
Le fichier utilisé pour cette question et pour la question précédente est disponible au
http://www.4shared.com/file/6VporNfAce/lotA_lettrebiii.html.
c)
Le fichier .mos est affiché ci-dessous. On met des extraits de la résolution à la figure 3.14.
46
PRGHOORW&
XVHVPP[SUV
XVHVPPV\VWHP
GHFODUDWLRQV
QEBSHU QRPEUHGHSHULRGHV
3(5 QEBSHUHQVHPEOHGHVSHULRGHV
3(5 QEBSHU
FDSLQWHJHUFDSDFLWHGHO
HQWUHSRW
KWUHDOFRXWSDUXQLWHHQLQYHQWDLUH
SWUHDOFRXWSDUXQLWHSURGXLWH
IWLQWHJHUFRXWIL[HSDUSHULRGHGHSURGXFWLRQ
GWDUUD\3(5RILQWHJHUGHPDQGHSDUSHULRGH
[DUUD\3(5RIPSYDUYDULDEOHVTXDQWLWHSURGXLWHSDUSHULRGH
\DUUD\3(5RIPSYDUYDULDEOHV VLSURGXFWLRQSDUSHULRGH
VDUUD\3(5RIPSYDUYDULDEOHVLQYHQWDLUHHQILQGHSHULRGH
0
LQWWROUHDO
LWULQWHJHUFRPSWHXUG
LWHUDWLRQV
W)L[LQWHJHUQXPHURGHODSHULRGHDIL[HU
7HPSV,QLWUHDO
PD[LPRB\WUHDOYDOHXUGH\WIUDFWLRQDLUHODSOXVHOHYp
HQGGHFODUDWLRQV
/HFWXUHGHVGRQQHHVGXILFKLHUORWGDW
LQLWLDOL]DWLRQVIURP
ORWGDW
FDSKWSWIWGW
HQGLQLWLDOL]DWLRQV
2EMHFWLIPLQLPLVHUFRXWVWRWDX[
&RXWB7RWDO VXPWLQ3(5IW
\WSW
[W
KW
VW
FRQWUDLQWHVGHGHPDQGH
[ GWV
IRUDOOLLQ3( VL[L GWLVL
FRQWUDLQWHV[YV\
IRUDOOLLQ3(5[L 0
\L
\
FRQWUDLQWHVFDSDFLWH
IRUDOOLLQ3(5VL FDS
FRQWUDLQWHVG
LQWHJULWHHWGRPDLQH
IRUDOOLLQ3(5[L!
IRUDOOLLQ3(5VL!
IRUDOOLLQ3(5\LLVBELQDU\
$XEHVRLQLPSULPHUOHSUREOHPH
H[SRUWSURE&RXWB7RWDO
VHWSDUDP;356BYHUERVH$FWLYHUDIILFKDJH
VHWSDUDP;356B&87675$7(*<'HVDFWLYHUOHVFRXSHV
VHWSDUDP;356B+(85675$7(*<'HVDFWLYHUOHVKHXULVWLTXHV
VHWSDUDP;356B35(62/9('HVDFWLYHUOHSUHWUDLWHPHQW
VHWSDUDP;356B12'(6(/(&7,21([SORUHUDYHFEHVWILUVW
VHWSDUDP;356B0,35(/67233DVGHWROHUDQFHPHWKRGHH[DFWH
VHWSDUDP;356B0,3/2*$IILFKHUDFKDTXHQRHXGGHEUDQFKHPHQW
ZULWHOQ?Q
ZULWHOQ
5HVROXWLRQKHXULVWLTXH
ZULWHOQ
)L[DWLRQGHSHULRGHVGHSURGXFWLRQ
ZULWHOQ
LWU
3RXUHQVDYRLUSOXVVXUOHVFRPPDQGHVUHSHDWLIGRHWF
/LUHOHFKDSLWUHGX;SUHVV0RVHOXVHUJXLGH
UHSHDW
W)L[
LWU LWU
PD[LPRB\W
PLQLPL]H;356B/,1&RXWB7RWDO5HVRXGUHODUHOD[DWLRQOLQHDLUH
ZULWH?Q,WHUDWLRQLWUYDOHXUREMHFWLI JHWREMYDO
IRUDOOWLQ3(5GR
LIJHWVRO\W LQWWRODQGJHWVRO\W! LQWWRODQGJHWVRO\W! PD[LPRB\W
PD[LPRB\W JHWVRO\W
W)L[ W
HQGLI
HQGGR
IRUDOOWLQ3(5_JHWVRO\W!GR
ZULWH\W JHWVRO\W
LIWPRG WKHQ
ZULWHOQ
HQGLI
HQGGR
LIW)L[!WKHQ
\W)L[
ZULWHOQ)L[HU\W)L[
HQGLI
DFRPSOHWHU
XQWLOW)L[
ZULWHOQ?Q
ZULWHOQ
6ROXWLRQHQWLqUH
ZULWHOQ
?Q
,PSULPHUODVROXWLRQ
ZULWHOQ?Q9DOHXURSWLPDOH31( JHWREMYDO?Q
ZULWHOQ6ROXWLRQ
IRUDOOWLQ3(5_JHWVRO[W!GR
ZULWH[W JHWVRO[W
LIWPRG WKHQ
ZULWHOQ
HQGLI
HQGGR
IRUDOOWLQ3(5_JHWVRO\W!GR
ZULWH\W JHWVRO\W
LIWPRG WKHQ
ZULWHOQ
HQGLI
HQGGR
IRUDOOWLQ3(5_JHWVROVW!GR
ZULWHOQVW JHWVROVW
LIWPRG WKHQ
ZULWHOQ
HQGLI
HQGGR
HQGPRGHO
Figure 3.14 – Extrait des résultats pour la Résolution Heuristique.
Tel que vu dans la figure 3.14, on a eu une valeur pour la fonction objective égale à
3889.7 en utilisant l’heuristique. En sachant que la valeur optimale est 3516.3, on a un
GAP d’optimalité d’environ 10% pour cette instance. Pour cette instance, c’est préférable la
méthode exacte puisque le temps de CPU requis pour trouver une solution a été plus grande
sur l’heuristique.
49
Chapitre 4
50
1. Pour chaque cas, trouver une inégalité valide pour X qui coupe le point donné.
(a) X = {x ∈ N4 | 4x1 + 7x2 + 3x3 + 9x4 ≥ 25}, x = (0, 0, 0, 25
9
).
(b) X = {(x, y) ∈ R2+ × B1 | x1 + x2 ≤ 5y, x1 ≤ 2, x2 ≤ 4}, (x1 , x2 , y) = (1, 1, 25 ).
(c) X = {(x, y) ∈ R2+ × N1 | x1 + x2 ≤ 14, x1 + x2 ≤ 9y}, (x1 , x2 , y) = (7, 5, 43 ).
(d) X = {x ∈ N5 | 2x1 + x2 + 3x3 + 4x4 + 3x5 ≤ 13}, x = ( 13
2
, 0, 0, 0, 0).
2. Considérons un domaine S ⊂ R3+ et supposons que toutes les inégalités suivantes sont des
inégalités valides pour S.
(a) Est-ce que 4x1 + 7x2 + 8x3 ≤ 35 domine 6x1 + 11x2 + 13x3 ≤ 58 ?
(b) Est-ce que 4x1 + 6x2 + 15x3 ≤ 45 est redondante par rapport aux inégalités 4x1 + 7x2 +
8x3 ≤ 35 et 5x1 + 9x2 + 20x3 ≤ 58 ?
S = {(s, x, y) ∈ Rn+1
+ × Rn+ × Bn | st−1 + xt = dt + st , ∀t ∈ T,
s0 = sn = 0, xt ≤ d i yt , ∀t ∈ T }.
i∈T
(a) Montrer que xt ≤ dt yt + st est une inégalité valide pour S quelque soit t ∈ T .
(b) En supposant que n = 3, d1 = 40, d2 = 10 et d3 = 50, donner une solution de la relaxa-
tion linéaire de S qui soit violée par une inégalité du type proposé en (a).
51
4. Considérons le domaine suivant :
(a) Déterminer tous les points de S et montrer que x1 + x2 + x3 ≤ 3 est une inégalité valide
pour S.
(b) Montrer que x1 + x2 + x3 ≤ 3 est une inégalité de Chvátal-Gomory de rang 1 pour un
PNE défini sur le domaine S.
(c) Prouver que dim(conv(S)) = 3 en trouvant quatre points de S affinement indépendants.
(d) Soit P un polyèdre de pleine dimension n et π x ≤ π0 une inégalité valide pour P . On
peut déterminer que F = {x ∈ P | π x = π0 } est une facette de P de la façon suivante.
Soit k points v1 , v2 , . . . , vk de F avec k ≥ n et un hyperplan quelconque μ x = μ0
les contenant, i.e., μ vi = μ0 pour tout i = 1, . . . , k. Si la résolution de ce système
d’équations linéaires en μ et μ0 ne possède que des solutions de la forme (μ, μ0 ) =
λ(π, π0 ), λ ∈ R, alors F est une facette. À l’aide cette approche, montrer que x1 + x2 +
x3 ≤ 3 engendre une facette de conv(S).
(e) Déterminer une représentation polyédrale minimale (i.e., qui ne contient que des inéga-
lités engendrant des facettes) de conv(S). Ne pas prouver que chaque inégalité engendre
une facette.
(P N E) max c x
x
sujet à : Ax ≤ b
x ∈ Nn .
Sur le site web du cours, vous trouverez le fichier q5.dat qui fournit les données pour un
exemplaire de ce modèle. De plus, vous trouverez le fichier q5a.mos qui vous aidera à
répondre à la première question ci-bas.
(a) Compléter le modèle dans le fichier q5a.mos et résoudre à l’aide de Mosel le problème
pour les données fournies. Indiquer les valeur et solution optimales de la relaxation
linéaire, de même que les valeur et solution optimales en nombres entiers.
(b) Formuler le problème de séparation pour trouver une inégalité disjonctive violée qui
s’appuie sur les décisions de branchement pouvant être imposées sur la variable x3 .
(c) Résoudre ce problème de séparation à l’aide de Mosel et indiquer la coupe disjonctive
obtenue. (Indice : Pour éviter un problème non borné, vous pouvez imposer i πi ≤ 1.)
(d) Ajouter cette coupe au modèle initial et résoudre à nouveau la relaxation linéaire. Quelles
sont les valeur et solution optimales de cette relaxation linéaire ?
52
Exercice 1
Solution
a)
b)
En énumérant tous les points extrêmes de X, dont l’ensemble on appelle EXT (X), on a
trouvé que :
EXT (X) = {(0, 0, 0), (0, 0, 1), (1, 4, 1), (0, 4, 1), (2, 3, 1), (2, 0, 1)}. Comme nous voulons
couper la solution (x, y) = (1, 1, 25 ), on peut construire le programme linéaire non réalisable :
6
minimiser 0λi (4.1)
λ
i=1
s. a.
6
λi = 1 (4.2)
i=1
0λ1 + 0λ2 + 1λ3 + 0λ4 + 2λ5 + 2λ6 = 1 (4.3)
0λ1 + 0λ2 + 4λ3 + 4λ4 + 3λ5 + 0λ6 = 1 (4.4)
0λ1 + 1λ2 + 1λ3 + 1λ4 + 1λ5 + 1λ6 = 2/5 (4.5)
λi ≥ 0 ∀i = 1..6 (4.6)
Associons aux contraintes (4.2), (4.3), (4.4) et (4.5) respectivement les variables duales
w0 , w1 , w2 , w3 . Le dual de (4.1)-(4.6) est donc :
53
maximiser
w
w1 + w2 + 2/5w3 + w0 (4.7)
s. a.
w0 ≤ 0 (4.8)
w3 + w0 ≤ 0 (4.9)
w1 + 4w2 + w3 + w0 ≤ 0 (4.10)
4w2 + w3 + w0 ≤ 0 (4.11)
2w1 + 3w2 + w3 + w0 ≤ 0 (4.12)
2w1 + w3 + w0 ≤ 0 (4.13)
qui est réalisable donc non borné. Alors, si on fait w0 = w2 = 0, w1 = 5/2 et w3 = −5,
on trouve une solution réalisable de valeur optimale 0.5 > 0.
Cela fait donc, 5/2x1 + 0x2 − 5y ≤ 0 ⇒ 5/2x1 − 5y ≤ 0 qui coupe le point donné.
c)
EXT (X) = {(0, 0, 0), (0, 9, 1), (9, 0, 1), (14, 0, 2), (0, 14, 2)}. Comme nous voulons couper
la solution (x, y) = (7, 5, 34 ), on peut construire le programme linéaire non réalisable :
5
minimiser 0λi (4.14)
λ
i=1
s. a.
5
λi = 1 (4.15)
i=1
0λ1 + 0λ2 + 9λ3 + 14λ4 + 0λ5 = 7 (4.16)
0λ1 + 9λ2 + 0λ3 + 0λ4 + 14λ5 = 5 (4.17)
0λ1 + 1λ2 + 1λ3 + 2λ4 + 2λ5 = 4/3 (4.18)
λi ≥ 0 ∀i = 1..5 (4.19)
Associons aux contraintes (4.15), (4.16), (4.17) et (4.18) respectivement les variables
duales w0 , w1 , w2 , w3 . Le dual de (4.14)-(4.19) est donc :
54
maximiser
w
7w1 + 5w2 + 4/3w3 + w0 (4.20)
s. a.
w0 ≤ 0 (4.21)
w0 + 9w2 + w3 ≤ 0 (4.22)
w0 + 9w1 + w3 ≤ 0 (4.23)
w0 + 14w1 + 2w3 ≤ 0 (4.24)
w0 + 14w2 + 2w3 ≤ 0 (4.25)
2w1 + w3 + w0 ≤ 0 (4.26)
qui est réalisable donc non borné. Alors, si on fait w0 = −3, w1 = w2 = 1 et w3 = −6,
on trouve une solution réalisable de valeur optimale 1 > 0.
d)
55
Exercice 2
a)
4 ≥ 6k
7 ≥ 11k
8 ≥ 13k
35 ≤ 58k
b)
Si on trouve des ki > 0, où |i| est égal au nombre d’inégalité valides et un k > 0 tel
|i| |i| |i| |i|
que ki πi ≥ kμi ∀ i = 1, ..., |i| et ki π0,i ≤ kμ0,i ∀ i = 1, ..., |i|, alors ki πi x ≤ ki π0,i
i=1 i=1 i=1 i=1
domine μx ≤ μ0 .
4k1 + 5k2 ≥ 4k
7k1 + 9k2 ≥ 6k
8k1 + 20k2 ≥ 15k
35k1 + 58k2 ≤ 45k
56
Exercice 3
a)
Montrons cela pour induction. Supposons que x soit une solution réalisable.
Pour t = 1, nous avons que :
x1 ≤ d1 y1 + s1
≤ d1 + s1 car y1 ∈ {0, 1} et d1 ≥ 0
= d1 + s1 − s0 car s0 = 0
Soit k ∈ {2, . . . , n}. On suppose que l’inégalité est vraie pour t = k − 1. Voyons pour
t=k:
xk ≤ dk yk + sk
≤ dk + sk car yk ∈ {0, 1} et dk ≥ 0
≤ dk + sk − sk−1 car sk−1 ≥ 0
= xk
Ainsi, si x est une solution réalisable, elle respecte xt ≤ dt yt + st ∀ t ∈ T , et ainsi, ces
inégalités sont valides.
b)
57
Exercice 4
Solution
a)
b)
6u1 + 1u2 = 1
4u1 + 2u2 = 1
3u1 + 4u2 = 1
12u1 + 10u2 = 3
On peut trouver u1 = u2 = 1/6 pour cela. À ce moment là, nous avons utilisé la défi-
nition de l’Inégalité de Chvatal-Gomory en partant des contraintes originales pour générer
x1 + x2 + x3 ≤ 3 qui est aussi de rang 1 par définition.
c)
Nous avons que dim(P ) = max{|k| − 1} òu k ⊆ P est l’ensemble des points affinement
indépendants de P .
Pour conv(S), si on prends les points v1 = (0, 0, 0), v2 = (0, 0, 1), v3 = (0, 1, 0) et
v4 = (2, 0, 0), il faut vérifier que :
4 4
i=1 αi vi = 0 et i=1 αi = 0 si l’unique solution est αi = 0 ∀ i = 1, .., 4.
2α4 = 0
1α3 = 0
1α2 = 0
α1 + α2 + α3 + α4 = 0
dont l’unique solution est αi = 0 ∀ i = 1, ..4.
58
d)
Choisissons ces points : (0, 3, 0), (1, 0, 2), (0, 2, 1) et (0, 1, 2).
( μ30 , μ30 , μ30 , μ0 ) = μ30 (1, 1, 1, 3). Or, (1,1,1,3) est (π, π0 ), donc, la solution du système prend
la forme (μ, μ0 ) = λ(π, π0 ) : λ ∈ R. Ainsi, x1 + x2 + x3 ≤ 3 engendre une facette de conv(S).
e)
59
Figure 4.2 – Graphique de x1 avec x3 .
On peut noter que tous les points réalisables sont représentés dans au moins une entre
les figures 4.1, 4.2 et 4.3.
Si on fait que x3 soit inférieur ou égale a 2, on enrichi la formulation. Ainsi, une autre
facette serait : F1 = {x3 ≤ 2 : 0 ≤ x1 ≤ 1, 0 ≤ x2 ≤ 1},
On peut noter dans la figure 4.3, que le point (0, 2, 1) n’est pas touché par la formulation
et que l’ajout de la contrainte x3 + x2 ≤ 3 décrit une inégalité qui lie ce point aux points
(0, 1, 2) et (0, 3, 0).
F2 = {x1 = 0 : x3 + x2 ≤ 3, x2 ≥ 0, x3 ≥ 0, x3 ≤ 2},
60
F3 = {x2 = 0 : 2x1 + x3 ≤ 4, x1 ≥ 0, x3 ≥ 0, x3 ≤ 2},
F4 = {x3 = 0 : 6x1 + 4x2 ≤ 12, x2 ≥ 0, x1 ≥ 0},
Pour finir, on peut noter que la contrainte 6x1 + 4x2 + 3x3 ≤ 12 est une facette vu quelle
est une inégalité valide avec 3 points affinement indépendants. Par contre, comme ce plan
ne contient pas le point (0, 2, 1), on peut essayer de trouver un autre plan de plus qui lie les
points (1, 0, 2), (0, 1, 2) et (0, 3, 0) et définir mieux conv(S).
Pour le faire, en utilisant les points (1, 0, 2), (0, 1, 2) et (0, 3, 0), on peut trouver :
1a + 0b + 2c = d
0a + 1b + 2c = d
0a + 3b + 0c = d
Pour d = 1, cela nous donne a = b = c = 1/3. La forme générale du plan est
ax1 + bx2 + cx3 = d. Alors :
et ajouter la facette :
F6 = {x1 + x2 + x3 ≤ 3 : 0 ≤ x1 ≤ 1, 0 ≤ x2 ≤ 3, 0 ≤ x3 ≤ 2, 5x1 + 3x2 + 2x3 ≤ 9},
61
Exercice 5
Solution
a)
Nous avons utilisé le langage Mosel avec le solveur Xpress dont le code est affiché ci-
dessous. On met aussi la sortie du programme avec les résultats demandés (les valeur et
solution optimales de la relaxation linéaire, de même que les valeur et solution optimales en
nombres entiers). Les variables qui ne sont pas montrés à la sortie sont de valeurs nulles.
62
PRGHOTD
XVHVPP[SUV
XVHVPPV\VWHP
GHFODUDWLRQV
QY QRPEUHGHYDULDEOHV
QF QRPEUHGHFRQWUDLQWHV
9$56 QY
&2176 QF
$DUUD\&21769$56RILQWHJHU
EDUUD\&2176RILQWHJHU
FDUUD\9$56RILQWHJHU
/HFWXUHGHVGRQQHHVGXILFKLHUTGDW
LQLWLDOL]DWLRQVIURP
TGDW
$EF
HQGLQLWLDOL]DWLRQV
2EMHFWLIPD[LPLVHUFRXWVWRWDX[
2EM VXPLLQ9$56FL
[L
FRQWUDLQWHV
IRUDOOMLQ&2176VXPLLQ9$56$ML
[L EM
FRQWUDLQWHVG
LQWHJULWH
IRUDOOLLQ9$56[LLVBLQWHJHU
IRUDOOLLQ9$56[L!
$XEHVRLQLPSULPHUOHSUREOHPH
H[SRUWSURE2EM
VHWSDUDP;356BYHUERVH$FWLYHUDIILFKDJH
VHWSDUDP;356B&87675$7(*<'HVDFWLYHUOHVFRXSHV
VHWSDUDP;356B+(85675$7(*<'HVDFWLYHUOHVKHXULVWLTXHV
VHWSDUDP;356B35(62/9('HVDFWLYHUOHSUHWUDLWHPHQW
VHWSDUDP;356B12'(6(/(&7,21([SORUHUDYHFEHVWILUVW
VHWSDUDP;356B0,35(/67233DVGHWROHUDQFHPHWKRGHH[DFWH
VHWSDUDP;356B0,3/2*$IILFKHUDFKDTXHQRHXGVGHEUDQFKHPHQW
VHWSDUDP;356B0,37+5($'61RPEUHGHSURFHVVHXUV
,PSULPHUODVROXWLRQ
ZULWHOQ?Q9DOHXURSWLPDOH5/ JHWREMYDO?Q
ZULWHOQ6ROXWLRQ
IRUDOOLLQ9$56_JHWVRO[L!GR
ZULWH[L JHWVRO[L
HQGGR
ZULWHOQ
,PSULPHUODVROXWLRQ
ZULWHOQ?Q9DOHXURSWLPDOH31( JHWREMYDO?Q
ZULWHOQ6ROXWLRQ
IRUDOOLLQ9$56_JHWVRO[L!GR
ZULWH[L JHWVRO[L
HQGGR
HQGPRGHO
b)
Soit P le polyèdre formé par la formulation initiale. Comme x3 = 5.7018, on peut définir
P1 = P {x3 ≤ 5} et P2 = P {x3 ≥ 5 + 1}.
Le problème de séparation pour trouver une inégalité disjonctive violée qui s’appuie sur
les décisions de branchement pouvant être imposées sur la variable x3 est donné par :
maximiser
π,π0 ,u1 ,v1 ,u2 ,v2
2.89717π(1) + 1.94344π(2) + 5.7018π(3) + 4.24422π(4) − π0 (4.27)
s. a.
π(1) + π(2) + π(3) + π(4) + π(5) + π(6) ≤ 1 (4.28)
6v2 (3) − 50u2 (1) − 45u2 (2) − 36u2 (3) − 24u2 (4) + π0 ≥ 0 (4.29)
−5v1 (3) − 50u1 (1) − 45u1 (2) − 36u1 (3) − 24u1 (4) + π0 ≥ 0 (4.30)
−4u2 (1) − 2u2 (2) + π(6) ≤ 0 (4.31)
−u2 (1) − 5u2 (2) − u2 (4) + π(5) ≤ 0 (4.32)
−7u2 (2) − u2 (3) − 2u2 (4) + π(4) ≤ 0 (4.33)
v2 (3) − 3u2 (1) − 2u2 (2) − 2u2 (3) + π(3) ≤ 0 (4.34)
−5u2 (1) − 2u2 (2) − 6u2 (3) − 5u2 (4) + π(2) ≤ 0 (4.35)
−8u2 (1) − 3u2 (3) − 2u2 (4) + π(1) ≤ 0 (4.36)
−4u1 (1) − 2u1 (2) + π(6) ≤ 0 (4.37)
−u1 (1) − 5u1 (2) − u1 (4) + π(5) ≤ 0 (4.38)
−7u1 (2) − u1 (3) − 2u1 (4) + π(4) ≤ 0 (4.39)
−v1 (3) − 3u1 (1) − 2u1 (2) − 2u1 (3) + π(3) ≤ 0 (4.40)
−5u1 (1) − 2u1 (2) − 6u1 (3) − 5u1 (4) + π(2) ≤ 0 (4.41)
−8u1 (1) − 3u1 (3) − 2u1 (4) + π(1) ≤ 0 (4.42)
u1 , v1 , u2 , v2 ≥ 0 (4.43)
Nous avons utilisé le langage Mosel avec le solveur Xpress dont le code est affiché ci-
dessous. On met aussi des extraits de la résolution en mettant l’emphase sur la coupe dis-
jonctive obtenue.
1. Wolsey, L. A. (1998). Integer programming (Vol. 42). New York : Wiley, pag 131.
64
Comme solution, nous avons eu : π(1) = 0.236388, π(2) = 0.504648, π(3) = 0.0686144, π(4) =
0.19035, π0 = 2.82869. Cela nous donne la coupe suivante :
65
PRGHOTE
XVHVPP[SUV
XVHVPPV\VWHP
GHFODUDWLRQV
QY QRPEUHGHYDULDEOHV
QF QRPEUHGHFRQWUDLQWHV
9$56 QY
&2176 QF
$DUUD\&21769$56RILQWHJHU
EDUUD\&2176RILQWHJHU
FDUUD\9$56RILQWHJHU
DOSKDDUUD\9$56RILQWHJHU
DOSKDBLQWHJHU
YBDUUD\9$56RIPSYDUYDULDEOHVYGXSRO\HGUH
XBDUUD\&2176RIPSYDUYDULDEOHVXGXSRO\HGUH
YBDUUD\9$56RIPSYDUYDULDEOHVYGXSRO\HGUH
XBDUUD\&2176RIPSYDUYDULDEOHVXGXSRO\HGUH
SLDUUD\9$56RIPSYDUYDULDEOHVSL
SLBPSYDU
HQGGHFODUDWLRQV
/HFWXUHGHVGRQQHHVGXILFKLHUTGDW
LQLWLDOL]DWLRQVIURP
TEGDW
$EFDOSKDDOSKDB
HQGLQLWLDOL]DWLRQV
2EMHFWLIPD[LPLVHUFRXWVWRWDX[
2EM
SL
SL
SL
SLSLB
FRQWUDLQWHV
IRUDOOMLQ9$56SLM VXPLLQ&2176$LM
XBLDOSKDM
YBMUHVWULFDRGHSLSDU
IRUDOOMLQ9$56SLM VXPLLQ&2176$LM
XBLDOSKDM
YBMUHVWULFDRGHSLSDU
SLB! VXPLLQ&2176EL
XBLDOSKDB
YBUHVWULFDRGHSLBSDUDSRO\HGUH
SLB! VXPLLQ&2176EL
XBLDOSKDB
YBUHVWULFDRGHSLBSDUDSRO\HGUH
QRUPDOL]HWKHLQHTXDOLW\
VXPLLQ9$56SLL
FRQWUDLQWHVG
LQWHJULWH
IRUDOOLLQ9$56YBL!
IRUDOOLLQ9$56YBL!
IRUDOOLLQ&2176XBL!
IRUDOOLLQ&2176XBL!
$XEHVRLQLPSULPHUOHSUREOHPH
H[SRUWSURE2EM
VHWSDUDP;356BYHUERVH$FWLYHUDIILFKDJH
VHWSDUDP;356B&87675$7(*<'HVDFWLYHUOHVFRXSHV
VHWSDUDP;356B+(85675$7(*<'HVDFWLYHUOHVKHXULVWLTXHV
VHWSDUDP;356B35(62/9('HVDFWLYHUOHSUHWUDLWHPHQW
VHWSDUDP;356B12'(6(/(&7,21([SORUHUDYHFEHVWILUVW
VHWSDUDP;356B0,35(/67233DVGHWROHUDQFHPHWKRGHH[DFWH
VHWSDUDP;356B0,3/2*$IILFKHUDFKDTXHQRHXGVGHEUDQFKHPHQW
VHWSDUDP;356B0,37+5($'61RPEUHGHSURFHVVHXUV
,PSULPHUODVROXWLRQ
ZULWHOQ?Q9DOHXURSWLPDOH JHWREMYDO?Q
ZULWHOQ6ROXWLRQ
IRUDOOLLQ9$56_JHWVROSLL!GR
ZULWHOQSLL JHWVROSLL
HQGGR
ZULWHSLB JHWVROSLB
ZULWHOQ
PRGHOTD
XVHVPP[SUV
XVHVPPV\VWHP
GHFODUDWLRQV
QY QRPEUHGHYDULDEOHV
QF QRPEUHGHFRQWUDLQWHV
9$56 QY
&2176 QF
$DUUD\&21769$56RILQWHJHU
EDUUD\&2176RILQWHJHU
FDUUD\9$56RILQWHJHU
/HFWXUHGHVGRQQHHVGXILFKLHUTGDW
LQLWLDOL]DWLRQVIURP
TGDW
$EF
HQGLQLWLDOL]DWLRQV
2EMHFWLIPD[LPLVHUFRXWVWRWDX[
2EM VXPLLQ9$56FL
[L
FRQWUDLQWHV
IRUDOOMLQ&2176VXPLLQ9$56$ML
[L EM
FRQWUDLQWHVG
LQWHJULWH
IRUDOOLLQ9$56[LLVBLQWHJHU
IRUDOOLLQ9$56[L!
LQHJDOLWHYDOLGHWURXYpHQTEPRV
[
[
[
[
$XEHVRLQLPSULPHUOHSUREOHPH
H[SRUWSURE2EM
VHWSDUDP;356BYHUERVH$FWLYHUDIILFKDJH
VHWSDUDP;356B&87675$7(*<'HVDFWLYHUOHVFRXSHV
VHWSDUDP;356B+(85675$7(*<'HVDFWLYHUOHVKHXULVWLTXHV
VHWSDUDP;356B35(62/9('HVDFWLYHUOHSUHWUDLWHPHQW
VHWSDUDP;356B12'(6(/(&7,21([SORUHUDYHFEHVWILUVW
VHWSDUDP;356B0,35(/67233DVGHWROHUDQFHPHWKRGHH[DFWH
VHWSDUDP;356B0,3/2*$IILFKHUDFKDTXHQRHXGVGHEUDQFKHPHQW
VHWSDUDP;356B0,37+5($'61RPEUHGHSURFHVVHXUV
PD[LPL]H;356B/,12EM5HVRXGUHODUHOD[DWLRQOLQHDLUH
,PSULPHUODVROXWLRQ
ZULWHOQ?Q9DOHXURSWLPDOH5/ JHWREMYDO?Q
ZULWHOQ6ROXWLRQ
IRUDOOLLQ9$56_JHWVRO[L!GR
ZULWH[L JHWVRO[L
HQGGR
ZULWHOQ
PD[LPL]H2EM5HVRXGUHOHSUREOHPH
,PSULPHUODVROXWLRQ
ZULWHOQ?Q9DOHXURSWLPDOH31( JHWREMYDO?Q
ZULWHOQ6ROXWLRQ
IRUDOOLLQ9$56_JHWVRO[L!GR
ZULWH[L JHWVRO[L
HQGGR
HQGPRGHO
Figure 4.5 – Sortie du programme.
69
Chapitre 5
Conclusions
70
Buy your books fast and straightforward online - at one of world’s
fastest growing online book stores! Environmentally sound due to
Print-on-Demand technologies.
Buy your books online at
www.morebooks.shop
Achetez vos livres en ligne, vite et bien, sur l'une des librairies en
ligne les plus performantes au monde!
En protégeant nos ressources et notre environnement grâce à
l'impression à la demande.
La librairie en ligne pour acheter plus vite
www.morebooks.shop
KS OmniScriptum Publishing
Brivibas gatve 197
LV-1039 Riga, Latvia info@omniscriptum.com
Telefax: +371 686 204 55 www.omniscriptum.com