ARBOL COBERTOR
Conceptos: O O O O O O
Un grafo sin ciclos se dice acíclico. Un grafo acíclico conexo es llamado árbol. Toda arista de un árbol es un puente (arista de corte). Al agregar una arista a un árbol se crea exactamente un ciclo. Todo grafo conexo contiene un árbol de cobertura. Un grafo acíclico cualquiera (conexo o no) es llamado un bosque cada componente de un bosque es un árbol, y un árbol es un
O
(así, bosque
por sı mismo). Una hoja (o vrtice colgante) de un árbol o bosque es un vrtice de grado
1. O
Un subgrafo cobertor de ! es un subgrafo cuyo con"unto de vrtices es #
O
(!). Un árbol cobertor o árbol de cobertura de ! es un subgrafo cobertor de ! que es un árbol$ análogamente definimos bosque cobertor o bosque de cobertura.
Propiedades de los arboles:
%os siguientes enunciados son equivalentes para un grafo !& (#, ') de orden n. . ! es un árbol. *. ! tiene (n+) lados y no tiene ciclos. . ! es conexo y tiene (n+) lados. -. ! es arista maximal con respecto a la propiedad no tiene ciclos. /. ! es arista minimal con respecto a la propiedad es conexo. 0. 1ara cada par de vrtices x, y en # (!) existe una 2nica cadena simple de x a y.
Definición: 3e dirá que un subgrafo 3 del grafo ! es cobertor si 3 contiene todos los vrtices de !.
Arboles cobertores 4ado un grafo ! no dirigido, conexo, se dice que un subgrafo 3 de ! es un árbol cobertor si es un árbol y contiene el mismo con"unto de nodos que !. 'xisten dos algoritmos para un grafo no dirigido dado, conexo y con distancias asociadas a los arcos. %a distancia de un árbol es la suma de las distancias de sus arcos
Algoritmo de rus!al Una forma de construir un árbol mínimo cobertor de un grafo !&(#,') es comen5ando con un grafo 6& (#,78) donde # es el con"unto de vrtices de !. 4e esta forma cada vrtice v en 6 forma una componente conexa. A medida que avan5a el algoritmo iremos agregando lados a 6 y se formarán nuevas componentes a partir de las anteriores. 1ara decidir qu lados agregar, se examinan los lados de ' en orden creciente de costo. 3i el lado en consideraci9n :; forma ciclo con los otros lados ya en 6, es decir, si conecta dos vrtices en componentes distintas, entonces se agrega ese lado a 6, en caso contrario se descarta y se examina el siguiente lado. #>+ lados requeridos, 6 es un árbol mínimo cobertor.
"eudocódigo ?rus@al (!) '()&, '(*)& todos los Arcos del grafo ! Bientras '() contenga menos de nC arcos y '(*)& do 4e los arcos de '(*) seleccionar el de menor coste CCDe(i") '(*)& '(*) C 7e(i")8 3i #(i), #(") no están en el mismo árbol entonces "untar los árboles de #(i) y de #(") en uno s9lo end 3i
end do Ein del algoritmo.
#$#%P&'
"olución
Algoritmo de Prim: %a idea básica de este algoritmo consiste en iniciali5ar como vacío al con"unto que contendrá los lados del árbol 6 y con un vrtice cualquiera u al con"unto U . %uego se selecciona el lado 7u,v8 en F(U). 'l vrtice v se agrega al con"unto U. 'l árbol 6 buscado se irá formando al agregar, uno a uno, los lados que cumplan la propiedad, al mismo tiempo que crece U al incorporársele el otro extremo del lado recin agregado a 6. 'ste proceso se repite =asta que los lados en 6 formen un árbol cobertor de !, o lo que es lo mismo =asta que U sea igual a #, es decir n C veces.
Algoritmo de Prim 7'ntradaG un grafo !&(#,') no orientado conexo y una funci9n de costos en las aristas.
3alidaG Un con"unto 6 de lados tales que !(6) es un árbol mínimo cobertor de !.8 #ariable UG con"unto de vrtices . 6>&>U>C y 6 está contenido en un árbol cobertor de costo mínimo8
#$#%P&'
"'&(C)*+