La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

A LGORITHME DE J OHNSON Pour le chemin le plus court pour tous les couples.

Présentations similaires


Présentation au sujet: "A LGORITHME DE J OHNSON Pour le chemin le plus court pour tous les couples."— Transcription de la présentation:

1 A LGORITHME DE J OHNSON Pour le chemin le plus court pour tous les couples

2 D ÉROULEMENT Introduction Le problème algorithmique Létat de lart Les grands principes utilisés Détails dimplémentation et structures de données Analyse de complexité Conclusion

3 I NTRODUCTION 2 algorithmes de Johnson Le plus court chemin Optimiser lordonnancement des processus Bref historique Donald Bruce Johnson Professeur à lUniversité de Cornell à Ithaca à New York Publié lalgorithme en 1977

4 L E PROBLÈME ALGORITHMIQUE Le plus court chemin entre deux points Application à tous les couples Exemples Plus de nœuds = plus complexe

5 L ÉTAT DE L ART Beaucoup de chercheurs impliqués Deux catégories Dijkstra et Bellman-Ford OSPF A* Fonction heuristique Floyd-Warshall Programmation dynamique Matrice Pas de cycle négatif

6 L ES GRANDS PRINCIPES UTILISÉS Afin de bien illustrer les grands principes de lalgorithme, nous utiliserons le graphe orienté pondéré suivant :

7 L ES GRANDS PRINCIPES UTILISÉS ( SUITE ) Première étape : Ajout dun nœud Nouveau nœud appelé « X » Le nouveau nœud est connecté à tous les autres nœuds du graphe grâce à des arcs de poids zéro. Cest donc le même coût pour passer du nœud « X » à nimporte quel autre nœud du graphe.

8 L ES GRANDS PRINCIPES UTILISÉS ( SUITE )

9 Deuxième étape : Algorithme Bellman-Ford Capacité de trouver le meilleur chemin dans un graphe avec des poids négatifs. Ici, il est utilisé pour détecter la présence ou non de circuit(s) absorbant(s) à lintérieur du graphe. Circuit : Chemin partant dun sommet, effectue la visite dautres sommets et revient se terminer au sommet de départ. Circuit absorbant : Circuit qui possède un poids total négatif. Si un circuit absorbant est détecté, alors lalgorithme de Johnson sarrête puisque celui-ci ne sapplique par sur les graphes possédant des circuits.

10 L ES GRANDS PRINCIPES UTILISÉS ( SUITE ) Si lalgorithme Bellman-Ford ne détecte pas de circuit(s), il calcule le poids minimum nécessaire pour passer du nouveau nœud « X » jusquà chacun des nœuds du graphe.

11 L ES GRANDS PRINCIPES UTILISÉS ( SUITE ) Troisième étape : Ajuster la valeur des arcs Appelons p(y,z), larc passant du nœud y au nœud z. Modifions la valeur de p(y,z) par le résultat de p(y,z) + [h(y) – h(z)]. Après avoir effectué ce calcul pour tous les arcs, nous aurons un graphe contenant des arcs de poids nul ou positif.

12 L ES GRANDS PRINCIPES UTILISÉS ( SUITE ) Exemple de calcul : p(y,z) = p(y,z) + [h(y) – h(z)] p(B,A) = p(B,A) + [h(B) – h(A)] p(B,A) = 2 + [-1 – 0] p(B,A) = 1 Exemple de calcul : p(y,z) = p(y,z) + [h(y) – h(z)] p(E,D) = p(E,D) + [h(E) – h(D)] p(E,D) = -1 + [-3 – -5] p(E,D) = 1

13 L ES GRANDS PRINCIPES UTILISÉS ( SUITE ) Quatrième et dernière étape : Lalgorithme de Dijkstra Permets de trouver le chemin le plus court entre deux nœuds dans un graphe ou le poids des arcs est nul ou positif. (on ne pouvait pas lutiliser au départ puisque notre graphe original contenait des arcs au poids négatif) Il suffit de partir du nœud de départ, et de choisir larc qui a une valeur minimale Ensuite, développer les nœuds atteignables à partir de cet endroit. Puis, trouver larc avec une valeur minimale à partir des arcs de départ et ceux développés.

14 L ES GRANDS PRINCIPES UTILISÉS ( SUITE ) Répéter lopération jusquà ce que le nœud darrivée soit atteint. Faire cette série dopérations pour lensemble des nœuds du graphe. Nous avons donc le chemin le plus court pour chaque couple !

15 L ES GRANDS PRINCIPES UTILISÉS ( SUITE )

16 D ÉTAILS D IMPLÉMENTATION ET STRUCTURES DE DONNÉES Expliquer la rivalité: Johnson VS Floyd-Warshall Johnson Nœud extérieur Bellman-Ford Dijkstra Floyd-Warshall Initialiser avec une grande valeur, boucle n² Calcul des chemins dans la boucle n³

17 D ÉTAILS D IMPLÉMENTATION ET STRUCTURES DE DONNÉES Présentation du graphe à résoudre

18 D ÉTAILS D IMPLÉMENTATION ET STRUCTURES DE DONNÉES Présentation du prototype Succès!

19 D ÉTAILS D IMPLÉMENTATION ET STRUCTURES DE DONNÉES Où est le problème chez Floyd-Warshall?

20 A NALYSE DE LA COMPLEXITÉ Ajout dun nœud et des arcs : Θ(N) Bellman-Ford : O( N*A) Ajustement des poids des arcs : Θ(A) Dijkstra Tableau simple ou liste chaînée : O(N² + A) Arbre binaire : O( (N+A) log N) Monceau : O(N log N + A) Au final : O(N² log N + N*A) avec le monceau (car pour tous les couples)

21 C ONCLUSION Efficace: Floyd-Warshall = Θ(N 3 ) Johnson = O(N² log N + N*A) Questions


Télécharger ppt "A LGORITHME DE J OHNSON Pour le chemin le plus court pour tous les couples."

Présentations similaires


Annonces Google