background preloader

Chemin

Facebook Twitter

Algorithme A* Un article de Wikipédia, l'encyclopédie libre.

Algorithme A*

Si on faisait une recherche en largeur comme le réalise l'algorithme de Dijkstra, on rechercherait tous les points dans un rayon circulaire fixe, augmentant graduellement ce cercle pour rechercher des intersections de plus en plus loin de notre point de départ. Ceci pourrait être une stratégie efficace si on ne savait pas où se trouve notre destination, comme la police recherchant un criminel en planque. Cependant, c'est une perte de temps si on connaît plus d'informations sur notre destination. Une meilleure stratégie est d'explorer à chaque intersection la première directement qui va vers le nord, car le chemin le plus court est la ligne droite. Tant que la route le permet, on continue à avancer en prenant les chemins se rapprochant le plus de l'intersection B. Un labyrinthe simple, où l'algorithme A* ne sera pas très efficace Illustration d'une recherche A* pour trouver le chemin le plus court entre 2 noeuds.

Algorithme de Dijkstra. Un article de Wikipédia, l'encyclopédie libre.

Algorithme de Dijkstra

Une exécution de l'algorithme En théorie des graphes, l'algorithme de Dijkstra (prononcer [dɛj.kstra]) sert à résoudre le problème du plus court chemin. Il permet, par exemple, de déterminer le plus court chemin pour se rendre d'une ville à une autre connaissant le réseau routier d'une région. Il s'applique à un graphe connexe dont le poids lié aux arêtes est un réel positif. L'algorithme porte le nom de son inventeur, l'informaticien néerlandais Edsger Dijkstra, et a été publié en 1959[1]. Cet algorithme est de complexité polynomiale. Principe sur un exemple[modifier | modifier le code] Il s'agit de construire progressivement, à partir des données initiales, un sous-graphe dans lequel sont classés les différents sommets par ordre croissant de leur distance minimale au sommet de départ.

Au départ, on considère que les distances de chaque sommet au sommet de départ sont infinies. Présentation sous forme de tableau[modifier | modifier le code] où : Algorithme de Floyd-Warshall. Un article de Wikipédia, l'encyclopédie libre.

Algorithme de Floyd-Warshall

En informatique, l'algorithme de Floyd-Warshall (parfois appelé algorithme de Roy-Floyd car décrit par Bernard Roy en 1959) est un algorithme pour déterminer tous les plus courts chemins dans un graphe orienté et valué, en temps cubique. Algorithme[modifier | modifier le code] L'algorithme de Floyd-Warshall prend en entrée un graphe orienté et valué (V, E), sous la forme d'une matrice d'adjacence donnant le poids d'un arc lorsqu'il existe et la valeur ∞ sinon. Le poids d'un chemin entre deux sommets est la somme des poids sur les arcs constituant ce chemin. Les arcs du graphe peuvent avoir des poids négatifs, mais le graphe ne doit pas posséder de cycle de poids strictement négatif.

Soit V = {1, 2, 3, 4, …, n} l'ensemble des sommets de G et soient i et j deux sommets de V. Notons la matrice telle que est le poids minimal d'un chemin de i à j n'empruntant que des sommets intermédiaires dans {1, 2, 3, …, k}, s'il en existe un, et ∞ sinon. et . For. Algorithme de Ford-Bellman. Un article de Wikipédia, l'encyclopédie libre.

Algorithme de Ford-Bellman

La complexité de l'algorithme est, dans le pire des cas, en pour un graphe avec n sommets et m arcs (ce qui correspond à une complexité en pour un graphe simple dense). Utilisation[modifier | modifier le code] Dans les réseaux informatiques, l'algorithme de Bellman-Ford est utilisé pour déterminer le cheminement des messages, à travers le protocole de routage RIP[1]. Pseudo-code[modifier | modifier le code] Notes et références[modifier | modifier le code] Bibliographie[modifier | modifier le code] Michel Gondran et Michel Minoux, Graphes et algorithmes, Éditions Eyrolles, coll. « Études et recherches d'Électricité de France »,‎ 1979 (réimpr. 1986), 548 p., « 2 - Le problème du plus court chemin »