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. ole oductos. 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:
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 conjunto de nodos de la red, y se definen
el
Ck = Conjunto de nodos que se han conectado en forma permanente en la iteración k Ck = Conjunto de nodos que todavía se deben conectar en forma permanente. Paso 0. El conjunto C 0 = Ø y C0 = N. Paso 1. Comenzar con cualquier nodo en el conjunto C 0
no conectado (o
inconexo), e igualar C 1 = {i }, con lo que C1 = 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 C k-1. Enlazar a j* en forma permanente con C k-1 y sacarlo de C k 1, esto es Ck = Ck-1 + {j*}, Ck = Ck 1 {j*}
5
Si el conjunto Ck, 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}, C1 = {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}, C6 = {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 = 1 6 metros.
6
Figura 3. Conexiones de cable para Midwest TV Cable Company. Fuente: investigación de operaciones autor: Handy A. Taha.
Iteración
7
Iteración 2
Iteración 3
8
1
Iteración 4
1
Iteración 5
9
4
5
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
11
2003
4800
2004
4900
7100 -------
-------------
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.
12
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 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
13
En esta sección se presentan dos algoritmos para resolver redes tanto cíclicas (es decir, que contiene bucles o lazos) como acíclicas: 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 d i,j ( ) como la longitud del arco ( i, j ). Entonces el algoritmo define la etiqueta de un nodo inmediato posterior j como
La etiqueta del nodo de inicio es predecesor.
, que indica que el nodo no tiene
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
Igualar
Paso i.
14
a. Calcular las etiquetas temporales
para cada nodo j al que pueda
llegarse desde el nodo i, siempre y cuando j no tenga etiqueta permanente. Si el nodo j ya está etiquetado con sustituir
por
por otro nodo k, y si
,
.
b. Si todos los nodos tienen etiquetas permanentes, detenerse. En caso contrario, seleccionar la etiqueta
que tenga la distancia más corta (= ) 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
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
3
1
2
Estado
Permanente
Temporal 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.
y
Para las dos etiquetas temporales
menor distancia
, el nodo 3 produce la
. 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
2 3
Permanente
Temporal
Permanente
4
Temporal
5
Temporal
Tabla 7. Iteración 2
Fuente: investigación de operaciones autor: Handy A. Taha.
El estado de la etiqueta temporal permanente
.
16
en el nodo 4 se cambia a
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
2 3
4
5
Permanente
Temporal
Permanente
Permanente
Temporal
Tabla 8. Iteración 3
Fuente: investigación de operaciones autor: Handy A. Taha.
La etiqueta temporal 2,
, en la iteración 2 se cambia a
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
.
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
1
2
3
17
Estado Permanente Permanente Permanente
4
5
Permanente
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:
Por lo anterior, la ruta buscada es 55 metros.
, con una longitud total de
Figura 7. Procedimiento de etiquetado de Dijkstra. Fuente: investigación de operaciones autor: Handy A. Taha.
18
Algoritmo de Floyd. 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 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
En este caso, lo óptimo es reemplazar la ruta directa
por la ruta indirecta
. 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 D 0 y de secuencias de nodos S 0
como se describe abajo. Los elementos diagonales se macan con () para indicar que están bloqueados. Igualar K = 1.
D0 =
D0 =
1
2
j
n
1
d12
dij
d1n
2
d21
d2j
d2n
i
di1
di2
dij
n
Dn1
dn2
dnj
1
2
j
n
1
2
j
n
2
1
j
n
i
1
2
n
1
2
j
din
j
n
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 en Dk-1 para toda i y j. si se satisface la condición
20
Hacer los siguientes cambios:
1. Crear Dk reemplazando en Dk-1 por . 2. Crear Sk reemplazando S ij en Sk-1 por k. igualar k = k + 1 y repetir el paso k. Se puede explicar el paso k del algoritmo representando D k-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 D n y Sn con olas siguientes reglas.
1. En Dn, representa la distancia más corta entre los nodos i y j, 2. En Sn, se determina el nodo intermedio k = S ij que forme la ruta
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 S 0 son la representación inicial de la red. D 0 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 D 0 con
color azul: son l primer renglón y la primera columna. Las celdas más grises, d 23 y d32 son las únicas que pueden mejorar con la operación triple. Así, D 1 y S1 se obtienen partiendo de D 0 y S0 como sigue: 1. Sustituir d23 con d21 + d13 = 3 + 10 = 13, e igualar s 23 = 1 2. Sustituir d32 con d31 + d12 = 10 + 3 = 13, e igualar s 32 = 1 Estos cambios se muestran en negritas, en las matrices D 1 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 D 1. Se aplica
la operación triple a las celdas grises de D 1 y S 1. Los cambios que resultan se indican con negritas en D 2 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 D 2.
Las nuevas matrices son D 3 y S3.
25
D3 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 D 4 y S4. D4 1
2
3
4
5
1
3
10
8
12
2
3
11
5
9
26
3
10
11
6
10
4
8
5
6
4
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, D 5 y S5 son iguales que D4 y S4. Las matrices finales D 5 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 S 15 = 4, la ruta inicial es
. Ahora bien, como S14 = 2 4, el segmento (1,4) no es un enlace directo
27
y
se debe reemplazar por
ahora en
, y la ruta
se transforma
. A continuación, como S12 = 2, S24 = 4 y S45 = 5, la ruta
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 f lujo 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
, se usa la notación (C ij, C ji) para representar las
capacidades de flujo en las dos direcciones,
y
, 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: Cij de
y C ji de
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 f igura 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 (Cij, 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 (C ij, C ji) para representar esos residuales. Para un nodo j que recibe flujo del nodo i, se define una etiqueta
, donde 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, (C ij, C ji) = (Cij, C ji). Sea
2.
y se etiqueta el nodo fuente I con
. Se iguala i = 1 y se prosigue en el paso 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, para toda j S i). Si Si 3.
Ø, ir al paso 3. En caso contrario ir al paso 4.
Determinar k Si tal que
32
Igualar
y etiquetar el nodo k con
. 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 N p = (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
À
La capacidad residual de cada arco a lo largo de la ruta de irrupción se disminuye en f p unidades en la dirección del flujo y se aumenta f p 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, C ji) a a)
(Cij - f p, C ji + f p) si el flujo va de i a j.
b)
(Cij + f p, C ji - f p) 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.
a)
(solución) Si se han determinado m rutas de irrupción, el flujo máximo en la red es
b)
Como los residuales inicial y final del arco (i, j) se obtiene con (C ij, C ji) y
(Cij, C ji), respectivamente, el flujo optimo en el arco (i, j) se calcula como sigue: sea
33
= (C ij - C ij, C ji - C ji). Si
, el flujo optimo de i a j es . Si
óptimo de i a j es . (es imposible que tanto
y
, el flujo
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 =
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 N 2 =
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
. 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)
(a)
34
(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 (C ij, C ji) a las capacidades iniciales (C ij,
C ji).
]
Paso 1. Igualar
y etiquetar el nodo 1 con
Paso 2. S1=
.
Paso 3. K = 3 porque c 13 =
. Poner i = 1.
=
= 30 u etiquetar el nodo 3 con
= 30. Tomar a3 = c 13
. Igualar i = 3 y repetir el paso 2.
Paso 2. S3 = (4,5). Paso 3. K = 5 y a5 = c35 =
= 20. Etiquetar el nodo 5 con
obtuvo una irrupción. Ir al paso 5.
. Se
Paso 5. La ruta de irrupción se determina con las etiquetas comenzando en el nodo 5
À
y terminando en el nodo; esto es,
y f1 =
Así N1 =
las capacidades residuales a lo
largo de la ruta N1 son
Iteración 2.
Paso 1. Poner Paso 2. S1=
y etiquetar el nodo 1 con
. Poner i = 1.
.
Paso 3. K = 2 y a 2 = c12 = Paso 2. S2=
= 20. Poner i = 2 y repetir el paso 2.
.
Paso 3. K = 3 y a3 = c 23 = 40. Etiquetar el nodo 3 con paso 2. 39
. Poner i = 3 y repetir el
Paso 2. S3=
Paso 3. K = 4 y a4 = c 34 = 10. Etiquetar el nodo 4 con paso 2. Paso 2. S4=
. Poner i = 4 y repetir el
Paso 3. K = 5 y a 5 = c45 = 20. Etiquetar el nodo 5 con Ir al paso 5. Paso 5. N2 =
y f2 =
de la ruta de N2 son
À
. Se obtuvo una irrupción.
. Los residuales a lo largo
Iteración 3.
Paso 1. Poner Paso 2. S1=
y etiquetar el nodo 1 con
. Poner i = 1.
.
Paso 3. K = 2 y a 2 = c12 = i = 2 y repetir el paso 2. Paso 2. S2=
= 10. Etiquetar el nodo 2 con
.
Paso 3. K = 3 y a3 = c 23 = 30. Etiquetar el nodo 3 con paso 2. Paso 2. S3=
Poner
]
. Ir al paso 4 para retroceder.
40
. Poner i = 3 y repetir el
Paso 4. La etiqueta
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=
Paso 3. K = 5 y a5 = c25 = 30. Etiquetar el nodo 5 con irrupción; proseguir en el paso 5. Paso 5. N3 = de N3 son
y C5 =
À
. Se ha logrado la
. Los residuales a lo largo de la ruta
Iteración 4. En esta iteración se obtiene N4 = Iteración 5. En esta iteración se obtiene N5 = Iteración 6.
con f4 = 10
con f5 = 10
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, C ji) en las iteraciones 6 de las capacidades (Cij, C ji), como se ve en la tabla siguiente. arco
(Cij, C ji) - (Cij, Cji)6
flujo
direcciones
(1, 2)
(20, 0) - (0, 20) = (20, -20)
20
12
(1, 3)
(30, 0) - (0, 30) = (30, -30)
30
13
(1, 4)
(10, 0) - (0, 10) = (10, -10)
10
14
41
(2, 3)
(40, 0) - (40, 0) = (0, 0)
0
-
(2, 5)
(30, 0) - (10, 20) = (20, -20)
20
25
(3, 4)
(10, 5) - (0, 15) = (10, -10)
10
34
(3, 5)
(20, 0) - (0, 20) = (20, -20)
20
35
(4, 5)
(20, 0) - (0, 20) = (20, -20)
20
45
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 f lujo 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 1 6. Muestra las definiciones en el arco (i, j). La etiqueta 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
Sujeta a.
La ecuación para el nodo j mide el flujo neto en el modo j como sigue: (Flujo que sale del nodo j) (flujo que entra al nodo j) = El nodo j funciona como fuente si > 0 y como sumidero si <0. Siempre se puede eliminar la cota inferior
de las restricciones, mediante la
sustitución
La nueva variable de flujo x tiene un límite superior igual a el flujo neto en el nodo se vuelve -
. Además,
y en el nodo j es + . 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 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.
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 objetivo, para todos los arcos no básicos actuales (i, j). Si
, los coeficientes para todas i y
j, la base actual (es decir, la que se tiene en este momento) es ÓPTIMA. En caso
más positivo para entrar en
contrario se selecciona el arco no básico con la 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
Sujeta a
Wi se signo no restringido, i = 1,2,«, n
Según la teoría de programación lineal
47
, para el arco básico (i, j)
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 1 8 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 1 9. Red para la iteración . ¡
Fuente: investigación de operaciones autor: Handy A. Taha.
49
En la figura 1 9, 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 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.
Así se obtiene
Ahora se calculas Zij Cij para las variables no básicas, como sigue:
50
Por lo anterior, el arco (2,5) ( 2,5) entra a la solución básica. Paso 2. Determinación del arco saliente: en la figura 1 9 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 1 9. 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
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
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
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 + = + Ecuación actual del flujo en el nodo 5: + + = 60 Entonces, la sustitución
da como resultado:
Nueva ecuación actual del flujo en el nodo 2: 20 + + = Nueva ecuación actual del flujo en el nodo 5: + = + 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
, 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 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
£
¢
. Red para la iteración . ¤
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
¥
¤
¦
,4 sea no básico en su cota superior = ¦
¥
35 . ¦
Al utilizar la sustitución de figura
¢
¤
con los arcos
¥
¤
,3 ,
inversión del flujo en el arco
¦
¥
¤
¥
la red cambia como se ve en la
,3 , 3,5 y 4,5 formando la solución básica. La ¦
¢
¥
¦
¥
¦
,4 cambia su costo unitario a - 5. ¦
§
53
Figura
©
¨
. Red para la iteración
¨
Fuente: investigación de operaciones autor: Handy A. Taha.
Entra el arco Sale el arco
,
en el nivel 5.
,3 en el nivel .
54
Aumentar 5 a X23. Iteración 3.
Los cálculos de las nuevas Z ij 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.
Solución óptima
COSTO TOTAL = $490
55
Figura
. 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
56
que el método de la ruta crítica es aplicable y útil en cualquier situación en la que se 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 TPIATRIA
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
62
Donde A es una actividad precedente a B.
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.
63
Ejemplo 8. 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 + D 12 = 0 + 5 = 5 Nodo 3. 3 = máx
= máx
Nodo 4. 4 = 4 + D24 = 5 + 8 = 13 Nodo 5. 5 = máx
Nodo 6. 6 = máx
= máx
= máx
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 + D 56 = 25 - 12 = 13 Nodo 4. 4 = mín Nodo 3. 3 = mín Nodo 2. 2 = mín Nodo 1. 1 = mín
= mín = mín = mín = mín
Si los cálculos son correctos, siempre terminaran 1 = 0
64
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 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.
65
2. Tiempo más probable m, donde se supone que la ejecución se hace bajo condiciones normales. 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 acvidad. Por consiguiente, el esmado m debe estar en algún l ugar dentro del intervalo (a, b). Con base en los esmados (o esmaciones), el empo promedio de duración D , y la varianza v, se calculan como sigue:
Los cálculos de ruta crítica que se describió anteriormente se pueden aplicar en forma directa, sustituyendo la estimación única D por D . 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 e j 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 {e j } 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 D , 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
66
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{ e j } y var { e j }, 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{ e j } y var { e j } de la ruta al nodo j, la probabilidad que se realice el nodo j en un tiempo S j preestablecido, se calcula con la siguiente fórmula:
En donde Z = variable aleatoria normal estándar
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 ene el proyecto del ejemplo 8. Para evitar reper los cálculos de ruta crica, se seleccionaron los valores a, m y b en la tabla siguiente, de tal modo que Dij = Dij para toda i y j en el ejemplo 8. Actividad A
i-j 1. - 2.
67
(a, m, b) (3,5,7)
B C D E F G H
1. - 3. 2. - 3. 2. - 4. 3. - 5. 3. - 6. 4. - 6. 5. - 6.
(4,6,8) (1,3,5) (5,8,11) (1,2,3) (9,11,13) (1,1,1) (10,12,14)
Tabla 22. Datos para el ejemplo 9 Fuente: investigación de operaciones autor: Handy A. Taha.
La media Dij 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 A B C D E F G H
i-j 1. - 2. 1. - 3. 2. - 3. 2. - 4. 3. - 5. 3. - 6. 4. - 6. 5. - 6.
Dij
Vij
5
0.444 0.444 0.444 1 0.111 0.444 0 0.444
6
3 8
2 11 1 12
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
68
ruta más larga basada en duraciones medias 1. - 2. 1. - 2. - 3. 1. - 2. - 4. 1. - 2. - 4. - 5. 1. - 2. - 4. - 5. - 6.
nodo 2 3 4 5 6
media de la ruta 5
desviación estándar de la ruta 0.67 0.94 1.20 1.20 1.37
8
13 13 25
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 S j preestablecido, especificado por el analista.
nodo 2 3 4 5 6
ruta más larga basada en duraciones medias 1. - 2. 1. - 2. - 3. 1. - 2. - 4. 1. - 2. - 4. - 5. 1. - 2. - 4. - 5. - 6.
S j
K j 5 11 12 14 26
0 3,19 -0,83 0,83 0,73
media de la ruta 5 8
13 13 25
desviación estándar de la ruta 0.67 0.94 1.20 1.20 1.37
P { z Kj} 0,5 0,9993 0,2033 0,7967 0,7973
Tabla 25. Probabilidad de que cada nodo se realice en un tiempo S j 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