Pour le chemin le plus court pour tous les couples

Slides:



Advertisements
Présentations similaires
Introduction à la Théorie des graphes
Advertisements

La recherche de chemin optimal
Théorie des graphes.
Présentation générale Marc Gengler

Introduction à l’Algorithmique
Sensibilisation à l’Algorithmique et structure de données
Introduction à la Théorie des graphes
Cours d’Algorithmique
Cours de graphes Les plus courts chemins,
Mise à Niveau en Recherche Opérationnelle
Bloc1 : Théorie des graphes et problèmes d’ordonnancement
Bloc1 : Théorie des graphes et problèmes d’ordonnancement
A.Faÿ 1 Recherche opérationnelle Résumé de cours.
Plus rapide chemin bicritère : un problème d’aménagement du territoire
R.K.Ahuja & James B.Orlin (1988)
Traitement Co-Séquentiel: Appariment et Fusion de Plusieurs Listes
Utilisation des tableaux
Recherche Opérationnelle
Plus courts chemins On présente dans ce chapitre un problème typique de cheminement dans les graphes : la recherche d'un plus court chemin entre deux sommets.
Prise de décision dans les shooters TER 08/09 Sandrine Buendia
Algorithme de Dijkstra
Heuristiques A. Introduction B. Recherche d ’une branche
Programmation linéaire
Travail Pratique – Conception et analyse d’algorithmes
Optimisation et Complexité
Arbre Rouge Noir.
Théorie des graphes Un peu de vocabulaire.
Pr ZEGOUR Djamel Eddine
Résolution d’équation du second degré
Recherche de chemins de coût minimal avec l’algorithme A
Algorithme de Bellman-Ford
IFT-2000: Structures de données Les graphes Dominic Genest, 2009.
Structures de données IFT-2000
Structures de données IFT-2000
Structures de données IFT-2000
Structures de données IFT-2000
Structures de données IFT-10541
Structures de données IFT-2000
Quatrième étape : cheminer dans les graphes. Une chaîne… Quand elle nutilise pas plusieurs fois la même arête, la chaîne est dite simple. Au sens du programme,
IFT Complexité et NP-complétude
Programmation linéaire en nombres entiers Algorithme de la subdivision successive («Branch and Bound Algorithm»)

Optimisation dans les réseaux
Recherche Opérationnelle
MODULE 6 Optimisation de GRAPHES
Cours de graphes Marc Gengler Alexandra Bac Sébastien Fournier
21 février 2006Cours de graphes 2 - Intranet1 Cours de graphes Les plus courts chemins, les chemins les plus légers : à laide de la vague, à laide de la.
Gestion de Fichiers GF-10: Traitement Co-Sequentiel: Appariment et Fusion de Plusieures Listes (Base sur les sections de Folk, Zoellick & Riccardi,
Programmation dynamique
Structures de données IFT-2000 Abder Alikacem Arbres de recouvrement minimum Département dinformatique et de génie logiciel Édition Septembre 2009 JFK.

Heuristiques C. Recherche de la meilleure branche . Branch And Bound
Graphes 1. Introduction 2. Définition 3. Représentation mémoire
Arbres et graphes.
D.E ZEGOUR Ecole Supérieure d’Informatique
GRAPHES EN INFORMATIQUE. INTRODUCTION Les objets mathématiques appelés graphes apparaissent dans de nombreux domaines comme les mathématiques, la biologie,
On cherche le plus court chemin de E à S sur le graphe suivant :
Tutorat 7 - Introduction au Routage et OSPF
Licence Informatique Algorithmique des graphes
LE FLOT MAXIMAL et LA COUPE MINIMALE
Ceci est un graphe valué Des arcs : 1-2, 1-4, 7-10,…..
Algorithme de DIJKSTRA
Structures de données avancées : Arbres B+ avec expansion partielle D. E ZEGOUR Institut National d ’Informatique.
Algorithmique Tableaux de données
Sixième étape : pondérer les graphes. Longueur d’une chaîne d’un graphe quelconque = nombre des arêtes qui la constituent. Distance entre deux sommets.
CSI2510 Structures de données et algorithmes Plus court chemin
CSI2510 Structures de données et algorithmes Arbres couvrants minimaux
Projet Théorie des graphes
Chapitre 3 Problèmes de Cheminement
Transcription de la présentation:

Pour le chemin le plus court pour tous les couples Algorithme de Johnson Pour le chemin le plus court pour tous les couples

Déroulement Introduction Le problème algorithmique L’état de l’art Les grands principes utilisés Détails d’implémentation et structures de données Analyse de complexité Conclusion

Introduction 2 algorithmes de Johnson Bref historique Le plus court chemin Optimiser l’ordonnancement des processus Bref historique Donald Bruce Johnson Professeur à l’Université de Cornell à Ithaca à New York Publié l’algorithme en 1977

Le problème algorithmique Le plus court chemin entre deux points Application à tous les couples Exemples Plus de nœuds = plus complexe

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

Les grands principes utilisés Afin de bien illustrer les grands principes de l’algorithme, nous utiliserons le graphe orienté pondéré suivant :

Les grands principes utilisés (suite) Première étape : Ajout d’un 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. C’est donc le même coût pour passer du nœud « X » à n’importe quel autre nœud du graphe.

Les grands principes utilisés (suite)

Les grands principes utilisés (suite) 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) à l’intérieur du graphe. Circuit : Chemin partant d’un sommet, effectue la visite d’autres 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 l’algorithme de Johnson s’arrête puisque celui-ci ne s’applique par sur les graphes possédant des circuits.

Les grands principes utilisés (suite) Si l’algorithme 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.

Les grands principes utilisés (suite) Troisième étape : Ajuster la valeur des arcs Appelons p(y,z), l’arc 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.

Les 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

Les grands principes utilisés (suite) Quatrième et dernière étape : L’algorithme 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 l’utiliser 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 l’arc qui a une valeur minimale Ensuite, développer les nœuds atteignables à partir de cet endroit. Puis, trouver l’arc avec une valeur minimale à partir des arcs de départ et ceux développés.

Les grands principes utilisés (suite) Répéter l’opération jusqu’à ce que le nœud d’arrivée soit atteint. Faire cette série d’opérations pour l’ensemble des nœuds du graphe. Nous avons donc le chemin le plus court pour chaque couple !

Les grands principes utilisés (suite)

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³

Détails d’implémentation et structures de données Présentation du graphe à résoudre 26 liens 16 noeuds

Détails d’implémentation et structures de données Présentation du prototype Succès!

Détails d’implémentation et structures de données Où est le problème chez Floyd-Warshall?

Analyse de la complexité Ajout d’un 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) Pour Dijkstra, dire que c’est la structure contenant les nœuds qui ont été évalués qui influence la complexité.

Conclusion Efficace: Questions Floyd-Warshall = Θ(N3) Johnson = O(N² log N + N*A) Questions