1. (20 points) a. Variables
yi = 1, si on choisit le développement i; 0, sinon Objectif
5 4
3 2
1 1,8 1,6 0,8 1,4
maxZ = y + y + y + y + y
Contraintes
Limite sur le capital total disponible 20 8
4 10 12
6y1 + y2 + y3 + y4 + y5 ≤
On ne peut faire à la fois les développements 1 et 2
2 1
1 +y ≤
y
On ne peut faire à la fois les développements 3 et 4
4 1
3 + y ≤
y
Le développement 5 ne peut être fait que si au moins un des développements 1 et 2 a été effectué
2 1
5 y y
y ≤ +
Intégralité
{ }
0,1, , ,
, 2 3 4 5
1 y y y y ∈
y
b. Voir le fichier Devoir3_1b.xls Devoir3_1b
Développement 1 2 3 4 5
Profit estimé 1 1,8 1,6 0,8 1,4
Capital requis 6 12 10 4 8
Développement? 1 0 0 1 1
Terme de
Terme de gauche droite Capital
disponible 18 20
y1+y2<=1 1 1
y3+y4<=1 1 1
y5<=y1+y2 0 0
Max Profit total 3,2
Noms
d'intervalles Cellules Profit_estimé C4:I4 Capital_requis C5:I5 Développement C6:I6 Terme_de_gauche C9:C13 Terme_de_droite D9:D13 Profit_total C15
Cellule cible (Max)
Cellule Nom Valeur initiale Valeur finale
$C$14 Profit_total 0 3,2
Cellules variables
Cellule Nom Valeur initiale Valeur finale
$C$6 Développement? 0 1
$D$6 Développement? 0 0
$E$6 Développement? 0 0
$F$6 Développement? 0 1
$G$6 Développement? 0 1
Contraintes
Cellule Nom Valeur Formule État Marge
$C$9 Capital disponible gauche 18 $C$9<=$D$9 Non lié 2
$C$10 y1+y2<=1 gauche 1 $C$10<=$D$10 Lié 0
$C$11 y3+y4<=1 gauche 1 $C$11<=$D$11 Lié 0
$C$12 y5<=y1+y2 gauche 0 $C$12<=$D$12 Lié 0
$C$6 Développement? 1 $C$6=binaire Lié 0
$D$6 Développement? 0 $D$6=binaire Lié 0
$E$6 Développement? 0 $E$6=binaire Lié 0
$F$6 Développement? 1 $F$6=binaire Lié 0
$G$6 Développement? 1 $G$6=binaire Lié 0
2. (20 points) a. Variables
i =
x nombre d’unités du jouet Ji produites
i =
y 1, si au moins une unité du jouet Ji est produite; 0, sinon
=
z 1, si l’usine U1 sert à produire des jouets; 0, sinon Objectif
2 1
2
1 15 50000 80000
10
maxZ = x + x − y − y
Contraintes
Liens entre les variables x et y
2 2
1 1
My x
My x
≤
≤
Capacités de production aux usines et pas plus d’une usine utilisée
x Mz x
z x M
x
+
≤ +
− +
≤ +
25 700 40
) 1 ( 40 500
50
2 1
2 1
Intégralité
{ }
0,1, , , entiers et 0
, 2 1 2
1 x ≥ y y z∈
x
b. Voir le fichier Devoir3_2b.xls Devoir3_2b
Taux de production Profit Coût Nombre Limite Produit?
Usine U1 Usine U2 unitaire fixe d'unités sup
Jouet J1 0,02 0,025 10 50000 28000 <= 1000000 1
Jouet J2 0,025 0,04 15 80000 0 <= 0 0
Capacité
effective -999440 700
<= <=
Capacité de 500 700
production
Z 0 1000000 M
Max Profit total 230000
Noms d'intervalles Cellules Nombre_unités H5:H6
Produit J5:J6
Z C12
Taux_U1 C5:C6
Taux_U2 D5:D6
Profit_unitaire E5:E6
Coût_fixe F5:F6
Capacité_production C10:D10
M D12
Limite_sup J5:J6 Capacité_effective C8:D8
Cellule cible (Max)
Cellule Nom Valeur initiale Valeur finale
$C$15 Profit_total 24870000 230000
Cellules variables
Cellule Nom Valeur initiale Valeur finale
$H$5 Jouet J1 d'unités 1000000 28000
$H$6 Jouet J2 d'unités 1000000 0
$K$5 <= Produit? 1 1
$K$6 <= Produit? 1 0
$C$12 Z 0,0643 0
Contraintes
Cellule Nom Valeur Formule État Marge
$H$5 Jouet J1 d'unités 28000 $H$5<=$J$5 Non lié 972000
$H$6 Jouet J2 d'unités 0 $H$6<=$J$6 Lié 0
$C$8 Capacité effective Usine U1 -999440 $C$8<=$C$10 Non lié 999940
$D$8 Capacité effective Usine U2 700 $D$8<=$D$10 Lié 0
$K$5 <= Produit? 1 $K$5=binaire Lié 0
$K$6 <= Produit? 0 $K$6=binaire Lié 0
$C$12 Z 0 $C$12=binaire Lié 0
$H$5 Jouet J1 d'unités 28000 $H$5=entier Lié 0
$H$6 Jouet J2 d'unités 0 $H$6=entier Lié 0
3. (20 points) a. Variables
xij = nombre de tonnes de gravier transportées entre le fournisseur Fi et le site Sj yij = nombre de camions utilisés pour transporter du gravier entre le fournisseur Fi et le site Sj
Objectif
∑∑
= =+ +
+ +
+ +
=
2
1 3
1
23 22
21 13
12
11 160 150 180 150 160
130 50
min
i j
ij x x x x x x
y Z
Contraintes
Offres des fournisseurs
∑
∑
=
=
≤
≤
3
1 2 3
1 1
14 18
j j j
j
x x
Demandes aux sites de construction
∑
∑
∑
=
=
=
≥
≥
≥
2
1 3 2
1 2 2
1 1
10 5 10
i i i
i i
i
x x x
Capacité des camions et liens entre les variables x et y 3
, 2 , 1 , 2 , 1 ,
5 = =
≤ y i j xij ij
Non négativité et intégralité
3 , 2 , 1 , 2 , 1 , entiers et 0
,y ≥ i= j=
xij ij
b. Voir le fichier Devoir3_3b.xls Devoir3_3b
Capacité 5
Coût 50
De À Gravier Cap Camions CoûtUnitaire Sommet Flot Offre/demande
F1 S1 10 <= 10 2 130 F1 15 <= 18
F1 S2 0 <= 0 0 160 F2 10 <= 14
F1 S3 5 <= 5 1 150 S1 10 >= 10
F2 S1 0 <= 6,2E-32 1,23E-32 180 S2 5 >= 5
F2 S2 5 <= 5 1 150 S3 10 >= 10
F2 S3 5 <= 5 1 160
Min TotalCamions
Objectif 3850 5
Noms d'intervalles Cellules
De B7:B12
A C7:C12
Gravier D7:D12
Equipements G7:H25
Cap F7:F12
Capacité G3
Coût G4
Camions G7:G12
TotalCamions G14
CoûtUnitaire H7:H12
Sommet I7:I11
FlotOffre J7:J8
FlotDemande J9:J11
Offre L7:L8
Demande L9:L11
Objectif D14
Cellule cible (Min)
Cellule Nom Valeur initiale Valeur finale
$D$14 Objectif 3850 3850
Cellules variables
Cellule Nom Valeur initiale Valeur finale
$D$7 S1 Gravier 10 10
$D$8 S2 Gravier 0 0
$D$9 S3 Gravier 5 5
$D$10 S1 Gravier 0 0
$D$11 S2 Gravier 5 5
$D$12 S3 Gravier 5 5
$G$7 <= Camions 2 2
$G$8 <= Camions 0 0
$G$9 <= Camions 1 1
$G$10 <= Camions 1,2326E-32 1,2326E-32
$G$11 <= Camions 1 1
$G$12 <= Camions 1 1
Contraintes
Cellule Nom Valeur Formule État Marge
$D$7 S1 Gravier 10 $D$7<=$F$7 Lié 0
$D$8 S2 Gravier 0 $D$8<=$F$8 Lié 0
$D$9 S3 Gravier 5 $D$9<=$F$9 Lié 0
$D$10 S1 Gravier 0 $D$10<=$F$10 Lié 0
$D$11 S2 Gravier 5 $D$11<=$F$11 Lié 0
$D$12 S3 Gravier 5 $D$12<=$F$12 Lié 0
$J$7 F1 Flot 15 $J$7<=$L$7 Non lié 3
$J$8 F2 Flot 10 $J$8<=$L$8 Non lié 4
$J$9 S1 Flot 10 $J$9>=$L$9 Lié 0
$J$10 S2 Flot 5 $J$10>=$L$10 Lié 0
$J$11 S3 Flot 10 $J$11>=$L$11 Lié 0
$G$7 <= Camions 2 $G$7=entier Lié 0
$G$8 <= Camions 0 $G$8=entier Lié 0
$G$9 <= Camions 1 $G$9=entier Lié 0
$G$10 <= Camions 1,2326E-32 $G$10=entier Lié 0
$G$11 <= Camions 1 $G$11=entier Lié 0
$G$12 <= Camions 1 $G$12=entier Lié 0
4. (20 points)
Voici le calcul de la relaxation PL à la racine :
Branchement et ensuite évaluation du sommet de gauche (aucun test d’élagage ne s’applique) :
Évaluation du sommet de droite (aucun test d’élagage ne s’applique) :
On branche sur le sommet de gauche, car il a la borne supérieure la plus élevée parmi les sommets les plus récemment générés; puis on évalue le nouveau sommet de gauche (aucun test d’élagage ne s’applique) :
On évalue ensuite le nouveau sommet de droite (aucun test d’élagage ne s’applique) :
On branche sur ce sommet, car c’est celui de plus grande borne supérieure parmi les sommets les plus récemment générés; puis, on évalue le sommet de gauche (aucun test d’élagage ne s’applique) :
On évalue ensuite le sommet de droite (aucun test d’élagage ne s’applique) :
On branche sur ce sommet, car c’est celui de plus grande borne supérieure parmi les sommets les plus récemment générés; le sommet de gauche est élagué, car il ne contient pas de solution réalisable, alors que le sommet de droite ne peut être élagué :
On branche donc sur ce sommet; le sommet de gauche est élagué, car il ne contient pas de solution réalisable, alors que le sommet de droite est aussi élagué, car il fournit une solution entière, qui devient la meilleure solution réalisable :
On choisit ensuite le sous-problème le plus récemment généré; celui-ci est élagué, car sa borne supérieure (3) est inférieure à la valeur de la meilleure solution courante (7) :
On choisit ensuite le sous-problème le plus récemment généré; celui-ci est élagué, car sa borne supérieure (-1) est inférieure à la valeur de la meilleure solution courante (7) :
On choisit ensuite le sous-problème le plus récemment généré; celui-ci est élagué, car sa borne supérieure (5) est inférieure à la valeur de la meilleure solution courante (7) :
L’algorithme s’arrête puisqu’il n’y a plus de sous-problèmes non élagués; une solution optimale de valeur 7 a été trouvée.
5. (20 points)
D’abord, on transforme le problème de minimisation en un problème de maximisation en prenant l’opposé des coefficients dans la fonction objectif; la valeur optimale cherchée sera alors l’opposé de la valeur trouvée. Une autre méthode consistait à appliquer l’algorithme vu en cours en l’adaptant à un problème de minimisation.
Voici le calcul de la relaxation PL à la racine (aucun test d’élagage ne s’applique) :
On branche sur x1, la première variable entière à valeur fractionnaire; puis on évalue le sommet de gauche (aucun test d’élagage ne s’applique) :
On évalue ensuite le sommet de gauche (aucun test d’élagage ne s’applique) :
Puisqu’il s’agit du sommet le plus récemment généré de plus grande borne supérieure, on le choisit pour effectuer un branchement; on choisit la variable x3, qui est la première variable entière à valeur fractionnaire; le sommet de gauche est élagué, car la solution optimale de la relaxation PL est entière; elle devient donc la meilleure solution courante :
On choisit ensuite le sommet de droite; puisque sa borne supérieure (-14) est inférieure à la valeur de la meilleure solution courante (-12), ce sommet est élagué :
On choisit ensuite le sommet le plus récemment créé non encore élagué; puisque sa borne supérieure (-11,5) est supérieure à la valeur de la meilleure solution courante (- 12), on ne peut l’élaguer et on effectue donc un branchement sur la première variable entière à valeur fractionnaire, soit x3; le sommet de gauche est alors élagué, puisque sa borne supérieure (-17) est inférieure à la valeur de la meilleure solution courante (- 12) :
Le sommet de droite est ensuite élagué, puisque sa borne supérieure (-12) est égale à la valeur de la meilleure solution courante :
Comme il n’y a plus de sous-problèmes non élagués, l’algorithme s’arrête après avoir identifié une solution optimale de valeur 12 (rappelons qu’on doit prendre l’opposé de la valeur trouvée par l’algorithme pour obbtenir la valeur optimale de notre problème).