Flujo en redes I - Pontificia Universidad Católica de Chile

Anuncio
ICS 1102 (3)
Optimización
Departamento de Ingeniería Industrial y de Sistemas
Pontificia Universidad Católica de Chile
Clase 27 - Flujo en Redes
Prof. Claudio Seebach -
2do Semestre 2006
Modelos de Redes
• Modelos de Programación Lineal que poseen
una estructura muy especial
• Se puede usar esta estructura para reducir
considerablemente la complejidad
computacional
• Primera aplicación de PL que se difunde tanto
en la logística industrial
• Abarca un gran número de aplicaciones
diversas
Prof. Claudio Seebach
ICS 1102 – Optimización / Clase 27
Notación y Terminología
• La terminología de redes no está (y jamás lo
estará) estandarizada, pudiendo describirlas
de muchas maneras
Prof. Claudio Seebach
ICS 1102 – Optimización / Clase 27
Redes Dirigidas y No-dirigidas
• Redes se usan para transportar “commodities”
• Bienes físicos (productos, liquidos)
• Comunicaciones
• Electricidad
• El campo de la Optimización de Redes se
ocupa de estos problemas
Prof. Claudio Seebach
ICS 1102 – Optimización / Clase 27
Aplicaciones de Optimización en Redes
Prof. Claudio Seebach
ICS 1102 – Optimización / Clase 27
Ejemplo de términos
Prof. Claudio Seebach
ICS 1102 – Optimización / Clase 27
Más definiciones
Prof. Claudio Seebach
ICS 1102 – Optimización / Clase 27
Problemas clásicos de Flujo en Redes
• Problema de flujo de mínimo costo
• Minimum cost flow problem
• Problema de máximo flujo
• Maximum flow problem
• Problema de la ruta más corta
• Shortest path problem
Prof. Claudio Seebach
ICS 1102 – Optimización / Clase 27
Problema de Flujo en Redes a Mínimo Costo
•
•
•
•
•
•
•
Definición del problema
Formulación matemática
Solución al Problema: usamos SIMPLEX?
Formulación dual del modelo
SIMPLEX de redes
Ejemplo
Integralidad?
Prof. Claudio Seebach
ICS 1102 – Optimización / Clase 27
Definición del Problema
• Dada una red con topología conocida
• Cada nodo de la red se define como productor o atractor
(o neutro) de viajes de tal modo que el sistema está
balanceado (oferta total=demanda total).
• Se conoce el costo por unidad de flujo que pase por cada
arco de la red
• Se conoce la capacidad máxima de cada arco de la red, así
como el flujo mínimo que debe atravesarlo
• Encontrar la asignación de flujos que emanan desde los
productores hasta los atractores de modo de, satisfaciendo
las restricciones de capacidad y flujo mínimo por arco,
minimizar el costo total.
Prof. Claudio Seebach
ICS 1102 – Optimización / Clase 27
Asignación a
costo mínimo?
Ejemplo
}
,6
,1
{4
,9 }
{5
,1 2 }
5
7}
7
{4,0,6}
{3,0,8}
}
5
,8 }
{ 5 ,0
,1 ,
10
,
0
,
{ 2 ,2
14 ⇒ 4
⇒
{5,1,7}
,2
6
{8,0,6}
8 ⇒10
5}
{6
⇒
⇒
{7
{7,3,8}
3
{ 3 ,0 ,8 }
7}
3
8}
}
,2 ,
}
,1 ,
{ 5 ,1 ,
0 ,6
{3
,6
{4
8}
}
,0
,0 ,
8}
{4,
{3
7}
,1 ,
{4
{3,0,6}
0 ,6
8⇒ 1
{5
2
{ 5 ,2 ,
7
{3,0,6}
{4,
,
{6
}
2 ,8
12 ⇒
⇒
10
9 ⇒9
A cada arco (i,j) se ha asignado una terna: {costo, flujo mín, capacidad}
Supondremos en esta clase que flujo min (i,j) = 0 y capacidad = inf
Prof. Claudio Seebach
ICS 1102 – Optimización / Clase 27
Formulación Matemática del Problema
Parámetros:
Red G(N,A) en que N es el conjunto de nodos (n=|N|) y A el de
arcos (m=|A|).
bi: Flujo neto generado (si positivo) o atraído (si negativo) en
nodo i (flujo que saldrá menos flujo que entrará)
cij: Costo de transportar una unidad de flujo por el arco (i,j)
Variables:
xij: Unidades de flujo enviadas a través del arco (i,j)
Prof. Claudio Seebach
ICS 1102 – Optimización / Clase 27
Formulación Matemática del Problema
• El modelo debe estar balanceado, esto es:
Prof. Claudio Seebach
ICS 1102 – Optimización / Clase 27
Algunas características interesantes
Función objetivo y
restricciones lineales
Función objetivo: sumatoria de tantos
términos como arcos en la red
Las restricciones garantizan conservación
de flujos en la red: el flujo que entra en un
nodo, menos el flujo que sale, es igual al
flujo atraído o generado por el nodo
Una restricción
por cada nodo
de la red.
Todos los parámetros asociados a las
variables en las restricciones son :
+1 (flujos entrando al nodo) o
–1 (flujosProf.
saliendo
del nodo)
Claudio Seebach
Cada variable aparece solamente dos veces:
+1 (en la restricción del nodo cola del arco)
–1 (en la restricción del nodo raíz del arco)
ICS 1102 – Optimización / Clase 27
Solución al Problema: usamos SIMPLEX ?
• El problema es lineal en función objetivo y restricciones
y sus variables son continuas. Así, se puede usar
herramientas de programación lineal: SIMPLEX.
• El método SIMPLEX opera sobre problemas cuyas
variables estén restringidas a tomar valores nonegativos, como es el caso de este problema.
• SIMPLEX opera sobre una matriz de restricciones de
rango máximo.
• Esto no ocurre aquí, pues una de las restricciones de
conservación puede expresarse como combinación lineal
de las demás.
• Eliminamos una de ellas, cualquiera. Este nuevo
problema se puede resolver directamente vía SIMPLEX
Prof. Claudio Seebach
ICS 1102 – Optimización / Clase 27
Solución al Problema: usamos SIMPLEX ?
• Problema: La Aplicación del SIMPLEX
tradicional puede ser impracticable:
• La sola formulación del problema de flujo en redes como
un LP representa una dificultad, dado el tamaño de las
redes
• Las restricciones del LP en este caso representan una
matriz muy grande, que el SIMPLEX debe manipular para
encontrar la solución óptima. (¿eficiencia computacional?)
• El SIMPLEX tradicional no aprovecha la estructura de redes
del problema planteado.
Prof. Claudio Seebach
ICS 1102 – Optimización / Clase 27
Solución al Problema: usamos SIMPLEX ?
• Es posible construir una versión SIMPLEX de
redes:
• En cada iteración, el SIMPLEX se mueve de una solución
factible a otra.
• En un problema de flujo en redes cada solución factible
representa un árbol de envergadura máxima
• La idea del SIMPLEX de redes es moverse de una árbol de
envergadura máxima a otro, hasta encontrar el óptimo
(solución óptima del problema de LP) sin tener que
calcular el tableau completo en cada iteración.
Prof. Claudio Seebach
ICS 1102 – Optimización / Clase 27
Formulación dual del modelo
• El modelo dual del problema de flujo en redes es:
• π es el vector de variables duales asociado a
restricciones de continuidad
• Notar que si existe solución óptima (πi) a este
problema, ésta no será única. Basta observar que si se
agrega una constante cualquiera a todo el vector π, la
solución sigue siendo factible y su valor en la función
objetivo no cambia. Esto es consecuencia de que la
matriz de restricciones del problema primal no era de
rango máximo.
• Así, para resolver este problema es necesario dar un
valor arbitrario a un πi.
Prof. Claudio Seebach
ICS 1102 – Optimización / Clase 27
Formulación dual del modelo
• Toda solución factible al problema primal tiene
un vector dual (π) asociado. Si la solución
primal no es la óptima, entonces el vector π no
será factible.
• Por otro lado si ese vector π es factible,
entonces la solución primal y el vector π serán
óptimos para sus respectivos problemas.
• En el óptimo, el valor de ambas funciones
objetivo coincide.
Prof. Claudio Seebach
ICS 1102 – Optimización / Clase 27
SIMPLEX de redes (sin restr. de capacidad)
• El SIMPLEX de Redes es una adaptación del
SIMPLEX tradicional, que trata de aprovechar
la estructura de red del problema
• El SIMPLEX tradicional construye sus
soluciones factibles utilizando álgebra de
matrices. El SIMPLEX de Redes construye
árboles de envergadura máxima sobre la red,
hasta encontrar la solución óptima.
• En cada iteración el SIMPLEX de Redes
construye un árbol de envergadura máxima
–cuya solución factible asociada (flujos)
reduce el valor de la función objetivo- hasta
que eventualmente se encuentra el árbol
óptimo.
Prof. Claudio Seebach
ICS 1102 – Optimización / Clase 27
La Estructura Conceptual del SIMPLEX de Redes
• PASO 1 (INICIALIZACION)
• Determinar un árbol inicial factible T (variables básicas)
• Determinar los flujos {xij} y los potenciales (variables
duales) πi asociados al árbol T inicial y factible
• PASO 2 (ITERACIÓN)
crea un • Mientras existan arcos (no en T) que no cumplan la
ciclo en
condición de optimalidad:
el árbol
• Seleccionar un arco (no en T) que no cumpla la
condición de optimalidad (var entrante).
• Agregar ese arco a T
• Seleccionar un arco saliente de T y sacarlo
• Actualizar el árbol T, los flujos en los arcos y el
elimina el
ciclo
potencial de los nodos.
SIMPLEX de Redes (sin restricción de capacidad)
• Preguntas pendientes:
• Cómo encontrar un árbol inicial factible T, los flujos en
arcos asociados a esa solución factible y los potenciales de
los nodos.
• Cómo elegir el arco entrante al árbol T
• Cómo elegir el arco saliente del árbol T
• Distintas versiones del algoritmo surgen de las distintas
maneras en que se pueden resolver estas interrogantes
Prof. Claudio Seebach
ICS 1102 – Optimización / Clase 27
Cómo determinar qué variable entra y sale de la base (árbol T)?
Costo reducido en problemas de flujo en redes (sin capacidad)
{
←i
vector columna de A =
costo del arco
vector de costos
duales, π
Los costos reducidos de las vars básicas son cero. Esto permite
identificar el vector de costos duales o potenciales πi. Luego, es
posible determinar los costos reducidos de las vars no básicas.
Notar que si todos los rij son no negativos, se satisfacen las
condiciones duales y la solución es óptima.
←j
Ejemplo
(n=5, m=9)
1⇒ 2
3 ⇐2
C32=4
C23=1
=2
C 12
4⇒ 1
C
14 =
3
0⇒
Prof. Claudio Seebach
C3
1
=
4
C35=4
C24=2
C4
2
=
3
4
C45=2
5 ⇒7
ICS 1102 – Optimización / Clase 27
2
C
14 =
Las variables básicas son:
{x14 , x23 , x35 , x45 }
C32=4
0
0
C
14 =
0
C4
0
C3
=4 1
3 ⇐2
C23=1
1
C 12
5 ⇒7
C45=2
4
=2
4
3
0
=1
34
4
1⇒ 2
4⇒ 1
=2
43
3
0⇒
Sol básica factible:
C
0
C
3 ⇐2
0
=3 2
3
C35=4
No, a lo más 4 xij tomarán
valores positivos
C24=2
2
2
C24=2
Es básica?
C 12
0
C23=1
1
=2
4⇒ 1
Costo total: 33
C32=4
C35=4
1⇒ 2
Paso 1, Identificar
Solución factible
3
0⇒
4
4
C45=2
5 ⇒7
Ejemplo
• Es óptima la solución?
• Es necesario revisar los costos reducidos de las variables no básicas:
r12 = c12 - π1 + π2 = 2 - π1 + π2
r24 = c24 - π2 + π4= 2 - π2 + π4
r32 = c32 - π3 + π2 = 4 - π3 + π2
r34 = c34 - π3 + π4 = 1 - π3 + π4
r43 = c43 - π4 + π3 = 2 - π4 + π3
• El vector π se puede identificar a través de los costos reducidos de las
variables básicas, que deben ser cero. Adicionalmente como una de las
restricciones del problema es redundante, uno de los valores duales
toma un valor arbitrario.
r14 = 2 - π1 + π4 = 0 r35 = 4 - π3 + π5 = 0
π4 = -2, π5 = -4
r23 = 1 - π2 + π3 = 0 r45 = 2 - π4 + π5 = 0 , π1 = 0
Prof. Claudio Seebach
}
π3 = 0, π2 = 1
ICS 1102 – Optimización / Clase 27
Ejemplo
• Esto permite identificar los costos reducidos de
las variables no básicas:
r12 = 2 - π1 + π2 = 3
r32 = 4 - π3 + π2 = 5
r43 = 2 - π4 + π3 = 4
r24 = 2 - π2 + π4 = -1
r34 = 1 - π3 + π4 = -1
• Estamos interesados en encontrar variables no
básicas con costo reducido negativo.
• En este caso, x24 y x34 resultan atractivos de
incorporar a la base. Típicamente se incorpora
el de costo reducido mayor (en valor
absoluto), en este caso cualquiera. Escogemos
x24.
Prof. Claudio Seebach
ICS 1102 – Optimización / Clase 27
Cuánto es lo más que puede subir x24? Digamos que toma el valor Δ
En SIMPLEX cuando se agrega una variable a la base, las variables
que permanecen fuera de la base no modifican su valor.
Así, se genera un ciclo de variables básicas para absorber el cambio
en la variable entrante (siempre habrá sólo uno).
La variable que sale es aquélla que primero alcanza uno de sus límites
al subir x24.
0
1⇒ 2
C32=4
3 ⇐2
En este caso:
1- Δ C23=1
0
4⇒ 1
x23 : 1-Δ ≥ 0
4
x45 : 4+Δ ≥ 0
C
x35 : 3-Δ ≥ 0 ⇒ Δ = 1,
x23 sale de la base
Δ
C
14 =
C4
0
C3
1
=
4
2
=
3
3- Δ
0
C35=4
Δ≥0
C24=2
x24 :
=2
12
3
0⇒
4
4+Δ
C45=2
5 ⇒7
1⇒ 2
0
4⇒ 1
Las variables básicas son:
{x14, x24 , x35 , x45 }
4
C23=1
1
C
14 =
0
C 12
C24=2
Costo total: 32
=2
3 ⇐2
C
0
C
=1
43
=2
43
2
0
C35=4
Nueva sol básica factible:
0
C32=4
3
0⇒
4
C45=2
5
5 ⇒7
Es óptima la solución?
r14 = 3 - π1 + π4 = 0 r35 = 4 - π3 + π5 = 0
r24 = 2 - π2 + π4 = 0 r45 = 2 - π4 + π5 = 0, π1 = 0
r12 = 2 - π1 + π2 = 1
r32 = 4 - π3 + π2 = 4
r43 = 2 - π4 + π3 = 4
r23 = 1 - π2 + π3 = 1
r34 = 1 - π3 + π4 = -1
}
}
π4 = -3, π2 = -1
π5 = -5, π3 = -1
x34 entra a la base
C35=4
C35=4
C24=2
C24=2
Cuánto es lo más que puede subir x34? Digamos que toma el valor Δ
1⇒ 2
C32=4 0
3 ⇐2
C23=1
0
2
=
En este caso:
C 12
=2
3
C4
0
1
4
⇒
x34 :
Δ≥0
1
Δ
2-Δ
0
x45 : 5+Δ ≥ 0
=1
4
3
C
C
4
14 =
x35 : 2-Δ ≥ 0 ⇒ Δ = 2,
3
5 ⇒7
x35 sale de la base 0 ⇒ 4
5+Δ C45=2
Nueva sol básica factible:
1⇒ 2
C32=4 0
3 ⇐2
C23=1
0
2
=
12
C
Costo total: 30
=2
3
C4
1
4⇒ 1 0
2
0
0
=1
Las variables básicas son:
4
3
C
4 C14
=3
{x14 , x24 , x45 , x34 }
5 ⇒7
0⇒ 4
C45=2
7
Es óptima la solución?
r14 = 3 - π1 + π4 = 0 r45 = 2 - π4 + π5 = 0
r24 = 2 - π2 + π4 = 0 r34 = 1 - π3 + π4 = 0 , π1 = 0
1⇒ 2
=2
0
4⇒ 1
4
1
0
3 ⇐2
C23=1
0
C
14 =
C32=4
Sol óptima,
pero no única
C 12
C24=2
Si x23 entra a la base
y sale x24 de la base
Se obtiene esta sol
básica de costo 30
}
r23 = 1 - π2 + π3 = 0
r35 = 4 - π3 + π5 =1
C
3
C
=1
43
=2
43
0
0
C35=4
r12 = 2 - π1 + π2 = 1
r32 = 4 - π3 + π2 = 5
r43 = 2 - π4 + π3 = 3
}
π4 = -3, π2 = -1
π5 = -5, π3 = -2
3
0⇒
4
7
C45=2
5 ⇒7
Integralidad
• En muchos problemas de flujo en redes se requiere una
restricción adicional, que los flujos en los arcos sean
enteros. Por ejemplo, esto será de suma importancia al
buscar rutas mínimas en la red o en que lo que se
transporta son camionadas de carga.
• A pesar de que en la formulación del problema no lo
hemos escogido, la solución satisfizo esta propiedad...
Es casualidad?
• No. La estructura de los problemas de flujo en redes
tienen esta bondad adicional. Todo poliedro definido por
restricciones lineales en que el lado derecho de las
restricciones son números enteros y en que la matriz de
las restricciones es totalmente unimodular, posee la
propiedad de que sus vértices están en puntos enteros
del espacio vectorial.
Prof. Claudio Seebach
ICS 1102 – Optimización / Clase 27
Matrices totalmente unimodulares
• Las matrices totalmente unimodulares se
pueden identificar de varias formas. Por
ejemplo si cada columna tiene a lo sumo dos
elementos distintos de cero y son ellos 1 ó –1.
• Este es el caso del problema de flujo en redes.
Prof. Claudio Seebach
ICS 1102 – Optimización / Clase 27
Descargar