Está en la página 1de 6

15.

053 Martes, 19 de marzo Problema del flujo de coste mínimo


Red con capacidades,
costes, ofertas y demandas
z Método simplex para redes aplicado a la z Grafo dirigido G = (N, A).
3
solución del problema del flujo de coste mínimo – Conj. de nodos;
2 3, 4$
– Capacidades u ij en arco (i,j) -3, 6$
– Cota inferior de 0 en arco (i,j)
4 1 4 -2
Entregas: material de clase – Coste c ij en arco (i,j) 8, 5 $ 7, 2 $
2, 7$
– Oferta/demanda b i para nodo i.
(Los valores positivos indican oferta) 3
-5

Nota: hay mucho que decir acerca del algoritmo


simplex para redes, aunque sea muy parecido Minimizar el coste del envío de flujo
al algoritmo simplex. s.a. Flujo saliente de i - flujo entrante en i = b i
0 ≤ xij ≤ uij
1 2

Formulación Pricing Out


xij
Consideraremos que la formulación del PL viene dada como:
n n cij cij = cij - yi + yj
∑∑ c x
precio
Minimizar
ij ij
i =1 j =1 0
n n

∑x −∑x
fila i 1 bi oferta para i yi
ij ki = bi , ∀i = 1,… , n
0
j =1 k =1

0 ≤ xij ≤ uij fila j -1 bj oferta para j yj


3 4

Costes reducidos 10$ 20$


Llamaremos a yi potencial de nodo para el nodo i de ciclos 1
3$
2

$4 $2 cij = cij - yi + yj π
z cij = cij - yi + yj para cada
-5$ 1$
$3 arco (i,j).
1 2 c12 = 3$ - 4$ + 2$ = 1$ z El coste reducido de un 3 30$
ciclo es el coste de ese
ciclo. 3$-10$+20$
El pricing out funciona como una prima a la exportación
1 2
para el flujo que sale de un nodo y como una tasa de z El nodo 2 añade 20 dólares
importación para cada unidad de flujo de entrada. a una unidad de flujo en (1,2) y
resta otros 20 de una -5$-30$+10$ 1$-20$+30$
Los costes reducidos son un elemento clave del
unidad de flujo en (2,3)
3
algoritmo simplex para redes. 5 6
Dato importante: la optimización con respecto a Como sacar partido -3$
0$
los costes c da la misma solución óptima que de los costes reducidos 1 3$
2

la realizada con respecto a los costes reducidos c π


z cij = cij - yi + yj para cada
-5$ 1$
20$ arco (i,j).
Supongamos que queremos 3
2 b(2) = 8 z -4$
que los costes reducidos
0$
Veamos el impacto del potencial para el nodo 2: de (1,2) y de (2,3) sean 0. 1 2

•Cada unidad de coste de flujo de salida disminuye en 20 dólares.


•Cada unidad de coste de flujo de entrada aumenta en 20 dólares. Nota: después, el coste
-1$ 0$
•Hay 8 salidas más que llegadas. del ciclo será el coste 3
Impacto neto sobre el coste: 8 x 20$ = 160$, sin incluir el flujo reducido de (3,1).
7 8

Algunas suposiciones Una solución factible inicial artificial

z Añadimos un arco (1, j) para cada j con b(j) < 0


1. La red es dirigida. y con un coste elevado.
z Añadimos un arco (j, 1) para cada j con b(j) > 0
y con un coste elevado.
2. ∑ i=1 a n b(i) = 0. (En caso contrario, no
1.000$ 3 1.000$ Enviamos 2 unidades
habría una solución factible). de flujo desde 1 a 4,
2 3, 4$
-3, 6$ 5 unidades de

3. Existe una solución factible (véase siguiente diapositiva). 4 1 8, 5$ 7, 2$ 4 -2 flujo desde 1 a 3


2, 7$ y 3 unidades de
3 flujo desde 2 a 1.
9
1.000$ -5 10

Las variables básicas son flujos de arco,


Repaso del algoritmo simplex
y los arcos forman un árbol de expansión
1 Tenemos un nodo zPaso 1. Partimos de una solución factible básica.
llamado nodo raíz.
2 7
Hay un único camino z En nuestro algoritmo, partiremos de un árbol
(no dirigido) que va de expansión para después determinar su flujo.
3 6 desde el nodo raíz
a cualquier otro nodo
4 5 (y viceversa).

¿Qué camino va del


nodo 1 al nodo 5? 11 12
¿Qué ocurriría si los flujos en los
Cálculo del flujo del árbol de expansión arcos sin árboles no fueran 0?
Árbol con ofertas
1 1 y demandas. 1 1
Supongamos que el flujo
(Suponemos que
el flujo de los
de los arcos sin árboles
-6 2 7 -6 2 7 3 fuera distinto de 0.
3 otros arcos es 0).
3 ¿De qué manera
1 3 6 -4 ¿Cuál es el flujo en 1 3 6
-4 afectaría a los
el arco (4,3)?
PISTA: la oferta 1 cálculos?
2 4 5 3 2 4 5
para el nodo 4 es 2.
2 3

Véase la animación.
13 14

¿Qué ocurriría si los flujos en los Cotas superiores


arcos sin árboles no fueran 0?
1 1 Ajustamos las z En el algoritmo simplex, las variables
ofertas/demandas para
incluir los arcos que
no básicas tienen un flujo igual a 0.
-6 2 7 6
3 tengan flujo en la
cota superior. z En el algoritmo simplex con cotas superiores,
3
1 3 6 estas variables pueden tener un flujo igual a 0.
-4
-6
-3 El cálculo fluye igual
que en el método – O éste puede hallarse en la cota superior.
1
2
0 4 5 5 anterior; p.ej., ¿cuál es
3
4
2 el flujo en (4,3)? – Los flujos no básicos pueden producir, en su cota
superior, cambios en la oferta de red de un nodo.
El flujo en (4,3) es 0. 15 16

Algoritmo simplex Cómo hallar los multiplicadores

z Paso 1A: partimos de una solución z En primer lugar, debemos determinar los
factible básica. multiplicadores y i para i=1,…,n aplicando
cij- yi+ yj=0
z Paso 1B: calculamos los multiplicadores a todas las variables básicas.
simplex de modo que todos los costes
reducidos de las variables básicas sean 0.
(Es decir, nos aseguramos de que los
coeficientes de coste estén en forma canónica).

17 18
Cálculo de los multiplicadores simplex
para un árbol de expansión Condiciones de optimalidad
Tenemos un árbol de
1 expansión con costes en los z Una vez hallados los multiplicadores,
5 comprobaremos las siguientes condiciones
-6 arcos. ¿Cómo elegiremos
2 7 los potenciales de nodo de optimalidad para cada arco no básico.
3 -4 de modo que los costes
3 6 reducidos de cada arco ≥ 0 si xij = 0
sean igual a 0? 
-2 1
c ij = cij − yi + y j  = 0 si 0 < xij < uij
4 5

Recuerde: el coste reducido
de (i,j) es c ij - πi + πj
≤ 0 si xij = uij
Véase la animación Supongamos que π 1 = 0. 19 20

Análisis de un arco individual


Comprobación de costes reducidos
1 2

Supongamos que c 12 < 0. 0 Primero, fijamos los


Y que deseamos que el flujo tenga el máximo valor posible. 1 potenciales del nodo para
5 -6 que todos los arcos tengan
Si x 12 < u12, el flujo en (1,2) no es óptimo.
Queremos incrementar ese flujo. -5 2 7 -6 un coste reducido igual a 0
Si x 12 = u12, sí que es óptimo. -4
3
Supongamos que c 12 > 0. -2 3 6 -1
Y que deseamos que el flujo tenga el mínimo valor posible. -2 1 -1
Si x 12 > 0, el flujo en (1,2) no es óptimo.
-4 4 5 -1
Queremos disminuir ese flujo.
Si x 12 = 0, sí que es óptimo. 21 +1 22

cota
superior Algoritmo simplex
Comprobación de costes reducidos
cota
inferior z Paso 1A: partimos de una solución
0 factible básica.
1 (6,5) se halla en su cota
0 0 z Paso 1B: calculamos los multiplicadores
inferior; no cumple las
simplex de modo que todos los costes
-5 2 7 -6 condiciones y podría
0
reducidos de las variables básicas sean 0.
0 entrar a la base.
zPaso 2: elegimos una variable de entrada que
-2 3 6 -1 (5,4) se halla en su no cumpla la condición de optimalidad.
0 0 -1 cota superior; En el ejemplo anterior, elegiríamos
-4 4 5 -1 cumple las condiciones (6,5) en vez de (5,4)
+1
-2 de optimalidad. 23 24
Si el arco entrante se halla en su cota
¿Qué arco debería entrar a la base?
inferior, incrementaremos el flujo en ∆
z En el método simplex para redes con variables
Añadiendo un arco no básico
acotadas, las variables no básicas se hallan en
2 al árbol de expansión se
sus cotas inferiores o superiores. Se puede llegar +∆
+∆ crea un ciclo básico.
a una solución mejorada si:
3 6
– 1. Incrementamos una variable que tenga un coste
reducido negativo y que esté en su cota inferior. +∆
+∆ Ajustamos los flujos del ciclo
– 2. Disminuimos una variable que tenga un coste 5
básico de modo que se
reducido positivo y que esté en su cota superior. cumplan las restricciones
de oferta/demanda.
25 26

Si el arco entrante se halla en su cota


Algoritmo simplex para redes
superior, disminuiremos su flujo en ∆.
comienzo
2 determinar una estructura de árbol factible inicial (T, L, U)
-∆ +∆ Supongamos que (6,5) estaba llamaremos x al flujo inicial
en su cota superior. Ajustamos y indica los potenciales de nodos iniciales
3 6
los flujos del ciclo básico de si alguno de los arcos no cumple las conds. de optimalidad:
modo que se cumplan las (comienzo)
-∆ -∆
5 restricciones de oferta/demanda seleccionamos un arco entrante (k,l) que no cumpla las condiciones
añadimos ese arco al árbol y trasladamos flujo al ciclo básico
determinamos el arco que deja la base
actualizamos los potenciales de nodos
Al incrementar ∆ , alguno de los arcos alcanzará su
cota inferior o superior. (Salvo que la solución óptima (final)
sea no acotada). Ese arco dejará la base. final
27 28

Puntos más importantes Conclusiones

z La base corresponde al árbol de expansión z Método simplex para redes


de la red. – Técnica de resolución del problema del flujo de coste mínimo
z Al introducir una nueva variable en la base se forma – Basado en los conceptos del método simplex
un ciclo único en el árbol de expansión, y la – Las soluciones básicas son árboles de expansión
variable que limita la cantidad de flujo enviada en
dicho ciclo abandona la base.
z Existe un método más rápido para calcular los nuevos
potenciales de nodos, pero no lo veremos aquí.

Véase la animación
29 30
31

También podría gustarte