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 1
Elaboró Dr. Eduardo Gutiérrez González
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 n 1 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.
2
Investigación de Operaciones para Administración . Sesión 8
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 Costo por barril Capacidad del oleoducto envío (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 R1 R2
Costo de transporte por barril del Centro 1 Centro 2 $0.10 $0.15 $0.20 $0.25
Demanda diaria 600 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.
3
Elaboró Dr. Eduardo Gutiérrez González
12
15
3
5 10
12
1
20
10
6
10
4 22 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. 2
Solución Sean las variables binarias xij 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 X12 0.0000000 X13 1.000000 X25 0.0000000 X24 0.0000000 X35 0.0000000 X34 1.000000 X46 1.000000 X56 0.0000000
Reduced Cost 10.00000 12.00000 20.00000 22.00000 15.00000 12.00000 10.00000 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
4
Investigación de Operaciones para Administración . Sesión 8
se resumen en la siguiente tabla, donde un guión indica que no hay conexión directa sin pasar por otras ciudades. Pueblo Origen O) A B C D E
A 40
B 60 10
Millas entre ciudades adyacentes C D E 50 70 20 55 40 50 10
Destino (T) 60 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 0 1 2
1 $8,000
2 $18,000 $10,000
3 $31,000 $21,000 $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). 5
Elaboró Dr. Eduardo Gutiérrez González
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. 6
Investigación de Operaciones para Administración . Sesión 8
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. De: ciudad Saltillo Mérida
México 4 3
A: Ciudad Guadalajara 8 2
Oaxaca 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.
7
Elaboró Dr. Eduardo Gutiérrez González
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. 4
8 3
7 1
8
4 2
4
3 5
3
10
7
7
4 2
3
5 6
En donde las distancias son los flujos máximos de transporte de nodo a nodo. Solución Sean las variables enteras xij 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: Objective value: Variable X71 X13 X12 X34 X35
4 14.00000 Value 14.00000 7.000000 7.000000 6.000000 1.000000
Reduced Cost 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000
8
Investigación de Operaciones para Administración . Sesión 8 X32 X24 X25 X26 X45 X47 X57 X67
8.000000 1.000000 3.000000 3.000000 3.000000 4.000000 7.000000 3.000000
0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 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 R1 R2 R3
A A 75 40 -
B 65 50 80
De
C 60 70
A B C
75
R 1
65
R 3
E 45 55 70
De
F 45 90
D E F
T 120 190 130
D
45
40
R 2
60
A
A D 60 70 -
120
70 50
55
B
60
45
80
70 70
C
E
190
T 130
90
F
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
9
Elaboró Dr. Eduardo Gutiérrez González
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.
10
Investigación de Operaciones para Administración . Sesión 8
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: Total solver iterations: Variable XB1 XC1 XA2 XC2 XC3 XA4
Value 27.00000 1.000000 16.00000 3.000000 27.00000 10.00000
108.0000 33 Reduced Cost 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
11
Elaboró Dr. Eduardo Gutiérrez González XD4 X1A X1B X1C X1D X2B X2C X2D X3A X3B X3C X3D X4A X4B X4C X4D XAA XAB XAC XAD XBA XBB XBC XBD XCA XCB XCC XCD XDA XDB XDC XDD
24.00000 11.00000 7.000000 2.000000 8.000000 4.000000 8.000000 7.000000 7.000000 3.000000 11.00000 6.000000 6.000000 9.000000 4.000000 15.00000 5.000000 9.000000 6.000000 4.000000 8.000000 1.000000 9.000000 5.000000 4.000000 6.000000 7.000000 8.000000 9.000000 11.00000 9.000000 7.000000
0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.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.
12
Investigación de Operaciones para Administración . Sesión 8
8.3.1 DESCRIPCIÓN DEL PROBLEMA
Considérese el siguiente problema: En un lago hay n islas, denotadas X 1 , X 2, X 3 ,.... X n , y se desea construir puentes para comunicarlas. La construcción del puente X i , X j cuesta C ij 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 G X , A una gráfica no dirigida, donde el conjunto de vértices X representa al conjunto de islas y cada elemento X i , X j del conjunto de aristas A representa la posible construcción de un puente entre las islas X i y X j . 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 T X , A 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 T X , A conexa y acíclica. La siguiente gráfica es un árbol: 1
2
3
4
5
6
8
9
7
13
Elaboró Dr. Eduardo Gutiérrez González
Definición 1: Sea G X , A una gráfica no dirigida. Un árbol expandido de G es una gráfica parcial T X , A de G que es un árbol. Obsérvese la gráfica. 1 1
2
3 3
4 4
GRÁFICA G
1 1
2
2
4 3
4
ÁRBOL EXPANDIDO DE G ÁRBOL NO EXPANDIDO DE G
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. 14
Investigación de Operaciones para Administración . Sesión 8
Teorema 1 Sea G X , A una gráfica con n vértices, supóngase que n 2 . Los postulados siguientes son equivalentes y caracterizan un árbol. G es conexa y acíclica (sin circuitos). G es acíclica y tiene n 1 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 F A 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.
15
Elaboró Dr. Eduardo Gutiérrez González 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, i, j ó j, i 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 C : A R conocida. Descripción PASO 1: (Inicio) Ordenar el conjunto de arcos en forma no decreciente respecto a la función de costos. Sea j1 , j 2 ,, j m los arcos ordenados, entonces hacer k 0, I 1, A . PASO 2: (Añadir arco) Si el arco j i no forma circuito con el conjunto de arcos de A , entonces A A j r y hacer k : k 1 e ir al paso 3 y no aumentar k. PASO 3: (Criterio de terminación) Si k n 1 hacer I : I 1 y regresar al paso 2. En caso contrario T N , A 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 Om log m O m log n 2 Om log n 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.
16
Investigación de Operaciones para Administración . Sesión 8
8
3 5
9
14
1
6
2
2
8
13
1
15
10
7
5
10
5
7 0
11
4
11
12
9
6
8
Solución Paso 1. Ordenamos los arcos en forma no decreciente de flujo.
j1 (7, 8) j 2 (5, 6) j3 (1, 4)
j 4 (1, 3) j5 (5, 8) j6 (5, 7)
j7 (8, 9) j8 (2, 4) j9 (3, 6)
j10 (2, 3) j11 (4, 5) j12 (6, 7)
j13 (4, 8) j14 (6, 9) j15 (7, 9)
j16 (3, 5) j17 (1, 2) j18 (2, 5)
Paso 2. Añadimos arcos. No. Iteración
Arco agregado
1
j1 (7, 8)
2
j2 (5, 6)
3
j3 (1, 4)
4
j4 (1, 3)
5
j5 (5, 8)
6
j 6 (5, 7)
7
j7 (8, 9)
8
j8 (2, 4)
9
j9 (3, 6)
A A j1
A j1 , j2
A j1 , j 2 , j3
A j1 , j 2 , j3 , j 4
A j1 , j 2 , j3 , j 4 , j5 A j1 , j 2 , j3 , j 4 , j5
A j1 , j 2 , j3 , j 4 , j5 , j7
A j1 , j 2 , j3 , j 4 , j5 , j7 , j8
A j1 , j 2 , j3 , j 4 , j5 , j7 , j8 , j9
Valor de k 1 2 3 4 5 5 6 7 8
Finalmente el árbol de expansión mínima de la red queda de la siguiente forma:
17
Elaboró Dr. Eduardo Gutiérrez González
3
8 6
5
1
1
2 2
8
5
9
7 5
0
4
6
8
De donde, la extensión mínima es 0 1 2 5 5 6 8 8 35 . 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 n 1 arcos en la red generada. A diferencia del algoritmo de Kruskal, la red construida en cada iteración es conexa y además tiene n 1 arcos, luego, esta red es un árbol expandido de la red original. Debe notarse también que el algoritmo termina en n 1 iteraciones exactamente; esto constituye otra diferencia con el algoritmo de Kruskal. Descripción PASO 1: (Inicio) sea x0 (arbitrario) elemento de N y k 0 . Sea NO x0 y A0 . PASO 2: (Añadir un arco). Sea Fk el conjunto de arcos de A que tienen exactamente un extremo en N k . Sea jk el arco de costo mínimo en Fk y denote por xk el extremo de jk que no pertenece a Fk . Hacer N K 1 N k xk y Ak 1 Ak j k . PASO 3: Hacer k : k 1 . Si k n 1 regrese al paso 2. En caso contrario, termine. La red Tn 1 N n 1 , An 1 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 n 1 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 n 1 arcos. En cada iteración el algoritmo selecciona el arco de costo mínimo en el corte S, S . 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 Om , lo que nos da una cota de tiempo de Onm para el algoritmo. Por lo cual podemos afirmar que el algoritmo se ejecuta en un tiempo Omn . 18
Investigación de Operaciones para Administración . Sesión 8 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 1 2 3 4 5 5 6 7
Fk
Nk
(5,6), (5,8), (5,7), (4,5), (3,5), (2,5) (5,8), (5,7), (4,5), (3,5), (2,5), (3,6), (6,7), (6,9) (5,7), (4,5), (3,5), (2,5), (3,6), (6,7), (6,9), (7,8), (8,9), (4,8) (5,7), (4,5), (3,5), (2,5), (3,6), (6,7), (6,9), (8,9), (4,8), (7,9) (5,7), (4,5), (3,5), (2,5), (3,6), (6,7), (6,9), (4,8), (7,9), (1,3), (2,3), (3,5) (5,7), (4,5), (3,5), (2,5), (6,7), (6,9), (4,8), (7,9), (1,3), (2,3), (3,5), (1,2), (1,4) (5,7), (4,5), (3,5), (2,5), (6,7), (6,9), (4,8), (7,9), (2,3), (3,5), (1,2), (1,4), (2,4), (4,8) (5,7), (4,5), (3,5), (2,5), (6,7), (6,9), (4,8), (7,9), (2,3), (3,5), (1,2), (1,4), (2,4), (4,8)
5,6 5, 6, 8 5, 6, 8, 7 5, 6, 8, 7, 9 5, 6, 8, 7, 9,3 5, 6, 8, 7, 9, 3,1 5, 6, 8, 7, 9, 3,1,4 5, 6, 8, 7, 9, 3,1,4,2
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 N1 , N 2 , N 3 , 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 Om log n . El algoritmo de Sollin desarrolla repetidamente las dos siguientes operaciones básicas. Vecino más cercano. ( N k , ik , j k ) . Esta operación toma como inicio un árbol que une a los nodos N k y determina un arco (ik , j k ) de costo mínimo entre todos los arcos que emanan de N k , es decir Cik jk min Cij | (i, j ) A, i N k , y j N k .
Para desarrollar esta operación necesitamos revisar todos los arcos en las listas de adyacencia de los nodos en N k y encontrar el arco de costo mínimo entre esos arcos que tengan un punto final que no esté en N k . Acoplar i k , j k . Esta operación toma como inicio dos nodos ik y jk y si los dos nodos están en distintos árboles entonces une esos dos árboles en un solo árbol. 19
Elaboró Dr. Eduardo Gutiérrez González
Descripción PASO 1: Para cada i N hacer N i i ,T * .
PASO 2: Mientras T * n 1 entonces para cada árbol N k haga N k , ik , jk , donde el arco
ik , jk
es el árbol de costo mínimo entre todos los que emanan de N k es decir, min cij (i, j ) | (i, j ) A, i N k , j N k y vaya al paso 3.
PASO 3:
Si los nodos ik y
jk están en distintos árboles una
T * : T * ik , j k y regrese al paso 2.
ik , jk
y actualice
El algoritmo de Sollin tiene un tiempo de ejecución de Om log n . 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 3
1
2
6
5
4
7
9
8
Iteración 2 3
1
2
4
6
5
7
9
8
20
Investigación de Operaciones para Administración . Sesión 8
Iteración 3 3
1
6
2
5
9
7
4
8
Finalmente obtenemos la red buscada, con extensión mínima de 35 3
8 6
5
1
1
2
2
8
4
5
9
7 5
0
6
8
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.
21
Elaboró Dr. Eduardo Gutiérrez González
4
1
1
3
4 2
Iteración 2
5
5
2
2
3
6
10
1
8
7
3
6
7
7
5
9
Solución Iteración 1
6
4
11
2
1
9
12
4
7
10
2
5
8
11
3
6
9
12
1
4
7
10
2
5
8
11
3
6
9
12
1
22
Investigación de Operaciones para Administración . Sesión 8
Iteración 3. 4
7
1 0
2
5
8
1 1
3
6
9
1 2
1
Iteración 4 La misma observación que en la iteración anterior. 4
7
1 0
2
5
8
1 1
3
6
9
1 2
1
Iteración 5 1
7
4 1 1
6
1 0
3
4 2
5
5
1 1
8
2 2 3
5
6
3
9
1
1 2
23
Elaboró Dr. Eduardo Gutiérrez González
Solución final.
1
1
4
5
5
2
8
2
1
9
12
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 1
5
15 9
14 2 9
4
6
5
6
20 13
10
3
8
5 5
20
15
1 7
12 4 7
6
24
Investigación de Operaciones para Administración . Sesión 8
Caso de estudio 9.2
25
Elaboró Dr. Eduardo Gutiérrez González
26
Investigación de Operaciones para Administración . Sesión 8
8.5 PROBLEMA DEL AGENTE VIAJERO
27