Você está na página 1de 10

ALGORITMO DEL ÁRBOL DE EXPANSIÓN MÍNIMA

Árbol: Es un grafo en el que existe un único nodo desde el que se puede acceder a todos los demás y cada
nodo tiene un único predecesor, excepto el primero, que no tiene ninguno. También podemos definir un árbol
como:

 Un grafo conexo y sin ciclos.


 Un grafo sin ciclos y con n-1 aristas, siendo n el número de vértices.

 Grado de un nodo en un árbol es el número de subárboles de aquel nodo (en el ejemplo, el grado
de v1 es 2 y de v2 1).
 Denominamos hojas en un árbol a los nodos finales (v3, v5 y v6).

 Un árbol de máximo alcance es aquel que obtenemos en un grafo conexo y sin ciclos.

 Árbol de mínima expansión: Árbol de máximo alcance cuyo valor es mínimo, es decir, la suma de
sus aristas es mínima.

ALGORITMO DE KRUSKAL
El algoritmo de Kruskal permite hallar el árbol minimal de cualquier grafo valorado (con capacidades).
Hay que seguir los siguientes pasos:
1. Se marca la arista con menor valor. Si hay más de una, se elige cualquiera de ellas.
2. De las aristas restantes, se marca la que tenga menor valor, si hay más de una, se elige cualquiera
de ellas.

3. Repetir el paso 2 siempre que la arista elegida no forme un ciclo con las ya marcadas.

4. El proceso termina cuando tenemos todos los nodos del grafo en alguna de las aristas marcadas, es
decir, cuando tenemos marcados n-1 arcos, siendo n el número de nodos del grafo.

El algoritmo del árbol de expansión mínima es un modelo de optimización de redes que


consiste en enlazar todos los nodos de la red de forma directa y/o indirecta con el objetivo
de que la longitud total de los arcos o ramales sea mínima (entiéndase por longitud del
arco una cantidad variable según el contexto operacional de minimización, y que puede
bien representar una distancia o unidad de medida).

Sean

 N = {1,2,3,...,n} el conjunto de nodos de la red.

 Ck= Conjunto de nodos que se han enlazado de forma permanente en la


iteración k
 Čk= Conjunto de nodos que hacen falta por enlazarse de forma permanente.
PASO CERO (0): CONCEPTUALIZACIÓN DEL ALGORITMO
Definir los conjuntos C0 = {ø} y Č0 = {N}, es decir que antes del paso 1 no se han enlazado
de forma permanente nodo alguno, y por ende el conjunto que representa a los nodos que
hacen falta por enlazarse de forma permanente es igual a la cantidad de nodos que
existen en la red.

PASO 1:
Se debe de escoger de manera arbitraria un nodo en el conjunto Č 0 llamado i el cual será
el primer nodo permanente, a continuación se debe de actualizar el conjunto C 1 = {i}, que
significa que al tiempo en que el conjunto C1 gana el elemento i el conjunto Č0pierde el
elemento i por ende ahora será igual a Č1 = N - {i}, además se debe actualizar el
subíndice de los conjuntos k, el cual ahora será igual a 2.

PASO 2: PASO GENERAL "K"


Se debe de seleccionar un nodo j del conjunto ČK-1 ("k-1" es el subíndice que indica que
se está haciendo referencia al conjunto de la iteración inmediatamente anterior) el cual
tenga el arco o ramal con menor longitud con uno de los nodos que se encuentran en el
conjunto de nodos de enlace permanente CK-1. Una vez seleccionado se debe de enlazar
de forma permanente lo cual representa que pasa a formar parte del conjunto de enlaces
permanentes y deja de formar parte del conjunto que todavía se debe conectar para lograr
la expansión. Al actualizar el algoritmo en este paso los conjuntos deben de quedar de la
siguiente forma.

CK = CK-1 + {j} mientras que ČK = ČK-1 - {j}

El paso general que define k que al mismo tiempo representa a las iteraciones debe de
ejecutarse toda vez que el conjunto ČK no sea vacío, cuando este conjunto sea igual a
vacío se tendrá el árbol de expansión mínima.

EJEMPLO 1:
La ciudad de Cali cuenta con un nuevo plan parcial de vivienda el cual contará con la
urbanización de más de 7 proyectos habitacionales que se ubicarán a las afueras de la
ciudad. Dado que el terreno en el que se construirá no se encontraba hasta ahora dentro
de las zonas urbanizables de la ciudad, el acueducto municipal no cuenta con la
infraestructura necesaria para satisfacer las necesidades de servicios públicos en materia
de suministro de agua. Cada uno de los proyectos de vivienda inició la construcción de un
nodo de acueducto madre, el cual cuenta con las conexiones de las unidades de vivienda
propias de cada proyecto (es decir que cada nodo madre solo necesita estar conectado
con un ducto madre del acueducto municipal para contar con su suministro). El acueducto
municipal al ver la situación del plan parcial debe de realizar las obras correspondientes a
la instalación de ductos madres que enlacen todos los nodos del plan con el nodo
Meléndez (nodo que se encuentra con suministro de agua y que no pertenece al plan
parcial de vivienda, además es el más cercano al mismo), la instalación de los ductos
implica obras de excavación, mano de obra y costos de los ductos mismos, por lo cual
optimizar la longitud total de los enlaces es fundamental. Las distancias existentes (dadas
en kilómetros) correspondientes a las rutas factibles capaces de enlazar los nodos del
plan parcial se presentan a continuación. Además la capacidad de bombeo del nodo
Meléndez es más que suficiente para satisfacer las necesidades de presión que necesita
la red madre.
El acueducto municipal le contacta a usted para que mediante sus conocimientos en
teoría de redes construya una red de expansión que minimice la longitud total de ductos y
que enlace todos los nodos del plan parcial de vivienda.
PASO 0: Se definen los conjuntos iniciales C0 = {ø} que corresponde al conjunto de nodos
enlazados de forma permanente en la iteración indicada en el subíndice y Č0 = {N =
1,2,3,4,5,6,7,8} que corresponde al conjunto de nodos pendientes por enlazar de manera
permanente en la iteración indicada en el subíndice.

PASO 1: Se debe definir de manera arbitraria el primer nodo permanente del conjunto Č0,
en este caso escogeremos el nodo 1 (puede ser cualquier otro), que algebraicamente se
representa con la letra i, se procede a actualizar los conjuntos iniciales, por ende C1 = {i} =
{1} y Č0 = {N - i} = {2,3,4,5,6,7,8}, actualizamos k por ende ahora será igual a 2.

PASO 2: Ahora se debe seleccionar el nodo j del conjunto ČK-1 (es decir del conjunto del
paso 1) el cual presente el arco con la menor longitud y que se encuentre enlazado con
uno de los nodos de enlace permanente del conjunto Ck-1 en el cual ahora solo se
encuentra el nodo 1 (es decir que se debe de encontrar un nodo que tenga el arco de
menor longitud enlazado al nodo 1).

Los arcos o ramales de color naranja representan los arcos que enlazan el conjunto ČK-
1 (es decir del conjunto del paso 1, recordemos que K en este paso es igual a 2, por
ende ČK-1= Č1) con los nodos de enlace permanente del conjunto Ck-1 en el cual ahora solo
se encuentra el nodo 1, por ende ahora solo falta escoger el de menor longitud, que en
este caso es el arco cuya longitud es 2, que enlaza de forma permanente ahora el nodo 2.

Al actualizar los conjuntos quedan así: C2 = {1,2} y Č2 = {3,4,5,6,7,8}


Ahora se procede a actualizar k ya que se procede a efectuar la siguiente iteración. Ahora
se seleccionará un nuevo nodo j del conjunto Č2que presente el enlace (ramal o arco) de
menor longitud con los nodos que se encuentran en el conjunto C2.

Los arcos de color naranja representan los enlaces posibles y dado que existe empate
entre las menores longitudes se elige de manera arbitraria, en este caso se representa
nuestra elección con un arco de color verde, enlazando de forma permanente ahora el
nodo 4.

Al actualizar los conjuntos quedan así: C3 = {1,2,4} y Č3 = {3,5,6,7,8}

Ahora se procede a actualizar k ya que se procede a efectuar la siguiente iteración.

Lo que representan los arcos naranja y verde es ya conocido, ahora la línea azul
interrumpida irá trazando nuestro árbol de expansión final. Dado a que el arco menor es el
de longitud 3, ahora se enlazará de manera permanente el nodo 5.

Al actualizar los conjuntos quedan así: C4 = {1,2,4,5} y Č4 = {3,6,7,8}

Ahora se procede a actualizar k ya que se procede a efectuar la siguiente iteración.


Ahora se enlazará de manera permanente el nodo 7.

Al actualizar los conjuntos quedan así:


C5 = {1,2,4,5,7} y Č5 = {3,6,8}

Ahora se procede a actualizar k ya que se procede a efectuar la siguiente iteración.

Ahora se enlazará de manera permanente el nodo 6.

Al actualizar los conjuntos quedan así: C6 = {1,2,4,5,7,6} y Č6 = {3,8}

Ahora se procede a actualizar k ya que se procede a efectuar la siguiente iteración.

Se rompen los empates de forma arbitraria, ahora se enlazará de manera permanente el


nodo 3.
Al actualizar los conjuntos quedan así:
C7 = {1,2,4,5,7,6,3} y Č7 = {8}

Ahora se procede a actualizar k ya que se procede a efectuar la última iteración.

Ahora se enlazará de manera permanente el nodo 8.


Al actualizar los conjuntos quedan así:
C8 = {1,2,4,5,7,6,3,8} = {N} y Č8 = {ø}
Por ende se ha llegado al árbol de expansión mínima

Árbol que presenta una longitud total minimizada de 21 kilómetros de ductos.

EJEMPLO 2: Determinar el árbol de mínima expansión para el siguiente grafo:

Siguiendo el algoritmo de Kruskal, tenemos:


 Elegimos, por ejemplo, la arista (5, 6) = 1 (menor valor) y la marcamos.
 Elegimos la siguiente arista con menor valor (1, 3) = 1 y la marcamos.
 Elegimos la siguiente arista con menor valor (5, 7) = 2 y la marcamos, ya que no
forma ciclos con ninguna arista de las marcadas anteriormente.

 Elegimos la siguiente arista con menor valor (1, 2) = 3 y la marcamos, ya que no


forma ciclos con ninguna arista de las marcadas anteriormente.

 Elegimos la siguiente arista con menor valor (6, 7) = 4 y la desechamos, ya que


forma ciclos con las aristas (5, 7) y (5, 6) marcadas anteriormente.

 Elegimos la siguiente arista con menor valor (2, 5) = 5 y la marcamos, ya que no


forma ciclos con ninguna arista de las marcadas anteriormente.

 Elegimos la siguiente arista con menor valor (4, 5) = 6 y la marcamos, ya que no


forma ciclos con ninguna arista de las marcadas anteriormente.

 FIN. Finalizamos dado que los 7 nodos del grafo están en alguna de las aristas, o
también ya que tenemos marcadas 6 aristas (n-1).

 Por tanto el árbol de mínima expansión resultante sería:

EJEMPLO 3:

Una empresa constructora tiene el proyecto de unir 6 comunidades, las condiciones del
terreno son homogéneas y permiten planear la construcción de los caminos en función de
la mínima distancia entre dichas poblaciones. La posición relativa y las distancias entre
cada comunidad se muestra en la imagen siguiente (las líneas representan distancias ya
que los caminos apenas se van a construir): Determine usando el algoritmo de la
expansión mínima, los caminos que deben construirse y la distancia total necesaria de
carretera para su construcción. Solución: Se inicia con el nodo 1, aunque en realidad
puede iniciarse desde cualquiera, se muestra para la iteración 1 la selección del nodo 1 y
con una línea punteada la distancia mas corta del nodo 1 a los otros nodos (nodo 2, con 1
milla) entonces para la iteración 2 se elige unir los nodos 1 y 2 con lo cual ambos ya
forman parte del subconjunto C2.
En la iteración 2 detectamos que la distancia más corta de los nodos 1 y 2 que ya están
conectados, es la del nodo 2 con el nodo 5, con una distancia de 3 millas; por lo tanto
conectamos el nodo 2 con el nodo5.

De la iteración 3 notamos que la distancia mas corta del conjunto de nodos conectados de
forma permanente: 1, 2 y 5 es la del nodo 2 con el nodo 4, con una distancia de 4 millas,
por lo cual de la iteración 3 a la 4 realizamos la conexión entre dichos nodos, quedando
solo dos nodos por conectar: 3 y 6. En la iteración 4 notamos que la distancia entre los
nodos conectados permanentemente y la de los nodos que aún faltan por conectar, el
nodo 4 tiene la mínima distancia, con 3 millas con el nodo 6, por lo cual realizamos la
conexión para la iteración 5.

Finalmente existen dos posibles respuestas, ya que en la iteración 5 el único nodo que
falta por conectar, el nodo 3 tiene dos distancias mínimas de 5 millas: con el nodo 1 y con
el 4. En este caso cualquiera de las dos opciones que decidamos genera una árbol de
expansión mínima factible. Si se suman las millas totales que conectan todos los nodos,
se obtienen 16 millas.
TECNOLÓGICO NACIONAL DE MÈXICO

ASIGNATURA:

PLANEACION DE LA PRODUCCION DE LA
CADENA DE SUMINISTRO

TITULO
:
ARBOL DE EXPANSIÓN MINIMA Y EJEMPLOS

ALUMNO(A):

VALENCIA SERRANO M. CAROLINA

CATEDRÁTICO
:
ING. ARIEL TENORIO NUÑEZ

Você também pode gostar