Post on 05-Jul-2015
INTRODUCCIÓN
Hay una multitud de situaciones, en investigación de operaciones que se pueden
modelar y resolver como redes (nodos conectados por ramas). Algunas encuestas
recientes informan que hasta el 70 % de los problemas de programación matemática
en el mundo real se pueden representar con modelos relacionados con redes. La
lista siguiente ilustra algunas aplicaciones posibles de las redes.
1. Diseño de una red de gasoducto marinos para conectar bocas de pozos en el
Golfo de México con un punto de entrega en tierra. El objetivo del modelo es
minimizar el costo de construcción del gasoducto.
2. Determinación de la ruta más corta en una red de carreteras.
3. Determinación de la capacidad máxima (en toneladas anuales) de una red de
tubería para lodo de carbón que une las minas en Wyoming con las centrales
eléctricas en Houston.
4. Determinación del programa de flujo con costo mínimo desde los campos
petroleros hasta las refinerías a través de una red de oleoductos.
5. Determinación del cronograma de las actividades en la construcción de
proyectos.
La solución de esas situaciones y otras pare cuidad se logra con una variedad de
algoritmos de optimización de redes. En este trabajo de investigación se presentará
cinco de esos algoritmos:
1. Árbol de expansión mínima.
2. Algoritmo de la ruta más corta.
3. Algoritmo del flujo máximo.
4. Algoritmo de red capacitada con costo mínimo.
5. Algoritmo de la ruta critica.
1
Las situaciones en las que se pueden aplicar estos algoritmos también se
pueden formular y resolver en forma de programas lineales explícitos. Sin embargo,
los algoritmos propuestos, basados en redes, son más eficientes que el método
símplex.
Teniendo como objetivo exponer de una manera clara los conceptos,
teoremas y aplicaciones, así como de encontrar maneras de aplicar la Teoría de
Redes a situaciones reales y resolver problemas prácticos
2
DESARROLLO
Definiciones para redes.
Una red consiste en una serie de nodos enlazados con arcos (o ramas). La
notación para describir una red es (N, A), donde N es el conjunto de nodos y A es el
conjunto de arcos. Por ejemplo, la red de la figura 1. Se describe como sigue:
N= {1,2 ,3 ,4 ,5 }
A={(1,2 ) , (1,3 ) , (2,3 ) , (2,5 ) , (3,4 ) , (3,5 ) , (4,2 ) , (4,5 ) ,}
Figura 1. Ejemplo de una red (N, A)
Fuente: “investigación de operaciones” autor: Handy A. Taha.
Con cada red se asocia algún tipo de flujo (por ejemplo, flujo de productos
petroleros en un oleoducto t flujos de tráfico de automóviles de carreteras). En
general, el flujo en una red está limitado por la capacidad de sus arcos, que pueden
ser finitos o infinitos.
3
Se dice que un arco es dirigido u orientado si permite un flujo positivo en una
dirección, y flujo cero en la dirección opuesta. Una red dirigida tiene todos sus arcos
dirigidos.
Una ruta es una sucesión de arcos distintos que unen dos nodos pasando por
otros nodos, independiente de la dirección de flujo de cada arco. Una ruta forma un
ciclo si conecta un nodo consigo mismo, pasando por otros nodos. Por ejemplo, en
la figura 1., los arcos (2,3), (3,5) y (5,2) forman un circuito cerrado. Un ciclo es
dirigido si consiste en una ruta de dirigida, por ejemplo (2,3), (3,4) y (4,2) en la figura
1.
Una red conectada es que ella en que cada dos nodos distintos están
enlazados al menos por una ruta. La red de la figura 1. Es un ejemplo de este tipo.
Un árbol es una red conectada que puede consistir sólo en un subconjunto de todos
los nodos en ella, donde no se permiten ciclos, y un árbol de expansión en un árbol
que enlaza todos los nodos en ella, donde no se permiten ciclos. En la figura 2. Se
ven ejemplos de un árbol y de un árbol de expansión para la red de a figura 1.
Árbol
Árbol de expansión
Figura 2. Ejemplos de un árbol y de un árbol de expansión, para la red de la figura 1.
4
Fuente: “investigación de operaciones” autor: Handy A. Taha.
Algoritmo de árbol de expansión mínima.
El algoritmo de árbol de expansión enlaza los nodos de una red, en forma
directa o indirecta, con la mínima longitud de las ramas enlazantes. Una aplicación
característica es en la construcción de carreteras pavimentadas que unen varias
poblaciones. El camino entre dos poblaciones puede pasar por uno o más
poblaciones adicionales. El diseño más económico del sistema de caminos indica que
se minimice la distancia rotal de caminos pavimentados, resultado que se obtiene
implementando el algoritmo de árbol de expansión mínima.
Los pasos del procedimiento son los siguientes. Sea N= {1,2 ,…,n } el
conjunto de nodos de la red, y se definen
Ck = Conjunto de nodos que se han conectado en forma permanente en la
iteración k
C͞k = Conjunto de nodos que todavía se deben conectar en forma
permanente.
Paso 0. El conjunto C0 = Ø y C͞0 = N.
Paso 1. Comenzar con cualquier nodo en el conjunto C͞0 no conectado (o
“inconexo”), e igualar C1 = {i}, con lo que C͞1 = N – {i}. Igualar k = 2.
Paso general k. seleccionar un nado j* en el conjunto no conectado C ͞k – 1 que
produzca el arco más corto a un nodo, en el conjunto conectado Ck-1. Enlazar a j* en
forma permanente con Ck-1 y sacarlo de C͞k – 1, esto es
Ck = Ck-1 + {j*}, C͞k = C͞k – 1 – {j*}
5
Si el conjunto C͞k, de modos no conectados es vacío, detenerse. En cualquier
otro caso, igualar K = K + 1 y repetir el paso.
Ejemplo 1.
Midwest TV Cable Company está en el proceso de proporcionar servicio de
cable a cinco nuevas áreas habitacionales. La figura 3. Representa los enlaces
posibles de TV entre las cinco áreas. Los metros de cable se muestran en cada arco.
Determine la red de cable más económica.
El algoritmo comienza en el nodo 1 (cualquier otro nodo podría ser), con lo
que se obtiene.
C1 = {1}, C͞1 = {2, 3, 4, 5, 6}
Las iteraciones del algoritmo se resumen en la figura 4. Los arcos con línea
delgada son todos los enlaces posibles entre C y C͞. Las ramas gruesas representan
los enlaces permanentes entre los nodos del conjunto conectado (o “convexo”) C, y
la rama con línea interrumpida representa el nuevo enlace (permanente) que se
agrega en cada iteración. Por ejemplo, en la iteración 1, la rama (1,2) es la más corta
(= 1 milla) entre todas las ramas posibles del nodo 1 a los nodos 2, 3, 4 y 5 del
conjunto no conectado C͞1. Por consiguiente, el enlace (1,2) se vuelve permanente y
j* = 2, con lo que se obtiene
C6 = {1,2}, C͞6 = {3, 4, 5, 6}
La solución se expresa con el árbol de expansión mínima que se ve en la
iteración 6, de la figura 4. La cantidad mínima de metros necesarias para
proporcionar el servicio de cable que se desea resulta ser 1 + 3 + 4 + 3 + 5 = 16
metros.
6
Figura 3. Conexiones de cable para Midwest TV Cable Company.
Fuente: “investigación de operaciones” autor: Handy A. Taha.
Iteración 1
7
Iteración 2
Iteración 3
8
Iteración 4
Iteración 5
9
Iteración 6
(Árbol de expansión mínimo)
Figura 4. Iteraciones de la solución para la Midwest TV Cable Company.
Fuente: “investigación de operaciones” autor: Handy A. Taha.
Solución con WinQSB
Tabla de ingreso de datos
Tabla 1. Datos ingresados en WinQSB para ejemplo 1
Fuente: Eira Machado
Solución
10
Tabla 2. Tabla de resultado en WinQSB para ejemplo 1.
Fuente: Eira Machado
Problema da la ruta más corta
En el problema de la ruta más corta se determina ésta, entre una fuente y un
destino, en una red de transporte. Hay otras soluciones que se pueden representar
con el mismo modelo, como se ve en los ejemplos siguientes.
Ejemplo 2.
RenrtCar está desarrollando un plan de reposición de su flotilla de
automóviles para un horizonte de planeación de 4 años, que comienza el 1 de enero
de 2001 y terminan el 31 de diciembre de 2004. Al iniciar cada año se toma la
decisión de si un auto se debe mantener en operación o se debe sustituir. Un
automóvil debe estar en serbio durante 1 año como mínimo, y 3 años como
máximo. La tabla siguiente muestra el costo de reposición en función del año de
adquisición del vehículo y los años que tiene en funcionamiento.
Equipo adquirido al comenzar Costo de reposición ($) para los años en operación
1 2 3
2001 4000 5400 9800
2002 4300 6200 8700
2003 4800 7100 -------
11
2004 4900 ------- -------
Tabla 3. Datos para el ejemplo 2.
Fuente: “investigación de operaciones” autor: Handy A. Taha.
Figura 5. El problema de reemplazo de equipo como problema de ruta más corta.
Fuente: “investigación de operaciones” autor: Handy A. Taha.
El problema se puede formular como una red, en el que los nodos 1 a 5
representan al inicio de los años 2001 a 2005. Los arcos del nodo 1 (año 2001) sólo
pueden alcanzar los nodos 2, 3 y 4, porque un vehículo debe estar en
funcionamiento entre 1 a 3 años. Los arcos desde los otros nodos se pueden
interpretar en forma parecida, la longitud de cada arco es igual al costo de
reposición. La solución del problema equivale a determinar la ruta más corta entre
los nodos 1 y 5.
En la figura 5 se ve la red que resulta. Y haciendo uso del algoritmo de ruta
más corta (el cual se explicará posteriormente) o utilizando algún programa bien
12
sea TORA o WinQSB (Network Modeling) se determina que la ruta más corta, es la
ruta con la línea más gruesa, la cual es 1 3 5. Eso quiere decir que un
automóvil adquirido al iniciar el 2001 (nodo 1) se debe reemplazar pasados 2 años,
el iniciar 2003 (nodo 3). El auto de reposición debe estar en servicio hasta el final de
2004. El costo total de esta política de reposición es $12500 (=$5400 + $7100).
Solución en el programa WinQSB
Ingreso de los datos
Tabla 4. Datos ingresados en WinQSB para ejemplo 2
Fuente: Eira Machado
Solución
Tabla 5. Solución en WinQSB para ejemplo 2
Fuente: Eira Machado
Algoritmo de ruta más corta
En esta sección se presentan dos algoritmos para resolver redes tanto cíclicas
(es decir, que contiene bucles o lazos) como acíclicas:
13
1. El algoritmo de Dijkstra.
2. El algoritmo de Floyd.
El algoritmo de Dijkstra tiene por objeto determinar las rutas más cortas entre el
nodo fuente y todos los demás nodos de la red. El algoritmo de Floyd es general,
porque permite determinar la ruta más corta entre dos nodos cualesquiera en la
red.
Algoritmo de Dijkstra.
Sea ui la distancia más corta del nodo fuente 1 hasta el nodo i, y se define di,j (
≥0) como la longitud del arco (i, j). Entonces el algoritmo define la etiqueta de un
nodo inmediato posterior j como
[u j , i ]=[ui+dij ,i ] , d ij≥0
La etiqueta del nodo de inicio es [0 , �͞ �͞ �͞ �͞ �͞ �͞ �͞ �͞ �͞ �͞ ], que
indica que el nodo no tiene predecesor.
Las etiquetas de nodos en el algoritmo de Dijkstra son de dos clases:
temporales y permanentes. Una etiqueta temporal se modifica si se puede
encontrar una ruta más corta a un nodo. Cuando se ve que no se pueden encontrar
rutas mejores, cambia el estado de la etiqueta temporal a permanente.
Paso 0. Etiquetar el nodo fuente (nodo 1) con la etiqueta permanente
[0 , �͞ �͞ �͞ �͞ �͞ �͞ �͞ �͞ �͞ �͞ ] . Igualar i=1.
Paso i.
a. Calcular las etiquetas temporales [ui+d ij ,i ] para cada nodo j al que pueda
llegarse desde el nodo i, siempre y cuando j no tenga etiqueta permanente. Si el
14
nodo j ya está etiquetado con [u j , k ] por otro nodo k, y si ui+d ij ,i<u j, sustituir
[u j , k ] por [ui+d ij ,i ].b. Si todos los nodos tienen etiquetas permanentes, detenerse. En caso contrario,
seleccionar la etiqueta [ur , s ] que tenga la distancia más corta (=ur) entre todas
las etiquetas temporales (los empates se rompen en forma arbitraria). Hacer
que i = r y repetir el paso i.
Ejemplo 3.
La red de la figura 6. Muestra las rutas con sus longitudes, en metros, entre la
ciudad 1 (nodo 1) y otras cuatro ciudades (nodos 2 a 5). Determine las rutas más
cortas entre la ciudad 1 y cada una de las cuatro ciudades restantes.
Iteración 0. Asignar la etiqueta permanente [0 , �͞ �͞ �͞ �͞ �͞ �͞ �͞ �͞ �͞ �͞ ]
al nodo 1.
Iteración 1. Se puede llegar a los nodos 2 y 3 desde el nodo 1 (último que se
etiquetó en forma permanente). Así, la lista de los nodos etiquetados (temporales y
permanentes) es la siguiente:
Nodo Etiqueta Estado
1 [0 , �͞ �͞ �͞ �͞ �͞ �͞ �͞ �͞ �͞ �͞ ] Permanente
2 [0+100 ,1 ]=[100 ,1 ] Temporal
3[0+30 ,1 ]=[30 ,1 ]
Temporal
Tabla 6. Iteración 1
Fuente: “investigación de operaciones” autor: Handy A. Taha.
15
Figura 6. Ejemplo de red para el algoritmo de ruta más corta de Dijkstra.
Fuente: “investigación de operaciones” autor: Handy A. Taha.
Para las dos etiquetas temporales [100 ,1 ]y [30 ,1 ], el nodo 3 produce la menor
distancia (u3=30). Entonces, se cambia el estado del nodo 3 a permanente.
Iteración 2. Del nodo 3 se puede ir a los nodos 4 y 5, y la lista de nodos etiquetados
es
Nodo Etiqueta Estado
1 [0 , �͞ �͞ �͞ �͞ �͞ �͞ �͞ �͞ �͞ �͞ ] Permanente
2 [100 ,1 ] Temporal
3 [30 ,1 ] Permanente
4 [30+10 ,3 ]=[40 ,3 ] Temporal
5 [30+60 ,3 ]=[90 ,3 ] Temporal
Tabla 7. Iteración 2
Fuente: “investigación de operaciones” autor: Handy A. Taha.
El estado de la etiqueta temporal [40 ,3 ] en el nodo 4 se cambia a
permanente (u4=40).
16
Iteración 3. Del nodo 4 se puede ir a los nodos 2 y 5. Entonces la lista actualizada de
los nodos etiquetados es
Nodo Etiqueta Estado
1 [0 , �͞ �͞ �͞ �͞ �͞ �͞ �͞ �͞ �͞ �͞ ] Permanente
2 [40+15 ,4 ]= [55 ,4 ] Temporal
3 [30 ,1 ] Permanente
4 [40 ,3 ] Permanente
5 [90 ,3 ] o [40+50 ,4 ]=[90 ,4 ] Temporal
Tabla 8. Iteración 3
Fuente: “investigación de operaciones” autor: Handy A. Taha.
La etiqueta temporal 2,[100 ,1 ], en la iteración 2 se cambia a [55 ,4 ] en la
iteración 3, para indicar que se ha encontrado una ruta más corta que pasa por el
nodo 4. También, en la iteración 3, el nodo 5 tiene dos etiquetas alternativas con la
misma distancia u5=90.
La lista para la iteración 3 indica que la etiqueta para el nodo 2 ya es
permanente.
Iteración 4. Del nodo 2 sólo se puede ir al nodo 3. Son embargo, el nodo 3 tiene una
etiqueta permanente y ya no se puede volver a etiquetar. La nueva lista de etiqueta
queda igual que en la iteración 3, salvo que la etiqueta en el nodo 2 ya es
permanente. Esto deja al nodo 5 como la única etiqueta temporal. Como el nodo 5
no conduce a otros nodos, su estado se vuelve permanente y el proceso termina.
Nodo Etiqueta Estado
1 [0 , �͞ �͞ �͞ �͞ �͞ �͞ �͞ �͞ �͞ �͞ ] Permanente
2 [55 ,4 ] Permanente
3 [30 ,1 ] Permanente
4 [40 ,3 ] Permanente
17
5 [90 ,3 ] o [90 ,4 ] Permanente
Tabla 9. Iteración 4.
Fuente: “investigación de operaciones” autor: Handy A. Taha.
Los cálculos del algoritmo se pueden hacer con más facilidad en la red, como
se ve en la figura 7.
La ruta más corta entre el nodo 1 y cualquier otro nodo de la red se
determina comenzando en el nodo destino o final, y retrocediendo por los nodos
con la información que dan las etiquetas permanentes. Por ejemplo, la secuencia
siguiente determina la ruta más corta del nodo 1 al nodo 2:
(2 )→ [55 ,4 ]→ (4 )→ [40 ,3 ]→ (3 )→ [30 ,1 ]→ (1)
Por lo anterior, la ruta buscada es 1→3→4→2, con una longitud total de 55
metros.
Figura 7. Procedimiento de etiquetado de Dijkstra.
Fuente: “investigación de operaciones” autor: Handy A. Taha.
Algoritmo de Floyd.
18
El algoritmo de Floyd es más general que el de Dijkstra, porque determina la
ruta más corta entre dos nodos cualesquiera de la red. El algoritmo representa una
red de n nodos como matriz cuadrada con n renglones y n columnas. El elemento (i,
j) de la matriz expresa la distancia d ij del nodo i al nodo j, que es finita si i está
directamente con j, e infinita en caso contrario.
Figura 8. Operación triple de Floyd
Fuente: “investigación de operaciones” autor: Handy A. Taha.
El concepto del algoritmo de Floyd es directo, dados tres nodos i, j y k en la figura 8,
con la distancias entre sí indicadas en los tres arcos, es más corto ir a k desde i pasando por j
si
d ij+d jk<d ik
En este caso, lo óptimo es reemplazar la ruta directa i→k por la ruta indirecta
i→ j→k. Este intercambio de operación triple se aplica en forma sistemática a la
red, con los siguientes pasos:
19
Paso 0. Definir las matrices iniciales de distancia D0 y de secuencias de nodos S0
como se describe abajo. Los elementos diagonales se macan con (—) para indicar
que están bloqueados. Igualar K = 1.
1 2 … j … n
1 — d12 … dij … d1n
2 d21 — … d2j … d2n
D0 = ⁞ ⁞ ⁞ ⁞ ⁞ ⁞ ⁞
i di1 di2 ⁞ dij din
⁞ ⁞ ⁞ ⁞ ⁞ ⁞ ⁞
n Dn1 dn2 … dnj … —
1 2 … j … n
1 — 2 … j … n
2 1 — … j … n
D0 = ⁞ ⁞ ⁞ ⁞ ⁞ ⁞ ⁞
i 1 2 j n
⁞ ⁞ ⁞ ⁞ ⁞ ⁞ ⁞
n 1 2 … j … —
Tabla 10. Tablas para el paso 0
Fuente: “investigación de operaciones” autor: Handy A. Taha.
Paso general K. Definir el renglón k y la columna k como renglón pivote y
columna pivote.
Aplicar la operación triple a cada elemento d ij en Dk-1 para toda i y j. si se
satisface la condición
d ik+dkj<dij ,(i≠ k , j≠ k e i ≠ j)
20
Hacer los siguientes cambios:
1. Crear Dk reemplazando d ij en Dk-1 por d ik+dkj.
2. Crear Sk reemplazando Sij en Sk-1 por k. igualar k = k + 1 y repetir el paso k.
Se puede explicar el paso k del algoritmo representando Dk-1 como se ve en la
figura 9. Aquí, el renglón k y la columna k definen el renglón y la columna pivote
actuales. El renglón i representa cualesquiera de los renglones k + 1, k 2,…, y n. de
igual modo, la columna j representa cualquiera de las columnas 1, 2, …, y k -1, y la
columna q representa cualquiera de las columnas k + 1, k + 2, …, y n. con la
operación triple, si la suma de los elementos del renglón pivote y la columna pivote
(representados por cuadros) es menor que el elemento de intersección asociado
(representado por un circulo), entonces es óptimo reemplazar la distancia de
intersección por la suma de las distancias pivote.
Después de n pasos se puede determinar la ruta más corta entre los nodos i y j
con las matrices Dn y Sn con olas siguientes reglas.
1. En Dn, d ijrepresenta la distancia más corta entre los nodos i y j,
2. En Sn, se determina el nodo intermedio k = Sij que forme la ruta i→k→ j . Si
Sik = K y Skj = j, detenerse; todos los nodos intermedios de la ruita se han
determinado. En caso contrario, repetir el procedimiento entre los nodos i y k y
entre los nodos k y j.
21
Figura 9. Implementación de la operación triple en forma matricial.
Fuente: “investigación de operaciones” autor: Handy A. Taha.
Ejemplo 4.
Para la red de la figura 10. Determine las rutas más cortas entre cada par de nodos. En
los arcos aparecen las distancias en metros. El arco (3,5) es direccional, por lo que no se
permite tráfico alguno del nodo 5 al nodo 3. Todos los demás arcos permiten tráfico en
ambas direcciones
22
Figura 10. Red para el ejemplo 4.
Fuente: “investigación de operaciones” autor: Handy A. Taha.
Iteración 0. Las matrices D0 y S0 son la representación inicial de la red. D0 es
simétrica, excepto que d53 = ∞ porque nos e permite tráfico del nodo 5 al nodo 3.
D0
1 2 3 4 5
1 — 3 10 ∞ ∞
2 3 — ∞ 5 ∞
3 10 ∞ — 6 15
4 ∞ 5 — 4
5 ∞ ∞ ∞ 4 —
S0
1 2 3 4 5
1 — 2 3 4 5
2 1 — 3 4 5
3 1 2 — 4 5
4 1 2 3 — 5
5 1 2 3 4 —
Tabla 11. Iteración 0
23
Fuente: “investigación de operaciones” autor: Handy A. Taha.
Iteración 1. Se iguala k = 1. El renglón y la columna pivotes se ven en la matriz D0 con
color azul: son l primer renglón y la primera columna. Las celdas más grises, d23 y d32
son las únicas que pueden mejorar con la operación triple. Así, D1 y S1 se obtienen
partiendo de D0 y S0 como sigue:
1. Sustituir d23 con d21 + d13 = 3 + 10 = 13, e igualar s23 = 1
2. Sustituir d32 con d31 + d12 = 10 + 3 = 13, e igualar s32 = 1
Estos cambios se muestran en negritas, en las matrices D1 y S1
D1
1 2 3 4 5
1 — 3 10 ∞ ∞
2 3 — 13 5 ∞
3 10 13 — 6 15
4 ∞ 5 6 — 4
5 ∞ ∞ ∞ 4 —
S1
1 2 3 4 5
1 — 2 3 4 5
2 1 — 1 4 5
3 1 1 — 4 5
4 1 2 3 — 5
5 1 2 3 4 —
Tabla 12. Iteración 1
Fuente: “investigación de operaciones” autor: Handy A. Taha.
24
Iteración 2. Se igual k = 2, como indican el renglón y la columna azul en D1. Se aplica
la operación triple a las celdas grises de D1 y S1. Los cambios que resultan se indican
con negritas en D2 y en S2.
D2
1 2 3 4 5
1 — 3 10 8 ∞
2 3 — 13 5 ∞
3 10 13 — 6 15
4 8 5 6 — 4
5 ∞ ∞ ∞ 4 —
S2
1 2 3 4 5
1 — 2 3 2 5
2 1 — 1 4 5
3 1 1 — 4 5
4 2 2 3 — 5
5 1 2 3 4 —
Tabla 13. Iteración 2
Fuente: “investigación de operaciones” autor: Handy A. Taha.
Iteración 3. Se igual k = 3, como indican el renglón y la columna sombreadas en D2.
Las nuevas matrices son D3 y S3.
D3
25
1 2 3 4 5
1 — 3 10 8 25
2 3 — 13 5 28
3 10 13 — 6 15
4 8 5 6 — 4
5 ∞ ∞ ∞ 4 —
S3
1 2 3 4 5
1 — 2 3 2 3
2 1 — 1 4 3
3 1 1 — 4 5
4 2 2 3 — 4
5 1 2 3 4 —
Tabla 14. Iteración 3
Fuente: “investigación de operaciones” autor: Handy A. Taha.
Iteración 4. Se iguala K = 4 como se indica con el renglón y la columna con sombra
ligera en D3. Las nuevas matrices son D4 y S4.
D4
1 2 3 4 5
1 — 3 10 8 12
2 3 — 11 5 9
3 10 11 — 6 10
4 8 5 6 — 4
26
5 12 9 10 4 —
S4
1 2 3 4 5
1 — 2 3 2 4
2 1 — 4 4 4
3 1 4 — 4 4
4 2 2 3 — 5
5 4 4 4 4 —
Tabla 15. Iteración 4
Fuente: “investigación de operaciones” autor: Handy A. Taha.
Iteración 5. Se iguala K = 5, como se ve en el renglón y la columna azules de D 4. No
hay más mejoras posibles en esta iteración. Por consiguiente, D5 y S5 son iguales que
D4 y S4.
Las matrices finales D5 y S5 contienen toda la información necesaria para
determinar la ruta más corta entre dos nodos cualesquiera de la red. Por ejemplo,
para determinar la ruta más corta del nodo 1 al nodo 5, primero se ve la distancia
asociada d15 = 12 metros. Para determinar la ruta asociada, recuérdese que en un
segmento (i,j) representa un enlace sólo si S ij = j. en caso contrario, i y j están
enlazados mediante al menos un nodo intermedio. Como S15 = 4, la ruta inicial es
1→4→5 . Ahora bien, como S14 = 2 ≠ 4, el segmento (1,4) no es un enlace directo y
1→4se debe reemplazar por 1→2→4, y la ruta 1→4→5 se transforma ahora en
27
1→2→4→5. A continuación, como S12 = 2, S24 = 4 y S45 = 5, la ruta 1→2→4→5 no
necesita más “disecciones” y el proceso termina.
Solución con WinQSB
Ingreso de datos en el programa
Tabla 16. Ingreso de datos para el ejemplo 4
Fuente: Eira Machado
Solución
Tabla 17. Solución del ejemplo 4
Fuente: Eira Machado
28
Modelo de flujo máximo.
Imagine una red de oleoductos que transportan crudo desde los pozos hasta
las refinerías. En las distancias intermedias adecuadas están instaladas estaciones de
bombeo, para mover el crudo por la red. Cada segmento de tubo tiene un flujo
máximo de crudo. Un segmento de tubo puede ser unidimensional o bidimensional,
dependiendo de su diseño. Un segmento unidireccional tiene una capacidad finita
en un dirección, y capacidad 0 en la dirección opuesta. La figura 11 muestra una red
de oleoductos. ¿Cómo se puede determinar la capacidad máxima de la red entre los
pozos y las refinerías?
La solución al problema propuesto requiere convertir la red en una sola
fuente y un solo “sumidero” o destino. Este requerimiento se llena usando arcos
unidireccionales de capacidad infinita, como indican los arcos de línea interrumpidas
en la figura 11.
29
Figura 11. Red capacitada que une pozos y refinerías pasando por estaciones de
bombeo
Fuente: “investigación de operaciones” autor: Handy A. Taha.
Dado el arco (i, j) con i< j, se usa la notación (C͞ij, C͞ji) para representar las
capacidades de flujo en las dos direcciones, i→ j y j→i, respectivamente. Para
eliminar ambigüedades se pone a C͞ij en el arco junto al nodo i, y C͞ji se coloca junto al
nodo j, como se ve en la figura 12.
Figura 12. Flujos en arco: C͞ij de i→ j y C͞ji de j→i
Fuente: “investigación de operaciones” autor: Handy A. Taha.
Enumeración de cortes.
Un corte define a un conjunto de arcos que, cuando se eliminan de la red,
causan una interrupción total del flujo entre los nodos fuente y sumidero. La
capacidad de corte es igual a la suma de las capacidades de los arcos
correspondientes. Entre todos los cortes posibles en la red, el que tenga la
capacidad menor permite el flujo máximo en la red.
30
Ejemplo 5.
Se tiene la red de la figura 13, en los arcos respectivos se indican las
capacidades bidireccionales, con la convención de la figura 12, por ejemplo, para el
arco (3,4), el límite de flujo es 10 unidades de 3 a 4 y 5 unidades de 4 a 3.
Figura 13. Ejemplos de cortes en redes de flujo.
Fuente: “investigación de operaciones” autor: Handy A. Taha.
En la figura 13 se ilustran tres cortes, cuyas capacidades se calculan en la
tabla siguiente.
corte arcos asociados capacidad
1 (1,2), (1,3), (1,4) 20 + 30 + 10 = 60
31
2 (1,3), (1,4), (2,3), (2,5) 30 + 10 + 40 + 30 = 110
3 (2,5), (3,5), (4,5) 30 + 20 + 20 = 70
Tabla 18. Capacidades del ejemplo 5
No se puede decir cuál es el flujo máximo en la red, a menos que se
enumeren todos los cortes posibles. La única información que se puede obtener de
la enumeración parcial de los tres cortes es que el flujo máximo en la red no puede
ser mayor que 60 unidades. Desafortunadamente, enumerar todos los cortes no es
una tarea sencilla, y entonces se hace necesario desarrollar el eficiente algoritmo.
Algoritmo de flujo máximo.
El algoritmo de flujo máximo se basa en determinar rutas de irrupción que tengan
flujo neto positivo entre los nodos fuente y sumidero. Cada ruta comunica pate o todas las
capacidades de sus arcos al flujo total en la red.
Considérese el arco (i, j) con capacidades entre (C͞ij, C͞ji). A medida que partes de esas
capacidades contribuyen al flujo en el arco, se actualizan los residuales (o
capacidades remanentes), la red con los residuales actualizados se llama red
residual. Se usará la notación (Cij, Cji) para representar esos residuales.
Para un nodo j que recibe flujo del nodo i, se define una etiqueta [a j ,i ], donde a j es
el flujo de nodo i al nodo j. los pasos del algoritmo se resumen como sigue:
1. Para todos los arcos (i, j) se iguala la capacidad residual con la capacidad
inicial; esto es, (Cij, Cji) = (C͞ij, C͞ji). Sea a1=∞ y se etiqueta el nodo fuente I con [∞ ,— ].
Se iguala i = 1 y se prosigue en el paso 2.
2. Determinar Si, el conjunto de nodos j no etiquetados que se pueden alcanzar
directamente desde el nodo i, con arcos con residuales positivos (esto es, c ij>0 para
toda j ϵ Si). Si Si ≠ Ø, ir al paso 3. En caso contrario ir al paso 4.
3. Determinar k ϵ Si tal que
c ijc=maxj ϵ si
{c ij }
32
Igualar ak=c ik y etiquetar el nodo k con [ak ,i ]. Si k = n, el nodo de sumidero se ha
etiquetado, y se ha encontrado una ruta de irrupción; ir al paso 5., en caso contrario,
igualar i = k y seguir en el paso 2.
4. (Retroceso). Si i = 1, no hay otras irrupciones posibles; ir al paso 6. En casi
contrario, sea r el nodo que se ha etiquetado inmediatamente antes del nodo actual
i y quitar i del conjunto de nodos adyacentes a r. igualar i = r y continuar en el paso
2.
5. (Determinación de la red residual). Sea Np = (1, k1, k2, …, n); se definen los
nodos de la p-ésima ruta de irrupción del nodo fuente 1 al nodo sumidero n.,
entonces el flujo máximo por la ruta se calcula como
f p=mín {a1 , ak1 , ak2 ,…,an }
La capacidad residual de cada arco a lo largo de la ruta de irrupción se disminuye en
fp unidades en la dirección del flujo y se aumenta fp unidades en la dirección
contraria; esto es, para los nodos i y j en la ruta, el flujo residual se cambia del actual
(Cij, Cji) a
a) (Cij - fp, Cji + fp) si el flujo va de i a j.
b) (Cij + fp, Cji - fp) si el flujo va de j a i.
Se reinstalan todos los nodos que se hayan eliminado en el paso 4. Poner i = 1 y
regresar al paso 2 para intentar una nueva ruta de irrupción.
6. (solución)
a) Si se han determinado m rutas de irrupción, el flujo máximo en la red es
F=f 1+ f 2+…+ fm
b) Como los residuales inicial y final del arco (i, j) se obtiene con (C ͞ij, C͞ji) y (Cij,
Cji), respectivamente, el flujo optimo en el arco (i, j) se calcula como sigue: sea (α ,β )
33
= (C͞ij - Cij, C͞ji - Cji). Si α>0, el flujo optimo de i a j es α . Si β>0, el flujo óptimo de i a j es
β. (es imposible que tanto α y β sean positivos.)
Se invoca el proceso de retroceso del paso 4 cuando el algoritmo llega a un
“punto ciego” por descuido, en un nodo intermedio, antes de poder realizar una
irrupción. El ajuste del flujo en el paso 5 se puede explicar con la red de flujo sencilla
de la figura 14. La red a) obtiene la primera ruta de irrupción N 1 = {1,2,3,4 } con su
flujo máximo f1 = 5. Así, los residuales de cada uno de los arcos (1,2), (2,3) y (3,4) se
cambian de (5,0) a (0,5), según el paso 5. La red b) proporciona ahora la segunda
ruta de irrupción N2 = {1,2,3,4 } con f2 = 5. Después de hacer los ajustes necesarios de
flujo, se obtiene la red c), donde ya no son posibles más irrupciones, lo que sucedió
en la transición de b) a c) no es más que una cancelación de un flujo antes
comprometido en la dirección 2→3. El algoritmo puede “recordar” que se había
comprometido antes un flujo de 2 a 3 sólo porque se ha aumentado la capacidad en
la dirección contraria de 0 a 5 (de acuerdo con el paso 5)
Ruta :1→2→3→4 , f 1=5
(a)
34
Ruta :1→3→2→4 , f 2=5
(b)
Sin irrupción
(c)
Figura 14. Uso del residual para calcular el flujo máximo.
Fuente: “investigación de operaciones” autor: Handy A. Taha.
35
Ejemplo 6.
Determinar el flujo máximo en la red del ejemplo 5. La figura 15 muestra un
resumen grafico de las iteraciones del algoritmo.
(a) f1 = 20
(b) f2 = 10
36
(c) f3 = 10
(d) f4 = 10
37
(e) f5 = 10
(f) sin irrupción
Figura 15. Iteraciones del algoritmo de flujo máximo del ejemplo 6.
Fuente: “investigación de operaciones” autor: Handy A. Taha.
38
Iteración 1. Igualar los residuales iniciales (Cij, Cji) a las capacidades iniciales (C͞ij, C͞ji).
Paso 1. Igualar a1=∞ y etiquetar el nodo 1 con [∞ ,— ]. Poner i = 1.
Paso 2. S1= {2,3,4 } (≠ Ø ).
Paso 3. K = 3 porque c13 = máx {c12 , c13 , c14 } = máx {20,30,10 } = 30. Tomar a3 = c13 = 30
u etiquetar el nodo 3 con [30 ,1 ]. Igualar i = 3 y repetir el paso 2.
Paso 2. S3 = (4,5).
Paso 3. K = 5 y a5 = c35 = máx {10,20 } = 20. Etiquetar el nodo 5 con [20 ,3 ]. Se obtuvo
una irrupción. Ir al paso 5.
Paso 5. La ruta de irrupción se determina con las etiquetas comenzando en el nodo 5
y terminando en el nodo; esto es, (5 )→ [20,3 ]→ (3 )→ [30,1 ]→ (1 ) . Así N1 = {1,3,5 } y
f1 = mín {a1 , a3, a5 }={∞ ,30,20 }=20. las capacidades residuales a lo largo de la ruta
N1 son
(c13 , c31 )= (30−20 ,0+20 )=(10,20)
(c35 , c53 )=(20−20 ,0+20 )=(0,20)
Iteración 2.
Paso 1. Poner a1=∞ y etiquetar el nodo 1 con [∞ ,— ]. Poner i = 1.
Paso 2. S1= {2,3,4 }.
Paso 3. K = 2 y a2 = c12 = máx {20,10,10 } = 20. Poner i = 2 y repetir el paso 2.
Paso 2. S2= {3,5 }.
Paso 3. K = 3 y a3 = c23 = 40. Etiquetar el nodo 3 con [40,2 ]. Poner i = 3 y repetir el
paso 2.
39
Paso 2. S3= {4 }
Paso 3. K = 4 y a4 = c34 = 10. Etiquetar el nodo 4 con [10,3 ]. Poner i = 4 y repetir el
paso 2.
Paso 2. S4= {5 }
Paso 3. K = 5 y a5 = c45 = 20. Etiquetar el nodo 5 con [20 ,4 ]. Se obtuvo una irrupción.
Ir al paso 5.
Paso 5. N2 = {1,2,3,4,5 } y f2 = mín {∞ ,20,40,10,20 }=10. Los residuales a lo largo de la
ruta de N2 son
(c12 , c21 )= (20−10 ,0+10 )=(10,10)
(c23 , c32 )= (40−10 ,0+10 )=(30,10)
(c34 , c43 )=(10−10,5+10 )=(0,15)
(c45 , c54 )=(20−10 ,0+10 )=(10,10)
Iteración 3.
Paso 1. Poner a1=∞ y etiquetar el nodo 1 con [∞ ,— ]. Poner i = 1.
Paso 2. S1= {2,3,4 }.
Paso 3. K = 2 y a2 = c12 = máx {10,10,10 } = 10. Etiquetar el nodo 2 con [10,1 ] Poner i =
2 y repetir el paso 2.
Paso 2. S2= {3,5 }.
Paso 3. K = 3 y a3 = c23 = 30. Etiquetar el nodo 3 con [30,2 ]. Poner i = 3 y repetir el
paso 2.
Paso 2. S3= {Ø }. Ir al paso 4 para retroceder.
40
Paso 4. La etiqueta [30,2 ] en el nodo 3da el nodo inmediato anterior r = 2. Sacar el
nodo 3 de más consideraciones en esta iteración, tachándolo. Repetir el paso 2 con i
= r = 2.
Paso 2. S2= {5 }
Paso 3. K = 5 y a5 = c25 = 30. Etiquetar el nodo 5 con [30,2 ]. Se ha logrado la irrupción;
proseguir en el paso 5.
Paso 5. N3 = {1,2,5 } y C5 = mín {∞ ,10,30 }=10. Los residuales a lo largo de la ruta de
N3 son
(c12 , c21 )= (10−10 ,10+10 )=(0,20)
(c25 , c52 )= (30−10 ,0+10 )=(20,10)
Iteración 4. En esta iteración se obtiene N4 = {1,3,2,5 } con f4 = 10
Iteración 5. En esta iteración se obtiene N5 = {1,4,5 } con f5 = 10
Iteración 6. Todos los arcos que salen del nodo 1 tienen residuales cero. En
consecuencia no hay más irrupciones posibles. Pasaremos al paso 6 para determinar
la solución.
Paso 6. El flujo máximo en la red es F = f1 + f2 +… + f5 = 20 + 10 + 10 + 10 + 10 = 60
unidades. El flujo en los distintos arcos se calcula restando los últimos residuales (C ij,
Cji) en las iteraciones 6 de las capacidades (C͞ij, C͞ji), como se ve en la tabla siguiente.
arco (Cdij, Cdji) - (Cij, Cji)6 flujo
direccione
s
(1, 2) (20, 0) - (0, 20) = (20, -20) 20 1 → 2
(1, 3) (30, 0) - (0, 30) = (30, -30) 30 1 → 3
(1, 4) (10, 0) - (0, 10) = (10, -10) 10 1 → 4
(2, 3) (40, 0) - (40, 0) = (0, 0) 0 -
41
(2, 5) (30, 0) - (10, 20) = (20, -20) 20 2 → 5
(3, 4) (10, 5) - (0, 15) = (10, -10) 10 3 → 4
(3, 5) (20, 0) - (0, 20) = (20, -20) 20 3 → 5
(4, 5) (20, 0) - (0, 20) = (20, -20) 20 4 → 5
Ingreso de los datos en WinQSB
Tabla 20. Introducción de datos en el programa para el ejemplo 6.
Fuente: Eira Machado
Soluciona con WinQSB
Tabla 21. Solución del ejemplo 6.
Fuente: Eira Machado
42
Problema de flujo capacitado con costo mínimo
El problema de flujo capacitado con costo mínimo se basa en las hipótesis
siguientes:
El problema de flujo capacitado con costo mínimo se basa en las hipótesis
siguientes:
1.- a cada arco se le asocia un costo de flujo unitario (no negativo).
2.- los arcos pueden tener límites inferiores positivos de capacidad.
3.- todo nodo en la red puede funcionar como fuente o como sumidero.
El nuevo modelo determina los flujos en los distintos arcos, que minimizan el
costo total y a la vez satisfacen las restricciones de flujo y las cantidades de oferta y
demanda en los nodos. Primero representaremos el modelo de red capacitada de
flujo y su formulación equivalente en programación lineal. Esta formulación es la
base del desarrollo de un algoritmo simplex capacitado especial, para resolver el
modelo de flujo en la red. La sección termina con una presentación de una plantilla
de hoja de cálculo, de la red capacitada con costo mínimo.
Representación de la red.
Se tiene una red capacitada G = (N, A), donde N es el conjunto de los nodos y A es el
conjunto de los arcos, y se definen.
43
Xij = cantidad de flujo del nodo i al nodo j
Uij (lij) = capacidad máxima (mínima) del arco (i, j)
$ Cij = costo de flujo unitario del nodo i al nodo j
fi = flujo neto del nodo i
La figura 16. Muestra las definiciones en el arco (i, j). La etiqueta [ fi ] supone un valor
positivo (negativo) cuando hay una oferta o suministro neto (demanda) asociado al
nodo i.
Figura 16. Arco capacitado con flujo externo
Fuente: “investigación de operaciones” autor: Handy A. Taha.
Formulación con programación lineal
La formulación de un modelo de red capacitada como programa lineal es la
base del desarrollo del algoritmo simplex capacitad. El programa lineal para la red
capacitada es
44
Minimizar z= ∑( i , j ) ϵ a
∑ c ij∗X ij
Sujeta a.
∑k ( j ,k ) ϵ A
X jk−∑i( i, j ) ϵ A
Xij=fj , jϵ N
lij≤ x ij≤u ij
La ecuación para el nodo j mide el flujo fj neto en el modo j como sigue:
(Flujo que sale del nodo j) – (flujo que entra al nodo j) = fj
El nodo j funciona como fuente si fj > 0 y como sumidero si fj <0.
Siempre se puede eliminar la cota inferior lijde las restricciones, mediante la
sustitución
X ij=X ij+lij
La nueva variable de flujo x’ tiene un límite superior igual a uij−lij. Además, el
flujo neto en el nodo se vuelve fi - lijy en el nodo j es fj + lij. La figura 17 muestra la
transformación de la actividad (i, j) después de que ha salido por sustitución la cota
inferior.
45
Figura 17. Eliminación de la cota inferior en los arcos.
Fuente: “investigación de operaciones” autor: Handy A. Taha.
Algoritmo símplex de red capacitada.
Este algoritmo se basa en los pasos exactos del método simplex normal, pero
su objeto es aprovechar la estructura especial en red del modelo de flujo con costo
mínimo.
Ya que fi es el flujo neto en el nodo i, como se definió en el programa lineal,
el algoritmo simplex capacitado estipula que la red debe satisfacer.
∑i=1
n
fi=0
La condición indica que toda la oferta en la red es igual a la demanda total.
Siempre se puede satisfacer este requisito agregando una fuente o un destino
ficticios para balancear, que se conectan con todos los demás nodos de la red con
arcos de costo unitario cero y capacidad infinita. Sin embargo, el balanceo de la red
no garantiza que haya una solución factible, porque eso donde de las restricciones
de capacidades en los arcos.
A continuación se presentan los pasos del algoritmo capacitado:
PASO 0: determinar una solución inicial básica factible (conjunto de arcos) para la
red.
46
PASO 1: determinar un arco (variable) de entrada con la condición de optimalidad
del método simplex. Si la solución es optima, detenerse. En caso contrario,
continuar.
PASO 2: determinar el arco (variable) de salida usando la condición de factibilidad
del método simplex. Determinar la nueva solución y continuar en el paso 1.
Una red con n nodos y flujo neto cero consiste en n -1 ecuaciones
independientes de restricción. Así, una solución básica siempre corresponde a un
árbol de expansión de la red.
El arco entrante (PASO 1) se determina calculando z ij−c ij, los coeficientes
objetivo, para todos los arcos no básicos actuales (i, j). Si z ij−c ij≤0 para todas i y j, la
base actual (es decir, la que se tiene en este momento) es ÓPTIMA. En caso
contrario se selecciona el arco no básico con la z ij−c ij más positivo para entrar en la
base.
El cálculo de los coeficientes objetivo se basa en la dualidad, exactamente
como se hizo con el modelo de transporte. Al aplicar el programa lineal, sea Wi la
variable dual asociada con la restricción del nodo i; entonces, el problema dual es
Maximizar z=∑i=1
n
fi∗wi
Sujeta a
wi−wj≤cij , (i , j ) ϵ A
Wi se signo no restringido, i = 1,2,…, n
Según la teoría de programación lineal wi−wj=c ij, para el arco básico (i, j)
47
Ya que por definición el programa lineal original tiene una restricción
redundante, se puede asignar un valor arbitrario a una de las variables duales. Por
comodidad se iguala W1=0.
Ejemplo 7.
Una red de tuberías conecta dos plantas desaladoras de agua a dos ciudades.
Las cantidades diarias de abastecimiento en las dos plantas son 40 y 50 millones de
galones, y las demandas diarias en las ciudades 1 y 2 son 30 y 60 millones de
galones. Los nodos 1 y 2 representan a las plantas 1 y 2, y los nodos 4 y 5
representan a las ciudades 1 y 2. El nodo 3 es una estación de bombeo entre las
plantas y las ciudades. El modelo ya está balanceado, porque la oferta en los nodos
1 y 2 es igual a la demanda en los nodos 4 y 5. La figura 18 muestra la red asociada.
Figura 18. Red para el ejemplo 7
Fuente: “investigación de operaciones” autor: Handy A. Taha.
48
Iteración 0.
Determinación de una solución inicial básica factible: el árbol de expansión factible
inicial de la figura 19 (indicado con arcos de línea llena) se obtiene por inspección.
En el caso normal se usa una técnica de variable artificial para llegar a esa solución.
Figura 19. Red para la iteración 0.
Fuente: “investigación de operaciones” autor: Handy A. Taha.
49
En la figura 19, la solución básica factible consiste en los arcos (1,3), (1,4),
(2,3) y (3,5), con los flujos factibles 10, 30, 50 y 60 unidades, respectivamente. Esto
deja los arcos (1,2), (2,5) y (4,5) para representar a las variables no básicas. La
notación x(c) en los arcos indica que se asigna un flujo de x unidades a un arco con
capacidad c. los valores predeterminado para x y c son 0 e ∞, respectivamente.
Iteración 1.
Paso 1. Determinación del arco entrante: se obtienen los valores duales resolviendo
las ecuaciones básicas actuales.
w1=0
wi−wj=Cij, para (i , j )básicas
Así se obtiene
Arco (1,3 ) :W 1−W 3=7 , por consiguiente w3=−7
Arco (1,4 ):W 1−W 4=5 , por consiguiente w4=−5
Arco (2,3 ):W 2−W 3=2 , por consiguiente w2=−5
Arco (3,5 ) :W 3−W 5=8 , por consiguientew5=−15
Ahora se calculas Zij – Cij para las variables no básicas, como sigue:
Arco (1,2 ) :W 1−W 2−c12=2
Arco (2,5 ):W 2−W 5−c25=9
Arco (4,5 ):W 4−W 5−c45=6
50
Por lo anterior, el arco (2,5) entra a la solución básica.
Paso 2. Determinación del arco saliente: en la figura 19 se ve que el arco (2,5)
forma un bucle con los arcos básicos (2,3) y (3,5), de acuerdo con la definición del
árbol de expansión, ya no se puede formar otro bucle. Como el bucle en el arco
nuevo (2,5) debe aumentar, se ajusta el flujo en los arcos del bucle con una cantidad
igual, para mantener la factibilidad de la nueva solución. Para lograrlo se identifica el
flujo positivo (+) en el bucle, con la dirección del arco entrante. A continuación se
asignan (+) o (-) a los arcos del bucle, dependiendo de si el flujo en cada uno es en o
contra la dirección del flujo del arco entrante. Estas convenciones de signo se
muestran en la figura 19.
La determinación de la cantidad máxima de flujo en el arco entrante (2,5) se
basa en dos condiciones:
1. El flujo nuevo en los arcos básicos actuales del bucle no puede ser negativo
2. El flujo nuevo en el arco entrante no puede exceder su capacidad.
La aplicación de la condición 1 indica que los flujos en los arcos (2,3) y (3,5), no
puede disminuir en más de mín {50,60 }=50 unidades. La condición 2 estipula que el
flujo en el arco (2,5) puede aumentar cuando mucho hasta la capacidad del arco.
Entonces, el cambio máximo de flujo en el bucle es mín {30,50 }=30 unidades, los
nuevos flujos en el bucle son entonces 30 unidades en el arco (2,5), 50 – 30 = 20
unidades en el arco (2,3) Y 60 – 30 = 30 unidades en el arco (3,5).
Debido a que ninguno de los arcos básicos actuales sale de la base a nivel cero,
el nuevo arco (2,5) debe permanecer no básico en la cota superior. Sin embargo,
para no manejar arcos no básicos que están en el valor de su capacidad se
implementará la sustitución
x25=30−x52 ,0≤ x52≤30
51
Esta situación se hace en las ecuaciones de flujo asociadas con los nodos 2 y 5
como sigue.
Se tiene que:
Ecuación actual del flujo en el nodo 2: 20 + x12 = x23 + x25
Ecuación actual del flujo en el nodo 5: x25 + x35 + x45 = 60
Entonces, la sustitución x25=30−x52da como resultado:
Nueva ecuación actual del flujo en el nodo 2: 20 + x12 + x52 = x23
Nueva ecuación actual del flujo en el nodo 5: x35 + x45 = x52 + 30
En la figura 20. Se ven los resultados de estos caminos, la dirección de flujo
en el arco (2,5) queda invertida ahora a 5 → 2 con x52=0, que era lo que se quería.
También la sustitución requiere cambiar el costo unitario del arco (5,2) a - $1.
Indicaremos esta inversión de dirección en la red, etiquetando el arco con un
asterisco.
Iteración 2.
La figura 20 resume los nuevos valores de z ij−¿ c ij¿ y muestra que el arco (4,5)
entra a la solución básica. También define al bucle asociado con el nuevo arco
entrante, y asigna signos a sus arcos.
El flujo en el arco (4,5) se puede aumentar en la cantidad mínima de
1. El aumento máximo permisible en el arco entrante (4,5) = ∞
2. El aumento máximo permisible en el arco (1,4) = 35 – 30 = 5
3. La disminución máxima permisible en el arco (1,3) = 10 unidades
4. La disminución máxima permisible en el arco (3,5) = 30 unidades
52
Figura 20. Red para la iteración 1.
Fuente: “investigación de operaciones” autor: Handy A. Taha.
Así, el flujo en el arco (4,5) se puede aumentar a 5 unidades, con lo cual (4,5)
será básico y forzará a que el arco básico (1,4) sea no básico en su cota superior (=
35).
Al utilizar la sustitución de x14=35−x41 , la red cambia como se ve en la figura
21 con los arcos (1,3), (2,3), (3,5) y (4,5) formando la solución básica. La inversión del
flujo en el arco (1,4) cambia su costo unitario a - $5.
53
Figura 20. Red para la iteración 2
Fuente: “investigación de operaciones” autor: Handy A. Taha.
z12−c12=0— (−5)−3=2
z41−c41=−11— 0−(−5 )=−6
z52−c52=−15−(−5 )−(−1)=−9
Entra el arco (1,2) en el nivel 5.
Sale el arco (1,3) en el nivel 0.
54
Aumentar 5 a X23.
Iteración 3.
Los cálculos de las nuevas Zij – Cij para los arcos no básicos (1,2), (4,1) y (5,2) se
resumen en la figura 20, que muestra que el arco (1,2) entra al nivel 5 y el arco (1,3) se
vuelve no básico al nivel 0. La nueva solución se ve en la figura 21.
Iteración 4.
Las nuevas Zij – Cij de la figura 21 muestran que la solución es óptima. Los valores de
las variables originales se obtienen por sustitución en reserva, como se ve en la figura
21.
z13−c13=0— (−5)−7=−2
z41−c41=−9— 0−(−5 )=−4
z52−c52=−153−(−3 )−(−1)=−9
Solución óptima
x12=5 , x13=0
x14=35
x23=25
x25=30
x35=25 , x45=5
COSTO TOTAL = $490
55
Figura 21. Red para la iteración 3
Fuente: “investigación de operaciones” autor: Handy A. Taha.
Cálculos para la ruta crítica (CPM)
El método de ruta crítica es un proceso administrativo (planeación, organización,
dirección y control) de todas y cada una de las actividades componentes de un
proyecto que debe desarrollarse durante un tiempo crítico y al costo óptimo. La
aplicación potencial del método de la ruta crítica, debido a su gran flexibilidad y
adaptación, abarca desde los estudios iniciales para un proyecto determinado, hasta
la planeación y operación de sus instalaciones. A esto se puede añadir una lista
indeterminable de posibles aplicaciones de tipo específico. Así, podemos afirmar
que el método de la ruta crítica es aplicable y útil en cualquier situación en la que se
56
tenga que llevar a cabo una serie de actividades relacionadas entre sí para alcanzar
un objetivo determinado. El método es aplicable en tareas tales como: construcción,
estudios económicos, planeación de carreras universitarias, censos de población,
estudios técnicos, etc. Los beneficios derivados de la aplicación del método de la
ruta crítica se presentarán en relación directa a la habilidad con que se haya
aplicado. Debe advertirse, sin embargo, que el camino crítico no es una panacea que
resuelva problemas administrativos de un proyecto. Cualquier aplicación incorrecta
producirá resultados adversos. No obstante, si el método es utilizado
correctamente, determinará un proyecto más ordenado y mejor balanceado que
podrá ser ejecutado de manera más eficiente y normalmente, en menor tiempo. Un
beneficio primordial que nos brinda el método de la ruta crítica es que resume en un
solo documento la imagen general de todo el proyecto, lo que nos ayuda a evitar
omisiones, identificar rápidamente contradicciones en la planeación de actividades,
facilitando abastecimientos ordenados y oportunos; en general, logrando que el
proyecto sea llevado a cabo con un mínimo de tropiezos. En la práctica el error que
se comete más a menudo es que la técnica se utiliza únicamente al principio del
proyecto, es decir, al desarrollar un plan y su programación y después se cuelga en
la pared el diagrama resultante, olvidándose durante el resto de la vida del
proyecto. El verdadero valor de la técnica resulta más cuando se aplica en forma
dinámica. A medida que se presentan hechos o circunstancias imprevistas, el
método de la ruta crítica proporciona el medio ideal para identificar y analizar la
necesidad de replantear o reprogramar el proyecto, reduciendo al mínimo el
resultado adverso de dichas contingencias. Del mismo modo, cuando se presenta
una oportunidad para mejorar la programación del proyecto, la técnica permite
determinar fácilmente que actividades deben ser aceleradas para que se logre dicha
mejoría.
57
Metodología
El método de la ruta crítica consta básicamente de dos ciclos:
1. Planeación y programación
2. Ejecución y Control
El primer ciclo termina hasta que todas las personas directoras o responsables
de los diversos procesos que intervienen en el proyecto están plenamente de
acuerdo con el desarrollo, tiempos, costos, elementos utilizados, coordinación, etc.,
tomando como base la red de camino crítico diseñada al efecto .Al terminar la
primera red, generalmente hay cambios en las actividades componentes, en las
secuencias, en los tiempos y algunas veces en los costos, por lo que hay necesidad
de diseñar nuevas redes hasta que exista un completo acuerdo de las personas que
integran el grupo de ejecución.
El segundo ciclo termina al tiempo de hacer la última actividad del proyecto y
entre tanto existen ajustes constantes debido a las diferencias que se presentan
entre el trabajo programado y el realizado. Será necesario graficar en los esquemas
de control todas las decisiones tomadas para ajustar a la realidad el plan original.
Con objeto de entender este proceso, se presenta la figura 22.Considerando que el
principal objetivo de este trabajo consiste en establecer la metodología de la
construcción de la red del camino crítico se abarcará únicamente el primer ciclo, con
objeto de presentar la elaboración de la red del camino crítico y entienda sus
ventajas y limitaciones. El primer ciclo se compone de las siguientes etapas:
definición del proyecto, lista de actividades, matríz de secuencias, matriz de
tiempos, red de actividades, costos y pendientes, compresión de la red, limitaciones
de tiempo, de recursos económicos, matríz de elasticidad.
58
Figura 22. Metodología de la ruta crítica
Fuente: ITESCAM
Definición del proyecto
Esta etapa aunque es esencial para la ejecución del proyecto no forma parte
del método. Es una etapa previa que debe desarrollarse separadamente y para la
cual también puede utilizarse el método de la ruta crítica. Es una investigación de
objetivos, métodos y elementos viables y disponibles, lo que nos aclara si el
proyecto va a satisfacer una necesidad o si es costeable su realización.
Lista de actividades
Es la relación de actividades físicas o mentales que forman procesos
interrelacionados en un proyecto total. No es necesario que las actividades se listen
en orden de ejecución, aunque si es conveniente porque evita que se olvide alguna
de ellas. Sin embargo, las omisiones de las actividades se descubrirán más tarde al
hacer la red correspondiente. Es conveniente numerar progresivamente las
actividades para su identificación y en algunos casos puede denominarse en clave,
no es necesario indicar la cantidad de trabajo ni las personas que la ejecutarán. En
términos generales, se considerará actividad a la serie de operaciones realizadas por
59
una persona o grupo de personas en forma continua, sin interrupciones, con
tiempos determinables de iniciación y terminación.
Matríz de secuencias
Existen dos procedimientos para conocer la secuencia de las actividades:
a) Por antecedentes
b) Por secuencias
En el primer caso se preguntará a los responsables de los procesos cuales
actividades deben quedar terminadas para ejecutar cada una de las que aparecen en
la lista. Debe cuidarse que todas y cada una de las actividades tenga cuando menos
un antecedente. En el caso de ser iniciales, la actividad antecedente será cero. En el
segundo procedimiento se preguntará a los responsables de la ejecución, cuales
actividades deben hacerse al terminar cada una de las que aparecen en la lista de
actividades. Para este efecto se debe presentar la matríz de secuencias iniciando con
la actividad cero que servirá para indicar solamente el punto de partida de las
demás.
Matríz de tiempos
Mediante esta matríz conocemos el tiempo de duración de cada actividad del
proyecto. El método de la ruta crítica utiliza únicamente un tipo de estimación de
duración, basada en la experiencia obtenida con anterioridad mediante una
actividad X. Para asignar el tiempo de duración de una actividad debemos basarnos
en la manera más eficiente para terminarla de acuerdo con los recursos disponibles.
Tanto la Matríz de Secuencias como la Matríz de Tiempos se reúnen en una sola
llamada Matríz de información, que sirve para construir la Red Medida.
Red de Actividades
La representación visual del método de la ruta crítica es el diagrama de flechas o red
de actividades, que consiste en la ilustración gráfica del conjunto de operaciones de
60
un proyecto y de sus interrelaciones. La red está formada por flechas que
representan actividades y nudos que simbolizan eventos.
Cuando se encuentran varias flechas conectadas una tras otra es que existe
una secuencia entre ellas; esa es la manera de ilustrar dicha dependencia. Los nudos
o uniones de flechas, denominados eventos, se representan en la gráfica en forma
de círculos y significan la terminación de las actividades que culminan en un evento
determinado y la iniciación de las subsecuentes.
Matríz de Elasticidad
Existe un procedimiento que nos proporciona la posibilidad de retrasar o
adelantar una actividad sin consecuencias para las otras, es decidir la elasticidad de
las mismas. Para conocer la elasticidad de las actividades es necesario conocer los
siguientes conceptos.
Holgura total:
Es el exceso de tiempo disponible con respecto a la duración de una
actividad. Para calcularla se emplea la siguiente expresión:
HOLGURA TOTAL = TIEMPO REMOTO DE - TERMINACION TIEMPO PROXIMO DE
INICIO - DURACION
HT = TRT – TPI – Y
Holgura libre:
Cuando dos actividades están seriadas (por ejemplo A y B) y suponiendo que
TPIA<TPIB
TRTA<TRTB
TPTA=TPIB
TPIB>TRIA
61
Lo cual puede presentarse como se indica en la figura 21
Figura 21. Holgura interferente.
Fuente: ITESCAM
Tiempo flotante libre:
Puede definirse como aquel que podemos posponer la realización de una
actividad sin afectar las fechas subsecuentes. Esto calcula suponiendo que todas las
actividades precedentes se llevan a cabo en sus fechas próximas de realización. Lo
anterior puede comprenderse mejor si se observa la figura 6. El tiempo flotante libre
u holgura libre se calcula mediante la relación:
Figura 22. Tiempo flotante libre
Fuente: ITESCAM
Donde A es una actividad precedente a B.
62
Limitación de recursos y Económicas
Otra de las ventajas mayores que se ofrecen a quien utilice el método de
camino crítico para administrar un proyecto consiste en que permite nivelar las
necesidades de recursos humanos y materiales a lo largo del proyecto.
Costos, pendiente y compresión
Una vez elaborado un plan de acción lógico se plasma en un diagrama de
flechas, estimándose el tiempo y recursos necesarios para llevar a cabo las
diferentes actividades, es posible calcular los costos de mano de obra de varias
alternativas y entre ellas, seleccionar la más económica. Existe una relación entre el
tiempo de realización de cualquier proyecto y su costo. Además todo proyecto su
punto óptimo de realización, cuando existe una desviación el costo del proyecto se
eleva.
Red de actividades
Para determinar la red de actividades se construye un arreglo lógico, se
asignan duraciones y se estiman los tiempos próximos de iniciación, y se calculan los
tiempos remotos determinación. La etapa final consiste en establecer la matríz de
elasticidad para lo cual se calculan los tiempos remotos de iniciación, tiempos
próximos de terminación.
Ejemplo 8.
63
Determinar la ruta critica para la red del proyecto de la figura 23. Todas las
duraciones están en días.
Paso hacia adelante
Nodo 1. Hacer definir □1 = 0
Nodo 2. □2 = □1 + D12 = 0 + 5 = 5
Nodo 3. □3 = máx {□1+D13 ,□2+D23 } = máx {0+6 ,5+3 }=8
Nodo 4. □4 = □4 + D24 = 5 + 8 = 13
Nodo 5. □5 = máx {□3+D35 ,□ 4+D 45} = máx {8+2 ,13+0 }=13
Nodo 6. □6 = máx {□3+D36 ,□ 4+D 46 ,5+D56 } = máx {8+11 ,13+1 ,13+12 }=25
Los cálculos indican que el proyecto se puede terminar en 25 días.
Paso hacia atrás
Nodo 6. Hacer definir ∆6 = □6 = 25
Nodo 5. ∆5 = ∆1 + D56 = 25 - 12 = 13
Nodo 4. ∆4 = mín {∆6−D 46 ,∆5−D45 } = mín {25−1,13−0 }=13
Nodo 3. ∆3 = mín {∆6−D36 ,∆5−D35 } = mín {25−11,13−2 }=11
Nodo 2. ∆2 = mín {∆4−D24 ,∆3−D 23} = mín {13−8,11−3 }=5
Nodo 1. ∆1 = mín {∆3−D13 ,∆2−D12 } = mín {11−6,5−5 }=0
Si los cálculos son correctos, siempre terminaran ∆1 = 0
Los cálculos en los pasos hacia adelante y hacia atrás se resumen en la figura
22. Las reglas para determinar las actividades críticas indican que la ruta crítica es 1
64
→ 2→ 4 → 5 → 6, que abarca la redes desde el inicio hasta el fin. La suma de las
duraciones de las actividades críticas [(1,2), (2,4), (4,5) y (5,6)] es igual a la duración
del proyecto (=25 días)
Figura 22. Cálculos de los pasos hacia adelante y hacia atrás para el proyecto del ejemplo 8
Fuente: “investigación de operaciones” autor: Handy A. Taha.
Redes de PERT
El PERT difiere del CPM en que basa la duración de una actividad en tres
estimaciones:
1. Tiempo optimista: a, donde se supone que la ejecución va extremadamente
bien.
2. Tiempo más probable m, donde se supone que la ejecución se hace bajo
condiciones normales.
65
3. Tiempo pesimista b, donde se supone que la ejecución va extremadamente
mal.
Se supones que el intervalo (a, b) abarca todas las estimaciones o posibles de la
duración de una actividad. Por consiguiente, el estimado m debe estar en algún
lugar dentro del intervalo (a, b). Con base en los estimados (o estimaciones), el
tiempo promedio de duración Dd, y la varianza v, se calculan como sigue:
D �͞ =a+4m+b6
v=( b−a6
)2
Los cálculos de ruta crítica que se describió anteriormente se pueden aplicar
en forma directa, sustituyendo la estimación única D por Dd.
Ahora es posible estimar la probabilidad de que un nodo j en la red suceda
en un tiempo programado especificado con anterioridad, S j. Sea ej el tiempo más
temprano de ocurrencia del nodo j. como las duraciones de las actividades que van
del nodo de inicio al nodo j son variables aleatorias, e j también debe ser una variable
aleatoria. Suponiendo que todas las actividades en la red sean estadísticamente
independientes, se puede determinar la media, E {e j } y la varianza, var {ej } como
sigue. Si solo hay una ruta desde el nodo de inicio hasta el nodo j, la media es la
suma de las duraciones esperadas Dd, para todas las actividades a lo largo de esa
ruta, y la varianza es la suma de las varianzas v de las mismas actividades. Por otra
parte, si hay más de una ruta que llegue al nodo j, será necesario calcular primero la
distribución estadística de la duración de la ruta más larga, antes de calcula la media
y la varianza correctas. Este problema es bastante difícil porque equivale a
determinar la distribución del máximo de varias variables aleatorias. Por
consiguiente, una hipótesis simplificadora es Calcular la media y la varianza E{ ej } y
66
var { ej }, como el de la ruta al nodo j que tenga la misma media (o promedio), se
selecciona la que tenga la varianza mayor, porque refleja la máxima incertidumbre y
en consecuencia conduce a un estimado más conservador de las probabilidades.
Una vez calculados la media y la varianza E{ ej } y var { ej } de la ruta al nodo j,
la probabilidad que se realice el nodo j en un tiempo Sj preestablecido, se calcula
con la siguiente fórmula:
P {ej ≤ sj }=P {ej−E {ej }√var {ej }
≤Sj−E {ej}√var {ej }
=P {z≤ Kj}En donde
Z = variable aleatoria normal estándar
Kj=Sj−E {ej }√var {ej }
La variable aleatoria normal estándar z tiene media o y deviación estándar 1.
La justificación para usar la distribución normal es que ej es la suma de variables
aleatorias independientes. De acuerdo con el teorema del límite central, ej está
distribuida normalmente, en forma aproximada.
Ejemplo 9.
Se tiene el proyecto del ejemplo 8. Para evitar repetir los cálculos de ruta
critica, se seleccionaron los valores a, m y b en la tabla siguiente, de tal modo que Ddij
= Dij para toda i y j en el ejemplo 8.
Actividad i-j (a, m, b)A 1. - 2. (3,5,7)B 1. - 3. (4,6,8)C 2. - 3. (1,3,5)D 2. - 4. (5,8,11)
67
E 3. - 5. (1,2,3)F 3. - 6. (9,11,13)G 4. - 6. (1,1,1)H 5. - 6. (10,12,14)Tabla 22. Datos para el ejemplo 9
Fuente: “investigación de operaciones” autor: Handy A. Taha.
La media Ddij y la varianza Vij de las distintas actividades se ve en la tabla de
abajo. Observe que para una actividad (a, b, m) = (0,0,0), y en consecuencia su
media y varianza también son iguales a 0
Actividad i-j Ddij Vij A 1. - 2. 5 0.444B 1. - 3. 6 0.444C 2. - 3. 3 0.444D 2. - 4. 8 1E 3. - 5. 2 0.111F 3. - 6. 11 0.444G 4. - 6. 1 0H 5. - 6. 12 0.444
Tabla 23. Media y varianza de las distintas actividades
Fuente: “investigación de operaciones” autor: Handy A. Taha.
La tabla siguiente muestra la trayectoria más larga del nodo 1 a los
distintos nodos, junto con su media y varianza asociados
nodo ruta más larga basada en media de la desviación estándar de
68
duraciones medias ruta la ruta2 1. - 2. 5 0.673 1. - 2. - 3. 8 0.944 1. - 2. - 4. 13 1.205 1. - 2. - 4. - 5. 13 1.206 1. - 2. - 4. - 5. - 6. 25 1.37
Tabla 24. Trayectoria más larga del nodo 1 a los distintos nodos, junto con su
media y varianza asociados
Fuente: “investigación de operaciones” autor: Handy A. Taha.
Por último, en la tabla siguiente se calcula la probabilidad de que cada nodo
se realice en un tiempo Sj preestablecido, especificado por el analista.
nodoruta más larga basada en duraciones
medias media de la ruta
desviación estándar de la
ruta2 1. - 2. 5 0.673 1. - 2. - 3. 8 0.944 1. - 2. - 4. 13 1.205 1. - 2. - 4. - 5. 13 1.206 1. - 2. - 4. - 5. - 6. 25 1.37
Sj Kj P { z ≤ Kj}
5 0 0,5
11 3,19 0,9993
12 -0,83 0,2033
14 0,83 0,7967
26 0,73 0,7973
Tabla 25. Probabilidad de que cada nodo se realice en un tiempo Sj preestablecido
Fuente: “investigación de operaciones” autor: Handy A. Taha.
69
CONCLUSIÓN
Los modelos de redes son aplicables a una extensa variedad de problemas de
decisión, los cuales pueden ser modelados como problemas de optimización de
redes que pueden ser eficiente y efectivamente resueltos.
Algunos de estos problemas de decisión son realmente problemas físicos,
tales como el transporte o flujo de bienes materiales. Sin embargo, muchos
problemas de redes son más que una representación abstracta de procesos o
actividades, tales como el camino crítico en las actividades entre las redes de un
proyecto gerencial.
El modelo de redes posee una gran aplicabilidad en muchos problemas de la
vida cotidiana, en nuestra sociedad moderna es casi imprescindible para lograr una
mayor eficiencia en cas cualquier tipo de flujo.
En general puede observarse la importancia de los modelos matemáticos
para encontrar la solución de infinidad de problemas.
70
BIBLIOGRAFÍA
1. Cálculo para la ruta crítica. Tomado de:
http://www.itescam.edu.mx/principal/sylabus/fpdb/recursos/r66921.PDF
2. Handy A. Taha. (2004) Investigación de operaciones. Pearson. México. P. 213-
268.
71