Tema 3 - QueGrande.org

Anuncio
Investigación Operativa 2008/09
Tema 3: Método del Simplex Revisado.
El método revisado o método del simples con multiplicadores: Conceptos básicos.
Vector de Multiplicadores.
Se basa en los mismos principios que el simplex, pero en cada iteración no se calcula
toda la tabla, y la información que se necesita para pasar de una solución factible básica a
otra se obtiene directamente de las ecuaciones originales.
Información de interés:
* Cj
* columna de la v. que entra
*b
Ejemplo:
Max Z = 3x1 + 2x2
- x1 + 2x2 + x3 = 4
3x1 + 2x2 + x4 = 14
x1 - x2 + x5 = 3
xi ≥ 0
Tabla 2
1 0 1
π = CB B-1 = (0,0,3) 0 1 -3
0 0 1
= (0,0,3)
Tabla 3
1 -1/5 3/5
π = CB B-1 = (0,2,3) 0 1/5 -3
0 1/5 2/5
= (0,1,0)
15
Investigación Operativa 2008/09
CB
0
0
0
CB
0
0
3
CB
0
2
3
CB
0
2
3
Cj
Base
x3
x4
x5
_
Cj
3
x1
-1
3
1
2
x2
2
2
-1
0
x3
1
0
0
0
x4
0
1
0
0
x5
0
0
1
b
4
14
3
3
2
0
0
0
Z=0
Base
x3
x4
x1
_
Cj
x1
0
0
1
x2
1
5
-1
x3
1
0
0
x4
0
1
0
x5
1
-3
1
b
7
5
3
0
5
0
0
-3
Z=9
Base
x3
x2
x1
_
Cj
x1
0
0
1
x2
0
1
0
x3
1
0
0
x4
-1/5
1/5
1/5
x5
8/5
-3/5
2/5
b
6
1
4
0
0
0
-1
0
Z = 14
Base
x5
x2
x1
_
Cj
x1
0
0
1
x2
0
1
0
x3
5/8
3/8
-1/4
x4
-1/8
1/8
1/4
x5
1
0
0
b
15/4
13/4
5/2
0
0
0
-1
0
Z = 14
16
Investigación Operativa 2008/09
Desarrollo del método.
El método del simplex revisado trabaja con la idea fundamental de que cualquier
tabla del simplex correspondiente a una solución factible básica puede generarse
directamente de las ecuaciones originales por medio de operaciones matriciales.
Max (o Min) Z = Cx
Ax = b
x≥0
C = (C1, C2, ..., Cn)
1xn x=
x1
...
xm
nx1
xn
A=
A=
a11
a21
...
a12
a22
...
...
...
...
a1n
a2n
...
mxn b=
b1
b2
...
am1
am2
...
amn
m<n
bm
[ P1
P2
…
Pn ]
Pi =
mx1
a1i
a2i
…
ami
mx1
∀i = 1, ..., n
Supongamos que tenemos una solución factible con variables básicas x1 ... xm
La matriz básica B será:
B = (P1 ...
matrix m x m
xB
x=
xN
a11
a21
Pm) = ...
am1
≡
x1
x2
…
xm
xm+1
…
xn
a12
a22
...
am2
...
...
...
...
a1m
a2m
...
amm
xB ≡ variables básicas
xN ≡ variables no básicas = 0
17
Investigación Operativa 2008/09
_
b1
__
_
b2
-1
La solución básica actual es xB = b =B b =
__
bm
y xN =
...
( 0 ).
_
b
xB
Z = C•x = (CB CN)
= (CB, CN)
xN
_
= CB xB + CN xN = CB b
0
y cualquier columna:
_
_
Pj = B-1 Pj
∀j de las variables no básicas
Se llama vector de multiplicadores al vector π = (π1, π2, ..., πm)
π = CB B-1
(mxm)
(1xm)
A partir de este vector, se pueden calcular los beneficios relativos:
Cj = Cj - CBPj = Cj - CBB-1Pj = Cj - πPj
∀j de variables no básicas
18
Investigación Operativa 2008/09
Ejemplo:
Min Z = -3x1 + x2 + x3
sujeto a
x1 – 2x2 + x3 ≤ 11
-4x1 + x2 + 2x3 ≥ 3
2x1
- x3 = -1
xi ≥ 0
Min Z = -3x1 + x2 + x3 + Mx6 + Mx7
x1 - 2x2 + x3 + x4
= 11
-4x1 + x2 + 2x3
– x5 + x6
=3
-2x1
+ x3
+ x7 = 1
xi ≥ 0
A=
[ P1
P1 =
1
-4
-2
P7 =
0
0
1
P2
…
P2 =
-2
1
0
b=
11
3
1
P6 ]
P3 =
1
2
1
P4 =
1
0
0
Base inicial { x4, x6, x7} ⇒ B = (P4 P6 P7) =
P5 =
0
-1
0
P6 =
1
0
0
0
1
0
0
0
1
_
b = B-1b = b
-1
B =I
La tabla 1 del método del simplex revisado será:
Base
x4
x6
x7
1
0
0
B-1
0
1
0
0
0
1
_
b
11
3
1
A completar
más adelante
π = (π1, π2, π3) = CBB-1= (C4, C6, C7) B-1 = (0, M, M)•I = (0, M, M)
Los beneficios relativos de las variables no básicas:
_
Cj = Cj - πPj
j = 1, 2, 3, 5
19
0
1
0
Investigación Operativa 2008/09
_
C1 = -3 – (0, M, M)
1
-4
-2
= -3 + 6M
_
C2 = 1 – (0, M, M)
-2
1
0
=1–M
_
C3 = 1 – (0, M, M)
1
2
1
= 1 – 3M
_
C5 = 0 – (0, M, M)
0
-1
0
=M
Entra x3 en la base. La columna pivote es:
1
P3 = B P3 = 0
0
0
1
0
−1
0
0
1
1
2
1
1
2
1
=
Tabla 1.
x4
x6
x7
_
b
11
3
1
B-1
Base
1
0
0
0
1
0
0
0
1
_
Columna pivote P3
1
2
1
Var. que entra
x3
Regla mínima proporción min{11/1, 3/2, 1/1} ⇒ sale x7
Nueva base {x4, x6, x3} ⇒ B = [P4 P6 P3] =
-1
⇒B =
_
11
-1
-1
b=B b=B 3
1
1
0
0
0
1
0
=
10
1
1
-1
-2
1
20
1
0
0
0
1
0
1
2
1
⇒
Investigación Operativa 2008/09
_
b
10
1
1
B-1
Base
x4
x6
x3
1
0
0
0
1
0
-1
-2
1
π = CBB-1 = (C4, C6, C3)•B-1 = (0, M, 1)•B-1 = (0, M, -2M+1)
_
1
C1 = -3 - (0, M, -2M+1) -4
-2
_
C2 = 1 – M
= -1
_
C5 = M
_
entra x2 en la base P2 = B-1 P2 = B-1
-2
1
0
=
-2
1
0
Tabla 2.
B-1
Base
x4
x6
x3
1
0
0
0
1
0
0
0
1
_
b
10
1
1
_
P2
-2
1
0
var que entra
x2
Regla mínima proporción min{10/-2, 1/1, 1/0} ⇒ sale x6
-1
Nueva base {x4, x2, x3} ⇒ B = [P4 P2 P3] ⇒ B =
_
b = B-1b =
12
1
1
B-1
Base
x4
x2
x3
π = (0, 0, 1)
1
0
0
1
0
0
2
1
0
2
1
0
-5
-2
1
-5
-2
1
_
b
12
1
1
= (0, 1, -1)
21
1
0
0
2
1
0
-5
-2
1
Investigación Operativa 2008/09
_
C1 = -1 ⇒ entra x1
_
P1 =
1
0
0
2
1
0
-5
-2
1
1
-4
-2
3
0
-2
=
_
C5 = 1
Tabla 3.
B-1
Base
x4
x2
x3
1
0
0
2
1
0
-5
-2
1
_
b
12
1
1
Var que entra
x1
_
P1
3
0
-2
Nueva base {x1, x2, x3}
Tabla 4.
B-1
Base
1
x1
x2
x3
2
-5/3
-2
-7/3
/3
1
4
/3
-5/3
-2
-7/3
/3
0
2
/3
1
/3
π = (-3, 1, 1) 0
2
/3
_
C4 = 1/3
_
C5 = 1/3
/3
1
4
/3
2
_
b
4
1
9
= [-1/3, 1/3, 2/3]
Por lo tanto, la tabla 4 es óptima y la solución óptima es:
x1 = 4
x2 = 1
x3 = 9
x4 = x5 = 0
_
4
Z = CB•b = (-3, 1, 1) 1
9
= -2
22
Investigación Operativa 2008/09
Ventajas del método revisado del Simplex doble el método del Simplex regular.
1. El simplex revisado trabaja sobre una tabla cuyo tamaño lo determina el número
de restricciones.
2. Si se calcula B-1 en cada iteración directamente de los datos del principio, no se
acumulan errores de redondeo.
3. Los conceptos teóricos del método ayudan a entender conceptos de teoría de la
dualidad y análisis de sensibilidad.
23
Investigación Operativa 2008/09
Tema 4: Teoría de la Dualidad.
2x1
La teoría de la dualidad se centra en el hecho de que, asociado a cualquier problema
de programación lineal, existe otro problema de programación lineal que se llama su dual,
de manera que al resolver el primero se resuelve también el segundo sin coste
computacional adicional.
Problemas primal-dual simétrico. Propiedades y relaciones de los problemas primal y
dual.
Un problema de programación lineal está escrito en forma simétrica si todas las
variables son no negativas, y todas las restricciones son desigualdades (si el problema es de
maximizar, con ≤, y si es de minimizar, con ≥).
PRIMAL
Max Z = Cx
Ax ≤ b
x≥0
Min Z = Cx
Ax ≥ b
x≥0
Max Z = (C1, C2, …, Cn)
x1
…
xn
a11
a21
...
am1
x1
x2
…
xn
x1
x2
…
xn
a12
a22
...
am2
...
...
...
...
a1n
a2n
...
amn
≤
b1
b2
...
bm
≥0
24
Investigación Operativa 2008/09
DUAL
Min W = by
yA ≥ C
y = (y1, y2, …, ym)
y≥0
↓
Min W = b1y1 + b2y2 + … + bmym
a11y1 + a21y2 + ... + am1ym ≥ C1
a12y1 + a22y2 + ... + am2ym ≥ C2
...
...
...
...
…
a1ny1 + a2ny2 + ... + amnym ≥ Cn
y1, y2, …, ym ≥ 0
1.
2.
3.
4.
5.
6.
Reglas generales de construcción del problema dual.
Definir una variable dual no negativa por cada restricción del problema primal.
Hacer que el vector de costes del problema primal pase a ser el vector de las
constantes de la derecha del problema dual.
Hacer que el vector de constantes de la derecha del primal sea el vector de costes del
dual.
La traspuesta de la matriz de coeficientes del primal es la matriz de coeficientes del
dual.
Invertir la dirección de las desigualdades de las restricciones.
Invertir Maximizar por Minimizar (y viceversa).
Problema Primal
Max Z = Cx
Ax ≤ b
x≥0
Problema Dual
Min W = by
yA ≥ C siendo A la matriz
y ≥ 0 traspuesta de la matriz A
del problema primal (y٠A ⇔
At٠yt)
Amxn
x n variables
b m restricciones
y m variables
C n restricciones
Teoremas de la dualidad.
Teorema 1 (Teorema débil de la dualidad).
Consideremos los problemas de programación lineal primal-dual simétricos:
Max Z = Cx
Ax ≤ b
x≥0
↔
Min W = yb
yA ≥ C
y≥0
25
Investigación Operativa 2008/09
Se tiene que el valor de la función del objetivo del problema dual (para toda solución
factible del dual) es siempre mayor o igual que el valor de la función del objetivo primal (en
cualquier solución factible del problema primal).
Demostración.
Sean x0 e y0 solución factible del primal y dual, respectivamente
x0 solución factible del problema primal ⇒ Ax0 ≤ b
(1)
x0 ≥ 0
y0 solución factible del problema dual ⇒ y0A ≥ C
(2)
y0 ≥ 0
(la solución factible cumple las restricciones)
(1) ⇒ y0Ax0 ≤ y0b
(2) ⇒ y0Ax0 ≥ Cx0
Entonces
(pues y0 ≥ 0)
(pues x0 ≥ 0)
Cx0 ≤ y0Ax0 ≤ y0b
Z0 (primal)
W0 (dual)
(Z y W funciones objetivo)
Corolarios.
1) El valor de la función del objetivo Z del problema primal para cualquier solución
factible del primal es una cota inferior para el valor mínimo de la función del
objetivo dual.
2) Análogamente, el valor de la función del objetivo del problema dual para
cualquier solución factible es una cota superior para el valor máximo de la
función del objetivo primal.
3) Si el problema primal tiene solución no acotada entonces el problema dual no
tiene ninguna solución factible.
4) Análogamente, si el problema dual tiene solución no acotada entonces el primal
no tiene ninguna solución factible.
5) Si el problema primal tiene solución, y el dual no, entonces el primal es no
acotado.
6) Si el problema dual tiene solución, y el primal no, entonces el dual es no acotado.
7) Si el primal no tiene solución ⇒ el problema dual no tiene solución o es no
acotado.
8) Si el problema dual no tiene solución ⇒ el problema primal no tiene solución o
es no acotado.
26
Investigación Operativa 2008/09
Ejemplo 1.
Primal
Dual
Max Z = x1 + 2x2 + 3x3 + 4 x4
Sujeto a
x1 + 2x2 + 2x3 + 3x4 ≤ 20
2x1 + x2 + 3x3 + 2x4 ≤ 20
xi ≥ 0
Min W = 20y1 + 20y2
Sujeto a
y1 + 2y2 ≥ 1
2y1 + y2 ≥ 2
2y1 + 3y2 ≥ 3
3y1 + 2y2 ≥ 3
yi ≥ 0
ej.
x0 = (x10, x20, x30, x40)
(1, 1, 1, 1)
Æ Z (x0) = 10
cualquier solución factible del problema dual verifica W ≥ 10 ⇒ Wopt ≥ 10
Ejemplo 2.
Primal
Dual
Max Z = x1 + x2
- x1 + x2 + x3 ≤ 2
-2x1 + x2 - x3 ≤ 1
xi ≥ 0
Min W = 2y1 + y2
- y1 + 2y2 ≥ 1
y1 + y2 ≥ 1
y 1 - y2 ≥ 0
yi ≥ 0
El primal tiene solución (por ejemplo x0 = (0, 0, 0) es una solución factible del
primal).
Pero el dual no tiene ninguna solución factible (si yi ≥ 0, - y1 - 2y2 siempre ≤ 0).
Por el corolario 5, el primal tiene solución no acotada.
Ejemplo 3.
Primal
Dual
Min Z = -2x1 – 3x2
x1 - x2 ≥ 2
- x1 + x 2 ≥ 1
x1, x2 ≥ 0
Max W = 2y1 + y2
y1 - y2 ≤ -2
- y1 + y2 ≤ -3
yi≥ 0
27
Investigación Operativa 2008/09
Ambos, primal y dual, no tienen soluciones factibles (corolarios 7 y 8).
Teorema 2 (Criterio de optimalidad).
Si existen soluciones factibles x0 e y0 para el problema primal y dual,
respectivamente, tales que Cx0 = y0b ⇒ x0 e y0 son soluciones óptimas del problema primal
y dual, respectivamente.
Demostración (ejercicio)
Primal
En el Ejemplo 1
Max Z = x1 + 2x2 + 3x3 + 4 x4
Sujeto a
x1 + 2x2 + 2x3 + 3x4 ≤ 20
2x1 + x2 + 3x3 + 2x4 ≤ 20
xi ≥ 0
Dual
Min W = 20y1 + 20y2
Sujeto a
y1 + 2y2 ≥ 1
2y1 + y2 ≥ 2
2y1 + 3y2 ≥ 3
3y1 + 2y2 ≥ 3
yi ≥ 0
si tomamos:
x0 = (0, 0, 4, 4)
Z0 = 28
y0 = (1’2, 0’2)
W0 = 28
x0 e y0 óptimas del primal y dual respectivamente
Teorema 3 (Teorema fundamental de la dualidad).
Si el problema primal y el dual tienen soluciones factibles, entonces los dos tienen
soluciones óptimas cuyos valores de la función objetivo coinciden.
Teorema 4 (Teorema de las holguras complementarias).
Sean x0 e y0 soluciones factibles del problema primal y dual:
Max Z = Cx
Min W = yb
Ax ≤ b
yA ≥ C
x≥0
y≥0
x0 e y0 son soluciones óptimas ⇔ (y0A – C)x0 + y0(b – Ax0) = 0
Demostración.
(y0A - C)x0 + y0(b - Ax0) = 0 ⇔ y0Ax0 – Cx0 + y0b – y0Ax0 = 0 ⇔ - Cx0 + y0b = 0 ⇔ Cx0 =
y0 b
28
Investigación Operativa 2008/09
Entonces x0 e y0 óptimas ⇔ Cx0 = y0b
“⇒” por el teorema 3 de la dualidad
“⇐” por el teorema 2
Condiciones de holguras complementarias.
Supongamos x0 solución factible del problema primal e y0 solución factible del
problema dual:
Ax0 ≤ b
n variables
y0A ≥ C m variables
x0 ≥ 0
m ecuaciones
y0 ≥ 0
n ecuaciones
⇕
0
x1
x20
A٠ …
xn0
≤
⇕
b1
b2
…
bm
(y10, y20 , …, ym0)A ≥ (C1, C2, …, Cn)
Si lo escribimos con holguras:
x10
x20
A٠ …
xn0
+
U1 0
U2 0
…
Um 0
b1
b2
…
bm
=
(*)
siendo Ui0 ≥ 0 ∀i = 1, 2, …, m el vector de holguras
(y10, y20 , …, ym0)A – (V10, V20, …, Vn0) = (C1, C2, …, Cn)
siendo Vi0 ≥ 0 ∀i = 1, 2, …, n el vector de holguras
(*)
(**)
(**)
Ax0 + U0 = b ⇒ U0 = b - Ax0
y0A – V0 = C ⇒ V0 = y0A - C
El teorema 4 dice:
x0 e y0 son soluciones óptimas óptimas ⇔ (y0A - C)x0 + y0(b - Ax0) = 0 ⇔ V0x0 + y0U0 = 0
⇔
⇔ (V10, V20, …, Vn0)
x1 0
x2 0
…
xn 0
+
(y10, y20 , …, ym0)
U1 0
U2 0
…
Um 0
n
m
Vj 0xj 0 = 0
j=1…n
j=1
j=1
yj 0Uj 0 = 0
j=1…m
⇔ ∑ Vj 0xj 0 + ∑ yj 0Uj 0 = 0 ⇔
Vj 0 ٠ xj 0 = 0
v. primal j-ésima
holgura dual j-ésima
yj 0Uj 0 = 0
v. dual j-ésima
29
=0⇔
sistema o condiciones
de holguras
complementarias
holgura primal
Investigación Operativa 2008/09
1)
2)
3)
4)
Se obtiene:
Si xj 0 > 0 ⇒ Vj 0 = 0
Si Vj 0 > 0 ⇒ xj 0 = 0
Si yj 0 > 0 ⇒ Uj 0 = 0
Si Uj 0 > 0 ⇒ yj 0 = 0
Ejemplo 1:
Max Z = x1 + 2x2 + 3x3 + 4 x4
Sujeto a
→ x1 + 2x2 + 2x3 + 3x4 + U1 = 20
→ 2x1 + x2 + 3x3 + 2x4 + U2 = 20
x1 + 2x2 + 2x3 + 3x4 ≤ 20
2x1 + x2 + 3x3 + 2x4 ≤ 20
xi ≥ 0
xi, Ui ≥ 0
Min W = 20y1 + 20y2
Sujeto a
y1 + 2y2 ≥ 1
2y1 + y2 ≥ 2
2y1 + 3y2 ≥ 3
3y1 + 2y2 ≥ 3
yi ≥ 0
→ y1 + 2y2 - V1 = 1
→ 2y1 + y2 - V2 = 2
→2y1 + 3y2 - V3 = 3
→3y1 + 2y2 - V4 = 4
La solución óptima del dual es:
yi, Vi ≥ 0
y10 = 1’2
y20 = 0’2
W0 = 28
Condiciones de holgura complementarias:
U1 0 y10 = 0
U2 0 y20 = 0
x1 0 V10 = 0
x2 0 V20 = 0
x3 0 V30 = 0
x4 0 V40 = 0
y10 = 1’2 > 0 ⇒ U1 0 = 0
y20 = 0’2 > 0 ⇒ U2 0 = 0
y10 + y20 = 1’6 > 1 ⇒ V10 > 0 ⇒ x1 0 = 0
2y10 + y20 = 2’6 > 2 ⇒ V20 > 0 ⇒ x2 0 = 0
2y10 + 3y20 = 3 ⇒ V30 = 0 ⇒ x3 0 ≥ 0
3y10 + 2y20 = 4 ⇒ V40 = 0 ⇒ x4 0 ≥ 0
Y nos queda del sistema de ecuaciones del problema primal:
2x3 0 + 3x4 0 = 20
x3 0 = 4
3x3 0 + 2x4 0 = 20
x4 0 = 4
30
Investigación Operativa 2008/09
x0 = (0, 0, 4, 4)
Zopt = 28
(que tiene que coincidir con el valor óptimo de la
función objetivo dual)
Problemas asimétricos primal-dual.
Consideremos un problema de programación lineal no simétrico, por ejemplo:
Primal
Max Z = 2x1 – 3x2
Sujeto a
6x1 – 3x2 ≤ 15
2x1 + 3x2 ≥ 5
- x1 + 4x2 = -1
x1 cq signo, x2 ≤ 0
Cualquier problema no simétrico puede convertirse en uno equivalente que sí lo sea
Max Z = Cx
Ax ≤ b
x≥0
x1 = x1' – x2'
x2 = - x3'
- x1 + 4x2 = -1 ⇒
x1', x2' ≥ 0
x3 ' ≥ 0
- x1 + 4x2 ≥ -1 Æ x1 - 4x2 ≤ 1
- x1 + 4x2 ≤ -1
2x1 + 3x2 ≥ 5 Æ - 2x1 – 3x2 ≤ -5
Max Z = 2x1' – 2x2' – 3x3'
Sujeto a
6x1' – 6x2' + 3x3' ≤ 15
-2x1' + 2x2' + 3x3' ≤ -5
x1' - x2' + 4x3' ≤ 1
- x1' + x2' - 4 x3' ≤ -1
xi'≥ 0
Dual
Min W = 15w1 - 5w2 – w3 + w4
Sujeto a
6w1 – 2w2 + w3 - w4 ≥ 2
-6w1 + 2w2 - w3 + w4 ≥ -2
3w1 + 3w2 + 4w3 – 4w4 ≥ 3
wi ≥ 0
Min W = wb
wA ≥ C
w≥0
Llamamos
y1 = w1 ≥ 0
y2 = - w2 ≤ 0
y3 = w3 - w4 ≥ 0
31
Investigación Operativa 2008/09
Min W = 15y1 + 5y2 – y3
Sujeto a
6y1 + 2y2 + y3 ≥ 2
-6y1 – 2y2 - y3 ≥ -2
3y1 – 3y2 + 4y3 ≥ 3
Min W = 15y1 + 5y2 – y3
6y1 + 2y2 + y3 = 2
3y1 – 3y2 + 4y3 ≥ 3
y1 ≥ 0, y2 ≤ 0, y3 cq signo
6y1 + 2y2 + y3 = 2
3y1 – 3y2 + 4y3 ≥ 3
Max Z = 2x1 – 3x2
6x1 – 3x2 ≤ 15
2x1 + 3x2 ≥ 5
- x1 + 4x2 = -1
x1 cq signo, x2 ≤ 0
PRIMAL (Maximizar)
DUAL (Minimizar)
٠ A matriz de coeficientes
٠ Traspuesta
٠ Vector de constantes de la ٠ Vector de coeficientes de la f.
derecha
objetivo
٠ Vector de coeficientes de la f. ٠ Vector de constantes de la
objetivo
derecha
٠ i-ésima restricción con =
٠ Variable i-ésima de cualquier
signo
٠ i-ésima restricción con ≤
٠ Variable i-ésima ≥ 0
٠ i-ésima restricción con ≥
٠ Variable i-ésima ≤ 0
٠ Variable j de cualquier signo
٠ Restricción j con =
٠ Variable j ≥ 0
٠ Restricción j con ≥
٠ Variable j ≤ 0
٠ Restricción j con ≤
32
Investigación Operativa 2008/09
Ejercicio 1.
Primal
Max Z = x1 + 4x2 + 3x3
2x1 + 3x2 – 5x3 ≤ 2
3x1 - x2 + 6x3 ≥ 1
x1 + x2 + x3 = 4
x1 ≥ 0, x2 ≤ 0, x3 cq signo
Dual
Min W = 2y1 + y2 + 4y3
2y1 + 3y2 + y3 ≥ 1
3y1 - y2 + y3 ≤ 4
-5y1 + 6y2 + y3 = 3
y1 ≥ 0, y2 ≤ 0, y3 cq signo
Ejercicio 2.
Primal
Min Z = 2x1 + x2 - x3
x1 + x2 - x3 = 1
x1 - x2 + x3 ≥ 2
x2 + x3 ≤ 3
x1 ≥ 0, x2 ≤ 0, x3 cq signo
Dual
Max W = y1 + 2y2 + 3 y3
y1 + y2 ≤ 2
y1 - y2 + y3 ≥ 1
-y1 + y2 + y3 = -1
y1 cq signo, y2 ≥ 0, y3≤ 0
Los teorema del 1 al 4 de la teoría de la dualidad también se aplican a los problemas
asimétricos, con las modificaciones correspondientes.
En el Ejercicio 2:
x1 0 = 2
x2 0 = 0
solución factible primal
0
x3 = 1
y10 = 1
y20 = 0
y30 = 0
solución factible dual
Por el teorema 1 de la dualidad Z0 ≥ W0 ⇒ Cx0 = 3 > y0b = 1
En el Ejercicio 1:
x1 0 = 0
33
Investigación Operativa 2008/09
x2 0 = 0
x3 0 = 4
Z0 = 12
solución factible primal
y1 0 = 0
y20 = 0
y30 = 3
W0 = 12
Por el teorema 2 ambas son soluciones óptimas.
Si el problema viene en forma estándar:
Max Z = Cx (Min) su dual es
Ax = b
x≥0
Min W = yb
yA ≥ C
y cq signo
Max W = yb
yA ≤ C
y cq signo
34
Investigación Operativa 2008/09
Cálculo de la solución óptima del problema dual a partir de la tabla óptima del
problema primal.
Consideremos el problema de programación lineal en forma estándar:
Min Z = Cx
(dual) Max W = yb
Ax = b
yA ≤ C
x≥0
y cq signo
xB
Sea x0 =
la solución óptima del primal.
xN
xB = B-1b, siendo B la base óptima
_
Cj = Cj – πPj ≥ 0
∀j por ser solución óptima donde π = CBB-1
En notación matricial C – πA ≥ 0 ⇔ πA ≤ C ⇒ el vector π es una solución factible
del problema dual.
Además W(π) = πb = CBB-1b = CBxB = Zóptimo ⇒ π es óptima del problema dual.
35
Investigación Operativa 2008/09
Ejemplo:
Primal
Min Z = -3x1 + x2 + x3
x1 - 2x2 + x3 ≤ 11
-4x1 + x2 + 2x3 ≥ 3
-2x1 + x3 = 1
xi ≥ 0
Dual
Max W = 11y1 + 3y2 + y3
y1 - 4y2 – 2 y3 ≤ - 3
-2y1 + y2
≤1
y1 + 2y2 + y3 ≤ 1
y1 ≤ 0, y2 ≥ 0, y3 cq signo
Resolvemos el problema primal: la solución óptima es B = [P1 P2 P3]
x1 = 4
x2 = 1
x3 = 9
Z0 = -2
-1
1
1
-2
1
/3 2/3
-5/3
π = CBB-1 = (-3, 1, 1) -4
1
2
= (-3, 1, 1) 0 1
-2 = [-1/3, 1/3, 2/3]
2
4
-2
0
1
/3 /3
-7/3
Se comprueba que π es solución factible del problema dual y que
W(π) = 11(-1/3) + 3(1/3) + 1(2/3) = -2
36
Investigación Operativa 2008/09
Cómo ver la solución dual óptima en la tabla óptima del simplex del problema primal.
_
Base
Solución (b)
•
•
•
_
Cj
Sean {i1, i2, …, im} los índices de las variables básicas de la primera tabla del Simplex:
1ª tabla
…
Base
xi1
xi2
…
xim
x1
٠
٠
…
٠
x2
٠
٠
…
٠
xi1
1
0
…
0
xi2
0
1
…
0
…
xim
0
0
…
1
_
xn
٠
٠
…
٠
En cualquier tabla, B-1 aparece en las columnas de las variables básicas iniciales.
En particular, en la última tabla:
Base
xi1
xi2
_
_
…
xim
_
…
Ci1
_
_
Ci2
_
37
b
Cim
Investigación Operativa 2008/09
(Ci1, Ci2, …, Cim) = (Ci1, Ci2, …, Cim) – π[Pi1 … Pim] ⇒
1
0
⇒ (Ci1, Ci2, …, Cim) – π …
0
0
1
…
0
…
…
…
…
0
0
_ _
_
… ⇒ π = (Ci1, Ci2, …, Cim) – (Ci1, Ci2, …, Cim)
1
Tema 5: Método del Simplex Dual.
Conceptos fundamentales. Bases factibles dual y primal.
Consideremos un problema de programación lineal estándar:
Min Z = Cx
Ax = b
x≥0
Amxn
x=
b=
b1
…
bm
A = (P1 … Pn)
C = (C1, …, Cn)
x1
…
xn
m<n
Sea B ⊂ A una submatriz de A formada por m columnas de A linealmente
independientes. Se dice que B es una base factible primal (o base factible del problema
primal) si B-1b ≥ 0.
Sea B ⊂ A una submatriz de A formada por m columnas de A linealmente
independientes. Se dice que B es una base factible dual (o base factible del problema dual)
si:
C – CBB-1A ≥ 0
(C – CBB-1A ≤ 0 si el p. primal fuese de maximizar)
Consecuencias de las definiciones.
• Que B sea factible primal significa que se le puede asociar una solución:
x=
xB
xN
con xB = B-1b ≥ 0
• Que B sea factible dual significa que C – CBB-1A ≥ 0 ⇒ C ≥ CBB-1A.
38
Investigación Operativa 2008/09
Llamando yB = CBB-1 → C ≥ yBA ⇔ yBA ≤ C ⇒ yB así definida es una solución
factible del problema dual. Además C – yBA ≥ 0
como los beneficios relativos del problema primal se calculan como
_
C = C – πA, = C – CBB-1A = C – yBA ≥ 0 ⇒ xB = B-1b es una solución factible y óptima
del problema primal.
Luego como Wo = yBb = CBB-1 = CBxB = Zopt
yB y xB son soluciones óptimas del primal y dual.
Resumiendo, si una matriz B es a la vez una base factible primal y dual, sus
soluciones asociadas xB = B-1b e yB = CBB-1 son óptimas del primal y dual, respectivamente.
Desarrollo del método dual del Simplex.
Consideremos el ejemplo
Min Z = x1 + 4x2 + 3x4
Sujeto a:
x1 + 2x2 – x3 + x4 ≥ 3
-2x1 - x2 + 4 x3 + x4 ≥ 2
xi ≥ 0
Introducimos variables de holgura x5 y x6:
x1 + 2x2 – x3 + x4 - x5 = 3
-2x1 - x2 + 4 x3 + x4 - x6 = 2
xi ≥ 0
Multiplicamos por -1:
-x1 - 2x2 + x3 - x4 + x5 = -3
2x1 + x2 - 4 x3 - x4 + x6 = -2
xi ≥ 0
CB
0
0
Cj
base
x5
x6
_
1
x1
-1
2
4
x2
-2
1
0
x3
1
-4
3
x4
-1
-1
0
x5
1
0
0
x6
0
1
Cj
1
4
0
3
0
0
b
-3
-2
_
B = [P5 P6] = I ⇒ B = I ⇒ b = B b ≱ 0 pero C - CBB ª = C = (1,4,0,3,0,0) ≥ 0
-1
-1
-1
Luego B no es factible primal (porque ≱ 0), pero sí factible dual.
_
_
Si tenemos, por tanto, una tabla del Simplex Dual donde Cj ≥ 0 y b ≥ 0 ⇒ estaríamos
ante la solución óptima.
39
Investigación Operativa 2008/09
Situación general.
_
Base
x1
…
xr
…
xm
xm+1
…
xs
…
xn
b
_
x1
1
y1,m+1
…
y1s
…
y1n
0
…
b1
…
_
xr
1
yr,m+1
…
yrs
…
yr n
br
Alguno
menor
que cero
0
…
_
xm
1
yn,m+1
…
yns
…
ymn
bm
_
_
_
_
≥0
Cj
0
0
0
Cm+1
…
Cs
…
Cn
(min)
El método del simplex dual va a calcular una solución factible básica dual adyacente,
reemplazando una variable básica por una variable no básica.
1. Selección de la variable básica que deja la base.
_
Se elige la variable básica con el mayor valor negativo bi.
Sea br = min {bi} ⇒ xr deja la base, y la fila r es la fila pivote.
bi < 0
2. Selección de la variable no básica que entra en la base (Regla de la máxima proporción).
40
Investigación Operativa 2008/09
Entra en la base xs tal que
c
cs
= max j
yrs y rj < 0 yrj
y el valor yrs es el pivote para construir la nueva tabla.
En nuestro ejemplo:
_
1) El mayor valor negativo de los bi es -3 ⇒ x5 deja la base
_
_
2) Variable no básica yij
Cj
Cj/yij
x1
-1
1
-1
x2
-2
4
-2
x4
-1
3
-3
max {-1, -2, -3} = -1 ⇒ x1 entra en la base y el pivote es -1. Aquí el pivote es negativo.
41
Investigación Operativa 2008/09
Tabla 2 del m.s.d.
Cj
1
4
0
3
0
0
_
CB
base
x1
x2
x3
x4
x5
x6
1
0
x1
x6
_
1
0
2
-3
-1
-2
1
-3
-1
2
0
1
Cj
0
2
1
2
1
0
sale x6
proporciones:
x2
x3
x4
_
Cj
2
1
2
yij
-3
-2
-3
b
3
-8
-2/3 = -0’66
-1/2 = -0’5
-2/3 = -0’66
max {-0’66, -0’5} = -0’5 ⇒ entra x3 y el pivote es -2.
Tabla 3 del m.s.d.
_
CB
base
x1
x2
x3
x4
x5
x6
1
0
x1
x3
_
1
0
7
0
1
5
-2
-1
-1/2
-1/2
2
1
/2
3
/2
/2
3
/2
1
1
0
0
/2
/2
_ _
Tabla óptima ⇔ Cj y b ≥ 0
Solución óptima del problema de programación lineal.
Cj
/2
b
7
4
≥0
≥0
Z=7
OBSERVACIONES.
1.-) Resolución de problemas de maximización por el método del simplex dual.
*La regla de salida es igual
* Cambia la regla de entrada, que ahora va a ser de la mínima proporción
Entra en la base xs tal que
cj
cs
= min
yrs yrj <0 yrj
2.-) ¿Qué sucede si falla el criterio de entrada? Es decir, todos los yij de la fila de la
variable que sale son ≥ 0.
Entonces el problema no tiene solución. ¿Por qué: ejercicio?
42
Investigación Operativa 2008/09
3.-)
¿Cómo se puede saber, utilizando el método del simplex dual, que el problema
original tiene solución no acotada? Ejercicio: pensarlo usando los corolarios 1-8 del
teorema 1 de la dualidad
43
Investigación Operativa 2008/09
Tema 6: Análisis de Sensibilidad y Programación Paramétrica
1. Análisis de sensibilidad.
Se refiere al estudio de los cambios en la solución óptima y en el valor óptimo de Z
debido a cambios en los datos del problema inicial, pero sin resolver el problema de nuevo
desde el principio.
Ejemplo.
Una compañía fabrica 3 productos A, B y C. Los beneficios por unidad de estos
productos son 2, 3 y 1 respectivamente, y para su fabricación son necesarios 2 recursos:
trabajo y material. Supongamos que los valores óptimos a fabricar de los productos A, B y
C se obtienen resolviendo el problema:
Max Z = 2x1 + 3x2 + x3
1
Sujeto a:
/3x1 + 1/3x2 + 1/3x3 ≤ 1
1
/3x1 + 4/3x2 + 7/3x3 ≤ 3
xi ≥ 0
(trabajo)
(material)
xi ≡ “unidades a fabricar del producto i”
Cj
2
3
1
0
0
CB
base
x1
x2
x3
x4
x5
0
0
x4
x5
_
1
1
1
/3
7
/3
1
0
0
1
b
1
3
3
1
0
0
Z=0
/4
/4
0
1
-1/4
7
/4
1
0
-1/4
3
/4
/4
0
-17/4
0
-9/4
Z = 27/4
x1
x2
_
1
0
0
1
-1
2
4
-1
-1
1
1
2
Cj
0
0
-3
-5
-1
Z=8
Tabla1
_
Cj
/3
1
/3
2
/3
4
/3
Tabla2
0
3
x4
x2
_
1
Cj
5
1
1
9
/4
/4
Tabla3
2
3
x1 = 1
x2 = 2
Zopt = 8
Solución óptima
44
Investigación Operativa 2008/09
1
P1 =
1
/3
/3
1
P2 =
4
/3
/3
1
P3 =
7
/3
/3
1
P4 =
0
0
P5 =
1
C = (2,3,1,0,0)
1
b=
3
Max Z = Cx
Ax = b
x≥0
C = (C1, C2, ..., Cn)
1xn x=
x1
...
xm
nx1
xn
A=
A=
a11
a21
...
a12
a22
...
...
...
...
a1n
a2n
...
mxn b=
b1
b2
...
am1
am2
...
amn
m<n
bm
[ P1
P2
…
Pn ]
Pi =
a1i
a2i
…
ami
mx1
mx1
∀i = 1, ..., n
Supongamos que tenemos una solución factible obtenida a partir de una base B
La solución básica
xB = b = B −1b
Z = CBb
cualquier columna:
45
Investigación Operativa 2008/09
Pj = B −1Pj
∀j de las variables no básicas
π = CB B-1
Los beneficios relativos:
c j = c j − πPj = c j − cB B −1Pj = c j − cB Pj
46
∀j de variables no básicas
Investigación Operativa 2008/09
1. Modificaciones en los coeficientes de la función del objetivo.
1.1 Cambio en el Cj de una variable no básica.
Variable no básica de interés → x3 (forma parte del problema pero no está en la base)
_
_
C3 = -3
Mientras C3<0 la solución actual (x1 y x2 en la base) sigue siendo óptima
_
_
-1
C3 = C3 – CBP3 = C3 - (2,3)
= C3 - 4
2
columna de x3 en la tabla óptima
_
C3 = C3 - 4 ≤ 0 ⇔ C3 ≤ 4
⇒ si C3 > 4 entra x3 en la base
_
Si, por ejemplo C3 = 6 ⇒ C3 = 2
y haríamos una tabla más:
_
base
CB
2
6
x1
x2
x3
x4
x5
x1
x3
_
1
0
1
/2
/2
0
1
7
/2
-1/2
1
- /2
1
/2
b
2
1
Cj
0
-1
0
-4
-2
Z = 10
1
óptima
1.2 Cambio en el Cj de una variable básica.
Analicemos, por ejemplo, como se altera la tabla óptima modificando C1:
_
_
x1 y x2 están en la base ⇒ C1 = C2 = 0
_
_
C3 = C3 - CBP3 = 1 – (C1,3)
-1
2
_
4
C4 = 0 – (C1,3)
-1
= -4C1 + 3
_
-1
C5 = 0 – (C1,3)
1
= C1 - 3
= C1 - 5
47
Investigación Operativa 2008/09
_ _
_
La tabla 3 seguirá siendo óptima mientras C3, C4 y C5 ≤ 0 (estamos maximizando).
_
C3 ≤ 0 ⇔ C1 - 5 ≤ 0 ⇔ C1 ≤ 5
_
C1 ≤ 0 ⇔ -4C1 + 3 ≤ 0 ⇔ C1 ≥ 3/4
_
C5 ≤ 0 ⇔ C1 - 3 ≤ 0 ⇔ C1 ≤ 3
⇒ si C1 ∈ [3/4,3] la tabla 3 sigue siendo óptima, si
nos salimos del intervalo [3/4,3] la tabla ya
no es óptima
≤5
≥ 3/4
0
≤3
3
/4
3
5
Si, por ejemplo C1 = 1 la solución de la tabla 3 (x1 = 1, x2 = 2) sigue valiendo,
_
1
pero cambia Zopt = CBb = (1,3)
=7
2
1.3 Cambio en Cj tanto de variables básicas como no básicas.
Hagamos, por ejemplo, C1=1, C2=4, C3=2
En la tabla 3 hay que cambiar
_
_
_
C1 = C2 = 0 (el Ci de las variables básicas siempre es 0)
_
-1
C3 = 2 – (1,4)
= -5 < 0
2
_
4
C4 = 0 – (1,4)
=0
-1
_
-1
C5 = 0 – (1,4)
= -3 < 0
1
La solución de la tabla 3 sigue siendo óptima. Ahora Zopt = 9 y tendríamos una
solución óptima alternativa haciendo entrar a x4. Si alguno de los Ci fuese > 0 la tabla no
sería óptima y habría que seguir calculando tablas. _
En general, hay que recalcular la fila de los Cj. Si la tabla deja de ser óptima, habría
que continuar con el simplex.
2. Modificaciones en las constantes de la derecha de las restricciones.
Como, en cada tabla del simplex:
48
Investigación Operativa 2008/09
Base = { xi1, xi2, …, xim } ⇒ B = [Pi1, Pi2, …, Pim]
_
xB = b = B −1b
es el vector solución
Supongamos que en el problema del ejemplo se puede realizar 1 hora más de trabajo
(b1 crece una unidad).
b1
2
b1 = 1 → b1 = 2
b=
=
3
b2
En la tabla óptima, B = (P1 P2) y
_
Luego b = B-1b =
4
-1
-1
4
-1
-1
1
B =
2
5
=
-1
1
3
1
Así, la nueva solución óptima es:
x1 = 5
x2 = 1
x3 = 0
Zopt = 13
Entonces, por unidad aumentada en la disponibilidad del recurso 1, el beneficio que se
obtiene es: 13-8 = 5 unidades.
Definición- Se llama precio sombra, marginal o de equilibrio de la restricción (recurso) i
al cambio que se produce en el valor de la función del objetivo por unidad aumentada en la
disponibilidad del recurso i.
Se prueba que los precios sombra de los recursos i = 1, …, m son la solución óptima
opt
yi del dual i = 1, …, m
En nuestro caso:
(y1opt,y2opt)
=π
=CBB
-1
4
-1
-1
1
= (2,3)
= (5,1)
Ahora bien, para que los precios sombra no den información errónea, debemos
calcular cuál es el campo de variación de los bi en el que la solución sigue siendo óptima.
Lo calculamos, por ejemplo, para b1:
b1
b* =
3
Para que la tabla 3 siga siendo óptima, es preciso que B-1b* ≥ 0
4 -1
b1
4b1 – 3
4b1 – 3 ≥ 0 ⇔ b1 ≥ 3/4
-1
B b* =
=
≥0 ⇔
-b1 + 3 ≥ 0 ⇔ b1 ≤ 3
-1
1
3
-b1 + 3
49
⇒
Investigación Operativa 2008/09
⇒ Si b1 ∈ [3/4,3] la solución seguirá siendo óptima
x2 = -b1 + 3
x3 = 0
x1 = 4b1 – 3
Zopt = 2(4b1 – 3) + 3(-b1 + 3) = 5b1 + 3
Sea, por ejemplo b1 = 4, ahora B-1b =
13
-1
≱0
La tabla 3 queda:
_
base
x1
x2
x3
x4
x5
x1
x2
_
1
0
0
1
-1
2
4
-1
-1
1
Cj
0
0
-3
-5
-1
b
13
-1
Esta tabla no es factible primal, pero sí factible dual ⇒ aplicamos el Método del
Simplex Dual:
x2 deja la base y entra x4
_
base
x1
x2
x3
x4
x5
b
9
≥0
1
≥0
Zopt = 18
x1
x4
3. Modificaciones en la matriz de coeficientes de las restricciones.
3.1Adición de una nueva actividad (variable).
Supongamos que la compañía puede sacar a la venta un nuevo producto D, que
requiere 1 unidad de trabajo y 1 unidad de material, con beneficio/unidad = 3.
1
Esto equivale a añadir una variable x6 y una columna
en la tabla 1.
_
1
La tabla 3 seguirá siendo óptima si es C6 ≤ 0:
_
1
C6 = C6 – πP6 = 3 – (5,1)
= -3
1
_
Luego la solución de la tabla 3 sigue siendo óptima. Si C6 > 0 se aplicaría el simples.
3.2 Variaciones en las condiciones de las variables existentes.
3.2.1 Cambios correspondientes a una variable no básica.
50
Investigación Operativa 2008/09
Se hace como en 3.1
3.2.2 Cambios correspondientes a variables básicas.
Mejor resolver el problema de nuevo, porque al cambiar la matriz básica B se
cambian todas las columnas de la tabla.
3.3 Adición de nuevas restricciones.
Supongamos que se añade una restricción referente a los servicios administrativos,
de tal modo que los productos A, B y C requieren 1, 2 y 1 hora de servicios
respectivamente, mientras las horas totales disponibles son 10.
x1 + 2x2 + x3 ≤ 10
Si la solución óptima de la tabla 3 satisface la restricción, sigue siendo óptima:
1•1 + 2•2 + 1•0 ≤ 10, cumple la restricción
Si la restricción fuese x1 + 2x2 + x3 ≤ 4:
1•1 + 2•2 + 1•0 ≰ 4
Añadimos la nueva restricción a la tabla 3:
_
CB
base
2
3
0
x1
x2
x3
x4
x5
x6
x1
x2
x6
_
1
0
1
0
1
2
-1
2
1
4
-1
0
-1
1
0
0
0
1
Cj
0
0
-3
-5
-1
0
b
1
2
4
(3ªF – 1ªF - 2•(2ªF))
_
CB
base
x1
x2
x3
x4
x5
x6
x1
x2
x6
1
0
0
0
1
0
-1
2
-2
4
-1
-2
-1
1
-1
0
0
1
0
0
-3
-5
-1
0
b
1
2
-1
_
Cj
x1
x2
x5
2
1
1
51
Investigación Operativa 2008/09
Zopt = 7
En la tabla 3, Zopt = 8 → ∆Zopt = -1
Esto siempre es cierto: al añadir una restricción a un problema de programación
lineal el nuevo valor de la función del objetivo es igual o peor que el anterior.
Observaciones.
Tiempo de resolución de un p.p.l ≡ f(m3), siendo m el número de restricciones
A) Quitar restricciones inactivas o secundarias.
B) Resolver
C) Añadir y comprobar si las restricciones de A) son verificadas por la solución óptima.
Programación paramétrica.
1. Costes (Beneficios) paramétricos
Z = [C + λC*] x
Ax = b
x≥0
C = (C1, C2, …, Cn)
λ ∈ℝ
C = (C1*, C2*, …, Cn*)
Primero se resuelve el problema para λ = 0. Sea B la base óptima:
_
_
_
Cj ≤ 0 (Maximizando)
Cj = Cj - CBPj
_
_
_
_
_
_
Cj(λ) = (Cj + λCj*) – (CB + λCB*)Pj = (Cj - CBPj) + λ (Cj* - CB* Pj) = Cj + λCj*
Ejemplo:
Max Z = (2 + λ)x1 + (3 - λ)x2 + (1 + λ)x3
1
/3x1 + 1/3x2 + 1/3x3 ≤ 1
1
/3x1 + 4/3x2 + 7/3x3 ≤ 3
xi ≥ 0
Cj*
Cj
1
2
-1
3
1
1
52
0
0
0
0
Investigación Operativa 2008/09
_
CB*
CB
base
1
-1
2
3
x1
x2
x1
x2
x3
x4
x5
1
0
0
1
-1
2
4
-1
-1
1
B
1
2
0
0
-3
-5
-1
Z = 8 = CBb
0
0
4
-5
-2
Z * = −1 = C B* b
_
Cj
_
Cj*
_
_
Por ejemplo, C3* = C3* - CB*P3 = 1 – (1,-1)
-1
=4
2
Z(λ) = Z + λZ* = 8 - λ
_
C3(λ) = -3 + 4λ ≤ 0 ⇔ λ ≤ 3/4
_
C4(λ) = -5 -5λ ≤ 0 ⇔ λ ≥ -1
_
C5(λ) = -1 + 2λ ≤ 0 ⇔ λ ≤ 1/2
La solución sigue siendo óptima si λ ∈ [-1, 1/2].
Si λ > /2 ⇒ C5(λ) > 0 (⇒ entra x5 y sale x2)
1
_
base
x1
x2
x3
x4
x5
x1
x5
_
1
0
1
1
1
2
3
-1
0
1
b
3
2
Cj
_
0
1
-1
-6
0
Z=6
Cj*
0
base
x1
x2
x3
x4
x5
1
0
-1/4
1
-1/4
-2
0
-3
0
Z* = 3
_
_
_
La solución es óptima si C2(λ), C3(λ), C4(λ) ≤ 0 → ocurre si λ ≥ 1/2 y Z = 6 + 3λ
_
Para λ < -1 C4(λ)>0 (⇒ sale x1 y entra x4)
_
x4
/4
53
b
/4
1
Investigación Operativa 2008/09
x2
_
1
/4
1
Cj
_
5
/4
Cj*
5
/4
Z(λ) = 27/4 - 9/4λ
_
_
7
/4
0
3
0
-17/4
0
-9/4
0
11
0
3
/4
_
Solución óptima si C1(λ), C3(λ), C5(λ) ≤ 0
⇔ λ ≤ -1
54
/4
/4
9
/4
Z = 27/4
Z* = -9/4
Investigación Operativa 2008/09
2. Variación paramétrica del vector de recursos.
Z = Cx
Ax = b + αb*
x≥0
b=
b1
…
bm
b* =
α∈ℝ
Primero resolvemos para α = 0. Sea B la base óptima:
_
xB = b = B-1b
_
_
_
-1
-1
-1
Para b + αb*, xB = b = B (b + αb*) = B b + αB b* = b + αb*
_
_
Si b + αb* ≥ 0 la base B seguirá siendo óptima.
Ejemplo:
1
Hagamos b* =
-1
b + αb* =
Resolver para α = 0:
55
1+α
3-α
b1 *
…
bm*
Investigación Operativa 2008/09
base
x1
x2
x3
x4
_
_
b*
5
-2
Z * = 4 = CBb *
x5
x1
x2
_
1
0
0
1
-1
2
4
-1
-1
1
b
1
2
Cj
0
0
-3
-5
-1
Z = 8 = CBb
_
b = B-1b =
_
b* = B-1b =
4
-1
1
1
-1
1
3
2
4
-1
1
5
-1
1
-1
=
=
-2
x1 = 1 + 5α ≥ 0 ⇔ α ≥ - 1/5
x2 = 2 - 2α
≥0⇔α≤1
Zopt = 8 + 4α
α ∈ [- 1/5,1]
Si α > 1 ⇒ x2 < 0 y la solución actual no es factible, pero sí factible dual. Usando el Método
del Simplex Dual obtenemos:
_
_
3
-1
b
9
-2
b*
-3
2
-6
Z = 18
Z* = -6
CB
base
x1
x2
x3
x4
x5
2
0
x1
x4
_
1
0
4
-1
7
-2
0
1
Cj
0
-5
-13
0
x1 = 9 - 3α
≥ 0 si α ≤ 3
x2 = -2 + 2α ≥ 0 si α ≥ 1
α ∈ [1,3]
Z = 18 -6α
Si α > 3 ⇒ x1 < 0 y la solución actual no factible. Como en la fila de x1 no hay coeficientes
negativos, el problema es NO FACTIBLE.
Si α < - 1/5 ⇒ x1 < 0 (⇒ por el Método del Simplex Dual sale x1 y entra x5)
base
x5
x1
-1
x2
0
x3
x4
1
-4
56
_
_
b
-1
b*
-5
x5
1
Investigación Operativa 2008/09
x2
_
1
1
1
3
0
3
3
Cj
x2 = 3 + 3α
-1
≥0
0
-2
-9
0
Z=9
Z* = 9
x5 = -1 - 5α
≥0
si -1 ≤ α < - 1/5
Z = 9 + 9α
Si α < -1 ⇒ x2 < 0 → problema NO FACTIBLE
57
Investigación Operativa 2008/09
Tema 7. Programación lineal entera.
Un p.p.l. entera es aquel en el que todas las variables de decisión (programación
entera pura) o algunas de ellas (programación entera mixta) toman exclusivamente valores
enteros.
Una forma de tratar este problema es el redondeo (quedarse con la parte entera por
arriba ó abajo teniendo cuidado de que la solución que así se obtenga sea factible)
Algoritmo de ramificación y acotación (Branco and Bound Algorithm).
Maximizar Z = 3x1+2x2
Sujeto a
x1 ≤ 2
x2 ≤ 2
x1+ x2 ≤ 3.5
x1,x2 ≥ 0 y enteros.
Soluciones enteras
58
Investigación Operativa 2008/09
Z=3x1+2x2
Z(0,0)=0
Z(0,1)=2
Z(0,2)=4
Z(1,0)=3
Z(1,1)=5
Z(1,2)=7
Z(2,0)=6
Z(2,1)=8 óptimo
Algoritmo.
Primero resolvemos el problema olvidándonos de la restricción de variables
enteras (PL-1)
59
Investigación Operativa 2008/09
Región factible ABCDE
óptimo x1 =2, x2=1.5 ZOptimo=9
Sabemos que añadir las restricciones de que las variables sean enteras no puede mejorar la
función del objetivo. Tenemos así que Z0=9 es una cota superior para el valor óptimo del
problema inicial.
Creamos ahora 2 nuevos problemas
x2=1.5
x2≤1
x2≥2
60
Investigación Operativa 2008/09
PL-2
Maximizar Z = 3x1+2x2
PL-3
Maximizar Z = 3x1+2x2
x1≤ 2
x2≤ 2
x1+ x2 ≤ 3.5
x2≤ 1
x1,x2 ≥ 0
x1≤ 2
x2≤ 2
x1+ x2 ≤ 3.5
x2≥ 2
x1,x2 ≥ 0
PL-2
61
Investigación Operativa 2008/09
PL-3
Región factible = segmento AB
La solución óptima de PL-2 es
x1 =2, x2=1 ZOptimo=8
Así tenemos una s.f. entera de PL-1 (Fijarse que cada solución
entera factible de PL-1 está contenida en PL-2 ó en PL-3). Aunque PL-2
pueda contener otras soluciones enteras, sus valores de la función
objetivo no pueden ser más grandes que 8, ⇒ Z=8 es una cota inferior
del valor máximo de Z en el PL-1.
Luego 8≤ Zoptimo≤9
En PL-3 la solución óptima es
x1 =1.5, x2=2 ZOptimo=8.5
x1 no es factible (no es entero) para PL-1 pero Z=8.5>8, ⇒ hay que construir 2
nuevos problemas
PL-4
PL-3 + restricción x1≤ 1
PL-5
PL-3 + restricción x1≥ 2
62
Investigación Operativa 2008/09
PL-5 No tiene región factible.
PL-4
Solución óptima entera:
x1 =1, x2=2 ZOptimo=7
pero es peor que 8.
Por tanto la solución óptima es la de PL-2 x1 =2, x2=1 ZOptimo=8
El árbol obtenido es el siguiente:
63
Investigación Operativa 2008/09
DETALLES GENERALES
· MIP (Mixed Integer Program)
Maximizar Z = CX
Sujeto a
AX = b
X≥ 0
Xj entera para j perteneciente a I = {índices de las variables enteras}
· Se resuelve el MIP sin condiciones enteras. A este problema le llamamos PL-1 con
solución óptima Z1. Supongamos que la solución óptima toma valores no enteros en alguna
variable entera, y por lo tanto no es solución del MIP. Sí es, en cambio, una cota superior
del valor óptimo de Z en el MIP.
Se elige una variable entera Xj que dio no entera. Si Xj = βj, se construyen 2 nuevos
problemas:
64
Investigación Operativa 2008/09
PL-2:
Maximizar Z = CX
AX = b
Xj ≤ βjX≥0
PL3:
Maximizar Z = CX
AX = b
Xj≥ βj+
X≥0
· Para elegir la variable Xj en la que hacer la bifurcación hay las siguientes reglas:
1). A ojo o al azar.
2). Por prioridades, según...
· La variable representa una decisión importante en el problema.
· Su coste (o beneficio) es más grande que en las demás variables.
· Decisión según resolución anterior del problema.
· Como PL-2 y PL-3 son PL-1 con una nueva restricción añadida, podemos usar el MSD
(Método del Simplex Dual) para encontrar sus soluciones óptimas.
· Supongamos que las soluciones óptimas de PL-2 y de PL-3 siguen siendo fraccionarias. El
siguiente paso consiste en seleccionar PL-2 o PL-3 para hacer una nueva ramificación. Para
ello:
a). Se elige aquel problema cuyo valor óptimo sea el mejor.
b). Se selecciona el problema resuelto más recientemente (Last-in-First-out rule, LIFO)
· Continuamos así la sucesión de ramificaciones y resolución de p.p.l hasta resolver uno que
tenga solución entera. El valor de la función objetivo en este caso será una cota inferior del
valor óptimo del MIP original. En este momento podemos dejar de considerar todos
aquellos nodos cuyos valores de Z no sean mejores que la cota inferior. Se dice que esos
nodos han sido saturados.
· DEFINICIÓN: un nodo intermedio está explícita o implícitamente saturado siempre que
se satisfaga una de las siguientes condiciones:
1). La solución óptima del p.p.l correspondiente es entera.
2). El p.p.l correspondiente es no factible.
3). El valor óptimo de Z para el p.p.l correspondiente no es mejor que la cota inferior
actual.
65
Investigación Operativa 2008/09
· Del árbol mostrado en la figura superior:
· El Nodo 4 está saturado. Cualquier solución del problema MIP no puede ser mejor
que esta.
· El Nodo 5 está saturado por ser no factible.
· Supongamos que Z6 < Z4, el Nodo 6 está saturado implícitamente.
· En el caso de que Z7 > Z4, habría que ramificar a partir del Nodo7.
· Notas
- La eficacia del método radica en la rapidez con que se saturen los nodos.
- Es importante mantener el número de variables enteras lo menor posible.
- Proporcionar cotas ajustadas superiores e inferiores de Zoptimo.
- Al contrario que un p.p.l general, la adición de nuevas restricciones a un MIP
generalmente reducirá el tiempo de computación, especialmente cuando las nuevas
restricciones contengan variables enteras.
- A veces llega con que:
[(CotaSuperior Z - CotaInferior Z) / CotaSuperior Z] < [% pequeño del óptimo
continuo]
66
Investigación Operativa 2008/09
Tema 8: Problemas Especiales de Programación Lineal.
Problemas de Transporte.
Consideremos:
M almacenes con existencias a1, a2, …, aM
N mercados con demandas b1, b2, …, bN
Sea Cij ≡ coste por unidad enviada del almacén i al mercado j
i = 1…M
j = 1…N
Se trata de calcular la cantidad a enviar desde cada almacén hasta cada mercado
minimizando el coste total del transporte.
ALMACÉN
MERCADO
1
•
2
•
•
1
•
2
i
•
…
…
M
•
…
•
j
…
•
N
Sea xij = “nº de unidades o cantidad enviada desde el almacén i al mercado j”
M N
Función objetivo: Min Z = ∑ ∑ Cij xij
i=1 j=1
Sujeto a:
Las restricciones vienen dadas por las capacidades de los almacenes y las exigencias de los
mercados.
1
•
i
•
…
xi1
•
1
…
xij
…
•
j
xi1 + xi2 + … + xij + … + xiN ≤ ai
cantidad total
enviada desde el
almacén i-ésimo
∀i=1,2,…,M
existencia
en el almacén
i-ésimo
67
M
•
xiN
…
•
N
Investigación Operativa 2008/09
1
•
i
•
…
x1j
…
xij
•
1
…
•
j
xMj
…
∀j=1,2,…,N
x1j + x2j + … + xij + … + xMj ≥bj
cantidad total
que recibe el
mercado j
cantidad
demandada por
el mercado j
M N
Queda Min Z = ∑ ∑ Cij xij
i=1 j=1
N
sujeto a:
∑ xij ≤ ai
j=1
M
∑ xij ≥ bj
i=1
i=1…M
j=1…N
xij ≥ 0 ∀i,j
M+N restricciones
MxN variables
Es evidente que el problema es factible (tiene solución) si:
M
N
i=1
j=1
∑ ai ≥ ∑ bj
almacenado demandado
M
N
i=1
j=1
Si ∑ ai = ∑ bj se tiene un problema de transporte estándar:
M N
Min Z = ∑ ∑ Cij xij
i=1 j=1
sujeto a:
N
∑ xij = ai
j=1
M
∑ xij = bj
i=1
M
•
i=1…M
j=1…N
xij ≥ 0 ∀i,j
68
•
N
Investigación Operativa 2008/09
Desarrollaremos técnicas de resolución para problemas de este tipo, por ello, si no se
cumple que:
∑ ai = ∑ bj
por ejemplo si:
M
N
i=1
j=1
∑ ai > ∑ bj
(I)
(La cantidad enviada es mayor que la cantidad demandada. Habrá una cierta cantidad que no
se enviará. Se crea entonces un mercado ficticio, llamado N+1, con demanda precisamente
igual a esa cantidad).
a1
•
a2
•
…
aM
•
•
•
…
•
•
M
b1
b2
bN
bN+1
N
= ∑ ai - ∑ bj con Ci,N+1 = 0 ∀i=1…N
i=1
j=1
mercado
ficticio
El problema se reescribe:
exceso de mercancía
xi,N+1 i=1,…,M
lo que sobra en el almacén i
M N+1
Min Z = ∑ ∑ Cij xij
i=1 j=1
sujeto a:
N+1
∑ xij = ai
j=1
M
∑ xij = bj
i=1
i=1…M
j=1…N+1
xij ≥ 0 ∀i,j
Si:
M
N
i=1
j=1
∑ ai < ∑ bj
( II )
69
Investigación Operativa 2008/09
(La cantidad enviada es menor que la demandada. No se cumplirán todas las demandas y
habrá una cierta pérdida en algún mercado. Se crea entonces un almacén ficticio, llamado
M+1, con la cantidad que falta).
70
Investigación Operativa 2008/09
almacén
ficticio
N
a1
a2
aM
aM+1
= ∑ bj - ∑ ai con CM+1,j = 0 y xM+1,j es la
j=1
•
•
…
•
•
b1
•
b2
…
•
bN
M
i=1
la pérdida en el mercado j
•
El problema se reescribe:
M+1 N
Min Z = ∑ ∑ Cij xij
i=1 j=1
sujeto a:
N
∑ xij = ai
i=1…M+1
j=1
M+1
∑ xij = bj
j=1…N
i=1
xij ≥ 0 ∀i,j
El problema de Transporte estándar puede expresarse en forma de tabla con los
datos (ai, bj, Cij).
Mercados
Almacene
s
1
1
2
x12
x11
C11
2
3
x13
C21
N
Existencias
x1N
C12
x22
x21
…
C13
x23
a1
C1N
x12N
C22
C23
a2
C2N
…
i
…
xi1
xi2
Ci1
xiN
xi1
Ci2
Ci3
ai
CiN
…
M
…
xM1
xM2
CM1
xM3
CM2
xMN
CM3
71
aM
CMN
Investigación Operativa 2008/09
Demandas
b1
b2
b3
…
bN
Sumas xij por filas = existencias ⇒ RESTRICCIONES DE ALMACENAJE
Sumas xij por columnas = demandas ⇒ RESTRICCIONES DE DEMANDAS
72
Investigación Operativa 2008/09
Obtención de una solución factible básica inicial:
El problema de transporte tiene M+N restricciones ⇒ una solución factible básica
necesita, en principio, M+N variables básicas.
M N
M
i=1 j=1
i=1
Ahora bien, dado que ∑ ∑ xij = ∑ ai
M
(sumamos todas las ecuaciones ∑ xij = ai)
j=1
M
∀j=1…N
∑ xij = bj
i=1
N M
N
M
j=1 i=1
j=1
i=1
∑ ∑ xij = ∑ bj = ∑ ai
Sistema de ecuaciones / suma de las M primeras filas = suma de las N restantes
⇒ 1 ecuación es linealmente dependiente de las demás ⇒ El problema de transporte
estándar tiene M+N-1 restricciones linealmente independientes ⇒ Una solución factible
básica necesita M+N-1 variables básicas.
Hay diferentes métodos para resolver la solución factible básica inicial, nosotros sólo
vemos 2.
(1)
Obtención de una
solución
factible básica inicial
(2)
Comprobar si es
óptima
NO
(3)
SI
Se mejora
obteniendo
otra solución
factible
73
FIN
Investigación Operativa 2008/09
básica
(1) Hay varios métodos: esquina noroeste, coste mínimo, de Vogel, de aproximación de
Russell…
(2) Método U-V
(3) Algoritmo de Steeping-Stone
Método de la esquina noroeste.
Consiste en elegir como variables básicas (>0) aquellas que ocupen la esquina
noroeste en la tabla de transporte estándar.
M1
A1
2
A2
10
M2
M3
2
M4
2
8
capacidades
1
5
3
4
7
= a1
+
= a2
+
A3
7
6
6
8
5
demandas
4
3
4
4
15
‖
‖
‖
‖
b1
+
b2
+
b3
+
= a3
b4
Elegimos x11 = min{3,4} = 3
A1
A2
A3
M1
3
M2
0
M3
0
M4
0
4-3=1
3
4
4
M2
0
M3
0
M4
0
3
4
4
3-3=0
7
5
Elegimos x21 = min{a2, b1’} = min{7,1} = 1
b1’ es el b1 después de restarle lo que enviamos
A1
A2
A3
M1
3
1
0
1-1=0
Elegimos x22 = min{a2’, b2} = min{6,3} = 3
74
0
7-1=6
5
Investigación Operativa 2008/09
A1
A2
A3
M1
3
1
0
0
M2
0
3
0
0
M3
0
M4
0
4
4
M3
0
3
M4
0
0
4-3=1
4
M3
0
3
1
0
M4
0
0
4
4
0
6-3=3
5
Elegimos x23 = min{b2’, a3} = min{3,4} = 3
A1
A2
A3
M1
3
1
0
0
M2
0
3
0
0
0
0
5
Elegimos x33 = min{a3’, b3} = min{1,5} = 1
A1
A2
A3
M1
3
1
0
0
M2
0
3
0
0
0
0
5-1=4
M+N-1 = 4+3-1 = 6 variables básicas > 0.
Z = 3•2 + 1•10 + 3•8 + 3•5 + 1•6 + 4•8 = 93
Método del coste mínimo.
Consiste en ir eligiendo como variables básicas (>0) aquellas que tengan menor
coste.
A1
A2
A3
M1
2
10
7
4
Menor coste C14 = 1
M2
2
8
6
3
M3
2
5
6
4
M4
1
4
8
4
M3
M4
x14 = min{3,4} = 3
M1
M2
75
3
7
5
Investigación Operativa 2008/09
A1
A2
A3
0
0
0
4
3
4
Menor coste de celdas sin ocupar C24 = 4
M1
0
A1
A2
A3
A1
A2
A3
A1
A2
A3
3
4
M1
0
M2
0
M3
0
4
0
M1
0
M2
0
0
3
4
3
M1
0
2
2
4
A1
A2
A3
1
M3
0
4
3
0
7
5
x24 = min{7,1} = 1
M2
0
4
3
4
0
M2
0
0
3
0
M4
3
1
0
1
0
7
5
0
M4
3
1
0
0
0
6
M3
0
4
0
0
M4
3
1
0
0
M3
0
4
0
0
M4
3
1
0
0
0
6
2
5
0
2
5
2
0
2
2
Z = 79
Método de Steeping-Stone (Mejora de la solución factible básica inicial).
Primero es preciso saber si la solución factible básica inicial es óptima o no. En el
ejemplo anterior:
M1
0
A1
M2
0
M3
0
M4
3
3
2
2
2
76
1
Investigación Operativa 2008/09
2
0
4
1
7
A2
10
8
2
5
3
4
0
0
5
A3
7
4
6
3
6
4
8
4
Actualmente x11 = 0, si hacemos x11 = 1
M1
+1
-1
A1
A2
M4
-1
+1
_
C11 = C11•(cambio en x11) + C14•(cambio en x14) + C21•(cambio en x21) + C24•(cambio en
x24) = 2•(1) + 1•(-1) + 10•(-1) + 4•(+1) = -5
beneficio
relativo
de C1
Se pueden calcular todos los beneficios relativos de las variables no básicas
simultáneamente, mediante el método U-V o MODI (Modified Distribution Method).
Método U-V.
Se calculan números:
Ui
∀i=1…M
∀j=1…N
tales que: Cij = Ui + Vj para cada variable básica
Vj
_
Se tendrá que Cij = Cij - (Ui + Vj) para cada variable no básica.
M2
M1
M3
M4
A1
A1
2
2
•
2
•
1
•
A2
10
•
8
5
4
6
6
8
M4
U1 + V4 = 1
U2 + V1 = 10
U2 + V3 = 5
U2 + V4 = 4
U3 + V1 = 7
U3 + V2 = 6
•
•
A3
7
_
C11 - (U1 + V1) = 2 – (0+7) = -5
_
C12 = 2 - (0 + 6) = -4
Hacemos
U1 = 0 → V4 = 1→ U2 = 3 → V1 =7 y V3 = 2
U3 = 0 → V2 = 6
77
Investigación Operativa 2008/09
_
C13 = 2 – (0 + 2) = 0
_
C22 = 8 – (3 + 6) = -1
_
C33 = 6 – (0 + 2) = 4
_
C34 = 8 – (0 + 1) = 7
V1 = 7
V2 = 6
V3 = 2
V4 = 1
•
U1 = 0
2
2
•
2
•
1
•
U2 = 3
10
•
8
5
4
6
6
8
•
U3 = 0
7
Las casillas sin marca • serán las variables no básicas.
2-7-0 = -5
2-6-0 = -4
V1 = 7
V2 = 6
-5
V3 = 2
-4
U1 = 0
0
2
0
2
-1
U2 = 3
0
2
0
10
0
V4 = 1
8
0
1
0
5
4
4
7
U3 = 0
7
6
Menor beneficio relativo negativo -5 ⇒ x11 entra en la base:
+θ
3-θ
3
78
6
8
Investigación Operativa 2008/09
2-θ
2
4
3
3
4
1+θ
4
4
Máximo valor para θ = 2, porque
sino en x21 pasaría a ser negativo
y no puede ser.
7
5
(Steeping-Stone)
Nueva solución factible básica:
2
0
2
4
1
3
Z = 69
3
Miramos si es óptima (método U-V)
V1 = 2
U1 = 0
V2 = 1
V3 = 2
1
×
0
2
2
5
4
10
×
×
2
×
U2 = 3
U3 = 5
V4 = 1
8
×
5
-1
×
7
6
1
4
2
6
Solución no óptima; entra x33 en la base:
2+θ
2-θ
3
4-θ
+θ
3
3
1
1-θ
3+θ
Máximo valor posible para θ = 1
3
1
4
Z = 68
y se comprueba que es la óptima.
79
8
Investigación Operativa 2008/09
Problemas de Asignación.
Formulación general de un problema de asignación estándar:
Se tienen N máquinas y N trabajos diferentes. Cada máquina puede realizar un único
trabajo y cada trabajo sólo puede efectuarlo una máquina. Se supone que el coste de
realización de cada trabajo por cada máquina varía. El problema consiste en resolver qué
trabajo realiza cada máquina de manera que el coste total de realización de los N trabajos
sea mínimo.
M1
M2
…
MN
N máquinas
T1
T2
…
TN
N trabajos
Mij ≡ la máquina i realiza el trabajo j con coste Cij, i = 1…N, j=1,…N
Si la máquina i no puede realizar el trabajo j se escribirá Cij = M con M → ∞
Una manera intuitiva de resolver este problema es enumerar todas las posibilidades y
calcular Z en ellas. ¿Cuántas asignaciones posibles hay?
Ej//
Para 2 máquinas y 2 trabajos:
M1
M2
1ª asignación: M1 → T1
M2 → T1
Coste = C11 + C22
T2
C12
C22
T1
C11
C21
2ª asignación: M1 → T2
M2 → T1
Coste = C21 + C12
Formulamos el problema de asignación como un problema de programación lineal.
Sea xij =
1
si la máquina i realiza el trabajo j
0
no
Dado que cada máquina realiza un único trabajo:
N
∑ xij = 1
j=1
i = 1…N
suma de trabajos que realiza la máquina i
Dado que cada trabajo se le asigna a una única máquina:
N
∑ xij = 1
j = 1…N
80
Investigación Operativa 2008/09
i=1
P
cantidad de máquinas que realizan el trabajo j
Función objetivo:
N N
B
Min
∑ ∑ Cij xij
B
B
B
B
i=1 j=1
P
T1
C11
C21
B
M1
M2
…
MN
B
B
B
B
B
B
B
B
B
B
CN1
1
B
B
T2
C12
C22
B
…
B
B
B
B
B
CN2
1
B
B
TN
C1N
C2N
B
B
B
B
B
B
CNN
1
B
B
1
1
Tabla de costes
de asignación
estándar
1
B
En general en un problema de transporte necesitaríamos 2N-1 variables básicas > 0,
cuando en los problemas de asignación sólo habrá N variables > 0. No usaremos ni
transporte ni simplex porque trabajaríamos con soluciones degeneradas.
Formulación general de un problema de asignación no estándar:
U
a) Hay más máquinas que trabajos → creamos “trabajos” ficticios con coste de
realización cero.
b) Hay más trabajos que máquinas → creamos “máquinas” ficticias con coste de
realización trabajo/máquina ficticia = 0.
Método o Algoritmo Húngaro (König).
El principio básico radica en que la asignación óptima no cambia si se suma o se
resta una constante a una fila o columna de la tabla de costes de asignación estándar.
El método consiste en restar una cantidad a las filas y/o columnas de manera que se
encuentre una asignación óptima a simple vista. Iniciamos el algoritmo examinando cada
fila (columna) de la matriz de costes para identificar el elemento más pequeño. Esa cantidad
se le resta a todos los elementos de dicha fila (columna). Esto origina una tabla que contiene
al menos un cero en cada fila (columna).
Ahora se intenta realizar una asignación factible usando las celdas con coste cero. Si
es posible, se tendrá una asignación óptima.
Ejemplo:
U
T1
10
B
M1
B
B
B
T2
9
B
B
T3
8
B
B
81
T4
7
B
B
→
mínimo = 7
Investigación Operativa 2008/09
M2
M3
M4
B
B
B
B
B
B
3
2
4
4
1
3
5
1
5
→
→
→
6
2
6
mínimo = 3
mínimo = 1
mínimo = 3
A cada xij le restamos el mínimo de su fila:
B
B
T2
2
1
0
0
T1
3
0
1
1
B
M1
M2
M3
M4
B
B
B
B
B
B
B
B
B
T3
1
2
0
2
B
B
T4
0
3
1
3
B
B
B
B
Utilizando los ceros intentamos realizar una asignación factible:
M1 →
M2 →
M3 →
→
M4 →
B
B
B
B
B
B
B
B
T4
T1
T2
T3
T2
B
B
B
B
B
B
M3 → T3
M4 → T2
B
B
B
B
B
B
B
B
B
B
B
B
y ésta es la asignación óptima.
Ejemplo:
4 máquinas, 4 trabajos
U
B
M1
M2
M3
M4
B
B
B
B
B
B
B
B
T2
9
8
4
3
T1
10
5
5
2
B
B
T3
7
7
6
4
B
B
T4
8
7
5
5
B
B
B
→
→
→
→
mínimo = 7
mínimo = 5
mínimo = 4
mínimo = 2
Cogemos el mínimo por filas y se lo restamos:
T1
3
0
1
0
B
B
B
B
B
B
B
B
B
T2
2
3
0
1
B
M1
M2
M3
M4
B
T3
0
2
2
2
B
T4
1
2
1
3
B
B
B
B
M2 → T1
M4 → T1
B
B
B
B
B
B
B
B
Como dos máquinas estarían realizando el mismo trabajo no sería una asignación
óptima. Cogemos el mínimo por columnas:
M1 → T3
T1
T2
T3
T4
→ T4
M1
3
2
0
0
M2 → T1
M2
0
3
2
1
M3 → T2
M3
1
0
2
0
→ T4
M4
0
1
2
2
M4 → T1
B
B
B
B
B
B
B
B
B
B
B
B
B
B
B
B
B
B
B
B
B
B
B
B
B
B
B
B
B
B
B
B
B
82
B
B
B
Investigación Operativa 2008/09
Lo que se hace ahora es trazar líneas de modo que se cubran todas las celdas con
ceros. El teorema de König establece que el número mínimo de líneas necesario es igual al
número máximo de trabajos que pueden asignarse usando dichas celdas.
T1
3
0
1
0
T2
2
3
0
1
B
M1
M2
M3
M4
B
B
B
B
B
B
B
B
B
T3
0
2
2
2
B
B
T4
0
1
0
2
B
B
B
B
Ahora se selecciona el elemento más pequeño no cubierto por las líneas, que en este
ejemplo es el 1. Se resta este número de todos los elementos no cubiertos, y se le suma a los
cubiertos que sean intersección de dos líneas.
Es equivalente a
restar 1 de la 2ª y 4ª fila y
T1
T2
T3
T4
sumar 1 a la 1ª columna,
M1
4
2
0
0
por lo que la asignación
M2
0
2
1
0
óptima no varía.
M3
2
0
2
0
M4
0
0
1
1
B
M1 → T3
→ T4
B
B
B
B
B
B
B
B
B
B
B
B
B
B
B
B
B
M3 → T2
→ T4
B
B
B
B
B
M4 → T1
→ T2
B
B
B
B
B
B
M2 → T1
→ T4
B
B
B
B
B
B
B
B
B
B
B
B
B
B
Las asignaciones serían:
B
M1 →
M2 →
M3 →
M4 →
B
B
B
B
B
B
B
B
T3
T1
T4
T2
M1 →
M2 →
M3 →
M4 →
B
B
B
B
B
B
B
B
B
B
B
B
B
B
ó
B
B
B
B
T3
T4
T2
T1
B
B
B
B
Zopt = 20
B
B
B
83
B
Investigación Operativa 2008/09
84
Descargar