Programación Lineal Continua

Anuncio
Formulación y Ejemplos
Resolución gráfica
Resolución del problema: algoritmo del Simplex
Sistema explı́cito: Matemáticas del Simplex
En clase
Investigación Operativa
Programación Lineal Continua
Formulación y Ejemplos
Resolución gráfica
Resolución del problema: algoritmo del Simplex
Algoritmo del Simplex: minimización
Paso 0.
Dada una SBF: xB = B−1 b ≥ 0, xN = 0, z0 = ctB B−1 b
I = {ı́ndices variables básicas} y J = {ı́ndices variables NO básicas}
Paso 1.
Contraste de Optimalidad: cálculo de los costes reducidos de las
variables NO básicas
crj = zj − cj = ctB B−1 aj − cj , j ∈ J
Si crj = zj − cj ≤ 0 para todo j ∈ J ⇒ FIN. Solución actual
óptima con valor óptimo z0 .
Si crj = zj − cj > 0 para algún j ∈ J ⇒ xk variable candidata
a entrar en la base t.q.
crk = máx{crj / crj > 0}
Investigación Operativa
Programación Lineal Continua
Formulación y Ejemplos
Resolución gráfica
Resolución del problema: algoritmo del Simplex
Algoritmo del Simplex: minimización (cont.)
Paso 2.
Cambio de vértice (x + αd): cálculo de la dirección de movimiento
dB = −yk = −B−1 ak
dN = e k
Contraste de No Acotación:
Si yk ≤ 0 ⇒ d ≥ 0 es una dirección de ilimitación, FIN.
Problema No Acotado
En otro caso, determinar la máxima longitud de paso:
α = mı́n{
(xB )i
(xB )r
/ i ∈ I, yik > 0} =
yik
yir
Variable que sale la base: xr , donde se alcanza el mı́nimo.
Investigación Operativa
Programación Lineal Continua
Formulación y Ejemplos
Resolución gráfica
Resolución del problema: algoritmo del Simplex
Algoritmo del Simplex: minimización (cont.)
Paso 3.
Actualización del nuevo punto extremo
xB
−yk
x ← x + αd =
+α
ek
xN
z0 ← z0 − αcrk = z0 − α(zk − ck )
I ← I \ {r } ∪ {k}
J ← J \ {k} ∪ {r }
B ← B \ {ar } ∪ {ak }
Ir al Paso 1.
Investigación Operativa
Programación Lineal Continua
Formulación y Ejemplos
Resolución gráfica
Resolución del problema: algoritmo del Simplex
Algoritmo del Simplex: maximización
Sólo cambia el criterio de optimalidad:
Paso 1.
Contraste de Optimalidad: cálculo de los costes reducidos de las
variables NO básicas
crj = zj − cj = ctB B−1 aj − cj , j ∈ J
Si crj = zj − cj ≥ 0 para todo j ∈ J ⇒ FIN. Solución actual
óptima con valor óptimo z0 .
Si crj = zj − cj < 0 para algún j ∈ J ⇒ xk variable candidata
a entrar en la base t.q.
crk = mı́n{crj / crj < 0}
Investigación Operativa
Programación Lineal Continua
Formulación y Ejemplos
Resolución gráfica
Resolución del problema: algoritmo del Simplex
La Tabla del Simplex
B
cB
{xi }i∈I {ci }i∈I
zj − cj
mı́n
s.a.
x1 + x2 − 4x3
x1 + x2 + 2x3 ≤ 9
x 1 + x2 − x 3 ≤ 2
−x1 + x2 + x3 ≤ 4
x1 , x2 , x3 ≥ 0.
B cB
s1 0
s2 0
s3 0
zj − cj
Y = B−1 N, B−1
{yj }j∈J , Im
{zj − cj }
mı́n
s.a.
x1 + x2 − 4x3 +0s1 +0s2 +0s3
x1 + x2 + 2x3 +s1
=9
x1 + x2 − x3
+s2
=2
−x1 + x2 + x3
+s3 = 4
x1 , x2 , x3 , s1 , s2 , s3 ≥ 0.
Y = B−1 N
1 1 2
1 1 -1
-1 1 1
-1 -1 4
Investigación Operativa
xB
{(xB )i }i∈I
z0
1
0
0
0
B−1
0
1
0
0
0
0
1
0
xB
9
2
4
0
Programación Lineal Continua
Formulación y Ejemplos
Resolución gráfica
Resolución del problema: algoritmo del Simplex
Ejemplo 1: solución óptima única
Iteración 1.
s1 0
s2 0
s3 0
zj − cj
x1
1
1
-1
-1
x2
1
1
1
-1
x3
2
-1
1
4
s1
1
0
0
0
s2
0
1
0
0
s3
0
0
1
0
9
2
4
0
entra en la base
α = min {
}=
Investigación Operativa
⇒
sale de la base
Programación Lineal Continua
Formulación y Ejemplos
Resolución gráfica
Resolución del problema: algoritmo del Simplex
Ejemplo 1: solución óptima única
Iteración 2. Tenemos que pivotar sobre el elemento 1
s1 0
s2 0
s3 0
zj − cj
x1
1
1
-1
-1
x2
1
1
1
-1
Investigación Operativa
x3
2
-1
1
4
s1
1
0
0
0
s2
0
1
0
0
s3
0
0
1
0
9
2
4
0
Programación Lineal Continua
Formulación y Ejemplos
Resolución gráfica
Resolución del problema: algoritmo del Simplex
Ejemplo 1: solución óptima única
Iteración 2.
s1 0
s2 0
x3 -4
zj − cj
x1
3
0
-1
3
x2
-1
2
1
-5
x3
0
0
1
0
s1
1
0
0
0
s2
0
1
0
0
s3
-2
1
1
-4
1
6
4
-16
entra en la base
α = min {
}=
Investigación Operativa
⇒
sale de la base
Programación Lineal Continua
Formulación y Ejemplos
Resolución gráfica
Resolución del problema: algoritmo del Simplex
Ejemplo 1: solución óptima única
Iteración 3. Tenemos que pivotar sobre el elemento 3
s1 0
s2 0
x3 -4
zj − cj
x1
3
0
-1
3
x2
-1
2
1
-5
Investigación Operativa
x3
0
0
1
0
s1
1
0
0
0
s2
0
1
0
0
s3
-2
1
1
-4
1
6
4
-16
Programación Lineal Continua
Formulación y Ejemplos
Resolución gráfica
Resolución del problema: algoritmo del Simplex
Ejemplo 2: óptimos alternativos
Min −2x1 − 4x2
s.a.
x1 + 2x2 ≤ 4
−x1 + x2 ≤ 1
x1 , x2 ≥ 0
Investigación Operativa
Programación Lineal Continua
Formulación y Ejemplos
Resolución gráfica
Resolución del problema: algoritmo del Simplex
Ejemplo 3: problema no acotado
Max
s.a.
x1 + 3x2
x1 − 2x2 ≤ 4
−x1 + x2 ≤ 3
x1 , x2 ≥ 0
Investigación Operativa
Programación Lineal Continua
Formulación y Ejemplos
Resolución gráfica
Resolución del problema: algoritmo del Simplex
SBF degenerada, problema del ciclado y Regla de Bland
Degeneración: si alguna de las componentes de xB es 0 ⇒ puede
que α = 0 (si (xB )i = 0 y yik > 0), ¿qué ocurre entonces?
El simplex no avanza: mismo punto extremo, diferente base (la
iteración degenerada puede lograr algún progreso)
Problema: cuando hay un número consecutivo de iteraciones
degeneradas
B1 → B2 → B3 → B1
CICLADO ⇒ Reglas de prevención del ciclado
Métodos de perturbación, técnicas lexicográficas, etc.
Inconvenientes: costosas computacionalmente
Ventajas: en los problemas altamente degenerados (relajaciones
de problemas binarios de gran tamaño) son más sencillas. En el
resto, ya “perturbados”.
Investigación Operativa
Programación Lineal Continua
Formulación y Ejemplos
Resolución gráfica
Resolución del problema: algoritmo del Simplex
SBF degenerada, problema del ciclado y Regla de Bland
Criterio de salida de la base: elegir xr de manera que
(xB )s
r = mı́n s / α =
ysk
Investigación Operativa
Programación Lineal Continua
Formulación y Ejemplos
Resolución gráfica
Resolución del problema: algoritmo del Simplex
Inicialización del algoritmo del simplex
Si A tiene m = 100 filas (ecs) y n = 150 columnas (var)
¿cómo encontramos una SBF inicial?
¿a partir de una base de la matriz de restricciones?
Si las restricciones son del tipo menor o igual y el vector b es
no negativo ⇒
En otro caso ⇒
X Inversión de matrices con 100 filas
X ¿Y si el problema es NO factible?
¿Tenemos que realizar mn inversiones para darnos cuenta?
X ¿Y si rg (A) < m?
¿Tenemos que calcular mn determinantes para darnos
cuenta?
Es necesario desarrollar métodos eficientes para la obtención de una
solución básica factible inicial.
Investigación Operativa
Programación Lineal Continua
Formulación y Ejemplos
Resolución gráfica
Resolución del problema: algoritmo del Simplex
Inicialización: Método de las dos fases
Fase I
Construir un problema auxiliar relacionado con el problema original
que cumpla:
X Es trivial encontrar una SBF inicial (B = Im Base Factible)
X Su solución nos permite contestar a las preguntas anteriores:
Problema original factible ⇒ proporciona un vértice del problema
original
Problema original no factible ⇒ nos avisa
rg (A) < m en el problema original ⇒ proporciona un vértice del
problema original y nos avisa
Fase II
Resolver el problema original empezando por la SBF encontrada al
final de la Fase I. Tomar la última tabla de la fase I eliminando las
columnas correspondientes a variables artificiales.
Investigación Operativa
Programación Lineal Continua
Formulación y Ejemplos
Resolución gráfica
Resolución del problema: algoritmo del Simplex
Inicialización: Variables artificiales y Fase I
mı́n 3x1
s.a. 2x1
x1
x1
x1 ,
En forma estándar:
mı́n 3x1 − 5x2
s.a. 2x1 − 3x2
x 1 + x2
x1
x1 ,
x2 ,
 
7
b = 5
8
− 5x2 + x3
− 3x2 + x3
+ x2 + 3x3
+ x3
x2 ,
x3
≤7
≥5
=8
≥ 0.
+ x3
+ x3 + s 1
+ 3x3
+ x3
x3 ,
s1 ,

2 −3 1
A = 1 1 3
1 0 1
=7
− s2 = 5
=8
s2 ≥ 0.

1 0
0 −1
0 0
Investigación Operativa
Programación Lineal Continua
Formulación y Ejemplos
Resolución gráfica
Resolución del problema: algoritmo del Simplex
Inicialización: Variables artificiales y Fase I (cont.)
Faltan dos vectores para tener I3 : Variables Artificiales (G. Dantzig,
1951)


2 −3 1 1 0 0 0
A = 1 1 3 0 −1 1 0
1 0 1 0 0 0 1
t
t
x = x1 x2 x3 s1 s2 z1 z2
La región factible del problema original se amplı́a:
2x1 − 3x2 + x3 + s1
x1 + x2 + 3x3
− s2 + z1
x1
+ x3
+ z2
x1 ,
x2 ,
x3 ,
s1 ,
s2 ,
z1 ,
z2 ,
=1
=5
=8
≥ 0.
¿Qué tiene que ocurrir para que una solución del sistema ampliado
sea una solución factible del problema original?
Investigación Operativa
Programación Lineal Continua
Formulación y Ejemplos
Resolución gráfica
Resolución del problema: algoritmo del Simplex
Inicialización: Variables artificiales y Fase I (cont.)
Problema Auxiliar de la Fase I
mı́n z1 + z2
s.a. 2x1 − 3x2 + x3 + s1
x1 + x2 + 3x3
− s2 + z1
x1
+ x3
+ z2
x1 ,
x2 ,
x3 ,
s1
s2 ,
z1
z2
Su solución nos permite contestar a las preguntas anteriores:
X El Simplex termina con una solución óptima
(x1∗ , x2∗ , x3∗ , s1∗ , s2∗ , 0, 0)t ⇒
X El Simplex termina con una solución óptima
(x1∗ , x2∗ , x3∗ , s1∗ , s2∗ , z1∗ , z2∗ )t con z1∗ + z2∗ > 0 ⇒
Investigación Operativa
Programación Lineal Continua
=1
=5
=8
≥ 0.
Descargar