Vous êtes sur la page 1sur 8

Examen de recherche op rationnelle Corrig e e

Marc Roelens D cembre 2006 e

1
1.1

Ordonnancement de t ches a
On dresse le tableau des contraintes de pr c dence : e e T che a Pr c. e A J B H C D E A, H F G A, B H C, I I D J D, F

On d termine successivement : e les t ches de niveau 0 (celles qui nont pas dant c dent) : ce sont C, D et F (que lon peut num roter a e e e dans cet ordre) ; les t ches de niveau 1 (celles qui nont que des ant c dents de niveau 0) : ce sont I et J (que lon a e e num rote dans cet ordre) ; e les t ches de niveau 2 (celles qui nont que des ant c dents de niveau 0 ou 1) : ce sont A et H (que a e e lon num rote dans cet ordre) ; e les t ches de niveau 3 (celles qui nont que des ant c dents de niveau 0, 1 ou 2) : ce sont B et E (que a e e lon num rote dans cet ordre) ; e les t ches de niveau 4 (celles qui nont que des ant c dents de niveau 0, 1, 2 ou 3) : il ne reste plus a e e que G ! Voici donc le tableau des t ches avec niveau et num ro dordre : a e T che a Pr c. e Niv. No A J 2 6 B H 3 8 C 0 1 D 0 2 E A, H 3 9 F 0 3 G A, B 4 10 H C, I 2 7 I D 1 4 J D, F 1 5

` Comme on a r ussi a num roter tous les sommets, cest que le graphe de pr c dence est sans circuit, et la e e e e num rotation des sommets constitue un tri topologique (si la t che X est avant la t che Y, alors le num ro e a a e de X est inf rieur au num ro de Y). e e Une repr sentation par niveau possible pour ce graphe est la suivante (on a ajout des t ches ctives e e a ` correspondant au d but et a la n des travaux) : e

Db

Fin

F
niveau 0

J
niveau 1

A
niveau 2 niveau 3 niveau 4

1.2
On porte sur chaque arc du graphe de pr c dence la dur e de la t che dont cet arc est issu, et on sait que e e e a lon calcule la date de d but au plus t t en d terminant le chemin le plus long depuis le d but des travaux ; e o e e ceci permet de trouver la dur e minimale dex cution qui est la date de d but au plus t t de la t che ctive e e e o a repr sentant la n des travaux. e Ensuite, on d termine la date de d but au plus tard en calculant le chemin le plus long depuis chaque e e sommet jusqu` cette t che ctive de n des travaux. a a Comme le graphe est ordonn par niveaux, ces calculs se font par niveaux croissants pour les dates de e d but au plus t t, par niveaux d croissants pour les dates de d but au plus tard. Le r sultat est r sum sur e o e e e e e le graphe suivant :
0,5

C
0,0 Db 5 5 0,3

8,9

H
5,6 3

5 5

13,14

B
8 22,31 22,22 10 32,32 Fin

I
5,5 12,12 7 10

E
10

G
1

Les dates de d but au plus t t et au plus tard sont indiqu es (s par es par des virgules) au dessus des t ches. e o e e e a On obtient ainsi les r ponses : e la dur e minimale dex cution est de 32 unit s ; e e e le chemin critique est D b D J A G Fin e

1.3
Le graphe PERT est d crit ci-apr` s : il comprend 8 etapes et deux t ches ctives (en pointill s), de e e a e ` dur es nulles, servant a repr senter les contraintes de pr c dence. e e e e
[8,9] [0,0] C (4) D (5) F (2) I (3) [5,5] J (7) [12,12] A (10) [22,22] E (1) [32,32] H (5) [13,14] B (8) [22,22] G (10)

Pour chaque etape, on a indiqu la date au plus t t et la date au plus tard (entre crochets). Le chemin critique e o est (heureusement !) le m me que celui calcul par le graphe de pr c dence. e e e e On peut alors calculer les marges libres, totales et certaines, dont on rappelle la d nition. Pour toute e etape ei , on note ti la date au plus t t de cette etape, et t la date au plus tard. Alors, pour une t che Xj de o a i dur e dj , comprise entre l tape k (avant) et l tape l (apr` s), on d nit : e e e e e MT (Xj ) = t tk dj (marge totale de Xj ) ; l ML (Xj ) = tl tk dj (marge libre de Xj ) ; MC (Xj ) = tl t dj (marge certaine de Xj ). k On obtient les r sultats suivants : e T che a MT ML MC A 0 0 0 B 1 1 0 C 5 4 4 D 0 0 0 E 9 9 9 F 3 3 3 G 0 0 0 H 1 0 0 I 1 0 0 J 0 0 0

1.4
On voit sur le tableau pr c dent que la marge totale de H est de 1 unit : donc, laugmentation de 1 e e e ` unit de la dur e de H va r sorber cette marge (sans pour autant d caler la n du projet). Si H augmente a e e e e nouveau de 1 unit , alors on obtient un nouveau chemin critique e D b D I H B G Fin e ` et la dur e minimale dex cution du projet passe a 33 unit s de temps. e e e

2
2.1

Allocation de ressources

On note donc xj la quantit de cageots plac e dans le magasin j. Ces variables xj sont enti` res, posie e e ` ` tives, inf rieures a la valeur n. Le b n ce global (que lon cherche a maximiser) est donc : e e e
m

F (x1 , , xm ) =
j=1

b(xj , j)

en respectant bien s r la contrainte que le nombre total de cageots est n, cest-` -dire : u a
m

xj = n
j=1

Cest donc un probl` me de programmation dynamique. e

2.2
On note alors, pour 0 i n et 0 j m, P (i, j) le prot maximum obtenu en vendant i cageots dans les j premiers magasins. On a bien evidemment : (i {0..n})(P (i, 1) = b(i, 1)) Ensuite, pour j 2, pour placer optimalement i cageots dans les j premiers magasins, on peut dire lon place xj i cageots dans le magasin j et i xj de facon optimale dans les j 1 premiers magasins. On choisit bien s r la valeur de xj qui maximise la somme des b n ces obtenus. En clair : u e e P (i, j) = max b(xj , j) + P (i xj , j 1)
0xj i

2.3
Dapr` s ce que lon vient de d montrer, on connat les valeurs de P (i, 1) pour 0 i n (identiques e e aux b(i, 1)). Puis, on peut calculer gr ce a la propri t P (i, 2) pour 0 i n, . . .puis P (i, j 1) pour a ` ee ` 0 i n, et enn ce que lon cherche : P (n, m). On a affaire a un algorithme classique de programmation dynamique. En regardant plus attentivement la formule de r currence, on constate que pour calculer P (i, j), on a e besoin de connatre uniquement les valeurs de P (k, j 1) pour 0 k i. Ceci permet de nutiliser quun seul tableau pour calculer les valeurs de P : ` pour i allant de 0 a n P(i) = b(i,1) ` pour j allant de 2 a m ` pour i allant de n a 0 kmin = 0 ; vkmin = P(i)+b(0,j) ` pour k allant de 0 a i 3

vk = P(i-k)+b(k,j) ` si vk est sup rieur a vkmin e kmin = k ; vk = vkmin nsi npour(k) P(i,j) = vkmin npour(i) npour(j) afcher P(n,m) Cet algorithme permet de d terminer P (n, m) (dailleurs, dans la derni` re boucle, il nest pas n cessaire e e e de calculer P (i, m) pour i < n !) : on souhaite egalement conserver la r partition correspondante ! Il suft e pour cela de m moriser les valeurs de vkmin en cours dalgorithme. En termes de complexit , on a ainsi : e e ` une complexit en espace proportionnelle a nm (on conserve pour tout i le b n ce et la r partition e e e e optimale, de taille m) ; ` une complexit proportionnelle a n2 m (voir les trois boucles imbriqu es de lalgorithme). e e

2.4
Voici lalgorithme d taill sur lexemple : e e calcul de P(6,2) : on d termine les r partitions possibles e e 0 cageots sur le magasin 2, 6 sur le premier magasin : 0 + 4 = 4 1 cageots sur le magasin 2, 5 sur le premier magasin : 4 + 4 = 8 2 cageots sur le magasin 2, 4 sur le premier magasin : 6 + 4 = 10 3 cageots sur le magasin 2, 3 sur le premier magasin : 7 + 4 = 11 4 cageots sur le magasin 2, 2 sur le premier magasin : 8 + 4 = 12 5 cageots sur le magasin 2, 1 sur le premier magasin : 8 + 3 = 11 6 cageots sur le magasin 2, 0 sur le premier magasin : 8 + 0 = 8 P(6,2) = 12, r partition optimale 2+4 e calcul de P(5,2) : on d termine les r partitions possibles e e 0 cageots sur le magasin 2, 5 sur le premier magasin : 0 + 4 = 4 1 cageots sur le magasin 2, 4 sur le premier magasin : 4 + 4 = 8 2 cageots sur le magasin 2, 3 sur le premier magasin : 6 + 4 = 10 3 cageots sur le magasin 2, 2 sur le premier magasin : 7 + 4 = 11 4 cageots sur le magasin 2, 1 sur le premier magasin : 8 + 3 = 11 5 cageots sur le magasin 2, 0 sur le premier magasin : 8 + 0 = 8 P(5,2) = 11, r partition optimale 2+3 e calcul de P(4,2) : on d termine les r partitions possibles e e 0 cageots sur le magasin 2, 4 sur le premier magasin : 0 + 4 = 4 1 cageots sur le magasin 2, 3 sur le premier magasin : 4 + 4 = 8 2 cageots sur le magasin 2, 2 sur le premier magasin : 6 + 4 = 10 3 cageots sur le magasin 2, 1 sur le premier magasin : 7 + 3 = 10 4 cageots sur le magasin 2, 0 sur le premier magasin : 8 + 0 = 8 P(4,2) = 10, r partition optimale 2+2 e calcul de P(3,2) : on d termine les r partitions possibles e e 0 cageots sur le magasin 2, 3 sur le premier magasin : 0 + 4 = 4 1 cageots sur le magasin 2, 2 sur le premier magasin : 4 + 4 = 8 2 cageots sur le magasin 2, 1 sur le premier magasin : 6 + 3 = 9 3 cageots sur le magasin 2, 0 sur le premier magasin : 7 + 0 = 7 P(3,2) = 9, r partition optimale 1+2 e calcul de P(2,2) : on d termine les r partitions possibles e e 0 cageots sur le magasin 2, 2 sur le premier magasin : 0 + 4 = 4 1 cageots sur le magasin 2, 1 sur le premier magasin : 4 + 3 = 7 2 cageots sur le magasin 2, 2 sur le premier magasin : 6 + 0 = 6

P(2,2) = 7, r partition optimale 1+1 e calcul de P(1,2) : on d termine les r partitions possibles e e 0 cageots sur le magasin 2, 1 sur le premier magasin : 0 + 3 = 3 1 cageots sur le magasin 2, 0 sur le premier magasin : 4 + 0 = 4 P(1,2) = 4, r partition optimale 0+1 e calcul de P(0,2) : on d termine les r partitions possibles e e 0 cageots sur le magasin 2, 0 sur le premier magasin : 0 + 0 = 0 P(0,2) = 0, r partition optimale 0+0 e calcul de P(6,3) : on d termine les r partitions possibles e e 0 cageots sur le magasin 3, 6 sur les deux premiers magasins : 0 + 12 = 12 1 cageots sur le magasin 3, 5 sur les deux premiers magasins : 2 + 11 = 13 2 cageots sur le magasin 3, 4 sur les deux premiers magasins : 4 + 10 = 14 3 cageots sur le magasin 3, 3 sur les deux premiers magasins : 6 + 9 = 15 4 cageots sur le magasin 3, 2 sur les deux premiers magasins : 7 + 7 = 14 5 cageots sur le magasin 3, 1 sur les deux premiers magasins : 8 + 4 = 12 6 cageots sur le magasin 3, 0 sur les deux premiers magasins : 9 + 0 = 9 P(6,3) = 15, r partition optimale 1+2+3 e Ainsi, le grossiste doit placer 1 cageot dans le premier magasin, 2 dans le second magasin, 3 dans le troisi` me magasin : son b n ce (maximal) est de 15. e e e

3
3.1

` Production a optimiser

` On note x1 et x2 les quantit s de produits P1 et P2 . Ainsi, on cherche a maximiser le produit de la e vente, cest-` -dire la quantit : a e F (x1 , x2 ) = 40x1 + 50x2 sachant que lon doit bien s r respecter les contraintes de stock des ingr dients A, B et C : u e 5 x1 + 4 x2 80 x1 + 2 x2 24 3 x1 + 2 x2 36 ` On a affaire a un (classique) probl` me de programmation lin aire. e e

3.2
Comme on na que deux variables, une r solution graphique (planaire) est donc possible. La gure 1 e reprend cette r solution graphique. e Sur ce graphique, on a trac les droites de contrainte, le polytope [O,X1,X,X2] des solutions admissibles e (solutions v riant les contraintes, en hachur ), et une droite disob n ce (en pointill s). La solution e e e e e optimale est le point du polytope par lequel passe une parall` le a la droite disob n ce qui est la plus e ` e e eloign e possible de lorigine : ce point est le point X de la gure. e Pour d terminer pr cis ment ce point, on remarque quil est lintersection des droites de contraintes e e e ` relatives a B et C : cest donc la solution du syst` me lin aire : e e x1 3 x1 qui donne comme solution optimale : x1 x2 F = 6 = 9 = 6 40 + 9 50 = 690 5 + 2 x2 + 2 x2 = 24 = 36

x2 20 D(A) D(C) 10 X2

1111111 0000000 1111111 0000000 1111111 0000000 1111111 0000000 1111111 0000000
X 10 X1

X D(B) 20 droite disobnfice x1

F IG . 1 R solution graphique e

3.3
On va maintenant r soudre le probl` me par la m thode du simplexe. On sait que par cette m thode, on e e e e ` se d place sur les sommets du polytope des solutions admissibles : ainsi, a partir du sommet O, on veut e aboutir au sommet X. Que lon passe par X1 ou par X2, il suft dans les deux cas de deux etapes, ce qui explique pourquoi on aura trois tableaux. Voici les tableaux successifs en prenant comme crit` re de choix e de colonne celui du coefcient maximal pour la fonction economique. On introduit donc 3 variables d cart yA , yB et yC (qui repr sentent les quantit s non utilis es des e e e e ingr dients A, B et C), et le tableau initial du simplexe s crit alors : e e yA yB yC x1 5 1 3 40 x2 4 2 2 50 yA 1 0 0 0 yB 0 1 0 0 yC 0 0 1 0 80 24 36 F

` Ce tableau correspond a la solution initiale (x1 = 0, x2 = 0, yA = 80, yB = 24, yC = 36), qui est g om triquement repr sent e par le sommet O. e e e e Le choix du pivot se fait alors : en d terminant la colonne o` le coefcient est maximal dans la fonction economique : cest la coe u lonne de x2 ; pour cette colonne, et pour chaque ligne, on calcule le quotient entre la valeur du second membre (sil est positif) et le coefcient de la ligne (sil est non nul) : pour la ligne yA , on obtient le quotient 80 = 20 ; 4 pour la ligne yB , on obtient le quotient 24 = 12 ; 2 pour la ligne yA , on obtient le quotient 36 = 18 ; 2 on retient comme pivot la valeur r alisant le minimum, soit ici la ligne yB e On dit que yB sort de la base et que x2 entre dans la base. Cela signie que lon passe de la solution ` initiale a une nouvelle solution en se d placant sur lar te [O ;X2] : on cherche le point le plus eloign sur e e e

cette ar te qui est donc X2. On obtient le nouveau tableau : e yA x2 yC x1 3


1 2

2 15

x2 0 1 0 0

yA 1 0 0 0

yC 0 1 0 2 1 1 25 0

yB 2

32 12 12 F 600

` correspondant a la nouvelle solution (x1 = 0, x2 = 12, yA = 32, yB = 0, yC = 12) de b n ce 600. e e Comme il reste un coefcient positif dans la fonction economique, ce nest pas encore loptimum. On ` choisit a nouveau le pivot selon les m mes r` gles : cest la colonne de x1 (qui va donc entrer dans la base), e e et la ligne de yC (qui va donc sortir de la base). On obtient le tableau nal : yA x2 x1 x1 0 0 1 0 x2 0 1 0 0 yA 1 0 0 0 yB 1 2 yC 3 2 1 4 14 9 6 F 690

3 4 1 2 35 2

1 2 15 2

` correspondant a la nouvelle solution (x1 = 6, x2 = 9, yA = 14, yB = 0, yC = 0) de b n ce 690. Comme e e ` les coefcients de la fonction economique sont maintenant n gatifs, on est bien a loptimum (on retrouve e le point X du graphique).

3.4
On peut r ecrire les equations du probl` me au voisinage de loptimum trouv (cest le tableau nal du e e e simplexe !) : 1 yA = 14 + 2 yB + 3 yC 2 3 x2 = 9 4 yB + 1 yC 4 x1 = 6 + 1 yB 1 yC 2 2 F = 690 35 yB 15 yC 2 2 Comme on utilise toute la quantit de lingr dient C disponible, on peut se demander comment loptimum e e va evoluer si on augmente cette quantit . Lhypoth` se essentielle est la suivante : si laugmentation est petite e e ` (), les pivots vont rester les m mes, et on peut donc d duire la solution optimale du nouveau probl` me a e e e ` partir de la solution optimale de lancien probl` me en affectant la valeur a la variable yC . e On lit sur le tableau nal du simplexe comment vont varier les diff rentes variables : e yA diminue de 3 ; 2 x2 diminue de 1 ; 4 x1 augmente de 1 ; 2 F augmente de 15 . 2 Ceci permet de calculer la valeur maximale du : cest celle qui provoquera lannulation de la premi` re e variable. Dans notre cas : x1 augmente donc ne peut sannuler ; yA sannule pour une valeur de de 14 = 28 ; 3 3 x2 sannule pour une valeur de de
9
1 4 2

= 36.

On en d duit que la valeur maximale est e valeur limite pour laquelle il y a alors annulation de yA . Ceci explique pourquoi l nonc indiquait : e e quelle quantit suppl mentaire de C faut-il acheter pour epuiser compl` tement les 80 kg de e e e A? On obtient alors comme nouvelle solution optimale : yA = 14 3 28 = 0 2 3 x2 = 9 1 28 = 20 4 3 3 x1 = 6 + 1 28 = 32 2 3 3 F = 690 + 15 28 = 760 2 3 7

28 3 ,

` Graphiquement parlant, augmenter la quantit de lingr dient C revient a d caler la droite D(C) pae e e ` ` rall` lement a elle-m me en l loignant de lorigine : on voit alors que le point correspondant a la solution e e e optimale se d place sur la droite D(B) en se rapprochant du point X. La limite est atteinte lorsque les e ` trois droites D(A), D(B) et D(C) deviennent concourantes : cest le point X correspondant a la nouvelle solution ! Cette op ration est-elle rentable ? On voit que la fonction economique augmente proportionnellement e ` a laugmentation de la quantit de lingr dient C, le rapport etant de 15 : ainsi, si le prix au kg de C est e e 2 ` inf rieur a cette valeur, lop ration est rentable ; si le prix est sup rieur, elle ne lest pas. e e e