Sunteți pe pagina 1din 11

Algoritmo out of Kilter

El algoritmo fue creado por D. R. Fulkerson Anout-of-Kilter method for Minimal Cost Flow
problems.
El Algoritmo opera definiendo las condiciones las cuales se deben de satisfacer para obtener una
circulacin ptima en una red. Debiendo satisfacer un flujo que satisfaga las capacidades de
restriccin de los arcos y el estado de conservacin de flujo de los nodos. Cuando una circulacin
optima es determinada, todos los arco es estn in-kilter. En algn punto de operacin del
algoritmo, si no existe circulacin, algunos arcos estarn Out-of-kilter --De aqu el nombre del
algoritmo. El algoritmo seleccionara arbitrariamente un arco Out-of-kilter y tratara de rehacer el flujo
para brindar ese arco dentro de Kilter sin comprometer otros arcos a un estado out-of-Kilter. Si un
arco out-of-Kilter pudiera traer a un estado in-Kilter, el algoritmo selecciona otro arco out-of-Kilter y
repite el proceso. Ya que existe un nmero finito de arcos, la repeticin de este proceso
eventualmente producir una ptima solucin. Si un arco no pudiera ser transformado a in-Kilter, el
problema no se puede resolver.

El estado estacionario de flujos en redes puede representar sistemas fsicos y no fsicos. El complejo
de autopistas que se muestra en la figura 1, enlazan a Nueva York, Chicago, St.Lois, Denver, Los
ngeles, Houston, Seattle y Washington, D.C., en una red. Los vehculos en movimiento sobre esa
red pueden ser considerados flujo de unidades homogneas. Por otra parte, esta red podra describir
un sistema de distribucin de petrleo. Los flujos en redes tambin pueden representar las
comunicaciones entre personas en una organizacin, inventario y produccin procesos de suavizado
con el tiempo y personal ok asignacin a puestos de trabajo.
Los elementos comunes en estas situaciones, son una coleccin de puntos llamados nodos y una
coleccin de arcos que conectas a estos nodos. Los nodos se denotan con letras en minscula, por
ejemplo en nodo i, y los arcos se identifican nombrndolos por los nodos con los que conecta, arco

(i, j). Algunas unidades homogneas (vehculos, petrleo) pueden fluir sobre los arcos, y se denota a
esto xija la cantidad de unidades que fluye en el arco (i, j) del nodo i al nodo j. Si x ij< 0 entonces las
unidades fluirn de j a i.
En la mayora de los problemas de redes, los arcos tienen un costo y una capacidad de
caractersticas. Generalmente, el costo incurre en mover una unidad del nodo i al nodo j, y a este
costo de movimiento de unidad se le denota como c ij. Esto puede ser dlares por unidad bombeada
de petrleo en una red de distribucin de petrleo. Frecuentemente se encuentra que los flujos se
encuentran limitados por un lmite superior o capacidad de los arcos. Por ejemplo, solo un numero
limite de vehculos se puede mover a travs del Tnel Lincoln, y un numero limite de barriles por da
se pueden mover a travs de la tubera de Houston hacia St. Louis. Se denota la mxima capacidad
del arco con uij.Puede haber tambin un requerimiento mnimo de flujo para un arco y se denota por
lij(L cursiva minscula).impuestas esta condicin nos permite construir una red con flujos controlados
que describan un problema en particular, esto quizs describa un nivel de demanda mnimo de flujo
sobre un arco.
Para resumir. Una res est caracterizada por nodos, i; arcos entre nodos (i, j); flujo cruzando los
arcos, sij; unidad de costo de flujo a travs de los arcos, s ij; lmite superior de los arcos, s ij; y un limite
inferior de los arcos,lij(L cursiva minscula).
En un problema sin costo, se permite c ij=0, en problemas sin lmite inferior pero con flujo
unidireccional se permite lij(L cursiva minscula)=0. Si no existen lmites superiores se permite u ij=+
(infinito).
Un problema general en redes es encontrar el costo mnimo de circulacin en una red con arcos con
capacidad. Que es de lo que se encarga el algoritmo OOK. El problema requiere que encontremos el
flujo xij, que minimiza el costo total.

Que al mismo tiempo satisfaga las condiciones o restricciones

y que lo muestre un una circulacin, que vaya dentro de un nodo y salga del nodo. Se representa por

Cuando existen distintas formas de resolver un problema, y quizs pueda ser conceptualizado o visto
como un problema de programacin lineal, el algoritmo OOK es en ambos casos el mas general de
los algoritmos especializados y fcilmente el ms eficiente que un algoritmo estndar de
programacin lineal podra ser.

Ejemplo:
Problema base de circulacin de flujo de costo mnimo para desarrollar el algoritmo Out Of Kilter
(OOK).
Xij= flujo que va desde el nodo i al j.
Cij= costo asociado al transportar de i a j.
lij= el mnimo valor para el flujo que va desde i a j.
uij= el mximo valor para el flujo que va desde i a j.
El problema asociado es:

Sujeto a:
Restriccin de conservacin de flujo para cada nodo adems de los limites l y uque acotan los
valores de cada flujo, as como tambin la no negatividad de las variables.

Aplicacin:

Es decir lo que entra


a un nodo debe salir

Siguiendo con las restricciones:

Rango de variables para cada arco y costos de cada arco:


Rango de valores posibles Costos de cada arco
para cada arco
2X120
C12=2
2X131
C13=5
6X230
C23=-3
5X340
C34=-1
3X410
C41=0

Red que representa el problema:


(lij, Uij, Cij)
(0, 2,
2)

(0, 3,
0)

(1, 2,
5)

(0, 5,
-1)

Algoritmo Out Of Kilter:

(0, 6,
-3)

Este mtodo trabaja con el problema de programacin lineal primal y dual.


Se comienza con un flujo conservativo para el problema primal y con solucin factible para el
problema dual.
Se calculo estado Kilter de cada arco.
Se la red tiene algn arco en estado Out-of-Kilter se pasa a la etapa primal del algoritmo si ya
no se puede obtener ninguna mejora en la etapa primal, se pasa a la etapa dual del problema.
En la etapa dual se construye una nueva solucin para el problema, y una vez realizado esto
se vuelve a la etapa primal, hasta que no quedan arcos en estado Out-Of-Kilter.

Para el problema de circulacin de flujo de costo mnimo, se tiene el siguiente problema dual:

Donde:
vij= restricciones de lmite inferior de Xij
hij= restricciones de lmite superior de Xij
Sujeto a:

Donde Wij corresponde a la restriccin de conservacin de flujo de cada nodo y que al ser una
restriccin de igualdad el W queda irrestricto.
Criterio de Optimalidad:

Cualquier caso que cumpla con alguna de estas condiciones ser denominado un arco In
Kilter.
Con cualquier otro caso tendremos un arco Out of Kilter.
Con los datos anteriores se genera una tabla como la siguiente.

Solucin Inicial para poder determinar el estado de Kilter para cada arco.
Sea:
Xij=0; un flujo conservativo para el problema primal
Wi=0; un solucin factible para el problema dual

Calcular costo reducido de cada arco a partir de esta frmula:

Arco
12
13
23
34
41

Costo reducido
-2
-5
3
1
0

Relacin arco con cota


X12=l12
X13<l13
X23=l23
X34=l34
X41=l41

In Kilter/Out Of Kilter
In Kilter
Out Of Kilter
Out Of Kilter
Out Of Kilter
In Kilter

Fase Primal:

Se define el # Kilter como el valor que se necesita aumentar o disminuir el flujo de arco X ij de
tal forma que dicha arco quede en estado In Kilter.
En la fase primal se construye la red residual de la red en la que se determina la cantidad
mxima en que puede variar el flujo en cada arco, sin empeorar el # Kilter de cada uno y
manteniendo las restricciones de conservacin de flujo.
Esto se puede realizar buscando circuitos dentro de la red residual que contenga el arco In
Kilter que se desea modificar.

Si calculamos el valor del flujo para dejar un arco en estado In Kilter, obtenemos la siguiente tabla:
Variacin necesaria de # Kilter para cada caso.

Red Residual
Siguiendo la tabla anterior obtenemos:

Despus se toma un arco que se encuentre en estado Out of Kilter, como por ejemplo el arco 1,3

Despus se busca un circuito que contenga dicho arco en este caso, el circuito est formado por los
arcos 13, 34, y 41.

Por ltimo el mximo flujo que podremos enviar ser el correspondiente al menor valor dentro del
circuito, que en este caso es 1.
=1
Actualizando datos:

Con los nuevos datos obtenidos es necesario volver a hacer otra red residual

Como podemos ver no se encuentra un circuito que contenga algn arco que contenga alguno de
ellos en estado Out Of Kilter, es por ello que se debe de pasar a la fase Dual.

En esta fase es necesario cambiar el valor que doble W i de tal forma que ningn nmero Kilter es
aumentado y adems se espera que nuevos arcos pasen a formar parte de la red residual que
permita encontrar circuitos nuevos.
Dado un arco (p, q) en estado Out of Kilter sea x el conjunto de nodos a los que se puede llegar
desde q por algn camino en la red residual sea X barra el conjunto de nuevos excluidos de x.
Criterio para mximo valor de Teta

La forma de actualizar los datos

Calcular teta
Primero debemos determinar los conjuntos x y x barra usando arco (2, 3) tenemos que desde el
nodo 3 podemos visitar al nodo 4 desde el nodo 4 podemos visitar el nuevo 1 por lo que x estar
compuesto por los nodos 1 3 4 esto ltimo nos lleva a que x barra slo tendr al nodo 2 as sabemos
ahora que en conjunto s1 est formado por el arco {(1, 2)} y el conjunto s 2 por el arco {(2,3)} de esta
forma teta 1 vale 2 teta2 vale 3y por consiguiente teta vale 2 los nuevos valores de W a los
siguientes

Actualizacin de los datos


Actualizando todos los datos podemos ver que los costes reducidos han cambiado con estos nuevos
valores se puede construir una nueva red residual.

Al calcular la nueva red residual podemos ver que apareci un nuevo arco con respecto al anterior y
esta vez si es posible encontrar un circuito que contenga al arc (2, 3) el valor del flujo esta vez es 2.

Ultima Iteracin
Siguiendo con el algoritmo podemos llegar a la siguiente y ultima iteracin. Donde luego de pasar por
una ltima tapa donde se llega a que todos los arcos estn en un estado in Kilter por lo tanto la
solucin eso optima.

S-ar putea să vă placă și