[anterior] [home] [siguiente]

3.2. Árboles

Definición. Un árbol es un grafo acíclico conexo.

Teorema. Las siguientes proposiciones son equivalentes para un grafo G:

Definición. Un grafo con pesos en los arcos es G = (V, X) con un conjunto {w1, ..., wq} asociado a los arcos.

Ejemplo: En una zona aislada existe un conjunto V = {v1, ..., vp} de comunidades. También existen caminos entre comunidades, de modo que el grafo es conexo. Ahora se quiere proveerlos de una red eléctrica, con la limitación de que los postes deben ir junto a los caminos (por economizar). Encontrar la red eléctrica que minimice el largo total a establecer.

Pre-solución. Basta un árbol (¿por qué?). Entonces buscamos un subgrafo (árbol) de recubrimiento de G de costo mínimo, donde el costo es la suma de los pesos, que en este caso son los largos de los caminos que serán parte del árbol.

Para encontrar un árbol de recubrimiento mínimo hay varios algoritmos. Mostraremos uno de ellos.

Algoritmo de Prim

Input: Un grafo conexo con pesos G = (V, X), con V = {v1, ..., vp}
Output: Un árbol de recubrimiento mínimo T
Método: Expandir el conjunto U Í V desde {v1} a V usando el arco de mínimo peso de U a V-U.


Ejemplo. Con el grafo



El algoritmo de Prim tiene complejidad tiempo O(|V|2).

El problema de encontrar el árbol de recubrimiento mínimo con pesos para digrafos es mucho más difícil. De hecho, no se conoce un algoritmo polinomial para resolver este problema.



[anterior] [home] [siguiente]