Recherche Opérationnelle

EMSI CENTRE – 4IIR

La recherche de chemin de valeur maximale/minimale
1- Position du problème :
On a un graphe (G) value (où chaque arc possède une valeur). Le problème réside dans la détermination d’un ou plusieurs chemins de valeur : Minimal ou maximal entre 2 sommet Xi et Xj. Récapitulons : On a un graphe (G) valué. On choisit 2 sommets Xi et Xj. On doit trouver le chemin de valeurs maximale ou minimale. (la somme des valeurs de ses arcs doit être Max ou Min)  Problème de maximisation : - Si on doit trouver un chemin entre 2 sommets Xi et Xj de valeur maximale, le graphe (G doit être un Graphe sans circuit.  Problème de Minimisation : - Si on doit trouver un chemin entre 2 sommets Xi et Xj de valeur minimale, le graphe (G) pourra avoir un circuit -

2- Méthode de résolution :
Pour résoudre un tel problème, on a le choix entre 3 méthodes : La méthode des MARQUES La méthode FORD-BELLMAN La méthode DIJIKSTRA

Champs d’application des méthodes : Le cas d’un Graphe sans circuit (GSC) : La méthode des Marques La méthode Ford-Bellman

Le cas d’un graphe avec circuit (GAC): La méthode Dijikstra

Respectez Les droits D’auteur

1

Respectez Les droits D’auteur 2 .2 Zoom sur la méthode des Marques : Exemple : EMSI CENTRE – 4IIR 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 Figure 1 – schéma d’un graphe (G) valué et ordonné par niveau Exemple de question : Déterminer le chemin de valeur MAX partant de 3 et arrivant à 7.Recherche Opérationnelle 1.

1 On supprime les niveaux inférieurs ou égale au sommet représentant le début du chemin. Phase 2 : 2. et on note M(i) : M(i) = 0 si i est le sommet représentant le début du chemin OU M(i) = Max [ M(j) + V(j. 1. 1. - Appliquons maintenant les instructions de la méthode des marques pour résoudre la question : Q : Déterminer le chemin de valeur MAX partant de 3 et arrivant à 7 ? Respectez Les droits D’auteur 3 .1 Pour chaque sommet i. i) ] si (j. on soustrait cette valeur à la valeur de l’arc qui la précède. et on la compare avec la fonction marque du sommet précédent : si le calcul est juste on marque cette liaison pour tracer le chemin. on calcule une valeur qu’on appellera ‘fonction marque’.i ) est un arc et V(j.i) J est le précédent de i Phase 3 : Après avoir attribué à chaque sommet composant le chemin la valeur de sa ‘fonction marque’.Recherche Opérationnelle EMSI CENTRE – 4IIR Solution : Règle de gestion de la méthode des Marques : Phase 1 : 1.i) est la valeur de l’arc (j.2 On supprime les niveaux supérieur ou égale au sommet représentant la fin du chemin.3 On élimine les arcs des sommets qu’on vient de supprimer.

Recherche Opérationnelle 37 2 15 1 25 3 17 20 30 5 27 15 19 7 18 50 27 4 EMSI CENTRE – 4IIR 13 6 10 8 40 20 9 J’élimine les sommets du même niveau ou inférieur au sommet représentant le début du chemin . ainsi mon graphe apparaitra de cette façon : 4 27 27 20 3 30 5 15 19 7 13 6 10 8 18 50 40 20 9 Respectez Les droits D’auteur 4 . alors j’élimine le sommet 1 (inférieur à 3) et 2 (du même niveau que 3) Ainsi j’aurais 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. j’élimine les arcs qui appartiennent aux sommets que j’ai supprimés .

je passe à la phase 2 : le calcul de la fonction marque pour chaque sommet du chemin : Respectez Les droits D’auteur 5 .Recherche Opérationnelle EMSI CENTRE – 4IIR Je continue alors j’élimine les sommets qui sont supérieurs ou égale au sommet représentant la fin du chemin . je supprime les arcs qui y sont attachés et qui ne servent plus à rien : 4 20 27 27 3 30 5 19 7 La 1ere phase est achevée. dans ce cas j’élimine le sommet 6 (même niveau que 7) ainsi que 8 et 9 (niveau supérieur à celui de 7) ainsi : 4 27 27 20 3 30 5 15 19 13 20 10 40 18 50 7 A la fin.

donc si j’applique la fonction marque j’aurais comme résultat : M(3) = 0  Sommet 4 : Le sommet 4 à 2 précédents : le 3 et le 5. M(4) + V(4. 49 . on doit choisir la valeur maximale : M(4) = MAX M(4) = MAX M(4) = MAX M(4) = 57 [ [ [ M(3) + V(3.5) est la valeur de l’arc (3.5) Revenons à la fonction marque du sommet 4 . . .Recherche Opérationnelle Je dresse une liste de mes sommets qui restent :  Sommet 3 / Sommet 4 / Sommet 5 / Sommet 7 EMSI CENTRE – 4IIR  Sommet 3 : Le sommet 3 est le début de mon chemin.7) ] 57+27 ] 84 ] / puisque 84 > 49 Respectez Les droits D’auteur 6 .4) 0 +20 20 . Je ne peux pas appliquer la règle que si je calcule la ‘fonction marque’ de 5.7) 30+19 . calculons la alors : M(5) = MAX [M(3) + V(3.5) est un arc // v(3.4) ] 30+27 ] 57 ] / puisque 57 > 20  Sommet 7 : Pour le dernier sommet 7 on applique la même logique que celle de 5 : M(7) = MAX M(7) = MAX M(7) = MAX M(7) = 84 [ [ [ M(5) + V(5. M(3) + V(5. puisqu’il a deux précédents. .5)] M(5) = [0 + 30] M(5) = 30 // (3.

je commence du sommet 5 (qui a comme résultat vrai d’après le tableau ci-dessus). alors j’aurais : 74 Je teste par la suite la 2ème combinaison.Recherche Opérationnelle EMSI CENTRE – 4IIR Après avoir calculé la ‘fonction marque ’ pour chaque sommet. et je teste la dernière combinaison : Numéro de test 1 Combinaison à tester M (5) – V (3. 7) = M (4) M(7) – V (5. alors je marque les sommets qui y participent . on passe à la troisième phase : M(4) = 57 4 20 M(3) = 0 3 27 27 M(7)=84 30 5 19 7 M(5) = 30 On commence à partir du sommet de la fin du chemin (en l’occurrence le sommet 7) et on teste les combinaisons suivantes : Numéro de test 1 2 Combinaison à tester M (7) – V (4. en commençant par le sommet 4 : Numéro de test 1 2 Combinaison à tester M (4) – V (5. 4) = M (3) Application Numérique 57 – 27 = 30 57 – 20 = 0 VRAI ? X Alors je complète mon chemin: 74 5 Enfin. 4) = M (5) M(4) – V (3. 5) = M (3) Application Numérique 30 -30 = 0 VRAI ? X Respectez Les droits D’auteur 7 . 7) = M (5) Application Numérique 84 – 27 = 57 84 – 19 = 30 VRAI ? X La combinaison numéro 1 est vraie.

i) est la valeur de l’arc (j. Q : Déterminer le chemin de valeur MAX partant de 3 et arrivant à 7 ? R : alors la réponse à la question de l’exercice 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 méthode des Marques.i) J est le précédent de i Respectez Les droits D’auteur 8 . i) ] si (j.Recherche Opérationnelle A la fin je note mon chemin qui est : 7453 EMSI CENTRE – 4IIR IMPORTANT : Le nombre de combinaisons à tester par rapport à un sommet dépend du nombre de ses précédents.i ) est un arc et V(j. la seule chose qui change c’est la phase 2 : on applique la règle suivante : M(i) = MIN [ M(j) + V(j.

Recherche Opérationnelle 1.Règles de gestion : La méthode Ford-Bellman comme la méthode des Marques couvre 2 types de problèmes : Les problèmes de maximisation (le chemin de valeur maximale) et ceux de la minimisation (le chemin de valeur minimal).3 Zoom sur la méthode FORD-BELLMAN : Exemple : EMSI CENTRE – 4IIR 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 Q : Trouver le chemin de valeur minimal entre 1 et 9 ? Répondons à cette question en appliquant la méthode Ford-Bellman : 1. Respectez Les droits D’auteur 9 .

Val (j) : est la valeur du sommet j. i est le précédent de j. on applique la phase 3 de la méthode des marques. où : - - SI i = début du chemin Alors Val (i) = +∞ i = début du chemin Alors Val (i) = 0 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. j). j) Maximisation Val (j) – Val (I) < V (i. j): est la valeur de l’arc (i. on vérifie si : Minimisation Val (j) – Val (i) > V (i. j) OK Val (j) = Val (j) NOK (i. j) (i) Val (j) = NOK(j) Val SI Val (j) = Val (i) + V (i. V (i. où : SI Maximisation On associe à chaque sommet du graphe une valeur initiale Val. j): est la valeur de l’arc (i. j) : est un arc .Recherche Opérationnelle Phase 1 : EMSI CENTRE – 4IIR On applique la même phase 1 de la méthode des marques (voir la méthode des marques ci-dessus) Phase 2 : Initialisation des valeurs des sommets : Minimisation On associe à chaque sommet du graphe une valeur initiale Val. Val (j) : est la valeur du sommet j. j) SI Val (j) = ValOK + V (i. Respectez Les droits D’auteur 10 . (i. j). Et on boucle autant de fois que nécessaire tant que le test est vrai. Phase 4 : Durant cette phase. i est le précédent de j. V (i. j) : est un arc .

donc on continue avec la 2ème phase directement.Recherche Opérationnelle EMSI CENTRE – 4IIR On applique les règles de gestion de la méthode Ford-Bellman sur le graphe. il n’a pas de sommet supérieur ou égal . et on aura comme résultat : 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 n’a pas de sommet inférieur ou égal au début du chemin. passons à la phase 3 : Respectez Les droits D’auteur 11 . Phase 2 : J’utiliserai un tableau pour initialiser les valeurs des sommets de mon chemin 19 : Puisque je cherche à minimiser (trouver le chemin de valeur minimal) Sommet 1 (début) 2 3 4 5 6 7 8 9 Val (sommet) 0 +∞ +∞ +∞ +∞ +∞ +∞ +∞ +∞ La phase 2 étant terminée. Idem pour le sommet de fin de graphe. donc on ne supprime rien.

2) Application Numérique +∞ − 0 > 7 VRAI ? X Résultat 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 +∞ +∞ +∞ +∞ Figure : La valeur du sommet 2 a changé après l’application de la méthode FB Respectez Les droits D’auteur 12 .Recherche Opérationnelle Phase 3 : Appliquons les instructions de cette phase : +∞ 0 2 7 1 9 3 9 12 5 8 11 13 19 7 8 13 12 14 10 4 +∞ +∞ 15 6 7 8 6 EMSI CENTRE – 4IIR +∞ 9 12 +∞ +∞ +∞ +∞ Pour le sommet 2 : Numéro de test 1 Combinaison à tester Val (2) – Val (1) > V (1.

on commence à partir du sommet représentant la fin du chemin. 9) = M (8) M (9) – V (7. et on teste les combinaisons possibles (selon le nombre de précédents) et puis on marque les arcs pour tracer le résultat : On commence du sommet 9 (9 a 3 précédents.Recherche Opérationnelle IMPORTANT : EMSI CENTRE – 4IIR Le nombre de combinaisons à tester par rapport à un sommet dépend du nombre de ses précédents. Après avoir terminé. a lors je dois effectuer 3 test) : Combinaison à tester M (9) – V (6. alors j’aurais : 9 6 Respectez Les droits D’auteur 13 . on se retrouve avec les valeurs ci-dessous : 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 9 15 26 Phase 4 : Pareille que la phase 3 de la méthode des marques. 9) = M (6) M (9) – V (8. 9) = M (7) Application Numérique 34 – 6 = 28 34 – 12 = 22 34 – 12 = 22 VRAI ? Numéro de test 1 2 3 X La combinaison numéro 1 est vraie. alors je marque les sommets qui y participent .

6) = M (4) M (6) – V (5. alors 3 test à effectuer) : Numéro de test 1 2 3 Combinaison à tester M (6) – V (4. 2) = M (1) Application Numérique 7 –7=0 VRAI ? X A la fin je note mon chemin qui est : 96521 Q : Trouver le chemin de valeur minimal entre 1 et 9 ? La réponse alors est : Le chemin de valeur min entre 1 et 9 est le suivant : 96521 7 28 0 2 7 1 8 9 13 5 Respectez Les droits D’auteur 15 14 6 6 34 . 5) = M (3) Application Numérique 15 – 8 = 7 15 – 12 = 3 VRAI ? X Alors : 9652 A partir de 2 : Numéro de test 1 Combinaison à tester M (2) – V (1.Recherche Opérationnelle Je teste par la suite le sommet 6 (3 précédents. 5) = M (2) M (5) – V (3. 6) = M (7) Application Numérique 28 – 6 = 22 28 – 13 = 15 28 – 8 = 20 EMSI CENTRE – 4IIR VRAI ? X Alors je complète mon chemin: 965 A partir de 5 (2 précédents alors 2 test à effectuer) Numéro de test 1 2 Combinaison à tester M (5) – V (2. 6) = M (5) M (6) – V (7.

4 Zoom sur la méthode DIJIKSTRA : EMSI CENTRE – 4IIR Elle généralement utilisé lorsqu’on est face à un graphe contenant des circuits. Elle s’exécute en 2 étapes : Etape1 : INITIALISATION 1. k. pour ce.1 – création des sous ensemble : On sépare tous les sommets composant le graphe en 2 sous ensembles : S et Š S={i} // i est le sommet représentant le début du chemin Š = { j. i ) est un Arc Etape 2 : Itération : L’algorithme à appliquer par la suite est simple : Tant Que Š    <> ∅ Faire // tant que n’est pas vide Choisir i dans Š tel que 𝜋 𝑖 est minimum Ajouter i à S et l’enlever de Š Pour chaque successeur j de i dans Š faire  𝜋 𝑗 = min [𝜋 𝑗 . j) Si Si Si i =1 est le début du chemin (1. je commence à calculer une valeur pour chaque sommet . on appliquer la règle décrite ci-dessous : 0 𝜋 𝑖 = +∞ V (I. …… x } // j. et la problématique repose sur la recherche d’un chemin de valeur minimale. l. i ) n’est pas un Arc (1. 𝑗) ] // Fin Respectez Les droits D’auteur 15 . 𝜋 𝑖 + 𝑉(𝑖.Recherche Opérationnelle 1. k. x représentent les autres sommets composant le chemin. 1. l ….2 – calcul de la fonction 𝜋 𝑖 pour chaque sommet : Après avoir séparé mes sommets en 2 sous ensembles.

Recherche Opérationnelle Application : EMSI CENTRE – 4IIR 1 6 2 5 9 8 5 13 4 12 9 10 4 3 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 sépare les sommets en 2 sous ensembles : Ensemble Sommet 1 2. 3. 4) (1. alors 𝜋 2 = 𝑉(1. 2) (1.4) est un arc.2) est un Arc. 3) n’est pas un Arc. alors 𝜋 4 = 𝑉(1. 5 S Š Le calcul de la fonction 𝜋 𝑖 : Sommet 1 2 3 4 5 𝝅 𝒊 0 6 +∞ 8 +∞ explication 1 est le début du chemin (1. Respectez Les droits D’auteur 16 . alors 𝜋 5 = +∞ Passons à présent à l’étape 2.5) n’est pas un arc. alors 𝜋 3 = +∞ (1. 4.

6 + 13) Résultat 16 21 : S = {1. 6 + 12) Min (+∞ .5}  Étant donné que Š= {∅} alors on arrête de boucler. 3. 2. 4. 2. 8 . alors on ne fait pas de calcule de fonctions 𝜋(𝑖)  On ajoute le dernier élément de Š à S = {1. +∞ . 8 . 4.4} Š= {3. alors pour chacun de ses sommets je recalcule leur valeur π(i) : Sommet 𝒇𝒐𝒏𝒄𝒕𝒊𝒐𝒏 𝝅(𝒊) 3 Min ( 𝜋 3 .5}  Les suivants de 4 dans Š. 6 . 4) ) On a alors : 𝜋 6. 21 Itération 3 :  On choisit i=3 puisque 𝜋 3 𝑒𝑠𝑡 min = 16  On l’ajoute à S et on l’enlève de Š Application numérique Min (16 .5}  Les suivants de 2 dans Š. 3) ) 5 Min ( 𝜋 5 . 6 + 10) Min ( 8 . sont 3 et 4 . 𝜋 4 + 𝑉(4. +∞ Itération 2 :  On choisit i=4 puisque 𝜋 4 𝑒𝑠𝑡 min = 8  On l’ajoute à S et on l’enlève de Š Application numérique Min (+∞ . 16 . 3} Š= {5}  Les suivants de 3 dans Š n’existent pas . 2. 5} 𝜋(0 . 6 + 9) Résultat 16 8 : S = {1.2} Š= {3. Dans le Chapitre suivant : Les Flots Dans les graphes Respectez Les droits D’auteur 17 . sont 3 et 5 . 5) ) On a alors : 𝜋 16 . alors pour chacun de ses sommets je recalcule leur valeur π(i) : Sommet 𝒇𝒐𝒏𝒄𝒕𝒊𝒐𝒏 𝝅(𝒊) 3 Min ( 𝜋 3 . 3) ) 4 Min ( 𝜋 4 . 4. 𝜋 2 + 𝑉(2. 𝜋 2 + 𝑉(2. +∞) Itération 1 :  On choisit i=2 puisque 𝜋 2 𝑒𝑠𝑡 min = 6  On l’ajoute à S et on l’enlève de Š : S = {1.4.Recherche Opérationnelle Etape 2 : Itération On applique à la lettre les instructions de l’algorithme décrit auparavant : Itération 0 : EMSI CENTRE – 4IIR S = {1} Š = {2. 𝜋 4 + 𝑉(4. 8 . 3.