Différence Entre Kruskal Et Prim

Différence Entre Kruskal Et Prim
Différence Entre Kruskal Et Prim

Vidéo: Différence Entre Kruskal Et Prim

Vidéo: Différence Entre Kruskal Et Prim
Vidéo: Algorithme de Kruskal pour construire un arbre couvrant de poids minimal 2024, Novembre
Anonim

Kruskal contre Prim

En informatique, les algorithmes de Prim et Kruskal sont un algorithme glouton qui trouve un arbre couvrant minimum pour un graphe non orienté pondéré connecté. Un spanning tree est un sous-graphe d'un graphe tel que chaque nœud du graphe est connecté par un chemin, qui est un arbre. Chaque arbre couvrant a un poids, et le poids / coût minimum possible de tous les arbres couvrant est l'arbre couvrant minimum (MST).

En savoir plus sur l'algorithme de Prim

L'algorithme a été développé par le mathématicien tchèque Vojtěch Jarník en 1930 et plus tard indépendamment par l'informaticien Robert C. Prim en 1957. Il a été redécouvert par Edsger Dijkstra en 1959. L'algorithme peut être énoncé en trois étapes clés;

Compte tenu du graphe connexe à n nœuds et du poids respectif de chaque arête, 1. Sélectionnez un nœud arbitraire dans le graphique et ajoutez-le à l'arborescence T (qui sera le premier nœud)

2. Considérez les poids de chaque arête connectée aux nœuds de l'arborescence et sélectionnez le minimum. Ajoutez l'arête et le nœud à l'autre extrémité de l'arbre T et supprimez l'arête du graphique. (Sélectionnez-en s'il existe deux minimums ou plus)

3. Répétez l'étape 2 jusqu'à ce que n-1 arêtes soient ajoutées à l'arborescence.

Dans cette méthode, l'arbre commence avec un seul nœud arbitraire et se développe à partir de ce nœud à chaque cycle. Par conséquent, pour que l'algorithme fonctionne correctement, le graphique doit être un graphique connecté. La forme de base de l'algorithme de Prim a une complexité temporelle de O (V 2).

En savoir plus sur l'algorithme de Kruskal

L'algorithme développé par Joseph Kruskal est apparu dans les travaux de l'American Mathematical Society en 1956. L'algorithme de Kruskal peut également être exprimé en trois étapes simples.

Compte tenu du graphe à n nœuds et du poids respectif de chaque arête, 1. Sélectionnez l'arc avec le moins de poids de tout le graphique et ajoutez-le à l'arborescence et supprimez-le du graphique.

2. Parmi les autres, sélectionnez l'arête la moins pondérée, d'une manière qui ne forme pas un cycle. Ajoutez l'arête à l'arborescence et supprimez-la du graphique. (Sélectionnez-en s'il existe deux minimums ou plus)

3. Répétez le processus de l'étape 2.

Dans cette méthode, l'algorithme commence avec le bord le moins pondéré et continue de sélectionner chaque bord à chaque cycle. Par conséquent, dans l'algorithme, le graphe n'a pas besoin d'être connecté. L'algorithme de Kruskal a une complexité temporelle de O (logV)

Quelle est la différence entre l'algorithme de Kruskal et Prim?

• L'algorithme de Prim s'initialise avec un nœud, alors que l'algorithme de Kruskal démarre avec une arête.

• Les algorithmes de Prim s'étendent d'un nœud à un autre tandis que l'algorithme de Kruskal sélectionne les arêtes d'une manière que la position de l'arête ne soit pas basée sur la dernière étape.

• Dans l'algorithme de prim, le graphe doit être un graphe connecté tandis que celui de Kruskal peut également fonctionner sur des graphes déconnectés.

• L'algorithme de Prim a une complexité temporelle de O (V 2) et la complexité temporelle de Kruskal est O (logV).

Recommandé: