Title: TEMA 5: El problema del flujo con costo mnimo
1TEMA 5 El problema del flujo con costo mínimo
2Definición del problema
- Definición del problema Una red compuesta por n
nodos, a los que se asocia un valor ki que indica
el nivel ofertado o demanda por el nodo i. - Si kigt0, existe una oferta en el nodo i
denominándose fuente u origen . - Si kilt0, existe una demanda en el nodo i
denotándose por sumidero o destino. - Si ki0, el nodo i denomina intermedio o de
transbordo. - A cada arco (i,j) se asociará una variable xijgt
0 que representa el flujo que circula por él y un
coste unitario de transporte cij. - El flujo está limitado por el limite inferior lij
y el limite superior uij. - Todos los nodos tienen que cumplir las leyes de
conservación de Kirchhoff.
kj
xij
j
i
j
cij
3Formulación matemática del problema.
La formulación matemática del problema de flujo
con costo mínimo queda como
4Ejemplo
5Propiedades del problema
- El problema puede reescribirse, en forma
matricial, como - Matriz de incidencia, Aaij, aijei-ej
- y ei es el vector unitario i-ésimo.
6Propiedades del problema
- Adicionando todas las filas de la matriz A se
tiene que para que el problema tenga
solución, es decir las restricciones deben ser
combinaciones lineales y por consiguiente, el
rango de la matriz A es como máximo rango (A)lt
n-1, donde n define el número de nodos de la red. - Propiedades importantes
- El rango de la matriz A es n-1
- Las soluciones del problema son siempre enteras
para valores de ki enteros. -
7Propiedades del problema
- El rango de la matriz A es n-1
-
Tantas columnas como arcos Tantas filas como
nodos
(i,j)
aij es la columna de A que corresponde al arco
que une los nodos i y j
xij
j
i
xij aparece en la ecuación del nodo i con signo
y en la ecuación del nodo j con signo -
Dimensiones de A nodos (n) x arcos
8Ciclos y Dependencia Lineal
- Dos teoremas de gran valor para la definición
del algoritmo que permitirá resolver el problema
formulado - Teorema 1. Un conjunto de columnas de la matriz A
serán linealmente dependientes si y solo si
existe un ciclo entre sus nodos. - Demostración Supongamos un subgrafo del grafo
original, cuyos nodos unidos por arcos definen un
ciclo, tal y como se muestra en la siguiente
figura
Asignando una orientación arbitraria a dicho
ciclo, a los arcos en dicha dirección un
coeficiente 1 y a los arcos orientados en
sentido opuesto un coeficiente -1, se
tiene aijajk - alk alm -
anm (ei-ej)(ej-ek)-(el-ek)(el-em)-(en-e
m)0 por lo que las columnas de A
correspondientes los arcos no son linealmente
independientes. Corolario Las variables básicas
no podrán formar un ciclo y, por tanto, definen
un árbol compuesto por n-1 arcos y n nodos.
9Ciclos y Dependencia Lineal
- Teorema 2. Cualquier arco no básico cuya columna
es alm puede representarse como combinación
lineal de las columnas de los n-1 arcos básicos.
Así, el conjunto definido por las columnas que
representan los vectores básicos y el no básico
alm definirán el ciclo. -
- Corolario para obtener la representación
correcta de un arco no básico dado, simplemente
se localiza el ciclo único en el subgrafo de la
base que contiene el arco asociado. Definiendo
una orientación acorde con el arco no básico,
cualquier arco en el ciclo que posea la misma
orientación, tendrá asignado un coeficiente de
-1, mientras que los que presenten sentido
opuesto tendrán asignado coeficiente 1. -
10Ejemplo
- En el grafo donde los arcos continuos son los
básicos, el arco a45 puede representarse como - a45a35a13 -a14 (e3-e5)(e1-e3)-(e1-e4)
e4-e5
4
3
2
11Algoritmo simplex para redes
- El algoritmo consiste en partir de una solución
básica factible y aplicar el criterio de
optimalidad a todos los arcos no básicos. - Si los costos relativos de las variables no
básicas son no negativos, se ha alcanzado el
óptimo. - En caso contrario es necesario introducir la
base el nuevo arco básico con costo relativo más
negativo y sacar de la base el arco cuya variable
básica se anule en el proceso de compensación del
ciclo al que pertenece el nuevo arco básico.
12Algoritmo simplex para redes
- Físicamente, los costos relativos de un arco
representan el costo unitario adicional en que se
incurre al enviar un flujo unidad a lo largo de
otra cadena que une los mismos nodos que el arco
no básico. - En la figura, el costo de enviar una unidad de
flujo desde el nodo 3 al 4 es c34 si se utiliza
el arco no básico (3,4), o bien - c13c15c54 si se utiliza la cadena básica.
- El costo relativo r34 será la diferencia entre el
costo absoluto y el costo sintético, éste último
es el costo en el que se incurre cuando se hace
uso de la cadena básica que une los mismos nodos
que el arco no básico, o sea
r34 c34 (c13c15c54 )
13Algoritmo simplex para redes
- Este proceso de compensación consiste en, una vez
identificado el nuevo arco básico y el ciclo al
que pertenece, se asigna al ciclo el sentido del
nuevo arco básico - Si envio e por el arco 34, tendré que aumentar el
flujo en e en el arco 13 y decrementar en e en
los arcos 15 y 54 -gt todos los arcos en la
dirección del sentido en el ciclo incrementarán
su flujo - Análogamente, los arcos orientados en sentido
contrario verán decrementados los valores. - El máximo incremento posible vendrá limitado por
el mínimo decremento en el ciclo que se denotará
por e. - Este mínimo decremento vendrá determinado por el
valor de la variable básica más pequeña de entre
los arcos orientados en sentido opuesto al
definido en el ciclo. - Esta variable básica, con valor más pequeño, se
bloqueará alcanzando el valor cero y dejando de
ser básica.
14Algoritmo simplex para redes
- Para conocer, de entre todos los arcos no
básicos, aquel arco que entra en la base, se
aplica el criterio de optimalidad del Simplex, - que consistirá en calcular todos los costos
relativos no básicos. - Considerando como nuevo arco básico aquél con
costo relativo más negativo. - Para calcular el costo relativo de un arco no
básico, se identifica el ciclo formado por el y
otros arcos que sean básicos - se le asocia un sentido que coincidirá con la
orientación del arco no básico. - El costo relativo de dicho arco vendrá definido
por la diferencia entre su costo absoluto y la
suma algebraica de los costos de los arcos
básicos del ciclo - multiplicados por 1 si están orientados en
sentido contrario al ciclo - multiplicados por -1 si lo esta a favor.
- Para el ciclo de la figura, se tiene
15Ejemplo
- Obtener el flujo máximo con costo mínimo en la
siguiente red, donde a cada arco se le asocia el
costo absoluto unitario cij, a cada nodo su nivel
de oferta/demanda ki y no existen restricciones
de cota máxima para los flujos que circulan por
cada arco. - Una solución básica factible puede obtenerse
definiendo un árbol tal como - Donde en cada arco se define el flujo que circula
y que es factible ya que cumple las leyes de
Kirchhoff en cada nodo.
16Ejemplo
- Los costos relativos de los arcos no básicos
serán
- Introduciendo el arco r14 en la base
- Habiéndose alcanzado el óptimo.
17Obtención de una solución básica factible inicial.
- Para la definición del algoritmo Simplex para un
problema de redes es imprescindible partir de una
solución básica factible con la que iniciar el
proceso de iteración. La obtención de esta
solución básica factible puede realizarse
haciendo uso de variables de holgura y
resolviendo la Fase I del sistema de ecuaciones
así obtenido. - Para aplicar la Fase I al problema
- Minimizar cx
- s.a. Ax k,
- xgt 0
18Obtención de una solución básica factible inicial.
- se amplía el sistema de ecuaciones de
restricciones con variables de holgura w dichas
variables serán positivas en las ecuaciones donde
k gt O y negativas en las ecuaciones donde k lt O ,
a fin de obtener una solución básica que sea
factible para el problema primal. Por
consiguiente, el problema a resolver será - Fase I
- Minimizar w
- s.a. Ax w k,
- (x,w) gt 0
- Su optimización definirá una base inicial.
19Ejemplo Obtener el flujo máximo con costo mínimo
en la red.
- donde a cada arco se le asocia el costo absoluto
unitario cij, a cada nodo su nivel de
oferta/demanda ki y no existen restricciones de
cota máxima para los flujos que circulan por cada
arco.
20Ejemplo Obtener el flujo máximo con costo mínimo
en la red.
- la matriz de incidencia nodo-arco es
21Ejemplo Obtener el flujo máximo con costo mínimo
en la red.
- Para la obtención de una solución básica
factible, se resuelve el problema en la Fase I
22Ejemplo Obtener el flujo máximo con costo mínimo
en la red.
x (-1)
23Ejemplo Obtener el flujo máximo con costo mínimo
en la red.
24Ejemplo Obtener el flujo máximo con costo mínimo
en la red.
- Aplicando Simplex se tiene
25Ejemplo Obtener el flujo máximo con costo mínimo
en la red.
- Aplicando Simplex se tiene
26Ejemplo Obtener el flujo máximo con costo mínimo
en la red.
- Aplicando Simplex se tiene
27Ejemplo Obtener el flujo máximo con costo mínimo
en la red.
- Aplicando Simplex se tiene
Se ha alcanzado el final de la fase I y la
solución básica factible es x123 x131 x245
28Ejemplo Obtener el flujo máximo con costo mínimo
en la red.
k22
2
5
3
k4-5
k14
4
1
1
3
k3-1
Aplicando el criterio de optimalidad
r23c23-(c13-c12) -1-(-5-2)7 r32c32-(c12-c13)
6-(25)-1 r34c34-(-c13c12c24)3-(--524)-8
Introduciendo x34 en la base, se tiene
29Ejemplo Obtener el flujo máximo con costo mínimo
en la red.
Introduciendo x34 en la base, se tiene
k22
2
5-32
k4-5
k14
1
4
Aplicando el criterio de optimalidad
r12c12-(c13c34-c24) 2-(-53-4)8 r23c23-(c24
-c34)-1-(4-3)-2 r32c32-(c34-c24)6-(3-4)7
3
134
3
k3-1
k22
2
Introduciendo x23 en la base, se
tiene r12c12-(c13-c23) 2-(-51)6 r24c24-(c23
c34)-1-(-13)2 r32c32-(-c23)6-(1)5
5-32
k4-5
k14
4
1
3
134
3
k3-1
Todos positivos ? Óptimo