Conceptos bsicos: rbol: En teora de grafos, un rbol es un grafo en el que cualesquiera dos vrtices estn conectados por exactamente un camino. rbol Generado: de un grafo G es un subgrupo generador De G que es un rbol. Grado de un nodo: Es el nmero de subrbol es que tienen como raz ese nodo (el Nmero de subrbol es que "cuelgan" del nodo). Nodo terminal: Nodo con grado 0, no tiene subrbol es . Grado de un rbol: Grado mximo de los nodos de un rbol . Hijos de un nodo: Nodos que dependen directamente de ese nodo, es decir, las races De sus subrbol es . Padre de un nodo: Antecesor directo de un nodo, nodo del que depende directamente. Nodos hermanos: Nodos hijos del mismo nodo padre. Camino: Sucesin de nodos del rbol n1, n2, ..., nk, tal que ni es el padre de Ni+1. Antecesores de un nodo: Todos los nodos en el camino desde la raz del rbol hasta ese Nodo. Nivel de un nodo: Longitud del camino desde la raz hasta el nodo. El nodo raz tiene Nivel 1. Altura (profundidad) de un rbol: Nivel mximo de un nodo en un rbol. Longitud de camino de un rbol: Suma de las longitudes de los caminos a todos sus Componentes. Bosque: Conjunto de n>0 rboles disjuntos. Grafo pesado: es un grafo tal que sus aristas tienen Asociado un peso.
Para ver que el algoritmo construye un rbol generador, como en cada Paso el subgrafo B elegido hasta el momento es generador y aciclico, Basta ver que el algoritmo termina con mB = nG 1. Si mB < nG 1, B Es no conexo. Sea B1 una componente conexa de B. Como G es conexo, Va a existir alguna arista con un extremo en B1 y el otro en V (G) B1, Que por lo tanto no forma ciclo con las dems aristas de B. Entonces, si mB < nG 1, el algoritmo puede realizar un paso ms. Sea G un grafo, TK el _rbol generado por el algoritmo de Kruskal y fe1; e2; : : : ; en1g la secuencia de aristas de TK en el orden en que fueron elegidas por el algoritmo de Kruskal. Para cada _rbol generador T de G de mnimos p(T) como el mximo k _ n tal que 8j _ k, ej. 2 T. Demostracin de que Kruskal
Ahora, sea T un AGM que maximiza p. Si p(T) = n, entonces T coincide con TK , con lo cual TK resulta ser mnimo. Si TK no es mnimo, entonces p(T) < n y e(T) 62 T. Como T es conexo, en T hay un camino C que une los extremos de ep(T). Como TK es aciclico, hay alguna arista e en C tal que e 62 TK . Como e1; : : : ; ep(T)1 2 T y T es aciclico, e no forma ciclos con e1; : : : ; ep(T)1. Por la forma en que fue elegida ep(T) por el algoritmo de Kruskal, peso(ep(T)) _ peso(e). Pero entonces T0 = T e [ fep(T)g es un rbol generador de G de peso menor o igual a T y p(T0) > p(T), absurdo. Luego TK es un rbol generador mnimo.
El siguiente ejemplo ilustra el funcionamiento del algoritmo. La secuencia de Ilustraciones va de izquierda a derecha y de arriba hacia abajo.
Partir de un conjunto de aristas A = feg y un conjunto de vrtices W = fv;wg, donde e es una arista de peso mnimo en G y v y w son sus extremos. En cada paso, agregar a una arista f de peso mnimo con un extremo en W y el otro en V(G) W. Agregar a W el extremo de f que no estaba en W, hasta que W = V(G).
Para ver que construye un rbol generador, se puede ver que en cada paso del algoritmo, el subgrafo elegido hasta el momento es conexo y con m = n 1. Finalmente, como el grafo es conexo, mientras W 6= V(G) va a existir alguna arista de W a V(G) W con lo cual el algoritmo termina construyendo un rbol generador del grafo. Sea G un grafo, P el rbol generado por el algoritmo de Prim y fe1; e2; : : : ; en1g la secuencia de aristas de P en el orden en que fueron elegidas por el algoritmo de Prim. Para cada rbol generador T de G definimos p(T) como el mximo k _ n tal que 8j _ k, ej. 2 T. Ahora, sea T un AGM que maximiza p. Si p(T) = n, entonces T coincide con P, con lo cual P resulta ser mnimo. Si P no es mnimo, entonces p(T) < n y ep(T) 62 T. Como T es conexo, en T hay un camino C que une los extremos de ep(T). Este algoritmo lo demostramos: Si p(T) = 1, como e1 es de peso mnimo, peso(e1) _ peso(e) 8e 2 C. Luego T0 = T e [ fep(T)g es un rbol generador de G de peso menor o igual a T y p(T0) > p(T), absurdo. Si p(T) > 1, sea V1 el conjunto de extremos de las aristas e1; : : : ; ep(T)1 y V2 = V V1. Por la forma de elegir las aristas en Prim, ep(T) es de peso mnimo entre las que tienen un extremo en V1 y otro en V2. El camino C va de un vrtice de V1 a un vrtice de V2, con lo cual, existe e 2 C con un extremo en V1 y otro en V2 (sus vrtices se pueden partir entre los de V1 y los de V2, ambos conjuntos son no vacios y C es conexo). Entonces
peso(ep(T)) _ peso(e) y T e [ fep(T)g es un rbol generador de peso menor o igual a T y p mayor a p(T) (e no es ninguna de las ei con i < p(T) porque esas tienen ambos extremos en V1, por definicin de V1), absurdo. El siguiente ejemplo ilustra el funcionamiento del algoritmo. La secuencia de ilustraciones va de izquierda a derecha y de arriba hacia abajo. La primera imagen muestra el grafo pesado y las siguientes muestran el funcionamiento del algoritmo de Prim y como va cambiando el conjunto U durante la ejecucin.
El siguiente ejemplo ilustra la metodologa anterior, utilizando una pila de aristas P, En donde las aristas se van apilando en menor a mayor segn el peso de la misma. La Secuencia de ilustraciones va de izquierda a derecha.