Apéndice Fundamentos algebraicos: simplex, dualidad y sensibilidad

Anuncio
Apéndice
Fundamentos algebraicos:
simplex, dualidad y sensibilidad
Formas canónica y estándar del modelo de programación lineal
La forma canónica para un modelo de programación lineal (pl) con maximización
de la función objetivo (FO) es:
Máx z = cx
s. a.
Ax ≤ b
x≥0
La forma canónica para un modelo de pl con FO de minimizar es:
Mín z = cx
s. a.
Ax ≥ b
x≥0
La forma estándar es:
Máx z = cxMín z = cx
s. a.s. a.
Ax = bAx = b
x ≥ 0o bien:x ≥ 0
Todo problema de pl puede llevarse a la forma estándar al aumentar o disminuir
variables de holgura.
1) Si la restricción es del tipo ≤, se agrega una variable llamada de holgura positiva,
y esta restricción se convierte en ecuación:
191
Programación lineal
a11 x1 + a12 x2 + … + a1n xn ≤ bi → a11 x1 + a12 x2 + … + a1n xn + hi = bi
2) Si la restricción es del tipo ≥, se agrega una variable llamada de holgura negativa:
a11 x1 + a12 x2 + … + a1n xn ≥ bi → a11 x1 +a12 x2 +… + a1n xn - hi = bi
Por ejemplo, considérese un modelo de pl de tres variables y tres restricciones representadas por desigualdades:
Máx z = c 1 x 1 + c 2 x 2 + c 3 x 3
s. a.
a11 x1 + a12 x2 + a13 x3 ≤ b1
a21 x1 + a22 x2 + a23 x3 ≤ b2
a31 x1 + a32 x2 + a33 x3 ≤ b3
La forma estándar o aumentada correspondiente es:
Máx z = c1x1 + c2x2 + c3x3
s. a.
a11 x1 + a12 x2 + a13 x3 + h1 = b1 ⎫
a21 x1 + a22 x2 + a23 x3 + h2 = b2 ⎬sistema por resolver
a31 x1 + a32 x2 + a33 x3+ h3 = b3 ⎭
El conjunto de restricciones toma la forma matricial:
a11 a21 a31 a31 a12 a22 a33 a33 a13 x1 1 0 a23 x2 + 0 1 a34 x3 0 0 a34 x3 0 0 1
0 h1 b1
0 h2= b2
1 h3 b3
h3b3
Es decir:
Ax + I h = b
Método algebraico para la solución de un modelo de programación lineal
El modelo de pl puede resolverse al construir subsistemas de orden m + n. El sistema
del ejemplo anterior tiene 6 variables y 3 ecuaciones, por tanto hay 6 – 3 = 3 grados de
libertad y por lo tanto se pueden elegir 3 variables iguales a 0.
192
apéndice
El sistema tiene
⎛ 6 ⎞ = 6! = 20
⎝ 3 ⎠ 3! (6 - 3)!
soluciones posibles, no todas son factibles; las variables que de antemano se igualan a
cero se llaman no básicas, y las que resuelven el subsistema se llaman básicas.
La primera solución factible es asignar a las variables originales el valor de 0 y en
consecuencia las variables de holgura toman el valor del lado derecho, lo que es muy
fácil observar en el sistema de forma matricial:
a11 a21 a31 a31 a12 a22 a33 a33 a13 x1 1 0 0 h1 b1
a23 x2 + 0 1 0 h2=b2
a34 x3 0 0 1 h3 b3
a34 x3 0 0 1 h3 b3
Variables no básicas: x1 = 0, x2 = 0, x3 = 0
Variables básicas: h1 = b1, h2 = b2, h3 = b3
Un ejemplo numérico aclara estos conceptos.
Ejemplo A.1
Considere el siguiente modelo de pl:
Máx z = 450x1 +500x2 + 435x3
s. a.
4x1 + 5x2 + 3x3 ≤ 50
5x1 + 10x2 + 5x3 ≤ 65
xj ≥ 0
El procedimiento para resolverlo se inicia con la construcción de la forma estándar
del modelo agregando las variables de holgura:
Máx z = 450x1 + 500x2 + 435x3
s. a.
4x1 + 5x2 + 3x3 + h1 = 50
5x1 + 10x2 + 5x3 + h2 = 65
xj ≥ 0
193
Programación lineal
Esta forma estándar tiene 5 variables (3 originales y 2 de holgura) y 2 ecuaciones,
por tanto hay 5 – 2 = 3 grados de libertad, y se pueden elegir 3 variables iguales a 0. El
sistema tiene
⎛ 5 ⎞ = 101
⎝3⎠
soluciones posibles, no todas son factibles; las variables que de inicio se igualan a 0 se
llaman no básicas y las que resuelven el subsistema se llaman básicas.
1) La primera solución factible es cuando se le asigna el valor de 0 a las variables
originales, es decir, x1 = 0, x2 = 0, x3 = 0, y el sistema ha es:
h1 = 50
h2 = 65
Solución
Variables no básicas: x1 = 0, x2 = 0, x3 =0
Variables básicas: h1 = 50, h2 = 65
-1 1 0
La matriz básica es B = 1 0yB
=
0 1
0 1
2) La segunda solución factible es cuando se le asigna el valor de 0 a las variables:
x1 =0, x2 =0, h1 = 0
El sistema por resolver es:
3x3 = 50
5x3 + h2 = 65
0
La base es B = 3 0
y B-1= -⅓ -5/3 1
5 1
1
n =
m 1
n!
m!(n-m)!
194
apéndice
Solución
Variables no básicas: x1 = 0, x2 = 0, h1 = 0
Variables básicas: x3 =
50yh2 = -55
3 3
que no es factible por tomar un valor negativo.
En el cuadro A.1 se presentan los subsistemas de 2 x 2 que son el resultado de elegir
tres de las cinco variables como variables no básicas y por lo tanto igualándolas a cero;
se muestran las bases, sus inversas, la solución, si ésta es factible o no, y en caso de ser
factible, el valor de la variable z, para determinar la solución óptima del modelo de
programación lineal.
La solución óptima que maximiza la FO es:
x1 = 11 y x3 = 2, con z = 5 829
3) Las variables que quedaron fuera de la base son: x2 = 0, h1 = 0 y h2 = 0.
El sistema que se resolvió fue:
4x1 + 3x2 = 50
5x1 + 5x2 = 65
3
La base óptima fue B =4 3 cuya inversa es B-1= -1 - /5
-1 -4/5
5 5
Para encontrar la solución se evaluaron 10 posibilidades, de ellas cuatro fueron no
factibles ya que asignaban valores negativos a alguna de las variables originales o de
holgura. Este procedimiento al igual que el método gráfico es relevante para entender
las soluciones factibles, pero es muy engorroso y además muy caro numéricamente al
hacer muchas operaciones innecesarias cuando se obtienen soluciones no factibles. El
matemático estadounidense George Bernard Dantzig (1914-2005) desarrolló el método Simplex en 1947, este método es muy eficiente ya que solamente busca la solución
óptima entre las soluciones factibles.
195
Variables básicas
h1 y h2
x3 y h2
x3 y h1
x2 y h2
x2 y h1
x2 y x3
x1 y h2
x1 y h1
x1 y x3
x1 y x2
Variables
no básicas
x1=0, x2=0, x3=0
x1=0, x2=0, h1=0
x1=0, x2=0, h2=0
x1=0, x3=0, h1=0
x1=0, x3=0, h2=0
x1=0, h1=0, h2=0
x2=0, x3=0, h1=0
x2=0, x3=0, h2=0
x2=0, h1=0, h2=0
x3=0, h1=0, h2=0
4x1 + 5x2 = 50
5x1 + 10x2 = 65
4x1 + 3x2 = 50
5x1 + 5x2 = 65
4x1+ h1 = 50
5x1 = 65
4x1 = 50
5x1 + h2 = 65
5x2 + 3x3=50
10x2 +5x3=65
5x2 + h1 = 50
10x2 = 65
5x2 = 50
10x2 + h2 = 65
3x3 + h1 = 50
5x3 = 65
3x3 = 50
5x3 + h2 = 65
h1 = 50
h2 = 65
Sistema
de ecuaciones
x2 = 13 /2
h1 = 35/2
x2 = -11
x3 = 35
x1 = 25/2
h2 = 5/2
x 1 = 13
h1 = -2
-0 /10
1 -1/20
-1 -3/5
2 -1
1
- /4 0
- 5 /4 1
- 0 /5
1 -4/50
15 1
10 0
4 15
5 10
4 3
5 5
4 1
5 0
4 0
5 1
15 3
10 5
-
-
1/3
1/3 4/15
2/3
1 -3/5
-1 4 / 5
1
1
x1 = 35/3
x2 = 2/3
x1 = 11
x3 = 2
x2 = 10
h2 = -35
1
- /5 0
-2 1
1
15 0
10 1
3 -5/3 x3 = 13
h1 = 11
3 1
5 0
3 0
5 1
-0 /5
1 -3/5
1/
1 0 50 0 1 65 h1 = 50
h2 = 65
Solución B -1b
x3=50
3
h2=55
3
-
1 0
0 1
B -1
0
1
1 0
0 1
B
Sí
Sí
No
Sí
No
Sí
No
Sí
No
Sí
Factible
450x1 + 500x2 =
5 583.33
450x1 + 435x3 =
5 820
450x1 =
5 625
500x2 =
3 250
435x3 =
5 655
0
Valor de z
apéndice
Método Simplex
Como se observó en el método algebraico, cuando se agregan variables al modelo, éste
se convierte en un sistema que tiene más variables que ecuaciones, ya que se agregan m
variables, con lo que se obtiene un sistema de m ecuaciones con n + m variables, y por
lo tanto existen n + m - m = n grados de libertad, es decir, se pueden elegir n variables e
igualarlas a cero, a las que se denominan variables no básicas. Las restantes m variables
se denominan básicas. Así se tienen
⎛ m+ n ⎞
⎝ m ⎠
subsistemas de ecuaciones de m variables y m incógnitas, pero como vimos arriba no
todas son factibles. Ahora veremos el método Simplex que sólo obtiene soluciones
factibles.
El método Simplex es un algoritmo2 que se usa para resolver problemas de pl.
Construye una solución inicial factible a partir de llevar el modelo de pl a la forma
estándar agregando variables de holgura y asegurándose de que los valores del lado derecho b sean positivos para identificar la solución inicial factible. Una vez que el modelo está en la forma estándar o aumentada, se construye la tabla Simplex y sobre ella se
verifica si la solución es óptima o no lo es; en el primer caso el problema está solucionado, en el segundo, hay que mejorar la solución mediante operaciones sobre la tabla
Simplex.
Esquemáticamente, este algoritmo consta de tres fases:
Inicialización:
construcción de una solución
inicial factible
Criterio
de optimización:
¿la solución
es óptima?
Fin:
el modelo está resuelto
Paso interactivo:
mejorar la solución
El Algoritmo es un conjunto de pasos ordenados con el objeto de resolver problemas.
2
197
Programación lineal
En la etapa final, en la que el modelo se encuentra resuelto, existen tres posibilidades: que se haya encontrado la solución óptima, que el problema no tenga solución o
bien que no esté acotado.
La descripción de las tres fases se presenta a continuación:
1) Inicialización: construcción de la solución inicial factible.
Esta etapa consiste en la construcción de una solución básica factible aumentando
variables de holgura en las restricciones de tipo menor o igual, así como igualando z
con ci x.
Forma canónica:
Máx z = c1 x1 + c2 x2 + ... + cn xn
s. a.
a11 x1 + a12 x2 + … + a1n3 xn ≤ b1
...
...
am1 x1 + am22 x2 + … amnxn ≤ bm
Forma estándar:
Máx z – (c1 x1 + c2 x2 + ... + cn xn) = 0
s. a.
a11 x1 + a12 x2 + … + a1n xn + h1 = b1
....
....
am1 x1 + am2 x2 + + … + amn xn +hm = bm
Matricialmente:
Máx z – [c1 … cn] s. a.
a11 … a13
aij a31 … a34
x1
xn
=0
xn
1 0 0 h1 b1
xj + 1 = xn 0 … 1 h b m
m
198
apéndice
O bien con las dos expresiones siguientes:
Maximizar z en:
z
1 -ct 0 x = 0
0 -a 1 h b
Máx z – ctx
s. a.
Ax + Ih = bx, h ≥ 0
Construcción de la tabla Simplex inicial:
Variables
básicas
n variables originales
x 1 x 2 x j x n
m variables de holgura
h 1 h 2 ... h m
Solución
B -1b
h1
a11 a12 a1j a1n
1 0 0
b1
h2
a21 a22 a2j a2n
0 1 0
b2
hm
am1 am2 amj amn
0 0 1
bm
z
-c1 -c2 -cj -cn
0 0 0
0
⎫
|
|
⎬
|
|
⎭
⎫
|
|
⎬
|
|
⎭
⎫
|
⎬
|
⎭
Costos reducidos
z – cj
yi
Variables duales
o precios sombra
Valor de z
Su forma reducida es:
Vb
VO
x
Vh
h
Sol
h
A
B
B-1b
z
z – cj
y
-1
0
Obsérvese que en la matriz que ocupa el lugar de las variables de holgura se encuentra
la inversa de la matriz básica, es decir, de la matriz de coeficiente de las variables básicas.
La solución inicial es:
h1 = b1
hm = bm x1 = 0
xj = 0
xn = 0 y1 = 0
ym = 0
z=0
199
Programación lineal
Esta solución es factible. Lo siguiente es preguntarnos si es óptima. Será óptima
cuando todos los valores del renglón objetivo donde se encuentre la variable z sean positivos. Así se enuncia el criterio de optimización.
2) Criterio de optimización
Si zj – cj ≥ 0 y yi ≥ 0 → la solución presentada en la tabla Simplex es óptima.
En caso contrario, si alguna zj – cj ≤ 0 o yi ≤ 0, es necesario mejorar la presente solución, y pasar a la etapa 3.
3) Paso iterativo para mejorar la solución y cambiar la base.
3.1.Elección de la variable que entra a la base. Se selecciona la variable no básica
con el coeficiente en el renglón objetivo z más negativo.
3.2.Elección de la variable básica que sale de la base. La variable que sale de la base
es la que cumple con el siguiente criterio:
mín bi, aij > 0
aij
Variables básicas
xj
Solución B - 1 b
h1
a1j
b1
b1/a1j
hi
aij
bi
b1/aij
hm
amj
bm
b m/ a mj
z
-cj
Costos mayor reducido
- cj
Entra a la base la variable xj y sale la variable hi .
3.3.Cambio de la base por medio de operaciones elementales en los renglones de la
matriz.
3.3.1. Se transforma en uno el coeficiente que está en la intersección; entran la
variable que sale y la que entra con la siguiente operación:
= 1 R
aij
i
200
apéndice
Variables básicas
xj
Solución B - 1 b
h1
a1j
b1
xj
ai1 aij ain
aij aij aij
bi
aij
amj
bm
hm
z
- cj
Variables básicas
xj
Solución B - 1 b
h1
a1j
b1
xj
ai1 1 ain
aij aij
bi
aij
amj
bm
Y se obtiene:
hm
z
-cj
El 1 en la intersección del renglón i, columna j hace que Ri sea el renglón pivote y
se utiliza para convertir en ceros las demás entradas de la columna j.
3.3.2. Se convierten en cero las demás posiciones de la columna j.
k =
k
– akj
i
3.3.3. Finalmente abrá que ir a la etapa 2 para probar la optimalidad.
Un ejemplo numérico aclarará la explicación.
Ejemplo A.2
Consideremos el problema que se resolvió con el método algebraico:
Máx z = 450x1 + 500x2 + 435x3
s. a.
4x1 + 5x2 + 3x3 ≤ 50
5x1 + 10x2 + 5x3 ≤ 65
xj ≥ 0
201
Programación lineal
1) Inicialización: construcción de la solución inicial factible.
Esta etapa consiste en la construcción de una solución básica factible, aumentando
variables de holgura en las restricciones de tipo menos o igual, así: como igualando z
con cx.
Máx z – (450x1 +500x2 + 435x3) = 0
s. a.
4x1 + 5x2 + 3x3 + h1 = 50
5x1 + 10x2 + 5x3 + h2 = 65
xj ≥ 0
Construcción de la tabla Simplex inicial:
Variables
básicas
3 variables originales
x 1 x 2 x 3
2 variables de holgura
h 1 h 2
Solución
B -1b
h1
4 5 3
1 0
50
h2
5 10 5
0 1
65
z
-450 -500 -435
0 0
0
La solución inicial factible es:
Variables no básicas: x1 = 0, x2 = 0, x3= 0
Variables básicas: h1= 50, h2 = 65
Variables duales o precios sombra: y1 = 0, y2 = 0
La matriz básica es B =1 0 y
B-1 = 1 0
0 1
0 1 2) Criterio de optimización
¿Son zj – cj ≥ 0
y
yi ≥ 0? La respuesta es no.
3) Paso iterativo para mejorar la solución y cambiar la base.
3.1.Elección de la variable que entra a la base: entra x2 a la base porque tiene el coeficiente -500 que es el mayor negativo.
3.2.Elección de la variable básica que sale de la base:
Sale h2 porque cumple con:
202
apéndice
mín 50, 65 = 6.5
5 10
Variables
básicas
3 variables originales
x 1 x 2 x 3
2 variables de holgura
h 1 h 2
Solución
B -1b
h1
4 5 3
1 0
50
50/5
h2
5 10 5
0 1
65
65/10
z
-450 -500 -435
0 0
0
Para cambiar la base se realizan las siguientes operaciones:
= 1 R2
10
1= R 1– 5
2
obj
= obj
2
+ 500
2
Variables
básicas
3 variables originales
x 1 x 2 x 3
2 variables de holgura
h 1 h 2
Solución
B -1b
h1
1.5 0 0.5
1 0.5
17.5
17.5/1.5
6.5/0.5
x2
0.5 1 0.5
0 0.1
6.5
z
-200 0 -185
0 5 0
3 250
La solución actual es:
Variables no básicas: x1 = 0, x3 = 0, h2= 0
Variables básicas: h1 = 17.5, x2 = 6.5
Variables duales o precios sombra: y1 = 0, y2 = 500, B-1 = 1 -5
0 0.1
2. Criterio de optimización
¿Son zj – cj ≥ 0 y yi ≥ 0? La respuesta es no.
3. Paso iterativo para mejorar la solución y cambiar la base.
3.1. Elección de la variable que entra a la base: entra x1 a la base porque tiene el
coeficiente -200 que es el mayor negativo.
3.2. Elección de la variable básica que sale de la base:
Sale h1 porque cumple con:
203
Programación lineal
mín 17.5,
3 2
6.5
1
2
= 35,13 3 = 35
3
Para cambiar la base se realizan las siguientes operaciones:
= 1 R1
1.5
1
2=
2 –
2
1
obj
= obj
1
+ 200
1
Variables
básicas
3 variables originales
x 1 x 2 x 3
2 variables de holgura
h 1 h 2
Solución
B -1b
x1
1 0 1/3
2/3 -1/3
35/3
x2
0 1 1/3
z
0 0 -183.33
-1/3 1/4
133.33 - 1 6 . 6 6
2/3
5 583.33
La solución actual es:
Variables no básicas: h1 = 0, h2 = 0, x3 = 0
Variables básicas: x1 = 35/3, x2 = 2/3, z = 5 583.33
Variables duales o precios sombra: y1 = 133.33, y2 = -16.66
B-1= 2/3 -1/3
-1/3 1/4
2. Criterio de optimización
¿Son zj – cj ≥ 0 y yi ≥ 0? La respuesta es no.
3. Paso iterativo para mejorar la solución y cambiar la base.
3.1. Elección de la variable que entra a la base: entra x3 a la base porque tiene el coeficiente -183.33 que es el mayor (único) negativo.
3.2.Elección de la variable básica que sale de la base:
Sale x2 porque cumple con:
204
apéndice
mín 35
3 ,
1
3
2
3
1
3
= {35, 2} = 2
Para cambiar la base se realizan las siguientes operaciones
2
=3R2
= 1– 1 3
1
obj
= obj
2
+ 183.33
2
Variables
básicas
3 variables originales
x 1
x 2
x3
2 variables de holgura
h 1 h 2
x1
1-1 0
1 -3/5
11
x3
03 1
-1 4/5
2
z
0335 0
15 7 8
5 820
La solución actual es óptima:
Variables no básicas: x2 = 0, h1 = 0, h2 = 0
Variables básicas: x1 = 11, x3 = 2, z = 5 820
Variables duales o precios sombra: y1 = 15, y2 = 78, B-1= Solución
B -1b
1 -3/5
-1 4/5
Interpretación
Se debe hacer, producir o activar 11 unidades de la actividad 1, y 2 unidades de la actividad 3 para obtener una ganancia máxima de 5 820.
No hacer la actividad 2.
Como h1 = 0 y h2 = 0, implica que se acabaron los recursos 1 y 2 respectivamente.
Con el precio sombra o variable dual y1 = 15, significa que por cada unidad adicional del recurso i aumenta z en 15.
Con el precio sombra o variable dual y2 = 78, significa que por cada unidad adicional del recurso i aumenta z en 78.
205
Programación lineal
Observar las siguientes relaciones:
1)xb = B-1b = x1 1 –3/5 x3 –1 4/5 50 = 11
65 2 2
2) z = cBB-1b = 450 435 11 =
2
5 820
3) y = cBB-1 450 435 1 -3/5 2= 215 78
-1 4/5 2
4) además una nueva relación w = yb = S yibi = 15 (50) + 78 (65) = 5 820
i=1
Resumen
La primera y última tabla Simplex contienen los siguientes elementos:
Coeficientes de variables
Coeficientes de variables
Originales
Holgura
Originales
Holgura
h
A
I
b
xb
B–1A
B-1A
B-1b
z
-c
0
0
z
cBB A -c
cBB
cBB-1b
–1
-1
En el cuadro inicial:
1) A es la matriz de coeficiente técnico
2) I es la matriz idéntica
3) -c son los costos iniciales
4) h son las variables duales
5) b es el lado derecho que contiene los límites de los recursos
En el cuadro final:
1) xb son las variables básicas = B-1b
2) B-1 es la inversa de la matriz de coeficiente técnico de las variables básicas.
3) cBB-1A-c son los costos reducidos finales, que deben ser mayores o iguales a cero.
4) y = cBB-1 es el valor de las variables duales o precios sombra.
5) z es el valor de la función objetivo óptima = cBB-1b
206
apéndice
y además:
m
w = yb = S yibi
i=1
Dualidad
Todo problema de pl tiene asociado otro problema que también es de pl, conocido
como problema dual dual.
El planteamiento de un modelo de pl para maximizar es el siguiente:
Halle x1, x2, …, xn tal que:
n
M á x z = S cj xj
j=1
s. a.
n
S aij xj ≤ bi
j=1
x j ≤ 0
El cual se denomina problema primal.
De las relaciones a, 3 y 4 del resumen anterior, se cumple:
m
w = y b = S yi bi
j=1
cBB-1A-c ≥ 0 como y = cBB-1,
entonces y A-c ≥ 0 → yA ≥ c
Recordemos que el precio sombra yi para el recurso i mide el valor marginal de este
recurso, es decir, la tasa a la que z puede aumentar si se incrementa en una unidad la
cantidad que se proporciona de este recurso; y dado que w = z, w deberá ser el mínimo
valor que asegure la factibilidad del primal; en consecuencia se desea que estos precios
sombra sean mínimos cuando se quiere maximizar la utilidad.
De aquí se define el problema de pl denominado dual del primal:
Halle y 1 , y 2 , … , y m t a l que
m
Mín w = S yibi
i=1
s. a. n
S aij yi ≥ cj
j=1
yi ≥ 0
207
Programación lineal
Las expresiones matriciales son:
Problema primalProblema dual
Máx z = cxMín w = yb
s. a.s. a.
Ax ≤ byA ≥ c
x ≥ 0y ≥ 0
Es importante observar que ambos problemas de pl tienen los mismos datos: los
coeficientes tecnológicos, los costos y requerimientos. En el primal las variables son
cantidades definidas en unidades específicas, en el dual las variables siempre son unidades monetarias.
Mientras que el primal maximiza ganancias generadas por las actividades, el dual
minimiza la suma de los precios de cada recurso; las restricciones del primal corresponde a cada recurso, las restricciones del primal corresponde a cada costo. Hay tantas restricciones en el dual como variables en el primal, y tantas variables en el dual como
restricciones en el primal.
El siguiente cuadro sintetiza el proceso de obtener el dual.
Primal
Dual
Maximización
Minimización
j variables
xj ≥ 0
xj ≤ 0
xj no restringida
j restricciones
j ésima restricción ≥
j ésima restricción ≤
j ésima restricción =
i restricciones
i ésima restricción ≤
i ésima restricción ≥
i ésima restricción =
i variables
yi ≥ 0
yi ≤ 0
yi no restringida
Ejemplo A.3
Primal
Máx z = 9x1 + 7x2
s.a
x1 + 8x2 ≥ 5
x1 - 1x2 = -2
x1 ≤ 0x2 ≥ 0
208
apéndice
Dual
Mín w = 5y1 – 2y2
s. a
y1 + y2 ≤ 9
8y1 – 1y2 ≥ 7
y1 ≤ 0
y2 no restringida.
Teorema fundamental de dualidad
En los problemas de pl, primal y dual, exactamente una de las siguientes proporciones
es cierta:
1. Ambos problemas tienen solución óptima: x* y* con los valores óptimos:
n
m
S cj xj = i=1
S bi yi es decir z = w
j=1
2. Uno de lo problemas es no acotado, lo que implica que el otro no es factible.
3. Ambos problemas son no factibles.
El siguiente cuadro presentan todas las posibles formas de dualidad.
Todas las restricciones del primal son ≤
Primal
Dual
n
n
Máx z = S cj xj
j=1
s. a.
aij xj ≤ bi para i = 1, ..., m
xj ≥ 0
n
Máx z = S cj xj
j=1
s. a.
aij xj ≤ bi para i = 1, ..., m
xj ≤ 0
S
j=1
m
m
Mín w = S bi yi
i=1
s. a.
aij yi ≥ cj para j = 1, ..., n
yi ≥ 0
m
Mín w = S bi yi
i=1
s. a.
aij yi ≤ cj para j = 1, ..., n
yi ≥ 0
S
i=1
n
S
j=1
m
S
i=1
n
n
S
j=1
m
Máx z = S cj xj
j=1
s. a.
aij xj ≤ bi para i = 1, ..., m
xj no restringida
m
S
i=1
209
Mín w = S bi yi
i=1
s. a.
aij yi = cj para j = 1, ..., n
yi ≥ 0
Programación lineal
Todas las restricciones del primal son ≥
Primal
Dual
n
n
S
j=1
m
Máx z = S cj xj
j=1
s. a.
aij xj ≥ bi para i = 1, ..., m
xj ≥ 0
m
S
i=1
n
n
Máx z = S cj xj
j=1
s. a.
aij xj ≥ b1 para i = 1, ..., m
xj ≤ 0
n
Máx z = S cj xj
j=1
s. a.
aij xj ≥ bi para i = 1, ..., m
xj no restringida
S
j=1
m
m
Mín w = S bi yi
i=1
s. a.
aij yi ≤ cj para j = 1, ..., n
yi ≤ 0
m
Mín w = S bi yi
i=1
s. a.
aij yi = cj para j = 1, ..., n
yi ≤ 0
S
i=1
n
S
j=1
Mín w = S bi yi
i=1
s. a.
aij yi ≥ cj para j = 1, ..., n
yi ≤ 0
m
S
i=1
Todas las restricciones del primal son =
Primal
Dual
n
n
Máx z = S cj xj
j=1
s. a.
aij xj = b1 para i = 1, ..., m
xj ≥ 0
n
Máx z = S cj xj
j=1
s. a.
aij xj = b1 para i = 1, ..., m
xj ≤ 0
n
Máx z = S cj xj
j=1
s. a.
aij xj = bi para i = 1, ..., m
xj no restringida
S
j=1
m
m
Mín w = S bi yi
i=1
s. a.
aij yi ≥ cj para j = 1, ..., n
yi no restringida
m
Mín w = S bi yi
i=1
s. a.
aij yi ≤ cj para j = 1, ..., n
yi no restringida
m
Mín w = S bi yi
i=1
s. a.
aij yi = cj para j = 1, ..., n
yi no restringida
S
i=1
n
S
j=1
m
S
i=1
n
S
j=1
m
S
i=1
Ejemplo A.4
Considere el problema de los ejemplos A.1 y A.2 que se resolvieron con el método algebraico y con el Simplex respectivamente.
210
apéndice
Máx z = 450x1 +500x2 + 435x3
s. a.
4x1 + 5x2 + 3 x3 ≤ 50
5x1 +10x2 + 5 x3 ≤ 65
xj ≥ 0
El dual asociado a este primal es:
Mín w = 50 y1 + 65 y2
s. a.
4y1 + 5y2 ≥ 450
4y1 + 10y2 ≥ 500
3y1 + 5y2 ≥ 435
y1 ≥ 0y2 ≥ 0
Las soluciones óptimas se encuentran en el cuadro óptima.
Variables
básicas
3 variables originales
x 1 x 2 x 3
2 variables de holgura
h 1 h 2
Solución
B -1b
x1
1 -1 0
1 -3/5
11
x3
0 3 1
-1 4/5
2
z
0 335 0
15 7 8
5 820
z* = 5 820 = w*
Variables primales: x1* =11, x 2* =2
Variables duales: y1* = 15, y 2* = 78
Ejemplo A.5
Considere los siguientes modelos de pl primal y su dual. Se verán sus soluciones con
el método gráfico.
PrimalDual
Máx z = 10x1 + 5x2Mín w = 12y1 + 5y2
s. a.s. a.
3x1 + 2x2 ≤ 123y1 + y2 ≥ 10
x1 + x2 = 52y1 + y2 ≥ 5
x1 ≥ 0 x2 ≥ 0y1 ≥ 0 y2 no restringida
211
Programación lineal
Máximización
15
10
Región factible
x1
5
(0, 9)
-2
-3
-1
0
(2, 3)
(5, 0)
1
0
3
2
5
4
7
6
-5
x2
3x1 + 2x2 = 12
x1 + x2 = 5
Minimización
15
Región factible
10
5
x1
0
-5
0
1
2
3
4
5
6
(-5, 5)
mínimo
-10
-15
-20
-25
3y1 + y2 = 10
x2
2y1 + y2 = 5
212
7
8
9
10
apéndice
Puntos vértice
z = 10x1 + 5x2
Puntos vértice
w = 12y1 + 5y2
(0, 5)
25
(0, 5)
25
(2, 3)
35
(5, -5)
35
Solución óptima:
y1 = 5, y2 = -5, w = 35
Solución óptima:
x1 = 2, x2 = 3, z = 35
Análisis de sensibilidad para modelos con más de dos variables
Cuando se ha resuelto el modelo de más de dos variables con el algoritmo Simplex y
por tanto se cuenta con el cuadro óptima, el análisis de sensibilidad se hace con los
valores óptimos y sobre el cuadro. A continuación se verán tres casos de este análisis.
Caso 1. Cambio total del lado derecho
Considere un vector p de perturbación del lado derecho; es decir,
El nuevo lado derecho es:b = b + p entonces la nueva solución será:
= B-1 b
Donde B-1 es la inversa de la base óptima.
La nueva solución puede resultar factible o no.
1. Si ≥ 0, entonces la base no cambia y el valor de la función óptima será = c .
2. Si existe en la nueva solución alguna variable de decisión no factible, es decir:
xj ≤ 0, deberá cambiar la base, lo cual se desarrolla con el método dual Simplex.
Ejemplo A.6
Caso en el que la solución que resulta es factible.
Considere el siguiente modelo de pl:
Máx z = 27x1 + 25x2 + 18x3 + 26x4
s. a.
5x1 + 5x2 + 2x3 + 3x4 ≤ 12
4x1 + 3x2 + 4x3 + 3x4 ≤ 30
213
Programación lineal
Con tabla Simplex óptima:
Variable
x1
x2
x3
x4
S1
S2
B -1b
S1
11/3
4
2/3
0
1
-1/3
2
x4
4/3
1
4/3
1
0
1/3
10
z
23/3
1
50/3
0
0
26/3
260
Y la solución óptima es x1 = 0, x2 = 0, x3 = 0, x4 = 10, S1 = 2, S2 = 0, z = 260
Y la base óptima es B-1= 1 –⅓
0 1/3
Si se suma el vector de perturbación p= 20
44
al lado derecho del modelo de pl, se tiene
b = b + 20 = 12 + 20 = 32
4 4 30 4 4 34
=
=
=
La nueva solución será = B-1 b = 1 –⅓ 32 = 20.667
0 –⅓ 34 11.333
=
=c
≥
= [27 25 18 26]
11
0
11.3 0 = 294.66
110
11.333
Y la nueva solución óptima es:
x1 = 0, x2 = 0, x3 = 0, x4 = 11.333, S1 = 20.667, S2 = 0, z = 294.66.
La inversa de la base no cambia.
Ejemplo A.7
Como ejemplo se encuentra el caso en el que la solución que resulta no es factible.
Si se utiliza el vector de perturbación p = -10 en el problema anterior.
– 10
214
apéndice
El nuevo lado derecho es b = b + 20 = 12 + -10 =–2
4 4 30 – 10 40
=
=
=
La nueva solución es = B-1 b = 1 -⅓ 2 = -34/3
0 –⅓ 40 – 40/3
=
Que no es factible porque S1 = –11.32. Para mejorar esta solución es necesario cambiar la base mediante el método dual Simplex, como sigue:
1) Se calcula la nueva z: = [27 1 0
25 18 26] 1 0 = 346.667
1 0
40/3
2) Se introduce la solución obtenida en la tabla Simplex óptima:
Variable
x1
x2
x3
x4
S1
S2
B -1b
S1
11/3
4
2/3
0
1
-1/3
-34/3
x4
4/3
1
4/3
1
0
1/3
40/3
z
23/3
1
50/3
0
0
26/3
346.667
Como no es factible, se mejora la solución:
3) La variable que sale de la base es S1.
4) La variable que entra a la base es aquella que Máx bi aij < 0, → -34/3 = 34;
aij-1/3
es decir, S2 entra a la base.
5) Se efectúan las operaciones en los renglones de la tabla Simplex.
1
= -3 * R1
= R2 _ 1 *
3
2
= R3+ 26 *
3
3
1
1
215
Programación lineal
Variable
x1
x2
x3
x4
S1
S2
B -1b
S1
-11
-12
-2
0
-3
1
34
x4
5
5
2
1
1
0
2
z
103
105
34
0
26
0
52
La nueva solución óptima es x1 = 0, x2 = 0, x3 = 0, x4 = 2, S1 = 0, S2 = 34, y z = 54.
La inversa de la base cambia B-1= -3 1
–1 0
Para saber si una perturbación dará una solución factible se obtiene el intervalo de
factibilidad para cada elemento del vector del lado derecho.
Caso 2. Intervalo de factibilidad para cada elemento del lado derecho.
Considere el modelo de pl:
Máx z = 4x1 + 3x2 + 6x3
s. a.
3x1 + x2 + 3x3 ≤ 30
2x1 + 2x2 + 3x3≤ 40
x1 ≥ 0, x2 ≥0, x3 ≥ 0
Variable
básica
x1
x2
x3
S1
S2
Ld = B -1b
x1
1
0
9/4
1/2
-1/4
5
x2
0
1
-3/4
-1/2
3/4
15
z
0
0
3/4
1/2
5/4
65
1. Intervalo de factibilidad para b1 = 30
Para obtener este intervalo se obtienen los intervalos para cada variable básica utilizando los valores en el cuadro de S1, porque es la variable de holgura de la primera restricción, donde b1 es el límite.
Variable básica
Ecuación
Límite inferior Δ
Límite superior Δ
Intervalo
x1
5+½Δ≥0
Δ ≥ -10
Δ<∞
-10 ≤ Δ < ∞
x2
15 – ½ Δ ≥ 0
Δ > -∞
Δ ≤ 30
-∞ < Δ ≤ 30
216
apéndice
El intervalo es -10 ≤ Δ ≤ 30, lo que significa que b1 puede disminuir hasta 10 y aumentar hasta 30.
Los nuevos valores de b1, , , y sin que cambie la base, son:
-10 ≤ Δ ≤ 30
b1 + Δ
con Δ = -10
con Δ = -10
con Δ = 30
con Δ = 30
30 – 10 a 30 + 30
x1 = 15 + ½ (-10)
x2 = 15 – ½ (-10)
x1 = 15 + ½ (30)
x2 = 15 – ½ (30)
z = 4x1 + 3x2 +
6x3(*)
z = 4(0) + 3(20)
z = 4x1 + 3x2 +
6x3(*)
z = 4(20) + 3(0)
20 a 60
x1 = 20
x2 = 20
x1 = 20
x2 = 20
z = 60
z = 80
* x3 no está en la base y por tanto vale cero y no se toma en cuenta.
Valor original
Disminución máxima
Aumento máximo
b1
30
10
30
b2
40
20
20
2) Intervalo de factibilidad para b2 = 40
Con un procedimiento idéntico, pero ahora se toma la variable de holgura S2 que corresponde a las restricción, en donde b2 es su límite.
Variable básica
Ecuación
Límite inferior Δ
Límite superior Δ
Intervalo
x1
5 – 1/4 Δ ≥ 0
Δ > -∞
Δ ≤ 20
-∞ < Δ ≤ 20
x2
15 + 3/4 Δ ≥ 0
Δ ≥ -20
Δ<∞
-20 < Δ ≤ ∞
El intervalo de factibilidad es -20 ≤ Δ ≤ 20, lo que significa que b2 puede disminuir
hasta 20 y aumentar hasta 20.
Los nuevos valores de b2, , , y sin que cambie la base, son:
-20 ≤ Δ ≤ 20
B2 + Δ
con Δ = -20
con Δ = 20
con Δ = -20
con Δ = 20
40 – 20 a 40 + 20
x1 = 15 – 1/4 (-20)
x2 = 15 + 3/4 (-20)
x1 = 15 – 1/4 (20)
x2 = 15 + 3/4 (20)
z = 4x1 + 3x2 (*)
z = 4(10) + 3(0)
z = 4x1 + 3x2 (*)
z = 4(0) + 3(30)
20 a 60
x1 = 10
x2 = 00
x1 = 00
x2 = 30
z = 40
z = 90
* x3 no está en la base y por tanto vale cero y no se toma en cuenta.
Finalmente se resumen los intervalos para cada elemento del lado derecho.
217
Programación lineal
Caso 3. Cambio máximo o mínimo en la utilidad o costo
Para obtener el intervalo para el costo cj de xj básica, se resuelven las ecuaciones:
( – ) + aij d ≥ 0, y* + aij d ≥ 0 para todo ( – ) ≥ 0, y* ≥ 0
Ejemplo A.8
Considere el modelo de pl:
Máx z = 4x1 + 3x2 + 6x3
s. a.
3x1 + x2 + 3x3 ≤ 30
2x1 + 2x2 + 3x3 ≤ 40
x1 ≥ 0, x2 ≥ 0, x3 ≥ 0
Variable
básica
x1
x2
x3
S1
S2
Ld = B -1b
x1
1
0
9/4
1/2
-1/4
5
x2
0
1
-3/4
-1/2
3/4
15
z
0
0
3/4
1/2
5/4
65
Si se quiere obtener el intervalo para c1 = 4
z = (4+d)x1 + 3x2 + 6x3
Ecuación
Límite inferior d
Límite superior d
Intervalo
3/4 + 9/4 d ≥ 0
d ≥ – 1/3
d<∞
-1/3 ≤ d < ∞
1/2 + 1/2 d ≥ 0
d≥–1
d<∞
-1 ≤ d < ∞
5/4 – 1/4 d ≥ 0
d≥–∞
d≤5
-∞ ≤ d ≤ 5
El intervalo de factibilidad es -1/3 ≤ d ≤ 5, lo que significa que c1 puede disminuir
hasta -1/3 y aumentar hasta 5.
Si d = -1/3 → z = (4 –1/3) x1 + 3x2 + 6x3 = 11/3 (5) + 3 (15) + 6 (0) = 190/3
= 63.333
O bien con la ecuación z = 65 + 5 d = 65 + 5 (-1/3) = 190/3
218
apéndice
Si d = 5 → z = (4 +5)x1 + 3x2 + 6x3 = 9 (5) + 3 (15) + 6 (0) = 90
O bien con la ecuación z = 65 + 5 d = 65 + 5 (5) = 90
Variable
básica
x1
x2
x3
S1
S2
Ld = B -1b
x1
1
0
9/4
1/2
-1/4
5
x2
0
1
-3/4
-1/2
3/4
15
z
0
0
3/4
1/2
5/4
65
Para obtener el intervalo para c2:
z = 4x1 + (3 + d)x2 + 6x3
Ecuación
Límite inferior d
Límite superior d
Intervalo
3/4 – 3/4 d ≥ 0
d>–∞
d≤1
-∞ < d ≤ 1
1/2 – 1/2 d ≥ 0
d>–∞
d≤1
-∞ < d ≤ 1
5/4 + 3/4 d ≥ 0
d ≥ – 5/3
d<∞
-5/3 ≤ d < ∞
El intervalo de factibilidad es -5/3 ≤ d ≤ 1, lo que significa que c2 puede disminuir
hasta 5/3 y aumentar hasta 1.
Si d = -5/3 → z = 4x1 + (3–5/3)x2 + 6x3 = 4 (5) + 4/3 (15) + 6 (0) = 40
O bien con la ecuación z = 65 + 15, d = 65 + 15 (-5/3) = 40
Si d = 1 → z = 4x1 + (3 + 1)x2 + 6x3 = 4 (5) + 4 (15) + 6 (0) = 80
O bien con la ecuación z = 65 + 15, d = 65 + 15 (1) = 80
Finalmente se resumen los intervalos para cada elemento del lado derecho:
Valor original
Disminución
máxima
Aumento
máximo
c1
4
-1/3
5
63.333
90
c2
3
5/3
1
40
80
219
Valores de z
Programación lineal
Resultado con Solver:
Celda
Nombre
Valor igual
Gradiente
reducido
Coeficiente
objetivo
Aumento
permisible
Aumento
permisible
$D$14
x1
5
0
4
5
0.333333333
$E$14
x2
15
0
3
1
1.666666667
$F$14
x3
0
-0.75
6
0.75
1E+30
220
Descargar