ALGORITMO KRUSKAL Es un algoritmo vidovoraz de la

  • Slides: 6
Download presentation
ALGORITMO KRUSKAL Es un algoritmo (ávido/voraz) de la teoría de grafos para encontrar un

ALGORITMO KRUSKAL Es un algoritmo (ávido/voraz) de la teoría de grafos para encontrar un árbol de recubrimiento mínimo en un grafo conexo y ponderado. Es decir, busca un subconjunto de aristas que, formando un árbol, incluyen todos los vértices y donde el valor total de todas las aristas del árbol es el mínimo

Este algoritmo fue publicado por primera vez en Proceedings of the American Mathematical Society,

Este algoritmo fue publicado por primera vez en Proceedings of the American Mathematical Society, pp. 48– 50 en 1956, y fue escrito por Joseph Kruskal.

Pseudocódigo del algoritmo: � � Entrada: Un grafo ponderado conexo con todos sus pesos

Pseudocódigo del algoritmo: � � Entrada: Un grafo ponderado conexo con todos sus pesos diferentes. Salida: Las aristas de un árbol generador minimal. � � � i : = 1; N : = tamaño del grafo de Entrada en número de vértices; � � � � mientras (i < N) hacer escoger la arista de peso mínimo A de entre todas las que aún no han sido escogidas; si A no forma ciclo con las que ya forman parte de la Salida entonces añadir A a la Salida; i : = i + 1; Fin_si Fin_mientras

Funcionamiento: � � Se parte colocando todos los vértices del grafo separados, y se

Funcionamiento: � � Se parte colocando todos los vértices del grafo separados, y se decide partir por un vértice de "Inicio". Dado el vértice actual (en el comienzo es el de inicio), armamos una lista de todas las aristas que posee, ordenadas en forma decreciente según su ponderación (costo de la arista). Tomamos la de menor coste, retiramos de la lista de candidatos a la arista utilizada y agregamos las nuevas aristas que nos proporciona el nuevo vértice. Así sucesivamente, generando subgrafos conexos hasta llegar a conectar todos los subgrafos conexos formando un Árbol de cubrimiento de costo mínimo.

Un ejemplo de árbol expandido mínimo. Cada punto representa un vértice, el cual puede

Un ejemplo de árbol expandido mínimo. Cada punto representa un vértice, el cual puede ser un árbol por sí mismo. Se usa el Algoritmo para buscar las distancias más cortas (árbol expandido) que conectan todos los puntos o vértices.

Ejemplo grafico � http: //students. ceid. upatras. gr/~papagel/project /kruskal. htm � http: //es. wikipedia.

Ejemplo grafico � http: //students. ceid. upatras. gr/~papagel/project /kruskal. htm � http: //es. wikipedia. org/wiki/Algoritmo_de_Krusk al