Corrigé 2014 Fichier

publicité
CORRIGÉ DU CONTRÔLE DE RECHERCHE OPÉRATIONNELLE
FÉVRIER 2014
1. U N PROBLÈME DE SAC - À - DOS
1.
Pn
max
v x
Pni =1 i i
s.t.
a
i =1 i x i ≤ K
x i ∈ {0, 1}
∀i .
2. On applique l’algorithme glouton donné p.90 du polycopié. On obtient alors la solution
x 1 = x 3 = x 4 = x 5 = x 6 = x 9 = x 11 = 1, x 10 = 7/9 et x 2 = x 7 = x 8 = x 12 = x 13 = 0. La valeur de la
fonction objectif est alors 128 + 5/9.
3. On garde les composantes entières de la solution précédente. On constate que l’on
peut ajouter l’objet 2. On a donc une solution réalisable I = {1, 2, 3, 4, 5, 6, 9, 11}, de valeur
125. Comme (128 + 5/9 − 125)/(128 + 5/9) est inférieur à 0.04, cette solution convient.
2. U N PROBLÈME DE DISTRIBUTION
1.
Pn Pm
Pn Pm Pr
min
i =1 j =1 p i j y i j + i =1 j =1 k=1 c i j k x i j k
Pm
s.t.
y i j ≤ qi
Prj =1
x = yi j
Pnk=1 i j k
i =1 x i j k = d k j
`i j ≤ y i j ≤ u i j
x i j k , y i j ∈ Z+
∀i
∀i , j
∀j,k
∀i , j
∀i , j , k.
2. La demande totale doit être plus petite que l’offre totale.
3. Les arcs sont de trois types.
Il y a les arcs de la forme (i , (i , j )), ceux de la forme ((i , j ), (k, j )), et enfin ceux de la forme
(i , o).
Les arcs (i , (i , j )) ont une capacité inférieure `i j et une capacité supérieure u i j . Leurs
coûts sont les p i j .
Les arcs ((i , j ), (k, j )) ont une capacité inférieure égale à 0 et une capacité supérieure égale
à +∞. Leurs coûts sont les c i j k .
Les arcs (i , o) ont une capacité inférieure égale à 0 et une capacité supérieure égale à +∞.
Leur coût est 0.
La fonction b( · ) vaut 0 sur les sommets (i , j ) . Elle vaut q i sur les sommets i , elle vaut −d k j
P
P
sur les sommets (k, j ) et enfin elle vaut k, j d k j − i q i sur le sommet o.
1
2
FÉVRIER 2014
Les y i j mis sur les arcs (i , (i , j )) et les x i j k mis sur les arcs ((i , j ), (k, j )), complétés avec
les bonnes valeurs sur les arcs (i , o), forment un b-flot, dont le coût est celui de la solution
réalisable correspondante.
(D’autres solutions sont possibles).
4. Les capacités et les b( · ) étant à valeurs entières, il existera toujours un b-flot optimal à
valeurs entières. Un tel b-flot se calcule en temps polynomial d’après le cours.
3. P LUS COURT CHEMINS ET ACHAT DE POUTRES
3.1. Plus court chemins avec contrainte de nombre d’arcs. Dans le polycopié p.33, on explique comment calculer en temps polynomial le coût minimum d’un s-t chemin à nombre
d’arcs fixés. On peut donc essayer systématiquement tous les nombres d’arcs possibles, et
garder la meilleure réponse.
Il est aussi possible d’écrire directement une équation de programmation dynamique pour
le problème.
3.2. Application: achat de poutres. 1. Il suffit de choisir pour chaque p le plus petit indice
i tel que S i ≥ σp .
2. Sur un arc (s, i ), on met un coût égal à q j g i , où g i est le nombre de poutres p ∈ P telles
que σp ∈]0, S i ]. Sur un arc (i , j ) on met un coût égal à q j f i j , où f i j est le nombre de poutres
p ∈ P telles que σp ∈]S i , S j ]. Sur l’arc (x, t ), on met un coût égal à 0. On pose b = k + 1.
Les types sélectionnés dans une solution optimale du problème constituent avec s et t un
s-t chemin dans ce graphe, utilisant au plus b arcs. Noter que le type x est forcément utilisé
dans une solution optimale. On peut vérifier que le coût du chemin et le coût de la solution
coïncident. Réciproquement, tout s-t chemin donne une solution réalisable de même coût.
3. S’il existe une poutre p telle que σp ∈]S i , S j ] et (1+θ)σp < S j , on supprime l’arc (i , j ) du
graphe D. De même pour les arcs (s, i ). Dans ce nouveau graphe, la méthode de la question
précédente permet encore de résoudre le problème.
4. O PTIMISATION DU TEMPS DE CYCLE D ’ UNE CHAÎNE DE MONTAGE
P
P
1. En sommant toutes les inégalités C ≥ T s , on obtient mC ≥ ni=1 d i . Donc C ≥ ( ni=1 d i )/m.
Ici, cela donne C ≥ 3.75. D’autre part, chaque T s est nécessairement entier, donc le temps de
cycle minimum est également entier. Par conséquent, au mieux, on a C = 4.
2.
Pm
s=1 x s,i
= 1 pour i ∈ {1, . . . , n}.
P
3. x s, j ≤ st =1 x t ,i pour s ∈ {1, . . . , m} et pour i , j ∈ {1, . . . , n} telles que i ≺ j .
P
P
( st =1 x t , j ≤ st =1 x t ,i convient aussi).
CORRIGÉ DU CONTRÔLE DE RECHERCHE OPÉRATIONNELLE
3
4.
min C
Pm
s.t.
i ∈ {1, . . . , n}
s,i = 1
s=1 xP
x s, j ≤ st =1 x t ,i
s ∈ {1, . . . , m} et i , j ∈ {1, . . . , n} avec i ≺ j
Pn
C ≥ i =1 d i x s,i
s ∈ {1, . . . , m}
C ∈ R+ , x s,i ∈ {0, 1}.
5.
P
P P
G (λ) = min (1 − m
λ )C + ni=1 m
s=1 λs d i x s,i
Pm s=1 s
s.t.
x
=
1
s,i
s=1 P
x s, j ≤ st =1 x t ,i
C ∈ R+ , x s,i ∈ {0, 1}.
i ∈ {1, . . . , n}
s ∈ {1, . . . , m} et i , j ∈ {1, . . . , n} avec i ≺ j
6. Regardons la contrainte (**) pour tout i ≺ i¯. Par définition de i¯, le terme de droite de (**)
est alors toujours entier, égal à 0 ou 1. Notons S l’ensemble des stations telles que x ∗ ¯ n’est
s,i
P
pas entier. On a s∈S x ∗ ¯ = 1. On peut bouger localement les valeurs de x ∗ ¯ sur un voisinage
s,i
s,i
ouvert, tout en respectant cette égalité. Comme on est à l’optimum, nécessairement, λs est
constant sur S.
Pour le (y s,i ) de l’énoncé, les contraintes (*) sont toujours satisfaites. Regardons (**). Si y s,i¯
apparaît dans le terme de gauche, la contrainte est encore satisfaite, le terme de droite valant
nécessairement 1 pour s = s 0 . Les contraintes (**) sont donc satisfaites pour j = i¯. Reste à
regarder ce qu’il se passe pour le terme de droite. Remarquons que, par construction, on a
Pt
Pt
∗
¯
s=1 y s,i¯ ≥ s=1 x s,i¯ pour tout t . Les contraintes (**) avec i = i sont encore satisfaites.
∗
Comme les λs sont constants sur S, la valeur du critère pour (y s,i ) et pour (x s,i
) est la
même.
7. La valeur optimale de (Q λ ), c’est celle de (P λ ), qui peut être déterminée en temps polynomial par l’algorithme des points intérieurs.
5. R OTATIONS D ’ AVIONS ET MAINTENANCE
1. (1): Si un avion a son compteur à k, il ne peut atterrir dans un aéroport qui n’est pas
une base.
(2): Soit a = (v, u). Lorsque l’avion réalise le vol u, il vient de quitter un aéroport qui n’est
pas une base. Par conséquent, son compteur ne peut être à 0.
(3): Considérons un avion qui atterrit dans un aéroport qui n’est pas une base. Alors le
compteur de l’avion est incrémenté de une unité.
(4): Considérons un avion qui atterrit dans un aéroport qui est une base. Alors l’avion
quand il décolle de cette base a son compteur remis à 0.
(5): Tout vol qui n’est pas dans T doit être suivi par un autre vol.
(6): Tout vol qui est dans T est précédé d’un vol, car S ∩ T = ;.
P
2. Remarquons d’abord que a∈δ+ (v) y a = 1 pour tout v ∉ T . En sommant sur i l’équation
P
(3) et en utilisant (1) et (2), on montre que a∈δ− (v) y a ≤ 1 pour tout v ∉ B ∪ S. On a de même
pour les sommets v dans B \ S d’après l’équation (4).
(∗)
(∗∗)
4
FÉVRIER 2014
Par conséquent, les y a encodent des chemins partitionnant V , chacun d’eux se terminant
en un sommet de T distinct (équation (6)). Tout sommet de S est point de départ d’un de ces
chemins. Comme |S| = |T |, chacun de ces chemins commence en un sommet de S distinct
et finit en un sommet distinct de T .
Chacun de ces chemins forme une rotation pour un certain avion. Les équations (3) et (4)
activent le x a,i pour le i correspondant à la valeur prise par le compteur le long de ce chemin.
Téléchargement