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é
Version en cache
22/12/2024 04:59:35 Cette version de la page est en cache (à la date du 22/12/2024 04:59:35) afin d'accélérer le traitement. Vous pouvez activer le mode utilisateur dans le menu en haut pour afficher la dernère version de la page.Document créé le 27/11/2009, dernière modification le 26/10/2018
Source du document imprimé : https://www.gaudry.be/graphes-algo.html
L'infobrol est un site personnel dont le contenu n'engage que moi. Le texte est mis à disposition sous licence CreativeCommons(BY-NC-SA). Plus d'info sur les conditions d'utilisation et sur l'auteur.