Beruflich Dokumente
Kultur Dokumente
El problema de transbordo.
Elena Gonzalez Martn
Alberto Martn Izquierdo
Xiao Ping Qiu
1. Problema de ujo con coste mnimo
Considerese una red dirigida G con un numero nito de nodos n = {1, 2, ..., m} y un conjunto de
arcos dirigidos A = {(i, j), (k, l), ..., (s, t)} que unen parejas de nodos de N. La red tiene m nodos
y n arcos. A cada nodo i G se asocia un n umero b
i
que representa los recursos disponibles:
b
i
> 0 recursos disponibles (orgenes)
b
i
< 0 demanda (destinos)
b
i
= 0 ni se requiere ni esta disponible (intermedio o trasbordo)
A cada arco se asocia x
ij
que representa la cantidad de ujo sobre el arco y el coste unitario c
i
j.
El problema esta balanceado si la oferta total es igual a la demanda total, es decir
m
i=1
b
i
= 0. El
problema matem aticamente queda de la forma:
Minimizar
m
i=1
m
j=1
c
ij
x
ij
1
sujeto a
m
j=1
x
ij
k=1
x
ki
= b
i
, 1 i m
x
ij
0, 1 i m, 1 j m
Las restricciones se llaman ecuaciones de ujo o de Kirchho, indican que en la red no se puede
crear ni destruir ujo.
Los problemas de transporte son un caso especial de ujos en redes: para escribir las restricciones
de un problema de transporte en forma de las del problema de ujo se multiplica por -1 en las
restricciones de los destinos.
2. Deniciones basicas y terminologa de teora de grafos
Dado el grafo G(N, A):
Def (Nodos adyacentes). Dos nodos de un grafo son adyacentes si estan conectados por un arco.
Si el arco dirigido es (i,j) a i se le llama nodo inicial y a j nodo terminal.
Def (Camino). Un camino del nodo i al j es una secuencia de arcos P = {(i, k), (k, p), ..., (l, j)}
en los que el nodo inicial de cada arco es el mismo que el nodo nal del arco anterior (salvo el
primero).
Def (Cadena). Se llama cadena a una secuencia de aristas tal que una arista tiene un punto en
com un con la anterior y el otro con la posterior.
Def (Circuito). Si un camino empieza y termina en el mismo vertice se llama circuito.
Def (Ciclo). Un ciclo es una cadena que empieza y termina en el mismo vertice.
Def (Subgrafo). Un subgrafo G
(N
, A
N y
A A, teniendo en cuenta que si (i, j) A
, entonces i, j N
.
Def (
_
_
_
1 1 0 0 0 0 1 1
1 0 1 1 1 0 0 2
0 1 1 0 1 1 0 3
0 0 0 1 0 1 1 4
se corresponde con el grafo
Trataremos un problema sobre este grafo m as adelante.
4
3.1. Rango de A
A no es de rango m aximo, ya que la suma de las las es el vector de ceros. Veamos que el rango de
A es m1: Sea T cualquier arbol de expansi on de G, este existe ya que quitando arcos de los ciclos
se puede construir. T consiste en nodos con m1 arcos de G que no forman ning un ciclo. Sea A
T
la submatriz de A asociada a los arcos y nodos de T. Como m 2, T tiene al menos un nodo nal,
es decir un nodo k con exactamente un arco incidente en el. Entonces la la k-esima contiene solo
un elemento no nulo. Permutamos las las y columnas de A de forma que este elemento quede en
la primera la y primera columna. Entonces A queda:
A
T
=
_
_
_
_
1 0
p A
T
es un arbol y tiene al menos un nodo nal en el nodo l. Permutamos las las y columnas
de A
T
y la matriz queda:
A
T
=
_
_
_
_
_
_
_
_
_
_
1 0 0
p
1
1 0
p
2
q A
T
e
m
).
3.3. Caracterizaci on de una matriz basica
Teorema. Sea un problema de ujo con coste mnimo denido por un grafo conexo G con un
arco raz. Entonces B es una matriz base de este problema si y solo si es la matriz de incidencia
nodo-arco de un arbol de expansion con raz de G.
Demostracion. ()
Hemos determinado el rango de A examinando cualquier submatriz asociada a un arbol de expan-
si on, esto demuestra tambien que un arbol de expansion junto con una variable articial es una
base para la matriz A. Un grafo de este tipo se denomina arbol de expansi on enraizado. La base
asociada B se puede poner como una matriz triangular inferior y la columna del arco raz es
e
m
.
()
Sea B una matriz m m formada seleccionando m 1 columnas linealmente independientes de
A junto con una columna articial (A|
e
m
) de tal manera que B es una matriz basica. Sea G
B
la
6
gr aca asociada con todos los arcos en B sin la variable articial. Entonces G
B
no tiene ciclos:
Supongamos que G
B
tiene un ciclo C. Seleccionamos alg un arco (i, j) en el ciclo y asignamos al
ciclo la orientacion de ese arco:
Entonces a cada columna de B asociada con un arco en el ciclo se le asigna un coeciente 1 si el
arco es en la direccion de la orientacion del ciclo y 1 en caso contrario. De esta forma:
a
ij
a
kl
a
lk
+
a
lp
... = (
e
i
e
j
) (
e
k
e
j
) (
e
l
e
k
) + (
e
l
e
p
)... = 0
Por lo tanto no son linealmente independientes, lo que supone una contradicci on. Luego G
B
no
tiene ciclos. Adem as tiene m nodos y m-1 arcos, luego es un arbol y la ultima columna corresponde
al arco raz.
3.4. Triangularidad, integridad y unimodularidad total
Hemos visto que para nuestro problema, cada base B corresponde a un arbol de expansi on con
raz y que se puede poner en forma triangular con 1 en la diagonal. Ademas la matriz A satisface
otra propiedad: es unimodular, es decir, cada submatriz de A tiene determinante 1 o 0. Para
submatrices 1 1 es trivial. Supongamos que es cierto para cualquier subamtriz (k 1) (k 1)
y sea A
k
una submatriz k k. Las columnas de A
k
pueden ser de tres formas: todo ceros, todo
ceros salvo un elemento o todo ceros salvo dos elementos.
Si hay una columna con todo ceros entonces det(A
k
) = 0 Si hay una columna con un unico 1
entonces det(A
k
) = det(A
k1
).
7
Si todas las columnas tienen un 1 y un -1 entonces la suma por las es el vector de ceros, es decir,
det(A
k
) = 0. Luego es unimodular.
Estos dos resultados implican dos caractersticas utiles:
1. Los sistemas de ecuaciones B
x
b
=
b y
w
B =
c
b
y
ij
=
a
ij
, por lo que el k-esimo elemento de
y
ij
sera
y
ijk
=
det(B
k
)
det(B)
donde B
k
es B con la columna k-esima sustituida por
a
ij
. Como B
k
es submatriz
cuadrada de A, su determinante ser a 0 o 1 y esos mismos son los posibles valores de
y
ijk
.
4. Metodo smplex para problemas de ujo con coste mni-
mo
Como el problema de ujo con coste mnimo es un problema de programacion lineal, podemos
aplicar el metodo smplex para resolverlo. A lo largo de la explicaci on resolveremos el siguiente
problema:
Junto a cada nodo se indica el b
i
correspondiente y en cada arco el coste por unidad transportada
c
ij
.
8
4.1. Calculo de los valores de las variables basicas
Supongamos que tenemos determinada una solucion b asica factible inicial no optima.
Esta se
corresponde con una submatriz B A a la que previamente hemos agregado un arco raz, o
equivalentemente, con el arbol de expansi on con raz asociado a los arcos de las columnas de B.
En nuestro problema, partimos de la base
Determinar las unidades x
ij
que circulan por cada arco (i, j) equivale a resolver el sistema B
x
B
=
b , donde x
m
se corresponde con el ujo que circula por el arco raz y en toda soluci on b asica
factible es 0. En el caso que nos ocupa, partimos de la soluci on b asica factible proporcionada por
los arcos (1, 2), (2, 3), (2, 4) y el raz, de modo que los x
ij
se calculan como sigue:
B
x
B
=
_
_
_
_
_
_
_
_
_
1 0 0 0
1 1 1 0
0 1 0 0
0 0 1 1
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
x
12
x
23
x
24
x
4
_
_
_
_
_
_
_
_
_
=
_
_
_
_
_
_
_
_
_
4
2
1
5
_
_
_
_
_
_
_
_
_
= b
Resolviendo el sistema, queda x
12
= 4, x
23
= 1, x
24
= 5, x
4
= 0 Tambien es posible trabajar direc-
tamente sobre el grafo, satisfaciendo primero las restricciones de los nodos hoja e ir descendiendo
hasta llegar al arco raz por el que no debe circular ninguna unidad.
9
Notaci on: sobre cada arco (i, j) se escribe entre parentesis (c
ij
, x
ij
) y junto a cada nodo i se escribe
entre corchetes [b
i
, w
i
]. Los arcos en trazo continuo son b asicos, mientras que los no basicos son
discontinuos.
4.2. Calculo de las variables duales w
i
y los costes reducidos z
ij
c
ij
Una vez determinadas las variables basicas del problema primal, nos disponemos a comprobar si la
soluci on obtenida es optima o, si no lo es, a determinar que arco sale de la base y cu al lo sustituye.
Para ello, calculamos para cada arco (i, j) no b asico el coste reducido z
ij
c
ij
, que representa
el ahorro que se obtendra por cada unidad que circulara por el arco en cuesti on si este fuera
introducido en la base. Si todos los costes reducidos fuesen negativos, la solucion sera optima.
Si hubiese alguno positivo, la soluci on podra mejorar y habra que hacer una iteracion m as del
algoritmo. Para calcular los costes reducidos consideramos el problema dual del que tenemos:
Si nuestro problema es:
Problema primal Problema dual
Minimizar Maximizar
c
x
w
b
sujeto a sujeto a
A
x =
b
w
A
c
x 0
w R
m
10
Por teoremas de dualidad, se tiene que z
ij
c
ij
=
w
a
ij
c
ij
para cualquier arco (i, j). Como la
columna de A que se corresponde con cada arco (i, j) es
a
ij
=
e
i
e
j
, se tiene que z
ij
c
ij
=
w
a
ij
c
ij
=
w
(
e
i
e
j
)c
ij
= w
i
w
j
c
ij
. Es posible calcular
w, o a partir de
w
B =
c
B
, o sobre
el grafo de una forma parecida a c omo se calculan los x
ij
, solo que en lugar de ir desde los nodos
hojas al arco raz, el recorrido es el opuesto: w
m
, la variable dual asociada al nodo con arco raz, debe
ser 0, pues w
m
=
w
e
m
= c
m
= 0. A continuacion, calculamos las variables duales de los nodos que
est an conectados por un arco con el nodo del arco raz mediante la expresion z
ij
c
ij
= w
i
w
j
c
ij
,
pero los arcos del arbol son variables b asicas, as que z
ij
c
ij
= 0 w
i
w
j
= c
ij
. Una vez
calculados, repetimos el proceso con los nodos conectados a estos y as sucesivamente hasta llegar
al ultimo nodo hoja. En nuestro problema:
w
B =
_
w
1
w
2
w
3
w
4
_
_
_
_
_
_
_
_
_
_
1 0 0 0
1 1 1 0
0 1 0 0
0 0 1 1
_
_
_
_
_
_
_
_
_
=
_
2 1 4 0
_
=
c
B