Professional Documents
Culture Documents
2- Mthode de rsolution :
Pour rsoudre un tel problme, on a le choix entre 3 mthodes : La mthode des MARQUES La mthode FORD-BELLMAN La mthode DIJIKSTRA
Champs dapplication des mthodes : Le cas dun Graphe sans circuit (GSC) : La mthode des Marques La mthode Ford-Bellman
37 2 15 1 25 3 17 27 20 30 5
4 27 15 19
13 6 10 8 18 50 7 40 20 9
Recherche Oprationnelle
Solution : Rgle de gestion de la mthode des Marques : Phase 1 : 1.1 On supprime les niveaux infrieurs ou gale au sommet reprsentant le dbut du chemin. 1.2 On supprime les niveaux suprieur ou gale au sommet reprsentant la fin du chemin. 1.3 On limine les arcs des sommets quon vient de supprimer. Phase 2 : 2.1 Pour chaque sommet i, on calcule une valeur quon appellera fonction marque, et on note M(i) : M(i) = 0 si i est le sommet reprsentant le dbut du chemin
OU
M(i) = Max [ M(j) + V(j, i) ] si (j,i ) est un arc et V(j,i) est la valeur de larc (j,i) J est le prcdent de i
Phase 3 : Aprs avoir attribu chaque sommet composant le chemin la valeur de sa fonction marque, on soustrait cette valeur la valeur de larc qui la prcde, et on la compare avec la fonction marque du sommet prcdent : si le calcul est juste on marque cette liaison pour tracer le chemin.
Appliquons maintenant les instructions de la mthode des marques pour rsoudre la question :
Recherche Oprationnelle 37 2 15 1 25 3 17 20 30 5 27 15 19 7 18 50 27 4
13 6 10 8 40 20 9
Jlimine les sommets du mme niveau ou infrieur au sommet reprsentant le dbut du chemin ; alors jlimine le sommet 1 (infrieur 3) et 2 (du mme niveau que 3) Ainsi jaurais mon graphe comme a :
37 15 17 25 3 20 30 5 27
4 27 15 19
13 6 10 8 18 50 7 40 20 9
Et ensuite, jlimine les arcs qui appartiennent aux sommets que jai supprims ; ainsi mon graphe apparaitra de cette faon : 4 27 27 20 3 30 5 15 19 7
13 6 10 8 18 50 40 20 9
Recherche Oprationnelle
Je continue alors jlimine les sommets qui sont suprieurs ou gale au sommet reprsentant la fin du chemin ; dans ce cas jlimine le sommet 6 (mme niveau que 7) ainsi que 8 et 9 (niveau suprieur celui de 7) ainsi :
4 27 27 20 3 30 5 15 19
13 20 10 40 18 50 7
A la fin, je supprime les arcs qui y sont attachs et qui ne servent plus rien :
20
27
27
30
19
La 1ere phase est acheve, je passe la phase 2 : le calcul de la fonction marque pour chaque sommet du chemin :
Recherche Oprationnelle Je dresse une liste de mes sommets qui restent : Sommet 3 / Sommet 4 / Sommet 5 / Sommet 7
Sommet 3 : Le sommet 3 est le dbut de mon chemin, donc si japplique la fonction marque jaurais comme rsultat : M(3) = 0 Sommet 4 : Le sommet 4 2 prcdents : le 3 et le 5. Je ne peux pas appliquer la rgle que si je calcule la fonction marque de 5, calculons la alors : M(5) = MAX [M(3) + V(3,5)] M(5) = [0 + 30] M(5) = 30 // (3,5) est un arc // v(3,5) est la valeur de larc (3,5)
Revenons la fonction marque du sommet 4 ; puisquil a deux prcdents, on doit choisir la valeur maximale : M(4) = MAX M(4) = MAX M(4) = MAX M(4) = 57 [ [ [ M(3) + V(3,4) 0 +20 20 ; ; ; M(3) + V(5,4) ]
30+27 ] 57 ]
/ puisque 57 > 20
Sommet 7 : Pour le dernier sommet 7 on applique la mme logique que celle de 5 : M(7) = MAX M(7) = MAX M(7) = MAX M(7) = 84 [ [ [ M(5) + V(5,7) 30+19 ; 49 ; ; M(4) + V(4,7) ]
57+27 ] 84 ]
/ puisque 84 > 49
Recherche Oprationnelle
Aprs avoir calcul la fonction marque pour chaque sommet, on passe la troisime phase : M(4) = 57 4
20 M(3) = 0 3
27
27 M(7)=84
30
19
M(5) = 30 On commence partir du sommet de la fin du chemin (en loccurrence le sommet 7) et on teste les combinaisons suivantes :
Numro de test 1 2
Application Numrique 84 27 = 57 84 19 = 30
VRAI ?
La combinaison numro 1 est vraie, alors je marque les sommets qui y participent ; alors jaurais : 74 Je teste par la suite la 2me combinaison, en commenant par le sommet 4 : Numro de test 1 2 Combinaison tester M (4) V (5, 4) = M (5) M(4) V (3, 4) = M (3) Application Numrique 57 27 = 30 57 20 = 0 VRAI ?
Alors je complte mon chemin: 74 5 Enfin, je commence du sommet 5 (qui a comme rsultat vrai daprs le tableau ci-dessus), et je teste la dernire combinaison : Numro de test 1 Combinaison tester M (5) V (3, 5) = M (3) Application Numrique 30 -30 = 0 VRAI ?
IMPORTANT : Le nombre de combinaisons tester par rapport un sommet dpend du nombre de ses prcdents.
Q : Dterminer le chemin de valeur MAX partant de 3 et arrivant 7 ? R : alors la rponse la question de lexercice est : le chemin de valeur maximal menant de 3 vers 7 est : 7 4 5 3
REMARQUE :
Pour calculer le chemin de valeur Minimale en utilisant la mthode des Marques, la seule chose qui change cest la phase 2 : on applique la rgle suivante : M(i) = MIN [ M(j) + V(j, i) ] si (j,i ) est un arc et V(j,i) est la valeur de larc (j,i) J est le prcdent de i
10 2 7 1 9 3 9 12 5 8 11
4 14
15 6 7 8 13 19 7 12 8 12 6 9
13
Rpondons cette question en appliquant la mthode Ford-Bellman : 1- Rgles de gestion : La mthode Ford-Bellman comme la mthode des Marques couvre 2 types de problmes : Les problmes de maximisation (le chemin de valeur maximale) et ceux de la minimisation (le chemin de valeur minimal).
On applique la mme phase 1 de la mthode des marques (voir la mthode des marques ci-dessus) Phase 2 : Initialisation des valeurs des sommets : Minimisation On associe chaque sommet du graphe une valeur initiale Val, o : SI Maximisation On associe chaque sommet du graphe une valeur initiale Val, o :
SI
ET La Val des autres sommets est gale : + Val(1) = Val(2) = Val(3) = Val (n) = +
ET La Val des autres sommets est gale : 0 Val(1) = Val(2) = Val(3) = Val (n) = 0
Phase 3 : La phase 3 consiste tester la justesse de plusieurs combinaisons : *Pour chaque sommet J, on vrifie si : Minimisation Val (j) Val (i) > V (i, j) Maximisation Val (j) Val (I) < V (i, j)
(i, j) : est un arc ; i est le prcdent de j. V (i, j): est la valeur de larc (i, j). Val (j) : est la valeur du sommet j.
(i, j) : est un arc ; i est le prcdent de j. V (i, j): est la valeur de larc (i, j). Val (j) : est la valeur du sommet j.
Et on boucle autant de fois que ncessaire tant que le test est vrai. Phase 4 : Durant cette phase, on applique la phase 3 de la mthode des marques.
10
Recherche Oprationnelle
On applique les rgles de gestion de la mthode Ford-Bellman sur le graphe, et on aura comme rsultat :
10 2 7 1 9 3 9 12 5 8 11
4 14
15 6 7 8 13 19 7 12 8 12 6 9
13
Phase 1 : On na pas de sommet infrieur ou gal au dbut du chemin, donc on ne supprime rien. Idem pour le sommet de fin de graphe, il na pas de sommet suprieur ou gal ; donc on continue avec la 2me phase directement. Phase 2 : Jutiliserai un tableau pour initialiser les valeurs des sommets de mon chemin 19 : Puisque je cherche minimiser (trouver le chemin de valeur minimal) Sommet 1 (dbut) 2 3 4 5 6 7 8 9 Val (sommet) 0 + + + + + + + +
11
+ 9
12
Pour le sommet 2 : Numro de test 1 Combinaison tester Val (2) Val (1) > V (1,2) Application Numrique + 0 > 7 VRAI ? X Rsultat Val (2) = Val (1) + V (1, 2) = 0+7 = 7
7
0 2 7 1 9 3 9 12 12 5 8 11 13 10 4
+ + 15 6 14 8 13 19 7 12 + 7 8 12 6 9 +
12
Le nombre de combinaisons tester par rapport un sommet dpend du nombre de ses prcdents.
7
0 2 7 1 9 3 9 12 12 5 8 11 10
17 28 4 14 8 13 7 12 35 15 6 7 8 12 6 9 34
13 19
15
26
Phase 4 : Pareille que la phase 3 de la mthode des marques, on commence partir du sommet reprsentant la fin du chemin, et on teste les combinaisons possibles (selon le nombre de prcdents) et puis on marque les arcs pour tracer le rsultat : On commence du sommet 9 (9 a 3 prcdents, a lors je dois effectuer 3 test) : Combinaison tester M (9) V (6, 9) = M (6) M (9) V (8, 9) = M (8) M (9) V (7, 9) = M (7) Application Numrique 34 6 = 28 34 12 = 22 34 12 = 22 VRAI ?
Numro de test 1 2 3
La combinaison numro 1 est vraie, alors je marque les sommets qui y participent ; alors jaurais : 9 6
13
Recherche Oprationnelle Je teste par la suite le sommet 6 (3 prcdents, alors 3 test effectuer) : Numro de test 1 2 3 Combinaison tester M (6) V (4, 6) = M (4) M (6) V (5, 6) = M (5) M (6) V (7, 6) = M (7) Application Numrique 28 6 = 22 28 13 = 15 28 8 = 20
VRAI ?
Alors je complte mon chemin: 965 A partir de 5 (2 prcdents alors 2 test effectuer) Numro de test 1 2 Combinaison tester M (5) V (2, 5) = M (2) M (5) V (3, 5) = M (3) Application Numrique 15 8 = 7 15 12 = 3 VRAI ?
Alors : 9652 A partir de 2 : Numro de test 1 Combinaison tester M (2) V (1, 2) = M (1) Application Numrique 7 7=0 VRAI ?
Q : Trouver le chemin de valeur minimal entre 1 et 9 ? La rponse alors est : Le chemin de valeur min entre 1 et 9 est le suivant : 96521
7
28 0 2 7 1 8 9 13 5 Respectez Les droits Dauteur 15 14 6 6 34
Elle gnralement utilis lorsquon est face un graphe contenant des circuits, et la problmatique repose sur la recherche dun chemin de valeur minimale. Elle sexcute en 2 tapes :
Etape1 : INITIALISATION 1.1 cration des sous ensemble : On spare tous les sommets composant le graphe en 2 sous ensembles : S et
S={i}
= { j, k, l, x }
1.2 calcul de la fonction pour chaque sommet : Aprs avoir spar mes sommets en 2 sous ensembles, je commence calculer une valeur pour chaque sommet ; pour ce, on appliquer la rgle dcrite ci-dessous :
0 = + V (I, j)
Si Si Si
i =1 est le dbut du chemin (1, i ) nest pas un Arc (1, i ) est un Arc
Etape 2 : Itration : Lalgorithme appliquer par la suite est simple : Tant Que
<>
Faire
Choisir i dans
tel que
est minimum
Ajouter i S et lenlever de
= min [ ; + (, ) ] //
6 2 5
9 8 5 13 4 12 9
10
Figure Graphe avec circuit ex : 1 4 3 1) On essayera de trouver le chemin de valeur minimale qui connecte tous les sommets du graphe : Etape 1 : initialisation On spare les sommets en 2 sous ensembles : Ensemble Sommet 1 2, 3, 4, 5
explication 1 est le dbut du chemin (1,2) est un Arc, alors 2 = (1, 2) (1, 3) nest pas un Arc, alors 3 = + (1,4) est un arc, alors 4 = (1, 4) (1,5) nest pas un arc, alors 5 = +
16
Recherche Oprationnelle Etape 2 : Itration On applique la lettre les instructions de lalgorithme dcrit auparavant : Itration 0 :
S = {1}
= {2, 3, 4, 5}
S = {1,2}
= {3,4,5}
Les suivants de 2 dans , sont 3 et 4 ; alors pour chacun de ses sommets je recalcule leur valeur (i) : Sommet () 3 Min ( 3 ; 2 + (2, 3) ) 4 Min ( 4 ; 2 + (2, 4) ) On a alors : 6, 16 , 8 , + Itration 2 : On choisit i=4 puisque 4 min = 8 On lajoute S et on lenlve de Application numrique Min (+ ; 6 + 10) Min ( 8 ; 6 + 9) Rsultat 16 8
S = {1, 2,4}
= {3,5}
Les suivants de 4 dans , sont 3 et 5 ; alors pour chacun de ses sommets je recalcule leur valeur (i) : Sommet () 3 Min ( 3 ; 4 + (4, 3) ) 5 Min ( 5 ; 4 + (4, 5) ) On a alors : 16 , 8 , 21 Itration 3 : On choisit i=3 puisque 3 min = 16 On lajoute S et on lenlve de Application numrique Min (16 ; 6 + 12) Min (+ ; 6 + 13) Rsultat 16 21
S = {1, 2, 4, 3}
= {5}
Les suivants de 3 dans nexistent pas ; alors on ne fait pas de calcule de fonctions () On ajoute le dernier lment de
S = {1, 2, 4, 3,5}
tant donn que = {} alors on arrte de boucler. Dans le Chapitre suivant : Les Flots Dans les graphes Respectez Les droits Dauteur 17