Liste des algorithmes de la théorie des graphes
Un article de Wikipédia, l'encyclopédie libre.
[modifier] Algorithmes importants de la théorie des graphes
[modifier] Algorithmes de parcours d'un graphe
- Algorithme de parcours en largeur (ou BFS: Breadth first search)
- Algorithme de parcours en profondeur (ou DFS: Depth First Search)
- Algorithme de parcours en largeur lexicographique (ou Lex-BFS)
[modifier] Algorithmes de Plus Courts Chemins (PCC)
- Algorithme de Dijkstra
- Algorithme de Dantzig
- Algorithme de Bellman-Moore
- Algorithme de Ford
- Algorithme de Floyd
- Algorithme de Ford-Bellman
[modifier] Algorithmes d'arbres couvrants de poids minimum
[modifier] Algorithmes de construction d'une forêt maximale
- Algorithme de construction d'une forêt maximale
[modifier] Lemme de Minty
- Lemme de Minty
[modifier] Algorithmes pour les flots maximums
- Algorithme de Ford-Fulkerson
- Algorithme de Roy
[modifier] Algorithmes pour les flots à coût minimum
- Algorithme de Busacker-Gowen
- Algorithme de Klein
[modifier] Algorithmes pour les flots compatibles
- Algorithme de recherche de flots compatibles
[modifier] Algorithmes de coloration
(voir coloration de graphe)
[modifier] Algorithmes divers
- Algorithme du plus proche voisin
- Algorithmes de connexité
- Algorithme de détermination des composantes Biconnexes
- Algorithmes de forte connexité
[modifier] Une présentation unifiée de quelques algorithmes
[modifier] Q-semi anneau
Un Q-semi anneau est un triplet , Q étant un ensemble non vide, et deux lois binaires internes. A tout couple (a,b) d'éléments de Q, les relations binaires associent un élément de Q noté respectivement et . La loi est associative, commutative et admet un élément neutre z. La loi est associative et distributive par rapport à . Elle admet un élément neutre e (à gauche et à droite).
[modifier] Exemple
L'algèbre de Boole est un Q-semi anneau en prenant Q={0,1}, (ou) et (et). Les éléments neutres sont z=0 et e=1.
[modifier] Matrice associée à un graphe
Etant donné un graphe, on associe à chaque arc un poids qui pourra être une longueur au sens de la théorie des graphes, une distance (au sens métrique), une densité de trafic maximum, ... Dans chacun de ces cas, l'ensemble Q sera choisi différemment, pouvant être l'ensemble {0,1}, , ... On construit alors une matrice A associée au graphe en associant à chaque arc (i,j) l'élément (i,j) de la matrice égal à son poids si l'arc existe et à z s'il n'existe pas.
[modifier] Chemin optimal
Soit un chemin de longueur d, (Xk0,Xk1), (Xk1,Xk2), ... ,(Xkd − 1,Xkd). A chaque arc (Xkp,Xkp + 1) on a associé le poids akp,kp + 1 et le poids du chemin est par définition
On définit sur le Q-semi anneau une relation d'ordre par si et seulement si . On suppose que la relation d'ordre est totale, donc on a soit soit . On peut alors dire qu'un chemin de Xk0 à Xkd de poids w est supérieur à un autre chemin de Xk0 à Xkd de poids w' si l'on a . Un chemin est optimal s'il est supérieur à tout autre chemin de Xk0 à Xkd. Il peut en exister plusieurs.
[modifier] Algorithme de Warshall généralisé
P. Robert et J. Ferland ont montré que, étant donné un graphe de matrice associée A d'ordre n, on peut définir :
- une suite de matrices A(k) par :
- A(0) = A et
- avec .
- Cette suite de matrices est telle que les éléments de la matrice A(n) sont égaux au poids du chemin de Xi à Xj.
- une autre suite de matrices D(k) par :
- Cette suite de matrices est telle que les éléments ont pour valeur l'indice du premier point intermédiaire du chemin de Xi à Xj à l'étape k.
Il s'ensuit que :
- est l'indice p du premier sommet intermédiaire entre Xi et Xj.
- Le second sommet est donné par où , etc.
- On détermine ainsi de proche en proche les divers sommets jusqu'au sommet terminal choisi.
[modifier] Applications
[modifier] Détermination des chemins joignant un sommet
On prend l'algèbre de Boole Q={0,1}, et . A chaque arc reliant Xi à Xj on affecte le poids 1 et 0 s'il n'existe pas. Après calcul de A(n), il existe un chemin entre Xi et Xj si le coefficient ai,j est non nul. Le chemin n'existe pas si le coefficient est nul.
[modifier] Détermination des chemins à densité de trafic maximum entre deux sommets
On prend , =maximum de deux réels, =minimum de deux réels. On affecte à chaque arc (Xi,Xj) la densité de trafic maximum si elle existe et 0 autrement. Après le calcul de A(n), à l'intersection de la ligne i et de la colonne j, représente la densité de trafic maximum entre i et j.
[modifier] Détermination de la distance minimum entre deux sommets
On prend , =minimum de deux réels, =addition des réels. représente la distance minimum entre i et j.