prim
L’algorithme de Prim a été découvert en 1930 par le mathématicien Vojtěch Jarník puis plus tard par Robert C.Prim en 1957. Redécouvert par Dijkstra en 1959, il est également appelé algorithme de DJP ou algorithme de Jarnik
Principe
L’algorithme de Prim est utilisé pour trouver le plus court chemin reliant tous les sommets du graphe. Le but de cet algorithme est de créer un arbre couvrant de poids minimum. Celui-ci s’applique uniquement aux graphes connexes, valués et non orientés. Il fait croître son arbre couvrant en utilisant des co-cycles et en suivant le principe de l’algorithme glouton.
Définitions
Arbre couvrant : un arbre couvrant est un arbre reliant tous les sommets d’un graphe en ne passant qu’une fois par chaque sommet.
Arbre connexe : un arbre connexe est un graphe qui, pour tout point i et j appartenant au graphe, admet un chemin permettant de les relier.
Graphe valué : un graphe valué est un graphe admettant une valeur( ou pondération) sur chacune de ses arrêtes.
Graphe non orienté : un graphe non orienté est un graphe qui ne présente pas de sens sur ses arrêtes.
L’algorithme glouton : l’algorithme glouton fait le choix optimal à chaque étape en espérant, que le résultat final soit également optimal.
Co-cycle : Un Co-cycle est l’ensemble des arrêtes en relation avec un sommet.
III. 2- Pseudo code et explication
S l’ensemble des sommets du graphe
T = (ST ;AT ) l’arbre couvrant (ensemble d’arêtes. Vide au départ)
ST :ajouter({s1})
CC ← co-cycle de ST
TantQue |ST| < |S| Faire
(s; t) arête de CC de poids minimum
ST .ajoute(t)
AT .ajoute((s; t))
CC ← mise à jour du co-cycle de ST finTantQue Description des étapes :
Etape 1 : Etape d’initialisation :
Ligne 1 : On pose S l’ensemble des sommets Ligne 2 : Et T l’arbre couvrant (ST, AT) que l’on initialise (0,0) Tel que ST nombre de sommet dans le co-cycle Et AT le poids de chaque arrête Ligne 3 : Choisir un sommet de départ :