1
SEPI - UPIICSA – IPN Investigación de operaciones Maestría en administración
Sesión 8
Introducción a Redes
En general las redes pueden ser muy complejas por la cantidad excesiva de nodos, por tales
razones en teoría de redes los algoritmos pueden ser exactos (por ejemplo, el simplex) los cuales
se caracterizan por dar soluciones óptimas; heurísticos por ejemplo, búsqueda tabú, redes
neuronales, glotones, etc. mismos que se caracterizan por dar soluciones aproximadas a las
óptimas. En ocasiones se combinan los heurísticos con los exactos, utilizando primeramente un
heurístico, para encontrar rápidamente una solución aproximada y posteriormente la exacta.
Cuando se trata de encontrar el camino más corto entre un origen y un destino, la técnica,
algoritmo o el modelo más común es el de la ruta más corta; aunque existen otros modelos de
redes que dependiendo de la complejidad de cómputo pueden ser usados, como es el caso de los
algoritmos heurísticos, por ejemplo la búsqueda Tabú. Uno de los problemas principales de las
redes se refiere a la minimización de las trayectorias.
En general las redes pueden trabajarse como problemas lineales o lineales enteros, al
utilizar un principio básico en teoría de redes:
“Siempre debe cumplirse el equilibrio en los nodos, flujo entrante debe ser igual al flujo
saliente”.
Por lo tanto, el capítulo inicia con un resumen de la terminología general de una red,
siguiendo con la solución de los problemas de redes más comunes por medio de la programación
lineal. Posteriormente se revisan los algoritmos clásicos de los modelos de redes y se revisan
algunas aplicaciones.
8.1 CONCEPTOS BÁSICOS DE REDES
A continuación se mencionan algunos conceptos básicos de redes y notación.
1. Red: Una red consiste en un conjunto de puntos y un conjunto de líneas que unen ciertos pares
de puntos. Los puntos se llaman nodos o vértices y las líneas se llaman arcos,
ligaduras, aristas o ramas.
2. Arcos: Los arcos se etiquetan para dar nombres a los nodos en sus puntos terminales, por
ejemplo, AB es el arco entre los nodos A y B.
En un problema de programación lineal, las técnicas de flujo de redes están orientadas a
optimizar situaciones vinculadas a las redes de transporte, rutas de navegación de los cruceros,
rutas entre ciudades, y todas aquellas situaciones que puedan representarse mediante una red
donde los nodos denotan las estaciones o las ciudades, los arcos los caminos, y el flujo lo
Elaboró Dr. Eduardo Gutiérrez González
2
representan vehículos de transporte que pasan por la red; con el objetivo de encontrar la ruta más
corta entre un par de nodos que permita fluir productos para su comercialización o distribución.
3. Arcos dirigidos: Se dice que un arco es dirigido cuando el arco tiene flujo en una dirección, la
dirección se indica agregando una cabeza de flecha al final de la línea que representa
el arco.
Al etiquetar un arco dirigido con el nombre de los nodos que une, siempre se coloca
primero al nodo de donde viene y después el nodo a donde va, esto es, un arco dirigido del nodo
A al nodo B debe etiquetarse como AB y no como BA, otra manera es A B.
4. Ligadura: Se llama ligadura cuando el flujo a través de un arco ocurre en cualquier dirección,
se supone que ese flujo será en una dirección, en la seleccionada, y no se tendrá flujos
simultáneos en direcciones opuestas.
5. Trayectoria: Una trayectoria entre dos nodos es una sucesión de arcos distintos que unen el
nodo inicial con el nodo final.
6. Ciclo: Un ciclo es una trayectoria que comienza y termina en el mismo nodo.
7. Árbol de Expansión: es una red conexa para los n nodos, que contiene ciclos no dirigidos.
Todo árbol de expansión tiene justo 1n arcos, ya que éste es el número mínimo de
arcos necesarios para tener una red conexa y el máximo número posible para que no
haya ciclos no dirigidos.
EJEMPLOS DE REDES 8.1
Transporte
Los 7 puentes de Königsberg (Euler 1736)
Internet.
Etc.
Nota: un principio fundamental en una red es que todo lo que entra a un nodo
debe ser igual a lo que sale.
8.2 SOLUCIÓN DE OPTIMIZACIÓN DE REDES POR PROGRAMACIÓN LINEAL
Los modelos más comunes de optimización de redes son:
Redes de transito urbano.
Transporte y transbordo.
Redes de la ruta más corta.
Redes de flujo máximo.
Árbol de expansión mínima.
Investigación de Operaciones para Administración . Sesión 8
3
8.2.1 TRANSPORTE Y TRANSBORDO
El modelo de transbordo se puede considerar como un ampliación del modelo de transporte, en
donde los artículos que se deben transportar de una fuente a un destino puede ser que tengan que
pasar o almacenarse primeramente en otro centro, de tal forma que se requiere de un transbordo
para llegar al centro de destino. La solución de este tipo de problema se realiza con el principio
de equilibrio de la red para los nodos de transbordo: Todo lo que entra en un nodo debe salir.
Por otro lado, los nodos de las fuentes son nodos emisores y los nodos de la demandas son
nodos receptores o sumidero
EJEMPLO 8.2
Una compañía tiene un solo campo petrolero desde donde envía todo el petróleo, a través de un
oleoducto, a uno de dos centros de embarque, en donde se almacena en buques tanques para su
envío a refinerías de los estados.
La oferta diaria en el campo es de 2,000 barriles. Deben considerarse los costos del
oleoducto, los costos de embarque y las cantidades de petróleo que pueden enviarse a través de
los oleoductos. Los costos del oleoducto y las capacidades diarias de éste se muestran en la tabla
siguiente.
Instalación de
envío
Costo por barril Capacidad del oleoducto
(en barriles)
B1 $0.20 1000
B2 $0.15 500
En la tabla siguiente se presentan los costos de embarque de cada estación de embarque a cada
refinería y las demandas diarias de las refinerías.
Refinería Núm.
De ubicación
Costo de transporte por barril del
Centro 1 Centro 2
Demanda
diaria
R1 $0.10 $0.15 600
R2 $0.20 $0.25 800
Se desea minimizar los costos de transportación, para mandar el petróleo del campo petrolero a
las refinerías R1 y R2, pasando por las instalaciones de envío B1 y B2.
8.2.2 RUTA MÁS CORTA
Los problemas de redes para determinar la ruta más corta entre un nodo y otro se pueden plantear
como problemas lineales, en donde las variables de decisión son binarias, puesto que de un nodo
a otro solo debe existir una posibilidad, se recorre el arco o no se recorre.
EJEMPLO 8.4
La compañía de muebles “El mueble moderno” quiere transportar comedores de su planta en
Naucalpan, Estado de México a una distribuidora que se encuentra en Tlalpan, en el sur de la
ciudad de México, en el menor tiempo posible. Las rutas que enlazan estas dos instalaciones
forman la red que se muestra a continuación.
Elaboró Dr. Eduardo Gutiérrez González
4
En donde las distancias son los tiempos de viaje del camión dados en minutos. Formule el
problema como un problema lineal y resuélvalo.
Solución
Sean las variables binarias ijx que representan si existe traslado de la ciudad i a la j,
!EJEMPLO 8.1;
!FUNCIÓN OBJETIVO;
MIN=10*X12+12*X13+20*X25+22*X24+15*X35+12*X34+10*X46+10*X56;
!RESTRICCIONES EN LOS NODOS;
X13+X12=1;
X35+X34=X13;
X25+X24=X12;
X25+X35=X56;
X34+X24=X46;
X56+X46=1;
@BIN(X12);@BIN(X13);@BIN(X25);@BIN(X24);@BIN(X35);
@BIN(X34);@BIN(X46);@BIN(X56);
Global optimal solution found at step: 1
Objective value: 34.00000
Branch count: 0
Variable Value Reduced Cost
X12 0.0000000 10.00000
X13 1.000000 12.00000
X25 0.0000000 20.00000
X24 0.0000000 22.00000
X35 0.0000000 15.00000
X34 1.000000 12.00000
X46 1.000000 10.00000
X56 0.0000000 10.00000
La ruta más corta: ir de la ciudad 1 a la 3, luego a la 4 y finalmente a la 6.
Con un tiempo mínimo de 34 minutos.
EJERCICIO 1
9.3.1 Usted debe hacer un viaje en auto a otra ciudad que nunca ha visitado. Estudia un plano
para determinar la ruta más corta a su destino. Según la ruta que elija, hay otras cinco ciudades
(llamadas A, B, C, D, E) por las que puede pasar en el camino. El plano muestra las millas de
cada carretera que es una conexión directa entre dos ciudades sin que otra intervenga. Estas cifras
12
10
15
12
20
22
10
10 1
3
2
5
4
6
Investigación de Operaciones para Administración . Sesión 8
5
se resumen en la siguiente tabla, donde un guión indica que no hay conexión directa sin pasar por
otras ciudades.
Millas entre ciudades adyacentes
Pueblo A B C D E Destino (T)
Origen O) 40 60 50 - - -
A 10 - 70 - -
B 20 55 40 -
C - 50 -
D 10 60
E 80
a) Formule este problema como uno de la ruta más corta trazando una red donde los nodos son
ciudades, los arcos, carreteras, y los números la distancia en millas.
b) Use el algoritmo de ruta más corta para resolver este problema.
c) Formule y resuelve un modelo en hoja de cálculo.
d) Si cada número en la tabla representa su costo (en dólares) de manejar de una ciudad a la
siguiente, ¿obtiene la ruta de costo mínimo con la respuesta del inciso b o c?
e) Si cada número en la tabla representa su tiempo (en minutos) para manejar de una ciudad a la
siguiente, ¿obtiene la ruta de tiempo mínimo con la respuesta del inciso b o c?
EJERCICIO 2
9.3.2 En un pequeño aeropuerto que está creciendo, la compañía aérea local piensa comprar un
tractor nuevo para mover el tren de carros que llevan y traen el equipaje de los aviones. Dentro de
tres años se instalará un nuevo sistema mecanizado de transporte de equipaje, por lo que después
no se necesitará el tractor. No obstante, tendrá una carga de trabajo pesada y los costos de
operación y mantenimiento aumentarán rápidamente con el tiempo y podrían resultar costeable
reemplazarlo en uno o dos años. La siguiente tabla proporciona los costos descontados netos
totales asociados con la compra del tractor (precio de compra menos valor de venta del tractor en
uso más costos de operación y mantenimiento) al final del año i y si se reemplaza al final del año
j (en donde el momento presente es el año 0).
i\ j 1 2 3
0 $8,000 $18,000 $31,000
1 $10,000 $21,000
2 $12,000
El problema es determinar en qué momento (si existe) debe reemplazarse el tractor para
minimizar el costo total durante los tres años.
a) Formule el problema como uno de la ruta más corta y trace su diagrama de red.
b) Resuelva el modelo.
EJERCICIO 3
9.3.5 Un vuelo de Speedy Airlines está a punto de despegar a Seattle sin escalas a Londres.
Existe cierta flexibilidad para elegir la ruta precisa, según las condiciones del clima. La siguiente
red describe las rutas posibles consideradas, donde SE y LN son Seattle y Londres,
respectivamente, y los otros nodos representan varios lugares intermedios. El viento a lo largo de
cada arco afecta mucho el tiempo de vuelo (y por ende el consumo de combustible). Con base en
el informe meteorológico actual, junto los arcos se muestran los tiempos de vuelo (en horas).
Elaboró Dr. Eduardo Gutiérrez González
6
Debido al alto costo de combustible, la administración ha establecido la política de elegir la ruta
que minimiza el tiempo total de vuelo.
a) ¿Qué papel tienen las “distancias” en este problema?
El tiempo depende de la distancia y del viento.
EJERCICIO 4 9.3.6 La compañía Quick ha averiguado que un competidor planea lanzar un nuevo tipo de
producto con ventas potenciales muy grandes. Quick ha trabajado en un producto similar
programado para salir dentro de 20 meses. Sin embargo, la investigación está casi terminada y
ahora la administración quiere lanzar el producto más rápidamente para hacer frente a la
competencia.
Se deben lograr cuatro etapas independientes que incluyen lo que falta de la investigación
que por el momento se lleva a cabo a paso normal. No obstante, cada etapa se puede realizar en
un nivel de prioridad o de quiebre para acelerar la terminación y estos son los únicos niveles
considerados en las últimas tres etapas. Los tiempos requeridos para cada nivel se muestran en la
siguiente tabla. (Los tiempos entre paréntesis en el nivel normal se han eliminado por ser muy
largos.)
Se dispone de $30 millones para las cuatro etapas. El costo (en millones de dólares) para
cada nivel es:
La administración desea determinar el nivel al que debe realizar cada una de las cuatro
etapas para minimizar el tiempo total hasta la comercialización del producto sujeto a las
restricciones de presupuesto.
Investigación de Operaciones para Administración . Sesión 8
7
a) Formule éste como un problema de la ruta más corta. La gráfica es:
8.2.3 FLUJO MÁXIMO
Los problemas de redes para determinar el flujo máximo que se resuelven por programación
lineal, tienen la característica de Maximizar el flujo a través de la red de distribución de la fuente
a su destino, por ejemplo:
La red de distribución de flujo de transporte.
La red de distribución de una compañía a sus clientes.
La red de suministros de los proveedores a sus fábricas.
La red de flujo de gas por un sistema de tuberías.
La red de flujo de agua.
EJEMPLO 8.7
Suponga que la compañía nacional de Substancias populares (CONASUPO) tiene un programa
anual de costalera. Ésta se compra de dos fábricas, una en Mérida (nodo 2) con capacidad de
producción máxima de 10 millones de costales al año y otra en Saltillo (nodo 3) con capacidad de
producción máxima de 7 millones de costales al año. Los excedentes en la fábrica de Mérida
pueden transferirse a la planta de Saltillo.
La disponibilidad de transporte entre las dos fábricas permite un máximo de 8 millones de
costales por año. Hay tres centros almacenadores: en la ciudad de México (nodo 5), Guadalajara
(nodo 4) y Oaxaca (nodo 6). La tabla siguiente proporciona la capacidad máxima anual de
transporte de las fábricas a los centros almacenadores.
A: Ciudad
De: ciudad México Guadalajara Oaxaca
Saltillo 4 8
Mérida 3 2 3
Los excedentes de Guadalajara (nodo 4) y Oaxaca (nodo 6) pueden transferirse a la ciudad
de México (nodo 5), la capacidad máxima anual es de 3 y 4 millones de costales,
respectivamente.
Una vez en los centros almacenadores, los costales se entregan a los ejidatarios de la región.
La capacidad máxima anual de entrega es de 4 millones en la región almacenadora de
Guadalajara, 7 millones en la región del Distrito Federal y 5 millones en la región de Oaxaca.
Elaboró Dr. Eduardo Gutiérrez González
8
La pregunta es ¿Cuál es el flujo máximo anual de costales nuevos que pueden circular en
este sistema?, utilice un modelo de PL. El problema se representa gráficamente en la red
siguiente.
En donde las distancias son los flujos máximos de transporte de nodo a nodo.
Solución
Sean las variables enteras ijx que representan el flujo en millones de costales transportados del
nodo i al j,
!FUNCIÓN OBJETIVO;
MAX=X71;
!RESTRICCIONES DE CAPACIDAD;
X13<=7;
X12<=10;
X34<=8;
X35<=4;
X23<=8;
X24<=2;
X25<=3;
X26<=3;
X45<=3;
X47<=4;
X57<=7;
X65<=4;
X67<=5;
!RESTRICCIONES EN LOS NODOS;
X12+X13=X71;
X13+X23=X34+X35;
X12=X23+X24+X25+X26;
X24+X34=X45+X47;
X25+X35+X45+X65=X57;
X26=X65+X67;
X47+X57+X67=X71;
Global optimal solution found at step: 4
Objective value: 14.00000
Variable Value Reduced Cost
X71 14.00000 0.0000000
X13 7.000000 0.0000000
X12 7.000000 0.0000000
X34 6.000000 0.0000000
X35 1.000000 0.0000000
7
10
8
4
3
3
8 2 1
3
2
4
6
7 5
3
4
4
7
5
Investigación de Operaciones para Administración . Sesión 8
9
X32 8.000000 0.0000000
X24 1.000000 0.0000000
X25 3.000000 0.0000000
X26 3.000000 0.0000000
X45 3.000000 0.0000000
X47 4.000000 0.0000000
X57 7.000000 0.0000000
X67 3.000000 0.0000000
El flujo máximo es de 14 millones de costales al año. Se distribuyen:
Del nodo 1 al 2 siete millones y al 3 siete millones.
Del nodo 2 al 4 un millón, al nodo 5 tres millones, al nodo seis 3 millones y 0 al nodo 3.
Del nodo 3 al 2 ocho millones, al nodo 4 seis millones, al nodo 5 un millón
Del nodo 4 al 5 tres millones y al nodo 7 cuatro millones.
Del nodo 5 al nodo 7 siete millones.
Finalmente del nodo 6 al nodo 7 tres millones y nada al nodo 5.
EJERCICIO 5
9.5.3 El diagrama de abajo describe un sistema de acueductos que se origina en tres ríos (R1, R2
y R3) y termina en una ciudad importante (nodo T), donde los otros nodos son puntos de unión
del sistema.
Utilice unidades de miles de acres-pie; las siguientes tablas muestran la cantidad máxima
de agua que puede bombearse, a través de cada acueducto, cada día.
A
De
A
De
A
De
A B C D E F T
R1 75 65 - A 60 45 - D 120
R2 40 50 60 B 70 55 45 E 190
R3 - 80 70 C - 70 90 F 130
La comisión del agua desea determinar el plan que maximice el flujo de agua hacia la ciudad. a) Formule este problema como un problema de flujo máximo; identifique un origen, un destino y
los nodos de trasbordo, y trace la red completa que muestre la capacidad de cada arco.
b) Formule y resuelva el modelo.
EJEMPLO 8.9
R
1
R
2
R
3
A
B
C
D
E
F
T
75
65
40
50
60
80
70
60
55
90
45
70
45
70
120
190
130
Elaboró Dr. Eduardo Gutiérrez González
10
9.5.4 La Texago Company Tiene cuatro campos de petróleo, cuatro refinerías y cuatro centros de
distribución. Una fuerte huelga en la industria del transporte ha reducido mucho la capacidad de
Texago para enviar petróleo de sus campos a las refinerías y para enviar productos derivados del
petróleo de las refinerías a los centros de distribución. Use unidades en miles de barriles de
petróleo crudo (y su equivalente en productos refinados); las tablas siguientes muestran el
número máximo de unidades que puede enviar al día de cada campo a cada refinería y de éstas a
cada centro de distribución.
La administración de la Texago desea determinar un plan de cuántas unidades enviar de cada
campo petrolero a cada refinería y de cada refinería a cada centro de distribución de manera que
se maximice el número total de unidades que llegan a los centros de distribución.
a) Bosqueje un plano que muestre la ubicación de los campos, refinerías y centros de distribución de
Texago.
No es necesario y se necesita un mapa de EUA.
Agregue el flujo del petróleo crudo y de los productos del petróleo a través de la red de
distribución.
b) Dibuje de nuevo la red alineando en una columna los nodos de los campos, en otra los de
refinerías en una tercera los de centros de distribución. Después agregue arcos para mostrar el
flujo posible.
c) Modifique la red del inciso b para formular este problema.
Investigación de Operaciones para Administración . Sesión 8
11
Solución.
MAX=Xa1+Xb1+Xc1+Xd1+Xa2+Xb2+Xc2+Xd2+Xa3+Xb3+Xc3+Xd3+Xa4+Xb4+Xc4+Xd4;
Xa1+Xb1+Xc1+Xd1 = X1A+X1B+X1C+X1D;
Xa2+Xb2+Xc2+Xd2 = X2A+X2B+X2C+X2D;
Xa3+Xb3+Xc3+Xd3 = X3A+X3B+X3C+X3D;
Xa4+Xb4+Xc4+Xd4 = X4A+X4B+X4C+X4D;
X1A+X2A+X3A+X4A = XAa+XAb+XAc+XAd;
X1B+X2B+X3B+X4B = XBa+XBb+XBc+XBd;
X1C+X2C+X3C+X4C = XCa+XCb+XCc+XCd;
X1D+X2D+X3D+X4D = XDa+XDb+XDc+XDd;
XAa+XBa+XCa+XDa = Xa1+Xa2+Xa3+Xa4;
XAb+XBb+XCb+XDb = Xb1+Xb2+Xb3+Xb4;
XAc+XBc+XCc+XDc = Xc1+Xc2+Xc3+Xc4;
XAd+XBd+XCd+XDd = Xd1+Xd2+Xd3+Xd4;
X1A <= 11;
X2A <= 5;
X3A <= 7;
X4A <= 8;
X1B <= 7;
X2B <= 4;
X3B <= 3;
X4B <= 9;
X1C <= 2;
X2C <= 8;
X3C <= 12;
X4C <= 4;
X1D <= 8;
X2D <= 7;
X3D <= 6;
X4D <= 15;
XAa <= 5;
XBa <= 8;
XCa <= 4;
XDa <= 12;
XAb <= 9;
XBb <= 7;
XCb <= 6;
XDb <= 11;
XAc <= 6;
XBc <= 9;
XCc <= 7;
XDc <= 9;
XAd <= 4;
XBd <= 5;
XCd <= 8;
XDd <= 7;
Objective value: 108.0000
Total solver iterations: 33
Variable Value Reduced Cost
XB1 27.00000 0.000000
XC1 1.000000 0.000000
XA2 16.00000 0.000000
XC2 3.000000 0.000000
XC3 27.00000 0.000000
XA4 10.00000 0.000000
Elaboró Dr. Eduardo Gutiérrez González
12
XD4 24.00000 0.000000
X1A 11.00000 0.000000
X1B 7.000000 0.000000
X1C 2.000000 0.000000
X1D 8.000000 0.000000
X2B 4.000000 0.000000
X2C 8.000000 0.000000
X2D 7.000000 0.000000
X3A 7.000000 0.000000
X3B 3.000000 0.000000
X3C 11.00000 0.000000
X3D 6.000000 0.000000
X4A 6.000000 0.000000
X4B 9.000000 0.000000
X4C 4.000000 0.000000
X4D 15.00000 0.000000
XAA 5.000000 0.000000
XAB 9.000000 0.000000
XAC 6.000000 0.000000
XAD 4.000000 0.000000
XBA 8.000000 0.000000
XBB 1.000000 0.000000
XBC 9.000000 0.000000
XBD 5.000000 0.000000
XCA 4.000000 0.000000
XCB 6.000000 0.000000
XCC 7.000000 0.000000
XCD 8.000000 0.000000
XDA 9.000000 0.000000
XDB 11.00000 0.000000
XDC 9.000000 0.000000
XDD 7.000000 0.000000
El flujo máximo es de 108 barriles.
8.3 ÁRBOL DE EXPANSIÓN MÍNIMA
El problema del árbol de expansión mínima juega un papel importante en los problemas de redes
de flujo. Por ejemplo, para resolver el problema que determine la ruta más corta entre dos nodos
de una red, podemos construir un árbol que tenga una raíz (inicio), otro ejemplo, lo podemos
referir a las redes en las que se requiere que su costo para mandar cierto flujo sea mínimo.
En la presente sección revisaremos los algoritmos más comunes para resolver un problema
de árboles de expansión mínima.
Un árbol lo podemos definir como una red que es conectada y sin circuitos. Por ejemplo,
en la red de la figura 1 se muestra un árbol.
Investigación de Operaciones para Administración . Sesión 8
13
8.3.1 DESCRIPCIÓN DEL PROBLEMA
Considérese el siguiente problema: En un lago hay n islas, denotadas ,,....,, 321 nXXXX y se
desea construir puentes para comunicarlas. La construcción del puente ji XX , cuesta ijC
pesos. El problema consiste en determinar donde construir los puentes de tal manera que cada par
de islas queden conectadas por medio de éstos y que el costo total de construcción sea el mínimo.
Sea AXG , una gráfica no dirigida, donde el conjunto de vértices X representa al
conjunto de islas y cada elemento ji XX , del conjunto de aristas A representa la posible
construcción de un puente entre las islas iX y jX . Sea c una función que asocia, a cada
elemento de A, el costo de construcción del puente respectivo. Obsérvese que una solución para
este problema es una gráfica parcial AXT , de G.
Esta gráfica parcial deberá cumplir los tres puntos siguientes:
a. T es conexa, puesto que se desea que exista una cadena que una a todo par de vértices.
b. T no deberá tener ciclos puesto que, de ser así, se incurrirá en un costo innecesario.
c. El costo de T deberá ser mínimo.
Con base en lo anterior se definen los siguientes conceptos:
Definición: Un árbol es una gráfica AXT , conexa y acíclica.
La siguiente gráfica es un árbol:
1
2 3
4
5
6
7
8
9
Elaboró Dr. Eduardo Gutiérrez González
14
Definición 1: Sea AXG , una gráfica no dirigida. Un árbol expandido de G es una
gráfica parcial AXT , de G que es un árbol. Obsérvese la gráfica.
Nótese que entonces la gráfica T que será solución para el problema de las islas debe ser un
árbol expandido de G. Por otro lado, obsérvese que una gráfica puede tener varios árboles
expandidos. Por esta razón, existen diferentes alternativas de solución para el problema de las
islas; sin embargo se tiene interés en la mejor de todas ellas, es decir, aquella con costo total de
construcción mínimo. Se definirá entonces, el costo de un árbol.
Considérese una función p que asocia una moneda a cada arista de una gráfica. La función
puede representar costos, distancia, tiempo, etc. En el caso del problema de las islas la función p
fue denotada con la letra c y representa el costo de construcción de un puente.
Definición: La solución óptima del problema está dada por el árbol expandido de peso
mínimo asociado a la gráfica G.
8.3.2 CARACTERIZACIÓN DE UN ÁRBOL
En el siguiente teorema se postulan las equivalencias de las definiciones de árbol. De tal forma
que las propiedades expuestas en el teorema para los árboles son fundamentales para caracterizar
las bases del problema de programación lineal que se asocia al problema de árboles de expansión
mínima.
2
1
3
4
4
1
3
GRÁFICA G
ÁRBOL NO EXPANDIDO DE G ÁRBOL EXPANDIDO DE G
1 2
4
1
2
3
4
Investigación de Operaciones para Administración . Sesión 8
15
Teorema 1
Sea AXG , una gráfica con n vértices, supóngase que 2n . Los postulados
siguientes son equivalentes y caracterizan un árbol.
G es conexa y acíclica (sin circuitos).
G es acíclica y tiene 1n aristas ( arcos).
Existen G una trayectoria única entre cada par de nodos (vértices).
G no tiene circuitos, pero exactamente uno se forma al añadir un arco.
G es conectada, pero deja de serlo si algún arco se elimina.
En general, para una red dada G, existen formas algorítmicas para determinar cuando la red
es un árbol, pero en el trabajo de la investigación no tendremos el problema de la comprobación
de que la red es un árbol.
BOSQUES Y ÁRBOLES DE EXPANSIÓN
Un conjunto de arcos AF se dice que forman un bosque en una red G, si cada componente de
la subred compuesta por arcos de F y los nodos incidentes a ella conforman un árbol. En otras
palabras, F es un bosque si y solo si no se incluyen circuitos elementales en F. Por ejemplo, los
arcos más gruesos en la siguiente figura forman un bosque, si incluimos los nodos incidentes se
tiene en cada caso un árbol.
Un árbol de expansión de la red G es un árbol que pasa por cada nodo de G, ver figura
siguiente.
Elaboró Dr. Eduardo Gutiérrez González
16
8.3.3 ALGORITMOS PARA RESOLVER PROBLEMAS DEL ÁRBOL DE EXPANSIÓN MÍNIMA
Primeramente notamos que una característica especial de los problemas de árbol de expansión
mínima consiste en que los arcos no son dirigidos. Es decir, ji, ó ij, se refieren al mismo
arco.
Los tres algoritmos que revisaremos en esta subsección son: Kruskal, Prim y Sollin, los
cuales tienen la característica de ser tipo “Glotón”, en el sentido de que en cada paso aumentan
un arco de costo mínimo como candidato de la lista, siempre y cuando este arco no forme ningún
circuito con los arcos ya seleccionados. Los tres algoritmos mantienen un bosque que contiene
arcos que ya han sido seleccionados y se aumenta uno ó más arcos para aumentar el tamaño del
bosque.
Para el algoritmo de Kruskal, la lista de candidatos es la red completa; para el algoritmo de
Prim, el bosque es un único árbol más un conjunto de nodos aislados y la lista de candidatos
contiene todos los arcos entre el árbol único y los nodos que no están en él. El algoritmo de
Sollin es un hibrido que mantiene varias componentes en el bosque, como el algoritmo de
Kruskal, pero se aumentan varios arcos en cada iteración, seleccionando (como en el algoritmo
Prim) el arco de costo mínimo que conecta cada componente del bosque a los nodos que no están
en esa componente.
La programación matemática tiene otra forma útil de ver el problema de árbol de expansión
mínima; se puede formular un problema de árbol de expansión mínima como un modelo de
programación entera y usar argumentos de programación lineal para establecer otra prueba de la
validación del algoritmo de kruskal.
1. ALGORITMO DE KRUSKAL
El propósito es determinar el árbol de expansión cuyo “costo o peso” es mínimo en una red
conectada G con N nodos y función de costo RAC : conocida.
Descripción
PASO 1: (Inicio) Ordenar el conjunto de arcos en forma no decreciente respecto a la función de
costos. Sea mjjj ,,, 21 los arcos ordenados, entonces hacer AIk ,1,0 .
PASO 2: (Añadir arco) Si el arco ij no forma circuito con el conjunto de arcos de A , entonces
rjAA y hacer 1: kk e ir al paso 3 y no aumentar k.
PASO 3: (Criterio de terminación) Si 1 nk hacer 1: II y regresar al paso 2. En caso
contrario ANT , es el árbol de expansión mínima.
El tiempo de corrida del algoritmo Kruskal se compone del tiempo para ordenar los arcos y
el tiempo para detectar ciclos. Para una red arbitrariamente grande, el ordenamiento requiere
nmOnmOmmO logloglog 2 de tiempo, en donde m es cantidad de arcos y n cantidad de
nodos. Finalmente, tenemos que el tiempo para detectar un ciclo depende del método que se use
en este paso.
EJEMPLO 8.6
En la siguiente red encontrar el árbol de expansión mínima, con el algoritmo de Kruskal.
Investigación de Operaciones para Administración . Sesión 8
17
Solución
Paso 1. Ordenamos los arcos en forma no decreciente de flujo.
)5,2(
)2,1(
)5,3(
)9,7(
)9,6(
)8,4(
)7,6(
)5,4(
)3,2(
)6,3(
)4,2(
)9,8(
)7,5(
)8,5(
)3,1(
)4,1(
)6,5(
)8,7(
18
17
16
15
14
13
12
11
10
9
8
7
6
5
4
3
2
1
j
j
j
j
j
j
j
j
j
j
j
j
j
j
j
j
j
j
Paso 2. Añadimos arcos.
No. Iteración Arco agregado A Valor de k
1 )8,7(1 j 1jA 1
2 )6,5(2 j 21, jjA 2
3 )4,1(3 j 321 ,, jjjA 3
4 )3,1(4 j 4321 ,,, jjjjA 4
5 )8,5(5 j 54321 ,,,, jjjjjA 5
6 )7,5(6 j 54321 ,,,, jjjjjA 5
7 )9,8(7 j 754321 ,,,,, jjjjjjA 6
8 )4,2(8 j 8754321 ,,,,,, jjjjjjjA 7
9 )6,3(9 j 98754321 ,,,,,,, jjjjjjjjA 8
Finalmente el árbol de expansión mínima de la red queda de la siguiente forma:
5 9 13 1 10 11
8 3
6
1 2 5 7 9
8 4
14 15 7 12
2 8 10 5 0 6
11
Elaboró Dr. Eduardo Gutiérrez González
18
De donde, la extensión mínima es 3588655210 .
2. ALGORITMO DE PRIM
Un método alternativo de solución para el problema del árbol de peso mínimo de una red conexa
con n nodos, es el algoritmo de Prim. Este algoritmo consiste en considerar, inicialmente, una
red formada por cualquier nodo de la red original, después se agregará el arco de menor peso
adyacente a él y su otro extremo. Luego, se aumenta el arco más pequeño, que tenga exactamente
un extremo en la red formada, junto con su otro extremo. Se procede de esta manera,
sucesivamente, hasta tener 1n arcos en la red generada.
A diferencia del algoritmo de Kruskal, la red construida en cada iteración es conexa y
además tiene 1n arcos, luego, esta red es un árbol expandido de la red original. Debe notarse
también que el algoritmo termina en 1n iteraciones exactamente; esto constituye otra
diferencia con el algoritmo de Kruskal.
Descripción
PASO 1: (Inicio) sea 0x (arbitrario) elemento de N y 0k . Sea 0xNO y 0A .
PASO 2: (Añadir un arco). Sea kF el conjunto de arcos de A que tienen exactamente un extremo
en kN . Sea kj el arco de costo mínimo en kF y denote por kx el extremo de kj que no
pertenece a kF . Hacer
kkK xNN 1 y kkk jAA 1 .
PASO 3: Hacer 1: kk . Si 1 nk regrese al paso 2. En caso contrario, termine. La red
111 , nnn ANT representa el árbol de expansión mínima de G.
Para analizar el tiempo de ejecución del algoritmo de Prim, consideramos de cada una de
las 1n iteraciones que el algoritmo desarrolla como si aumentara un arco a la vez al árbol, hasta
que se tiene un árbol de expansión con 1n arcos. En cada iteración el algoritmo selecciona el
arco de costo mínimo en el corte SS, . Si podemos revisar la lista completa de arcos para
identificar el arco de costo mínimo, esta operación requiere un tiempo de ejecución de mO , lo
que nos da una cota de tiempo de nmO para el algoritmo. Por lo cual podemos afirmar que el
algoritmo se ejecuta en un tiempo mnO .
5 1
8
3 6
1 2 5 7 9
8 4
2 8 5 0 6
Investigación de Operaciones para Administración . Sesión 8
19
EJEMPLO 8.7
En la red anterior encontrar el árbol de expansión mínima, usando el algoritmo de Prim.
Solución
Paso 1. Elegir un nodo arbitrario. Por ejemplo, el nodo 5
Paso 2. Añadir arcos. Se elige el nodo 5, utilice la notación del método anterior para los arcos
Valor
de k kF kN
1 )5,2(),5,3(),5,4(),7,5(),8,5(),6,5( 6,5
2 )9,6(),7,6(),6,3(),5,2(),5,3(),5,4(),7,5(),8,5( 8,6,5
3 )8,4(),9,8(),8,7(),9,6(),7,6(),6,3(),5,2(),5,3(),5,4(),7,5( 7,8,6,5
4 )9,7(),8,4(),9,8(),9,6(),7,6(),6,3(),5,2(),5,3(),5,4(),7,5( 9,7,8,6,5
5 )5,3(),3,2(),3,1(),9,7(),8,4(),9,6(),7,6(),6,3(),5,2(),5,3(),5,4(),7,5( 3,9,7,8,6,5
5 )4,1(),2,1(),5,3(),3,2(),3,1(),9,7(),8,4(),9,6(),7,6(),5,2(),5,3(),5,4(),7,5( 1,3,9,7,8,6,5
6 )8,4(),4,2(),4,1(),2,1(),5,3(),3,2(),9,7(),8,4(),9,6(),7,6(),5,2(),5,3(),5,4(),7,5( 4,1,3,9,7,8,6,5
7 )8,4(),4,2(),4,1(),2,1(),5,3(),3,2(),9,7(),8,4(),9,6(),7,6(),5,2(),5,3(),5,4(),7,5( 2,4,1,3,9,7,8,6,5
La red queda igual que en la pregunta anterior.
3. ALGORITMO DE SOLLIN
Podemos usar las condiciones de optimalidad para derivar otro algoritmo para el problema de
árbol de expansión mínima. Este algoritmo, lo podemos ver como una versión hibrida de los
algoritmos de Kruskal y Prim. Como en el algoritmo de Kruskal, el algoritmo de Sollin mantiene
una colección de árboles de expansión de los nodos ,,, 321 NNN y aumenta arcos a esa
colección. Sin embargo en cada iteración aumenta arcos de costo mínimo que emanan de esos
árboles, una idea tomada del algoritmo de Prim. Como resultado se obtiene un algoritmo que usa
estructuras de datos sencillas y corre en un tiempo nmO log . El algoritmo de Sollin desarrolla
repetidamente las dos siguientes operaciones básicas.
Vecino más cercano. ),,( kkk jiN . Esta operación toma como inicio un árbol que une a los
nodos kN y determina un arco ),( kk ji de costo mínimo entre todos los arcos que emanan de kN ,
es decir
kkijji NjNiAjiCCkk
y ,,),(|min .
Para desarrollar esta operación necesitamos revisar todos los arcos en las listas de
adyacencia de los nodos en kN y encontrar el arco de costo mínimo entre esos arcos que tengan
un punto final que no esté en kN .
Acoplar kk ji , . Esta operación toma como inicio dos nodos ki y kj y si los dos nodos están en
distintos árboles entonces une esos dos árboles en un solo árbol.
Elaboró Dr. Eduardo Gutiérrez González
20
Descripción
PASO 1: Para cada Ni hacer *,TiNi .
PASO 2: Mientras 1* nT entonces para cada árbol kN haga kkk jiN ,, , donde el arco
kk ji , es el árbol de costo mínimo entre todos los que emanan de kN es decir,
kkij NjNiAjijic ,,),(|),(min y vaya al paso 3.
PASO 3: Si los nodos ki y kj están en distintos árboles una kk ji , y actualice
kk jiTT ,: ** y regrese al paso 2.
El algoritmo de Sollin tiene un tiempo de ejecución de nmO log .
EJEMPLO 8.8
En la red anterior encontrar el árbol de expansión mínima, usando el algoritmo de Sollin.
Solución
Iteración 1
Iteración 2
3 6
1 2 5 7 9
8 4
3 6
1 2 5 7 9
8 4
Investigación de Operaciones para Administración . Sesión 8
21
Iteración 3
Finalmente obtenemos la red buscada, con extensión mínima de 35
EJEMPLO 8.9
Suponga que la siguiente red carretera es un mapa y el número en cada arco representa la máxima
elevación encontrada en el trayecto del arco. Un viajero planea manejar del nodo 1 al nodo 12, a
este viajero no le gustan los lugares altos y quisiera encontrar una trayectoria que lo lleve con la
mínima altura. Encontrar la mejor trayectoria para este viajero empleando algún algoritmo de
Sollin del árbol de expansión mínima.
3 6
1 2 5 7 9
8 4
5 1
8 3
6
1 2 5 7 9
8 4
2 8 5 0 6
Elaboró Dr. Eduardo Gutiérrez González
22
Solución Iteración 1
Iteración 2
5
3
1 4
6
8
7 10
11
12 9
2
4 6 6
4 5 2
5 3 1
1 3 7 1
9 7 2 2
5
3
1 4
6
8
7 10
11
12 9
2
5
3
1 4
6
8
7 10
11
12 9
2
Investigación de Operaciones para Administración . Sesión 8
23
Iteración 3.
Iteración 4
La misma observación que en la iteración anterior.
Iteración 5
5
3
1 4
6
8
7 1
0
1
1
1
2
9
2
5
3
1 4
6
8
7 1
0
1
1
1
2
9
2
5
3
1 4
6
8
7 1
0
1
1
1
2
9
2
6
4 5
5 3 1
1 3
1
2
2
Elaboró Dr. Eduardo Gutiérrez González
24
Solución final.
En la siguiente tabla se resumen los tres algoritmos para resolver el problema del árbol de
expansión mínima. Todos ellos son fáciles de implantar y tienen excelentes tiempos de ejecución,
además son muy eficientes en la práctica.
EJERCICIO 6
Encuentre el árbol de expansión mínima en la siguiente red
5
1
8
12 9
2 4 5
1
1
2
3
6
1
2
5
7
9
8
4
5
6 9
20
4
14
15
10
15 20
12
7
5
13
1
5 6