Redes de Optimización en Programación Matemática
Redes de Optimización en Programación Matemática
Programación Matemática I
CAPITULO V
REDES DE OPTIMIZACION
INTRODUCCION
La modelación o representación gráfica en redes proporciona una gran ayuda para visualizar las
relaciones entre los componentes de sistema complicados y que son estudiados en Investigación de
Operaciones. Los problemas más típicos que se resuelven incluyen: encontrar la ruta más corta de una
red, determinar el flujo máximo a través de una red, Problema de flujo a costo mínimo y problema de
flujo máximo a costo mínimo.
Los modelos de redes son casos particulares de la programación lineal que disponen de métodos de
solución propios que resultan más eficientes que el método simplex.
La teoría de redes también se conoce con el nombre de teoría de grafos.
Una red es un conjunto de nodos (vértices o puntos) conectados por un conjunto de arcos (líneas,
ramas, bordes). Existen arcos dirigidos de un nodo a otro y existen arcos que no tienen dirección.
A las redes cuyos arcos no tienen dirección se les llaman adireccionales .
Se denotará al nodo i por Ni y al arco dirigido del nodo i y al nodo j por Aij. Las redes de
optimización que se utilizan en este tendrán un número finito de nodos y arcos. Cuando se trate de
un arco no dirigido de Ni a Nj se utilizará indistintamente la nomenclatura Aij o Aji.
En la siguiente figura hay una red con cuatro nodos y seis arcos dirigidos.
N
2
A12 A24
N N
1
A23 A32 4
A13 A34
N
3
Una cadena de Ni a Nk es una serie de nodos y arcos que unen los nodos Ni y Nk. Por ejemplo, en
la figura, la cadena N1 , A12, N2, A24, N4 une a los nodos N2 y N4. un ciclo es una cadena que
empieza y termina en el mismo nodo. Por ejemplo en la figura, la cadena N 2 , A23, N3, A32, N2
forma un ciclo. Cadena simples son aquellas cadenas que no contiene ciclos.
Asociado a cada arco Aij se define lo siguiente:
Mgr. Manuel Alvarado Contreras – Lic. Ramón Vera Roalcaba – Lic. Wilder Miñano León 215
UNJBG / FACI - Escuela de Computación Matemática
Programación Matemática I
uij0, capacidad máxima del flujo de arco Aij. Por lo general un número entero.
lij0, cantidad mínima de flujo que debe fluir del nodo Ni al nodo Nj.
cij0, costo por unidad de flujo que va del nodo Ni al nodo Nj.
Cuando cij0, se le toma como un egreso y cuando cij0, se le toma como un ingreso.
Se designará el nodo fuente por Ns y el nodo destino por Nt .
El flujo a través de una red debe satisfacer las siguiente restricciones:
a. El flujo entra a la red únicamente por el nodo fuente. Matemáticamente se representa por:
Donde v0 es el flujo total que entra a la red y s es el nodo fuente. Por convención, el
flujo que sale de un nodo (eflujo) es negativo y el flujo que entra en un nodo (influjo) es
positivo.
b. Hay conservación de flujo en un nodo intermedio, es decir, el total de flujo que entra en
cierto nodo es igual al total de flujo que sale del mismo. Matemáticamente se tiene:
Forma matricial:
Una red es un grafo con algún tipo de flujo en los arcos o ramas. Se acostumbra a nombrar cada
nodo por un número o una letra mayúscula.
1 e
b
4
c
a f g
2
d Origen Final
3 5
Partida Llegada
1 -1
Figura 1.1
La representación gráfica de una red a través de nodos y arcos tienen correspondencia con una
representación matemática a través de matrices.
Una matriz de incidencia A está compuesta por los elementos aij de la siguiente manera.
Mgr. Manuel Alvarado Contreras – Lic. Ramón Vera Roalcaba – Lic. Wilder Miñano León 216
UNJBG / FACI - Escuela de Computación Matemática
Programación Matemática I
i=arcos
j=nodos
MATRIZ DE INCIDENCIA
1 e
b
4
a
c
f g
2
d
3 5
MATRIZ DE ADYACENCIA
Mgr. Manuel Alvarado Contreras – Lic. Ramón Vera Roalcaba – Lic. Wilder Miñano León 217
UNJBG / FACI - Escuela de Computación Matemática
Programación Matemática I
La minimización de redes tiene que ver con la determinación de los ramales que pueden unir todos
los nodos de una red, tal que minimice la suma de longitud de los ramales escogidos. Esta claro
que no resulta óptimo incluir ciclos en la solución del problema. La siguiente figura ilustra este
punto.
18
1 2
6 4
Las longitudes de las ramas se conectan los nodos 1,2 y 3 se indican en las ramas respectivas. Esta
claro también que la red mínima ocurre cuando el nodo 3 se conecta a 1 y 2, lo que da una longitud
mínima total de las ramas igual a 4+6=10. Si se conectan los nodos 1 y 2, se producirá un ciclo y
la red resultante no se minimiza.
La ausencia de ciclos en una red mínima nos ha llevada a crear el nombre sugestivo ARBOL DE
EXTENSION MINIMA (AEM). En cualquier red, el AEM se determina en forma iterativa de la
manera siguiente. Comience con cualquier nodo y únase éste a su nodo más próximo de la red. Los
dos nodos resultantes forman ahora un conjunto conectado y los nodos restantes constituyen el
conjunto no conectado. Después, elíjase un nodo del conjunto no conectado que está más
próximo(distancia mas corta) a cualquier nodo de los conjuntos conectados y súmelo al conjunto
conectado. Si redefinimos los conjuntos conectados y no conectados de acuerdo con esto, el
proceso se repetirá hasta que el conjunto conectado incluya todos los nodos de la red. Cualquier
empate se puede romper de forma arbitraria. Sin embargo, los empates indican la existencia de
otros AEM.
Ejemplos:
La Empresa Panamericana TV. esta planeando una red para dar servicio de TV por cable a cinco
nuevas áreas de desarrollo habitacional. La red del sistema de cable se resume en la siguiente
figura:
3 millas
2
5
6
1 9
4
1 3
Mgr. Manuel Alvarado5 Contreras – Lic. Ramón Vera Roalcaba – Lic. Wilder Miñano León 218
10
5 8
6
7
4 3
UNJBG / FACI - Escuela de Computación Matemática
Programación Matemática I
Los números asociados con cada rama representan la longitud(en millas) que se necesita para
conectar dos sitios cualesquiera. El nodo 1 representa la estación de TV por cable y los nodos
restantes(2 y 6) representan las 5 áreas de desarrollo. Una rama faltante entre dos nodos implica
que es prohibitivamente costoso o físicamente imposible conectar las áreas de desarrollo
asociadas. Se requiere determinar los enlaces que originarán el uso mínimo de cable a la vez que
se garantiza que todas las áreas se conectan directamente o indirectamente a la estación de TV por
cable.
conjunto conectado C
3
2 conjunto no conectado
1 6
5
9
1
5
3
7 4
6
4
Iteración 1
C 3
2
1 6
5
1
5
3
8
7 4
6
C
4
Iteración 2
C 3
2
1 6
5
1
5
3 Roalcaba – Lic. Wilder Miñano León
Mgr. Manuel Alvarado Contreras – Lic. Ramón Vera 219
4 5 C 6
8
4
UNJBG / FACI - Escuela de Computación Matemática
Programación Matemática I
Iteración 3
2
C 1 6 3
5
1
5 C
3
10
4
5 6
3
4
Iteración 4
3
2
1
5
1
5 C ={1,2,3,4,5,6}
3
C
4
5
enlaces 6
3
alternos 4
Iteración 5
A través de las iteraciones. El procedimiento puede iniciarse desde cualquier nodo, terminando
siempre con la misma solución optima.
Mgr. Manuel Alvarado Contreras – Lic. Ramón Vera Roalcaba – Lic. Wilder Miñano León 220
UNJBG / FACI - Escuela de Computación Matemática
Programación Matemática I
C {1,2} C {3,4,5,6}...............iteracion2
C {1,2,5} C {3,4,6}...............iteracion3
La iteración 2 da las distancias de los nodos C ={1,2,5} a todos los nodos de C = {3,4,6}. Por tanto
los nodos 2 y 4 están conectados, lo que produce
La iteracion 3 muestra que los nodos 4 y 6 deben estar conectados. Por lo tanto, obtenemos
C {1,2,4,5,6} C {3}...............iteracion5
En la iteracion 5 tenemos un paquete que podemos romper arbitrariamente. Esto quiere decir que
podemos conectar 1y 3 ó 4 y 3. ambas soluciones nos conducen a
Como todos los nodos están conectados, el procedimiento está completo, la longitud mínima(en
millas) de cable que se utiliza para conectar las áreas de desarrollo habitacional a la estación de
TV es de igual a 1+3+4+3+5=16.
Mgr. Manuel Alvarado Contreras – Lic. Ramón Vera Roalcaba – Lic. Wilder Miñano León 221
UNJBG / FACI - Escuela de Computación Matemática
Programación Matemática I
En el sentido evidente, el problema de la ruta más corta tiene que ver con la determinación de los
caminos conectados de una red de transporte que constituyen en conjunto la distancias más corta
entre una fuente y un destino.
En esta sección presentamos otros tipos de aplicaciones que se pueden representar por medio de
modelos y resolver como un problema de la ruta mas corta. Las aplicaciones van seguidas de los
siguientes algoritmos de solución.
a) Algoritmo de Ford
Para este procedimiento se utiliza la siguiente representación:
Los nodos están representados por un circulo en donde se indica el valor n el identificador A del
nodo.
n
----
A
Los arcos aij están orientados y valorizados con la distancia entre el nodo i y el nodo j.
Mediante un procedimiento se asigna un valor n a cada nodo que es igual a la longitud de la ruta
más corta que va desde el nodo origen al nodo j. Para ello el procedimiento consiste en:
Algoritmo de Ford:
Paso1: Asigna un valor 0 al nodo origen.
Paso2: Para valorizar cada nodo i es necesario conocer el valor de todos los nodos
predecesores a i. El valor asignado será igual al menor valor que resulta al sumar los
valores de los nodos predecesores con el valor del arco que une con el nodo i.
Paso 3: El punto anterior se repite hasta que se valoriza el nodo final. Si no puede valorizarse
el nodo final, significa que no hay un camino que los una. El valor asignado al nodo
final es la longitud de la ruta mas corta.
Paso 4: La ruta mas corta se encuentra partiendo con el valor del nodo final al que se le resta
el valor de cada arco que llega al nodo. El predecesor cuyo valor coincida con dicha
resta forma parte de la ruta mas corta. Este paso se repite con el nodo encontrado
hasta que se llegue al nodo de partida.
Mgr. Manuel Alvarado Contreras – Lic. Ramón Vera Roalcaba – Lic. Wilder Miñano León 222
UNJBG / FACI - Escuela de Computación Matemática
Programación Matemática I
INICIO
I=2 - N
i=N
SI
RESTA= valor nodo
j
Almacenar el nodo j
i=j
i=1
SI
FIN
Mgr. Manuel Alvarado Contreras – Lic. Ramón Vera Roalcaba – Lic. Wilder Miñano León 223
UNJBG / FACI - Escuela de Computación Matemática
Programación Matemática I
EJEMPLO. Encontrar la ruta mas corta entre 1 y T del grafo de la figura 1.2, donde las distancias
están expresadas en Km.
Figura 1.2
Se debe representar cada nodo con su identificador y su valor. Para ello se comienza con el nodo
0, asignándole un valor 0 (Paso 1 del procedimiento iterativo indicado anteriormente).
4
4 4
---
C ---
E
2 ---
--- 7 5 T
A ---
2 D
2 4
4 1 7
5
0 ---
--- B
O 1 3
4
4 4
---
C ---
E
Mgr. Manuel Alvarado Contreras – Lic. Ramón Vera Roalcaba – Lic. Wilder Miñano León 224
UNJBG / FACI - Escuela de Computación Matemática
Programación Matemática I
De igual manera se asignan los valores a los nodos D y E, para luego terminar con el nodo T.
13
2 ---
--- 7 8 5 T
A ---
2 D
2 4
4 1 7
5
0 ---
--- B
O 1 3
4
4 4
--- 7
C ---
E
b) Algoritmo de Floyd
Este algoritmo entrega las distancias y rutas más cortas entre todos los pares posibles de la red.
En este algoritmo el valor del arco que va desde el nodo i al nodo j se denota por Cij. Si para
algún par de nodos i y j, el valor de Cij=, significa que no existe un arco que va de i a j. Se
forma una matriz C con los elementos Cij.
El algoritmo también requiere de una matriz D, donde los elementos dij=i, j, donde i y j varían
de i a n (n=número de nodos).
La matriz C entrega las distancias y la matriz d las rutas, que van modificando sus valores de
acuerdo al siguiente procedimiento.
Algoritmo de Floyd
NOTA:
Los elementos cij de la matriz C obtenida corresponde a las distancias mínimas entre
los nodos i y j.
La matriz d sirve para encontrar las rutas más cortas entre los nodos i y j. El elemento
dij es el nodo predecesor de j. Si dij = i se ha obtenido el camino, si no debe elegirse
Mgr. Manuel Alvarado Contreras – Lic. Ramón Vera Roalcaba – Lic. Wilder Miñano León 225
UNJBG / FACI - Escuela de Computación Matemática
Programación Matemática I
el elemento dip (p=dij) que será el predecesor de p. Esto debe repetirse hasta que
dip=i.
Mgr. Manuel Alvarado Contreras – Lic. Ramón Vera Roalcaba – Lic. Wilder Miñano León 226
UNJBG / FACI - Escuela de Computación Matemática
Programación Matemática I
INICIO
k=1
i,j k
SI
Cij = min{ Cij , (Cik + Ckj)}
SI
Cik +Ckj < Cij
Dij = dkj
k = k +1
K=
n+1 SI
SI
FIN
Mgr. Manuel Alvarado Contreras – Lic. Ramón Vera Roalcaba – Lic. Wilder Miñano León 227
UNJBG / FACI - Escuela de Computación Matemática
Programación Matemática I
EJEMPLO: Determinar las distancias más cortas de todos los nodos de la figura 1.2 y la ruta
más corta entre los nodos A y T.
7 5 T
A
D
2
2 4
1 7
5 B
D 1 3
4
C E
4
PASO 1.- al aplicar el algoritmo consiste en formar las matrices C y D. En este ejemplo se ha
asignado a cada nodo (O, A, B,...T) un valor correlativo entre 1 y 7, con el fin de facilitar la
explicación del Algoritmo de Floyd.
PASO 2.- El siguiente paso es seleccionar la fila 1 y la columna 1 de la matriz C y analizar cada
cij para todo i, j distinto de 1.
Luego de aplicar el paso 2 del algoritmo, las matrices C y D quedan de la siguiente manera:
Mgr. Manuel Alvarado Contreras – Lic. Ramón Vera Roalcaba – Lic. Wilder Miñano León 230
UNJBG / FACI - Escuela de Computación Matemática
Programación Matemática I
PASO 3.- Indica que debemos repetir el paso 2 pero elegir la fila 2 y columna 2 y recalcular las
matrices C y D para todo i,j distinto de 2, considerando:
Por razones de espacio y debido a que el procedimiento es análogo al anterior se omiten los
cálculos y sólo Se entregan las matrices C y D resultantes. A modo de ejercitación se recomienda
realizar los cálculos de la misma forma hecha con la fila 1 y la columna 1.
De igual forma debemos proceder a elegir la fila 3 y la columna 3, para luego seleccionar la fila 4
y la columna 4 y así sucesivamente hasta llegar la fila 7 y la columna 7. aquí solo se entregan los
últimos resultados obtenidos
Mgr. Manuel Alvarado Contreras – Lic. Ramón Vera Roalcaba – Lic. Wilder Miñano León 231
UNJBG / FACI - Escuela de Computación Matemática
Programación Matemática I
d = 13 Km. entre O, T
d = 11 Km. entre A, T
La matriz C responde la primera pregunta de este ejemplo; las distancias mas cortas entre cada par
de nodos. Así por ejemplo la distancia más corta entre los nodos A y T es 11.
Entonces la matriz D sirve para responder la pregunta de la ruta más corta entre los nodos A y T (2
y 7). Para ello se analiza el elemento d27 de tal forma que el predecesor de 7(T) es 5(D), el
predecesor de 5(D) es 3(B) y por último el predecesor de 3(B) es 2(A). Por lo tanto la ruta más
corta entre A y T corresponde a A – B – D – T , y tiene una distancia, como se dijo, de 11 Km.
Mgr. Manuel Alvarado Contreras – Lic. Ramón Vera Roalcaba – Lic. Wilder Miñano León 232
UNJBG / FACI - Escuela de Computación Matemática
Programación Matemática I
1 2 3 4 5
1 4.0 5.4 9.8 13.7
2 4.3 6.2 8.1
3 4.8 7.1
4 4.9
Este problema se puede representar mediante una red como sigue. Cada año está representado por
un nodo. La longitud de un arco que une dos nodos es igual al costo de reemplazo asociado que se
da en la tabla. La sgte. figura
9.8 13.7
5.4
1 2 3 4 5
4 4.3 4.8 4.9
6.2 7.1
8.1
Representa la red. El problema se reduce a determinar la ruta mas corta del nodo 1 al nodo 5.
La ruta mas corta se puede determinar mediante el uso del algoritmo que presentaremos mas
adelante(seccion 6..2.2). La solución óptima produce la ruta 1 2 5 con un total de 4 + 8.1 =
12.1 (miles de unidades monetarias). Esto quiere decir que cada automóvil debe reemplazarse al
segundo año de uso y desecharse al quinto año( 2 y 5).
0.9
0.25
0.3
3 5
Mgr. Manuel Alvarado Contreras – Lic. Ramón Vera Roalcaba – Lic. Wilder Miñano León 233
UNJBG / FACI - Escuela de Computación Matemática
Programación Matemática I
Maximizar la suma de los logPj equivale a minimizar la suma de (-logPj). En la siguiente tabla
presentamos el resumen de las probabilidades y sus logaritmos del ejemplo
SEGMENTO DE
CAMINO Pij logPij -logPij
(i , j)
(1,2)
(1,3) 0.2 -0.69897 0.69897
(2,3) 0.9 -0.04576 0.04576
(2,4) 0.6 -0.22185 0.22185
(3,4) 0.8 -0.09691 0.09691
(3,5) 0.1 -1.0 1.0
(4,5) 0.3 -0.52288 0.52288
(4,6) 0.4 -0.39794 0.39794
(5,7) 0.35 -0.45593 0.45593
(6,7) 0.25 -0.60206 0.60206
0.5 -0.30103 0.30103
Luego, la figura siguiente expresa el problema de la Srta. Maria como un modelo de la ruta mas
corta.
2 0.096 4 0.455 6
0.301
0.698
7
1
0.045
0.602
0.522
3 5
Mgr. Manuel Alvarado Contreras – Lic. Ramón Vera Roalcaba – Lic. Wilder Miñano León 234
UNJBG / FACI - Escuela de Computación Matemática
Programación Matemática I
En esta sección presentamos un algoritmo para obtener la ruta mas corta en redes acíclicas. El
algoritmo es muy simple, pero presenta el concepto fundamental de los cálculos recursivos, que es
la base de los cálculos de programación dinámica.
Primero desarrollamos el algoritmo a través de un ejemplo numérico. Después se explica el
procedimiento desde el punto de vista de cálculos recursivos.
Ejemplo :
| fase 1 | fase 2 | fase 3 | fase 4 | fase 5 |
2 = 2 5 5= 7
2 5
6
2 11 8
10 7
1 4 4 = 7 7 =13
1 = 0
7
3 9
4
1
3 6
3 = 4 6 = 5
El nodo 1 es el punto inicial (origen) y el nodo 7 es el punto terminal(destino). Nótese que la red
es acíclica, ya que no existen cadenas que conecten un nodo con él mismo.
el procedimiento está completo cuando se calcula 7 La formula general para calcular j es :
La formula implica que la distancia mas corta j al nodo j se puede determinar sólo después de que
se calcula la distancia mas corta a cada nodo predecesor i enlazado a j por un arco.
Dando inicio a los cálculos en el nodo 1, vemos que solo 2 y 3 se pueden determinar en este
punto. (aunque 4 está enlazado a 1, 4 no se pueden calcular sino hasta que se conozcan 2 y 3) La
sucesión de cálculos procede en fases del modo siguiente:
Fase 1:1 = 0
Fase 2:2 = 1+ d12 = 0 + 2 = 2 (desde 1)
3 = 1+ d13 = 0 + 4 = 4 (desde 1)
Fase 3:4 = min{1+ d14 , 2+ d24 , 3+ d34 }
= min{ 0 + 10 , 2 + 11 , 4 + 3} = 7 (desde 3)
Mgr. Manuel Alvarado Contreras – Lic. Ramón Vera Roalcaba – Lic. Wilder Miñano León 235
UNJBG / FACI - Escuela de Computación Matemática
Programación Matemática I
= min{ 4 + 1 , 7 + 7 } = 5 (desde 3)
En realidad se pueden efectuar los cálculos directamente en la red, como se puede ver en la fig.
del ejemplo. El valor de j para el nodo j se determina solo después de calcular i para todos los
nodos i inmediatamente anteriores a j. Por tanto, comenzando con 1 = 0 obtenemos 2 = 2 y 3 =
4. Después puede obtenerse 4 =7. En este punto se obtienen 5 =7 y 6 = 5. En el paso final se
determina 7 = 13
El tipo de operaciones que se describen arriba es interesante porque tiene que ver con cálculos
recursivos. Esto se caracteriza por el uso de información que resume las distancias más cortas
hasta el nodo inmediatamente anterior. Por ejemplo, en el nodo 5 5 se calcula con base en las
distancias más cortas del nodo 1 a los nodos 2 y 4, es decir 2 y 4 . Nótese que nunca es
necesario conocer la ruta específica que nos conduce a la distancia más corta entre 1 y 4. el valor
de 4 resume toda la información que necesitamos conocer a cerca del nodo 4. Este tipo de
recopilación es lo que hace posible el uso del cálculo recursivo.
En esta sección se considera la situación en la que se enlazan un nodo fuente y un nodo destino a
través de una red de arcos unidirigidos (un solo sentido). Cada arco tiene una capacidad máxima
de flujo admisible. El objetivo es de obtener la máxima cantidad de flujo entre la fuente y el
destino. Un ejemplo de esta situacion es el caso donde un número de refinerias se conectan a
terminales de distrtibución a través de oleoductos. En los oleoductos están montadas unidades de
bombeo que impulsan los productos derivados del petróleo hasta las terminales de distribución. El
objetivo consiste en maximizar el flujo entre las refinerias y las terminales de distribución dentro
de los limites de capacidad de las refinerias y los oleoductos.
La figura siguiente ilustra el problema de flujo máximo de la refineria:
7
1
4
9
0 2 6
Fuente 5 8 Depósito
3
Aquí sumamos una fuente que se conecta a todas las refinerias y un deposito que recibe flujo de
todas las terminales de distribución. Los nodos entre las refinerías. Cada oleoducto tiene una
capacidad de diseño máximo que determina el flujo máximo admisible en línea. Los arcos tendidos
de los terminales de distribución al depósito tienen supuestamente capacidades infinitas para hacer
posible la determinación del flujo máximo proveniente de las refinerias.
Mgr. Manuel Alvarado Contreras – Lic. Ramón Vera Roalcaba – Lic. Wilder Miñano León 236
UNJBG / FACI - Escuela de Computación Matemática
Programación Matemática I
En algunos casos, quiza deseemos utilizar las demandas en las terminales como capacidades de los
arcos del depósito.
Este problema de programación línea tiene métodos propios de solución que resultan más
eficientes que el método simples.
En este algoritmo el valor de los arcos de la red representa la capacidad máxima( lo que permitiría
pasar) de una canalización entre los nodos.
Así la red es orientada y valorizada en sus arcos. Se requiere de un nodo de origen S y un nodo
destino T. En el caso que al plantear un problema existiesen más de un nodo origen o destino, se
deben incorporar nodos artificiales con capacidades infinitas para que no influyan en el resultado
del problema.
PASO 1: Introducir un flujo cualesquiera en la red, compatible con las capacidades máximas
dadas.
PASO 2: Buscar flujos completos, de forma que haya a menos un arco saturado.
PASO 3: Repetir los pasos anteriores hasta que no pueda aumentarse el flujo que se reciba el
nodo final.
Alcanzando este punto se obtiene un flujo denominado flujo completo, que será la suma de los
flujos de los arcos que llegan al nodo final.
Para comprobar si este flujo es el máximo de la red se aplica el siguiente método de la cadenas
incrementales:
f) Buscar nuevas cadenas increméntales mientras sea posible. Mientras no es encuentren más
cadenas increméntales, el flujo completo encontrado será el flujo será el flujo máximo de la red.
INICIO
N: número de
nodos
Número de arcos
Se pueden
encontrar cadenas a
traves de los nodos
marcados?
NO
El flujo completo hallado es el flujo máximo de la red
FIN
Mgr. Manuel Alvarado Contreras – Lic. Ramón Vera Roalcaba – Lic. Wilder Miñano León 238
UNJBG / FACI - Escuela de Computación Matemática
Programación Matemática I
EJEMPLO.- Calcular el flujo máximo en la red de la figura 1.3, donde los valores sobre los
arcos representan las capacidades máximas entre los dos nodos.
A 3 B
5
10
S T
5 8
7
6 4 5
E
7
C 3 D
Figura 1.3.
Iteración 1.
Introducir un flujo completo en la red, es decir, encontrar una ruta del origen al destino con
capacidad positiva
S 10 A 8 E 1 T
Como el flujo posible es 1, debe descontarse en todos los arcos correspondientes. El arco saturado
es (E, T).
Iteración 2.
S 9 A 3 B 5 T
Flujo = 3, por lo que debe descontarse de los arcos (S, A), (A, B) y (B, T). Arco saturado = (A, B).
Iteración 3.
S 6 C 3 D 5 T
Iteración 4.
S 3 C 4 B 2 T
Iteración 5.
S 1 C 7 A 5 D 2 T
Mgr. Manuel Alvarado Contreras – Lic. Ramón Vera Roalcaba – Lic. Wilder Miñano León 239
UNJBG / FACI - Escuela de Computación Matemática
Programación Matemática I
Iteración 6.
S 6 A 4 D 1 T
Como se han saturado todos los arcos que llegan al nodo final el flujo completo de la red
encontrado corresponde al flujo máximo.
Lo anterior también ocurre si todos los arcos salen del nodo origen están saturados.
A B
3
5
10
S 5 T
8
7
1
6
4 5
E
7
C D
3
Debido a que no es posible encontrar una cadena que vaya del nodo origen al ndo final a través de
los nodos marcados, el flujo completo hallado es el flujo máximo de la red.
En estas redes se va a calcular a costo mínimo de enviar flujo de un nodo de un nodo a otro.
Si Cij0 es el costo unitario del arco Aij que va del nodo Ni al nodo Nj entonces, Cij no satisface la
propiedad geométrica que dice que el trayecto más corto y por ende más económico entre dos
puntos, es que el se utiliza la recta que une a esos dos puntos. En términos de la siguiente figura se
tiene que no se cumple necesariamente la siguiente desigualdad.
Cik
N N
i k
Cij
Cjk
N
j
Mgr. Manuel Alvarado Contreras – Lic. Ramón Vera Roalcaba – Lic. Wilder Miñano León 240
UNJBG / FACI - Escuela de Computación Matemática
Programación Matemática I
En una red se puede tener que Cik Cij + Cjk o bien Cik Cij + Cjk dependiendo de los costos
unitarios en cuestión.
El algoritmo que se va a presentar es el que determina la cadena de arcos más económicas de la
fuente al destino de una red.
El algoritmo que diseño Dijkstra sirve para determinar la ruta más económica entre la fuente y el
destino de una redes. Este tipo de problemas tiene aplicaciones en problemas de distribución y
asignación de recursos.
En este algoritmo se considera que los arcos de una red pueden pertenecer a sólo uno de los
siguientes conjuntos, mutuamente excluyentes, a saber:
a) El arco pertenece a un árbol.
b) El arco no pertenece a un árbol.
Al principio los arcos los arcos no pertenecen al árbol. En cada iteración el algoritmo incrementa
en uno el número de arcos en el árbol, hasta llegar a n-1 arcos, donde n es el número de nodos en
la red. Cuando el árbol queda formado por n-1 arcos, el algoritmo llega a su conclusión y
determina la solución del problema.
PASO 1:Sea Ns el nodo fuente. Entonces L´sk = Csk para toda Ask que este definido en la red. El
nodo Ns pasa a ser un Elemento del árbol. Se define Lss.= 0.
PASO 2:Sea
Donde Nk son todos los nodos vecinos a los nodos del árbol en cuestión.
PASO 3:El arco Ajr pasa a ser un elemento del árbol. Se etiqueta al nodo Nr con ( Lsr, Nj ).
PASO 4:Si el árbol tiene n – 1 arcos, pare, la solución óptima ha sido encontrada en caso contrario
continúe son el PASO 5.
PASO 5:Sea:
Para todos los nodos Nk vecinos a los nodos del árbol en cuestión. Regrese al PASO 2.
Este algoritmo también etiqueta a todos los nodos. Un nodo N j puede tener una etiqueta temporal o
permanente. Independientemente del tipo de etiqueta, cada una estas llevará dos componentes. La
primera indica el costo temporal o permanente más económico de alcanzar el nodo N j desde el
nodo fuente y la segunda componente indica el nodo del cual se procede.
Una etiqueta (L´sk, Ni) es temporal mientras que una etiqueta (L sk, Ni) es permanente. Cuando un
costo no esta definido, se toma a este como .
Mgr. Manuel Alvarado Contreras – Lic. Ramón Vera Roalcaba – Lic. Wilder Miñano León 241
UNJBG / FACI - Escuela de Computación Matemática
Programación Matemática I
INICIO
Hacer Lss = 0
SOLUCION
Si el árbol tiene OPTIMA
n – 1 arcos ?
FIN
Mgr. Manuel Alvarado Contreras – Lic. Ramón Vera Roalcaba – Lic. Wilder Miñano León 242
UNJBG / FACI - Escuela de Computación Matemática
Programación Matemática I
1
4
4 5
4 2 4
t
3
s 2
1
1
5
1
1
7
Iteración 1:
Paso 1. Ns pasa a formar parte del árbol, Lss = 0.
Vecinos a los nodos del árbol son N1 , N2 , N3 .
Lss = 0 , L’14 = L’41 = 2 , L’s1 = 4 , L’12 = L’21 = 2 , L’s2 = 3 , L’15 = L’51 = 4 , L’s3 = 1 , L’24 = L’42 =
5, L’32 = 1 , L’4t = L’t4 = 4 , L’5t = L’t5 = 1 , L’1s = ,L’23 = , L’3s = , L’st = , etc.
Paso 2. Lsr = Min{L´sk} = Min[Lss + Csk] = Min{4, 3, 1} = 1
K=1,2,3 K=1,2,3
Lsr = L´s3
r=3
Paso 3. El arco As3 pasa a ser un elemento del árbol. Se etiqueta al nodo N3 con ( 1 , s ).
Paso 4. como el árbol no contiene n – 1 = 7 – 1 = 6 elementos. Se continua.
Paso 5. L´sk = Min[ L´sk ; Lsr + Crk ]
K=1,2,4,5
Como todos los nodos vecinos a los nodos del árbol son N1 , N2 , N4 , N5 se tiene:
Iteración 2:
Lsr = L´s2
r=2
Paso 3. El arco A32 pasa a ser un elemento del árbol. Se etiqueta al nodo N2 con ( 2 , 3 ).
Paso 4. Hay dos elementos 2 < 6 elementos. Se continua.
Mgr. Manuel Alvarado Contreras – Lic. Ramón Vera Roalcaba – Lic. Wilder Miñano León 243
UNJBG / FACI - Escuela de Computación Matemática
Programación Matemática I
Paso 5. Los nodos vecinos a los nodos del árbol son N1 , N4 , N5 se tiene:
Iteración 3:
Paso 2. Lsr = Min{4, 7 ,8} = 4
Lsr = L´s1
r=1
Paso 3. El arco As1 pasa a ser un elemento del árbol. Se etiqueta al nodo N1 con ( 4 , s ).
Paso 4. Hay elementos < 6. Se continua.
Paso 5. Los nodos vecinos a los nodos del árbol son N4 , N5 se tiene:
Iteración 4:
Paso 2. Lsr = Min{6 ,8} = 6
Lsr = L´s4 = 6
r=4
Paso 3. El arco A14 pasa a ser un elemento del árbol. Se etiqueta al nodo N4 con ( 6 , 1 ).
Paso 4. Hay elementos < 6. Se continua.
Paso 5. Los nodos vecinos a los nodos del árbol son N5 , Nt se tiene:
Iteración 5:
Paso 2. Lsr = Min{8 ,10} = 8
Lsr = L´s5 = 8
r=5
Paso 3. El arco A35 pasa a ser un elemento del árbol. Se etiqueta al nodo N5 con ( 8 , 3 ).
Paso 4. Hay elementos < 6. Se continua.
Paso 5. L´st = Min[ L´st ; Ls5 + C5t ] = Min(10 , 8 + 1) = 9
Iteración 6:
Paso 2. Lsr = L´st = 9
r=t
Paso 3. El arco A5t pasa a ser un elemento del árbol. Se etiqueta al nodo Nt con ( 9 , 5 ).
Paso 4. Como el árbol contiene n – 1 = 6 elementos, se ha llegado a la solución óptima
del problema, que gráficamente aparece a continuación .
Mgr. Manuel Alvarado Contreras – Lic. Ramón Vera Roalcaba – Lic. Wilder Miñano León 244
UNJBG / FACI - Escuela de Computación Matemática
Programación Matemática I
(4,s)
(6,1)
1
4
(9,5
)
(2,3 t
)
s 2
(8,3
)
5
(1,s
)
3
La solución óptima indica que la ruta más económica del nodo destino a la fuente, es vía la cadena
Ns , As3 , N3 , A35 N5 , A5t , Nt y cuesta 9 unidades por unidad de flujo en esta cadena, esta cadena
óptima no es única. Otra alternativa hubiera sido la Ns , As1 , N1 , A15 N5 , A5t , Nt.
Este problema se podría pensar como una red ferrocarrilera que une varios puntos. Los arcos
dirigidos representarían una sola via, mientras que los arcos no dirigidos representan una doble via
donde el trafico de ferrocarriles se desarrolla simultáneamente en ambos sentidos y los nodos son
estaciones.
Este tipo de problemas tiene una aplicación bastante amplia dentro del área de optimización de
recursos.
Formulación Matemática
El problema de flujo máximo a costo mínimo puede representarse matemáticamente como:
sujeto a:
Mgr. Manuel Alvarado Contreras – Lic. Ramón Vera Roalcaba – Lic. Wilder Miñano León 245
UNJBG / FACI - Escuela de Computación Matemática
Programación Matemática I
PASO 3:Encuéntrese la ruta más económica del nodo fuente Ns al nodo destino Nt basado
en los costos e utilizando cualquier algoritmo disponible, por ejemplo, el de
Dijkstra.
Mándese la mayor cantidad de flujo permisible por la ruta más económica que se
encuentre, es decir, hasta que uno o varios arcos que componen esta ruta se
saturan.
Añádase al flujo actual en toda la red, el flujo adicional que se encuentre en este
paso. Si todas las rutas que conducen al destino N t están saturadas, la solución
optima ha sido encontrada, de otra manera, regrese con el flujo actual al paso 2.
Ejemplo: Supóngase la red que se muestra en la figura. Los números en los arcos representan
respectivamente la capacidad mínima, máxima y el costo unitario.
3
(0,1,1) (0,1,2)
(0,2,2) (0,2,2)
4
Iteración 1
Paso 1. v=0.
Xij = 0, para toda Aij.
Paso 2. = 1, = 2, =2
=2
= 1, = 2,
Paso 3. Utilizando algoritmo de Dijkstra se encuentra que la cadena más económica de la fuente al
destino es la Ns, As1, N1, A12, N2, A2t, Nt, o bien la Ns, As3, N3, A32, N2, A2t, Nt, ambas con un
costo de 4 unidades.
En ambas rutas, la máxima capacidad de flujo que se puede mandar es una unidad. Se han elegido
arbitrariamente la primera cadena.
Iteración 2
Paso 2. El flujo actual y los nuevos costos, junto con los arcos en reversa para posible
disminución del flujo, se muestran a continuación:
Mgr. Manuel Alvarado Contreras – Lic. Ramón Vera Roalcaba – Lic. Wilder Miñano León 246
UNJBG / FACI - Escuela de Computación Matemática
Programación Matemática I
(0,1,1) (0,1,2)
(0,1,-2)
(0,1,-1)
(0,1,-1) (0,2,2)
(0,2,2)
3
1
1 (0,1,1) (0,1,2)
1
(0,2,2) (0,2,2)
1
1
Nótese que el flujo de una unidad en A 12 se cancela con el flujo de una unidad de A 21. el resultado
neto es que eliminando el flujo en A12 se puede incrementar el flujo total de la red a dos unidades.
La solución óptima consiste en mandar dos unidades a un costo de nueve.
Mgr. Manuel Alvarado Contreras – Lic. Ramón Vera Roalcaba – Lic. Wilder Miñano León 247
UNJBG / FACI - Escuela de Computación Matemática
Programación Matemática I
INICIO
Si
, si 0 Xij < uij
= cij
Si
si Xij = uij
=
Si
si Xij > 0
= - cij
Mgr. Manuel Alvarado Contreras – Lic. Ramón Vera Roalcaba – Lic. Wilder Miñano León 248
UNJBG / FACI - Escuela de Computación Matemática
Programación Matemática I
Los problemas de la ruta más corta y del flujo máximo pueden formularse como modelos de PL en forma
explícita. Sin embargo, destacamos que la solución de modelos de redes a través del método simplex no
es recomendable. Por otra parte, un estudio de formulaciones de programación lineal a redes debe
ayudarnos a reconocer modelos de PL que no pueden ser redes en el sentido directo, pero que pueden
formularse directamente o con modificaciones como una red. La ventaja evidente que se obtiene es que
se puede mejorar drásticamente la eficiencia de los cálculos cuando se utiliza la formulación de redes.
El modelo PL de un problema de la ruta más corta se construye de la manera siguiente:
1. Cada variable corresponde a un arco.
2. Cada restricción corresponde a un nodo.
Por lo tanto, si Xij representa la cantidad de flujo en el arco (i,j), el modelo de la ruta mas corta con n
nodos está dado como:
Las restricciones del modelo de PL están basados en la formulación de transbordo del problema de la ruta
más corta que se presentó antes. Se envía una unidad de flujo del nodo 1 para ser recibida en el nodo n.
La primera y última restricción señalan que el flujo total (suma de variables) que sale del nodo 1 es igual
a 1 y que el flujo total que se recibe el nodo n es también igual a 1. en cualquier nodo intermedio, el flujo
total que entra al nodo es igual al flujo total que sale del mismo nodo. La función objetivo requiere que se
minimice la distancia total que recorre la unidad de flujo.
Debemos señalar que la formulación anterior producirá una solución significativa solo si X ij = 0 ó 1; esto
es, una arco(i,j) está en la ruta más corta sólo si X ij = 1, Si Xij = 0, (i,j) no esta en la ruta mas corta.
Aunque los requisitos Xij = 0 ó 1 no se describen explícitamente en el modelo de PL, su estructura
especial produce siempre una solución óptima en la que se cumple esta condición. En realidad, el modelo
posee la propiedad totalmente unimodular, que garantiza que la solución de PL produce siempre X ij = 0 ó
1.
El problema del flujo máximo se puede formular como un modelo PL de manera análoga.
Específicamente, sea que y represente el flujo entre el nodo fuente 1 y el nodo terminal n. Mediante el uso
de la misma notación Xij para representar el flujo en el arco (i,j), en el modelo de PL se transforma en
Donde ij representa la capacidad del flujo en el arco (i,j). Notamos que la construcción de las
restricciones sigue la misma lógica que se utilizó en el desarrollo del modelo PL de la ruta más corta.
Mgr. Manuel Alvarado Contreras – Lic. Ramón Vera Roalcaba – Lic. Wilder Miñano León 249
UNJBG / FACI - Escuela de Computación Matemática
Programación Matemática I
EJERCICIOS RESUELTOS
1. (Ford)En la red de la figura proporciona la distancia en millas entre los pares de ciudades 1,2,...y 8
encuentre la ruta más corta entre las ciudades:
a) Ciudades 1 y 8.
b) Ciudades 1 y 6.
3 6
4
2 1 3 2
2
5 6
1 1 5 8
1 2 3
7 6
2 4 7
5 8
SOLUCION:
Para solucionar este problema utilizamos el método de Ford.
PASO 2.- Hallamos los valores de los nodos utilizando sus predecesores j:
N2= Min{valor del nodo j + arco(j,2)} = Min {0 +1} =1
N3= Min{valor del nodo j + arco(j,3)} = Min {0 + 2,1+1} =2
N4= Min{valor del nodo j + arco(j,4)} = Min {2+2,1+5} =4
N5= Min{valor del nodo j + arco(j,5)} = Min {2+1,1+2, 3+4} = 3
N6= Min{valor del nodo j + arco(j,6)} = Min {2+4,3+3,6+4} = 6
N7= Min{valor del nodo j + arco(j,7)} = Min {6+5,3+7,4+8} = 10
N8= Min{valor del nodo j + arco(j,8)} = Min {6+2,10+6} =8
PASO 3.-restar a partir del ultimo nodo los valores de los nodos de sus predecesores j
N8= {valor del nodo 8 - arco(6,8)} = 6 almacenar por que es igual al valor del nodo 6
N8= {valor del nodo 8 - arco(7,8)} = 2 no se almacena
Mgr. Manuel Alvarado Contreras – Lic. Ramón Vera Roalcaba – Lic. Wilder Miñano León 250
UNJBG / FACI - Escuela de Computación Matemática
Programación Matemática I
2. (floyd)Para la red de la figura encuentre las rutas más cortas entre cada dos nodos. Las distancias en
millas se dan en los arcos. El arco(3,5) e direccional de manera que no esta permitido ningún tráfico
del nodo 5 al nodo 3. Todos los demás arcos permiten el tráfico en ambas direcciones.
2 5 4
3
4
1 6
10 5
15
SOLUCION
PASO 1.- al aplicar el algoritmo consiste en formar las matrices C y D.
PASO 2.- El siguiente paso es seleccionar la fila 1 y la columna 1 de la matriz C y analizar cada cij
para todo i, j distinto de 1.
Mgr. Manuel Alvarado Contreras – Lic. Ramón Vera Roalcaba – Lic. Wilder Miñano León 251
UNJBG / FACI - Escuela de Computación Matemática
Programación Matemática I
d44 = no cambia
Luego de aplicar el paso 2 del algoritmo, las matrices C y D quedan de la siguiente manera:
PASO 3.- Indica que debemos repetir el paso 2 pero elegir la fila 2 y columna 2 y recalcular las
matrices C y D para todo i,j distinto de 2, considerando:
Por razones de espacio y debido a que el procedimiento es análogo al anterior se omiten los cálculos
y sólo Se entregan las matrices C y D resultantes. A modo de ejercitación se recomienda realizar
los cálculos de la misma forma hecha con la fila 1 y la columna 1.
(Resultados)Para la Fila 2 y Columna 2
Mgr. Manuel Alvarado Contreras – Lic. Ramón Vera Roalcaba – Lic. Wilder Miñano León 252
UNJBG / FACI - Escuela de Computación Matemática
Programación Matemática I
Entonces la matriz D sirve para responder la pregunta de la ruta más corta entre los nodos 1 y 5.
Para ello se analiza el elemento d25 de tal forma que el predecesor de 5 es 4, el predecesor de 4 es 2.
Por lo tanto la ruta más corta entre 1 y 5 corresponde a 1 – 2 – 4 – 5 , y tiene una distancia, como se
dijo, de 12 Km.
3. (floyd)Tell – All, una compañía de teléfonos, le da servicio a seis áreas geográficas. Las distancias
por satélite (en millas) entre las seis áreas se proporcionan en la figura. Tell – All necesita
determinar las rutas de mensajes más eficientes que se deben establecer entre cada dos áreas de la
red.
2 700
700 6
200 100
300
1 4 500
3 5
600
SOLUCION
Dividimos los valores 700, 200,....,etc entre 100 para facilitar el trabajo y en el resultado final se
restablecerá la solución verdadera multiplicando por 100.
PASO 1.- al aplicar el algoritmo consiste en formar las matrices C y D.
PASO 2.- El siguiente paso es seleccionar la fila 1 y la columna 1 de la matriz C y analizar cada cij
para todo i, j distinto de 1.
Mgr. Manuel Alvarado Contreras – Lic. Ramón Vera Roalcaba – Lic. Wilder Miñano León 253
UNJBG / FACI - Escuela de Computación Matemática
Programación Matemática I
Mgr. Manuel Alvarado Contreras – Lic. Ramón Vera Roalcaba – Lic. Wilder Miñano León 254
UNJBG / FACI - Escuela de Computación Matemática
Programación Matemática I
Luego de aplicar el paso 2 del algoritmo, las matrices C y D quedan de la siguiente manera:
PASO 3.- Indica que debemos repetir el paso 2 pero elegir la fila 2 y columna 2 y recalcular las
matrices C y D para todo i,j distinto de 2, considerando:
Por razones de espacio y debido a que el procedimiento es análogo al anterior se omiten los cálculos
y sólo Se entregan las matrices C y D resultantes. A modo de ejercitación se recomienda realizar
los cálculos de la misma forma hecha con la fila 1 y la columna 1.
Mgr. Manuel Alvarado Contreras – Lic. Ramón Vera Roalcaba – Lic. Wilder Miñano León 255
UNJBG / FACI - Escuela de Computación Matemática
Programación Matemática I
Entonces la matriz D sirve para responder la pregunta de la ruta más corta entre los nodos 1 y 6.
Para ello se analiza el elemento d26 de tal forma que el predecesor de 6 es 4, el predecesor de 4 es 2,
el predecesor de 2 es 3 y por ultimo el predecesor de 3 es 1. Por lo tanto la ruta más corta entre 1 y 6
corresponde a 1 – 3 – 2 – 4 – 6, y tiene una distancia, como se dijo, es 8. Multiplicando por 100 sería
800 km
4. Para la siguiente red encontrar el flujo máximo del origen al destino, si el número junto al
arco(i,j) mas cercano al nodo representa la capacidad de flujo del nodo i al nodo j.
2 4
6
1 5
4
2
1 3
4 7
3
9
2 3
1 6
4
Mgr. Manuel Alvarado Contreras – Lic. Ramón Vera4 Roalcaba – Lic. Wilder Miñano León 256
UNJBG / FACI - Escuela de Computación Matemática
Programación Matemática I
Iteración 1.
Introducir un flujo completo en la red, es decir encontrar una ruta del origen al destino con capacidad
positiva
1 4 3 1 5 4 7
Como el flujo posible es 1, debe descontarse en todos los arcos correspondientes. El arco saturado es (3, 5).
Iteración 2.
1 3 3 3 6 9 7
Flujo = 3, por lo que debe descontarse de los arcos (1, 3), (3, 6) y (6, 7). Arco saturado = (1, 3).
Iteración 3.
1 1 4 4 6 6(9-3) 7
Iteración 4.
1 6 2 4 5 2 3 3 4 3(4-1) 6 5 7
Iteración 6.
Como se han saturado todos los arcos que llegan al nodo final el flujo completo de la red encontrado
corresponde al flujo máximo.
Lo anterior también ocurre si todos los arcos salen del nodo origen están saturados.
Al aplicar el método de las cadenas incrementales obtenemos:
2 4
6
1 5
4
2
1 3
4 7
3
9
2 3
1 6
4
Aplicando el INVOP
Mgr. Manuel Alvarado Contreras – Lic. Ramón Vera Roalcaba – Lic. Wilder Miñano León 257
UNJBG / FACI - Escuela de Computación Matemática
Programación Matemática I
Mgr. Manuel Alvarado Contreras – Lic. Ramón Vera Roalcaba – Lic. Wilder Miñano León 258
UNJBG / FACI - Escuela de Computación Matemática
Programación Matemática I
15
2 4
100
50
20
1 10
30 5
60
SOLUCION
Mgr. Manuel Alvarado Contreras – Lic. Ramón Vera Roalcaba – Lic. Wilder Miñano León 259
UNJBG / FACI - Escuela de Computación Matemática
Programación Matemática I
EJERCICIOS PROPUESTOS
1. (Prawda)Supóngase el siguiente mapa de los ferrocarriles Nacionales de México, donde las vías son
de doble tráfico, es decir adireccionales. ¿Cuál es la ruta más rápida entre México y Veracruz?
Los tiempos están dados en horas.
1 2
2 1.5
4 5 3
4
2 8 9
2 0.5 2
2
6 7 1.4
3
México 1 15
3 4
4
1 Veracruz
1.6 14 3.5 23
3 2
10 21
4
13 17
3 22
1.3 3
2 4
2 2.7
11
1.5 12 18 19
2 3
20
2. Por medio del algoritmo de Busacker y Gowen, encuentre el flujo máximo a costo mínimo en la
siguiente red . los números en cada arco representan respectivamente la capacidad mínima, máxima y
el costo unitario.
(0,1,3) (0,4,9)
(0,2,6)
3 5 7
(0,2,1) (0,3,3)
Mgr. Manuel Alvarado Contreras – Lic. Ramón Vera Roalcaba – Lic. Wilder Miñano León 260
UNJBG / FACI - Escuela de Computación Matemática
Programación Matemática I
3. Supóngase que una unidad móvil de la Distribuidora PRONAA cargada con cerca de 3000 Kilos de
unos 50 artículos de consumo popular (azúcar, aceite, menestras, sal, arroz, etc.) deben recorrer n
poblaciones rurales de menos de 2000 habitantes cada uno en los próximos n días (una población por
día). Todas las poblaciones están comunicadas entre sí por caminos vecinales, de terraceria o de mano
de obra, la distancia entre un poblado i y otro j es d ij . La unidad móvil sale de un poblado el primer
día de su recorrido, visita una población por día (sin repetir la visita a una población) y al n+1 día
regresa al punto de partida. Formule sin resolver , un modelo de redes que minimice el recorrido total
de la unidad móvil por todas esta n poblaciones. Recuerde que la población de partida debe ser la
misma al finalizar el recorrido de n días, que se visita una población diferente cada dia y que no se
visita más de uan vez una población.
(,0)
(2,3) (2,2)
Planta
1 6
(3,1)
(2,4)
(,0)
3 (2,2) 5
Bodega2 Mercado2
Asociado a cada arco Aij se tiene un par de números (uij,cij) donde uij es la capacidad máxima del arco
cij es el costo unitario de expansión del arco. Se desea que la producción de la planta se incremente en
10 unidades ¿ Cuál es la política de expansión y a que costo?.
Ahora considere que el presupuesto es de 14 unidades ¿cuál es la producción máxima que se puede
tener en ese sistema?.
5. En un pequeño aeropuerto que está creciendo, la compañía local piensa comprar un tractor nuevo para
mover los arcos que llevan y traen equipaje a los aviones. Dentro de tres años se instalará un nuevo
sistema mecanizado de transporte de equipaje, por lo que después no se necesitará el tractor. No
obstante tendrá una carga de trabajo pesada y los costos de operación y mantenimiento aumentarán
rápidamente con el tiempo y podría resultar rentable reemplazando en uno o dos años.
La siguiente tabla proporciona los costos netos totales asociados a la compra del tractor (precio de
compra - valor a cambio del tractor en uso más los costos de operación y mantención) al final del año
i y si se reemplaza al final del año j (en donde el momento presente es el año 0).
j
1 2 3
0 8 18 31
1 10 21
2 12
Mgr. Manuel Alvarado Contreras – Lic. Ramón Vera Roalcaba – Lic. Wilder Miñano León 261
UNJBG / FACI - Escuela de Computación Matemática
Programación Matemática I
El problema es determinar en que momento (si es que existe) debe reemplazarse el tractor para
minimizar el costo total durante los tres años.
a) Formule este problema como un problema de la ruta más corta.
b) Utilice un algoritmo para resolver este problema de la ruta más corta.
6. Encontrar la ruta más corta a través de la red, en donde los números representan las distancias reales
entre los nodos correspondientes.
A
7
4
1 D
5 6
O B
6 T
4
8
2
5 E
1
Mgr. Manuel Alvarado Contreras – Lic. Ramón Vera Roalcaba – Lic. Wilder Miñano León 262