Algorithmes appliqués aux graphes
Voici quelques algorithmes qui s'appliquent au domaine des graphes. Nous allons nous intéresser à certains d'entre-eux (vous pouvez cliquer sur les liens pour plus de détails).
- Parcourir un graphe
- Parcours en profondeur d'abord : Algorithme DFS (Depth First Search), complexité de (m), et de (n2) dans le pire des cas.
- Algorithme DFS de Tarjan
- Algorithme de Malgrange basé sur DFS
- Parcours en largeur d'abord : Algorithme BFS (Breadth First Search), complexité de (m).
- Implémentation de BFS par Linden
- Parcours en largeur lexicographique : Algorithme Lex-BFS (Lexicographic Breadth First Search
- Parcours en profondeur d'abord : Algorithme DFS (Depth First Search), complexité de (m), et de (n2) dans le pire des cas.
- Chemins et circuits
- Détecter la simple présence d'un chemin entre 2 sommets
- Détecter un chemin de longueur déterminée entre 2 sommets
- Calculer le nombre de longueur déterminée (>1) entre 2 sommets
- Calculer la matrice M ou M' : Algorithme de Warshall, complexité de (n3).
- Détecter un circuit dans un graphe
- Détecter un circuit passant par un sommet donné
- Détecter un circuit passant par un arc donné
- Rechercher un ou plusieurs chemins extrémaux des graphes pondérés (les plus courts ou les plus longs)
- Algorithme de Bellman-Kalaba (pas de circuits), complexité de (n2).
- Algorithme de Moore-Dijkstra (circuits nécessaires, poids positifs ou nuls), complexité de (n2).
- Algorithme de Ford-Bellman (avec ou sans circuits, détection de circuits absorbants, poids quelconques), complexité de (n3).
- Heusistique A* (avec ou sans circuits, bornes, et sommet destination pré-déterminé)
- Algorithme de Floyd-Warshall (accepte les poids négatifs, mais pas de cycle strictement négatif)
- Algorithme de Ford-Dantzig (graphe orienté, avec ou sans circuit, poids positifs et négatifs)
- Arbres couvrant (ARPM1, ou ACM2)
- Algorithme de Kruskal (graphe connexe, valué, non orienté)
- Algorithme de Prim (graphe connexe, valué, non orienté)
- Flux extémaux (minimum ou maximum)
- Algorithme de Ford-Fulkerson
- Algorithme de Edmonds-Karp
- Algorithme de flux bloquant de Dinitz
- Divers
- Construire la fermeture transitive d'un graphe orienté ou non orienté
- Algorithme de Warshall, complexité de (n3).
- Algorithme de Minoux (sans circuit), complexité entre (n3) et (∑dintj . dextj) (Minoux et Bartnik).
- Construire les composantes simplement connexes d'un graphe (via DFS), complexité de (m+n).
- Construire les composantes fortement connexes d'un graphe
- Algorithme de Foulkes, complexité de (n3).
- Algorithme de Malgrange, complexité de (m * nombre d'exécutions), de (n3) dans le pire des cas.
- Décomposer en niveaux. (sans circuit), complexité de (n2).
- Aide à la décision multicritère : ELECTRE
- Construire la fermeture transitive d'un graphe orienté ou non orienté
English translation
You have asked to visit this site in English. For now, only the interface is translated, but not all the content yet.If you want to help me in translations, your contribution is welcome. All you need to do is register on the site, and send me a message asking me to add you to the group of translators, which will give you the opportunity to translate the pages you want. A link at the bottom of each translated page indicates that you are the translator, and has a link to your profile.
Thank you in advance.
Document created the 27/11/2009, last modified the 26/10/2018
Source of the printed document:https://www.gaudry.be/en/graphes-algo.html
The infobrol is a personal site whose content is my sole responsibility. The text is available under CreativeCommons license (BY-NC-SA). More info on the terms of use and the author.