Différence entre Kruskal et Prim: Kruskal vs Prim

Anonim

Kruskal vs Prim

En informatique, les algorithmes de Prim et de 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 minimal possible / coût de tous les arbres couvrant est l'arbre couvrant minimum (MST).

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

Compte tenu du graphe connexe avec n noeuds et poids respectif de chaque arête,

1. Sélectionnez un nœud arbitraire dans le graphique et ajoutez-le à l'arbre T (qui sera le premier nœud)

2. Considérez les poids de chaque bord connecté aux nœuds dans l'arbre et sélectionnez le minimum. Ajoutez le bord et le nœud à l'autre extrémité de l'arbre T et retirez le bord du graphique. (Sélectionnez n'importe lequel si deux minimums ou plus existent)

3. Répétez l'étape 2, jusqu'à ce que n-1 bords sont ajoutés à l'arborescence.

Dans cette méthode, l'arborescence 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 graphe 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 actes de l'American Mathematical Society en 1956. L'algorithme de Kruskal peut également être exprimé en trois étapes simples. Étant donné le graphique avec n nœuds et le poids respectif de chaque bord,

1. Sélectionnez l'arc avec le poids le plus faible du graphique entier et ajoutez-le à l'arborescence et supprimez-le du graphique.

2. Parmi les autres, sélectionnez le bord le moins pondéré, de manière à ne pas former de cycle. Ajoutez le contour à l'arborescence et supprimez-le du graphique. (Sélectionnez n'importe lequel si deux minimums ou plus existent)

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

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

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

• L'algorithme de Prim s'initialise avec un nœud, alors que l'algorithme de Kruskal commence avec un bord.

• Les algorithmes de Prim varient d'un noeud à l'autre tandis que l'algorithme de Kruskal sélectionne les arêtes de façon à ce que la position du bord ne soit pas basée sur la dernière étape.

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

• L'algorithme de Prim a une complexité en temps de O (V

2), et la complexité en temps de Kruskal est O (logV).