Está en la página 1de 137

UNIVERSIDAD NACIONAL DE INGENIERA .

FACULTAD DE CIENCIAS
ESCUELA PROFESIONAL DE MATEMTICA

TESIS PARA OPTAR EL TTULO PROFESIONAL DE:


LICENCIADO EN MATEMTICA-
TITULADA:

"PROBLEMA DEL FLUJO EN REDES Y PROGRAMACIN


LINEAL"
PRESENTADO POR:

ROMEL FRANCISCO ULLILEN MARCILLA


ASESOR:

WILLIAM ECHEGARAY CASTILLO


LIMA, PER 2015
Dedicatoria

Dedicado la presente Tesis a mi familia: mi madre Noemi Marcilla Boyer, mi padre:


Romel Ullilen Vega y mis hermanso: Romel Anibal, Carolina Ullilen, Miguel Alejandro y
Martin Dario.

II
Agradecimientos

Agradecer hoy y siempre a mi familia, en especial a mi madre Noemi, por su fortaleza


y estmulo para terminar la tesis y a mi padre Romel, por su orientacin incondicional
durante mi etapa de estudiante universitario.

Agradezco a mi profesor William Echegaray por asesorarme y confiar en mi. As tam-


bin a mis profesores de la Universidad Nacional de Ingeniera por las enseanzas que me
transmitieron.

Finalmente agradezco a todas las personas que de una manera u otra han contribuido
en la realizacin de mi estudio y que no es necesario mencionarlas con nombre propio.

Asi tambin, doy gracias al Instituto IMCA que me permiti madurar como matemti-
co a pesar de no ejercer la docencia o hacer investigacin en ciencias matemticas.

III
Resumen

Desde el 2011 comenc a trabajar en una empresa manufacturera de cartones en el


rea de distribucin y luego en el 2013 hasta 2014 labor en una empresa importadora en
al rea de distribucin de productos de equipos biomdicos y material quirrgico, donde
aprend que la persona encargada de planificar transporte debe ser capaz de sincronizar
los tiempos de liberacin de envo y las fechas de fabricacin, para obtener una mayor
eficiencia en la entrega y en la reduccin de los tiempos de almacenamiento de productos
terminados, donde hay una estrecha relacin con los mdulos de programacin de la
produccin y de retroalimentacin, permitiendo un aumento significativo de tiempo de
produccin y de la eficiencia de transporte.
Esto fue motivo para realizar mi tesis, con el objetivo de conocer tcnicas que permitan
resolver los problemas de transporte e intentar aplicarlas a la vida real. En las empresas
que he laborado, hay profesionales especialistas en desarrollar software y debido a eso
se puedan formar equipos multidisciplinarios de profesionales, con el fin de desarrollar
modulas matemticos para la optimizacin de un proceso en la logstica interna o externa
en las empresas peruanas.
Una de estas tcnicas que se presenta en esta tesis se llama "problema del flujo en
redes", que estn orientadas a optimizar situaciones vinculadas a las redes de transporte,
rutas entre ciudades, rutas entre mquinas de planta, aquellas situaciones que puedan
representarse mediante una red donde los nodos representan las ciudades, clientes, reas
de zona de embarque, almacn, mquinas, y arcos que conectan cada par de nodos, con el
objetivo de encontrar la ruta ms corta, enviar el mximo fluido si una red est compuesta
de varias mquinas por ejemplo, buscar formas minimizar los costos de transporte teniendo
en cuenta los costos reales de transporte en lugar de minimizar el nmero de viajes o la
total distancia de envi.
Aqu en est tesis se describen algunos algoritmos aplicables a estos modelos para
encontrar la solucin ptima al problema. Utilizando la terminologa para representarlos
como una red. Uno de estos algoritmos es el mtodo simplex que permite reducir todas
sus operaciones sobre la misma red. Estos algoritmos son muy fciles de entender y de
utilizar para problemas relativamente medianos y grandes, algunos de estos algoritmos en
que cada iteracin se requiere la construccin de nuevos arcos, los arcos en reversa y por
lo tanto el nmero de elementos de la red original tambin aumenta y esto no genera gran
dificultad a nivel informtico.

IV
Finalmente, quisiera hacer hincapi que me inspir en el libro de "Programacin Lineal
y Flujo en Redes", la cual fue base para el desarrollo de esta tesis.

V
,
Indice general

Introduccin 1

l. Idea fundamental del mtodo simplex, mtodo simplex dual, analisis de


sensibilidad y mtodo de penalizacin 3
l. l. Idea Fundamental . . . . . . . . . . . . . . . . . . 3
1.1.1. Descripcin verbal de la idea fundamental 4
1.2. Mtodo simplex dual . . . . . . . . . . . . 7
1.2.1. Resumen del mtodo simplex dual . . . . . 8
1.3. Anlisis de sensibilidad . . . . . . . . . . . . . . . 10
1.3.1. Cambios en los wefidentes de una variable no bsi<.:a 10
1.3.2. Introduccin de una variable . . . . 10
1.3.3. Otras aplicaciones . . . . . . . . . . . . . 11
1.3.4. Esencia del analsis de sensibilidad . . 11
1.3.5. Aplicacin del anlisis de sensibilidad . 17
1.4. Mtodo de penalizacin de gran M 21

2. Programacin dinmica 24
2.1. Problema de diligencia 24
2.1.1. Formulacin .. 25
2.1.2. Procedimiento solucin. 26
2.2. Caracterizacin de los problemas de programacin dinmica 27
2.3. Programacin dinmica determinstica . . . . . . . 29
2.3.1. Problema de distribucin de esfuerzo . . . . 33
2.3.2. Problema de la Wyndor Glass Company (3] 37

3. Flujo en redes 40
3.1. Formulacin del problema . . . . . . . . 40
3.2. Propiedades de la matriz de restricciones 44
3.3. Variable artificial . . . . . . . . . . . . . 45
3.4. Representacin de una columna no bsica en trminos de las columnas
bsica.<;. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47

V
4. Algoritmo Out-of-kilter 55
4.1. El dual del problema de flujo de costo mnimo y sus propiedades 56
4.2. La complementaria condicin de holgura. 57
4.3. Estrategia del algoritmo . . . . . . . . . . . 58
4.3.1. FASE PRIMAL: Flujo cambio . . . . 59
4.3.2. FASE DUAL: Cambio variable dual . 62
4.4. Convergencia del algoritmo . . . . . . . . . . 66
4.4.1. Infactibilidad del problema primal(P) del conjunto Rolucin cuando
(} = +oo . . . . . . . . . . . . . . . . . . 66
4.4.2. Convergencia del algoritmo out-of-kilter 68
4.4.3. Observaciones . . . . . . . . 69
4.5. Resumen del algoritmo out-of-kilter 71

5. El Problema de Flujo Mximo 75


5.1. Formulacin del Problema . . . . . . . . . . . . 75
5.2. El dual del Problema de Flujo Mximo . . . . . 77
5.3. Un algoritmo para el problema de flujo mximo 78
5.4. Resumen del Problema de Flujo Mximo 80

6. El Problema del camino ms corto. 84


6.1. La formulacin matemtica del camino ms corto. . . . . . . . . . . . . . . 84
6.2. Un procedimiento para el camino ms corto cuando todos los costos son no

){ negativos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6.2.1. Validacin del Algoritmo . . . . . . . . . . . . . . . . . . .
6.3. Un procedimiento con arbitrarios costos para el camino ms corto
85
86
87
6.3.1. Verificacin del algoritmo para costos negativos . . . . . . 88

7. Flujo Multiartculos 92
7.1. El multiartculo problema de flujo de costo mnimo . . . . . . . . . . . . . 93
7.2. Caracterizacin de una base para el problema de flujos multiartculo de
costo mnimo . . . . . 98

8. Problema de Transporte 107


8.1. Definicin del problema de transporte . . 107
8.2. Factibilidad del problema de transporte . ~ . 109
8.3. Propiedades de la matriz A. . . . . . . . -.:...- 109
8.3.1. Total unimodularidad de la matriz A 110
8.3.2. 'frian~nlaridad de la matri7. h..,ka . 110
8.4. Estudio del mtodo simplex . . . . . . . . . 111
8.4.1. Propiedad de los vectores Yii en la tabla simplex . 111
8.4.2. Caracterizacin de la matriz bsica en el problema de transporte . 112

VI
8.4.3. Representacin de la matriz bsica sobre la tabla de transporte 117
8.4.4. El rol de la variable artificial en el problema de tram;porte . 118
8.4.5. Proceso del mtodo simplex para el problema de transporte . . 119
8.5. Degeneracin en el problema de transporte . . . . . . . . . . . . . . . . 123
8.5.1. Una condicin necesaria para degeneracin en el problema de trans-
porte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124

9. Conclusiones 127

Bibliografa 129

VII
Introduccin
Disentiremos primero, la idea f1mdamental del mtodo simplex que involucra ht tabla
del simplex final de un determinado problema lineal, realizando operaciones algebraicas
sobre la tabla simplex final se obtiene una nueva tabla sobre el modificado problema li-
neal. El mtodo simplex dual tiene un enfoque similar al mtodo del simplex, slo que
e;te mtodo maneja soluciones blli:ikas factible; duales pero no factibles prirnales; iden-
tificar parmetros en el problema de programacin lineal, de tal manera que la solucin
ptima no cambie, se analizar en el tema anlisis de sensibilidad. Una manera de obte-
ner 1ma solucin factible inicial para un problema rl.e programacin lineal, es aplicando
el mtodo de penalizacin de gran "M, donde se aplica el mtodo simplex para este nuevo
problema modificado. Programacin dinmica es una tcnica til para tomar decisiones
interrelacionadas, esto genera una relacin recursiva para la toma de desiciones.
Segundo discutiremos problemas de programacin lineal, a distintas clases de proble-
mas: uno de ellas es la clase de problemas de flujo en redes para un solo artculo que
poseen una importante especial estructura en la matriz de restricciones que permite la
simplificacin del mtodo simplex a un punto donde esto puede ser aplicado directamente
sobre la red sin la necesidad de la tabla del simplex. Otro problema es llamado el algo-
ritmo out-of-kilter , donde este aplica las condiciones de optimalidad de Karush Kuhn
'I\tcker para determinar si existe solucin ptima o no, en base a esto se determinan dos
pasos, el primer paso se construye una nueva red de tal manera que se permita el flujo de
cambio en un ciclo sobre la red de matriz de restricciones del problema y el segundo paso
es modificar las variables duales a partir de la nueva red construida.
Dos espcciaJc; problemas son el problema de flujo mximo y el problema del camino
ms corto, ambos problemas pueden ser resuelto por el mtodo flujo en redes. Sin embargo
estos problemas ocurren en la prctica de manera muy frecuente, ms eficientes procedi-
mientos son encontrados para el manejo de estos dos problemas, por lo tanto proporcionan
un fuerte caso para considerar ellos separadamente, el problema de flujo mximo cons-
truye nuevas redes de tal manera que se permita el flujo de cambio en cadenas sobre la
red de la matriz de restricciones del problema, y luego si tal cadena no se puede construir
la solucin optirual e; encontrada. El problema del camino mili; corto actualiza en cada
paso las variables duales del problema dual, hasta que el conjunto de variables duales

1
satisfaga ciertas restricciones, y poder determinar la solucin ptima. Nosotros conside-
raremos problema de flujo en redes para varios artculos llamados flujos multiartculo,
en este caso ofertas y demandas son por cada tipo de artculo y la distincin entre los
artculos debera ser mantenida, nosotros examinaremos este problema presentando una
descomposicin tcnica utilizando herramientas de anlisis convexo, donde luego defini-
mos un problema maestro y un subproblema, en cada paso del algoritmo se actualiza
el problema maestro aumentando el nmero de variables y a la vez variables duales se
actuali:,an de tal manera que loR subproblemas se react.uali,.;an modificando parmetros
del subproblema , cada subproblema puede ser resuelto aplicando problema flujo en redes
para un artculo, este es un algoritmo iterativo alterno entre la solucin del problema
maestro y el subproblema.
Una ultima discusin es un tipo de problema que posee un similar enfoque al pro-
blema de flujo de redes, es el problema de transporte que permite la simplificacin del
mtodo simplex a un punto donde esto puede ser aplicado directamente sobre la tabla del
transporte sin la necesidad de la tabla del simplex.

2
Captulo 1

Idea fundamental del mtodo


simplex, mtodo simplex dual,
analisis de sensibilidad y mtodo de
penalizacin

1.1. Idea Fundamental


Estudiaremos problemas de programacin lineal de la forma:

maximizar (e, x).


sujeta a : Ax~ b
x20
Donde x = (x 1 , x 2 , . , Xn) es un vector real de n componentes, A es una matriz real
de m filas y n columnas, y e es un vector real de n componentes. De aqu en adelante se
considera el producto interno cannico (, ) . Hay m ecuaciones respecto a la matriz A de
restricciones.
Se asigna un coeficiente de +1 a la i-sima variable de holgura Xn+i en la ecuacin i, y
O en las dems ecuaciones para i = 1, 2, ... ,m; como lo muestra en la tabla del simplex
el vector nulo y la matriz identidad I de m fil<lli y m columnas, en las columnas de la
variable de holgura en la iteracin O. Las iteraciones subsecuentes producen cambios en
las ecuaciones del paso inicial slo mediante [3]:

l. La multiplicacin(o divisin) de una ecuacin completa por una constante distinta


de cero.

2. La suma o resta de un mltiplo de una ecuacin completa y otra ecuacin completa.

3
Esta operaciones es equivalente a premultiplicar la tabla simplex final [3] por alguna ma-
triz.

1.1.1. Descripcin verbal de la idea fundamental


Despes de cada iteracin los coeficientes de las variables de holgura en cada ecuacin
revelan de inmediato como ~;e obtuvo la ecuacin a partir de las ecuaciones iuidalc~;.
Ejemplo: Sea el siguiente problema de programacin lineal:

maximizar z = 3x 1 + 5x 2 .
sujeta a : x 1 :::;: 4.
2x2:::;: 12.
3x 1 + 2x 2 :::;: 18.
Veamo~; la siguientes tablas al aplicar el mtodo simplex [3] a este problema:

Lado
Iteracin X X2 Xg X4 Xs derecho
o -3 -5 o o o o
1 o 1 o o 4
o 2 o 1 o 12
3 2 o o 1 18

Lado
Iteracin X! x2 Xg X4 Xs derecho
1 -3 o o .2Q o 30
1 o 1 o o 4
o 1 o 2 o 1
6
3 o o -1 1 6

Lado
Iteracin X! X2 Xg x4 Xs derecho
2 o o o 2 1 36
o o 1 3 -3 1 1
2
o 1 o 2 o 1
6
1 o o -3 3 1 1
2
Estas tablas muestran la parte relevante de la tabla smplex para ilustrar esta idea funda-
mental. Los coeficifmtes de la.s variables de holguras estn represP.ntada.s en la.s columna-s
de los coeficientes de las variables x 3 , x 4 , x 5 , estos son los coeficientes cruciales para aplicar
est idea.
Iteracin 1:

4
Si se realizan las operaciones con el rengln 2 antiguo(iteracinO) en lugar con el nue-
vo(iteraul), la~ operadone~:; algebraica::; ~:;un la~:; ~:;iguiente~:;:
rengln O nuevo= rengln O antiguo+ (~) (rengln 2 antiguo).
rengln 1 nuevo=rengln 1 antiguo+(O)(rengln 2 antiguo).
rengln 2 nuevo= + (!) (rengln 2 antiguo).
rengln 3 nuevo=rengln 3 antiguo+ ( -1) (rengln2 antiguo).
Si por el momento se ignora el rengln O, se ve que estas operaciones algebraicas son los
mismos que premultiplicar los renglones 1 a 3, de la tabla simplex inicial por la primera
matriz:

A=[~ L~]
l
Los renglones de la tabla simplex inicial son:

1 o 1 o o 4
Renglones antiguos 1- 3 = O 2 O 1 O 12
[ 3 2 o o 1 18

Donde la tercera,cuarta y quinta columna forman una matriz identidad. Entonces los
nuevos renglones,

[~ ~ ][ ~ ~2]
o o 1 o o
Nuevos renglones 1-3 = 1
2 2 o 1 o
-1 2 o o 1 18

:l
o o o
Nuevos renglones 1-3 = lr1
~ 1 o
o o
1
2 o
1

-1 1
Observar que la matriz A se reproduce justo como los coeficientes de las variables de hol-
gura en los renglones 1 a 3 de la nueva tabla simplex, porque estos coeficientes formaban
una matriz identidad en la tabla simplex inicial. As, tal como se estableci en la descrir
cin verbal de la idea fundamental, lo~:; coeficiente~:; de la variable de holgura en la uueva
tabla simplex proporciona sin duda un registro de las operaciones algebraicas realizadas.
Para el rengln O, la operacin algebraica realizada se reduce al siguiente clculo de matri-
ces, en donde ahora se prestar atencin al vector [0, ~'O] que premultiplica a los renglones
1 y 3 de la tabla simplex inicial:

o o
O~ (-3, 5, O, 0,0, O]+ (0, ~,0] [ ~ ~2]
o 1
Nuevo rengln 2 o 1 o
2 o o 1 18

Nuevo rengln O= [-3, O, O,~' O, 30].

5
Notar que este vector se reproduce exactamente como los coeficientes de las variables de
holgura en el rengln O de la nueva tabla simplex, tal como se asegur en la idea funda-
mental.
Iteracin 2: Las operaciones realizadas en la segunda tabla simplex para la iteracin 2
son:
rengln O nuevo=rengln O antiguo+(1)(rengln 3 antiguo).
rengln 1 nuevo= rengln 1- antiguo+ (-V (rengln 3 antiguo).
rengln 2 nuevo=rengln 2 antigno+(O)(rengln3 antiguo).
rengln 3 nuevo= + ( ~) (rengln 3 antiguo).
Si por el momento se ignora el rengln O, estas operaciones son los mismos que premulti-
plicar los renglones 1 a 3 de esta tabla simplex por la matriz:

Al escribir est segunda tabla simplex como el producto de matrices dado en la iteracin
1 se obtiene:
o o o oo
[~ o ~ll u ~ ][ ~ ~2]
1
renglones 1-3 finales = 1 1
2 2 o 1 o
-1 2 o o 1 18

[~ ~l ][ ~ oo o o ~2]
1
3 o oo 1
renglones 1-3 finales = 1
2 2 1
1
-3 2 1 18

renglones 1-3 finales = [ ~~~ :


1
~~
!_
622]
O O -3 3

Las primeras dos matrices que se muestran en la primera lnea de estos clculos resumen
las operaciones algebraicas de la segunda y primP-ra iteracin. Su producto p,s la primp,ra
matriz de la segunda lnea, que despus combina las operaciones algebraicas de las dos
iteraciones. Observar que esta matriz se reproduce igual que los coeficientes de las varia-
bles de holgura en los renglones 1 y 3 de la nueva tabla simplex final que se muestra en
la tercera lnea. Lo que este mtodo revela es la forma en que se obtuvo la tabla sirnplcx
final (excepto el rengln O) a partir de la tabla simplex inicial:
rengln 1 final=(1)(rengln 1 inicial)+{!)(rengln 2 inicial)+( -~)(rengln 3 inicial).
rengln 1 final= (O) (rengln 1 inicial)+ ( ~) (rengln 2 inicial)+ (O) (rengln 3 inicial).
rengln 1 final=(O)(rengln 1 inicial)+( -~)(rengln 2 inicial)+(~)(rengln 3 inicial).
Sin embargo, no hay necesidad de realizar todo esto, los coeficientes de las variables de
holgura en la tabla simplex final revelarn en qu forma se obtuvo est tabla a partir de
la tabla simplex inicial. Lo que es ms, las mismas operaciones algebraicas daran estos

6
mi'5mo coeficientes an cuando se cambiaran algunos de los parmetros en el modelo ori-
ginal de manera que estos coeficientes tambin pueden revelar en que forma cambia el
resto de la tabla simplex final si hacen cambios a la inicial.
Para completar la historia para el rengln O, la idea fundamental dice que todo el rengln
O final se puede calcular a partir de la tabla simplex inicial usando los coeficientes de las
variables de holgura en el rengln O final, [O, ~, 1). Este clculo se muestra en seguida, el
primer vector es el rengln O de la tabla simplex inicial y la matriz esta formada por los
renglones 1 a 3 de la tabla simplex inicial:

o oo
~, 1] [ ~ ~2].
1
rengln O Final = [ -3, 5, O, O, O] + [0, 2 o 1 o
2 oo 1 18

rengln O Final= [0, O, O,~' 1, 36].


Observar como el vector que premultiplica los renglones 1 a 3 de la tabla simplex inicial
se reproduce exactamente como los coeficientes de holgura en el rengln O final. Est con-
clusin es la que corresponde al rengln de la idea fundamental. 0

1.2. Mtodo simplex dual


Est basado en la teora de dualidad [3). El mtodo simplex trata directamente con
soluciones bsicas en el problema primal que son factibles primales (si la solucin bsic.a
primal es factible) pero no factibles duales (si la solucin bsica dual complementaria es
factible para el problema dual). Despus se mueve hacia la solucin ptima tratando le
lograr la factibilidad dual (prueba de optimalidad del mtodo simplex [3]).
El mtodo simplex dual maneja ::;olucione::; bsica::; en el problema dual que ::;on factible::;
duales pero no factibles primales. Despus se mueve hacia la solucin ptima tratando de
alcanzar la factibilidad primal tambin.
Otro aplicacin primordial del mtodo simplex dual es su asociacin con el anlisis de
sensibilidad, suponga que se tiene una solucin por el mtodo simplex pero que es nece-
sario hacer cambios menores al modelo, si la solucin bsica ptima que se tena ya no
eR factible primal, pero todava Ratisface la prueba de optimalidad, Re puede aplicar de
inmediato el mtodo simplex dual por lo general se llega a la solucin ptima mucho ms
rpido que si se resuelve el nuevo problema desde el principio con el mtodo simplex.
Las reglas para el mtodo simplex dual son muy parecidas a las del mtodo simplex. De
hecho, una vez que lm; mtodos se inician, la nka diferencia entre ellos e::; el criterio para
elegir las variables bsicas que entran y salen y la regla para detener el algoritmo.

7
1.2.1. Resumen del mtodo simplex dual
Pasos a seguir del mtodo simplex dual [3):

l. Inicializacin: despus de convertir cualquier restriccin funcional de la forma 2:: a la


forma:::; (multiplicando ambos lados por -1), se introducen las variables de holgura
necesarias para construir un conjunto de ecuaciones que describan el problema.
Encuentra una solucin bsica tal que todos los coeficientes de la ecuacin (O) sean
ceros para las variables bsicas y no negativos para las variables no bsicas (de
manera que la solucin <'B ptima si es factible). Va~a a la prueba de factibilidad:

2. Prueba de factibilidad: verifica si todas las variables bsicas son no negativas. Si


es as, entonces est solucin es factible, y por lo tanto ptima, y el algoritmo se
detiene. De otra manera, vaya a la siguiente iteracin.

3. Iteracin:

a) Determine la variable bsica que sale, seleccionando la variable bsica negati-


va(lado derecho) que tenga el mayor valor absoluto.
b) Determine la variable bsica entrante, para esta eleccin examinar las variables
no b.c;;ica.c;; con coeficientes negativos en la ecuacin de la variable b.c;;ica saliente
y elija la que tiene el menor valor absoluto del cociente dado por el coeficiente
de la ecuacin (O) entre el coeficiente de la ecuacin de la variable bsica que
sale.
e) Determine la nueva solucin bsica comen7.ando con el conjunto actual de ecua-
ciones y despeje las variables bsicas en trminos de las variables no bsicas,
mediante el mtodo de eliminacin gaussiana. Cuando las variables bsicas se
hacen cero, cada variable bsica(y Z) es igual al nuevo valor del lado derecho
de la ecuacin en la que se aparece( con coeficiente +1). Rcb'Tcsar a la prueba
de factibilidad.

Tener en cuenta que se esta haciendo lo mismo que el mtodo simplex, esto es, en la
iteracin:
(a) determina. la variable bsica que sale, es equivalente a determinar la variable bsica
entrante en el problema dual, la variable negativa con el mayor valor absoluto ms gran-
de corresponde al coeficiente negativo con el mayor valor absoluto en la ecuacin O del
problema dual.
(b) determina la variable bska entrante es equivalente a determinar la variable bsica
que sale en el problema dual. El coeficiente de la ecuacin (O)(divisin) que llega primero
a cero, corresponde a la primera variable que se hace cero en el problema dual. Tambin
los dos criterios para detener el algoritmo son complementarios.
Ejemplo: Sea la siguiente problema de programacin lineal:

8
maximizar z = -4y- 12y2 - 18y3.
sujeta a: Y1 + 3y3 2: 3.
2y2 + 2y3 2: 5.
Y11 Y2, Y3 2': O.
Aplicando Mtodo simplex dual, se obtienen las siguientes tablas :

Variable Ecuacin Lado


Iteracin bsica numrica z Y1 Y2 Y3 Y4 Ys derecho
o z (O) 1 4 12 18 o o o
Y4 (1) o -1 o -3 1 o -3
Ys (2) o o -2 -2 o 1 -5

Variable Ecuacin Lado


Iteracin b.<iica numrica z Y1 Y2 Y3 Y4 Ys derecho
1 z (O) 1 4 o 6 o 6 -30
Y4 (1) o -1 o -3 1 o -3
Y2 (2) o o 1 1 o -21 25
Variable Ecuacin Lado
Iteracin bsica numrica z Y1 Y2 Y3 Y4 Ys derecho
2 z (O) 1 2 o o 2 6 -36
(1) 1
o 3 o 1 3 o 1 _!
Y3
Y2 (2) o -31 1 o 31 -21 23
Como ahora se permiten valores negativos en el lado derecho, no es necesario introducir
variables artificiales como variables bsicas iniciales. En su lugar, slo se convierten las
restricciones funcionales a la forma ~ y se introducen las variables de holgura para que
desempeen este papel. El conjunto inicial de ecuaciones se muestra en la iteracin O de
la tabla. Observar que todos los coeficientes de la ecuacin O son no negativos, con lo que
la solucin eR ptima Ri eR factible.
La solucin bsica inicial no es factible porque tiene valores negativos donde y 1 = y 2 =
y3 = O, Y4 = -3 y Ys = -5 con Z = O, la variable bsica que sale es Ys(5 > 3),
y la variable bsica entrante es y2 (12/2 < 18/2), lo que conduce al segundo conjunto
de ecuaonc~ que ~e rnue~tra en la itera.cin l. La solucin bsica correspondiente es
, Y1 = O, Y2 = ~' Y3 = O, Y4 = -3, y5 = O, con Z = -30, que no es factible, la siguiente
variable bsica que sale es y4 y la que entra es y3 (6/3 < 4/1), lo que da lugar al conjunto
final de ecuaciones presentadoR en la iteracin 2, que es factible y por lo tanto ptima.
Notar que la solucin ptimal para el dual de este problema es es xi = 2, x2 = 6, x3 =
x:
2, = x5 = O, que es la solucin bsica factible del problema dual-o

9
1.3. Anlisis de sensibilidad
1.3.1. Cambios en los coeficientes de una variable no bsica
Supongamos que los cambios se hacen en el modelo original en los coeficientes de una
variable que era no bsica en la solucin ptima del problema originaL Cul es el efecto
de estos cambios sobre esta solucin ptima?.
En vista que la variable en cuestin es no bsica, el cambio en sus coeficientes no puede
afedar la factibilidad de la solucin, la cuestin es si esta solucin ::;igue siendo ptima.
Una pregunta equivalente es si la solucin bsica complementaria para el problema dual
todava es factible despus de hacer estos cambios. Dados que los cambios afectan en nada
ms en una restriccin, la pregunta es sem~illa de responder, tan solo verificando si esta
solucin satisface dicha restriccin.
De aqu en adelante consideraremos problemas de la forma:
Maximizar (e, x).
sujeta a: Ax ~ b, x ~ O.
o equivalentemente con variables de holgura:
Maximizar (e, x).
sujeta a: Ax + Xa = b; x, Xa ~ O.

1.3.2. Introduccin de una variable


Las variables de decisin de los modelos suelen representar los niveles de las activida-
des (3] distintas bajo consideracin. Estas actividades se seleccionan entre un grupo de
actividades posibles, en las que actividades restantes no se eligieron por parecer menos
atractivas, la pregunta es: cambiar la solur.in ptima del problema original si se agrega
cualquiera de estas actividades?
Agregar cualquier otro actividad equivale a introducir en el modelo una nueva variable,
con los coeficientes apropiados en las restricciones funcionales y la funcin objetivo. El
cambio en el problema dual es la introduccin de uua nueva restriccin.
Ejemplo: Sea Xnueva la tasa de produccin de un nuevo artculo, el modelo revisado es la
siguiente:
Maximizar Z = 3xi + 5x2 + 4Xnueva
SUjeta a: XI+ 2Xnueva ~ 4.
2x2 + 3Xnueva ~ 12.
3X + 2x2 + Xnueva ~ 18.
XI, X2, Xnueva ~0.
La solucin del problema original sin introducir la variable Xnueva, pero introduciendo las
variables de holgura en las restricciones es (XI, x 2 , x 3 , x 4 , xs) = (2, 6, 2, O, O). Si se incluye
X nueva, es todava la solucin ptima?.
Para contestar esta pregunta, se verifica la solucin bsica complementaria para el proble-

10
ma dual, la solucin est dada en el rengln O de la tabla simplex final para el problema
primal. La :::;olucin es:
(y1, Y2, y3, z1- c1, z2- c2) = (0, ~' 1, O, O)
Como esta solucin era ptima para el problema dual original, sin duda satisface las
restricciones originales sin la introduccin de la variable Xnueva en el problema primal.
Con la introduccin de Xnueva nos preguntamos: si la solucin bsica complementaria sa-
tisface la restriccin dual 2y1 + 3y2 + y3 ~ 4? al sustituir est solucin en la restriccin:
2(0) +3( V+ 1 ~ 4, entonce.s si se satisface, por lo que est solucin sigue siendo factible (y
tambin ptima). En consecuencia, la solucin ptima del problema original (2, 6, 2, O, O)
junto con la Xnueva todava es ptima, y se concluye que no debe incluirse este nuevo
producto en la produccin-o

1.3.3. Otras aplicaciones


Hay otra dos aplicaciones importantes de la teora de dualidad en el anlisis de sen-
sibilidad: los precios sombras [3] y el mtodo simplex dual [3]. La solucin ptima del
problema dual (yt, y2, ... , y:n) proporciona los precios sombra para los recursos respectivos
que indican cuanto puede cambiar z si hacen cambios en los recursos bi.
Las soluciones bsicas se pueden clasificar segn si satisface cada una de las condiciones.
Una es la condicin de factibilidad, a saber si todas (incluyendo las variables de holgura)
en la solucin aumentada son no negativas. La otra es la condicin de optimalidad, es
decir, si todoo lo:::; coeficientes en el rengln O (las variables en la solucin bsit;a comple-
mentaria) son no negativos. En la siguiente tabla se resumen los trminos que se emplean
aqu para las distintas soluciones bsicas [3].

Satisface la condicion de optimalidad?

Factible? { Si :~tima Sub~;tima


no Superoptima Ni factible ni superoptima
Cuando se investigan los cambios en los bi o en las aij (para las variables bsicas), la solu-
cin ptima del problema original puede convertirse en una solucin bsica :::;uperptima.
Si se desea volver a optimizar para identificar la nueva solucin ptima, se debe aplicar
el mtodo simplex dual comenzando con esta solucin bsica.

1.3.4. Esencia del analsis de sensibilidad


Investiga d ekcto que tendra sobre la solucin ptima proporcionada por el mto-
do simplex, el hecho de que los parmetros tomaran otros valores posibles. En general,
habr algunos parmetros a los que se le pueden asignar cualquier valor razonable sin
que afecten la opt.imalidad de esta solucin. Sin embargo, tambin habr parmetros con

11
valores probables que lleven a una nueva solucin ptima.
Un objetivo del aulisb de sensibilidad es identificar los parmetros sensibles [3], es decir,
los parmetros cuyos valores no pueden cambiar, sin que cambie la solucin ptima. Pa-
ra ciertos parmetros que no estn clasificados como sensibles, tambin pueden resultar
de gran utilidad determinar el intervalo de valores del parmetro, de tal manera que la
solucin ptima no cambie (este intervalo se conoce como intervalo permisible para per-
manecer ptimo). En algunos casos, cambiar el valor de un prametro puede afectar la
factibilidad de la Rolncin ptima, para talf'A<; parmetros, eR til determinar el intervalo
de valores, de tal manera que la solucin ptima siga siendo factible (este intervalo recibe
el nombre de intervalo permisible para permanecer factible.).
Si se descubre que el valor real de un parmetro est fuera de su intervalo de valores
permisibles, sta es una seal inminente de que es necesario cambiar la solucin.
Para problemas pequeos la verificacin del efecto de una variedad de cambios en los
valores de los parmetros es directa, con slo aplicar de nuevo el mtodo simplex para
ver si cambia la solucin ptima. Sin embargo, en problemas ms grandes, el anlisis
de sensibilidad requiere de un esfuerzo computacional si fuera necesario volver aplicar el
mtodo simplex desde el principio para investigar cada cambio en el valor de un parmetro.
Por fortuna la idea fundamental presentada del mtodo simplex, casi elimina el esfuerzo
computacional. La idea fundamental revela de forma inmediata los cambios al modelo
original, y como se alteran los nmeros de la tabla simplex final (si se supone que se
duplica la misma secuencia de operaciones algebraicas que realizo el mtodo simplex la
primera vc7.). Dcspcs de hacer unos cuantos clculos para actnali7.ar esta tabla simplex,
se puede verificar con facilidad si la solucin ptima del problema original ahora es no
ptima (o no factible). Si es factible, est solucin se usar como solucin bsica inicial
para comenzar de nuevo el simplex y encontrar una nueva solucin ptima si se desea. Si
los cambios en el modelo no son mayores, slo se requerirn una cuantas iteraciones para
obtener la nueva solucin ptima a partir de esta solucin bsica inicial.
Para describir este procedimiento con ms detalle , se ha empleado el mtodo simplex
para obtener una solucin ptima para un modelo de programacin lineal con valores es-
pecficos para los parmetros bj, Cj y aij. Para un inicial anlisis de sensibilidad se cambian
uno o ms parmetros, en notacin matricial:
b--+ b',c--+ ,A--+ A'
, para el modelo revisado.
Ejemplo: Sea el sig1..ente problema de programacin lineal:
Maximizar 3x1 + 5x2
sujeta a: x 1 S: 4.
2x2 S: 12.
3x 1 + 2x 2 S: 18.
X, X2 2:: .
Los cambios a este modelo son c1 =3a e~ = 4, a 31 = 3 a a~ 1 = 2, y b2 = 12 a b; = 24.
12
Maximizar 4x 1 + 5x 2 .
sujeta a: x 1 ::::; 4.
2x2::::; 24.
2x 1 + 2x 2 ::::; 18.
X 1 X2;:::: 0.

Para el modelo original el mtodo ::;implex ya identifk la solun ptima factible que
es (2, 6), que se encuentra en la interseccin de las dos fronteras de restriccion que son
2x2 = 12 y 3x 1 +2x 2 = 18. Ahora la revisin del modelo ha cambiado ambas fronteras, de
tnl manera que la int.tmscccin de arubns fmntcrM 211:2 = 24 y 211:1 + 211:2 = 18 es ( -3, 12)
que e; una fil(:)lud6n 11(:) factible. El pmcedimient(j de!!crito anterimrmmta encuentra asta
crunbio da manara algebraica.
Pfim llflvnt tt r.nbo flRhl pror.fldimiflllttJ, f!A mmiflnM por deseribir lol' ->r:trrmfltmR dtll mo-
delo revisado en forma matricial:
e' = [4, 5].

A'=[~~]
b'=[~:J
La tabla simplex inicial nueva del problema modificado:
Variable Ecuacin Lado
bsica numrica z X X2 X3 X4 X5 derecho
z (O) 1 -4 -5 o o o o
X3 (1) o 1 o 1 o o 4
X4 (2) o o 2 o 1 o 24
X5 (3) o 2 2 o o 1 18
La tabla simplex final del problema original:
Variable Ecuacin Lado
bsica numrica z X X2 X3 X4 X5 derecho
z (O) 1 o o o 3
2 1 36
X3 (1) o o o 1 1 _.! 2
3 3
X2 (2) o o 1 o 1
2 o 6
X (3) o 1 o o -3
1 1
3 2
La parte que no cambia en el modelo, a saber, los coeficientes de las variables de holgura
tanto en el rengln O(y*) como en el resto de los renglones (S*). As:

y* =[0,~,1]
13
s~u ~'] t
En general la tabla revisada de la idea fundamental [3] es de la forma:

Ecuacin I Lado
numrica il z Variables originales Variables de holgura derecho
(O) 1 z* - e* = y* A' - e' y* z* = y*b'
(1, 2, ... ,m) o A*= S* A' S* b* = S*b'

En el ejemplo:

variable ecuacin Lado


bsica numrica z X x2 X3 X4 xs derecho
z (O) 1 -2 o o 3
2 1 54
X3 (1) o l3 o 1 l
3 -3
1
6
X2 (2) o o 1 o 1
2 o 12
X (3) o 2
3 o o -3
1
3
1
-2
Estos coeficientes de las variables de holgura quedan necesariamente sin cambiar cuando
se realizan las mismas operaciones algebraicas que originalmente realiz el mtodo simplex
porque los coeficientes de e.stas mismas variables en la tabla simplex inicial no cambiaron.

1
z * -e = [0, 3, 1] [ 0] - [4, 5) = [-2, 0),
1
~ ~
2

z ~ [0, ~, 1] [ ~] ~54,
1 s 1r 1 o 1 r i o 1
~
1

A* = [ ~ ~1 ~ j ~ ~ j ~ j' l li
b. ~ ~ ~1 ~:
[ t l [;~ ]
][

En realidad estos clculos para obtener la tabla simplex final revisada se puede simplificar
de manera sustancial. Como ninguno de los wefidentes de x 2 cambia en el modelo original,
ninguno de ellos puede cambiar en la tabla revisada, as se puede eliminar su clculo.
Algunos otros prametros originales (a 11 ,a 21 ,b 1 ,b3 ) tampoco cambiaron, entonces otro

14
atajo consiste en calcular nada ms los cambios incrementales en la tabla simplex final
en trminos de los cambios incrementales eu la tabla original e ignorar aquellos tnniuos
en la multiplicacin de vectores o matrices que no tuvieron cambio en la tabla inicial. En
particular los nicos cambios incrementales en la tabla simplex inicial son D.c1 = 1, D.c31 =
-1 y D.b2 = 12, estos son los nicos trminos que deben considerarse. La. simplificacin
se muestra con un cero o con un guin en el lugar de los elementos no calculados.

D.(z*- e)= y* D.A- D.c =[O,~' 1] [ ~ =]- [1, -] = [-2, -]


-1 -

D.A* =S* D.A =


[
o 31
1

1_321
O -lll
= ~
~ -]
..=1.][0
=
O
-1
~
-~

~b = s ~b l~ t nl~ l l~J
=
Al agregar estos incrementos a las cantidades originales en la tabla simplex final se obtiene
la tabla simplex final revisada.
Despus de obtener la tabla simplcx final revisada, se convierte en la forma apropiada de
eliminacin de Gauss [3], en particular la variable bsica en el rengln i debe tener un
coeficiente de 1 en ese rengln y O en todos los dems renglones (incluso en el rengln O),
pan'l que la tabla eRt en la formR apropiarla para identificar y evRluar la Rolucin bsica
actual. Entonces, si los cambios violan este requisito, se debern realizar las operaciones
necesarias para establecer esta forma. Esta restauracin se hace con el mtodo de elimina-
cin de Gauss, esto es como si cada variable que no cumpla el requisito, fuera una variable
entrante. Notar que este proceso puede producir un cambio en el lado derecho de la tabla
simplex, por lo que la solucin bsica actual se podr leer en esa columna cuando se haya
recuperado por completo la forma apropiada de eliminacin de Gauss.
Volviendo al ejemplo, lR tRhla Rimplex final reviRada, no eRt en la forma apropiada de
eliminacin de Gauss para la columna de la variable bsica x 11 el coeficiente de x 1 en su
rengln 3 es ~ en lugar de 1, y tiene coeficientes distintos de ceros -2 y ~ en los renglones
O y l. Para restablecer la forma apropiada se multiplica el rengln 3 por ~; despes de
este nuevo rengln 3 multiplicado por 2 se suma al rengln cero. Por ltimo ~ de dicho
rengln 3 se resta del rengln l. La forma apropiada de la tabla simplex final revisada

15
aplicando la eliminacin de Gauss:

variable ecuacin Lado


bsica numrica z X X2 Xg X4 Xs derecho
z (O) 1 o o o 1
2 2 48
Xg (1) o o o 1 1
2 -2
1
7
X2 (2) o o 1 o 1
2 o 12
X (3) o 1 o o _l 1
-3
2 2

Para identificar los nuevos valores de la solucin bsica actual (antes ptima):
(x, x 2 , x 3 , x 4 , x 5 ) = ( -3, 12, 7, O, 0). Como x 1 es negativa, est solucin bsica ya no es
factible, pero es superptima y por lo tanto es factible dual, porque todos los coeficientes
en el rengln cero son no negativos. Entonces el mtodo simplex dual puede ser til para
volver optimizar si se desea comenzando con esta solucin bsica. Si se hace referencia el
mtodo simplex dual, el mtodo simplex dual lleva a cabo una sola iteracin para moverse
de la solucin en el vrtice ( -3, 12) a la solucin factible ptima (0, 9). Si esta solucin
bsica ( -3, 12, 7, O, O) no hubiera sido factible ni superptima, esto es si la tabla final
hubiera tenido nmeros negativos en el lado derecho como en el rengln cero, se hubiera
podido introducir variables artifidales en la nueva tabla simplex final para convertirla en
la forma apropiada para una tabla simplex inicial. 0

Procedimiento general

Cuando se realizan pruebas para detectar cuanto sensible es la solucin ptima del
problema original a los distintos parmetros del modelo, el enfoque comn es verificar
cada parmetro (a lo menos los Cj y bi), en forma individual (verificando por vector, no
necesariamente por una sola coordenada). Adems de encontrar los intervalos permisibles
que sern descritos ms adelante, est verificacin puede incluir cambiar el valor del
parmetro de su estimacin inicial a otras posibilidades dentro del intervalo de valores
probables (que incluyen los extremos del intervalo). Despus se puede investigar algunas
cornbinacione:::; de cambio::; simultJH..'OS (como cmubia1 una re:::;triccin funcional completa).
Resumen del procedimiento para anlisis de sensibilidad:

l. Revisin del modelo: se hacen los cambios deseados en el modelo que se va investigar.

2. Revisin de la tabla sirnplex final: se emplea la idea fundamental, explicado ailtt.'-


riormente, para determinar los cambios que resultan en la tabla simplex final del
problema original.

3. Conversin a la forma apropiada de eliminacin de Gauss: se convierte est tabla en


la forma apropiada para identificar y evaluar la solucin bsica aplicando eliminacin
de Gauss.

16
4. Prueba de Factibilidad: se prueba la factibilidad de esta solucin verificando que
todat> latl variabletl bt>icat> t>igan teniendo valoret; uo uegativot> en la wlurnna del
lado derecho.

5. Prueba de optirnalidad: Se verifica que esta solucin es ptima (factible), compro-


bando que todos los coeficientes de las variables no bsicas en el rengln O sean no
negativos.

6. Volver optimizar: si esta solucin no pasa una de las pruebas, se puede obtener si
se desea, la nueva solucin ptima partiendo de la tabla actual como tabla simplex
inicial (con las conversiones necesarias) para el mtodo simplex o el sirnplcx dual.

1.3.5. Aplicacin del anlisis de sensibilidad


Consideremos las siguientes aplicaciones:

Cambios en los coeficientes de una variable no bsica.

Consideremos Xj (j : fija) illla variable no bsica en la solucin ptima de la tabla


simplex, en este caso, el nico cambio de este modelo es que uno o ms coeficientes de
estas variables ei, a 1j, a 2i, ... , ami cambiaron. Entonces si e~ y a:.i (vamos a tomar solamente
un elemento aij de la columna de A') denotan los nuevos valores de estos parmetros con
A~ (columna j de la matriz A') como el vector que contiene a a:i , se tiene:

para el modelo revisado.


Si la solucin bsica complementaria y* del problema dual original satisface la nueva res-
triccin dual (al hacer los cambios de los coeficientes en la variable no bsica), entonces
la solucin ptima del problema original sigue siendo ptima. Por el contrario, si y* viola
la nueva restriccin dual, entonces la solucin primal ya no es ptima.
Si la solucin cambio y se desea encontrar la nueva solucin, debe aplicarse la idea fun-
damental a la columna Xj, la nica que cambia en la tabla simplex final revisada. Las
frmulas se reducen de la siguiente manera:
Coeficiente Xj en el rengln O final: zj -e~ =y* A~ -e~.
Coeficiente Xj en los renglones 1 a m finallli: Aj =S* A~.
Como la solucin bsica actual ya no es ptima, el nuevo valor zj - e~ ser ahora el que
tiene coeficiente negativo en el rengln O, as se inicia el mtodo simplex con Xj como
variable bsica entrante inicial.
Para el procedimiento general, los pasos 3 y 4 se eliminaron por no ser relevantes, ya que
la nica columna que cambia en la revisin de la tabla simplex final es de la variable no
bsica Xj. El paso 5 (prueba de optimalidad) se sustituyo por una prueba ms rpida
que debe realizarse despus del paso 1, slo cuando est prueba revele que la solucin

17
ptima cambia y se desee encontrar la nueva solucin, tendrn que aplicarse los pasos 2
y 6 (revisin de la tabla smplex final y reuptimizacin.).
Ejemplo Sea el siguiente problema de programacin lineal:
Maximizar 3x 1 + 5x2
Sujeta a: x 1 :::; 4.
2x2:::; 24.
3x 1 + 2x2 :::; 18.
X1,X2 2 0
La tabla simplex final de este problema original es:
variable ecuacin Lado
bsica numrica z Xl X2 xs X4 X5 derecho
z (O) 1 o o o9
2
5
2 45
xs (1) o 1 o 1 o o 4
X2 (2) o 2 1 o o 1
2 9
x4 (3) o -3 o o 1 -1 6
El nuevo problema de optimizacin cambiando los parmetros:

Observando en la tabla anterior x 1 es una variable no bsica del problema original, lo


siguiente es comprobar si cualquier cambio razonable en la estimacin de los coeficientes
de x 1 se puede introducir el producto l. En lugar de explorar cada uno de estos cambios
c1 y a 31 en forma independiente, se considerarn juntos.
El cambio de a 31 hace que la regin factible cambie, el cambio c1 hace que la funcin
z = 3x 1 + 5x 2 cambie a z = 4x 1 + 5x 2 . Vamos a verificar que la solucin ptima actual
(0, 9) del problema original, ::;igue siendo ptimo despul::i de los earnbio:s en a31 y c 1
Al emplear la teora de dualidad [3], observemos que los cambios en c1 y a 31 llevan a una
sola restriccin revisada para el problema dual, es la restriccin auy1 + a21 y2 + a 31 y3 2 c1 .
El valor de y* actual, lo podemos ver en la tabla simplex final del problema original:
5
Y1*-O
- , Y2*-O
- ' Ys*-- 2
Restriccin original :y1 + 3y3 2 3.
Restriccin al hacer los cambios de la variable no bsica X1 :y1 + 2y3 2 4, entonces reem-
plazando el valor de y* en la restriccin O+ 2{~) 2 4.
Como y* todava satisface la restriccin revisada, la solucin primal actual del problema
original todava sigue siendo ptima.
Para verificar esto, en forma matricial:

z 1* - c,1 = y*A'1 - C 5]
= [0, 0, 2
[~]-4=1
18
Ai =S* A~=

El hecho de que zi- e~ ~O confirma la optmaldad de la nueva solucin actual-o

Intervalo permitido para permanecer ptima

Se ilustr la forma de analizar cambios simultneos respecto a las variables Xj. En


anlisis de sensibilidad se pone en atencin el efecto de cambiar slo una variable, por
ejemplo Cj, el objetivo es encontrar el intervalo de valores permitidos de Cj Observar que
para cualquier cambio en Cj, su intervalo permitido es el intervalo para el cual la solucin
ptima actual signe permaneciendo ptima ante una variacin de Cj; cuando x j es una
variable no bsica para la solucin ptima , la solucin permanece ptima mientras ocurra
zj - Cj ~ O, donde zj = y* Aj es una constante que no se ve afectada debido al cambio
en el valor de Cj. Entonces, el intervalo permitido para seguir ptima para Cj se puede
calcular como Cj ~ y* Aj.
Ejemplo: considerar el siguiente problema lineal:
Maximizar 3x 1 + 5x2
Sujeta a: x 1 ~ 4.
2x2 ~ 24.
3x 1 + 2x2 ~ 18.
X,X2 ~ 0.
La tabla simplex final de este problema original:

variable ecuacin Lado


bsica numrica z X X2 X3 X4 X5 derecho
z (O) 1 9
2 o o o 5
2 45
X3 (1) o 1 o 1 o o 4
X2 (2) o 2 1 o o
3 1
2 9
X4 (3) o -3 o o 1 -1 6

Al considerar slo las variables de decisin x 1 y x 2 la solucin ptima es (x 1 , x 2 ) = (0, 9).


Cuando se cambia c1 , esta solucin permanece ptima siempre que:

de manera que c1 ~ 7~ es el intervalo permitido para mantener la solucin ptima. Ob-


servar en la tabla que zi - c1 = ~ cuando c1 = 3, de manera que una alternativa para
realizar est multiplicacin de vectores zi = y* A 1 = 3 + ~ = 7~. Para cualquier variable
de decisin no bsica Xj, en ocasiones se hace referencia al valor zj - Cj como el costo

19
reducido para Xj, porque es la cantidad mnima que debe reducirse el costo unitario de
la actividad j para hacer que valga la pena realizarla (aumentar el valor de Xj en ms de
cero), el valor de (zj - Cj) es entonces el incremento m.ximo permitido en ej para que la
solucin bsica factible actual siga siendo ptima.
La tabla siguiente, muestra est informacin para el modelo actual, las ltimas 3 colum-
nas se usan para calcular el intervalo permisible para cada coeficiente ci que son:
e1 :::;; 3 + 4,5 = 7,5
e2~5-3=2
Hasta aqu, se ha descrito como calcular el tipo de informacin slo para variables no
bsicas, para una variable bsica x 2 , el costo reducido automticamente es O. Se dejar al
lector como tarea obtener el intervalo permisible para Cj cuando Xj es una variable bsica.
La tabla de cambios permisibles:

Costo Coeficiente Aumento Disminucin


Variable Valor Reducido actual permisible permisible
Xl o 4,5 3 4,5 00

X2 9 o 5 00 3
o
nalisis de cambios simultneos en los coeficientes de la funcin objetivo

Sin importar si Xj es una variable b.sica o no b~c;ica, el intervalo permisible de ej es


vlido solo si este coeficiente de la funcin objetivo es el nico que cambia. Sin embargo,
cuando se hacen cambios simultneos en los coeficientes de la funcin objetivo, se dispone
de la regla del cien por ciento para verificar si la solucin original debe seguir siendo
ptima.
Regla del 100% para cambios simultneos en los coeficientes de la funcin ob-
jetivo. Si se hacen cambios simultanes en los coeficientes de la funcin objetivo, para
cRda cambio se cak.nla el porcentaje del cambio permisible (aumento o disminucin) para
que ese coeficiente siga dentro de su intervalo permisible. Si la suma de los porcentajes
de cambios no excede al 100%, la solucin ptima del problema original definitivamente
ser todava ptima (si la suma excede al 100% , entonces no hay seguridad). Al usar
la tabla ltima del ejemplo anterior de lm; cambios penn;ibles, esta regla del 100% dice
que (0, 9) permanecer ptima an cuando al mismo tiempo, se aumenta e1 a ms de 3,
y se disminuya e2 a menos de 5, siempre que estos cambios no sean muy grandes. Por
ejemplo si e1 se aumenta 1,5 ((4 :~ 3 )100% = 33~% del cambio permisible), entonces e2
puede disminuir 2 ((5; 2)100% = '66~ <7c del cambio permisible), estos cambios mximos
revizan la funcin objetivo como z = 4,5x 1 + 3x 2. En general cuando los coeficientes de
la funcin objetivo cambian en la misma direccin, es posible que los porcentajes de los
cambios permisibles sumen ms del 100 por ciento sin cambiar la solucin ptima.

20
1.4. Mtodo de penalizacin de gran M
Estudiaremos problemas de programacin lineal de la forma:

minimizar (e, x).


sujeta a : Ax = b
x~O

Donde x = (x1, x 2 , , Xn) es un vector real den componentes, A es una matriz real de m
filas y n columnas, y e es un vector real de n componentes.
Se introduce el vector artificial Xa de longitud m(xaE~m), con lo cual se obtiene el sistema
de restricciones:
Ax+xa = b
X,Xa ~ 0.
Considerando b ~ O, la solucin factible inidal esta dada por Xa = b y x = O.
Se considera el siguiente problema:

minimizar (e, x) + M1.xa.


sujeta a : Ax + Xa = b
X,Xa ~ 0

Donde 1 es un vector compuesto de solamente unos, de longitud dependiendo de la lon-


gitud de la variable artificial (en este caso menor igual a m). Tener en cuenta: l.xa =
((1, 1, ... , 1), Xa)
M es un nmero positivo muy grande, el trmino M1xa se puede interpretar como una
penalizacin que es necesario pagar por cualquier solucin con Xa ::/=- O, el mismo mtodo
simplex [1] tratar de sacar de la base a las variables artificiales y despes continuara
hasta encontrar la solucin ptima del problema original.
Problema P:
minimizar (e, x).
sujeta a : Ax = b
x~O

Problema P(!vi):
mm1m1zar (e, x) + Ml.xa
sujeta a : Ax + Xa = b
X,Xa ~ 0
Donde 1 es un vector compuesto de unos, con la dimension dependiendo de la dimensin
o longitud de Xa.
Como el problema P(M) tiene una solucin factible entonces al resolver el problema por
el mtodo simplex es posible que se presente uno de los siguientes casos [1]:

l. Se llegar a una solucin ptima de P(M).

21
2. Se concluir que P(A1) tiene una solucin ptima no acotada, es decir z ---t -oo.

Caso A Solucin ptima finita de P(M).


Ocurre dos posibllcs casos para la solucin ptima de P(M), en primer lugar todas las
variables artificiales estn en el nive el cero, y en segundo lugar no todas las variables
artificiales son ceros, veamos esto:
Subcaso Al: (x*, O) es una solucin optimal de P(M).
Sea x una solucin factible del problema P, entonces (x, O) es una solucin factible del
problema P(lvf) entonces (e, x*) +O ::::; (e, x) +O, es decir (e, x*) ::::; (e, x), por lo tanto se
observa que x* es una solucin factible de P, entonces x* es una solucin ptima de P.
Subcaso A2: (x*,x~) es una solucin ptima de P(M) y x~ =/:-O.
Sea M un nmero positivo muy grande; supongamos que x sea una solucin factible para
P, entonces (x, O) es una solucin factible para P(M), y por la optimalidad de (x*, x~) se
tendr que:

(e, x*) + Mlx~ ::::; (e, x) +O = ex.


Como M es muy grande, x~ ;::::: Oy x~ =/:- O, y como x~ corresponde a una de las soluciones de
un nmero finito de soluciones bsicas factibles (ya que todo poliedro tiene una cantidad
finita de puntos extremos [5]) , la desigualdad anterior es imposible, por lo tanto x no
puede ser una solucin factible de P. Se concluye, que el problema P no tiene solucin
factible,
Caso B P(M) tiene una solucin optima no acotada; es decir z ~ -oo.
Durante la solucin del problema penalizado la wlumna actualizada Yk ::::; O, en donde el
ndice k corresponde al ms positivo de los Zj- ej, entonces el problema P(M) tiene una
solucin ptima no acotada.
Subcaso Bl:zk- Ck = Maximo(zi - ci) >O, Yk S O y toda..<; las variables artificiales son
iguales a cero.
En este ca.so se tiene solucin no acotada del problema (P), como el problema P(M) no
es acotado, entonces existe una direccin de descenso (rayo extremo [5]) (d 1 , d2) :2:: (0, O)
del conjunto {(x, Xa) : Ax + Xa = b; x, Xa :2:: 0}, tal que (e, d) + Ml.d2 < O, como M es
suficientemente grande implica que d2 = O, por lo tanto (e, d 1 ) < O, y como d1 es una
direccin de descenso del conjunto {x: Ax = b, x :2:: O} (es diferente del vaco ya que las
variables artificiales Xa = 0), implica que el problema P tiene una solucin optima no
acotada.
Subcaso B2 : Zk- ck = Maximo(zi- ci) >O, Yk S O y no todas las variables artificiales
son iguales a cero.
En este caso se demostrar que no puede haber soluciones factibles para el problema (P),
consideremos la base que {x 1 , x 2 , ... , xp} formadas por variables legtimas, y las variables
{ Xp+I, ... , Xm} estn formadas por variables artificiales, observando que los costos para las
variables artificiales es Ci = M para i = p + 1, ... ,m entonces para j = m+ 1, ... , n se

22
obtiene:
Zj- Cj = ~f=ICiYij + M(~Y~p+1Yij)- Cj
Afirmacin ~f=IYii ~O; j=m+1, ... ,n.
Recordar primero que Yk ::::; O, por tanto ~~p+IYik::::; O se satisface trivialmente. Suponga-
mos por contradiccin que ~~p+IYii > O, para alguna variable no bsica Xj, de la ecuacin
anterior y como M es muy grande, se concluye que Zj - Cj es un nmero positivo muy
grande, lo cual viola la definicin de Zk- Ck con Yk ::::; O, por lo tanto ~~p+lYii ::::; O para
todo j =m+ 1, ... , n. Sumando las m- p ecuaciones de la tabla del simplex formado por
las variables artificiales , se tiene:

~~p+Xi + ~J=m+IXj(~~p+IYij) = ~~p+lb; .... (1)

Si el problema P tiene una solucin factible, entonces Xi = O para todas las variables
artificiales, desde i = p + 1, ... ,m. Adems Xj ~ O y ~~p+IYii ::::; O, por lo tanto el lado
izquierdo de la ecuacin (1) es menor igual a cero, sin embargo el lado derecho siempre es
positivo, ya que no todas las variables artificiales son iguales a cero, esto demuestra que
no puede ver soluciones factibles para el problema original P.
Cuan grande debe ser A1? Observar que hay un valor finito para M, es rroneo considerar
simplemente la magnitud de los coeficientes de la funcin objetivo, tambin es neceRario
considerar cun chica puede ser la suma de las variables artificiales en una solucin bsica
factible, veamos el siguiente caso:
Problema P:
minimizar x1
sujeta a : Ex 1 - x 2 ~ O
X,X2 ~ 0

Problema P(M):
minimizar x1 + M x4
sujeta a : tX - x2 - X3 + X4 = E

X, X2, X3, X4 ~ 0
El problema P(M) tiene soluciones factibles (1, O, O, 0), (0, O, O, t), la primera de estas es
factible para P, aunque la segunda no lo es; en P(M) el valor de la funcin objetivo eva-
luado en (1, O, O, O) es 1 y de (0, O, O, t) es t.M, por lo tanto sera aconsejable que t.A1 > 1,
es decir que lvf > ~.

23
Captulo 2

Programacin dinmica

La programacin dinmica [3] es una tcnica matemtica til en la toma de una serie de
declionm; interrelacionadaH. Proporciona un procedimiento ~;temtico para determinar
la combinacin ptima de decisiones. Comencemos con un ejemplo:

2.1. Problema de diligencia


Trata ~obre un cazafortunaH mtico de Missouri que decide ir al oeste a unirse a la
fiebre de oro en California a mediados del siglo XI X, tiene que hacer el viaje en diligencia
atravs de territorios sin ley donde existen peligro de ser atacados por merodeadores. A
cuando su partida y su destino son fijo, tiene muchas opciones en cuanto a qu estados
debe elegir como puntos intermedios.
Este cazafortuna.s es un hombre prudente preocupado por su seguridad. Despus de refle-
xionar un poco se le ocurri una manera bastante ingeniosa para determinRr lR ruta m.'l
segura. Se ofrecen plizas de segura de vida a los pasajeros. Como el costo de la pliza para
cualquier jornada en la diligencia est basado en una evaluacin cuidadosa del recorrido,
la ruta ms segura debe ser la que tiene el menor costo total de la pliza del seguro.
El costo de la pliza estndar para el viaje en diligencia, del estado i al estado j, que se
denota por Cij es:

E F G
B 7 4 6
e 3 2 4
D 4 1 5

24
H I
E 1 4
F 6 3
G 3 3

~
Li_j_J
Cual es la ruta que minimiza el costo total de la pliza?
Solucin del problema:
Un enfoque posible para resolver este problema es el de prueba y error. Sin embargo el
nmero de rutas posible es grande (18) y el clculo del costo total para cada ruta no es
tarea atractiva.
La programacin dinmica proporciona una solucin con mucho menos esfuen:o qm~ la
enumeracin exhaustiva. La programacin dinmica comienza con una pequea porcin
del problema original y encuentra la solucin ptima para el problema ms pequeo.
Despes agranda gradualmente el problema y encuentra la solucin ptima actual a par-
tir de la que precede , hasta resolver el problema original completo.
En el problema de diligencia se comienza con el problema sencillo en el que el agente casi
ha llegado al final de su viaje y solo tiene una etapa ms por recorrer. La solucin ptima
obvia para este problema reducido es ir del estado actual a su destino final (estado J).

2 .1.1. Formulacin
Sea Xn(n = 1, 2, 3, 4) la variable de desicin que representan el destino inmediato de
la etapa n(el n-simo viaje que se har en diligencia). Entonces: la ruta seleccionada es
A ----* X ----* X2 ----* X3 ----* X4 = J.
Sea fn(s, Xn) el costo total de la mejor poltica global para las etapas restantes, dado que
el agente de ventas se encuentra en el estado s, listo para iniciar la etapa n y elige Xn
como destino inmediato. Dados y n, sea x~ el valor de Xn que minimiza fn(s, Xn) y sea
f~(s) el valor mnimo correspondiente de fn(s, Xn) , entonces:

en donde:
fn(s, Xn) =costo inmediato etapa n+costo futuro mnimo
(etapa n + 1 adelante).
fn(s,xn) = Csxn + .f~+ 1 (xn) El valor de Csxn esta dado por la tablas anteriores Cij esta-
bleciendo i = s (el estado actual) y j = Xn (destino inmediato). Como el destino final se
alcanza al terminar la etapa 4, f5(J) =O.

25
El objetivo es encontrar fi(A) y la ruta correspondiente. Programacin dinmica encuen-
tra la ruta al hallar sucesivamente !4 (s), !3 (s), f~ (s) para cada uno de los estados posibles
de s y usar despus !2 (s) para encontrar Ji (A).

2.1.2. Procedimiento solucin.


Cuando el cazafortunas tiene una sola etapa por recorrer (n = 4), su ruta de ah en
adelante est perfectamente determinada por su estada actual s(ya sea H o I) y su destino
final X4 =J.
S f4(s) x*4
H 3 J
I 4 J
La ruta para esta ltima dili~cncia es s --t J. Como f4(s) = f 4 (s, J) = Cs,J, la solucin
inmediata la vemos en la tabla.
Cuando el cazafortunas tiene dos etapas por recorrer(n = 3). Se requiere algunos clculos.
Por ejemplo, suponga que se encuentra en el estado E, el cazafortuna debe ir al estado H
o al estado!, con un costo inmediato de CEH = 1 y CEJ = 4 respectivamente. Supongamos
que el cazafortunas elige el estado H, el costo adicional mnimo para llegar del estado H
a J es f4(H) = 3, de manera que el costo de esta decisin es 1 + 3 = 4. Si en lugar del
estado H, se elige el estado/, el costo total es 4 + 4 = 8. Por lo tanto la solucin optima
es x3 = H, ya que el costo mnimo es f3(E) = 4.
!J(s, X3) = Cs,x 3 + f4(x3)
S\ X3 H I f3(s) x*3
E 4 8 4 H
F 9 7 7 I
G 6 7 6 H
Las solucin para la etapa n = 2, cuando quedan 3 jornadas por recorrer , se obtienen
en forma parecida a las etapas posteriores, en este caso !2(s,x2) = C8 x 2 + f3(x2) Por
ejemplo supongamos que el cazafortunas se encuentra en el estado D, ahora debera al
estado E, F, G con un costo inmediato cvE = 4, cvF = 1 y cva = 5. Al llegar el costo
adicional mnimo hasta llegar al destino (x4 = J) esta dado en la tabla precedente esto
es, f3(E) = 4, f3(F) = 7 y f3(G) = 6, se resumen los clculos para las tres alternativas:
X2 =E: h(D, E)= CD,E + f3(E) = 4 + 4 = 8.

X2 = F: h(D, F) = CD,F + f3(F) = 1 + 7 = 8.

X2 = G: h(D,G) = CD,G + f3(G) = 5 + 6 = 11.

Al hac.er cruculos similares CUAndo se parte del estado B, C:

26
s \x2 E F G f2(s) x;
B 11 11 12 11 EoF
e 7 9 10 7 E
D 8 8 11 8 EoF

Si se pasa el problema de la primera etapa (n = 1), con las cuatro etapas por recorrer, los
clculos son parecidos a las que se acaban de mostrar para la etapa n = 2, excepto que
solo hay un inicio posible, s = A.
X!= B: !I(A, B) = CA,B + f2(B) = 2 + 11 = 13.
x1 =e: JI(A,C) = cA,c +:;(e)= 4+ 7 = 11.
X1 = D: f1(A, D) = CA,D + f2(D) = 3 + 8 = 11.

fi(A) = minimo{cA,x 1 + f2(xi)}.


A \x1 B e D xi
A 13 11 11 CoD
Ahora se puede identificar una solucin ptima. Los resultados del problema n = 1, indi-
can que el cazafortunas debe elegir como destino inmediato debe ser C o D, supongamos
que xi =C. Paran= 2, el resultado paras= Ces x2 =E. Esto conduce al problema
n = 3, que da x3 = H paras = E, y el problema paran = 4 indica que x = J para
s = H. As una ruta ptima es A ---+ C ---+ E ---+ H ---+ J. Si se elige xi = D, se
obtienen otras dos rutas ptimas : A---+ D---+ E---+ H---+ J, y
A---tD---+F---+1---tJ
Se tiene un costo total Ji (A) = 1l.o

2.2. Caracterizacin de los problemas de programa-


cin dinmica
Una manera de reconocer una situacin que se puede formular como un problema de
programacin dinmica es poder identificar una estructura anloga al problema de dili-
gencia (3].

l. El problema se puede dividir en etapas que requieren una poltica de decisin en


cada una de ellas. En el problema de diligencia se hizo una divisin en 4 etapas
(viajes) que corresponden a las 4 jornadas de dilip;encia. La poltica de decisin en
cada etapa fue que pliza de seguro seguir.

2. Cada etapa tiene cierto nmero de estados asociados con su inicio.


En el problema los estados asociados con cada etapa en el problema de diligencia son

27
los estados (territorios) en los que el cazafortunas puede estar al iniciar esa jornada
espedfica de viaje. En este caso el nmero de estados es finito, puede darse el caso
que los estados puedan ser infinito, como analizaremos ms adelante.

3. El efecto de la poltica de decisin en cada etapa es transformar el estado actual en


un estado asociado con el inicio de la siguiente etapa.
En el problema la decisin de cazafortunas en cuanto a su siguiente destino lo condu-
ce de s~ estado actual al siguiente estado en su viaje. En este caso lo interpretaremos
en trminos de redes, cada nodo corresponde a nn estado, la red consistira en m-
lumna de nodos, en donde cada columna corresponde a una etapa, en forma tal que
el flujo que sale de un nodo slo puede ir a un nodo de la siguiente columna a la
derecha. El valor asignado a cada rama que conecta dos nodos puede interpretar-
se algunas veces corno la contribucin inmediata a la funcin objetivo obtenida al
tomar esa poltica de decisin.

4. El procedimiento de solucin esta diseado para encontrar una poltica ptima para
el problema completo.
En el problema de la diligencia, el procedimiento de solucin construyo una tabla
para cada etapa n, que prescribe la decisin ptima x~ para cada estado posible
s. La programacin dinmica proporciona nna poltica Robre que hacer en toda."
las circunstancias posibles, proporcionar esta informacin adicional ms all de slo
especificar una solucin ptima.

5. Dado d estado actual, una plitica ptima para la.<~ etapas restantes es independien-
te de la poltica adoptada en etapas anteriores. Por lo tanto, la decisin inmediata
ptima depende slo del estado actual y no de como se lleg ah. Este es el principio
de optimalidad de programacin dinmica.
En el ejemplo dado el estado actual en el que se localiza el cazafortuuas, la pliza de
seguro de vida ptima desde este lugar en adelante es independiente de cmo llego
ah.

6. El procedimiento de solucin se inicia al encontrar la poltica ptima para la ltima


etapa.
La poltica ptima para la ltima etapa prescribe la poltica ptima de desicin para
cada estado posible en esa etapa. Es comn que la decisin de una etapa sea trivial,
como lo fue para el problema de diligencia.

7. Se dispone de una relacin de recursividad que identifica la poltica ptima para la


etapa n dada la poltica ptima para la etapa n + l.
En el problema de la diligencia, la relacin recursiva que se obtuvo es:
f*(s) = minimoxn {csxn + f~+l(xn)}.
Pttra encontrar la poltica ptima de decisin cuando se comienza en el estado s

28
de la etapa n, se necesita encontrar el valor de Xn que obtiene el mnimo. El costo
mnimo correspondiente se obtiene al usar este valor de Xn y despus siguiendo la
poltica ptima cuando el proceso se encuentra en el estado Xn en la etapa n +l.
La forma precisa de la relacin recursiva difiere de un problema a otro de progra-
macin dinmica, veamos est relacin recursiva:
N =nmero de etapas.
n =etiqueta para la etapa actual (n = 1, 2, ... ,N).
sn =estado actual para la etapa n.
Xn =variable de decisin para la etapa n.
Xn =valor ptimo para la etapa n de Xn (dado sn).
fn(sn, Xn)=Contribucin a la funcin objetivo de las etapas n, n + 1, ... ,N; si el sis-
tema se encuentra en el estado sn en la etapa n, la desicin inmediata es Xn y en
adelante se toman decisiones ptimas.
La relacin recursiva siempre tendr la forma: f~ (sn) = minimoxn {fn( Bn, Xn)}.
En donde .fn(sn, Xn) se escribe en trminos de sn, Xn, .f~+l (sn+ 1 ). Lo que hace que la
expresin para .f~ (sn) sea una relacin recursiva es la inclusin de .f~+l (Bn+I) en el
lado derecho, de manera que f~ (sn) esta definida en trminos de f~+l (sn+l).

8. Cuando se usa esta relacin recursiva, el procedimiento de solucin comienza al final


y se mueve hacia atrs etapa por etapa, encuentra cada vez la poltica ptima para
esa etapa, hasta que encuentra. la poltica ptima en la etapa inicial. Est poltica
ptima lleva de inmediato a una solucin ptima para el problema completo, a saber
xi para el estado inicial s 1 , despus x2 para el estado s 2 que resulta, luego x3 para el
estado s 3 que se obtiene, y as sucesivamente hasta xjy para el estado SN resultante.
Este movimiento hacia atrs se mostr en el problema de la diligencia, comenzado
en cada estado de las etapas respectivas 4, 3, 2 y l. Para todos los problemas de
programacin dinmica, se obtiene una tabla como la siguiente para cada etapa(n =
N,N-1, ... ,1)
Sn \Xn .f~(sn) x*n
.fn(sn, Xn)

2.3. Programacin dinmica determinstica


La programacin dinmica determinstica [3] se puede describir en un diagrama :

Etapa Etapa
n n+1
Xn
Estado: (sn) ---+ (sn+l)
contribucion Xn
Valor: .fn(Sn, Xn) .f~+l(sn+l)

29
En la etapa n el proceso esta en algn estado Sn. Al tomar la decisin Xn se mueve hacia
algn estado sn+l en la etapa n + l. La contribucin a la funcin objetivo de ese punto
en adelante se calcul como!~+ 1(Sn+ 1).
Una manera de clasificar los problemas de programacin dinmica determinstica es por
la forma de la funcin objetivo. Por ejemplo, el objetivo puede ser minimizar la suma
de las contribuciones de cada etapa individual ( como en el problema de diligencia), o
maximizar esa suma, o bien minimizar el producto de los trminos, etctera. En particular,
los estados Sn pueden estar representados por una variable discreta (como en el problema
de diligencia), o por una variable continua.
Se vern varios ejemplos para ilustrar esas posibilidades:
Problema de distribucin de brigadas mdicas a diferentes pases El consejo
mundial de salud se dedica a mejorar la atencin mdica en los pases de desarrollo.
Dispone de 5 brigadas mdicas que deben ser asignadas a tres pases con el fin de mejorar
el cuidado de salud, la educacin para la salud y los programas de capacitacin. El consejo
debe determinar cuantas brigadas asignar, a cada uno de estos pases para maximizar la
medida de eficiencia de las cinco brigadas.
La medida de desempeo se da en trminos de los aos de vida adicionales por persona
(para pas especfico, esta medida es igual al incremento en el promedio de vida esperado
en aitos, multiplicado por su poblacin).
En la tabla siguiente se dan las estimaciones de estos aos de vidas adicionales por persona
(en mltiplos de 1000) para cada pas y para cada asignacin posible de brigadas mdicas.
Cul C$ la asignacin que ma..ximi:r,a el desempeo?

Miles de aos personas de vidas adicionales.

Brigadas Pais
medicas 1 2 3
o o o o
1 45 20 50
2 70 45 70
3 90 75 80
4 105 110 100
5 120 150 130
Formulacin:
Este problema requiere que se tomen 3 decisiones interrelacionadas, brigadas que conviene
asignar a cada uno de los tres pases. Estos tres pases se pueden considerar como las 3
etapas en la formulacin de programacin dinmica. Las variables de decisin Xn son el
nmero de brigadas que se asigna a la etapa pas n.
La identificacin de un estado:
sn =nmero de brigadas mdicas todava disponibles para asignarse a los pases res-
tantes (n = 1,2,3). As en la etapa 1 cuando todava quedan por asignar brigadas a

30
los tres pases, s 1 = 5. Sin embargo en las etapas 2 o 3, Sn es 5 menos el nmero de
brigadas asignadas en las etapas anteriores, de manera que la secuencia de estados es:
S = 5, s2 = 5 - x 1 , s3 = s2 - x 2. Con el procedimiento de programacin dinmica que se

resuelve hacia atrs etapa por etapa , cuando se trabaja en la etapa 2 o 3, todava no se
han obtenido las asignaciones de las etapas anteriores. Por lo tanto, se deben considerar
todos los estados posibles al iniciar la etapa 2 o 3, a saber, sn =O, 1, 2, 3, 4, o 5.
El problema es encontrar la trayectoria del estado inicial 5 inicio de la etapa 1 al estado
final O de la etapa 3 que mmcimice la suma de los nmeros a lo largo de la ruta.
Para establecer el problema completo matemticamente, sea Pi(xi) la medida de desem-
peo obtenida si se asignan Xi brigadas mdicas al pas i, segn los datos de la tabla
anterior, entonces el objetivo es elegir XI, x 2 y x 3 para:

Maximizar I:~=l Pi(xi)


Sujeta a: L~=l Xi = 5.
Xi son enteros no negativos.

Calcular fn(sn, Xn) = Pn(xn) +maximizar I:r=n+l Pi(xi)


En donde el m.ximo se toma sobre Xn+l hasta x 3 tales que:
~=n Xi = sn, y los Xi son enteros no negativos, paran= 1, 2, 3 adems,
f~(sn) = maximOxn=0,1,2, ... ,snfn(Sn,Xn)
Por lo tanto:
fn(sn, Xn) = Pn(Xn) + J~+l (sn- Xn)
con !4 definido como cero. La estructura bsica para el problema del consejo Mundial de
la salud:
Etapa Etapa
n n+1
Xn
Estado: (sn) ---+ (sn -xn)

Pn(Xn)
Valor: fn(sn, Xn) J~+l (Sn - Xn)
= Pn(Xn) + ! 1:+1 (sn- Xn)
En consecuencia, la relacin recursiva que enlaza las funciones ;, !2, !3 para este proble-
ma es:
j~ (sn) = maximizarxn=O,l, ... ,sn {Pn(Xn) + f~+l (sn - Xn)}, n = 1, 2.
En el ca..:;;o de la ltima etapa: jj(s3) = maximizarxa=O,l, ... ,s3 P3(x3)
Procedimiento de solucin:
Comenzando con la ltima etapa n = 3, se observa que los valores de p 3 (x 3 ), dado en la
ltima columna de la tabla, los valores aumentan hacia abajo de la columna, entonces, si
se dispone de s3 brigadas mdicas para asignar al pas 3, el mximo de p3(x3) se logra de

31
manera automtica al asignar todas las 83 brigadas , as x3 = 83 y .f3(s3) = p 3 (s3), como
se puede ver en la tabla siguiente:

83 .f3 (s3) x*3


o o o
1 50 1
2 70 2
3 80 3
4 100 4
5 130 5

Ahora el proceso se mueve hacia atrs para comenzar con la penltima etapa (n = 2).
Para encontrar x2 se requiere calcular y comparar h(s 2 , x 2 ) para los distintos valores
posibles de x2 =O, 1, ... , s 2.
A continuacin se resumen los clculos en este caso para s2 = 2.
Frmula h(s2, x2) = P2(x2) + .f3(2- x2).
h(2, O) = P2(0) + .f3(2) =O+ 70 = 70.
h(2, 1) = P2(1) + .f3(1) = 20 +50= 70.
h(2, 2) = P2(2) + .f3(0) = 45 +O= 45.
Debido a que el objetivo es maximizar, x2 =O o 1 con .f2(2) = 70.
Continuando de una manera similar con los otros valores posibles de s 2 , se llega a la
siguiente tabla:
n=2:

82\ X2 o 1 2 3 4 5 .f2(s2) x2
o o o o
1 50 20 50 o
2 70 70 45 70 Oo1
3 80 90 95 75 95 2
4 lOO 100 115 125 110 125 3
5 130 120 125 145 160 150 160 4
En esta ltima etapa, el nico estado que debe considerar:=-e e::; el inicial, s 1 = 5, como se
describe en seguida:
Si se asigna x 1 brigadas mdicas al pas 1 se llega al estado 5 - X1 brigadas disponibles
en la etapa 2. Se resumen los clculos para cada valor posible de la variable de decisin:
Frmula: j 1 (5,x) = p 1 (x) + .f2(5- x 1 ).
f(5,0) = P(O) + f2(5) =O+ 160 = 160.
f(5, 1) = P 1 (1) + .f2(4) = 45 + 125 = 170.
f(5, 2) = P(2) + !2(3) = 70 + 95 = 165.
j 1 (5, 3) = P1 (3) + f2(2) = 90 + 70 = 160.
f(5,4) = P 1 (4) + .f2(1) = 105 +50= 155.

32
f(5, 5) = H(5) + !2(0) = 120 +o= 120.
Se muestran los clculos paJa XI = 1, 2, 3, 4 y 5; y se verifica que xr = 1 con fi(5) = 170.
s1 \ x2 o 1 2 3 4 5 ft(si) x*1
5 160 170 165 160 155 120 170 1

La solucin ptima que se obtiene es con xt = 1 lo que hace s 2 = 5 - 1 = 4, entonces


x2 = 3 lo que hace s3 = 4-3 = 1, por lo tanto x; =l. Como fi(5) = 170, esta asignacin
de (xi, x2, x;) = (1, 3, 1) brigadas mdicas a los tres pases conducir a un total estimado
de 170 000 aos de vidas adicionales. 0

2.3.1. Problema de distribucin de esfuerzo


En el problema anterior se muestra un problema de tipo de programacin dinmica
llamado problema de distribucin de esfuerzo [3]. En este grupo de problema existe una
sola dasc de recursos que debe ser asignadas a cierto nmero de actividades. El objetivo
es como distribuir el esfuerzo entre las actividades de la manera ms efectiva.
En el caso del consejo mundial de salud, el recurso de que se trata es el conjunto de
brigadas mdicas, y las tres actividades son los trabajos sobre el cuidado de la salud entre
los tres pases.
El problema de distribucin del esfuerzo incluye slo un recurso (una restriccin funcional),
mientras que programacin lineal puede manejar cientos o miles de recursos.

Formulacin
Los problemas de distribucin de esfuerzo incluye la asignacin de un recurso a cierto
nmero de actividades, la formulacin es la siguiente:
Etapa n=actividad n (n = 1, 2, ... ,N).
Xn = cantidad de recursos asignados en la etapa n.
Estado sn = cantidad de recursos disponibles para asignarse a las actividades restantes
(n,n+1, ... ,N).
Cuando el sistema inicia la etapa en el estado sn, la eleccin de Xn siempre da como
resultado que el siguiente estado en la etapa n + 1 sea sn+l = sn - Xn, veamos el siguiente
diagrama:
Etapan: n n+l

Estado : (sn) ---t ( Sn - Xn)


El siguiente ejemplo, la variable de estado Bn en la etapa n es una variable continua y
puede tomar cualquier valor dentro de ciertos intervalos. Como sn tiene infinitos valores,
ya no es posible considerar cada uno de sus valores en forma individual. Ahora la solucin
para f~ (sn) y el valor de x~ deben expresarse como funcin es de Sn

33
Ejemplo: Programacin de nivel de empleados

A continuacin se dan las estimaciones sobre la mano de obra requerida durante las
cuatro temporadas del ao para un futuro cercano:

Temporada Primavera Verano Otoo Invierno Primavera


Requerimientos 255 220 240 200 255
No se permitir que el nivel empleo baje de estos niveles. Cualquier contratacin ms
alta se desperdicia con un costo aproximado de 2000 soles por persona por temporada.
Se estima que los costos de contratacin y despido sou tales que el costo de cambiar el
nivel de empleados de una temporada a la siguiente es igual a 200 soles multiplicado por
el cuadrado de la diferencia de nivel.

Formulacin:

Si el anlisis se basa en los datos disponibles, los niveles de empleo para cada temporada
no debe ser mayor que 255, que es el nivel ms alto de empleo en una temporada. El
problema se reduce a encontrar los niveles de empleo para las otras temporadas.
Las etapas son las temporadas, existe un nmero indefinido de etapas: sin embargo cada
ao comiemm con un ciclo idntico, y como se conoce el nivel de empleados pRra la
primavera, es factible tomar en cuenta slo un ciclo de cuatro temporadas que termine en
primavera.
Etapal =verano.
Etapa2 =otoo.
Etapa3 =invierno.
Etapa4 =primavera.
Xn nivel de empleados para la etapa n(x4 = 255).
Es necesario que la temporada de primavera sea la ltima etapa porque debe conocerse o
poder obtenerse el valor ptimo de la variable de decisin para cada estado en esta ltima
etapa.
Sea: r n =mano de obra nnirna requerida en la etapa n (estos requerimiento se dieron en
la tabla: r 1 = 220, r2 = 240, r 3 = 200 y r 4 = 255).
Los nicos valores factibles para Xn son: rn ::; Xn ::; 255.
Para los costos: Costo en la etapa n := 200(xn- Xn- 1 ) 2 + 2000(xn- rn)
Observar que el costo depende de los empleados de la etapa anterior(xn_I).

Datos para el problema del local Job Shop.

34
n rn Xn factible Sn = Xn-1 posibles Costo
1 r1 = 220 (220 :::; X :::; 255) S= 255 200(x 1 - 255)2 + 2000(x 1 - 220)

2 r2 = 240 (240 :::; X2 :::; 255) (220 :::; S2 :::; 255) 200(x 2 - x 1 )2 + 2000(x2 - 240)
3 r3 = 200 (200 :::; X3 :::; 255) (240 :::; S3 :::; 255) 200(x3- x2) 2 + 2000(x3- 200)
4 r4 = 255 (x4 = 255) 200 :::; S4 :::; 255 200(255 - x3)2
Estado Sn = Xn-1 Cuando n = 1, S= X0 = X4 = 255.
El objetivo de este problema es elegir {x1, x 2 , x 3}(con Xo = x 4 = 255) tales que:

minimizar L:f=l (200(xi - Xi-1)2 + 2000(xi- ri)).


Sujeta a: 1i :::; xi :::; 255 ; i = 1, 2, 3, 4.

Entonces en la etapa n en adelante (n = 1, 2, 3, 4), debido a que sn = Xn_ 1 , se tiene:

4
Ininimizarr.:S:xt:S:255 L [200(xi- Xi-1) 2 + 2000(xi- ri)].
i=n+l
En donde esta suma es igual a cero cuando n = 4 (porque no tiene trminm;). Tamhin:
f~(sn) = minimizarrnsxn955fn(Xn, sn), entonces:
fn(sn, Xn) = 200(Xn- Sn) 2 + 2000(Xn- rn) + ~~+1 (xn)
Como !5 es definido como cero, pues los costos despus de la etapa 4 son irrelevantes al
anlisis. Estructura bsica para el problema:

Etapa Etapa
n n+1

Estado: (sn) ---t (xn)


valor: fn(Xn, Sn) = 200(Xn- Sn? + 2000(Xn- rn) +~~+1 (Xn)
En consecuencia, la relacin recursiva que da el valor de las funciones f~ es:
f~(sn) = minimizarrn:S:xn:S:255{200(Xn- sn? + 2000(xn- rn) + f~+l(xn)}.
La programacin rlinmica utili/m esta relacin para identificar sucesivamente estas fun-
ciones: f4(s4), f3(s3), f2(s2), fi(255) y las Xn correspondiente que minimiza.

Procedimiento de Solucin.

Etapa 4: al comenzar la ltima etapa n = 4 1 se sabe que x = 255, de manera que los
resultados son:
84 f4(s4) x*4
2
200 ::; S4 ::; 255 200(255 - s 4 ) 255
Etapa3: para el problema que consiste nada ms de las ltimas dos etapas, la relacin
recursiva se reduce a:
f3(s3) = minimizar2oo:s;x3 955{200(x3- s3)2 + 2000(x3- 200) + JJ(x3)}

35
!3(83) = minimizar2oo:s;xa:955{200(x3- 83) 2 + 2000(x3- 200) + 200(255- x3)2}
En donde los valores de 8 3 son 240 ~ 8 3 ~ 255.
Se quiere obtener el valor de x 3 que minimice, en trminos de 83, considerando que 83
tiene un valor fijo.
8
13~::' 83 ) = 400(x3 - 83) + 2000 - 400(255- x3).
8
/3~:~' 83 ) = 400(2x3 - 83 - 250) = O.
x* _ 83250
3- 2
Como la segunda derivada es positiva, y como esta solucin xj se encuentra en el intervalo
factible de x3(200 ~ x 3 ~ 255), para todos los valores posibles de 83(240 ~ 8 3 ~ 255), por
lo tanto xj es el mnimo.
!3(83) = !3(83,x3) = 200( 83 ~250 - 83)2 + 20ooe3-+;250 - 200) + 200(255- 83 -+;250 ) 2.
Al reducir algebraicamente esta expresin, se obtiene la siguiente tabla:

83 !3(83) x3
240 ~ 83 ~ 255 50(250- 83)2 + 50(260- 83)2 + 1000(83 - 150) 8a250
2
Etapa 2: Para n = 2:
!2(s2, x2) = 200(x2- s2) 2 + 2000(x2- r2) + f3(x2)
h(s 2, x 2) = 200(x2 - 82)2 + 2000(x2 - r2) +50(250- x2) 2+ 50(260- x 2)2+ 1000(x2 -150).
Los valores posibles de 82 son 220 ~ 82 ~ 255, y la regin factible para x2 es 240 ~ x2 ~
255. El problema es encontrar el valor de x 2 que de el mnimo en ese intervalo, de modo
que:
f2(s2) = minimizar240:s;x2 :::;255{!2(82, x2)}.
8
h1~t 2 ) = 200(2x2 - 2s 2 + 10- 255 + x2 + 5).
8
h(s 2 ,x 2 ) = 200(3x2 - 282 - 240) =O
8x2
Se llega a x = 240 282 .
2 !
La segunda derivada parcial es mayor que cero.
Para 82 fijo, si 82 est entre 240 ~ 82 ~ 255, entonces 240 ~ x 2 ~ 255, de manera que
x 2 = 240 j 252 e.s el valor mnimo fijado. Para 200 ~ s 2 < 240, con 240 ~ x2 ~ 255 se tiene
que 8h~:~x 2 ) = 200(3x2 - 28 2 - 240) > O, de manera que x 2 = 240 es el valor mnimo
deseado.

82 !2(82) x2
220 ~ 82 ~ 240 200(240 - 82) 2 + 1500 240
240 ~ 82 ~ 255 29g ((240 - s 2)2 + (255 - s2)2 + 240282
3
(270 - 82)2 + 2000( 82 - 195)
Etapa 1:
JI (8 1, X) = 200(x - 81) 2 + 2000(x - 1) + f2(x).
Como r 1 = 220, la regin factible es 220 ~ x 1 ~ 255. La expresin es diferente para los

36
dos intervalos 220 ~ x1 ~ 240 y 240 ~ x1 ~ 255. Por lo tanto:

200(x1 - s 1) 2 220) + 200(240- x 1 ) 2 + 115000,


+ 2000(x 1 -
si 220 ~ x 1 ~ 240
200(x 1 - s 1 ) + 2000(x1 - 220) + 2~ 0 [(240- x 1 ) 2 + (255- xi) 2 +
2

(270- x 1? + 2000(x 1 - 195), si 240 ~ x 1 ~ 255.

Si 220 ~ x 1 ~ 240, teniendo en cuenta que s 1 = 255:


o[l1: t1 1
) s
= 400(X- 1 ) + 2000- 400(240- x 1 ) = 400(2x 1 - S - 235)
ofl(s 1 ,x 1 )
OXl
= 800(x 1 - 245) < O
para 220 ~ x 1 ~ 240, entonces x 1 = 240, valor que minimiza f(s 1 ,x 1 ).
Ahora para 240 ~ x 1 ~ 255:
o[1~:1tl) = 400(x 1 - s1 +2000- 4~0 ((240- x 1 )+
(255- X)+ (270- X))+ 2000.
8fl(sl,xl) = 400 (4x - 3s - 225) =O.
OXl 3 1 1
- 3s+225
X1- 4
La segunda derivada parcial es mayor que cero, como s 1 = 255 entonces x 1 = 247,5, en
ese valor alcanza su mnimo.
Por lo tanto x 1 = 247,5 minimiza a f(s 1 , x 1 ) en 220 ~ x 1 ~ 255, ya que f(s 1 , 240) >
f(s 1 , 247,5), por lo tanto fi(255) = f(255, 247,5) = 185000.
Estos se resume en una tabla:

S fi(s) xi
255 18500 247,5

As la solucin ptima se obtiene xi = 247,5, x2 = 245, x3 = 247,5 y x4 = 255, con un


costo total estimado por ciclo de 185000 soles. 0

2.3.2. Problema de la Wyndor Glass Company [3]


Considerar el siguiente problema de programacin lineal:

Maximizar z = 3x1 + 5x2 .


Sujeta a: x 1 ~ 4.
2x2 ~ 12.
3x 1 + 2x 2 ~ 18.
X 1 X2 ~ 0.

Formulacin.

Este problema requiere tomar dos decisiones interrelacionadas, a saber, el nivel de


actividad 1, denotado por x 1 ; y el nivel de actividad 2, denotado por x 2 Estas dos activi-
dade~, ~e puede interpretar como las 2 etap~, en el modelo de programacin lineal. Sea

37
la etapa n =la actividad n, as Xn es la variable de decisin en la etapa n.
La cantidad de holgura que queda en las restricciones funcionales y el lado derecho de
las restricciones (4, 12 y 18), se interpreta como la cantidad total disponible de recursos,
entonces el estado 8n se puede definir como la cantidad de los recursos todava disponibles
para ser asignados a las actividades restantes. Observar que ahora se tienen 3 tipos de
recursos en lugar de uno solo. Entonces:
8n = (RI: R2, R3).
8 = (4, 12, 18).
82 = (4- x 1 , 12,18- 3x 1).
Este valor de 8 2 es cuando se conoce el valor de x 1 ; ahora cuando se inicia a partir de la
etapa 2, no se conoce el valor de x 1 , por lo tanto se usa 8 2 = (R, R 2, R 3).
Este problema tiene 3 variables de estado, es decir, un vector de estado con tres compo-
nentes, en lugar de una en cada etapa. Cada una de las variables de estado es continua.
El problema es lo suficientemente pequeo para resolverlo sin dificultad: definamos las
siguientes funciones:
h(R, R 2, R3, x 2) := contribucin de la actividad 2 a z si el sistema se encuentra en el
estado ( R 11 R 2 , R 3 ): al iniciar la etapa 2 la decisin es x 2 , explcitamente:
h(R, R2, R3, x2) = 5x2.
f 1 ( 4, 12, 18, xi) := contribucin de la actividad 1 y 2 a z si el sistema se encuentra en el
estado (4, 12, 18) al iniciar la etapa 1, la decisin inmediata es x 1 luego se toma la decisin
ptima en x 2 , explcitamente:

f(4, 12, 18,x 1 ) = 3x 1+ maximizar {5x2}


sujeta a: 2x2 ~ 12.
2x 2 ~ 18- 3x 1
X2;:::: 0.

f~(R, R2, R3) = maximox,.fn(R, R2, R3, Xn)


Donde este mximo se toma sobre los valores factibles de Xn. Enumeremos antes algunos
detalles, para resolver este problema de programacin dinmica:

f2(R, R2, R3) = Maximizar {5x2}


sujeta a: 2x2 ~ R2.
l.
2x2 ~ R3.
X2;:::: O.

2. ft(4, 12, 18,x1 ) = 3x + !2(4- X1, 12,18- 3x).


;(4, 12, 18) = Maximizar {3x 1 + !2(4- x 1 , 12,18- 3x 1 )}.
sujeta a: x 1 ~ 4.
3.
3X ~ 18.
X;:::: 0.

38
Detalle 1 se usar para resolver el problema de dos etapas. Detalle 2 muestra la estructura
billiica de programacin din:rnka para e~te problema. Detalle 3 proporciona una relacin
recursiva entre Ji y J2 que se usar para resolver el problema de la etapa l.

Procedimiento de solucin

Para resolver la etapa 2, indica que x2 debe ~er el valor ms grande de x 2 que satisface
simultneamente 2x2 :s; R2 , 2x2 :s; R 3 y x 2 ~ O. Si suponemos que R 2, R 3 ~ O, para
que existan soluciones factibles, este valor ms grande e..c;; el mas pequeo de y ., . Por lf
consiguiente:
(R1,R2,R3) J:j(R, R2, R3) x*2
R2,R3 ~O 5minimo{ fu & } mnimo{ fu & }
2 ' 2 2 ' 2
Etapa 1: Reemplazamos (R1, R 2, R3 ) = (4- x 1, 12,18- 3x1), de manera que:
J2 (4 - x1, 12, 18 - 3x) = 5minimoei, 1823x1 }; luego:
Ji( 4, 12, 18) = maximizar {3x 1 + 5minimo{ ~, IS-23x 1 } } .
X :s; 4.
X~ O.
En el intervalo factible O :s; x 1 :s; 4,
. . {6 , 18- 3x 1 } = { 6 , 0 :s; X :s; 2
miilliUO
2 9 - ~X , 2 :s; X :s; 4
de manera que:
Maximizaro::;x 1 $4 {3x 1 + 5minimo{6, 1823x1 } } =

maximizaro::;x19{3x 1 + 30} , O :s; x 1 :s; 2


{ maximizar2::;x 1 ::;4{ 45- ~} , 2 :s; X :s; 4

La funcin adquiere su mximo en xj = 2, y que este mximo z es 36, como se expresa


en la siguiente tabla:

(R 1,R2,R3) Ji(R1,R2,R3) xj
(4,12,18) 36 2
Como el valor de xi = 2, en el ptimo R 1 = 4 - 2, R 2 = 12 y R3 = 18 - 3(2) = 12, para
la etapa 2, se tiene que x2 = mnimo{~, ., } = mnimo{ 6, 6} = 6. El valor ptimo de z
e~ 3, vcarno~ la c~tructura b~ka de ~te problema:

Etapa1 Etapa2
X

Estado : (4, 12, 18) ~ (4- x 1, 12,18- 3x 1 )


Valor: f(4, 12, 18, x 1) J2(4- x 1, 12,18- 3x1)
o
39
Captulo 3

Flujo en redes
-
El objetivo de esta captulo es una simplificacin del mtodo simplex de modo que sea
posible aplicarlo a la red sin necesidad de utilizar la tabla del simplex.

3.1. Formulacin del problema


Consideremos una red dirigida o digrfica G, que consta de un conjunto finito de nodos
N= {1, ... ,m} y de 1m conjunto finito de arcos~= {(i,j), ... , (s, t)} que une par de nodos
diferentes en N, se dice que el arco (i, j) es incidente en los nodos i y j y est dirigida del
nodo i al nodo j, supondrmos que la red tiene m nodos y n arcos.
A cada nodo i en G se le asocia un nmero bi, que representa la oferta neta disponible de
un artculo (bi >O) o la demanda neta disponible de un artculo (bi < 0), si bi =O ningn
artculo est disponible en el nodo i y ningn artculo se requiere. Se supondr en la red
que la oferta total es igual a la demanda total, es decir L:~ 1 bi = O.
El problema del flujo de costo mnimo en una red puede plantearse explcitamente como
sigue :

Minimi7.ar .E~ 1 .Ej!: 1 CijXij.


Sujeta a: .Ej!: 1 Xij - .Ek=I Xki = bi ;i = 1, ... ,m.
Xij 2': 0 ;i,j=1, ... ,m.
Donde hay que entender que la sumatoria y desigualdades es tomado sobre la existencia
de arcos. El problema consiste en embarcar la oferta disponible atravs de la red para
satisfacer la demanda a un costo mnimo totaL En el caso de que .E~ 1 bi > O, entonces se
agrega un nodo artificial m + 1 con demanda neta disponible (bm+I = - .E~ 1 bi < O), y
se agregan arcos con costo cero de cada nodo que tiene la oferta neta disponible (bi > O)
al nuevo nodo m + 1 y adem.s se tiene una nueva ecuacin respecto al nodo m + 1 con
bm+l = -.E~Ibi.
Considere la digrfica G(N, ~) donde N representa el conjunto de nodos y~ representa el
conjunto de arcos. Para el arco dirigido (i,j)t~, el nodo i se denomina su nodo-de y el
nodo j, l:lU nodo-a. Vearnol:l t.tlgunas definiciones que !:le utilizarn en este captulo.

40
Definicin 3.1.1 Trayectoria, una trayectoria P del nodo i 0 al nodo ip, es una sucesin
de arcos
P = {(i0 , i), (i, i2), ... , (ip-1, ip)}
en la cual el nodo-de de cada arco es el mismo que el nodo-a de cada arco precedente en
la sucesin y todos los nodos i 0 , i1, ... , ip son distintos.

Definicin 3.1.2 Cadena, una cadena es una estructura semejante a una trayectoria,
con la excepcin de que no todos los arcos estn dirigidos hacia el nodo ip.

Definicin 3.1.3 Circuito, un circuito es una tmyectmia de algn nvdv 0 a algn nudv
ip ms el arco (ip, i 0 ).

Definicin 3.1.4 Ciclo, un ciclo es una cadena de algn nodo ia a algn nodo p ms
el arco (ip, ia) o el arco (ia, ip)

Tener en cuenta:
trayectoria ==> cadena.
Circuito ==> ciclo.

Definicin 3.1.5 Conexa, la digrfica subyacente G del problema de flujo de costo mni-
mo en una red es conexa, si existe una cadena entre cualquier par de nodos en G.

Definicin 3.1.6 Una Subdigrfica G' 0( )R') de una digrfica de G(N, ~), es
aquella que satisface N'~ N y )R' ~ )R, en el entendimiento que si (i,j)E)R' entonces tanto
i como j pertenecen a N'; si G' =1 G se dice que G' es una subdigrfica propia de G; si
N' =N, entonces se dice que G' es una subdigrfica de expansin de G.

Definicin 3.1.7 Componente de una digrfica G, es una subdigTjica conexa de


G, que no es subdigrfica propia de otra digrfica conexa.

Definicin 3.1.8 rbol, es una digrfica conexa sin ciclos.

Definicin 3.1.9 rbol de expansin, es una subdigrfica con respecto a alguna digrfi-
ca subyacente G, adems es un rbol que incluye a todos y cada uno de los nodos de la
digrfica G, es decir, se trata de una subdigrfica conexa de expansin sin ciclos.

Tener en cuenta:

una digrfica : rbol ==> conexidad 1\ rbol de expansin.

Definicin 3.1.10 Bosque, es una digrfica sin ciclos esto es tiene un rbol (subdigrfi-
ca), como cada una de sus componentes.

OL::;ervadn: no confundir componente con ::;uLdigrfica conexa, ::;on di::;tiutos.

41
Definicin 3.1.11 Grado de un nodo, es el nmero de arcos que inciden en este nodo.

Definicin 3.1.12 Grado dentro del nodo i, es el nmero de arcos que tiene a i
como su nodo-a.

Definicin 3.1.13 Grado fuera del nodo i, es el nmero de arcos que tiene a i como
su nodo-d.

Una expresin formal matemtica del grado de un nodo es:

(grado- dentrodei) + (grando- fueradei) = gradodei.


Nodo terminal, es aquel nodo que tiene corno grado O l.

Proposicin 3.1.1 Sea T un rbol con m(2 2) nodos y sea (i,j) un arco de T entonces
al eliminar el arco (i,j) de T, dejando los nodos i y j en T, se descompone T en dos
rboles T1 y T2.

Prueba [1] Al desconectar (i,j) deben obtenerse r 2 2 componentes, siendo cada una de
estas componentes un rbol, al ser componente (conexa por definicin) y si tuviera un ciclo
, al colocar (i, j) debe tenerse un ciclo en T, lo que es una contradiccin, cada componente
es un rhol; al volver conectar (i, j) no es posible conectar mas de dos componentes(> 2),
y en virtud de que Tes conexo, entonces se debe tener que 1 = 2. 0

Proposicin 3.1.2 Sea T un rbol propia, entonces T tiene por lo menos dos nodos
terminales.

Prueba [1] Esto es cierto para un rbol con dos nodos, supongamos que esto eR cierto para
un rbol con m- 1 nodos, se demostrar que esto es cierto para un rbol con m(m 2 3)
nodos, se elimina algn arco (i,j) de T, creando dos rboles T1 y T2 , cada uno con no
ms de m - 1 nodos, veamos por casos:
-Si T1 o T2 tienen solamente un nodo, supongse que T1 tenga solo un nodo, entonces T2
tiene m- 1 nodos, por induccin se tiene a lo menos dos nodos terminales en T2 , entonces
al conectar (i, j) es posible perder cuando mucho uno de tal nodos terminales del rbol
T2 , por lo tanto, T tiene a lo menos dos nodos terminales.
-En caso contrario si T1 como T2 tienen por lo menos dos nodos, entonces tienen en total
por lo menos cuatro nodo terminales, y volver a colocar (i, j) puede dar la prdida de cuan-
do mucho dos nodos terminales, por lo tanto, T tiene a lo menos dos nodos terminales. 0

Proposicin 3.1.3 Un rbol T con m nodos tiene (m- 1) arcos.

Prueba [1] Esto es evidentemente cierto para m= 1 2. Por induccin supongamos que
esta propiedad se cumple para un rbol con m - 1 nodos, consideremos un rbol con m
nodos con m 2 3, por la proposicin anterior existe un nodo terminal i, si se desconecta

42
el arco incidente en el nodo terminal, se obtienen dos rboles T1 y T2 , en donde T1 tiene
solamente un nodo (nodo i), y T2 tiene m- 1 nodos, por hiptesis de induccin tiene
m- 2 arcos, entonces T tiene (m- 2) + 1 =m- 1 arcos. 0

Proposicin 3.1.4 Car-acterizacin equi'ualentes de un Tbol T:

1. T es conexa y no tiene ciclos.

2. T es conexa y tiene (m - 1) arcos.

3. T contiene (m- 1) arcos y ningn ciclo.

4- Tes conexa y al desconectar cualquier arco de T se obtienen dos componentes.


5. T contiene una nica cadena que conecta cada par de nodos.

Prueba [1]
(1) ====> (2) proposicin 3.1.3.
(2) ====> (3) si contiene un ciclo, eliminamos un arco del ciclo y preservamos la conexidad,
recursivamente eliminamos arcos de los ciclos que se han formando, y seguimos preservan-
do la conexidad, luu;ta obtener una digrafica conexa sin ciclos, obtenemos un rbol con
m nodos, por la proposicin 3.1.3 debe tener m- 1 arcos, lo cual se contradice ya que
eliminamos arcos, de los m - 1 arcos que tenamos de hiptesis.
(3) ====> (4) Si T no fuera conexa, entonces T s e descompone en componentes conexas,
que al unir dos componentes traves de un arco, es posible reducir a una componente sin
obtener ciclos, ya que si hubiera dicho ciclo, las componentes antes de agregar el arco es-
taran conectadas por un arco, y dado que dichos nodos del arco estn conectados en una
sola direccin, ya no se tendra dos componentes, seguimos de esta manera y obtenemos
un digrfica conexa sin ciclos, pero que tiene ms de m - 1 arcos, lo cual contradice la
proposicin 3.1.3, por lo tanto se demuestra que T es conexa, por lo tanto, es un rbol
por no tener ningn ciclo, y de la proposicin 3.1.1, desconectamos un arco del rbol T y
se obtienen dos componentes.
(4) ====> (5)si hay un ciclo, por lo mismo hecho en (2) implica (3) se elimina un arco, y
prf'A<~ervamos la conexidad, la cual es contmdictorio con la hiptesis, de que se obtienen
dos componentes. La existencia de que dos nodos cualesquiera estn conectadas por una
cadena, es por ser conexa. Supongamos que existen dos cadenas diferentes que conectan
un par de nodos, sean i y j dichos nodos diferentes, existe un arco 1 que est en una
cadena y no en la otra cadena, entonces al eliminar dicho arco, no se van obtener dos
componentes, esto es, sean dos nodos cualesquiera, esos dos nodos estn conectados por
una cadena en la digrfica conexa original, si ningn arco de la cadena es igual al arco
1, entonces esto es una cadena para la digrfka nueva, pero Ri dicha cadena contiene el
arco 1, entonces se pueden formar otra cadena, con los arcos restantes (menos 1) de las

43
dos cadenas que conectaban i y j; lo que se contradice con la hiptesis de obtener dos
mrnponente~:;, por lo tanto i y j estn <;onedadas por uua ~:;ola <;adena.

(5) ===? (1) De la hiptesis Tes cone.xa, supongamos que hay ciclos, entonces van a existir
un par de nodos que se conectan por cadenas diferentes, lo cual es una contradiccin. 0

Condicin de conservacin [1], los flujos de los arcos que se crean en las fuentes
(al nodo con bi > p), y llegan hacia los destinos (al nodo con bi <O); se estipula que para
cada nodo i, la suma total de flujos de lo;; arcos que salen en el nodo i debe ser igual a la
suma total de flujos de los arcos que entran al nodo i ms la cantidad bi.

3.2. Propiedades de la matriz de restricciones


Consideremos la matriz A de coefir.ienteR, asociada con el conjunto de rcRtriccionc.s
del problema de flujo de costo mnimo, la matriz A tiene un rengln por cada nodo de la
red, y una columna por cada arco en la red, cada columna de A contiene dos coeficientes
distintos de ceros que son +1 y -1, si el arco fuese (i, j) esto contiene un +1 en el rengln
i y un -1 en el rengln j.
Cada columna de A, respecto al arco (i,j) se denota por aij = ei- ej (ei, e{ son los
vectores unitarios en Rm con un elemento uno en la posicin i y j respectivamente y los
restantes elementos ceros.).
A la matriz A se le denomina matriz nodo-arco incidencia de la digrfica del problema de
flujo de costo mnimo.

Proposicin 3.2.1 A es una matriz de rango m- 1 (Se supone que A es una matriz
nodo-arco incidencia de una digrfica. conexa.}.

Prueba (Ver [1] p.407- 408) No puede ser de rango m, esto es si tomamos m columnas
cualesquiera, cada columna tiene solo dos elementos distinto de cero, el 1 y -1; si suma-
mos los m renglones se va obtener el vector cero en Rm, esto nos dice que los renglones son
linealmente dependientes, por lo tanto no tendra rango m la matriz A; al eliminar arcos
presentes en los ciclos de la digrfica conexa G del problema de flujo de costo mnimo
es posible demostrar la existencia de un rbol de expansin. Sea T cualquier rbol de
expansin en la red G, T consta de m nodos con m-1 arcos que no forman un ciclo, dado
que m ~ 2, entonces T tiene por lo menos un nodo terminal k, consideramos la submatriz
Arde A de dimensiones m x m- 1 correspondiente al rbol de expansin T, el k-simo
rengln de Ar contiene un slo elemento distinto de cero, se permutan los renglones y
columnas de modo que este elemento distinto de cero se encuentre en el ltimo rengln
y en la ltima. columna, adem..<; los elementos restantes en el ltimo rengln son ceros,
si eliminamos el ltimo rengln de Ar(matriz permutada) y la ltima columna de Ar se
obtiene la submatriz Ar' de dimensiones m - 1 x m - 2, de manera que esta submatriz
representado como una digrfica T se obtiene eliminando el nodo k y el arco incidente

44
sobre el nodo k, y observar que T' tambin es un rbol, y debe contener por lo menos
un nodo terminal, el rengln en Ay' correspondiente a este nodo terminal, contiene un
slo elemento distinto de cero, y podemos permutar Ar de tal manera que la penltima
colunma y el penltimo rengln contenga a este elemento distinto de cero, y as sucesiva-
mente, esto es posible continuar m :- 1 veces, se obtiene una matriz Ar, que al eliminar
~1 primer rengln de Ar se obtiene una matriz triangular inferior (m - 1) x (m - 1) cuyos
elementos de la diagonal son distintos de cero, por lo que esta matriz es no singular, as el
rango de A es m - Lo
Observacin: En la demostracin anterior la matriz correspondiente al rbol de expan-
sin que tiene dimensiones m x m -1 denotemos por B dicha matriz, si a dicha matriz le
agregamos una columna ms, un vector unitruio ei en Rm, donde en la i - posicin tiene
un elemento 1 y los elementos restantes son ceros, formamos una matriz e= [B; ei] esta
matriz tiene rango m, en efecto, la matriz e de dimensiones m x m, sea el sistema:

x = (u,v)E.Rm-I x R: ex= O{:} [B;ei]x =O{:} Bu+ eiv =O


El sistema Bu + eiv = O tiene m ecuaciones lineales, donde cada columna de la matriz
B tiene dos elementos distintos de cero -1 y +1, al sumar dichas m sistemas lineales,
se eliminan la coordenadas de u, y slo queda la coordenada v, pero la sumatoria de las
ecuaciones del lado derecho es igual a cero entonces v = O, quedara resolver el sistema:

Bu=O

Pero como B es de rango m- 1, se tiene que u = O, entonces se tiene que e es un matriz


inversible. 0

3.3. Variable artificial


La introduccin de una variable artificial Xm (valor real) correspondiente al nodo
m (aunque es posible elegir cualquier otro nodo por la observacin dada en la seccin
anterior), conduce a la nueva matriz de restricciones [A; em] (em es un vector unitario
en R:'1. con lillO en la m-posicin y los elementos restantes son ceros), no es necesario
penalizar con un costo Cm a la variable artificial, desde que la variable artificial para
cualquier solucin factible del problema de flujo de costo mnimo debe ser cero (xm = 0),
en efecto como cada columna de A contiene -1 y +1, para cada arco (i,j) en el rengln i
aparece 1 y en el rengln j aparece -1, en su respectiva columna; el trmino Xij cuando
se suman las m ecuaciones lineales del sistema [A; em]x = b (x = {xij}(i,j)dR y b = {bihd~)
se va eliminar, desde que aparecen Xij y -Xij en la suma entonces como la ~bi = O, se
obtiene que la variable artificial Xm = ~bi =O.
El arco con un slo extremo se denomina arco raz, si se hace ms flexible la definicin se
considera como un arco que parte del nodo m y termina en el espacio, el nodo asociado
a m ::;e denomina nodo raz.

45
Definicin 3.3.1 Sea una matriz [A; em] de nodo-arco incidencia, una submatriz B(m x
m) de [A; em] e~ definido base del pmblema de jlujo de r-edes si es de rango m.

Teorema 3.3.1 Considere un problema de flujo de costo mnimo en una red definido
sobre una digrfica conexa G con un arco raz. Entonces B es una matriz base del problema
si y solo si es la matriz del nodo-arw incidencia de un r-bol de expansin con raz G.

Prueba (Ver [1] p.410) Se demostr que la matriz que representa un rbol de expansin
junto a la variable artificial es una base de la matriz A. Veamos que cualquier base de
[A; em] C1:! una matriz nodo-arco incidencia de uua rbol de expansin con raz, 1:lea B una
matriz m x m base de [A; em] y sea Gs la digrfica cuya matriz nodo-arco incidencia
es B, dado que la columna artificial debe formar parte de toda base y como B es una
matriz m x m, es claro que la digr.fir.a G8 tiene m - 1 arcos y nn arco ra:1;, veamos por
ltimo que Gs no tiene ningn ciclo, supongamos que G8 contiene un ciclo, elijamos un
arco (i, j) del ciclo, y oriente ste ciclo en direccin del arco (i, j), entonces para cada
columna B asociada con un arco en el ciclo, asigne un coeficiente de +1 si el arco est en
la direGn del arGo (i, j), -1 en la direccin contraria y O si el arco no est en el cido, al
aplicar estos coeficientes a las columnas respectivas en B se encuentra que la suma finita
ponderada de estas columnas es el vector cero.

As las columna:; de B no pueden ser linealmente independientes, esta contradiccin de-


muestra que G B no tiene ciclos. Concluimos que G B tiene m nodos y m - 1 arcos sin
ciclos, entonces GB es un rbol. o

Teorema 3.3.2 Sea la matriz A de nodo-arco incidencia, el determinante de toda sub-


matriz cuadrada de A es +1,-1 O.

Prueba (Ver [1] p.411) El determinante de todo submatriz de orden 1 x 1 es +1, -1


o O, supongamos que esta propiedad es cierta para toda submatriz cuadrada de orden
(k- 1) x (k- 1), sea Ak una submatriz k x k de A, observar que cada columna de Ak
est constituido por ceros o contiene un elemento distinto del cero que es +1 o -1, o
bien exactamente dos elementos distintos de cero a saber que es +1 y -1; primer caso
si Ak tiene una columna formada slo por ceros, entonces det(Ak) = O, segundo caso si
una columna de Ak contiene un slo elemento distinto de cero, entonces al desarrollar
el determinante Ak por los menores de tal columna se obtiene det(Ak) = det(Ak-I) o
det(Ak) = -det(Ak-d y aplicamos hiptesis inductiva a la matriz Ak-l, por ltimo caso
supongamos que todas las columnas de Ak deben contener un +1 y un -1, ya que si no
lo tuviera aplicamos los dos casos anteriores, dado que la suma de los renglones de Ak es
cero, entonces el det(Ak) = O.o

46
La demostracin anterior sigue siendo vlida an si se agregan columnas de vectores
unitarios en Rm doude tiene slo un elemento uno y los restantes elementos son ceros
a A: estas columnas pueden corresponder a variables artificiales; para cualquier base B
de [A;em] se tiene que det(B) = -1 o det(B) = 1, y adems la matriz inversa B- 1
est tambin integrada por valores -1, + 1 o O; la columna actualizada Yii de la tabla del
simplex en cualquier representacin cannica de una solucin bsica factible est com-
puesta de +1's,-1's o O's: a fin de ver lo anterior se observa que Yii esta dada por el
sistema Byii = aij, por lo tanto el k - simo elemento Yiik de Yij esta dada por la regla
de Cramer como:
det(Bk)
Yijk = det(B) .
en donde Bk se obtiene de B al sustituir la k columna por aij, as Bk es una submatriz
cuadrada de A, entonces det(Bk) = +1, -1 o O, dado que det(B) = +1 o -1, entonces se
tiene que Yijk = +1, -1 o O, por lo tanto cualquier columna aij puede obtenerse sumando
o restando columnas bsicas.
Dado que la columna artificial nunca aparece en la representacin de cualquier otra co-
lumna ( como combinacin de las otra<.; columnas) y como la variable artifidal siempre
permanece bsica en el valor cero, desde que la columna artificial siempre aparece en
cualquier base: entonces es posible cualquier valor para el coeficiente de costo asociado,
por ejemplo Ca = O.
Sea la subdigrfiea GB correspondiente a un rbol de expansin eon raz , las eolumnas de
B se les denomina columnas bsicas y las restantes columnas de [A; em] que no contienen
a las columnas de B se les denomina columnas no bsicas: igualmente los arcos de G B se
les denomina arcos hsicoR y los restantes arcos de G que no eRtn en G B son arcos no
bsicos respecto a B.

3.4. Representacin de una columna no bsica en


trminos de las columnas bsicas.
Consideremos la subdigrfica GB correspondiente a un rbol de expansin con raz y
elija cualquier arco no bsico (p, q) de G que no est en Gn, por ser Gn un rbol existe una
nka cadena que une los nodos p y q, y junto con el arco no bsico (p, q) constituyen un
ciclo, si tenemos los arcos que conforman el ciclo {(p,j), (k,j), (k, l), (l, s) ... (q, t)} en Gn
y el arco no bsico (p, q), para obtener una direccin de dicho ciclo, se hace lo siguiente:
-Se proporciona uua direedn paralela cons;tente con el arco no bsico (p, q), un arco
bsico (correspondiente a la columna bsica) en el ciclo paralela a la orientacin recibe un
coeficiente de -1 y un arco bsico en el ciclo opuesto a la direccin recibe un coeficiente
+1, esto es volviendo al arco (p, q):

47
apq = (+l)apj + (-l)aki + .... + (-l)aqt
El Mtodo simplex para problema de flujo en redes [1]
Los pasos generales a seguir son los siguientes:

l. Encontrar una ~olucin bsica factible inicial.

2. Luego calcular Zj- Cj para cada variable no bsica Xj

3. Si se logra optimalidad detenerse, en caso contrario elegir el rengln entrante co-


lumna.

4. En caso de no obtener no acotamiento, determinar el rengln saliente columna, y


pivotear.

Supongamos ahora que se tiene a la mano una solucin bsica factible, el problema est de-
finido sobre una digrfica con raz. El proceso de clculo para la obtencin de una solucin
bsica factible avanza de los extremos (nodos terminales) del rbol de la subdigrfica que
repre~euta dicha matriz bru;e hacia la raz, recordar que la~ variable~ no bsicas xu (co-
rrespondiente a los arcos no bsicos (l, t)) estn en el nivel cero, a medida que se avanza
de un nodo a otro se va resolviendo la ecuacin del nodo, esto es, sea el nodo i se resuelve
la ccnR.Cin Ej= 1Xij - E~ 1 Xki = bi.
El mecanismo para calcular Ypq va el sistema Bypq = apq es la siguiente, al conectar el
arco no bsico (p, q) a la cadena formada al unir el nodo p al nodo q en la subdigrfica
GB se forma un ciclo, entonces proporcionamos una direccin a dicho ciclo paralelo al
arco (p, q), ::;i el arw bsico (k, l) que participa en dicho ciclo e::;t en la mi~ma direccin
del arco (p,q) entonces Y(pq)kz obtendr el valor -1, esto es Y(pq)kt = -1, si (k,l) estuviera
en direccin contraria entonces Y(pq)k = +1, y en caso de que el arco bsico (k, l) no
participar en el ciclo Y(pq)kt = O.
Calculo de las variables duales w y Zij - Cij, a fin de calcular Zij - Cij para cada
variable no bsica Xij, primero calculemos el vector multiplicador dual o simplex w (vec-
tor en Rm) a tmvs del sistema wT B = CB y luego determinamos Zij - Cij at.ravs de la
expresin:

Donde wi y wi son la i - sirna y j - sima componente de w, los componentes de w


son tambin conocidos como variables duales. Tener en cuenta que a lo largo de los arcos
bsicos del rbol se tiene que wi- Wj = Cij
El proceso de clculo de las variables duale$ consiste en trabajar de la ra71 del rbol bsico
hacia los extremos, por lo tanto Zij- Cij puede calcularse convenientemente sobre la red.
Observacin:, en cada nodo i hay un valor wi, lo que realmente nos interesa de los wi es
la diferencia entre las variables duales correspondientes a dos nodos, sean el nodo i y el
nodo j la diferencia sera wi - Wj; una manera de hallar esa diferencia, es considerar que

48
el valor de la variable dual en el respectivo nodo artificial (correspondiente a la variable
artificial) e::; cero, y luego calcular el valor de cada Wi pero trabajando de la raz (nodo
artificial) del rbol hacia los extremos (nodos terminales); esto no es muy relevante cuando
tomamos la diferencia, desde que la diferencia va depender solo de los costos Cij, esto es
debido a la estructura de la matriz nodo-arco incidencia, si queremos hallar la diferencia
wi- wi para un arco no bsico (i, j), conectamos (i, j) al rbol y obtenemos un ciclo, sean

los arcos bsicos que forman el ciclo {(j, k), (k, l), (p, l), .. , (i, q)} (conjunto finito) , dando
una orientacin al ciclo paralelo al arco (i, j), consideremos + 1 si la direccin es opuesta
al ciclo, -1 si la direccin est en el mismo sentido del ciclo, por lo tanto:

w i - wi = (-l)cjk + (-l)ckl + (+l)cpl + ... + (+l)Ciq


Observar que inicialmente al nodo artificial le dimos lm valor dual igual a cero, pero desde
que la diferencia de variables duales depende de los costos, cualquier valor dual que le
demo::; al re::;pectivo nodo artificial, la diferencia se ::;igue manteniendo. La diferencia de
variables duales depende de los costos del ciclo de los arcos bsicos actuales, la eleccin
de la raiz de un rbol es arbitraria, las consideraciones a tomar en cuenta con respecto a
esta dcccin, son de orden de tipo informtico, esto puede ser importante para reducir al
mnimo los cambios en el pivote-o
Interpretaciones de las variables wi y de los costos reducidos Cij - Zij.
Consideremos un rbol, a las variables Wi se les denominar potenciales nodales [1], esto
se debe, a que si consideramos los valores Cij como presiones o fuerzas invertidas a lo largo
del arco (i, j) y supongamos que el potencial del nodo raiz (correspondiente a la variable
artificial) es cero, la ecuacin wi - Wj - Cij tiene la siguiente interpretacin:
l. Si wi - Wj - Cij = O, la diferencia de los potenciales nodales en el arco (i, j) o la
fuerza neta wi - Wj es igual a la contrapresin ejercida por C.j, los arcos bsicos
cumplen esta condicin.

2. Si Wi - Wj - Cij > O, la diferencia de los potenciales nodales es mayor que la contra-


presin ejercida por cij , esto forzar al flujo a tender por el arco (i, j).

3. Si Wi- Wj- Cij <=O, la diferencia de los potenciales nodales es por lo menos menor
i~:,'llal que la contra presin ejercida por Cij, si esto es cierto para todos los arcos no
bsicos, entonces el sistema est en equilibrio y existe una situacin ptima.
Si definimos Wi = -1ri, de modo que interpretamos el valor de 'lri como el incremento
en el costo en el nodo i si se crea una unidad adicional en el nodo i (tener en cuenta
que la func.in objetivo del problema dual mntiene trminos de la forma biwi, donde bi
representa la cantidad demandada), la ecuacin wi - Wj - Cij = -1ri + 'lrj - Cij tiene
diferentes interpretaciones, si interpretamos cada nodo como un mercado;
l. los arcos bsicos cumplen -7ri + 'lrj - Cij = O esto es =
es decir, la
'lrj 1ri + Cij,
empresa se quiebra inclusive si se adquiere una unidad adicional en el mercado i, se
transporta a lo largo de Cij, se lleva y se vende al mercado j.

49
2. si para un arco no bsico 1fj > 1fi + Cij, un empresario podra considerar rentable
comprar en el mercado i y vender en el mercado j, la gananda neta por unidad sera
de 'lrj- 1fi- Cij(> 0).

3. para cualquier arco no bsico 'lrj ~ 1f + Cij, por consiguiente la empr~a mencionada
no es rentable, si la anterior desigualdad es cierto para todos los arcos no bsicos,
el sistema de mercado se encuentra en equilibrio.

Determinacin del rengln saliente columna y pivoteo


Se explic anteriormente el mtodo para <.:akular Zj - Cij para un arco no bill:ii<.:o, e~en
cialmente se identific el proceso de pivoteo, esto es, se toma el mximo valor positivo de
los Zij - Cii de las variables no bsicas.

Zij- Cij = mR:ximo{Zrs- Crs: Zrs- Crs > 0},


entonces Xij es un candidato a entrar a la base, el paso siguiente es introducir el arco
(i, j) a la digrfica, y se obtiene un ciclo con el arco (i, j), los arcos que forman dicho
ciclo, con sus respectivos valores Xkz incrementan una cierta cantidad ~(> 0), depende
de la direccin proporcionada a dicho ciclo, si dicho arco (k, l) est en la misma direccin
se incrementa+~ y si est en la direccin contraria se incrementa -~, hasta que uno
de los arcos bsicos de dicho ciclo obtenga el valor de acotamiento inferior factible cero
(xkz = 0), entonces dicho arco saldr de la base, est determinacin de la variable salida
y el ajuste de los valores de la variables bsicas segn se ha descrito son equivalentes a
efectuar la prueba usual de razn mnima y pivoteo, en efecto:
Se calcula Byij = aj, se demostr que los elementos de Yi estn formados por +1, -1
o O; -1 en la direccin proporcionada al ciclo y + 1 en la direccin contraria al ciclo, de
estos Yii nosotros tomamos los elementos de Yii que son mayores que cero, son aquellos
arcos que estn en la direccin contraria del ciclo, a estos arcos se le incrementan su
valor factible a - ~' hasta que uno de ellos tenga el valor de cero; y el que llega a ser el
mnimo, es el menor de los valores bsicos Xkl calculados que participan en el ciclo, esto
es, equivalente al algoritmo simplex del criterio de la razn mnima:

-bkl = mmlmO(r,s)d1
. . { brs
-- : Y(ij)rs = l > O}
Ykl Y(ij)rs

Donde O es el conjunto de arcos bsicos que forman dicho ciclo. Los brs son los valores
bsicos factibles del problema primal del problema de flujo de costo mnimo, denotemos
01 = {(u,p)t:O: Y(j)up = 1 > 0},

Si tomamos~= bkz, tenemos -~ = -bkz, y finalmente:

bkl- ~ = bkl- bkl = 0 = minimO(r,s)cfh (brs- ~) = minIDO(r,s)d"h (brs- bkz).

50
Por la condicin de conservacin, los arcos bsicos (r, s) que no formaron parte del ciclo,
el valor Xrs se mantiene; para los que formaron parte de dicho ciclo, se actualiza el valor
de Xrs, esto es: los arcos bsicos que tienen el mismo sentido del arco no bsico (i, j)
obtienen el valor Xrs + !::::., los que estn en sentido contrario obtienen el valor Xrs - !::::., el
arco entrante obtiene el valor Xi.j = !::::. y el arco bsico saliente obtiene el valor cero.
Demostraremos como pueden actualizarse las variables duales, en vez de volver a calcularse
empezando con respecto al nuevo rbol bsico, supongamos que Xpq entra a la base y que
Xuv es la variable de salida, desconecte el arco (u, v) del actual rbol bsico, lo anterior
descompone el rbol en dos rboles T 1 y n, con el nodo raz 1 perteneciente a T 1 , por lo
tanto los nuevos valores de las variables duales para los nodos en T1 permanecen iguales
que antes, para el rbol T2 hay dos casos:
Primero caso, si el nodo q e::;t en el rbol 12, dicho nodo se denomina nodo principal con
respecto al arco que entra (p, q), tenemos lo siguiente:

pq = Zpq - Cpq > 0.


pq = Wp- Wq- Cpq . (l)

Wp- Wq(nuevo) = Cpq(2)

Esta ltima igualdad es claro ya que el valor Wp permanece constante, debido a que nodo
p est en el rbol T1 , en el cual contiene al nodo raz, adems (p, q) entra como nuevo
arco bsico del nuevo rbol, sumando (1) y (2) obtenemos:

Wq(nuevo) - Wq = pq

Para cada arco (i,j) en el rbol T2, una vez que se conoce la variable dual Wq(nuevo)
asociado con el nodo q, es posible calcular el nuevo valor dual Wi(nuevo) para cada nodo i
en T2 segn la expresin:

El otro caso es cuando el nodo p es el nodo principal, se efecta el mismo procedimien-


to anterior, es decir si p eBt en el rbol T2, entonces se tiene: Wp(nuevo) - Wq = Cpq y
Wp(nuet>o) - Wp = -pq
Resumen del algoritmo simplex para redes
PASO DE INICIALIZACIN:
-Encoutrar una ::>olucin b::;ica factible inicial repre::;cntada por un rbol de cxpan::;iu con
raz, con r como nodo de raz. Luego calcular los flujos bsicos xs y las variables duales
w asociados con este rbol bsico.
PASO PRINCIPAL:
Calcular bpq = Zpq - Cpq = Wp - Wq - Cpq = Mximo{ Zij - Cii = wi - Wj - Cii :
(i,j)es un arco no bsico.}. Si Zpq- Cpq ::; O, detener el proceso, la solucin actual es
ptima, en caso contrario agregar (p, q) al rbol bsico, y determinar el nico ciclo que
::;e forma al trazar la cadena b::>ica que wnecta p y q, determinar el flujo mximo .6 ~ O

51
que es posible enviar a lo largo de este ciclo em la direccin del arco entrada (p, q), si
~ 1-7 oo detener el proceso, el problema no est acotado, si 6 es finito, determinar un
arco bsico de salida de bloqueo (u, v). Actualizar el rbol bsico agregndole el arco (p, q)
y actualizar las variables duales aumentando o disminuyendo respectivamente los valores
duales actuales de los nodos en T2 por pq, segn sipo q es el nodo principal en T2 , luego
repetir el paso principaL

Determinacin de una solucin bsica factible


Agregando variable de holgura si es conveniente, se logra plantear el problema dado en
la forma de minimizar {ex: A 0 X = b,x ~ 0.}, en donde A 0 es m x n y las columnas
compuestas de {+,- }ei, esto es, columnas de vectores unitarios que tienen un +1 en
algn rengln o un -1 en otro rengln, y cerm; en los elementos restantes. Se presentar la
aplicacin de un inicio completamente artificial para tener un problema con estructura de
red:

l. Se agrega una columna artificial por cada rengln de A 0 , en donde la i-sima columna
artificial es { +,-} ei dependiendo del signo de bi, es decir, +ei si bi ~ O y -ei si
bi :::; o.

2. Agregu un rengln redundante definido por el negativo de la suma de los renglones


de la matriz A o extendida.

3. Donde agregamos un vector de variables artificiales Xa.

Observaciones:

l. Esta nueva digrfica tiene un nodo adicional (m + 1) debido al nuevo rengln en


A~ueva

2. La estructura de A~ueva contiene tambin todos los arcos originales de la estructura


anterior A 0 , en donde las columnas unitarias de A 0 , ahora con la nueva estructura
de A~ueva representan arcos que terminan o comienzan en el nuevo nodo (m + 1).

3. La nueva digrfica tiene m nuevos arcos.

4. La nueva digrfica es evidentemente conexa, la suma de los elementos de bnueva es


tambin cero.

5. Al designar el nuevo nodo (m+ 1) como el nodo raz r y agregando la columna


unitaria e(m+l) a A~ueva' que acta como el nico arco raz del problema, Re obtiene
un sistema lineal de rango totaL

6. Una base factible para este nuevo problema est dado por el rbol de expansin con
raz definido por los m arcos artificiales agTegados junto con el arco raz. Empezando
con esta base factible, usando costos idneos en cada caso, hasta alcanzar factibilidad

52
, en cada caso, si hay factibilidad es posible eliminar todos lo arcos artificiales, con
costos de gran M en el problema, y continuar con la optimizacin.

Ejemplo 3.4.1 Resolver el siguiente problema:

minimizar 5Xt2 - 2x13 + 2x1s - 4x23 + Ox34 + 6x42 + 3x4s + 4xs3


sujeta a X12 + X13 + X1s = 2.
X23 - X12 - X42 = 5.

X34 - X13 - X23 - X53 = l.

X42 + X45 - X34 = -4.


X53 - X15 - X45 = -4.
X12 ~ O,x13 ~ O,x1s ~ O,x23 ~ O,x34 ~O,
X42 ~ O,x45 ~ O,xs3 ~O.

Sea el rbvl de expansin fvmwdv porlos arws {(1, 5); (2, 3); (3, 4); (4, 5)}, los nodos 1 y 2
son nodos terminales del rbol. Con.sideremos nodo 5 la variable artificial, 11eamos que el
rbol representa una matriz basica factible del problema de flujo de redes, sea la ecuacin
del sistema definido por el rbol:

1 o o o o X1s 1
o 1 o o o X23 5
o -1 1 o o X34 3
o o -1 1 o X45 -4
-1 o o -1 1 Xs -4

Resolviendo el sistema, como los nodos 1 y 2 80n termirw.les, resolviendo la ecnacn


para el nodo 1 y 2, obtenemos x 23 = 5 y x 12 = 2. Como el nodo 5 es una variable artificial,
entonces condideramos x 5 =O.
Resolviendo la ecuacin de conservacin para el nodo 3: X34- X23 = 1 entonces X34 = 6.
Resolviendo la eC'uacin de conservacin pam el nodo 4: X34 + X45 = -4 entonces X4s = 2.
El rbol representa una matriz bsica para el problema. El proceso de calcular las variables
primates consiste de trabajar a partir de los nodos terminales del rbol, hacial el nodo raz.
La solucin factible actual es: (x1s, X23, X34, X45, xs) = (2, 5, 6, 2, O)
Calculando los Zij - Cij = waij - Cij, el sistema wT B = CB:

1 o o o o 2
o 1 o o o -4
[ 'WI w2 w3 w4 Ws] o -1 1 o o o
o o -1 1 o 3
-1 o o -1 1 o
El proceso de calcular las variables duales consiste de trabajar a partir del nodo raz hacia
los nodos terminales del rbol, tomanndo w 5 = O.

53
En el nodo 4: W4- Ws = 3 =?- w4 = 3.
En el nodo 3: wa- W4 =O=?- w 3 = 3.
En el nodo 2: Wz- w 3 = -4 =?- Wz =-l.
En el nodo 1 :w 1 - w5 = 2 =?- w1 = 2.
Calculamos Zij - Cij para cada arco (i, j) no bsico, para poder aplicar el proceso pivote.
Arco (1,2): z 1z- c12 = w1 - w 2 - c12 = 2- (-1)- 5 = -2.
Arco (4,2): Z42- C42 = w4- Wz- c42 = 3- (-1)- 6 = -2.
Arco (1, 3): Z13- Ca = w1 - w 3 - c 1a = 2- 3- ( -2) =l.
Arco (5, 3) zsa- csa = Ws- wa- csa =O- 3-4 = -7.
Como Z13 - c13 es mayor a cero, entonces x 13 es un candidato para entrar a la base, si
agregamos el arco (1, 3) al rbol, obtenemos un ciclo formado por los arcos:
{(1,3),(3,4),(4,5),(1,5)},
conteniendo el arco (1, 3). El proceso de ajuste para encontrar una nueva solucin bsica
factible, es en'viando una adicional cantidad de flujo 6. alrededor del nico ciclo formado,
al agregar el arco no bsico al rbol, enviando un jbf:jo 6. en la direccin del arr;o no
bsico, corresponde a un crecimiento de flujo a los arcos bsicos que son paralelos al arco
no bsico, y un decrecimiento de flujo a los arcos bsicos que estn en direccin contraria.
El arco (1, 5) es el nico arco en direccin contraria a la direccin del ciclo formado por el
arco (1, 3) entonces 6. = x 15 = 2. Calculemos los nuevos valores factibles:
Xa := Xa + 6. = O+ 2 = 2.

X34 := X34 + 6. = 6 + 2 = 8.
X45 := X45 + 6_ = 2 + 2 = 4.
x 1s := x 1s - 6. = 2 - 2 = O.
Los restantes flujos se mantienen constantes. Como x 15 decae a cero, entonces el ar-
co (1, 5) deja la base, y (1, 3) entra a la base, entonces la nueva matriz bsica factible
est formado por el rbol { (1, 3), (2, 3), (3, 4), (4, 5)}. La nueva solucin bsica factible:
(x13, X23, X34, X45, xs) = (2, 5, 8, 4, O). Calculando las nuevas variables duales, en el ante-
rior 1bol basico, al eliminar el arco (1, 5) del rbol, se obtienen dos rboles bsicos, un
rbol contiene el nodo 5 que es el nodo riz, todos los nodos que contienen dicho rbol
no cambian sus respectivos valores duales, para este caso los nodos son {2, 3, 4, 5}, enton-
ces {w 2 , w 3 , w 4 , w5 } = { -1, 3, 3, O} permanecen invariantes. El tro rbol es solamente el
nodo {1}, dicho valor dual w1, se calcula: w 1 - w 3 = -2 entonces w 1 = +1. Entonces
calculando los Zj - Cij para los arcos no bsicos:
W- Wz- Cz = 1- (-1)- (5) = -3.
W4- Wz- C42 = 3- ( -1)- 6 = -2.
W - w 5 - C 5 = 1 - 0 - 2 = -l.
Ws - wa - csa = O - 3 - 4 = -7.
Se obtienen que los wi - Wj - Cii son menores iguales a cero para los arco.s no bsicos,
entonces se obtiene uno. solu.cin optimal dado por:
(x 12 , x 13 , Xs, Xza, X34, X42, x 4s, xsa, xs) = (0, 2, O, 5, 8, O, 4, O, O).o

54
Captulo 4

Algoritmo Out-of-kilter

El problema primal del flujo de costo mnimo, con el cual nosotros trabajaremos es de
la forma:

ml.ninn'zar ~m ~m ,-.. x
L.Ji=l L.Jj=l '-'ij ij
.t a a
SUJe ~m
L.Jj=l Xij -
~m -O
L.Jk=l Xki - i = 1, ... , m ..... (l)
(P).
Xij ~ lij i,j = 1,2, ... ,m ..... (2)
Xij S Uij i, j = 1, 2, ... , m ..... (3)

Donde hay que entender que la sumatoria y desigualdades es tomado sobre la existencia de
arcos. Nosotros llamaremos ecuacin de conservacin de flujo a cualquier flujo {Xij}(i,j)r
satisfaciendo la restriccin (1), en el cual representa una digrfica dirigida que denotaremos
por G = (N, r) donde N representa los nodo::; y r repre::;enta los MCOR, exiten m nodos y
n arcos; y adems supondremos que existe a lo menos un arco dirigido entre dos nodos;
una conservacin de flujo satisfaciendo las restricciones Xij ~ lij y Xij S uiii es llamado
un flujo factible. Asumiremos que Cij , lij y Uij son enteros y que O S lij S Uij.
Desde que el lado deredw de la restriccin (1) son ceros, nosotros concluimos que el flujo
sobre la red no tiene un punto inicial y un punto terminal.
Observaciones:

l. La digrfica no necesariamente es conexa.

2. Observar que en esta digrfica no e.."'{isten nodos terminales con grado igual a O,
todos los nodos son de grado a lo menos l.

3. El problema primal (P) no necesariamente tiene solucin, puede ocurrir tambin


que el eonjunto de finjo factible sea igual a vaco.

55
4.1. El dual del problema de flujo de costo mnimo y
sus propiedades
Si nosotros asociamos una variable dual a cada nodo sobre la ecuacin de conservacin
de flujo, otra variable dual hij sobre la restriccin Xij :::; Uij y por ltimo una variable dual
Vij sobre la restriccin Xj ~ lj, la formulacin del dual [1] para el problema primal del

flujo de costo mnimo sobre la red, es dado por:

maximizar :,1 'L:'j::1 lijVij - :,1 'L:}= 1 Ujhj


sujeta a w i - Wj + Vij- hj :::; Cij i,j = 1, 2, ... ,m.
(PD).
hij,vij~o i,j=1,2, ... ,m.
Wi : sin restriccin i=1,2, ... ,m.
Donde las sumatorias y las restricciones son tomados sobre la existencia de arcos. Obser-
vaciones:

l. El problema dual tiene una muy interesante estructura. Supongamos que nosotros
seleccionamos cualquier conjunto de {wi}ifN (vamos asumir que todos los {wihN
son enteros). Si nosotros definimos:

Vij= mximo{O,Cij-Wi+Wj} ... (4)


hij = rnxirno{O, -(e,J- Wi + wJ)} ... (5)

Entonces la restriccin dual para el arco (i,j), se convierte:

. -
V 2] }>bzJ
-- '-"/.}
r. - W2 + W J
l hZJ >
_ 0l V >
ZJ - 0

Dado 4 y 5 y cualquier conjunto de w~s, se cumple la relacin Vij -hij = Cij -wi+wj,

esto es, d prohlema dual posee una solucin factible.

2. Si el problema primal (P) tiene solucin(en el sentido que el valor de la funcin


objetivo evaluado en la solu<.:in primal del problema primal es finito) entonces el
problema dual (P D) tambin tiene solucin, los valores de la funcin objetivo del
problema primal y dual evaluados en las soluciones del problema primal y dual
respectivamente coinciden.

3. Si el problema primal tuviera conjunto factihle igual al vado, entonces no se podra


decir nada sobre la solucin del problema dual.

4. Observar que uij ~ Oy lij ~ O fueron necesarias, para formular el problema dual
escrita arriba

5. Fijar los valores (wi)i=l,m sobre cualquier valor entero, y dada las definiciones 4y 5;
entonces existe una solucin factible dual.

56
4.2. La complementaria condicin de holgura.
La complementaria condicin de holgura, para la optimalidad del problema primal (P)
son las condiciones de optimalidad de Karush Kuhn Tucker [1], esto es, si existen {Xij }(i,j)~r
satisfaciendo 1, 2 y 3 , adems existen {Wi} iEN, { hii }(i,j)tr, { Vij }( i,j)tr satisfaciendo:

Wi- Wj + Vij- h i j - Cij = 0 ... (6)


hij, Vij 2 0 ... (7)
(Xij -lij)Vij = 0 ... (8)
(uii- Xij)hij =O ... (9)
entonces {xij}(i,j)tr es una solucin ptimal para el problema primal (P).
Para todo arco (i, j) sobre la digrfica definamos Zij - Cij = wi - wi - Cij, normalmente
es conocido como el costo reducido para el arco (i, j).
Dado un conjunto {wJN enteros nosotros podemos calcular los valores Zij - Cij = wi -
Wj - Cij; utilizando las definiciones 4 y 5, y las condiciones de KKT 8 y 9, una solucin

factible {xij}(,j)r satisfaciendo 1,2 y 3 para que cumpla las condiciones de karush kuhn
tucker debe satisfacer lo siguiente:

Si Zij - cij < O =>(4) Vij > O =>(8) Xij = lij i, j = 1, 2, ... , m ... (10)
Si Zij- Cij >O =>(5) hij >O 9
=>( ) xij = Uij i,j = 1, 2, ... , m ... (ll)
4 , 5) 2' 3 ' 8 ' 9 ) l <X
Sz. Z-
ZJ ZJ =
C 0 -_._(
-,r
V-
t) -
ht)-
-
0 -____,._(
-,r 't) - t) - tj (12)
<U

Una conservacin de flujo {xij}ci,j)r el cual satisface las 3 condiciones de arriba (10),
(11) y (12) entonces ser una solucin optimal del problema, esto se debe que la fundn
objetivo es lineal por lo tanto convexa, y las restricciones estn compuestas por funciones
afines y lineales que son convexas. El problema, consiste en buscar valores wi y Xij sa-
tisfaciendo la ecuacin de conservacin de flujo y las respectivas cotas (2) y (3), bajo las
tres condiciones de arriba (10), (11) y (12) que deben ser satisfechas.
Los estados Kilter y nmeros de Kilter para un arco [1] .
Sean el conjunto de flujos {xij}(i,j)r satisfaciendo (1) y el conjunto {wi}N, definamos
{hij}(i,j)tr y {Vi(i,j)<r segn 4 y 5, en efecto se cumple 6 y 7, entonces:
Se dice que el arco (i, j) se encuentra en el estado in-Kilter cuando el conjunto
{ Xij, Wi, Wj, hij, Vij }, cumple las condiciones 2, 3, 8 y 9.

Se dice que el arco (i, j) se encuentra en el estado out-of-Kilter cuando el conjunto


{ Xij, wi, Wj, hij, Vij}, viola una de las condiciones 2, 3, 8 y 9.

Observar en esta tabla, que para un arco (i, j) hay 5 posibles estados in-kilter y 10
posibles estados out-of-kilter.
El objetivo de este tema es cambiar el estado out-of-kilter del arco (i,j) a un estado
in-kilter; esto se puede realizar de dos maneras: la primera manera es cambiar el flujo Xij
sobre el arco (i, j), al incrementar o disminuir el valor de Xij, si uno observa en la tabla

57
Cuadro 4 1 Estados Kilter
Zij- Cij < 0 Zij- Cij = 0 Zij- Cij >0
Xij > Uij out-of-kilter out-of-kilter out-of-kilter
Xij = Uij out-of-kilter in-kilter in-kilter
lij < Xij < Uij out-of-kilter in-kilter out-of-kilter
Xij = lij in-kilter in-kilter out-of-kilter
Xij < lij out-of-kilter out-of-kilter out-of-kilter

4.1 esto se hace movindose arriba o abajo en una particular columna de la tabla 4.1.
Otra manera es cambiar los valores wi y Wj, esto ~e hace movindose hada atrs o hacia
delante a lo largo de una fila en la tabla 4.1.

Una medida de diRtancia para el problema primal(P) (que peridicamente redu:1.ca la


distancia para alcanzar la optimalidad condiciones de Karush Kuhn Tucker), es llamado
el nmero de kilter Kij para un arco (i, j), que es definido aqu como el cambio mnimal
de flujo sobre el arco que es necesario para alcanzar el estado in-kilter, este nmero de
Kilter esta representado en la tabla siguiente:

Cuadro 4 2 Nmero Kilter


Zij- Cij < 0 Zij- Cij = 0 z-
ZJ e_>
.J O
Xij > Uij 1 Xij - l i j j 1 X
ZJ -UI
!.J 1 Xij- Uij 1

Xij = Uij 1 Xij - lij 1 o o


lij < Xij < Uij 1 Xij- lij 1 o 1 Xij- Uij 1

Xij = lij o o 1 Xij- Uij 1

Xij < lij 1 Xij - lij 1 1 Xij - lij 1 1 Xij- Uij 1

Notar desde que todos los nmeros de kilter en la tabla estn en valor absoluto, esto
implica que el nmero de kilter en un arco es no negativo. El nmero de Kilter de un arco
es t:ero, si el arco est en in-kilter; es positivo, si el arco esta en out-of:.kilter.
Un mtodo para asegurar finita convergencia, esto es~ el algoritmo que se va determinar
termina en un nmero finito de pasos, es demostrar lo siguiente:

l. El nmero de kilter de cualquier arco nunca incrementa un valor positivo.

2. El nmero Kilter de algn arco es reducido (por un entero).

4.3. Estrategia del algoritmo


Los pasos son los siguientes:

58
l. Iniciar con {xij}(i,j)f'l' tal que cada Xij =O, {xij}(,j)Er satisface (1): y una solucin
factible del dual {wi}iN, tal que cada Wi =O, con hij = maximo{O,zij- Cij} y
Vij = maximo{O, -(Zij- Cij)}, identificar el estado de kilter y calcular el nmero de

kilter de cada arco.

2. Si la red tiene un arco out-of-kilter, llevar a cabo la fase primal del algoritmo, durante
esta fase el arco out-of-kilter es seleccionado y hacer un intento para construir una
nueva diagrfica satisfaciendo la nueva ecuacin de conservacin de flujo(l) de tal
manera que se obtenga un circuito en la digrfica que contenga al arco (i,j) o (j, i)
dependiendo de la construccin de la nueva digriica y adems que los nmeros
de kilter de los dems arcos no es empeorado y que la seleccin del arco (i, j) es
mejorado(nmero de kilter vaya disminuyendo).

3. Cuando esto es determinado tal que no hay una mejora del flujo que pueda ser
construido durante la fase primal (un circuito no es encontrado en la nueva digrfica),
el algoritmo construye una nueva solucin dual de tal manera que el nmero de kilter
no es empeorado y paso 2 es repetido.

4. Iterando 2 y 3 de manera recursiva, el algoritmo construye una solucin optimal o


determina que no existe solucin factible.

4.3.1. FASE PRIMAL: Flujo cambio


Si encontramos un arco en estado out - o f - kilter (si no existe tal arco, entonces
solucin ptimal es encontrada) :durante la fase primal el alp;oritmo intenta decrecer el
nmero de kilter sobre un arco out- of- kilter cambiando los valores de flujos, tal que
se siga cumpliendo la ecuacin de conservacin de flujo en tal una manera que el nmero
de kilter sobre cualquier otro arco no es empeorado. El flujo debera ser cambiando en tal
una manera que el correspondiente estado kilter debera moverse cercanamente al estado
in-kilter o en el mismo estado in-kilter.
Sea x' un vector que satisface la ecuacin de conservacin de flujos: esto se puede expre-
sru: cxplkitmcnt.c de la forma Ax' =O, donde A es la matriz nodo arco incidencia de la
digrfica G = G(N, r). Si~ es un vector de flujo de cambios respecto a x', esto es:

A(x' +~)=O==> A~= O.

Para un vector no cero~= {6ij}(i,j)Er ~sigue satisfaciendo la ecuacin de conversacin


de flujo, scan los arcos (i, j) de la di grfica que corrcRpondcn al flujo ~ij f O que denota-
remos por S el conjunto que contiene dichos arcos. Veamos que S representa un conjunto
de ciclos en la digrfica.

Proposicin 4.3.1 S= {(i,j)tT: ~ij f O} (diferente del vaco) entonces S est forma-
do por un conjunto de ciclos en la digrfica.

59
Prueba [1] Desde que A es una matriz nodo arco incidencia, cada columna de A tiene
exactamente un +1 y un -1, y el no cero componente de ~ debera corre~ponder a un
ciclo o conjunto de ciclos, veamos esto; supongamos que S no contiene ciclos y sin perdida
de generalidad supongamos que los ~i correspondientes a S son no negativos (desde que
A es una matriz nodo arco incidencia y A~= 0). Pero como A~= O entonces los arcos
que no estn es S corresponden a flujo igual a cero, como S nocontiene ciclos se pueden
agregar arcos( no necesariamente de la digrfica de G), de tal manera que se forma un rbol
con m nodos denotando la dign.fica por G', y dichos arcos agregados con un nivel de flujo
igual a cero, esto es hemos agregado nuevos arcos a la digrfica G cuya representacin es
una matriz nodo arco incidencia denotado por [A, B] con el mismo nmero de filas donde
B corresponde a la nuevas columnas correspondiente a los arcos agregados que no estn
en G, la nueva digrfka G' el:i conexa, [~, ~'] donde ~' = O(flujo que no corresponde a
los arcos que no estn en G), como A~ = O entonces:
[A, B][~, ~'] = 0,[~, ~'] es una solucin factible para el problema de conservacin de
flujos con la nica restriccin [A, B]x = O con x ;:::=: O y C es una submatriz de [A, B]
con el mismo nmero de filas, pero como se form un rbol de expansin en G', este
rbol de expansin representa una base factible para [A, B] entonces [~, ~'] =O, es una
contradiccin, ya que existen elementos de S tal que el flujo ~ii diferente de cero.
S esta formado solo por ciclos, ya que supongamos que existe arco (i, j) que no forma
parte del ciclo, la correspondiente ecuacin de conservacin de flujo, hace que el flujo ~ij
del arco (i, j) sea igual a cero, por dos motivos:

l. si el arco (i, j) no esta conectado a ningn ciclo de S, esto es el nodo i o j no forman


parte del ciclo, y adems i o j son nodos terminales para la subdigrfica formada
por los arcos de S con los nodos que forman los arcos, entonces e~ claro ~ij = O,
desde que los arcos que no estn en S tienen flujo cero.

2. si el arco (i, j) es el nico arco de S que esta unido a un ciclo, o conjunto de ciclos,
supongamos que el nodo i est unido al ciclo, entonces al sumar todas las ecuaciones
de conservaciones de flujos de los nodos que se encuentra en los ciclos, entonc-:es se
va eliminar los flujos del los arcos del ciclo, tener en cuenta que los flujos que no
estn en S son ceros entonces quedara ~ij =O.

En estos dos casos tenemos ~ij =O, pero es una contradiccin ya que (i,j) est en S, los
otros casos se derivan de estos dos casos anteriores.o
LLegamos a la conclusin de que si vamos a variar un flujo factible {Xij }ci,j)~r sobre los
arcos, de tal manera que el nuevo flujo factible { x~i }ci,j)r satisface la ecuacin de conser-
vacin de flujo, esto se hace encontrado ciclos en la digrfica, de tal manera que se puedan
variar los flujos en los ciclos, y los restantes flujos se mantienen su valor. 0

Sea un arco out-of-kilter sobre la red G, vamos a hallar un ciclo conteniendo el arco

60
out-of-kilter en a, para esto vamos a construir una nueva red a' a partir de la red a
inicial, observando la tabla 4.2:

l. Cada nodo de la red original a esta en la nueva red G'.


2. Si un arco (i, j) est en la red original y el flujo puede ser incrementado por un
nmero positivo(> O) para alcanzar el estado in-kilter o permanecer en el estado
in-kilter, el arco (i, j) formara parte de la nueva red con el apropiado cambio del
flujo permitido esto es el nmero de Kilter,ob.'3ervar que se puede dar el caso que
Zij - cii = O y Xij = lij entonces Xij se puede incrementar Uij - lij.

3. Si un arco (i, j) est en la red original y el flujo puede ser disminuido por un
nmero negativo(< O) para alcanzar el estado in-kilter o permanecer en el estado
in-kilter , el arco (j, i) formara parte de la nueva red con el apropiado cambio del
flujo permitido esto es el nmero de kilter,observar que se puede dar el caso que
Zij - Cij = O y Xij = Uij entonces Xij se puede disminuir Uij - lij.

4. Si un arco (i, j) est en la 1ed original satisfaciendo lij < Xij < Uij y Zij - Cij = O
esto produce dos arcos (i, j) y (j, i), con diferencio cambio del flujo permitido en la
red, esto es uii - Xij y Xij - lii respectivamente.

Una vez construida la nueva red a' y un arco out-of-kilter arco (p, q) es seleccionado, si no-
sotros encontramos un circuito conteniendo el arco sobre a'. Este flujo en el ciclo a es cam-
biado de acuerdo a la orientacin proporcionada por el cin:uito a', la cantidad de cambio es
especificado por el mnimo cambio del flujo permitido sobre cualquier arco que es miembro
del circuito en a', si circuitos no existen conteniendo el seleccionado arco out-of-kilter en
a' cntoncc.s nosotros deberamos proceder a la fase dnal del algoritmo. Es claro que si cir-
cuito es encontrado en a' entonces cada arco que participe en el circuito, los flujos Xj van
a ser incrementado o disminuido de acuerdo a la direccin de flujo en a, mantenindose la
ecuacin de conservacin de flujo sobre la red G; veamos esto con un ejemplo, supongamos
que tenemos uua digrfica , y que en el paso de la fase primal, se obtiene un circuito for-
mado por 5 nodos, donde el ciclo esta formado por {(i 1 , i 2 ), (i 3 , i 2 ), (i 3 , i 4 ), (i 5 , i 4 ), (i 1 , i 5 )}
, que corresponde al circuito {(i 1 , i 2 ), (i 2 , i 3 ), (i 3 , i 4 ), (i 4 , i 5 ), (i 5 , i 1 )}, el ciclo conteniendo
el arco out-of-kilter (p, q), si hay un incremento del flujo Xpq tenemos el arco (p, q) sobre
la nueva red y si hay un decrecimiento del flujo Xpq tenemos el arco (q,p) sobre la nueva
red. En este caso supongamos que (i 1 , i 5 ) est en estado out-of-kilter, y tenemos adems
la siguiente tabla:

61
flujo incremento o arco arco cambio de
actual decrecimiento enG ene' flujo
Xi1i2 incremento (i, i2) (i, i2) Xiti2 + L\
Xiai2 decrecimiento (i3, i2) (i2, i3) Xi2ia- L\
Xiai4 decrecimiento (i3, i4) (i4, i3) Xi3i4 - L\
crecimiento (i3,i4) Xiai4 + L\
Xsi4 decrecimiento (is, i4) (i4, s) Xisi4 - L\
Xitis decrecimiento (i,is) (is, i 1 ) Xitis - L\
Donde L\ e!:> el mnimo cambio de flujo permitido para cada arco.
Para cada nodo del ciclo, hay solamente dos arcos del ciclo que inciden sobre el nodo, los
dems arcos que inciden sobre el nodo son invariantes en flujo~ veamos que se cumple la
ecuacin de conservacin de flujo para cada nodo:
En el nodo i 1 :
El arco (i,is) tenernos que el flujo Xi 1i 5 vara a Xi 1i 5 - L\
El arco (, i2) tenernos que el flujo Xi 1 i 2 vara a Xi 1 i 2 + L\

La nueva ecuacin de conservacin de flujo para el nodo i 1 =

-[suma de flujos que llegan al nodoi 1]+ [suma de flujos que salen del nodo i 1 (menos los
flujm; de los arcos (i, i2) y (i, is)) + Xi 1 i 5 - L\ + Xi 1i 2 + L\] =

la conversacin de flujo actual para el nodo i.

La conservacin de flujo se mantiene para el nodo i 1 igual ocurre para los dems nodos
i2,i3,i4 y is.
Esto es conveniente(pero no necesario) para las varias demostraciones de convergencia
trabajar sobre el mismo arco out-of-kilter (p, q) hasta convertirse en in-kilter.

4.3.2. FASE DUAL: Cambio variable dual


Cuando no es posible construir un circuito en e' conteniendo 1m especfieo arco out-
of-kilter, entonces nosotros deberamos cambiar los Zij- C,j, de tal manera que el nmero
de kilter de los arcos no es empeorado y nuevos arcos son introducidos en e', que nos
permite encontrar un circuito conteniendo el arco out-of-kilter y bajo consideracin.
Sean Zij - Cij = Wi- 'Wj- Cij y (p, q) un arco out-of-kilter en e, consideremos que (p, q) es
un arco tanto para e y e' (si (q, p) est en e', entonces el procedimiento a detallar solo
se cambia p por q y q por p) y sea X un conjunto definido por:
X= {yeN/ existe algna trayectoria en e' que une q a y} U {q}
Sea X'= N- X, donde N= {1, 2, 3, ... ,m}, observar que X es diferente del vaco desde
que qEX, pX' (ya que no hay circuito en e' conteniendo (p, q)).
Si wi y Wj son cambiados por la misma cantidad, denotemos el cambio por 0(> 0), esto es,

62
wi+e y Wj +e, entonces Zij- Cij = (wi+e)- (wi +e) -Cij = Wi- Wj -<;j, entonces Zij- C-ij
se mantiene. Si se cambia todos los w/s(X) por una misma cantidad e, el conjunto X
contiene al menos todos los mismos nodos(hasta un poco ms de nodos) despus de un
cambio de las variables duales.
Solamente el clculo de Zij - Cij es afectado por los arcos formados que van de X a X'
X' a X, esto es:

Veamos los casos:(Denotamos por (X, Y) al conjunto S= {(x,y)crjxcX,ycY},estas de-


finiciones son tomados sobre arcos en G)
('i,j)t(X,X) ==* (zij- Cij)' = Zij- Cij
(i,j)t(X,X') ==* (Zij- Cij)' = (wi + e ) - Wj- Cij = Zij- Cij +e.
(i,j)t(X',X) ==* (Zij- Cij)' = Wi- (wj + 0)- Cij = Zij- Cij- 8.
Debemos determinar el valor de e, de tal manera que el nmero de kilter de los arcos
no es empeorado, y el estado de kilter de algunos arcos es cambiado, esto es del estado
out-of-kilter al estado in kilter.

Caractersticas del conjunto (X, X')

El conjunto (X, X') no puede contener un arco asociado con el estado de kilter Xij < lij
y Zij- Cij <O( ya que el arco ('i,j) se agrega a la red G', tenemos (i,j)t(X,X'), itX y
jC:.X', por definicin existe un camino que une el nodo q hacia el nodo i en la red G', y
como (i, j) es un arco en G', entonces existe un camino que une el nodo q al nodo j, esto
es el camino del nodo q al nodo i mas el arco (i, j) entonces jcX, esto conduce a una
contradiccin.), recordar que los arcos de X a X' en G tiene un Zij - Cij incrementado
por e.
Veamos los c,asos: Cada c,uadro en la tabla de ahajo con el correspondiente nmero en

Cuadro 4.3: Representacin estados de Kilter


Zij- Cij < 0 z-
ZJ lJ- O Z-
e- ZJ .J > 0
<;

Xij > Uij 1 2 3


Xij = Uij 4 5 6
lij < Xij < Uij 7 8 9
z..
l.J = 1-J
x 10 11 12
Xij < lij 13 14 15

el interior de este representa un estado, por ejemplo el nmero uno representa el estado
Xij > Uij YZij - Cij < O.
El arco (i,j) en (X, X') no puede estar en los estados 8, 9, 11, 12, 13, 14,15 de la tabla 4.3.

63
l. Estado 1, si el arco (i,j)E(X, X'); cumple con Zij- Cij <O y Xij > Uij, el arco (i,j)
est out-of-kilter: por lo tanto su nmero de kilter es Kij =1 Xij- lij 1= Xij - lij, al
incrementar O, tenemos dos posibilidades:

a) (zij- Cij)' = Zij- Cij +()=O entonces K;j =1 Xij- Uij 1.


b) (z7.J-e)'
ZJ -- zZJ-,...+()>O
'-'1-J entonces K'ij -1
- tJ 1
xZJ-u

Estos dos casos se tiene que:K;j < Kij, hay un decrecimiento del nmero de kilter.

2. Estado 4, si el arco (i,j)E(X,X'); cumple con Zij- Cij <O y Xij = Uij, el arco (i,j)
esta out-of-kilter, por lo tanto su nmero de kilter es Kij =1 Uij - lij 1= Xij - lij, al
incrementar O, tenemos dos posibilidades:

a) (zij- Cij)' = Zij- Cij +()=O entonces K;j =1 Uij- uij 1= O.


b) (zij- Cij)' = Zij- Cij +()>O entonces K;i =1 u i i - uij 1= O.

Estos dos casos se tiene que:O = K~j < Kij, hay un decrecimiento del nmero de
kilter.
Observar que tanto en el caso (a) y (b) el nmero de kilter K;,i se mantiene constante,
a medida que () aumenta.

3. Estado 7, si el arco (i, j)c(X, X'); cumple con Zij - Cij < O y lij < Xij < u 1.j, el arco
(i, j) esta out-of-kilt.cr, por lo tanto su nmero de kilter es Kij = 1Xij - l i j 1= Xij -lij,
al incrementar O, tenemos dos posibilidades:

a) (zij - cii)' = Zij - Cij +()=O entonces K~i =O.


b) (zij - Cij)' = Zij - Cij +O >O entonces K;i =1 Uij - Xij 1= uij - Xij

En este caso no tenemos en general que Ki < Kij, por lo tanto hay que poner un
lmite para O, esto es () S:l Zij - Cij , ya que Zij - Cij < O, entonces () S: Cij - Zij
entonces Zij - Cij +O S: O, tendramos solo el caso (a), por lo tanto, es claro que
K;,i =O< Kii

4. Estado 10, si el arco (i,j)c(X,X'); cumple con Zij- Cij <O y Xij = lij, el arco (i,j)
esta in-kilter, por lo tanto su nmero de kilter es Ki.i =O, al incrementar O, tenemos
dos posibilidades:

a) (zij- Cij)' = Zij- Cij +()=O entonces K;i =O.


b) (Zij- Cij)
1
= Zij- C-ij + () > 0 entonces 1
Kij =1 Uij- Xij
1
= Uij - l i j

En este caso no tenemos en general que K;i S: Kij, por lo tanto hay que poner un
lmite para 8, esto es () S:l Zij - Cij 1, ya que Zij - Cij < O, entonces () S: Cij - Zij
entonces Zij - Cij + () S: O, tendramos solo el caso (a), por lo tanto, es claro que
K;i =O= Kij

64
5. Estado 2, este es el caso cuando el arco (i, j) cumple Zij- C-;,j = O y Xij > Uij, as que
Kij =1 Xij- Uij 1, como (Zij- Cij)' aumenta en O, entonces sigue siendo positivo, el

valor kilter del arco se mantiene.

6. Estados 3, 5, 6 se f'.Xplican de la misma manera que el estado 2, el nmero de kilter


para el arco se mantiene.

En conclusin en los estados 1, 2, 3, 4, 5, 6, 7, 10 de la tabla 4.3 para el arco (i, j), si () ~ 1


Zij- C-;,j 1 entonces el nuevo nmero de kilter al aplicar la redifinicin (13) de las variables

duales, no se ver empeorado para el arco (i,j); entonces el cambio ideal para () =1
Zij - C-;,j 1.

Caracterizacin del conjunto (X', X)

Un anlisis similar de arcos de X' a X en G, en este caso los arcos (i,j)f.(X',X),


produce un decrecimiento de (zij- Cij)' = Zij- C-;,j- O, supongamos que (i,j) esta en el
estado de kilter Zij- Cij > O y Xij > Uij, Xij debera decrecer, por lo tanto (j, i) es un arco
de G', y como jEX entonces hay un camino que une el nodo q al nodo j, por lo tanto
existe un camino que une el nodo q al nodo i (camino del nodo q al nodo j m~ el arm
(j, i)), entonces it.X, esto no puede darse. Entonces (X', X) no puede contener arcos en
G que cumpla Zij - C-;,j > O y Xij > Uij, y por lo tanto los arcos de (i, j) en (X', X) no se
encuentra en los estados: 1, 2, 3, 4, 5, 7 y 8 de la tabla 4,3.
En conclusin en los estados 6, 9, 10, 11, 12, 13, 14, 15 de la tabla 4,3 para el arco (i, j), si
() ~~ Zij - C-;,j 1 entonces el nuevo nmero de kilter al aplicar la redifinicin (13) de las

variables duales, no se ver empeorado para el arco (i, j); entonces el cambio ideal para
() =1 Zij - Cij 1
De las caractersticas de (X, X') y (X', X), definamos S 1 y S2 por:

S1 = {(i,j)Er: iEX,jcX',zij- C-;,j < O,xii ~ Uij}

S2 = {(i,j)cr: icX',jcX,zij- C-;,j > O,xii ~ lii}

Definamos:
fh = mnimo {1 Zij - Cij 1} = mnimo { Cij- Zij}

(i,j)ES1 (i, j)ESI


()2 = mnimo {1 Zij - Cij 1} = mnimo {Zij- Cij}

(i,j))2 (i,j)c=.S2

() = mnimo{ 81, 02}.


Observar que S 1 y S 2 son conjuntos finitos de arcos, en caso que S1 = 0 entonces definamos
01 = +oo, si S2 = 0 entonces definamos 82 = +oo. ()es estrictamente positivo.
Si S1 es no vaco entonces

01 = minimo {1 Zij- Cij 1} =1 Zid1 - C1 1


(i, j)ES1

65
Si S2 es no vaco entonces

fh = minimo { 1 Zij - Cij 1} = 1 zi2i2 - Ci2 j 2 1.


(i,j)cS2

Observar que cada arco en S 1 puede tomar uno de los estados posibles 4, 7 y 10 de la
tabla 4.3; igualmente para cada arco S2 puede tomar uno de los estados posibles 6, 9 y 12
de la tabla 4.3.
Recordar que los {wihN y los {Ci(i,j)tr son enteros entonces 1 Zij - cii 1 es entero para
cada (, j) perteneciente a S1 O S2 entonces Si () es diferente del infinito, entonces 1 Zij- Cij 1
es un entero estrictamente positivo.

4.4. Convergencia del algoritmo


Existen slo dos casos que van hacer discutidos a continuacin:
Caso1 cuando O < () < +oo, en este caso hacemos el apropiado cambio en wi( esto es
w~ = wi +O si if.X,y w~ = Wi si it:X') y pasamos a la fase primal del algoritmo.
Caso2 () = +oo en este caso problema primal no tiene solucin factible( demostraremos
cRt.o ms adelante.).

4.4.1. lnfactibilidad del problema primal(P) del conjunto solu-


cin cuando (} = +oo
Supongamos que durante alguna aplicacin de la fase dual del algoritmo nosotros
alcanzamos el caso cuando()= +oo. Cuando esto ocurra nosotros tenemos que S 1 = S 2 =
0, desde que S1 = 0, revisando la definicin de S1 nosotros concluimos que si iEX y j<:X'
implica uno de los siguientes casos:

l. (i,j)E(X,X'), Zij- Cij <0y Xij > Uij


2. (i,j)E(X,X'), Zij- Cij = 0 y Xij ~ Uij

3. (i,j)<:(X,X'), Zij- Cij >0y Xij ~ Uij

Observar para cada arco (i,j) que est en (X,X'), (i,j) puede estar entre los estados
1, 2, 3, 4, 5, 6, 7, 10 de la tabla 4.3 y como S 1 est entre los estados 4,7 y 10, pero como S 1
es vaco entonces (i, j) solamente toma entre los estados 1, 2, 3, 5, 6.
Si S2 = 0 cumple solamente:

l. (i,j)<:(X',X), Zij- Cij > 0 Y Xij < lij

2. (i,j)t(X',X), Zij- Cij = 0y Xij:::; lij

3. (i,j)c(X',X), Zij- Cij < 0 Y Xij:::; lij

66
Observar para cada arco (i,j) que esta en (X',X), (i,j) puede estar entre los estados
6, 9, 10, 11, 12, 13, 14, 15 de la tabla 4.3 y como s2 el:it entre lol:i estadol:i 6,9 y 12 ' pero
como S2 es vaco entonces (i,j) solamente toma entre los estados 10, 11, 13, 14, 15.
Por lo tanto S 1 = S 2 = 0 entonces cumple:
Xij ~ Ui.j, si (i,j)c(X,X').

Xij ~ lij, si (i,j)c(X',X).

En particular consideremos el arco (p, q) out-of-kilter en a, recordar que la fase dual es


cuando no se ha encontrado un circuito en a' que contenga al arco (p, q) o (q, p) depen-
diendo de la construccin de la nueva red G', pero veamos las posibilidades:
Supongamos que el arco (p, q) se encuentre tanto en a como en a', entonces esto quiere
decir que Xpq est en aumento por una cantidad positiva y adems (p, q)c(X', X), entonces
Xpq < Upq, si lpq < Xpq < Upq, como (p, q) es out-of-kilter, entonces se tiene que Zpq- Cpq > O
Zpq- Cpq <O, si Zpq- Cpq >O, entonces como (p,q)c(X',X) tendramos que (p,q)cS2 ,
pero esto es una contradiccin ya que S 2 es vaco; si Zpq- Cpq < O, (p, q) estara en el estado
7 de la tabla 4.3, pero (X', X) no puede tener elementos en ese estado. una contradiccin,
igualmente si lpq = Xpq desde que (p, q) es out-of-kilter, tendramos que Zpq- Cpq > O,
entonces (p, q) pertenece a s2, pero s2 es vaco, contradiccin. Por lo tanto Xpq < lpq
Supongamos que el arco (q,p) se encuentre en a', entonces esto quiere decir que Xpq
est en disminucin por una cantidad positiva y adems (p, q)t(X, X'), entonces Xpq > lpq,
si lpq < Xpq < Upq' como (p, q) es out-of-kilter, entonces se tiene que Zpq - Cpq > O
Zpq- Cpq < O, si Zpq- Cpq < O, entonces como (p, q)c(X, X') tendramos que (p, q)cS,
pero esto es 1ma contradiccin ya que S 1 <'.S vado, ::;i Zpq- Cpq > O, (p, q) estara en d estado
9 de la tabla 4.3, pero (X, X') no puede tener elementos en ese estado, una contradiccin;
igualmente si Upq = Xpq desde que (p, q) es out-of-kilter, tendramos que Zpq- Cpq < O,
entonces (p, q) pertenece a S 1 , pero S1 es vaco, contradiccin. Por lo tanto Xpq > Upq
En corH.:llil:iin Xij ~ Uij si (i,j)t(X,X') y Xij ~ lij si (i,j)t(X',X); se tiene por lo anterior
que uno de las dos desigualdades es estricta para el arco out-of-kilter (p, q) , en formula-
cin explcita:

ZJ ->
-x -z .. 2Jl
1
si itX l Jtx

2: Xij- 2: Xij > 2: Uij- 2: lij.

itX itX' itX itX'


jcX' jcX jcX' jcX
Dado que el flujo actual {Xij hiJ)r cumple la ecuacin de conservacin de flujo, y puede
ser escrita como, dado i fijo:

L Xij + L Xij - L Xji - L Xji = o.


jX jtX' jtX j,X'

67
Sumando esta ecuacin para todo if.X:

Xij + Xij- X-
J~
Xji =O.
if.X jt.X' jt.X jt.X'
jEX iEX if.X iEX

Notar que:
Xij = X ji

if.X jEX
jEX iEX

y por lo tanto:
Xij- Xij = 0
it.X it.X'
)t x' jeX

0> 1Lij ~ : lij


if:.X ..X'
x'
Je jeX
Supongamos que x~i representa un flujo factible, por lo tanto cumple Uij ~ x:i y
-l - -x~-
'J > J y la desigualdad

0> U'"-
?.J J>
l -
1
xij- xii
1
=O.
iEX iEX' iEX iEX'
jf.X' jEX jEX' jt.X

De una manera similar a lo anterior, se prueba la ecuacin:

1
x f,J
.. -
L:
1
xii =O.
iEX iEX'
jEX' jEX

Y esto es una contradiccin , por lo tanto se concluye que si 8 es igual a +oo, entonces no
hay solucin factible [1). Tener en cuenta que {Xi(i,j)d' satisface la ecuacin de conser-
vacin de finjo (1) en G, pero no necesariamente las restricciones de cota superior(::; Uij)
e nfima(~ lij).

4.4.2. Convergencia del algoritmo out-of-kilter


Supongamos que el conjunto X no incrementa, no se encuentra el circuito en G', los
arcos de (X, X') y (X', X) permanecen invariantes, en cada paso del algoritmo de la fase
dual.

68
Con los flujos {Xij}(i,j)r no cambian en valor (esto es no hay incremento y disminucin),
recordemo~ la~ ~iguiente~ definiciones:

Definimos:
() = mini m o { 1Zij - Cij 1} = mini mo { Cij- Zij}
(i,j)d) (i, j)E8
(}2 = minimo { 1Zij - Cij 1} = minimo {Zij- Cij}
(i,j)tS2 (i,j)tS2
() = minimo{ 81 , 82}.

() = minimo{ -(zi1 - CiJ, (zi 2 iz - Ci2J2 )}.

El primer caso: O= -(zi1 - CidJ; (i 11 j 1)cS1 e (X, X')

(zid1 - CJJ' = (zi1) 1 - ciJ + () = 0... (14)

Segundo caso: (} = -(zi2J2 - Ci2)2 ); (i2,j2)di2 e (X', X)

(zi2 - Ci2)' = (zi2i2 - Ci2 J2) - () = 0 ... (15)

Como (X, X') permanece invariante, el nuevo S~ y s; son redifinidos y los flujos {Xi(i,j)r
siguen permaneciendo invariantes.

S~= {(i,j): it.X,jt.X',ziJ- CiJ < O,xii::; uiJ}

s; = {(i,j): it.X',.it.X,zij- cij > o,xij 2: zij}

Es claro que S~ ~ S 1 y s;
~ S 2 , pero por lo casos anteriores 14 y 15, el contenidos
de algunos de ellos es propio, repetimos el procedimiento varias veces hasta que S~ = 0
y s; = 0, el procedimiento es finito, ya que en cada iteracin se va anulando un arco
deS1 o S2 ; adem." S 1 y S2 son finitos desde que X y X' son finitos, al final se tiene que
S~ = s;
= 0 y entonces()= +oo( no hay solucin factihle).

4.4.3. Observaciones
l. El conjunto X no incrementa entonces () = +oo entonces no hay solucin factible.

2. Si hay solucin factible entonces X debe incrementar.

3. Si X incrementa, el arco (p, q) que est en out-of-kilter, en uno de los pasos de la fase
dual, el arco (p, q) entra en el estado in-kilter, o cuando el arco (p, q) halla formado
un circuito tal que pEX, y aplicamos luego la fase primal del algoritmo out-of-kilter,
para incrementar o decrecer el valor de Xpq.

69
Supongamos ahora que X va incrementar para todos los arcos out-of-kilter(p, q), el arco
out-of-kilter entre en el estado in kilter en un nmero finito de pasos en el algoritmo,
veamos esto. Para analizar esto, necesitamos analizar los 10 estados out-of-kilter de la
tabla 4.1. Veamos un caso, los restos son similares:
Supongo que el arco (p, q) out-of-kilter se encuentre en el estado 9 de la tabla 4.3; esto
es, Zpq - Cpq > O y lpq < Xpq < Upq; es claro que (p, q)t:(X', X) (ya que Xpq debe aumentar
desde que Zpq- Cpq >O) van existir dos posibilidades:

l. Que haya una disminucin del valor Zpq-Cpq(cuando no se ha encontrado un circuito).

2. Un incremento del flujo xpq(cuando se ha encontrado un circuito).

El objetivo es que el arco (p, q) entre en el estado in-kilter , veamos que solo se puede
construir una cantidad finita de circuitos conteniendo el arco (p, q) y adems la disminu-
cin constante del valor de Zpq- Cpq, determina que en un paso del algoritmo el valor de
Zpq - Cpq debe es igual a cero.
En efecto, a medida que se forman circuitos con (p, q) y Zpq - Cpq se mantiene positivo,
entonces Xpq debera aumentar en un valor entero positivo en cada ciclo encontrado, ese
valor del incremento siempre es igual al mnimo incremento permitido del ciclo formado
en G que contiene (p, q), ese incremento es un entero positivo, por lo tanto en un dado mo-
mento del algoritmo se obtiene un ciclo donde el cambio mnimo permitido es 1 Xpq- Upq 1
(xpq se va actualizando en cada ciclo), y se obtiene Xpq = Upq, esto ocurre en una cantidad
finita de circuitos, ya que el incremento permitido es un valor entero positivo, y el arco
(p, q) entra en el estado in kilter; en resumen en este caso el arco (p, q) se trata de mover
hacia el estado 6.
Veamos que pasa cuando el valor de Zpq - Cpq deja de ser mayor que cero, esto conlleva
que Zpq- Cpq debe ser igual a cero en un paso del algoritmo, siempre cuando Xpq < Upq
(si Xpq = '/J,pq, (p, q) ya est en el estado in-kilter), como Xpq ~ lpq> entonces (p, q) est en
5 2 , y el valor de () en un momento dado va ser igual a 1 Zpq - Cpq 1 ( 1 Zpq - Cpq 1 se va ir
actualizando en cada etapa de la fase dual), en ese caso Zpq - Cpq va tomar el valor de cero,
en este caso (p, q) se mueve hacia el estado 8.
Por lo tanto hemos visto que hay una cantidad de pasos del algoritmo para que el arco
(p, q) entre en estado in-kilter.
Los otros estados son analizados de la misma manera, en general el algoritmo termina en
un nmero finito de pasos, a continuacin presentamos como se puede mover los arcos
out-of-kilter que se encuentra en el estado 1 de la tabla 4.3:

l. 1 --7 2 --7 3 --7 6.

2. 1 --7 2 --7 5.

3. 1-7 4--7 5.

4. 1 --7 4 --7 7 --7 8.

70
5. 1 -+ 4 -+ 7 -+ 10.

4.5. Resumen del algoritmo out-of-kilter


Fase inicial, iniciar con un camino de flujo: decir cada Xij = O y un conjunto inicial de
enteros variables duales decir cada Wi =O, computar Zij- Cij = Wi- Wj- Cij
Fase primal, determinar el estado y el nmero de kilter para cada arco, si todos los arcos
estn en in-kilter , parar la solucin es obtenida. Otro caso, seleccionar un arco out-of-
kilter (p, q). Dado la red G construimos una nueva red G' como indicamos en la fase
primal, para cada arco (i, j) en G que est en uno de los estados de kilter que permite
un flujo incremento, colocar el arco (i, j) en G', con un permitido flujo incremento. Para
cualquier arco (i, j) en G que est en uno de los estados de kilter que permite un flujo
decrecimiento, colocar un arco (j, i) en G', con un permitido flujo, para f'..stos arcos en G
que son miembros del estado que no permiten cambio de flujo, no colocar el arco en G'.
En G' se intenta construir un circuito conteniendo el arco out-of-kilter (p, q), encontrar
un tal circuito es llamado break through. Si tal un circuito es disponible, determinar un
flujo cambio !l, igual al mnimo cambio del flujo permitido sobre arcos del circuito en
G'. Cambiar el flujo sobre cada arco del asociado ciclo en G, por la cantidad !l. usando
la orientacin especificada por el circuito como la direccin de crecimiento. En particular
sea x;j = Xij + !l Bi (i, j) fuese miembro del circuito en G', sea x~j = Xij - !l si (j, i)
fuese miembro del circuito en G', sea x~j = Xij otro caso. Repetir la fase primal. Si no
hay circuitos conteniendo arco (p, q) que sea disponible en G', pasar a la fase dual. No
encontrar ningn circuito es llamado no break through.
Fase dual, determinar el conjunto de nodos de X que pueden ser alcanzados del nodo q
al lo largo de algn camino en G'. Sea X' = N - X, en G definamos:

sl = {(i,j): icX,jcX',Zij- Cij < O,Xij 5 Uij}

82 = {(i,j) : .X'' jtX, Zij- Cij >o, Xij ~ lij}


sea:
() = minimo(i,j)S1 us2 { 1 Zij - Cij 1, +oo}

Si e= +oo parar no hay solucin factible. Otro caso cambiar los { wihtT y d esto los
"}e ) r de acuerdo a
{ z - '-"tJ
~J ~.J t

icX
if.X'

(i,j)t(X,X) U (X',X') ===} (zij- Cij)' = Zij- cij


(i,j)t:(X,X') ===} (zij- Cij)' = (wi +O)- Wj- Cij = Zij- Cij +e.
(i,j)t:(X',X) ===} (zij- cij)' = wi- (wi +O)- Cij = Zij- Cij- e.

71
Ejemplo 4.5.1 Denotaremos out-of-kilter por out-kilter.

minimizar X12 + 5x23 + Ox24 - 3x34 - X45 + Oxst + 3xs2


sujeta a X12 - Xst = O.
X23 + X24 - Xt2 - X52 = 0.
X34- X23 = 0.
X45- X24 = 0.
X52 + X51 - X45 = 0.

2 S Xt2 S 5, o S X23 S 3, o S X24 S 5, o S X34 S 4, 2 S X45 ::; 5,


s
O ::; xs2 2, O S xs1 S 6.

Paso1
Fase inicial Xij 's =O, Wi 's =O.

Wi- Wj- Cij (X;j, l;j, Uij) out int kilter arcoG ~ij
W1 - W2 - C12 = --1 < 0 X12 =0< = 2 < U12 = 5
h2 out- kilter (1, 2) 2
W2 - W3 - ~3 = -5 < 0 X23 = l23 = 0 < U23 = 3 in- kilte1
W2 - W4 - C24 = 0 X24 = l24 = 0 < U24 = 5 in- kilte1 (2,4) 5
W4 - W5 - C45 = +1 > 0 X45 = 0 < l45 = 2 < U45 = 5 out- kilter (4,5) 5
ws - w1 - cs1=O xs1 = ls1 = O < u.51 = 6 in- kilter (5,1) 6
W3 - W4 - C34 = +3 > 0 X34 = l34 = 0 < U34 = 4 out- kilter (3,4) 4
W5 - W2 - C52 = -3 < 0 X52 = l52 = 0 < U52 = 2 in- kilter

Elegimos el arco (4, 5) out-of-kilter, hay un circuito conteniendo el arco (4, 5) esto es
{(4, 5); (5, 1); (1, 2); (2, 4)}, elegimos .6. = minimo{b. 12 , .6.24, .6.45, b.s 1 } = 2,
X12 = 0 + 2 = 2.
X24 = 0 + 2 = 2.
X45 = 0 + 2 = 2.
xs1 =O+ 2 = 2.
X52 = X34 = X23 = 0.
Paso2
Fase inicial Xij 's =O, wi 's =O.
W;- Wj- Cij (Xij, l;j, Uij) out int kilter arcoG ~ij
Wl - W2 - C12 = -1 < 0 X12 = h2 = 2 < U12 = 5 in- kilter
w2 - w3 - c23 = -5 < O X23 = l23 = 0 < U23 = 3 in- kilter
W2 - W4 - C24 = 0 l24 = 0 < X24 = 2 < U24 =5 in- kilter (2,4);(4,2) 3;2
W4 - W5 - C45 = + 1 > 0 X45 = l45 = 2 < U45 = 5 out - kilte1 (4,5) 3
Ws - w1 - Cst = O l 51 = O < xs1 = 2 < u51 = 6 in- kilter (5, 1); (1, 5) 4;2
W3 - W4 - C34 = +3 > 0 X34 = l34 = 0 < U34 = 4 out - kilte1 (3,4) 4
W5 - W2 - C52 = -3 < 0 X52 = l52 =0< U52 =2 in- kilter

Elegimos el arco (4, 5) out-of-kilter, no hay un circuito conteniendo el arco (4, 5), apli-
camos Zafase dual, X= {1,5}, y X'= {2,3,4}, (X,X') = {(1,2);(5,2)},(X',X)-
{(4, 5)}, 8 1 = {(1, 2); (5, 2)}, 8 2 = {(4, 5)}
() = minimo{l Z12- c12l, 1 Zs2- cs2l, 1 Z45- c4sl} = minimo{l,3, 1} =l.

72
Z12 - C12 = -1 +1= 0
Z45 - C45 = 1- 1=0
-3 + 1 = -2
Z52 - C25 =
Los dems Zij - e;/ s se quedan invariantes.
Paso3
Wi- Wj- Cij (Xij ,lij, Uij) out int kilter arcoG ~
J
W1 - W2 - C12 = 0 X12 = h2 = 2 < U12 = 5 in- ki1te1 (1, 2) 3
W2 - W3 - C23 = -5 < 0 X23 = 123 = 0 < U23 = 3 in- klter
'W2 - 'U/4 - C24 = 0 124 = 0 < X24 = 2 < U24 = 5 in- kilter (2,4); (4,2) 3;2
W4 - W5 - C45 = 0 x4s = 14s = 2 < u4s = 5 out- ki1ter (4, 5) 3
ws - w1 - cs1 = O 1sl = O < xs1 = 2 < u51 = 6 in- klter (5, 1); (1,5) 4;2
W3 - 'U/4 - C34 = +3 > 0 X34 = lJ4 = 0 < U34 = 4 out- kilter (3,4) 4
W5 - W2 - C52 = -2 < 0 X52 = l52 = O < u52 = 2 in- kilter

Elegimos el arco (4, 5) out-of-kilter, hay un circuito conteniendo el arco (4, 5) esto es
{(4,5); (5, 1); (1, 2); (2,4)}, elegimos~= minimo{~ 12 , ~24, ~ 45 , ~ 51 }= 2,
X12 = 2 + 2 = 4.
X24 + 2 = 4.
= 2
X45 = 2 + 2 = 4.
Xs1 = 2 + 2 = 4.

X52 = X34 = X23 = 0.


Paso4
Wi- Wj- Cij (Xij, lij, Uij) out int kilter arcoG ~ij
W1 - W2 - C12 = 0 h2 = 2 < X12 = 4 < U12 = 5 in- kilter (1, 2); (2, 1) 1;2
W2 - W3 - C23 = -5 < 0 X23 = h3 = 0 < U23 = 3 in- kilter
W2 - 'U/4 - C24 = 0 l24 = 0 < X24 = 4 < U24 = 5 in- kilte1 (2, 4); (4, 2) 1;4
W4 - W5 - C45 = 0 l45 = 2 < X45 = 4 < U45 = 5 in- kilter (4, 5); (5, 4) 1; 2
W5 - W1 - C51 = 0 l51 = O < x51 = 4 < u51 = 6 in- kilter (5, 1); (1, 5) 2;4
W3 - 'U/4 - C34 = +3 > 0 X34 = l34 = 0 < U34 = 4 out- kilter (3,4) 4
w5 - w2 - e 52 = -2 < O X52 = 152 = O < u52 = 2 in- kilter

Elegimos el arco (3, 4) out-of-kilter,X = {4, 5, 1, 2} y X' = {3}, 8 1 = (X, X') = (2, 3) y
82 = (X',X) = (3,4), () = minimo{i z23- c23l,l Z34- c34l} = minimo{5,3} = 3.
Z2 - C2 = O; l12 = 2 < X2 = 4 < 'U12 = 5.

Z23 - C23 = -5 + 3 = -2 < O; l23 = X23 = o < U23


Z24 - C24 = O; 124 = o < X24 = 4 < U24 = 5.
Z45 - C45 = O; l45 = 2 < X45 = 4 < U45 = 5.
Z51 - cs1 = O; O = ls1 < X51 = 4 < U51 = 6.
Z34 - C34 = 3- 3 = O; l34 = o = X34 < U34 = 4.
Zs2 - c52 = -2 < O; X 52 = O = ls2 < u 52 = 2.
Todos los flujos de cada arco estn en estado in-kilter, por lo tanto existe solucin optimal,
la solucin ptima! es x = (x 12, X23, X24, X34, X45, X 51, Xs2) = ( 4, O, 4, O, 4, 4, O), veamos que
esta solucin no es un vrtice del conjunto factible del problema primal:

73
O < x 12 , X24, X45, xs1 < 5, no toman como flujo sus cotas respectivas. Pero X23, X34 y X52
estn en el nivel de la cota inferior, sabemos que el problema de flujo de redes tiene una
variable artificial, para aplicar el mtodo simplex. Entonces la matriz nodo arco incidencia
del problema flujo redes con la variable artificial respecto a este flujo x, debe dividirse en
3, una matriz que represente los arcos en el nivel cero, otro matriz que represente los arcos
en el nivel superior, y otra matriz que represente los flujos bsicos. En este caso solo hay
dos, ya que ningn flujo Xij se encuentra en su nivel superior, pero la matriz que representa
a los flujos h.<~icos debe ser invertible, y en eRte caRo de mngo 5 y como Re estudio en el
problema de flujo de redes, debe representar un rbol de expansin en este caso la digrfica
que representa el problema es conexa, pero los arcos (1, 2), (2, 4), (4, 5), (5, 1) forman un
ciclo, y eso no ocurre en un rbol (conexa sin ciclos). Por lo tanto no es un vrtice para
el problema primal. En general, la solucin del problema primal(P) no representa un
vrtice-o

74
Captulo 5

El Problema de Flujo Mximo

Consideremos una digrfica G = G(N, r) dirigida con m nodos y n arcos. Nosotros


asociamos a cada arco (i, j) una cota interior t;obrc el flujo lij = O y una cota superior
sobre el flujo Uij, asumiremos que todos los Uij son enteros.
Nosotros deseamos encontrar la maxima cantidad de flujo que sale del nodo 1 hacia al
nodo m.

5.1. Formulacin del Problema


Sea f que representa la cantidad de flujo en la red del nodo 1 al nodo m, entonces el
problema de flujo mximo puede ser formulado como:

maximizar
si =1
sujeta a si if.1om ; ... (1) (P)
=m
Xij :S: Uij ; ,j = 1,2, ... m.
Xij ~ ; i,j = 1, 2 .... m.

No hay costos implicados en el problema flujo mximal (P), la ecuacin (1) del conjunto
de restricciones es llamado ecuacin de conservacin de flujo, supongamos que en esta
digrfica G no contiene los arcos (1, m) y (m, 1).
Donde la surnatoria expresada en la formulacin anterior, son tomados sobre la existencia
de arcos sobre la red, esto es llamado nodo-arco formulacin para el problema de flujo
mximo, adems la matriz de restriccin es una matriz nodo arco incidencia.
Notar que fes una variable y denotamos la matriz nodo-arco incidencia por A, nosotros
podemos reescribir el problema de flujo mximo [1], de la siguiente manera:

75
maximizar f
sujeta a (em- e1 )f + Ax =O
(NP)
x~u
x;::::o
El conjunto de restricciones del problema (N P), representan una digrfica consistiendo
de la digrfica G y el arco agregado (m, 1).
Observaciones:
l. Todos los nodos son de grado mayor igual a uno.

2. La digrfica G no necesariamente es conexa.

3. Hay a lo ms un arco entre cada par de nodos.

4. Sobre la digrfica G, si todos los arcos que inciden sobre el nodo 1, son arcos de
la forma (i, 1), entonces necesariamente f es igual a cero, y se pueden considerar
que los flujos sobre todo los arcos sean iguales a cero, para tener solucin factible
ptima!.

5. Observar que el problema (P), tiene solucin factible diferente del vaco, considerar
los flujos sobre todos los arcos igual a cero y de esta consideracin se obtiene f = O.

6. De:;;de que lo:;; flujos sohre los arcos en G son acotados superiormente, entonces si
observamos en la ecuacin de conservacin de flujo para el nodo 1, el valor de f es
acotado superiormente (igual inferiormente), el problema (P) tiene solucin, desde
que el problema (N P) tiene todos los flujos de los arcos y la variable f acotados.

7. Observar que el problema (N P) se puede resolver atravs del problema de out-of-


kilter.

Definicin 5.1.1 Conjunto-Cortante(Separando nodo m del nodo 1}, sea X


cualquier conjunto de nodos en la red conteniendo el nodo 1 pero no el nodo m. Sea
X'= N- X, entonces (X, X')_ {(i,j)t:r: iEX,jEX'}, es llamado un conjunto cortante
separando del nodo 1 al nodo m.

Definicin 5.1.2 Capacidad del Conjunto Cortante, sea (X,X') un conjunto cor-
tante sobre la red G, entonces u(X, X') = L(i,j)e(X,x') Uij es llamado capacidad del con-
junto cortante, si (X, X') es vaco se define u(X, X') =O.

Sea (X, X') cualquier conjunto cortante separando del nodo 1 al nodo m sobre G. Sumando
las ecuaciones de conservacin de flujo del problema de flujo mximo sobre todos los nodos
en X, definamos (X',X) = {(i,j)tT: it:X',jt:X} y nosotros obtenemos:

L Xij- L Xij = f ... (2)


(i,j)e(X,X') (i,j)e(X' ,X)

76
Definamos: (X, X)= {(i,j)f.f: if.X,jf.X} y (X',X') = {(i,j)f.f: if.X',jf.X'}.
Para demostrar de manera ms formal esta ltima ecuadn, fijo itX, la ecuacin de
conservacin de flujo en i,

L
X X'
Xij + L Xij - JcX,icX
icX,Jcx
L Xji - L
- X' X
Xji = { JO S~ ~
Sl 'l 1
-.L
1
1
~' ,.J~ .1~ ,,.~

Definamos: (X,X) = {(i,j)f.f: if.X,jf.X} y (X', X')= {(i,j)f.f: if.X',.icY'}.


Sumando ahora sobre todos los nodos i en X, como ltX:

2: Xij + 2: Xij - 2: Xji. - L Xji = f


(i,j)c(X,X') (i,j)e(X,X) (j,i)c(X' ,X) (j,i)t(X,X)

desde que:

finalmente:
L Xij - L Xji = f.
(i,j)E(X,X') (j,i)e(X 1 ,X)

Observar que si (X, X') es vaco y (X', X) diferente del vaco.

L Xji =f.
(j,i)e(X' ,X)

si (X', X) es vaco y (X, X') diferente del vaco

L Xij = f
(i,j)c(X,X')

si tanto (X',X) como (X,X') son vacos, entonces f =O.


Usando Xij ~ O y Xij ~ uij en (2), nosotros obtenemos:

L Uij- o~ f.
(i,j)e(X,X')

Lema 5.1.1 Los valores de f de cualquie-r flujo factible del problema de flujo mximo so-
bre la digrfica G es menor igual que la capacidad u(X, X') de cualquier conjunto cortante
(separando del nodo 1 al nodo m) (Ver [1] p.476,).

5.2. El dual del Problema de Flujo Mximo


Considere el dual del problema (P) [1]:
minimizar 2:::~ 1 2:::J=1 Uijhij
sujeto a Wm- w1 ~ 1 (PD)
Wi - Wj + hij ~ 0 , j = 1, 2, ... ,m.
hij ~O i,j = 1,2, ... ,m.

77
Donde las sumatorias y restricciones expresadas en la formulacin anterior, son tomados
sobre la existencia de arcos en la red G, tanto en la fundn objetivo, corno el valor de hij
Donde w = {wihEN corresponde a las ecuaciones de conservacin de flujo y h = {hij }ci,j).:r
corresponde a x S u. Notar que la primera restriccin del problema dual arriba asociada
corresponde con el flujo f del nuevo arco agregado (m, 1) cuya columna es em - e 1 U na
tpica columna de la matriz nodo arco incidencia A esta asociado a un arco (i,j), en el
cual conduce a la restriccin dual wi - Wj + hij 2 O.
Observacin: como el problema (P) primal tiene solucin ptima entonces el problema
dual(PD) tiene solucin ptima, y los valores de las funciones objetivos para el problema
dual y primal evaluados en la solucin ptimal dual y solucin ptimal primal respectiva-
mente coinciden en valor .0
Sea (X, X') cualquier conjunto cortante y consideremos el problema dual (P D). Si noso-
tros definimos:
o si EX
'Wi=
1 si iEX'
1 si (i, j)t(X, X')
hij = ... (3)
o otro caso
Por lo tanto este particular eleccin de w y h proporciona una solucin factible al problema
dual, esto es:
Es evidente que hij ma~or igual a cero por la misma definicin y Wm- w1 = 1- O= 1 ~ 1,
desde que 1 est en X y m est en X'.
Para probar que wi- Wj- hij 2 O donde (i,j) est en r, hay varios casos, veamos.
ie:X,jEX' entonces Wi- Wj + hij =O- 1 + 1 =O~ O.
itX, jtX entonces wi - 'Wj + hij = O - O+ O = O ~ O.
.x' ,jtX entonces wi- Wj + hiJ = 1- O+ O= 1 2 O.
;X' ,jtX' entonces wi- Wj + hij = 1- 1 +O= O 2 O.
En todos los casos satisface Wi - Wj + hij ~ O.
Si nosotros reemplazamos la definicin (3) de hij en la funcin objetivo del problema
dual (P D), es claro que el valor de la funcin objetivo va a ser igual al valor de la
capacidad del conjunto cortante (X, X') (ya que hij = 1 para (i,j)E(X,X')), entonces nos
concentraremos en estudiar la capacidad del conjunto cortante (X, X').
Demostraremos que la capacidad del minimal conjunto cortante [1] (esto es, existe un
conjunto cortante (Y, Y'), tal que para todo conjunto cortante (X, X') se cumple:
u(Y, Y') S u(X, X'); (Y, Y') es el conjunto rninimal cortante.) es igual al valor del flujo
mximo f. Nosotros probaremos esto de manera constructiva.

5.3. Un algoritmo para el problema de flujo mximo


Del lema 5.1.1 si nosotros encontrarnos un flujo y un conjunto cortante tal que u( X, X') =
f, nosotros tenemos el flujo mximal (y el conjunto minimal cortante), nosotros hacemos

78
esto constructivamente:
Supongamos que nosotros comenzarnos con cualquier flujo factible entero eu G, tomemos
Xij = O para todo arco (i, j) sobre G. De G construmos una red G' como sigue.

l. Si arco (i,j) est en G y Xij < Uij, entonces agregamos arco (i,j) en G' con cambio
permitido de flujo de valor ~j = Uij- Xij sobre la red G.

2. Si arco (i, j) est en G y Xij > O, entonces agregamos arco (j, i) en G' con cambio
permitidio de flujo de valor ~ij = Xij sobre la red G.

En formulacin matemtica:

. .) G
Sea (~. J t :::::>
{ Xij < Uij ==:::?- agregamos (i, j)r:.G' , f:lij = Uij - Xij
,
Xij > O ==:::?- agregamos (j, i)tG ' f:lji = Xij

Ahora, en G' existe dos posibilidades:


caso1, existe una trayectoria P en G', del nodo 1 al nodo m.
caso2, no existe trayectoria en G' del nodo 1 al nodo m.
Iniciado el algoritmo, supongamos que estamos en el caso 1 nosotros podemos construir
un nuevo flujo factible a partir del flujo actual con creciente (> O) valor objetivo. Sea Ll
igual al mnimo permitido cambio del finjo sobre la trayectoria P del nodo 1 al nodo m
en G', esto es, !:l = mnimo{ !:lij : (i, j) est en la trayectoria} , Ll es un entero positivo
desde que los Uij son enteros positivos; sea P' la cadena asociada a G respecto al camino
P en G'; construimos un nuevo flujo factible como sigue, agregamos Ll a flujos sobre arcos
de la cadena asociada en G con la dileccin de la trayectoria en G', restamos Ll a flujos
sobre arcos de la cadena asociada en G en sentido contrario de la trayectoria en G', y
dejamos a los otros flujos invariantes; el nuevo flujo es factible, esto se debe a la ecuacin
de com;ervacin de flujo sohre cada nodo para el finjo actual y el cambio de finjo oobre
cada arco de la cadena p' formado en G; y el valor de la funcin objetivo para el problema
primal(P) es incrementado esto es j' = f + Ll, esto se debe, a que la nueva ecuacin de
conservacin de flujo sobre el nodo 1 es una sumatoria formado por dos factores, un factor
Ll y el otro factor que es la ecuacin de conservacin de flujo del nodo 1 para el flujo actual.
De manera explcita el cambio de flujo sobre cada arco en G se expresa por:

Si (i, j)tP :::::> Xij = Xij + Ll


(i,j)cr Si (j,i)tP :::::> xij = xii- Ll
{
otro caso :::::> Xij = Xij + O

Asumiendo que las cantidades Uij son finitas, si estamos en el caso 2, caso 1 solo puede
ocurrir un nmero finito de veces (en el sentido que solamente se puede construir una
cantidad finita de trayectorias, puede ocurrir que iniciando el algoritmo estemos en el
caso 2) desde que el incremento del flujo f en cada iteracin es de Ll que a la vez es un
entero positivo mayor que cero, como existe solucin, ese incremento va ocurrir hasta un
nmero finito de pasos; cuando el caso 2 ocurre, definamos X el conjunto de nodos en G'

79
que pueden ser alcanzados a lo largo de alguna trayectoria en e' a partir del nodo l. Sea
X' = N - X y notar que el nodo m pertenece a X', ya que no existe una trayectoria que
une nodo 1 al nodo m. Considere los arcos en e entre X y X'. Primero, cada arco (i, j)
en e de X a X' debera tener Xij = uii ( ya que si Xij < uii, entonces (i, j)EG', como i
est en X, entonces j estn en X. esto es una contradiccin). Segundo, cada arco (i,j)
en e de X' a X debera tener Xij = O(ya que si Xij >O, (j, i)te', como j pertenece a X,
entonces i debera pertenecer a X, pero es una contradiccin), sabemos que:

Xij- Xij =f.


iEX iEX'
jEX' jEX
Reemplazando se obtiene:

L Uij = f u(X,X') = f
iEX
jEX'

En caso de que (X, X') e.s vaco entonces u( X, X')= f =O, veamos esto, si (X', X) es igual
a vaco se vio anteriormente que la capacidad del conjunto cortante u( X, X') = f =O, y
para el caso (X', X) diferente del vaco como por definicin u(X, X') =O, se sabe que:

L Xji = f
(j,i)e.(X' ,X)

, por la parte explicada del caso 2 se tiene que Xji = O, entonces de la ecuacin anterior
f =O, esto es f = u(X,X') =O.
Nosotros constructivamente hemos probado lo siguiente.

Teorema 5.3.1 (Teorema del fi~jo m.a.r.im.al y corte m.nim.al). El valor mximo jbJdo f
en G es igual a la capacidad del conjunto minimal cortante en G (Ver [1] p.478.).

5.4. Resu1nen del Problema de Flujo Mximo


Inicializacin paso:
Seleccionar un conjunto de factibles enteros, decir cada Xij =O. Paso Principal:
De G construir e' como sigue:

l. todos los nodos en e estn en e'.


2. Si Xij < Uij en e, reemplazar (i,j) en e' con el permitido cambio de flujo sobre
(i,j) de .ij = Uij- Xij

80
3. Si Xij >O en G, reemplazar (j, -i) en G' con el permitido cambio de flujo de .t::,.ji = Xij

Escoger una trayectoria P en G' del nodo 1 al nodo m. Si tal trayectoria no existe, parar,
la solucin optimal es obtenida. Otro caso, sea .6. el mnimo cambio permitido de flujo
sobre P en G'. Agregamos .t1 al flujo sobre arcos de la cadena saociada en G con la direc-
cin de la trayectoria en G', restar .t1 al flujo sobre arcos de la cadena asociada en G en la
direccin opuesta del cRmino en Q', y dejRmos todos los otros arcos sin finjo de cambio,
repetir el paso principal.

Ejemplo 5.4.1 Resolver el problema:

maximizar {!} ..
sujeta a X12 + X13 = f.
X23 + X24- X12 =O.
X34 - X3 - X23 = 0.
-X24 - X34 = -f.
0~ X12 ~ 1,0 ~ X3 ~ 4,0 ~ X23 ~ 2,0 ~ X24 ~ 3,0 ~ X34 ~ 2.

Definamos un conjunto factible enteros: x 12 = x 13 = X23 = X24 = X34 = O.


Paso1: ConstruyRmos una digrficR G' a partir de la red G definida por el problema de
flujo mximo. Sabemos que: u 12 = 1, u 13 = 4, u 23 = 2, u 24 = 3, u 34 = 2. Construyamos la
nueva red a':
X12 = 0 < U2 = 1 entonces agregamos arco (1, 2) en Q',
x 13 = O < u 13 = 4 entonces agregamos arco (1, 3) en G',
x 23 =O< u 23 = 2 entonces agregamos arco (2, 3) en G',
x 24 =O< u 24 = 3 entonces agregamos arco (2, 4) en G',
X34 = O < u34 = 2 entonces agregamos arco (3, 4) en G'.
La red G' esta formado por los arcos {(1, 2), (1, 3), (2, 3), (2, 4), (3, 4)}, todos los nodos en
G estn en G'. Escojamos una trayectoria en G' del nodo 1 al nodo 4, sea la trayectoria
P = {(1, 2), (2, 3), (3, 4)}, entonces el mnimo permitido cambio de flujo:
.t1 = mnimo{U2- X12, U23- X23, U34- X34} = minimo{1, 2, 2} = 1 sobre la trayectoria.
Calculemos el nuevo flujo actual:
X12 := X12 + .t::,. = 0 + 1 = l.
X3 := X3 =O.

X23 := X23 + .b,. = 0 + 1 = l.


X24 := X24 = 0.

X34 := X34 + .b,. = -t 1 = l.


Paso2: Construyamos una digrfica G' a partir de la red G definida por el problema de
flujo mximo:
X2 = 1 > l2 = 0 entonces agregamos arCO (2, 1) en Q',
x 13 =O< u 13 = 4 entonces agregamos arco (1, 3) en G',

81
X23 = 1 < u23 = 2 entonces agregamos arco (2, 3) en a',
x 23 = 1 > l 23 =O entonces agregamos arco (3, 2) en a',
X24 =O< u 24 = 3 entonces agTegamos arco (2, 4) en a',
X34 = 1 < u 34 = 2 entonces agregamos arco (3, 4) en a',

X34 = 1 > ls4 = 0 entonces agregamos arco (4, 3) en a'.


La red a' est formado por los arcos { (1, 3), (2, 1), (2, 3), (2, 4), (3, 2), (3, 4), (4, 3)}, todos
los nodos en a estn en a'. Escojamos una trayectoria en a' del nodo 1 al nodo 4, sea
la trayectoria P = {(1,3), (3,2), (2,4)}, entonces el mnimo permitido cambio de finjo
.6. = mnimo{ u 13 - x 13, x 23 - l 23 , u 24 - x 24 } = mnimo{ 4, 1, 3} = 1 sobre la trayectoria.
Calculemos el nuevo flujo actual:
X12 := X12 = l.
X3 := X3 +~ = + 1= l.
X23 := X23 - .6. = 1 - 1 = O.
X24 := X24 + .. = 0 + 1 = l.
X34 := =l.
X34

Paso3: Construyamos una digrfica a' a partir de la red G definida por el problema de
flujo mximo:
X12 = 1 > lr2 = 0 entonces agregamos arco (2, 1) en a',
x 13 = 1 < u 13 = 4 entonces agregamos arco (1, 3) en a',
X13 = 1 > l1 3 =O entonces agregamos arco (3, 1) en a',

X23 = 0 < U23 = 2 entonces agregamos arco (2, 3) en a',


X24 = 1 < U24 = 3 entonces agregamos arco (2, 4) en a',
x 24 = 1 > l 24 = O entonces agregamos arco (4, 2) en a',
x 34 = 1 < u 34 = 2 entonces agregamos arco (3, 4) en a',
X34 = 1 > [34 = 0 entonces agTegamos arco (4, 3) en a'.

La red a' e;t formado por lo; arcos { (1, 3), (2, 1), (2, 3), (2, 4), (3, 1), (3, 4), (4, 2), (4, 3)},
todos los nodos en a estn en a'. Escojamos una trayectoria en a' del nodo 1 al nodo
4, sea la trayectoria P = {(1, 3), (3, 4)}, entonces el mnimo permitido cambio de flujo
.6. = minimo{ u 13 - x 13 , u 34 - x 34 } = minimo{3, 1} = 1 sobre la trayectoria. Calculemos el
nuevo flujo actual:
X12 := X12 = l.

X13 := X13 + .. = 1 + 1 = 2.

X23 := X23 = 0.

X24 := X24 = l.

X34 := X34 + .. = 1 + 1 = 2.

Paso4: Construyamos una dit,'Tfka a' a partir de la red G definida por el problema de
flujo mximo:
X12 = 1 > [2 = 0 entonces agregamos arco (2, 1) en a',

X3 = 2 < U13 = 4 entonces agregamos arco (1, 3) en a',

x 13 = 2 > [ 3 =O entonces agregamos arco (3, 1) en a',

82
1

X23 =O< U23 = 2 entonces agregamos! arco (2, 3) en G',


x 24 = 1 < u 24 = 3 entonces agregamos arco (2, 4) en G',
X24 = 1 > l24 =O entonces agregamos arco (4, 2) en G',
X3 4 = 2 > ls4 = O entonces agregamos arco (4, 3) en G'.

La red G' est formado por los arcos {(1, 3), (2, 1), (2, 3), (2, 4), (3, 1), (4, 2), (4, 3)}, todos
los nodos en G estn en G'. No existe una trayectoria en G' del nodo 1 al nodo 4, entonces
solucin optimal es obtenida:
(x12, X13, X23, X24, X34) = (1, 2, 0, 1, 2).
La cantidad de flujo f en la red G del nodo 1 al nodo 4 es f = x 12 + x 13 = 1 + 2 = 3.
Recordando X el conjunto de nodos en G' que pueden ser alcanzados a lo largo de una
trayectoria G' a partir del nodo 1, entonces X = {1, 3} y X' = {2, 4} entonces (X, X') =
{(1, 2), (3, 4)} y por ltimo u( X, X') = u 12 + u 34 = 1 + 2 = 3; finalmente ~e conduye
u(X, X') = f = 3.o

83
Captulo 6

El Problema del camino ms corto.

Supongamos que nosotros tenemos una red digrfica conexa G = G(N, f) con m nodos
, n arcos y un costo Cij asociado a cada arco (i, j) en G, vamos a suponer que los costos
son nmeros enteros .El objetivo es encontrar el camino mas corto del nodo 1 al nodo m
en G, el costo del camino es la suma de los costos sobre los arcos del camino.

6.1. La formulacin matemtica del camino ms cor-


to.
La formulacin matemtica se expresa como:

Minimizar :,1 ~1 CijXij

L;~ L;;'~ ~
1 si i=1
Sujeto a X;j- Xki { o si i=/=1om (P)
-1 si i=m
Xij = 0 O 1 ;i,j=1,2 .... ,m.

Donde las sumatorias y O - 1 requerimientos son tomados sobre la existencia de arcos en


G.
Si las restricciones O - 1 son reemplazados por Xij mayores iguales a O para todo arco
(i,j), nosotros obtenemos el problema similar del costo mnimo sobre una red G, sabemos
que la matriz nodo arco-incidencia [1] asociado con la ecuacin de conservacin de flujo es
totalmente unimodular, adems el lado derecho de las ecuaciones de conservacin de flujos
est compuesta por un -1 , un + 1 y lo restantes valores son O; si suponemos que existe
una solucin ptimal entonces el mtodo simplex [1] debera obtener una solucin optima
entera, donde el valor de cada variable es cero o uno; en condm;in nosotros podemos
resolver el problema de optimizacin entera como un problema de programacin lineal.
La reformulacin del problema se expresa como:

84
Minimizar :::,1 LJ=l CijXij

I:l"~l Lk~,
1 si i=1
Sujeto a X;; - Xki = { o si i=/=1om (P)
-1 si i=m
X>
~J-
0 ;i,j = 1,2 .... ,m.

l. De la ecuacin de conservacin de flujo para el nodo 1, va a existir un arco de la


forma (1, i), igual para el nodo m va existir un arco de la forma (j, m).

2. Camino del nodo i 0 a ip [1], es una sucesin de arcos


P = {(io,ii),(it,i2), ... ,(ip-I,ip)} en el cual el nodo-de de cada arco es el mismo
que el nodo-a de cada arco precedente en la ~ucesin P.

3. Si el conjunto factible del problema primal (P), tiene conjunto factible diferente del
vaco (si existe un camino del nodo 1 al nodo m, es claro, que el conjunto factible es
diferente del vaco): entonces se garantiza que el problema P tiene solucin, desde
que el valor de las variables de los flujos factibles son binarias.

Consideremos el problema dual del camino ms corto [1]:

Maximizar WI - Wm

sujeto a wi- Wj-::; Cij ;i,j = 1,2 ... ,m.


wi sin restricciones ; i = 1, 2... , m.

Donde las restricciones requerimientos son tomados sobre la existencia de arcos en G.


Si hacemos un cambio de variable w~ = -wi; i = 1, 2, ... ,m. Obtenemos la siguiente
reformulacin del problema:
1 1
Maximizar 'Wm- wl
1 1
sujeto a W-
J ~'1
W~- '-'?, < ;i,j = 1,2 ... ,m.
1
wi sm restncc10nes ;i = 1, 2 ... ,m.

Vamos a ver que w~ - w~ representa la distancia ms corta del nodo 1 al nodo i en


condiciones de optimalidad (en trminos de costos.).

6.2. Un procedimiento para el camino ms corto cuan-


do todos los costos son no negativos
Considerando el caso cuando Cij ~ O. En este caso, un muy simple y eficiente procedi-
miento existe para encontrar el camino ms corto del nodo 1 al nodo m.
Paso de inicializacin
Definir w~ = O y definamo~ X = { 1}.
Paso Principal.

85
Definamos X' =X- N y consideremos los arcos (X,X') = {(,j)Er: iEX,jEX'}. Defi-
namos:
w~ + Cpq = Minimizar{ w~ + Cij}
(i,j)t(X,X')
Luego definamos w~ = w~ + Cpq, luego agregamos q al conjunto X. Repetimos el procedi-
miento exactamente m- 1 pasos (incluyendo la del paso inicial, es decir, en total son m
iteraciones), entonces detenemos el algoritmo, y la solucin optimal es encontrada.
Acaba en m iteraciones, porque vamos agregando a X en cada paso, un nodo distinto
a las anteriores, hasta que X tenga todos los m nodos; es claro qne la actuali:zacin de
X en cada paso del algoritmo, se debe tener que (X, X') diferente del vaco, si en un
paso del algoritmo (X, X') es vaco entonces el algoritmo no va funcionar para encontrar
una solucin; si suponemos que para cada nodo, existe al menos un camino del nodo 1 al
respectivo nodo, el algoritmo ftmciona, se garantiza que (X, X') diferente del vado para
cada paso del algoritmo.

6.2.1. Validacin del Algoritmo


Probemos que el algoritmo obtiene una solucin optimal; asumamos, inductivamente,
que para cada iEX, w; representa el costo del camino ms corto del nodo 1 al nodo (es
decir, sobre cada camino que une el nodo 1 al nodo , se suman los costos de los arcos que
pertenecen al camino, y se obtiene el costo total de ir del nodo 1 al nodo ; sobre todos
estos caminos, se toma el camino con el menor costo total obtenido) . Esto es ciertamente
verdad para = 1 , ya que w~ = O, el nodo 1 est esttico en si mismo, no genera movi-
mientos, no genera desplazamiento. Consideremos el algoritmo en algn paso cuando un
nodo q va hacer agregado al conjunto X. Supongamos que:

w~ + Cpq = Minimo{ w~ + Cij}


(i,j)E(X,X')
Demostraremos que el camino ms corto del nodo 1 al nodo q tiene longitud w~ = w~+cpq
Sea P cualquier camino del nodo 1 al nodo q, vamos a demostrar que la longitud de P
(la suma total de los costos del camino), es mayor igual que w~, desde que el nodo 1 esta
en X y el nodo q esta actualmente en X', entonces el camino P debera contener un arco
(i,j), donde iEX y jEX' (esto podra ser = p y j = q), el camino de la longitud de P
consta de (P debe tener un arco de la forma (X, X'), supongamos que no exista arco de la
forma (X, X'),. evidentemente como el camino sale del nodo 1, el siguiente nodo siguiendo
el camino est en X, hasta llegar a q que debera estar en X, una contradiccin, q no
est en X.):

l. La longitud del nodo 1 al nodo .

2. La longitud del arco (, j), esto es, Cij.

86
3. La longitud de j a q.

entonces:

l. La longitud del nodo 1 al nodo i ~ w~, hiptesis de induccin.

2. La longitud del arco (i, j) es igual a Cij.

3. La longitud de j a q es mayor igual a cero, ya que los costos son no negativos.

Por lo tanto la longitud de Pes mayor o igual que w~+Cij, por lo tanto tomando el nnimo
de todos los w~ + Czk para todo (l, k)c(X, X'), se obtiene que la longitud de P es mayor
igual que w~, esto completa la induccin argumentacin y el algoritmo es verificado; notar
que w~ representa el camino mas corto del nodo 1 al nodo q, esto se debe a la construccin
del propio algoritmo; el algoritmo consta de solamente m pasos, donde m - 1 pasos son
del paso principal, se han construido m - 1 arcos, estos m - 1 arcos no forman ciclos,
desde que en cada paso del algoritmo el arco est en (X, X'), y a X se van agregando
valores, este conjunto de arcos corresponde a un arbl de expansin [1]. Observar que w~
representa el camino ms corto del nodo 1 al nodo i, al agregar el arco (i, j)(icX, jcX') con
un costo Cij, tenemos que w; w;
= +Cij representa el camino mas corto del nodo 1 al nodo j.

6.3. Un procedimiento con arbitrarios costos para el


camino ms corto
Hay un rpido y eficiente algoritmo para el problema del camino ms corto, con costos
negativos, sin embargo, nosotros asumiremos, que la suma de los costos de cualquier cir-
cuito en G es no negativo; sin esta suposicin, un viajero debera proceder directamente
al circuito en G y pasar por este circuito un nmero infinito de veces wn su costo decre-
ciendo despus de cada vuelta alrededor del circuito.
El algoritmo trabaja con el problema dual del camino m.'3 corto, recordar que el problema
dual con la sm;titncin w~ = -wi para i = 1, 2, ... ,m es dado por la sig;uiente expresin:
1 1
Maximizar Wm -w 1
1 1
sujeto a W-
J Wz - < C;1 ; i, j = 1, 2 ... , m.
1
wi sm restncc10nes ;i = 1,2 ... ,m.

Donde las restricciones requerimientos son tomados sobre la existencia de arcos en G. Des-
de que la funcin objetivo y las restricciones implican solamente diferencia en variables,
nosotros podemos definir una variable w~ sobre cualquier valor real, por ejemplo w~ = O,
en este caso consideramos a 1 como la variable artificial (observar que w~ puede asumir
cualquier valor).
El algoritmo procede corno sigue (nosotros supondremos usar la convencin que oo +a=

87
oo, y a- oo = -oo, donde -oo <a< +oo).
Paso Inicial
Definir w~ = O y w~ = oo si i =/= l.
Paso Principal
Si w~ ~ w~. + ci.j para todo i, j = 1, 2, ... , m y (i, j)cr, parar la solucin optimal es encon-
trada. Otro caso, seleccionar solamente un solo arco (p, q) tal que w~ > w~ + Cpq y definir
w~ = w~ + Cpq' repetir el procedimiento como sea necesario.

Para identificar los arcos sobre el camino ms corto nosotros iniciaremos en el nodo m;
si Wm = oo entonces no existe un camino del nodo 1 al nodo m (porque si existe un
camino del nodo 1 al nodo m, el valor actual de la variable dual( w;, = oo) de cada nodo
en el camino , se va ir actualizando; hasta que, en un paso del algoritmo sobre un arco
del camino que conecta al nodo m, se actualiza Wm = oo a un valor de Wm < oo.). Si
Wm < +oo, entonces debera existir un nodo k tal que w~- w~ = Ckm, el arco (k, m) es
un arco en el camino, hacemos lo mismo para el nodo k, y repetimos el argumento hasta
el nodo 1 sea alcanzado (teniendo en cuenta que wk < oo.).

6.3.1. Verificacin del algoritmo para costos negativos


Un no simple camino es un camino que contiene uno o mas circuitos.
Proposicin 6.3.1 Si w;, < oo, entonces 1cpresenta el costo de algn camino ,no nece-
sariamente simple , del nodo 1 al nodo i.
Prueba (Ver [1] p.489) En efecto, demostraremos por induccin sobre el nmero de itera-
ciones del camino ms corto (una iteracin es un cambio solamente de uno de los elementos
de w~). E:;;to es verdad para la iteracin 1, nosotros comcl17;amos con w~ =O, y w: = +oo
para i =/= 1, w~ representa el costo del camino vaco: el cual no contiene arcos del nodo 1
al nodo l.
Asumamos que el resultado es verdad para la iteraccin t y que w;, (
< +oo) representa
el costo de algn camino del nodo 1 al nodo i. Consideremos la iteracin t + 1, si para
cualquier l y j, se cumple que w; + Czj ~ w~, entonces paramos; no va haber cambios en
cualquiera de los w~, se mantiene respecto a la iteraccin t, y aplicamos la hiptesis de
induccin.
Supongamos que existen algn i y j tal que w;, + cii < w;,cambiamos w;
= w;, + Cij, como
w;, < oo, w~ se mantiene igual como en la iteracin t, por hiptesis existe algn camino
Pi (no necesariamente simple) del nodo 1 al nodo i con costo w;,; definamm; el camino
Pi = Pi U{ (i, j)}, este camino tiene costo w~ = w;, + Cij, y el resultado es verdad en la
iteracin t + l. 0

Teorema 6.3.1 Si w~ < oo, entonces existe un camino P del nodo 1 al nodo k a lo largo
del cual L:(i,j)cP Cij = w~ (Ver[1] p.490.).

88
Corolario 6.3.1
w~ ~ minimizarpk ( L Cij).
(iJ)ePk

Donde Pk es cualquier camino (no necesariamente simple} del nodo 1 al nodo k (Ver[1]
p.490.).

Si no hay circuitos negativos, el costo de cualquier camino no simple es mayor o igual


que el correspondiente camino simple, despus de borrar los circuitos, recordar que los
circuitos tienen costo total una cantidad no negativa.
Entonces en la desigualdad del corolario 6.3.1 el mnimo va hacer tornado sobre caminos
simples:
w~ ~ minimizarPk:camino simple( L Cij),
(i,j)ePk

w~ va estar acotada inferiormente por un nmero entero, que es el costo del camino ms
wrto simple; tener en cuenta que hay una cantidad finita de caminos simples sobre una
red.
Finalmente veamos que L:i w~ decrece por un nmero entero positivo en cada iteracin,
esto es:
. ., t 1 1 1 1 1
fi nal Iterac10n ,:w11 w 2 , , wi, ... , wj, ... , wm.
se tiene que existe (i, j) :
. ., 1
w;
1 1 1 1 1
w;
> w~ + Cij, se cambia por w~ + Cij
fi nal Iterac10n t + : w 1 , w 2 , .. , wi, ... , wi + Cij, ... , wm
surnatoria en la iteracin t : St = 2.::~ 1 w~.
sumatoria en la iteracin t + 1 : St+l = (L:k=l,kh w~) + w~ + Cij La diferencia de la
sumatoria es: ..t = St- St+ 1 = w;- (w~ + Cij) >O, un entero positivo ya que w~ y Cij w;,
son enteros.
La diferencia es un nmero entero positivo mayor que cero, entonces St > St+l, el al-
goritmo para en un nmero finito de pasos ya que la sucesin { ~t}tcz+ es estrictamente
decreciente y son enteros positivos, acotado por el cero, por lo tanto es un conjunto finito.
Existe una manera de determinar si la red contiene circuitos negativos? Si, supongamos
que no existen circuitos negativos, definamos:
P~: es el camino ms corto (se puede tomar un camino simple) entre todos los caminos
del nodo 1 al nodo k.
A = { (u, V) : Cuv > O, (U, V)tP}.
B ={(u, v) : Cuv :=;O, (u, v)tP}.
'W~ ~ minimopk( L Cij) = L Cuv = L Cuv + L Cuv ~ L Cuv
(i,j)EPk (u,v)cP~ (u,v)EA (u,v)eB (u,v)eB

w~ ~ L Cij
Cij<O
Se llega a la conclusin que si algn w~, permanece por debajo de L:c;j<O Cij entonces
existe un circuito negativo.

89
Nosotros hemos demostrado que el algoritmo termina en un nmero finito de pasos. Si en la
tenninadu del algoritmo w:n = oo , entonces no existe camino del nodo 1 al nodo m; para
w:n < oo, por la proposicin 6.3.1 existe un camino (no necesariamente simple) del nodo 1
al nodo m, entonces, de dicho camino existe un nodo l y arco {l, m }tal que w:n- w; = Czm
con w; < oo, de manera similar existe un nodo k y arco {k, l} del camino tal que w; - w~ =
Ckz, continuando de esta manera, nodo 1 es eventualmente alcanzado; supongo que existe

un circuito cerrado en dicho camino (no necesariamente simple), entonces sean los nodos
i 1 , i 2 , ... , p que participan en el circuito cerrado, {(i, i 2 ); (i2, i 3 ); (i 3 , i 4 ); ... ; (ip_ 1 , i 1 )}, ip =
i 1 , entonces:

1 1

wi 1 + Ci1i2 = wi 2
1 1
wi2
1
+ Ci2i3 = wi3
1

wh + Ci3i4 = wi4

Sumando las igualdades anteriores se obtiene:

Entonces como la suma de los costos del circuito cerrado es cero, entonces, podemos
(;onsiderar slo camino simple.
Sea el camino simple (equivalente trayectoria) {(1 = j 0 ,j1 ); (j1 ,h); (j2 ,j3 ); ... ; (jp_ 1 , m=
jp)}, definiendo Xji..Ji+I = 1, para i =O, 1, 2, .. ,p- 1; y lm; dems flujos definidos a ceros,
esto es una solucin factible del problema primal(P); adems:

1 1

Wj1
1
+ Cjd2 = Wh.
1

Wi2 + Cj2j3 = Wj3"


1 1
W; + Cjsj
3 4 = Wi4.

1 1

Wip-1 + Cjp-tm = Wm.

Como w~ =O, entonces w:n


= Cjj2 +chis+ C;3 ; 4 + .... + Cjp_ 1 m , satisface la relacin de
complementariedad, entonces se obtiene el camino ms corto del nodo 1 al nodo m.
Ejemplo 6.3.1 Resolver el problema:
minimizar { 2x12 - x13 - 4x23 + 3x24 - 6x34}.
sujeta a x12 + X13 = l.
X23 + X24 - X12 = 0.
X34 - X3 - X23 = 0.
-X42- X43 =-l.
X12, X3, X23, X24, X34t{0, 1}.

90
Definamos :w~ =O, w; = w; = w~ = oo.
Paso 1: w~ + c13 = O - 1 = -1 < w; = oo, definamm; w~ = w~ + c13 = -l.
entonces: ( w11 , w21 , w31 , w41 , w51) = ( O, oo, -1, oo ) .
Paso 2: w~ + c12 =O+ 2 = 2 < w; = oo, definamos w; = w~ + c12 = 2.
entonces: ( w 1 ,w2 ,w3 ,w4 ,w5 = (0,2, -1,oo).
1J 1 1 1)

Paso 3: w; + c23 = 2-4 = -2 < w; = -2, definamos w~ = w; + c23 = -2.


1 1 1 1 1)
entonces: ( w1 ,w2 ,w3 ,w4 ,w5 = (0,2,-2,oo).
Paso 4: w~ + C34 = -2-6 = -8 < w~ = oo, definamos w~ = w~ + C34 = -8.
ent onces: (w1 , w2 , w 3 , w4 , w5 = (O , 2, - 2, - 8) .
1 1 1 1 1 )

Paso 5:
w~ + c12 =O+ 2 = 2 2:: 2 = w;,
w~ + c 13 =O- 1 = -1 2:: -2 = w;,
w; + c23 = 2 - 4 = -2 2:: -2 = w;,
w; + c24 = 2 + 3 = 5 2:: -8 = w~,
w; + C34 = -2-6 = -8 2:: -8 = w~.
Entonces se cumple para todo arco (i,j) que: w: + Cij 2:: w~, parar la solucin optimal es
encontrada. Por ltimo:
W~ = w; + C34 = w; + C24 + C34 = W~ + C12 + C23 + C34 = C12 + C23 + C34 = -8,
entoncei:i la solucin optimal es: (x 12, X13, X23, x24, X34) = (1, O, 1, O, 1).o

91
Captulo 7

Flujo Multiartculos

Consideremos un ejemplo, supongamos que tenemos tres nodos y tres arcos


{(1, 2), (2, 3), (3, 1)}; hay 3 nmltiartculo~ en d cual fluyen atrav~ de la red, la fuen-
te(ferta) para el artculo 1 est en el nodo 1 y el destino(demanda) para el artculo
1 est en el nodo 3. La fuente y el destino para el artculo 2 son los nodos 2 y 1 res-
pectivamente. Finalmente, la fuente y el deRtino para el artculo 3 Ron loR nodoR 3 y 2
respectivamente. Con la restriccin que la suma de todos los artculos fluyendo sobre un
arco debera no exceder el arco capacidad Uij = 1, cual es el maximal suma de flujo
artculo JI+ h +fa, posible en la red?
Enwntrar la suma mxima de lo~ flujos para los 3 artculo~, es relativamente simple,
desde que solamente hay un camino que cada artculo puede tomar desde su fuente hacia
su destino, los caminos para el artculo 1, 2 y 3 son respectivamente:

P 1 = {(1, 2), (2, 3)}

p2 = {(2, 3), (3, 1)}


p3 = {(3, 1), (1, 2)}
Esto se puede formular como:

maximizar {!I + h +fa.}


!I+/2:::;1.
f + !3 :::; l.
h+fa::;l.
f' h,J3 ?:: o.
Si nosotros queremos soluciones enteraR, si el flujo de un artculo sobre su respectivo
camino es una unidad, los dems artculos quedaran bloqueados, esto es, su flujo debe
ser cero, y por lo tanto la suma total de flujos es 1; sin embargo, si nosotros no queremos
soluciones enteras, supongamos que nosotros ponemos ~ unidad de flujo sobre el artculo
1 que fluye sobre P 1 , ~ unidad de flujo sobre el artculo 2 que fluye sobre P2 , por ltimo

92
~ unidad de flujo sobre el artculo 3 que fluye sobre P3 , ninguno sobre la capacidad total
de cada arw es violado, y la suma total de flujo es ~.
Problemas de flujos multiartculo tienen una estructura especial, que permite la aplicacin
de tcnicas de descomposicin.

7.1. El multiartculo problema de flujo de costo mni-


mo
Supongamos que estarnos en una red dib1Tiica G = G (N, r) wnexa con m nodos y n
arcos en la cual definimos las siguientes variables:

l. t representa la cantidad total de artculos.

2. ui cota superior capacidad de flujo para el artculo i sobre los arcos de la red, esto
es un vector.

3. Upq cota superior capacidad de flujo para el artculo i sobre el arco (p, q).

4. u representa el vector de cota superior capacidad sobre la suma de todos los


artculos fluyendo en el arco (p, q).

5. c representa el vector de costos sobre los arcos en la red para el artculo i.

6. cipq es el costo unitario del artculo i sobre el arco (p, q).

7. b representa el vector de ofertas del artculo i en la red.

8. biq es la oferta si (bq > O) demanda (bq < O) del artculo i en el nodo q.

La formulacin para el prohlemR. de flujos multiartculo de costo mnimo es:

Minimizar ;=1 e[ Xi.


sujeto a L:~= 1 Xi ~ u. (P)
Axi = bi ; i = 1, 2, ... ,t.
0~ Xi ~ Ui ; i = 1, 2, ... ,t.

Donde X es el vector de flujos del artculo i sobre la red G y A es la matriz nodo arco
inddenda [1] de la digrfka G, este proLlema es llamado nodo arw formulacin paia el
problema de flujos mutliartculo de costo mnimo, este problema posee una estructura
diagonal por bloques; por lo tanto nosotros podemos aplicar las tcnicas de descomposi-
cin para dicha estructura. El multiartculo problema de flujo de costo mnimo consta de
n+mt restricciones y (t+ 1)n variables (incluyendo las variables de holgura sobre las res-
tricciones de capacidad mxima de la suma de flujos de todos los artculos sobre cada arco
, en total son n variables de holguras, estarnos ignorando las restricciones O ~ Xi ~ U.),

93
adems la sumatoria de componentes para cada bi es cero.
Cont:iideremos la aplicacin de la tcnica de det:immpot:iicin [2] para el rnutiartkulo pro-
blema de flujo de costo mnimo.
Definamos Xi = {XiERn : Axi = bi, O :S Xi :S ui} para i = 1, 2, ... ,t. asumamos que cada
componente ui es finito , por lo tanto Xi es acotado, adems Xi es un poliedro convexo,
entonces cada elemento de Xi, puede ser expresado como una combinacin de los puntos
extremos de Xi [5), como sigue:
Sean { Xil, Xn, ... , XikJ los puntos extremos de Xi y Xi un elemento cualquiera de Xi,
ki
Xi = L AijXij ... (1)
j=l

De donde,
ki
LAij = 1 .... (2)
j=l

)..ii 2:: O; j = 1, 2, ... , ki .... (3)


Denotando el vector de variable de holgura por s, a partir de (1), (2) y (3) nosotros
obtenemos la siguiente reformulacin para el problema (P):

Minimizar { E~=l Ej~l (cf Xij) Aij }


sujeto a E~=l Ej~l XijAij +S= 'U ... (a)
El~1 Aij = 1 ;i=1,2, ... ,t .... (b) (NP)
Aij 2:: O ; i = 1, 2, ... , t
;j=1,2, ... ,ki
S 2:: 0.
Supongamos que nosotros tenemos una solucin bsica factible para el multiartculo pro-
blema de costo mnimo P en termino de )..~js y sea la variable dual un vector denotado
por (w, a) corret:ipondiente a la ;oludn ht:iica factible (w tienen componentes y a tiene
t componentes; donde las t componentes provienen de la restriccin Ej~ 1 Aij = 1, para
i = 1, 2, ... ,t., y las n componentes son de los puntos extremos de cada X que son ele-
mentos de~.).
Para tener una idea intuitiva de lo anterior, supongamos para el caso particular t = 2,
tenemos dos artculos, entonces, las restricciones (a) y (b) del problema (N P) pueden ser
expresados matricialmente como, antes definamos:
xl = { Xtt.Rn : Axl = bt, o S Xt :S ut} = conv{ Xn, Xt2, ... , XtkJ
X 2 = {x2d~n: Ax2 = b2, O S x2 S u2} = conv{x21, X22, ... , X2kJ

94
.Xn

.X12

[T
X12
1
o
X!k 1
1
o
X21
o o
1
X22

1
X2k 2
o
1 H
A1k1
.X21

.X22
-
[I]. . (e)

.X2k2
S

(1: es la matriz identidad de orden n.)


En la parte (e) la matriz que se encuentra en la parte izquierda de la igualdad, calculamos
su transpuesta ( denotaremos la transpuesta de una matriz D como DT.)
T
Xn 1 o
T
X2 1 o
T
o
[: l
Xlk1 1
T
X21 o 1
T
X22 o 1

T
x2kz o 1
1 oo
(I : matriz identidad de dimensin n.). En este caso a es de dimensin 2 y w es de
dimensin n.
Por lo tanto la variable dual factible es dado por las siguientes dos condiciones:

l. Wpq s; O para cada Spq (la variable de holgura de la restriccin de (a).).

Si cualquiera de estas restricciones es violada, la correspondiente variable (Spq o Aij) es un


candidato para entrar en la base del problema maestro. Si Wpq > O, Spq es una candidato
para entrar a la base .
Nosotros tenemos tres formulaciones denotamos (PD) al problema dual de (NP):

(P) =====?- (NP) =====?- (PD)

Del problema (P), si tenemos t artculos, hallamos un vrtice de Xi( {xi : Axi = bi, O s;
Xi :::; ui}) para cada artculo i, denotemos por x~, x;, x;, . , x~ los vrtices de los artculos

95
1, 2, 3, ... , t respectivamente.
Como el Problema (N P) tiene n + t restricciones, eliminando las restricciones Aij mayores
iguales a cero, entonces la matriz de restricciones para el problema (N P) contiene n + t
filas por k1 + k2 + .... + kt + n columnas (que corresponden a las variables del problema
(N P)); es fcil ver que la matriz de abajo es inversible, una matriz bsica para el problema
(N P) y una submatriz de la matriz en la parte izquierda en (e) de la igualdad:
1 1 1
X x2 xt I
1 o o o
B= o 1 o o
o
o o 1 o
Si a partir de e~ta matriz bsi<.;a se obtiene una solucin b~ica factible del problema
N P entonces es una matriz bsica factible, para evitar notaciones, supongamos que la
matriz B es bsica factible: si tal matriz B no es bsica factible entonces encontramos
otra matriz bsica factible y hacemos el mismo procedimiento descrito a continuacin con
la matriz B.
Fijamos dicha matriz bsica factible B (una manera de encontrar una matriz bsica facti-
ble, es aplicando el problema del flujo en red e.~ a cada artculo, { AXi = bi, O ::::; Xi ::::; Ui}),
definamos el problema maestro [1] de la siguiente manera:

Minimizar {(e, x~).A 1 + {e2, x~)>.2 + .... + {et, x~)>.t}


Sujeta a: B[.A, >.2, : At, S, s2, ... , snf = [u, 1, ... , lf
[>., A2: ... , At, S, s2, ... , Sn] ~O
Aplicamos el mtodo simplex para hallar la variable dual(w,a) (la primera iteracin del
mtodo simplex) para este problema maestro , si denotamos por
es = [(c 1 x~), ... , (Ctx~), O, ... , O) los costos bsicos a la~ variable~ corre~pondiente~ a la
matriz B, entonces [w, a]B = Cs, el objetivo de esta variable dual es que se cumplan
las condiciones 1 y 2 que se mencionaron anteriormente y evaluemos que pasa cuando las
condiciones 1 o 2 son violadas.
Como [w,a]B = CB = [(e1 ,x~), ... ,(Ct,X~),O, ... ,O) entonces es claro que w = 0(::::; O) y
adems (w- ei, x~) + ai =O, entonces condicin 1 no es violada.
Condicin 2: para un dado artculo i, sea el subproblema de programacin lineal [1]
definido como:
maximizar { (w- Ci, xi) + ai}
sujeto a: Axi = bi, O ::::; Xi ::::; ui.
ERtf~problema de optimi7.acin, tiene solucin, esto es un problema de programacin lineal
continua [4] (este problema de optimizacin se puede resolver por una de las eficientes
tcnicas para resolver un slo artculo del problema de flujo en redes [1]), con un conjunto

96
de restricciones compacta. Sabemos que una solucin de este problema es un vrtice, el
conjunto de vrtice; del conjunto de restricciones es finito, si tal solucin cumple que
( (w - e,, Xij) + aij > O), esta restriccin de xii entra en la base maestro, esto es, se
agrega una columna al problema maestro sobre la matriz de restricciones, la variable Aij
entra como la nueva variable bsica, y se aplica el mtodo pivote del simplcx para sacar la
vriable bsica del problema maestro; tener en cuenta que x~ satisface (w-e,, x~)+ai =O,
por lo tanto x~ es diferente de Xij; redefinimos el problema maestro de la siguiente manera,
definamm; Rntes Yii = [xij, O, .. , 1, ... , OjT donde el nmero 1 de Yii corresponde 1 a la
componente n + i.

Minimizar {(e, x~)At + (c2, x;)>..t + .... + (Ct, x~)At + (e,, Xij )Aij}
sujeto a: [B, Yij][A, A2: .. , At S, s2, ... , Sn, Aij]T = [u, 1, ... , 1jT
1

[At, A2, ... , At 1 S, 82, ... , Sn, Aij] 2 O


Aplicamos de nuevo el paso del mtodo simplcx y observar que los (w, a) se van ir reactua-
lizando, verificamos si se violan las condiciones 1 y 2, si la condicin 2 se viola, hacemos
lo mismo anteriormente, si la condicin 1 es violada, veamos esto.
Condicin 1: esto es cuando una r.oordenada del vector w es mayor que cero, supongamos
Wpq > O en este paso se agrega a la matriz de restricciones la columna correspondiente a

la variable de holgura Spq al nuevo problema maestro, esta variable va hacer la variable
bsica entrante y se aplica el pivote del mtodo simplex para hallar la variable bsica
saliente.
La cuestin es si siempre se puede agregar una columna nueva al conjunto de restriccio-
nes?, evidentemente no, va a ver iteraciones, donde la columna ya est en el problema
maestro, por ejemplo en la condicin 2 tuvimos un subproblema ,si la solucin de dicho
subproblema evaluado en la funcin objetivo es mayor que cero, dicha solucin puede
corresponder a una columna que ya se encuentra en el problema maestro , y entonces
no se agrega nada, encima se puede dar la posibilidad del que el problema maestro sea
idntica a la formulacin del problema (N P), y seguir desarrollando el mtodo sirnplex,
sin agregar nada despus.
Resumen de la descomposicin tcnica aplicado al problema de flujos multi-
artculo de costo mnimo
Inicializacin paso:
Iniciamos con una solucin bsica factible para el problema maestro. Almacenar B- 1 y
b' = B- 1 { u }. y (w, a) = c~B-I, donde c~i = cf Xij (una alternativa aplicando el mtodo
1
de penalizacin de gran M [1) .) .
Paso Principal
Sea la variable dual (w, a), correspondiente a la solucin bsica factible actual para
el problema maestro. Si cualquiera Wpq > O entonces la correspondiente Bpq es un
candidato para entrar a la base maestro. Si Wpq :::::; O para cada arco, consideremos
el siguiente i - th subproblema:

97
maximizar { (w- :;, xi) + ai}
sujeto a: Axi = bi, O ::; xi ::; 'IJ,i

Esto es para un slo artculo problema del flujo en redes. Si la solucin Xik para este
problema tiene Zik- cik = (w- ci)xik +. ai >O, entonces Aik es un candidato para
entrar a la base maestro.

Si no hay candidatos para entrar a la base, entonces paramos. La solucin optimal es


encontrada. Otro caso, seleccionamos un candidato variable, actualizamos de acuer-
do , B- 1 ( epq ) para Spq y B- 1 (
Xik ) para Aik en la tabla simplex, y pivoteamos,
O ei
esto actualiza la tabla del simplex. Retornando al paso l.

7.2. Caracterizacin de una base para el proble-


ma de flujos multiartculo de costo mnimo

Vamos aplicar directamente el mtodo simplex al mutarticulo problema de flujo de


costo mnimo. Notar primero que el sistema Axi = b tiene rango m- 1 adems re--
cordar que esto es necesario agregar una variable artificial para cada artculo, todas
las restricciones en forma matricial es dada por, denotemos por X dicha matriz:

.._,..,
XI .._,..,
X2 ... .._,..,
Xt .._,..,
X

' ' ... ' I }nfilas


A' o ... o o }m filas
X= o A' ... o o }mf'ilas
...

o o ... A' o }m filas


donde A' = [A, em] y ' = [J, O], donde I es la matriz identidad n x n e ' es una
matriz n x n + l. Selen:ionando una submatriz bska de esta matriz X, nosotros
obtenemos:
E E2 Et E
A'1 o o o
o A'2
E'= o o

o o ... A't o
donde {E1 , E 2 , ... , Et_ 1 , Et} y E son matrices formado por columnas de I' y de I
respectivan1ente. La columna localizacin del artculo 1 para una particular columna

98
de E 1 , identifica el arco usado en A~. Desde que B' es una matriz bsica, cada
A: debera contener una subrnatriz que genere Rm., por lo tanto cada A: debera
contener una matriz m x m bsica. Particionando A: en [Bi, Di] donde Bi es una
matriz bsica para Axi = bi, notar que Bi debe contener la columna correspondiente
a la variable artificial, desde que, Bi es una base para solamente un artculo problema
flujo en redes, Bi debe corresponder a un rbol expansin con raz del problema de
flujo en redes con la variable artificial como la raz [1]; similarmente particionamos
Ei, en[~, E;,']. Sustituyendo en B' y reordenando las columnas, nosotros obtenemos:

& E~ E; E"t E
O D1 O o o
B'= O O D2 o o

o o
La matriz B' tiene la siguiente estructura general:

B' = [E' B
E"
D
El
O

Denotando [ : ] por b' (donde b es un vector columna consistiendo de b, b,, ... , b,

dado en ese orden), el sh;tema bsico B' XB = b' se reduce a:

X
E' E' E u
xv b ... (4)
B D O
SB

X
donde xB es descompuesto en xv ; este sistema no es fcil para resolver, sin embargo
SB
utilizando un cambio de variables, el sistema puede ser resuelto fcilmente. Nosotros
explicaremos esto cortamente:

X 1 -B- 1 D o 1
Xf
xv o 1 o xv
1
... (5)
SB o o 1
1
SB

Esto es una transformacin no singular y por lo tanto nosotros obtenemos un sistema


X
equivalente a (4) para trabajar con esto. Sustituyendo la variable XB = xv de (5)
SB

99
en (4), nosotros obtenemos:

E' E" E
I -B- 1 D o 1

X
u
o o o 1
I Xn
B D b
oo I
1

SB

1
X
1 u
Xn = b ... (6)
B O o 1
SB

La ;q,runda e<;uadn Bx~ = b eu () e; fdl de resolver, desde que esto c.onespoude


a una serie de rboles expansin raiz, uno para cada artculo.
Considerando el primer conjunto de ecuaciones en la transformado sistemas en (6)
despel'i de tener resuelto para la variable x~,
1

1
E " - E'B-lD E 1 x,n = 1 u- E' x 1' 1
SB

La solucin es :

Requiere que la matriz 1 E"- E' B- 1 D E 1 sea invertible. Mientras esta matriz no
sea fcil para invertir como B. Aqu E es una matriz de columnas unitarias corres-
pondientes a las variables de holgura en la base, ahora vamos investigar la matriz
[E" - E' B- 1 D], la columna tpka de [E" - E' B- 1 D], corrcRpondicntc al artculo
k es dado por eij - E~B; 1 aij, donde eij es un vector unitario en Rn con uno en la
fila correspondiente del arco (i, j), y aij es un vector en R"" con 1 en la fila i y -1
en la fila j; sabemos que Yii = B; 1 aij corresponde a la cadena del nodo i al nodo
j atravs del rbol de expansin, enton<;es -B; 1 aij corresponde a la cadena de j
a i en el rbol expansin del artculo k, cada coeficiente en -B; 1aij corresponde
a una variable en Bk. Ahora E~ es una matriz n x m con sus columnas vectores
unitarios en Rn identificando a las variables bsicas en Bk, por lo tanto - E~B; 1 aij
simplemente expande el vector -B; 1 aij de Rm en un vector en Rn asignando a cero
a los coeficientes correspondientes a todos los arcos no bsicos del artculo k, esto
es, -E~B; 1 aij es un vector en~ correspondiente a la cadena del nodo j al nodo i
en el rbol expansin raz del artculo k. Finalmente e i j - E~B; 1 aij corresponde al
nico ciclo formado con el arco (i, j) que es agregado al rbol de expansin. Veamos
un ejemplo:

Ejemplo: Sea la red digrfica G del problema flujo en redes, que consta de 4 nodos y
los arcos {(1, 2), (1, 3), (2, 3), (2, 4), (3, 4)}, consideremos el rbol expansin formada

100
por los arcos {(1, 2), (2, 3), (3, 4)} con la variable artificial, esto corresponde a una
matriz bsica.
Calculemos: e24 - E~ B: 1a24 , donde:

o o o1
oo o o
E~= o 1 o o
o oo o
o o 1 o
1 o o o
B=
-1 1 o o
o -1 1 o
o o -1 1
a24 = [0, 1,0, -1)r.

e24 = [0, O, O, 1, Of.

Donde la submatriz inicial correspondiente a este artculo 1 es:

(1, 2) (1, 3) (2, 3) (2, 4) (3, 4) e4

1 o o o o o
o 1 o o o o
o o 1 o o o
o o o 1 o o
o o o o 1 o
1 1 o o o o e12 e13 e23 e24 e34

-1 o 1 1 o o -
[
a12 a13 a23 a24 a34

o -1 -1 o 1 o o o o o o
o o o -1 -1 1
o o o o o o
o o o o o o

o o o o o o
Hadendo los ckulos:
- B: 1a24 = [O, -1, -1, OJT, donde esto representa el ciclo formado por el arco (2, 4)
con los arcos bsicos, esto es {(2, 4), (3, 4), (2, 3)} en la direccin del arco (2, 4); (2, 3)
y (3, 4) estn en direccin contraria Ron colocadas con -1, los arws h.<>icos que no
participan del ciclo son O.
-E~B1 a 24 = [0, O, -1, O, -1] extiende -B1a24 a todos los arcos, con arcos no bsicos
colocados en O.
e24 - E~ B 1a24 = [O, O, -1, 1, ~ 1] solamente agrega uno al arco no bsico (2, 4). 0

101
Por lo tanto, sabiendo B, es fcil formar E" - E B- 1D.
La importante inclusin es la siguiente:

Teorema 7.2.1 Una transformada base matriz para el problema de flujos rnulti-
articulo de costo mn'irno conesponde a un expansin Tbol para cada artculo ms
un conjunto de ciclos y holguras .
Una vez conocido [E~Bk 1 aij], nosotros podernos resolver para x~ y s~; y con el vec-
X'
tor x~ , nosotros podemos determinar las variables xn, BE y x (Ver [1] p.505.).
1
SE

Ejemplo 7.2.1 Resolver el siguiente problema de programacin lineal:

rnznzmzzar {5xu2 + X123 + Ox134 + lx141 + 4Xl42- 2x212 + Ox223 + 2x234- X241 + 6x242}.
sujeta a xn2 + x212 :::; 4.
Xt23 + X223 :::; 3.
X134 + X234 :::; 7.
Xl41 + X241 :::; l.
Xl42 + X242 :::; 5.
O:::; xn2:::; 3,0:::; x123 S 4,0:::; x134 S 5,0 S x141:::; 5,0 S x142:::; l.
o:::; X212 S 4,0:::; X223:::; 2,0:::; X234:::; 3,0:::; X241:::; 4,0:::; X242:::; 6.

R.cpresentacin matricial de las restricciones, incluyendo variables de holgura sobre


las restricciones de capacidad mxima.

Xtt2 Xt23 Xt34 X41 :t't42 .,, X212 X223 X234 X241 X242 "'2 812 823 834 s4, 842
-5 -1 o -1 -4 o 2 o -2 1 -6 o o o o o o o
1 o o o o o 1 o o o o o 1 o o o o 4
o 1 o o o o o 1 o o o o o 1 o o o 3
o o 1 o o o o o 1 o o o o o 1 o o 7
o o o 1 o o o o o 1 o o o o o 1 o 1
o o o o 1 o o o o o 1 o o o o o 1 5
1 o o -1 o o o o o o o o o o o o o 2
-1 1 o o -1 o o o o o o o o o o o o 1
o -1 1 o o o o o o o o o o o o o o -1
o o -1 1 1 1 o o o o o o o o o o o -2
o o o o o o 1 o o 1 o o o o o o o o
o o o o o o -1 1 o o -1 o o o o o o -3
o o o o o o o -1 1 o o o o o o o o 3
o o o o o o o o -1 1 1 1 o o o o o o

En este problema hay dos artculos, denotemos:

1 o o -1 o o
-1 1 o o -1 o
A=
o -1 1 o o o
o o -1 1 1 1

U= (u112,u123,UI34,u141,ul42) = (3,4,5,5,1).
u2 = (u212, U223, 'U234, U241, U242) = (4, 2, 3, 4, 6).
b = (2, 1, -1, -2).

102
b2 = (0, -3, 3, 0).
u=(4,3,7,1,5)
e = (eu2, e123, el34, el41 el42) = (5, 1, 0, 1, 4).

Recordando:
X 1 = {x 1 t:R5 : Ax1 = bbO ~ x 1 ~u}.
x2 = {x2t:.R5 : Ax2 =~.o~ X2::;; u2}
Supongamo; que noootro; iniciamo; con dos vrtices:
Sea x 11 = (2, 3, 2, O, O) vrtice de X 1
Sea X21 = (0, o, 3, o, 3) vrtice de x2
Definamos el problema maestro:

Minimizar {(e, x 11 ).Au + (e2, X21).A21}


Sujeta a: B[812, 83, 834,841,842, .Au, A21JY = [u, 1, ... , 1f
[812, 83, 834, 84, 842, .Au, .A21] ;:::: O

Una matriz bsica para el problema maestro de programacin lineal denotado por
B:
1 o o o o 2 o
o 1 o o o 3 o
o o 1 o o 3 3
B= o o o 1 o o o
o o o o 1 o 3
o o o o o 1 o
o o o o o 1 1
Calculando la matriz inversa de B denotado por B- 1 y las variables duales repre-
sentado por [w, a]t:R5 x R 2 :

1 o o o o -2 o
o 1 o o o -3 o
o o 1 o o -2 -3
B-1= o oo 1 o o o
o o o o 1 o ::..:,.3
ooo oo 1 o
ooo o o o 1
(e1, x11 ) = ((5, 1, O, 1, 4), (2, 3, 2, O, O)) = 13.
(e2,X 21 ) = ((-2,0,2,-1,6),(0,0,3,0,3)) =24.
es= [O o o o o (e, xu) (e2, X21) ) = [ O o o o o 13 24]

103
1 o o o o -2 o
o 1 o o o -3 o
o o 1 o o -2 -3
[w, a] = CBB- = [ O o o o o 13 24]
1
o o o 1 o o o
o o o o 1 o -3
o o o o o 1 o
o o o o o o 1

[w, a] = [w, a, a2] = CBB- 1 = [ O o o o o 13 24]


La solucin factible es:

b = B- 1 [u 1 1 r = [2 o 2 1 2 1 1 r.
El valor de la funcin objetivo evaluado en la solucin factible:

eBb = 37.

Se tiene que w es el vector cero entonces w menor igual al vector cero satisface la
condicin l. Veamos la condicin 2, para el primer artculo, sea el subproblema de
programacin lineal, se tiene w- c1 = -e11 entonces la formulacin del subproblema
es:

maximizar { ( -e1 , x 1 ) + a 1 }
sujeto a: Ax 1 = b1 , O~ x 1 ~ u1 .

Aplicando problema de flujo de redes para un artculo se obtiene una solucin a


esto:
X12 = (2,3, 2, 0, 0),

evalnRnrlo en la funcin objetivo rlif'ha solucin:


z 12 - c 12 = (- e1 , x12) + a 1 = (( -5, -1, O, -1, -4), (2, 3, 2, O, O))+ 13.

Z12 - e12 = -13 + 13 = 0.


Para el segundo artculo, sea el subproblema de programacin lineal, se tiene w-e2 =
-e2 , entonces la formulacin del subproblema es:

maximizar {( -e2, x2) + a2}


sujeto a: Ax2 = b2, O~ x2 ~ u2.

Aplicando problema de flujo de redes para un artculo se obtiene una solucin a


esto:
X22 = (3, 0, 3, 3, 0),

evaluando en la funcin objetivo dicha solucin:


Z22- C22 = (-c2,X22) + 0:2 = ((2,0, -2, 1, -6), (3,0,3,3,0)) + 24.

104
Z22 - C22 = 3 + 24 = 27.
Se viola la :::;egunda condicin, de:::;de que z22 - c 22 es mayor que cero, entonces ..\22
es un candidato para entrar a la base maestro. Calculando:

B-
1
[ X22 o 1 r = [ 3 o o 3 -3 o 1 r
entra a la base maestro, se agrega una columna al problema maestro sobre la
..\ 22
matriz de re:::;triccione:::;. Varno:::; determinar que variable b:::;ica del problema mae:::;tro
tiene que salir. La tabla del arreglo simplex:

[w, a]l ~B, 1 27


1
1
B- b ( 3 O O 3 -3 O 1 )

o o o o o 13 24 37 27
812 1 o o o o -2 o 2 3
813 o 1 o o o -3 o o o
834 o o 1 o o -2 -3 2 o
841 o o o 1 o o o 1 Q
842 oo o o 1 o -3 2 -3
>..u oo o o o 1 o 1 o
,\21 o oo o o o 1 1 1
Pivoteando, la variable bsica 8 41 es la variable saliente de la base del problema
maestro.
o o o -9 o 13 24 28 o
812 1 o o -1 o -2 o 1 o
813 o 1 o o o -1 o o o
834 o o 1 o o -2 -3 2 o
... (3)
>..22 o o o 31 o o o 31 1
842 o o o 1 1 o -3 3 o
>..n o oo o o 1 o 1 o
>..21 o o o 3-1 o o 1 32 o
Actualizando el problema maestro:

Minimizar + (c2, X21)>..21 + (c2, X22)..\22}


{ (c1, xn)..\1
Sujeta a: C[812, 813,834,841,842, >..u, >..21, >..22JT = [u, 1, ... , 1]r

[812, 813,834,841,842, >..n, >..21, >..22] ~O

105
Dode la matriz C est definido como:
1 oo oo 2 o3
o 1 o oo 3 oo
o o 1 oo 3 3 3
C= o oo 1 o o o 3
o oo o 1 o 3 o
o oo oo 1 o o
o oo oo 1 1 1
El arreglo del simplex en (3), actualiza las variables duales y la matriz inversa B,
se tiene:
[w, a]= [ O o o -9 o 13 24]
Para cada variable de holgura s11q, se tiene que Wpq( = O) es menor igual a cero,
entonces condicin 1 no es violada. Veamos condicin 2:
w - c1 = [0, O, O, -9, O] - [5, 1, O, 1, 4] = [-5, -1, O, -10, -4] y a 1 = 13. Entonces el
subproblema de programacin lineal para el artculo 1:

maximizar { (w- c1 , x 1) +a}


sujeto a: Ax1 = b1 , O~ x 1 ~ u 1 .

Aplicando flujo de redes para un slo artculo, la solucin optimal encontrada es


x 13 = (2, 3, 2, O, O) entonces:
z13 - x 13 = (w- C, x 13 ) + a 1 = (( -5, -1, O, -10, -4), (2, 3, 2, O, O))+ 13.
Z3 - X3 = -13 + 13 = 0.
Se tiene w- c2 = [0,0,0,-9,0]- [-2,0,2,-1,6] = [2,0,-2,-8,-6) y a 2 = 24.
Entonces el subproblema de programacin lineal para el artculo 2:

maximizar { (w- c2 , x 2 ) + a2}


sujeto a: Ax2 = b2, O ~ x2 ~ u2.

Aplicando flujo de redes para un slo artculo, la solucin optimal encontrada es


X23 = (3, O, 3, 3, O) entonces:
Z23- X23 = (w- c2, X23) + a2 = ((2, O, -2, -8, -6), (3, O, 3, 3, O))+ 24.
Z3- X3 = -24 + 24 = 0.

Condicin 2 no es violada desde que z 13 - x 13 y z 23 - x 23 son menores iguales a cero.


Parar, solucin optimal es encontrada, del arreglo del simplex en (3) se tiene que:
.A22 =l, .Au = 1 y .A21 = ~. entonce::; la ~:>olucin optimal e~:>:
x1 = x 11 = (2, 3, 2, O, 0),
x2 = !x22 + ~X21 = i(3, O, 3, 3, 0) + ~(0, O, 3, O, 3) = (1, O, 3, 1, 2).0

106
Captulo 8

Problema de Transporte

8.1. Definicin del problema de transporte


Considerando m puntos de origen, donde cada origen i tiene una oferta ai unidades
de un particular artculo; en adicin, hay n destinos puntos, donde el destino j
requiere bi unidades del artculo. Nosotros asumimos que aj, bi > O. Asociado con
cada arco (i, j), del origen i al destino j, hay un costo unitario Ci.j para transporte. El
problema es determinar el patrn factible de flujo de los orgenes hacia los destinos
que minimiza el costo total de transporte.
Sea Xij el nmero de unidades de envo a lo largo del arco (i, j) del origen i al
destino j. :\tfs asumimos que el total de oferta es igual al total de demanda. cuya
formulacin matemtica es: m n
ai = Lbi.
i=l j=l

Si el total de oferta excede al total de demanda, entonces un nodo destino puede ser
creado con demanda bn+l = Li ai- 'L.i bi, definamos t;,n+l =O para i = 1, 2, ... ,m.
Asumiremos de aqu en adelante que el total de oferta es igual al total de demanda,
el problema de transporte de programacin lineal puede ser formulado como sigue:

107
Minimizar CuXn + C2X12 + ... + CnXln + c21X21 + c22X22 + ... + C2nX2n+
Cml Xml + Cm2Xm2 + + CmnXmn
Sujeto a Xn + X12 + ... + Xln =a.

X21 + X22 + . + Xzn = az.

Xml + Xm2 + + Xmn = am.


X u + X21 + + Xml = b.
X12 + X22 + + Xm2 = b2.

Xn + X2n + + Xmn = bn.


Xu, X12, ... , Xn, X21, X22, ... , X2n, ..... , Xm1 1 Xm2, ... , Xmn 2:: 0.

Definamos:

Donde:

ei, em+j son vectores unitarios en Rm+n, con unos en la fila i y en la fila m + j
posiciones respectivamente. Notar en las definiciones que ai es un escalar y aij es un
vedor. Con estal:l definiciones el problema de transporte toma la siguiente forma:

Minimizar dx.
Sujeto a Ax = b, x :;::: O.

La matriz A, con dimensin (m+ n) x (mn) tiene la siguiente especial forma:

1 o o
o 1 o
A=
oo 1
I I I

Donde 1 es un vector fila de n elementos formado solo por unos y I es una matriz
identidad n x n. La matriz A que se obtiene del problema de transporte tiene una
estructura especial.

108
8.2. Factibilidad del problema de transporte
Bajo la suposicin que la oferta total es igual a la demanda total, el problema de
transporte siempre posee una solucin factible. Por ejemplo de una solucin factible:
aibi
Xj = --;-
Donde d = I:i ai = L:i bi.
aibi a
LXij =
j
:L-
j d
= - Lbi =ai.
d j

ab1 b
~ Xij = ~ ~ = ~ ~ ai = bi.
~ ~ ~

Debido que ai y bi son positivos, cada Xij es acotado, esto es:

El problema de transporte es un problema de programacin lineal en el wal es


acotado (funcin objetivo y conjunto factible son acotados), con solucin factible,
entonces el problema de transporte posee una solucin optimal.

8.3. Propiedades de la matriz A.


(Atlkl(m + n, mn))
Asumamos que m, n ;:::: 2, tenemos que m+ n ::::; mn, se cumple que el rango( A) ::::;
m+ n, y adems rango( A) =f. m+ n, esto se debe a que la suma de las m primeras
filas de A van hacer igual a la suma de las ltimas n filas de A, formadas solo por
unos, por lo tanto las m + n filas de A son linealmente dependientes, entonces el
rango de A es menor igual que m + n - l.
Veamos que el rango de A es m+ n- 1, necesitamos encontrar solo una submatriz
(m + n - 1) x (m + n - 1) de A en la cual es no singular, sea la matriz A' definido
por:
1
A= (an,a2m,amn,an,a2,,al(n-1))
Ignorando la ltima fila en A', redifiniendo la matriz A', representando dicha matriz
en forma matricial tenemos:

A'= ( Im Q ) .
O fn-1

Es claro que la matriz A' es de rango m + n - 1 entonces el rango de A es igual a


m + n - l. Sabiendo que el rango de A es m + n - 1 agregaremos a A un vector
columna em+n correspondiente a una nueva variable artificial Xa, al aumentar la
columna tenemos que el nuevo rango de A es m + n.

109
8.3.1. Total unimodularidad de la matriz A

La matriz A es totalmente unimodular si el determinante de cualquier submatriz


cuadrada de esta matriz tiene valor -1, O y l.
En efecto, veamos por induccin, desd~ que todas las entradas de la matriz son O 1
cada 1 x 1 submatriz tiene determinante el valor de cero o uno; adems, cualquier
(m + n) x (m + n) submatriz tiene el determinante el valor de cero, desde que el
rango de A es m + n - l. Veamos que cualquier k x k submatriz(1 < k < m + n)
tiene la requerida propiedad.
Por induccin sobre k, supongamos que la propiedad es verdad para Ak_ 1 , esto es
det(Ak- 1 ) = +1, -1 O, veamos por casos:
Supongamos que cada columna de Ak esta formada por dos unos, entonces uno de
los unos ocurrir en un origen fila y los otros unos en un destino fila, en este caso la
suma de los orgenes fila.<~ de Ak <'.S igual a la suma de los destinos filas de Ak, por
lo tanto las filas de Ak son linealmente independientes esto es det(Ak) =O.
Supongamos el otro caso que existe una columna de Ak formada por un solo uno y
los dems elementos son ceros, expandemos el det(Ak) por lo menores y cofactores
de dicha columna nosotros obtenemos:
det(Ak) =~ det(Ak_).
Donde Ak-I es una (k- 1) x (k- 1) submatriz, por hiptesis inductiva
det(Ak_) =! 1 O entonces det(Ak) =! 1 O; y el ltimo caso es cuando una co-
lumna de Ak est formado solo por ceros en este caso det(Ak) =O.

8.3.2. Triangularidad de la matriz bsica

Sea B una submatriz de A invertible, B es una matriz m+ n x m+ n - 1 ignorando


la ltima fila de B, donde ahora el determinante de B (t( m+ n- 1) x (m+ n - 1))
es diferente de cero, nosotros sabemos que tiene que haber a lo menos una columna
de B que contenga un slo uno, otro caso det(B) =O, permutando filas y columnas:

B ~ ( ~ ~m+n-,)
Ahora considerando Bm+n- 2, nosotros volvemos a discutir, que esto debera contener
a lo menos una columna con un solo uno, permutando la fila y la columna obtenemos:
1
Bm+n-2 = ( p )
O Bm+n-3
Definiendo q = [q, Q2]
1 Q1
Q2 )
B= O 1 p .
(
oo Bm+n-3

110
Continuando con este procedimiento B es una matriz triangular. Desde que todos los
elementos de la matriz A consiste por completo de entradas enteras y permutando
la matriz B se obtiene una matriz triangular con todos los elementos de la diagonal
igual a uno. Ahora si a la matriz A agregamos el vector unitario em+n' una matriz
bsica (m + n) x (m + n) del problema de transporte denotado por B es aquella
donde el rango de B es m + n, entonces B contiene el vector columna em+n y B
es triangular, asumiendo que {aih= 1,2, ... ,m y {bJ=l, 2 ,... ,n son enteras, concluimos
entonces que todas las variables b.;;icas son enteras, esto es, la solucin bsica
factible es entera.

8.4. Estudio del mtodo simplex


Supondremos de aqu en adelante que a la matriz A se le agreg el vector columna
em+n y denotamos por B la matriz bsica del problema de transporte.

8.4.1. Propiedad de los vectores Yii en la tabla simplex

Cada vector YiJ en la tabla del simplex para un problema de transporte es dado
por: ByiJ = aij, en la cual consiste de un sistema de ecuaciones con un elemento
incognita YiJ, aplicando mtodo de Cramer, el k-trmino de YiJ es dado por YiJk:

det(Bk)
YiJk = det( B) .

Bk es obtenido de B reemplazando la k columna por aij, Bk es una submatriz de


A y desde que A es totalmente unimodular, entonces det(Bk) =~ 1 O, desde que
det(B) =~ 1, esto sigue que: YiJk =~ 1 O.
Esto demuestra que cualquier aij puede ser obtenido por la simple adicin y sus-
traccin de vectores b..;;icos. En particular la representacin de un vector no bsico
aij = ei + em+J en trminos de vectores bsicos, esto es, un vector bsico de la
forma aik = ei + ek+m con coeficiente de +1 en la representacin, debera existir
un vector bsico de la forma ak = e + em+k con un coeficiente de -1 en la re-
pre;entacin, este proceso continua l1asta finalmente debera existir un vector de la
forma auj = eu + em+j con un coeficiente de +1 en la representacin. Una tpica
representacin de aij es de la forma:

111
Sobre la tabla de transporte que es definido en la parte ltima de esta subseccin:

J k t
u auj(+1) auk(O) aut(-1)
l aj(O) : ak( -1) au( +1)

i aij aik(+1) ait


La tabla de transporte, consiste de un conjunto de celdas, en total m * n celdas,
cada elemento de la celda est representado por aij, la tabla consta de m filas
y n columnas. Cada par de elementos de las celdas pueden ser unidos por lineas
punteadas consecutivas, horiwntal " " indican que las celdas estn en la misma
fila de la tabla de transporte, vertical :: :" indican que las celdas estn en la misma
columna, la tabla de transporte se puede representar de la siguiente manera:

1 2 3 n-1 n
~ ~ ~ ~ ~

1 } au a12 a13 al(n-1) an


2 } a21 a22 a23 a2(n-l) a2n

m-1} acm-1)1 acm-1)2 acm-1)3 acm-1)(n-1) acm-1)n


m } aml am2 am3 am(n-1) amn
En la tabla de transporte cada celda aij tambin se puede representar de la forma
(i, j).

8.4.2. Caracterizacin de la matriz bsica en el problema


de transporte

El vector bsico es la columna de una matriz bsica del problema de transporte.

Proposicin 8.4.1 Los vectores bsicos de una matriz bsica no pueden formar un
ciclo sobTe la tabla de tmnsporle.

Prueba (Ver [1] p.361) Supongamos por contradiccin que los vectores b."licos
forman un ciclo (ver la definicin 11.4.4): una tpica representacin de un ciclo
puede estar representado de la forma:
{(p, q), (T, q), (T, s), (u, s) , (u, v) , (p, v)},
las celdas corresponden a vectores bsicos y cumplen:

112
{apq, arq, ars, au8 , auv, apv} son linealmente dependientes y esto es una contradiccin;
y por lo tanto vectores bsicos como representacin de un conjunto de celdas en la
tabla de transporte, no pueden forman un ciclo de la forma:

q S V

La figura siguiente ilustra la base usada para demostrar que el rango de A es m+n-l,
los B' s indican las celdas bsicas, recordar que las lneas punteadas conectando los
B' s indican que ests celdas bsicas se encuentran en la misma fila o columna. Tal
estructura: las celdas bsicas y lneas punteadas conectando entre celdas, tal estruc-
tura es llamado grafo.

1 2 n-l n
~ ~ ~ ~

1 } B ... B ... B ... B ... B B

2 } B

m-1} B

m } B
Sea Q un grafo consistiendo de un conjunto de celdas sobre la tabla de transporte
denotaremos ese conjunto por N, y un conjunto de segmentos (=lneas punteadas
consecutivas) que une cada par de celdas diferentes ya sea horizontal o vertical,
denotaremm; dicho conjuuto de segmentos por r, Q = Q(N, f). Tener en cuenta las
siguientes observaciones sobre un grafo Q:
O bservacin1
Sean (i,j1 ) y (i,j2 ) celdas con j 1 < j 2 , en la misma fila i de la tabla de transporte
unidos por un segmento r, no puede existir una celda (i, j 3 ) en Q donde j 1 < j 3 < j 2 ,
de tal manera que exista un arco conectando (i, j 1 ) a (i, }3) sobrero exista un arco
conectando (i, j 3) a (i, j2) sobre r.
Observacin2:
Sean (j1 , i) y (j2 , i) celdas con j 1 < j 2 , en la misma columna i de la tabla de
transporte unidos por un segmento r , no puede existir una celda (j3 , i) donde

113
j 1 < j3 < j 2, de tal manera que exista un arco conectando (j1, i) a (j3, i) sobrero
exista un arco conectando (js, i) a (j2 , i) ::;obre r.

Definicin 8.4.1 Q1 = (N1 , r 1 ) es dicho un subgrafo de Q si N 1 est contenido en


N y r 1 est contenido en r, donde Q1 es a la vez un grafo; en el entendimiento que
si un segmento en r 1 , las dos celdas que conectan dicho segmento estn en N 1 .

Definicin 8.4.2 Sea Q = Q(N, r), una cadena (N, r 1 ) que une par de celdas
diferentes en Q, denotaremos dichas celdas por (i 0 ,j0 ) y (iz,jz) en N, es aquella
donde la sucesin:
N = {(io,jo), (i,j), (i2,j2) .... , (iz_,jz_i), (iz,j)},
celdas en N diferentes dos a dos y r 1 segmentos en r que une cada par de celdas
consecutivas de N 1 , esto es, hay un segmento entre (ik-l,jk-l) a (ik,jk); adems
cada 2 celdas consecutivas en N 1 coinciden en una sola coordenada, esto es, (im,jm)
a (im+l,jm+l) entonces (im = im+l) o (jm = jm+l), observar que (N1 , r 1 ) tambin
es un grafo. Para la brevedad denotaremos en algunos casos una cadena por:
{(io,jo), (i,j), (i2,j2) .... , (iz_,jz_), (iz,jz)}.

Definicin 8.4.3 Q es dicho conexo si existe una cadena entre cualquier par de
celdas diferentes en Q.

Definicin 8.4.4 Q es dicho un ciclo, si Q consiste de una cadena uniendo un par


de celdas diferentes (i,j) y (k, l), ms el segmento uniendo (i,j) a (k, l)(o viceversa),
donde se cumple que i =k o j = l, dicha cadena no contiene al arco que une (i,j)
a (k, l).

Definicin 8.4.5 Q es dicho nn rbol si es conexo y no contiene ciclos.

Q = Q (N, r) contiene una celda Terminal ::;i dicha celda terminal e::;ta wnectado a
lo ms por un segmento en r, las siguientes propiedades son facles de demostrar:

Proposicin 8.4.2 Sea Q un Tbol, al desconcctar ( clninar) un segmento de Q,


dejando las celdas respectivas que conectan dicho segmento, se descompone en dos
nuevos rboles (1].

Proposicin 8.4.3 Un rbol tiene por lo menos dos celdas terminales (1].

Proposicin 8.4.4 Un rbol ,c; y solo si conticnr. nrw. ,c;ola ca.dr.na qnc corwcta
cada par de nodos si y solo si al desconectar (eliminar) cualquier segmento del rbol
dejando las celdas respectivas de dicho arco se obtienen dos rboles (1].

114
Definicin 8.4.6 Una submatriz B(m + n x m+ n) de [A; em+n] es definido una
matriz b~ica del prvblerna de tmn~porte ~i es de mngo m+ n, notar que em+n es
denominado variable artificial.

Teorema 8.4.1 Las rnatrice~ bsims de A sobre el problema de transporte pueden


ser caracterizados como un rbol conexo con m + n - 1 celdas sobre la tabla de
transporte, y es el nico rbol formada por dichas celdas.

Prueba (Ver [1] p.362-364) Toda matriz bsica esta formada por m+n-1 columnas
de A sin contar la variable artificial, esto representa m + n - 1 celdas en la tabla
de transporte, donde existen <U menos una celda en cada fila y columna de la tabla
de transporte. Sea una matriz bsica cualquiera, supongamos que la matriz bsica
no est representada por una celda alguna en la fila i, entonces el vector bsico
factible {Xil}l=1,2, .... ,n de la matriz bsica en la fila i esta formada solo por ceros, lo
que descalifimra e~to como un vector factible (ai > 0), entonce~ una matriz bsica
contiene al menos una celda en cada fila sobre la tabla de transporte. Similarmente
para las columnas, supongo que la matriz bsica no contiene una celda en alguna
columna j, entonces el vector bsico factible { Xj h= 1,2, .... ,m de la matrir. bsica en la
fila m + j estara formada solo por ceros, lo que descalificara esto como un vector
factible (bi > 0), entonces una matriz bsica contiene al menos una celda en cada
columna sobre la tabla de transporte. Cada celda representada por una matriz bsica
se le llamar celda bsica de la matriz bsica.
Sea una matriz bsica cualqlera, definamos un conjunto de segmentos uniendo
cada par de celdas consecutivas bsicas, esto es, que se encuentran en la misma
fila o columna, y adems 110 cxi~te una celda b~:>ica entre ellos (Sean (i, j) y (i, l)
celdas diferentes en la misma fila i, conectados por un segmento, siempre y cuando
no exista una celda bsica (i, k) con j < k < l ) , este conjunto de segmentos con
las respectivas celdas bsica<; forman una g,Tafo conexo; veamos esto, consideremos
dos celdas bsicas (i,j) y (k, l), si la celda (k,j) es bsica, entonces las celdas (i,j)
y (k, l) estn conectadas va la cadena formada por celdas bsicas:

{(i,j), (i,j), (i2,j), ... , (it,j), (k,j), (k,j), ... , (k,jr), (k, l)},

ahora si la celda (k, j) no es bsica, sabemos que aki esta representado por una suma
finita de vectores b."licos:

entonces dos celdas bsicas (i, j) y (k, l) son conectadas por la cadena formada por
celdas bsicas:

{(i,j), (r,j), (r, s), (t, s), .... , (v, u), (v, w), (k, w), (k, l)},

115
entonces el grafo es conexo, adems los vectores bsicos no pueden formar ciclos
sobre la tabla de transporte, entonces el grafo es un arbl y es nko, ya que si
existiera otro rbol con las mismas celdas, lo nico que no coinciderian es en los
segmentos, esto es, existe un par de celdas y dos cadenas diferentes que unen (p, q)
a (r, s), pero esto no puede darse ya que sino deberi formarse un ciclo entre algunas
celdas bsicas, y eso es una contradiccin.

Veamos que cualquier rbol Q con m+ n - 1 celdas junto con un vector de variable
artificial, dichas celdas corresponden a una matriz bsica del problema de transporte,
sabemos que un rbol posee al menos una celda terminal, esta celda debe ser la
nica celda en su respectiva fila colunma (no los dos a la vez, en caso wntrario
supongamos que tanto la fila como la columna de la respectiva celda terminal hay
otras celdas, sean P y R las celdas ms cercanas a la celda terminal tanto en la fila y
la columna respectivamente, en el sentido de que entre la celda terminal y las celdas
P y R, no existen otras celdas; debe existir un arco del rbol que conecte la celda
terminal, supongamos que sea la celda R de la columna, dicha celda debera formar
una cadena con la otra celda P, si agregamos el arco que une la celda de la fila P
wn la celda terminal se formara un ddo, esto no cumple para las celdas bsicas.).
Supongamos que la celda terminal se encuentre slo en su fila correspondiente a la
celda terminal, denotemos por (i, j) la celda terminal, sabemos aij = ei + em+i, la
matri7. formada por estas celda..<> contiene un vector fila con un solo elemento distinto
de cero, permutando la fila y columna sobre la matriz (m+ n) x (m+ n -1) asociado
al rbol, denotemos por T la matriz asociada a Q , permutando T obtenemos:

Donde T1 es una matriz asociada con un rbol Q1 , donde se ha eliminado la celda


(i, j) y los segmentos que inciden sobre esta celda, localizamos una celda terminal
del nuevo rbol T1 , denotemos por (k, l) dicha celda, en este caso suponemos que
la celda (k, l) se encuentre slo en la columna l de la nueva tabla de transporte,
respecto a las celdas de Q1 , akl = e k + em+l nn vector con 1111 110 cero en la posicin
m + l, permutando fila y columna, para que este elemento no nulo del vector se
posicione en la ltima fila y columna de T1 .

Continuando este proceso, eventualmente nosotros obtenemos una (m + n) x (m +


n - 1) matriz con unos debajos de los elementos en la posicin {t(s,s)h=t, ... ,m+n-1
de la matriz T = { t(iJ)h=l, ... ,m+n;j=l, ... ,m+n-1 esto demuestra que el rango de T es

116
m+ n- 1, adems si agregamos el vector artificial (correspondiente a la variable
artificial, vedor unitario) a la matriz T obtenemos una matriz triangular aplicando
el mismo procedimiento descrito arriba, y esto ser una matriz bsica del problema
de transporte.o
Un rbol con m+ n- 1 celdas es llamado tambin un rbol de expansin.

8.4.3. Representacin de la matriz bsica sobre la tabla de


transporte

Un rbol expansin slo tiene m+n-1 celdas bsicas, va exh;tir un ddo al conectar
cualquier celda no bsica con las celdas bsicas; dicho ciclo desarrolla la requerida
representacin de las celdas no bsicas en funcin de las celda bsicas.

Ejemplo 8.4.1

1 2 3 4 5
1 B ... ... B

2 B

3 B ... ... B ... ... B ... ... B

4 B

Queremos representar a 14 en trminos de los vectores bsicos, el nico ciclo es dado


por las celdas {(1, 4), (3, 4), (3, 1), (1, 1)}, borrando la celda no bsica (1, 4), nos
estamos quedando con la nica cadena formado por las celdas {(3,4), (3, 1), (1, 1)},
luego alternando signos +1, -1 para la representacin del arco no bsico (1, 4) como
sumatoria de vectores bsicos, se obtiene la siguiente representacin:
a14 =e+ e4+4 = au - aa1 + a34 = (e+ eHI)- (ea+ eHI) +(ea+ e4+4).
a14 = e1 +es.
Si nosotros buscamos la representacin en la tabla de transporte, nosotros primero
obtenemos el nico ciclo formada por la celda no bsica y las celdas bsicas, esto
es {(1,4),(1,2),(1,1),(2,1),(3,1),(3,3),(3,4)} borrando la celda no bsica (1,4)
nosotros estamos dejando la nica cadena blliica. Nosotros borrarnos la celda (1, 2)
desde que no hay otras celdas bsicas de la cadena en la columna 2, similarmente
borramos (2, 1) y (3, 3), nosotros slo nos quedamos con los celdas:
{(1, 1), (3, 1), (3, 4)} para la repre,sentacin.

117
Asociada con la celda no bsica (4, 2) en trminos de las celdas bsicas, trazando
la cadena en la tabla de transpmte entre l~ celdas bsk~ (1, 2) y ( 4, 3) nosotros
obtenemos:
1 2 3 4 5
1 B ... ... B

2 B

3 B ... ... B B B

4 a42 ... .. B
e= {(1, 2), (1, 1), (2, 1), (3, 1), (3, 3), (4, 3)}.
Si a e agregamos la celda no bsica (4, 2) y los segmentos que unen las celdas (1, 2)
y (4, 2), y tambin (4, 2) y (4, 3) estos forman un ciclo, eliminando de la cadena e
la celda bsica {(2, 1)}, se obtiene la siguiente cadena:

{(1,2), (1, 1), (3, 1), (3,3), (4,3)}

La representacin de a 42 en ftmcin de las celdas bsicas es:

Observar que estamos ignorando en la representacin la celda bsica (2, 1), desde
que es la unca celda bsica que se encuentra en la fila 2, la representacin sobre la
tabla de transporte de la celda no bsica (4, 2).

8.4.4. El rol de la variable artificial en el problema de trans-


porte

La representacin de una celda no bsica implica solamente celdas bsicas asociadas


con la nica cadena tra:ada por la..:; celda..:; bsicas. En particular , el vector artificial
(correspondiente a la variable artificial) nunca esta implicado en cualquier represen-
tacin, y por lo tanto la variable artificial est en el nivel cero. Este hecho permite
esencialmente ignorax- la variable ax-tificial en la aplicacin del mtodo simplex del
problema de transporte.

118
8.4.5. Proceso del mtodo simplex para el problema de trans-
porte

Los pasos generales de la aplicacin del mtodo simplex para un problema de pro-
gramacin lineal son los siguientes:

l. Encontrar una solucin factible iniciaL

2. Computar Zj - Cj para cada variable uo h~:>ica. Parar y ~:>eleccionar el rengln


entrante columna.

3. Determinar el rengln saliente columna.

4. Obtener una nueva solucin factible t y repetir paso 2.

Encontrar una nueva solucin factible


Encontrar una solucin bsica factible, el procedimiento a explicar es llamado la
esquina nor-este regla [1]. Recodar que la solucin factible que se obtuvo inicialmente
(xij = ~ ), no era un solucin bsica factible, ya que todos los Xij estn en el nivel

diferente de cero. Asumiendo que el total de oferta es igual a total de demanda.


Iniciamos en la celda (1, 1), nosotros definamos:
x 11 = minimo{a~, b~}, donde {a~= a 1}, {b~ = b1 }.
y reemplazamos a~ por a~ - x 11 y b~ por b~ - x 11 .

l. Si a~ > b~, moverse a la celda (1,2) definamos x 12 = minimo{a~,b~} donde


1 } 1 1 1 1
{ b2 = b2 y reemplazamos a1 por a 1 - X12 y b2 por b2 - x 12.

2. Si a~ < b~, moverse a la celda (2, 1) definamos x21 = minimo{a~, b~} donde
1 } 1 1 1 1
a2 = a2 y reemplazamos a2 por a2 - x 21 y b1 por b1 - x 21
{

Observar que estamos suponiendo que a~ = b~, a~ = b~ y a~ = b~ nunca ocurre.


El proceso de as!:,'1lar una variable el mnimo de la restante oferta y demanda,
ajustando ambos; y moviendo a la derecha o abajo, una celda continua hasta todos
las ofertas y demandas son alcanzadas.

Ejemplo 8.4.2 Sea la sig'ttiente tabla de transporte:

1 2 3
1 (4) (7) (5) bl = 30
2 (2) (4) (3) b2 = 20

119
Los valores entre parntesis en cada celda (i,j) son los costos Cij Nos movemos de
la celda (1, 1) donde a 1 = 15, b1 = 30, tomamos el mnimo que es a1, redifinimos
b1 = 30- 15 = 15, nos movemos hacia la celda (1, 2), luego tomamos el mnimo
entre b1 y a 2 que es~= 10, y de nuevo redifinimos b1 = 15- 10 = 5, nos movemos
hacia la celda (1, 3), luego tomamos el mnimo entre b1 y a3 que es b1 = 5 y por
ltimo redifinimos a3 = 25 - 5 = 20 y nos movemos hacia abajo a la celda (2, 3) y
como es la ltima celda, ya no nos podemos mover hacia otra celda a3 = b2 = 20.
La nueva solucin factible es:xn = 15, X12 = 10, X13 = 5, x21 =O, X22 =O, X23 = 20.

1 2 3
1 (4)15 ... (7) ... 10 ... (5) ... 5 b = 30

2 (2) (4) (3)20 b2 = 20


a 1 = 15 a2 = 10 a3 = 25
o
La esquina nor-este regla procede exactamente m+ n- 1 veces, cada vez que Xij
es asignado un valor, cualquiera una oferta o una demanda restriccin es satisfecha.
Cuando m + n - 1 variables tiene asignado valores positivos entonces m + n - 1
de las restricciones son satisfechas, una de las m+ n restricciones del problema de
transporte es redundante.
La estructura del grafo resultante es obviamente conexo, hay que demostrar que no
existen ciclos, en efecto, en cada paso nos movemos hacia una nueva celda, si inde-
xamos dicha nueva celda, asignando un valor positivo, dicho indexe es incrementada
por 1 en cada paso; esto no es posible asignar una nueva celda en una fila o columna
anterior un valor positivo, la nica manera de producir ciclos; por lo tanto no hay
c.;idos, en wndusin es un rbol, cou m + n - 1 celdas, entonces es un rbol de
expansin y representa una solucin bsica factible.
Calcular Zij - Cij para cada celda no bsica
Dada una solucin bsica factible, nuestra nueva tarea es determinar si la solucin
es ptima o seleccionar una nueva variable bsica entrante. Sabemos:

Yi consiste de solamente 1,-1 y O' s, entonces C~Yii es calculado por la simple adicin
y sustraccin de los wstos de alguna variables bsicas, veamos la siguiente tabla de
transporte:
J k S

'U auj(+1) ... ... aus(-1)

. .. a 8 ( +1)

i aij ...

120
En la tabla de transporte de arriba, Zj - ci de la variable no bsica Xj es dada por:

Zij- Cij = (Cuj- Cus + Cts- Ctk + Cik- Cij)


El criterio de optimalidad para el problema de transporte es dado por Zij - Cij menor
igual a cero para cada variable no bsica Xij; una celda (k, l) es un candidato para
entrar a la base si Zkl - Ckl > O.
Calcular Zij - Cij:
Zij- Cij = C~Yii- Cij = c~B- aii- Cii = waii- cii donde w = csB- .
1 1

Sea la variable dual Wi para i = 1, 2, ... , m, es denotado por ui; y sea la variable
dual Wm+i para j = 1, 2, ... , n, es denotado por vi. El vector dual viene dado por
w = (u 1 , u2, ... , Um., v1 , v 2 , ... , vn), entonces desde que aii tiene un uno en la i - th
posicin y un uno en la (m+ j)- th posicin, se obtiene:
waii = Ui + Vj
Zij- Cij = Ui + Vj- Cij
El mtodo de calcular Zij- Cij es llamado mtodo (ui, vi) [1].
Desde que el vector dual es calculado por w = c~B- 1 , entonces w es la solucin al
sistema:
wB =e~ ...... (1),

donde B = (apq, ... , ast, em+n) y Cs = (epq, ... , Cst, Ca)


apq, ... , ast son m+ n- 1 vectores columnas correspondiente a las variables bsicas
y Cpq, ... , Cst son sus correspondientes costos; em+n es la columna artificial y Ca su
respectivo costo, desde que el valor de la variable artificial es cero, el costo de la
variable artificial no importa, nosotros seleccionamos que Ca = O; desde que B es
una matriz triangular: nosotros obtenemos un sistema fcil para resolver en (1).

Us + Vt = Cst
Vn =O= Ca
El sistema tiene m+n variables y m+n ecuaciones, nosotros sustituimos hacia atrs
el valor Vn = O, en cada ecuacin donde Vn aparece y resolvemos para u-variable;
usando esto nuevamente, encontrado u-variable, nosotros sustituimos hacia atrs
para encontrar algn v-variable, y etc.

121
Ejemplo 8.4.3

1 2 3
1 (4)B ... (7) ... B ... (5) ... B U

2 (2) (4) (3)B Uz


V Vz V3

Sea v3 = O. Los nmeros entre parntesis de cada celda es el costo de cada celda.
celda b.sica(1, 3) : U + V3 = C13 = 5 ===?- V3 = O ===?- U = 5.
celda bsica(2, 3) : u 2 + v3 = c23 = 3 ===?- v3 = O ===?- u2 = 3.
celda bsica(1, 1) : u 1 + v1 = c11 = 4 ===?- u 1 = 5 ===?- v1 = -l.
celda bsica(l, 2) : u + v 2 = c12 = 7 ===?- u 1 = 5 ===?- v2 = 2.
Calcular zii - Cij para vmiahle~ no b~ica~:
Zz- Cz = Uz +V - c21 = 3- 1- 2 =O.

Zzz - Czz = Uz + Vz - c22 = 3 + 2 - 4 = l.

x 2 z es un candidato para entrar a la base; Zj - Cj se puede calcular en fnncin de


los costos:
Z21 - C21 = C23 + Cu - C3 - Cz = 3 + 4 - 5 - 2 = 0.

Z22 - C22 = C23 + C12 - C13 - C22 = 3 + 7 - 5 - 4 = l.

Observar que el valor de v3 puede ;er arbitrario, el co;to de la variable artificial Ca


puede tambin tomar cualquier valor. 0
Determinar el rengln saliente columna
Sea {x:j} la solucin actual y sea ~ la cantidad por la cual la variable no bsica
entrante x~l incrementa, desde que cada componente de Yij es -1, + 1 O, entonces
el usual radio mnimo es:
~ = mnimo{ x~i : celda bsica (i, j) tiene un Yii = + 1 en la representacion
de la celda no basica (k, l)}
Si Yii igual a -1 correspondiente a una variable bsica, dicha variable bsica incre-
menta en la misma tasa como la variable no bsica Xkl incrementa.
Si Yii igual a + 1 correspondiente a una variable bsica, dicha variable bsica decrece
en la mi~ma t~a como la variable uo bsica Xkz incrementa.
La variable bsica saliente es la que cumple ~ = Xij, donde la celda bsica (i,j)
tiene un +1 en la representacin de la celda no bsica (k, l). En el ejemplo anterior,
aplicando el nor-este esquina, para encontrar una solucin bsica factible inicial:

1 2 3
1 (4)15 ... (7) ... 10 ... (+1) (5) ... 5(-1) U1 = 30

2 (2)0 (4) ... 0 ... (3) ... 20( +1) u2 = 20


V1 = 15 vz = 10 V3 = 25

122
xn = 15, x12 = 10, x13 = 5, X23 = 20, x21 = x22 = O;
Las celdas {(2,2), (2,3), (1,3), (1,2)} forman un ciclo, en la tabla de transporte se
puede probar que Y23 = Y12 = 1 y YI3 = -1;
..6. = minimo{x12,X23} = minimo{10,20} = x 12 = 10.
La nueva solucin factible actual es:
x 11 = 15(sin cambio.).
X12 = X12 - ... = 10 - 10 = 0.

X3 = X3 + ... = 5 + 10 = 15.

X23 = X23- ..6. = 20- 10 = 10.

X22 = ..6. = 10.


La variable bsica saliente es x 12 . La nueva tabla transporte es:

1 2 3
1 (4)15 ... .. . (7) ... (5) ... 15 30

2 (2) (4)10 ... (3) ... 10 20


15 10 25

8.5. Degeneracin en el problema de transporte

Encontrar que en alguna etapa de la aplicacin de la esquina nor-este nosotros


obtenemos:
Xkt = m1nnno ak,
{ 1 bl} = ak1 = bl .
1 1

Donde cualquier a~ y b; fue reducido por un previo clculo de xk,l-l o Xk-I,l res-
pectivamente. Un prctico mtodo para obtener una solucin b.<Sica factible inicial
es proceder en cualquier direccin, esto es Xk,l+l o Xk+I,l una variable bsica en el
nivel cero de acuerdo a la direccin. Variables bsicas en el nivel cero son tratados
exactamente del mismo modo como otras variables bsicas. La esquina nor-este re-
gla produce una solucin bsica factible inicial en la presencia de degeneracin.

Ejemplo 8.5.1 Sea la siguiente tabla de transporte:

(en= 2) (c12 = 3) (c13 = 4) (c14 = 9) a 1 = 20


(c21 = 14) (c22 = 12) (c23 = 5) ( C24 = 1) a2 = 30
(c31 = 12) (c32 = 15) (c33 = 9) ( C34 = 3) a3 = 40
b = 10 b2 = 10 b3 = 20 b4 =50

123
1 2 3 4
1 10 ... ... 10 a1 = 20

2 o... ... 20 ... ... 10 a2 = 30

3 40 a3 = 40
bl = 10 b2 = 10 b3 = 20 b4 =50

Hagamos los clculos: a~ = a 1 = 20, b~ = b1 = 10, x 11 =mnimo{ a~, b~} = 10 como


a~ > b~ : a~ := a~ - 10 = 10, hacia la derecha nos movemos donde
b~ = b2 = 10, mnimo{ a~, b~} = minimo{10, 10} = 10 entonces x~ 2 = 10, en esta
celda (1, 2) nosotros podemos movernos ya sea hacia (2, 2) o (1, 3), supongamos que
nos movemos hacia la celda (2, 2), actualizando b~ := b~- 10 =O y a~ = a 2 = 30,
x 22 = minimo{a~,b~} = minimo{30,0} =O.
Como a~ > b~, nos movemos hacia la celda (2, 3), actualizamos
a~ := a~ -O = 30, b~ = b3 = 20, x 23 = mnimo{ a~, b~} = minimo{30, 20} = 20.
Como a~ > b~, nos movemos hacia la celda (2, 4), actualizamos
a~ := a'2 - 20 = 10,b~ = b4 = 50, x 24 = minimo{ a~, b~} = minimo{10, 50} = 10.
Como b~ >a~, nos movemos hacia la celda (3, 4) actualizamos
b~ := b~- 10 = 40,a~ = a3 = 40, X3 4 = minimo{b~, a~} =mnimo{ 40, 40} = 40.
Todas las otras variables Xij no calculadas en el procedimiento descrito arriba son
variables no bsicas y son asignados valor a cero;
Existen m+ n- 1 = 3 + 4- 1 = 6 variables bsica.<; formando un rbol en la tabla de
transporte y notar sin embargo que la solucin bsica factible es degenerado desde
que la variable bsica x 22 =O.
Notar que en este ejemplo nosotros tenemos: a 1 = b1+b2 = 20, esto es la suma de un
subconjmlto de las ofertas es igual a la suma de un subconjunto de las demandas. 0

8.5.1. Una condicin necesaria para degeneracin en el pro-


blema de transporte

Supongamos que en alguna iteracin del algoritmo de transporte nosotros obtenemos


una solucin bsica factible (esto representa en la tabla de transporte un rbol con
m+n-1 celdas) tal que a lo menos una variable bsica tiene valor cero; borramos una
de las celdas degeneradas, con sus respectivos segmentos que inciden en la celda,
obtenemos un grafo, donde al conectar las celdas del nuevo grafo con segmentos
que no estn en el actual grafo , se obtienen subgrafos conexos sin ciclos, es de<.:ir
rboles, donde cada par de subgrafos no tienen celdas en comn. La suma de las
restricciones de oferta del problema de transporte sobre las variables en uno de los
subgrafos denotemos por Q dicho subgrafo y por:

124
e1 = { if N : existe j tal que (i, j) es una celda de Q},
y la suma de las restricciones de demanda del problema de transporte sobre las
variables del grafo Q, denotemos por:
e2 = {jEN: existe i tal que (i,j) es una celda de Q},
coinciden(recordar que ai, bi > 0):

'EiECl ai = 'EjEc bj(2)


2

Tener en cuenta que Xij igual a cero, para todo ('i, j) que no es celda de Q y ademill:;
i est en e1o j est en e2. (2) no es una condicin suficiente para la presencia de
degeneracin: veamos este ejemplo:

Ejemplo 8.5.2
1 2 3
1 5 ... . .. 5

2 10 ... ... 10 a 2 = 20

3 15 a 3 = 15
bl = 5 b2 = 15 b3 = 25

a 3 = ~' pero hemos obtenido una solucin no degenerada. Una condicin necesaria
para la presencia de degeneracin es que un subconjunto propio de filas y colunmas
en la tabla de transporte tiene la suma total de ofertas igual a la suma total de
demandas; degeneracin puede ser eliminado si tal subconjunto no existe. Veamos
un ejemplo de degeneracin:

1 2 3 4 5 6
1 B ... B

2 B ... ... B

3 B ... ... B ... ... B ... ...B

4 B

125
Supongamos que la solucin bsica es degenerada y x34 = O. Entonces separando la
celda (3, 4), se obtienen 2 subgrafos conexos corno veremos en la figura siguiente:

1 2 3 4 5 6
1 B ... ... B al
2 B ... ... B a2

3 B ... ... B ... . .. B a3

4 B a4
bl b2 b3 b4 bs b6

Tenemos que a1 = b1 + b4 y a2 + a3 + a4 = b2 + b3 + bs + b6, en la figura de arriba


hay dos subgrafos conexos, formadas por las celdas {(1, 1), (1, 4)} y
{(2,2),(2,3), (3,2), (3,5), (3,6),(4,6)}.
Observar que la celda bsica degenerada no puede estar sola como celda bsica
tanto en la fila y columna que c.ontiene la celda bsica degenerada en la tabla de
transporte, debe existir al menos una celda bsica no degenerada ya sea en la fila o
columna de la celda bsica degenerada correspondiente.0

126
Captulo 9

Conclusiones

l. Programacin dinmica es una tcnica muy til para tomar decisiones inter-
relacionadas. Requiere la formulacin de una relacin recursiva, proporciona
grandes ahorros computacionales en comparacin con la enumeracin exhaus-
tiva para enwntrar la mejor wmbinacin de dedsiones, en especial wando
se trata de problemas grandes. Esta tesis presento slo programacin con un
nmero finito de capas.

2. Problemas flujo en redes es un mtodo que proporciona ahorro computacional,


desarrolla clculos sobre la red. Esto genera que las matrices bsicas repre-
sentan rboles expansin sobre la red, los clculos de las soluciones bsicas
factibles se efectuan de los nodos terminales hacia el nodo raz y las variables
duales es un proceso inverso del nodo raz hacia los nodos terminales, el proce-
so para determinar la variable b."ica de salida se reali~m formando ciclos en la
red con los arcos bsicos y el arco no bsico entrante. Todas estas operaciones
se desarrolla sobre la misma red, sin necesidad de aplicar los procesos en la
tabla del simplex, generando ahorro computacional.

3. Problema del camino ms corto es m1 mtodo muy eficiente computacional-


mente, los clculos se basan en la actualizacin de las variables duales del
problema dual, donde en cada paso se verifica si se cumple una restriccin de
desigualdad para luego actualizar estas variables; este mtodo a la vez, calcula
tamben el camino ms corto hacia los diferente nodos a partir de un nodo fijo.

4. Algoritmo out-of-kilter es un proceso muy til que aplica las condiciones KKT,
se enfoca en dos fal:ies, una fase primal que requiere la construccin de nuevos
arcos, los arcos en reversa y por lo tanto el nmero de elementos de la red ori-
ginal tambin aumenta esto permite actualizar los flujos del problema primal
de tal manera que se siga satisfaciendo la ecuacin de conservacin, y en la

127
segunda fase se actualizan las variables duales, estos pasos se efectuan de ma-
nera repetitiva hasta que el flujo que se encuentra en estado out-of-kilter pase
al estado in-kilter, este algoritmo determina si el problema primal esta aco-
tado o no, o puede existar el caso que no exista solucin factible al problema
primal.

5. Problema del flujo mximo trabaja sobre la red, es un mtodo muy Rencillo,
en cada paso se actualiza los flujos factibles sobre una cadena en la red, este
mtodo es muy eficiente computacionalmente en comparacin con el problema
de flujo en redes.

6. Problema de flujos multiartculo es un mtodo bastante eficiente que utiliza


la dcsc.ompoRicin de Dantg Wolfc, est tcnica de dcscompoRidn frmula
problemas que se resuelven utilizando flujo en redes para un solo artculo, y
tambin aplicando la tabla del simplex para actualizar parmetros sin necesi-
dad de calcular inversas.
~

7. Problema transporte es un mtodo que utiliza un mismo enfoque que el pro-


blema de flujo en redes, donde las operaciones se realizan en la tabla del
transporte, sin necesidad de aplicar la tabla del simplex, donde los clculos
son ms baratos computacionalmente que la tabla del simplex.

128
Bibliografa

(1] BAZARAA, M.S., J.J. JARVIS y H.D. SHERALI, Pmgmrnacin lineal y fiujo
en redes, segunda edicin, Limusa: Mxico, DF, 2004.

(2] DANTZIG, G.B. y P. WOLFE, Descomposition principie for linear pro-


gramsOperations Research, 8, pgs. 101-111, 1960.

(3] HILLIER, FREDERICK S. y LICBERMAN, GERALD J., Investigacin de opera-


ciones, sptima edicin: caps:4 y 5, Mxico: McGraw-Hill, 2002.

[4] HAMDY A. TAHA, Investigacin de operaciones, sptima edicin, Mxico: Pear-


son educacin, 2004.

(5] ALEXEY lZMAILOV, MIKHAIL SOLODOV, Volumen Optimiza.n 1, Rio deJa-


neiro: Impa, 2005. 253 p.

[6] ALONSO REVENGA, JUANA M., Flujo en r-edes y gestin de prvyectos: tem-a
y ejercicios r-esuletos, Publicacin la Corua Net Biblio 2008.211 p.

[7] CANALES GARCA, PEDRO, Algoritmos para resolver problemas de fllujo en


grafos, Lima, 1990. 121p.

[8] ABELLANAS, M., Anlisis de algoritmos y teora de grafos, Publicacin: 1991.


189p.

(9] DIESTELM REINHARD, Graph Theory, Publicacin: Berln, 2006. 410 p.

[10] AGNARSSON, GEIR, Graph Theory: modeling, applications, and algorithms, Pu-
blicacin: Upper Saddle River, 2007. 446p.

129