Apunte de Análisis de Sensibilidad

Anuncio
Modelos y Optimización I
1
Método Simplex.
Análisis de la tabla óptima.
Análisis de Sensibilidad.
“No es posible improvisar del todo, siempre debe haber un camino
trazado previamente, una norma que cumplir, un límite. Sin la existencia de
reglamentos, no llegaríamos a la improvisación, sino al delirio.”
Alejandro Dolina, Crónicas del Ángel Gris.
Es un hecho que la modelización es más amena que el análisis de
sensibilidad o la parametrización. Pero también es cierto que el análisis de
los resultados de nuestro trabajo de modelización (la tabla óptima), es una
tarea que puede llegar a resultar muy creativa si se pone la atención en ver
relaciones y no sólo números.
En el verano de 1988, cuando empecé a pensar el apunte, sólo tenía el
comienzo de la idea que más arriba expuse. No escribí este apunte para
llegar a amar el análisis de sensibilidad, sino para entenderlo. Creo que logré
ambas cosas. Seguramente, ustedes lo leerán para comprender más acerca
del tema. Mi objetivo es que lo entiendan y que también lleguen a quererlo,
aunque sea un poquito.
Silvia A. Ramos
Invierno de 1995
(ha pasado mucho tiempo)
Versión 3.1 – Julio 2008
2
Modelos y Optimización I
Análisis de una tabla de simplex
a) Significado de cada uno de los elementos de la tabla
No es nuestro objetivo explicar el método simplex sino mostrar el
significado de cada uno de los elementos de una tabla de simplex cualquiera.
Para ello, nos valdremos del siguiente ejemplo:
20 X1 + 10 X2 ≤ 100
10 X1 + 30 X2 ≤ 180
5 X1 +
X2 ≤ 40
X1, X2 ≥ 0
Z = 8 X1 + 5 X2 (máx)
Una fábrica produce dos tipos de puertas que identificaremos como
puerta modelo 1 y modelo 2. Para hacer una puerta 1 se necesitan 20 horas
hombre, en tanto para un tipo 2 se necesitan 10 hh. Por semana se dispone
de 100 hh. Las necesidades de materia prima (madera) son de 10 kg. por
puerta 1 y 30 kg. por puerta 2, contándose con 180 kg. por semana. En
cuanto al consumo de máquina, del cual se disponen 40 horas por semana, es
de 5 horas para el primer modelo y de 1 hora para el segundo, por unidad.
Las puertas que quedan semiterminadas pueden terminarse la semana
siguiente. El beneficio unitario es de 8 $ por puerta modelo 1 y 5 $ por
puerta modelo 2.
C
X
B
8
A1
5
A2
0
A3
0
A4
0
A5
0
0
0
X3
X4
X5
100
180
40
0
20
10
5
-8
10
30
1
-5
1
0
0
0
0
1
0
0
0
0
1
0
C
X
B
8
A1
5
A2
0
A3
0
A4
0
A5
8
0
0
X1
X4
X5
5
130
15
40
1
0
0
0
1/2
25
-1 1/2
-1
1/20
- 1/2
- 1/4
0,4
5
A2
0
1
0
0
C
X
B
8
A1
8
5
0
X1
X2
X5
2,4
5,2
22,8
45,2
1
0
0
0
Versión 3.1 – Julio 2008
0
1
0
0
0
1
0
0
0
A3
0
A4
0
A5
0,06
-0,02
-0,28
0,38
-0,02
0,04
0,06
0,04
0
0
1
0
Modelos y Optimización I
3
Usaremos la primera tabla (primer paso) para explicar qué significan
cada uno de los elementos.
En la columna llamada C cada elemento (cj) es el coeficiente de costo
o coeficiente del funcional de cada Xj que está en la base.
En la columna llamada X figura el símbolo de cada variable que forma
parte de la base (Xj). En este caso son X3, X4, y X5.
En la columna llamaba B figura el valor que tienen en cada paso cada
una de las Xj (las que están en la base, las que no están valen 0). En este
paso X1 y X2 valen cero porque no están en la base, X3 vale 100, X4 vale 180,
X5 vale 40. En nuestro problema, X1 indica la cantidad de puertas tipo 1 que
se fabrican por semana. Idem X2 pero para puertas tipo 2, X3 indica el
sobrante de hh. por semana, X4 el sobrante de materia prima y X5 el
sobrante de horas máquina por semana. Por sobrante entendemos la
cantidad disponible de un recurso que no es utilizado para la producción. Las
variables son continuas ya que pueden producirse, por ejemplo, 3,5 puertas
de uno de los modelos, la que queda sin terminar se concluye a la semana
siguiente. Entonces X1 y X2 son una especie de marcadores del grado de
avance en que se encuentra la fabricación de cada uno de los tipos de
puertas.
Nótese que en este primer paso el valor de cada slack es la
disponibilidad del recurso del cual es sobrante. Como no se fabrica nada,
toda la disponibilidad sobra, nada se ha usado.
En la última fila figuran, el valor del funcional (en este paso 0) y los
zj-cj que, si son todos positivos, indican que ese paso es óptimo. Cuando una
variable está en la base su zj-cj, es igual a cero.
Cada aij (siendo i el elemento que está en la base en esa fila y j el
número de columna en que está) significa en cuánto disminuirá el valor de la
variable Xi respecto del actual por cada unidad de X j (la de la columna) que
decida fabricarse (si j corresponde a un producto) o que sobre (si j
corresponde a un recurso). Más claro: aij significa cuánto disminuirá el valor
de Xi por cada unidad con que entre valiendo a la base Xj.
Veamos la primera fila:
a31 = 20 significa que por cada unidad que se fabrique de X1, disminuirá en 20
unidades el valor de X3 (sobrante de hh). Es lógico porque para
hacer una puerta tipo 1 se necesitan 20 hh.
a32 = 10: por cada unidad que se fabrique de X 2 disminuye en 10 el valor de
X3.
Segunda fila:
Versión 3.1 – Julio 2008
4
Modelos y Optimización I
a41 = 10: por cada unidad que se fabrique de X1, disminuirá en 10 el sobrante
de materia prima (valor de X4).
a42 = 30: por cada unidad que se fabrique de X2 disminuye en 30 el valor de
X4.
a43 = 0: obviamente no incide el sobrante de hh. en el sobrante de materia
prima.
Tercera fila:
a51 = 5: por cada unidad que se fabrique de X 1 disminuirá en 5 el valor de X5
(sobrante de horas máquina).
a52 = 1: por cada unidad que se fabrique de X2 disminuye en 1 el valor de X5.
Elegimos para entrar en la base a X1 por tener zj-cj menor que cero y
de mayor valor absoluto. Elegimos uno que tenga zj-cj menor que cero porque
mejora el funcional:
zp+1 = zp – θ.(zj-cj)
y se elige el de mayor valor absoluto por convención.
Calculo los cocientes: 100/20, 180/10, 40/5, el menor es el primero.
Entonces sale X3 de la base y entra X1 con un valor de 100/20=5.
Habíamos dicho que el valor de X3 disminuiría en 20 por cada unidad de X1.
Entonces tendrá que disminuir en 20 x 5 = 100 y como actualmente valía 100
queda en cero (correcto, pues sale de la base).
X4 debería disminuir en 10 x 5 = 50. Debería ser igual a 180-50 = 130 en el
próximo paso.
X5 debería disminuir en 5 x 5 = 25 y sería igual a 40-25 = 15.
Se comprueba el motivo de elegir al menor de los cocientes como 0, veamos
qué hubiera sucedido si se hubiera elegido el segundo cociente (40/5). X1
entraría a la base con valor 8.
X3 = 100 - 20 x 8 = -60
X4 = 180 – 10 x 8 = 100
X5 = 40 - 5 x 8 =
0
Vemos que X5 sale de la base, sin embargo X3 toma valor negativo, eso no
puede ser. Bien, si no se toma el menor cociente, como θ pasa esto porque
“salimos del poliedro”.
Observando el segundo paso vemos que efectivamente X4 = 130 y X5 = 15
b) Análisis de la modificación de los aij en cada paso.
Versión 3.1 – Julio 2008
Modelos y Optimización I
5
Analicemos el segundo paso:
C
X
B
8
A1
5
A2
0
A3
8
0
0
X1
X4
X5
5
130
15
40
1
0
0
0
1/2
25
-1 1/2
-1
1/20
- 1/2
- 1/4
0,4
0
A4
0
1
0
0
A5
0
0
1
0
0
En la primera fila, por cada unidad de aumento en X2, X1 disminuye
1/2 su valor, que por cada hh. que sobre, es decir, no se utilice para la
producción (valor de X3), disminuye su valor X1 en 1/20 (claro: cuando X3
valía 100, entonces X1 valía 5 – 100 x 1/20 = 0; en el primer caso).
En la segunda fila, por cada unidad que aumente X2 disminuye su valor
X4 en 25 unidades y que por cada hh. que no se use (X3), X4 aumentará su
valor en 1/2 [en el primer paso cuando X3 = 100, entonces X4 = 130 – 100 x
(-1/2) = 180].
En la tercera fila, por cada unidad que aumente X2 se ve que
aumentará el de X5 en 3/2 y por cada hh. que no se utilice se aumentará el
valor de X5 en 1/4.
Ahora bien ¿de dónde salen estos números? ¿Cuál es la razón para
que, si se fabrica una puerta de tipo 2 se ganen 3/2 horas máquina? Se dirá
que ese valor surge de pivotear en el paso anterior:
a52 = 1 – (5 x 10) / 20 = -3/2
Pero esto tiene su lógica porque cuando se produce una unidad de X 2
se consumen más horas máquina (eso disminuye el valor de X5 porque cuanto
menos se fabrique más sobra de los recursos y cuanto más se consume
menos sobra). Pero el hecho de que se fabrique X2 supone que se modifique
la cantidad de puertas de tipo 1 que se hacen, por una razón de
redistribución de recursos. Cuando X1 disminuye, eso hará aumentar el valor
de X5 (porque cuanto menos se fabrique más sobra de los recursos). Esto
hay que balancearlo, es decir, hay que ver si la disminución de X5 producida
por el aumento de X2 es mayor o menor que el aumento de X5 producido por
la disminución de X1. El resultado de ese balanceo es el a52 del segundo paso
(disminución neta de X5 por cada unidad de X2 que se fabrique).
Entonces -3/2 = Pérdida por X2 – Ganancia por X2
Sabemos que cada unidad de X2 consume 1 hora máquina de modo que:
Pérdida por X2 = 1
Versión 3.1 – Julio 2008
6
Modelos y Optimización I
Para calcular la ganancia tendríamos que saber en cuánto disminuirá
X1 al fabricarse una unidad de X2. Eso lo sabemos, por a12 = 1/2 sabemos que
X1 disminuye 1/2 por cada unidad que aumenta X2, y como cada puerta de
tipo 1 consume 5 horas de máquina se liberan 5 x 1/2 horas de máquina por
cada unidad que se fabrica de X2, al dejarse de fabricar 1/2 de X 1.
Entonces:
Ganancia por X2 = 5/2.
Pérdida por X2 – Ganancia por X2 = 1 – 5/2 = (-3/2), que es lo que
queríamos encontrar.
De igual forma a42 = 25 se explica como: 30 – 1/2 x 10 = 25.
En este segundo paso, en la fila 1, a13 nos dice que, por cada aumento
unitario de X3 disminuye X1 en 1/20.
Siguiendo con nuestro ejemplo, en este segundo paso sabemos que
sólo puede entrar a la base X2 por tener el único zj-cj negativo. Elegiremos
al que sale, determinado por el menor cociente llamado θ. No puede salir X5
ya que su cociente es 15/(-3/2) lo que da un número negativo y como θ es el
valor con el que la variable entra a la base y las variables son siempre
positivas, ese cociente nunca podrá ser 0. De los dos cocientes restantes, el
menor es el que corresponde a la segunda fila (130/25), entonces sale X4 y
entra X2 con un valor de 130/25 = 5,2. De acuerdo con lo visto,
determinemos antes de pivotear, el valor que tendrán las X i de la base en el
próximo paso.
X1 = 5 – 1/2 x 5,2 = 2,4
X4 = 130 – 25 x 5,2 = 0
X5 = 15 – 3/2 x 5,2 = 22,8
En el tercer paso podemos verificar la veracidad del cálculo.
Nótese que esta es la “filosofía del pivote”, ya que si lo hiciéramos
por pivote tendríamos:
X1 = 5 – 1/2 x (130/25)
Y como 130/25 = 5,2 es lo mismo que estábamos haciendo.
Habíamos dicho que X1 disminuye en 1/20 por cada unidad que
aumenta X3, pero al disminuir X1, también este valor cambiará en el tercer
paso.
Al aumentar X3 en una unidad, X2 aumenta en 0,02 pues disminuye en
-0,02 (valor del a23 del tercer paso, que ya conocemos por estar en la fila
del pivote), a su vez, por cada unidad que aumente X2, X1 disminuye en 1/2
Versión 3.1 – Julio 2008
Modelos y Optimización I
7
(a12 del segundo paso), por lo tanto hace disminuir a X1 en 1/2 x 0,02, con lo
que:
a13 = 1/20 – 1/2 x (-0,02) = 0,06
es decir,
a13 = 1/20 + 1/2 x 0,02 = 0,06
Sumamos el último término porque es consumo, no liberación del recurso.
Consumo implica disminución y 1/20 también era disminución, por eso los
sumo.
En términos generales, si quiero averiguar el aij de un paso tomo el aij
del paso anterior (en este caso = 1/20) y le resto un término. Para obtener
ese término tengo aej (e = subíndice del que entra) de este paso (-0,02) pero
yo quiero averiguar aij, entonces paso esto a la correspondencia con Xi
multiplicando por el aie del paso anterior (1/2). Si este último término es
negativo, es consumo, sino, es liberación.
Hagámoslo con el cambio de a53 que pasó a ser –0,28.
Al entrar X2, X5 aumenta 3/2 y como X3 disminuye en 0,02 por cada
unidad que deje de producir X2: a53 = -1/4 – (-0,02) x (-3/2) = -0,28.
c) Costo de oportunidad y valor marginal. Su influencia en el óptimo.
Aclaremos, ante todo, que en este apartado analizaremos los zj-cj en
un paso cualquiera, no necesariamente el óptimo.
Los indicadores zj-cj tienen nombres especiales. Cuando el zj-cj
pertenece a una Xi producto lo llamaremos “costo de oportunidad”; cuando
pertenece a una Xi slack que mide el sobrante de un recurso, lo llamaremos
“valor marginal”.
El costo de oportunidad nos indica cuánto disminuirá el funcional si se
fabrica una unidad de ese producto. Por supuesto, para aquellos productos
que están en la base, el costo de oportunidad es cero, porque ya se están
fabricando. Para aquellos productos que no están en la base, es decir su Xi
vale cero, el costo de oportunidad puede ser cero (lo que indica soluciones
alternativas pues se obtiene igual valor de funcional con dicha variable en la
base que con la base actual, que no la contiene), negativo (una disminución
negativa del funcional es un aumento del mismo, estamos en el caso en el que
esa variable es candidata a entrar en la base) o positivo (si nos obligaran a
producir una unidad de ese producto nuestro funcional disminuiría en un
valor igual al producto de la cantidad de unidades fabricadas y dicho costo
de oportunidad).
En el caso del valor marginal la idea es la misma, el valor marginal de
los recursos indica cuál sería el aumento del funcional si tuviéramos una
Versión 3.1 – Julio 2008
8
Modelos y Optimización I
unidad más de ese recurso disponible. Entonces si tuviera que pagar para
obtener una unidad de ese recurso no pagaría más de esa cifra porque sino
perdería plata. Así, bien se ve por qué el valor marginal de los recursos
cuyas variables están en la base es igual a cero. Si están en la base es que
tienen sobrante y no estoy dispuesto a pagar por tener más de algo que me
sobra. En el caso de los recursos saturados, cuyas variables no figuran en la
base, el valor marginal puede ser igual a cero (alternativas), menor que cero
(candidato a entrar en la base) o mayor que cero (estoy dispuesto a pagar
eso para obtener el recurso).
Veamos en el segundo paso. Tengo z2-c2 = -1, indica que por cada
unidad que se fabrique de X2 el funcional aumentará en 1. En el paso
siguiente vemos que se fabrican 5,2 unidades de X2 y el funcional ha
aumentado en 5,2 x 1 (de 40 a 45,2). Las hh. están saturadas y su valor
marginal es 0,4.
Ahora vemos si es cierto que una hh. vale 0,4 para nosotros. Si es
cierto, nuestro funcional tendría que aumentar 0,4 por cada hh. de la que
dispongamos inicialmente de más. Supongamos ahora que nuestra
disponibilidad de hh. es 101 (no 100) y hagamos el cálculo de nuevo a ver qué
sucede.
C
X
B
8
A1
5
A2
0
A3
0
A4
0
A5
0
0
0
X3
X4
X5
101
180
40
0
20
10
5
-8
10
30
1
-5
1
0
0
0
0
1
0
0
0
0
1
0
C
X
B
8
A1
5
A2
0
A3
0
A4
0
A5
8
0
0
X1
X4
X5
5,05
129,5
37,5
40,4
1
0
0
0
1/2
25
-1 1/2
-1
1/20
- 1/2
- 1/4
0,4
0
1
0
0
0
1
0
0
Efectivamente, el funcional ha mejorado en 0,4; obteniéndose, salvo
el valor de las X, una tabla idéntica a la 2da. tabla original.
¡Entonces es fácil! Basta con aumentar el valor de la disponibilidad de
hh., comprando a menos de 0,4 todas las hh, posibles. Por cada hh. que
compre, mi funcional aumenta en 0,4. Pero no es tan sencillo. ¿Qué hubiera
pasado si aumentábamos tanto la disponibilidad de hh. que el cociente de la
fila 1 deja de ser el menor? La que saldría no sería la variable X 3 sino otra.
Por ejemplo: si tenemos 161 hh.:
Versión 3.1 – Julio 2008
Modelos y Optimización I
9
8
5
0
0
0
A2
A3
A4
A5
C
X
B
A1
0
0
0
X3
X4
X5
161
180
40
0
20
10
5
-8
10
30
1
-5
1
0
0
0
0
1
0
0
0
0
1
0
C
X
B
8
A1
5
A2
0
A3
0
A4
0
A5
0
0
8
X3
X4
X1
1
100
8
64
0
0
1
0
6
28
1/5
-3,4
1
0
0
0
0
1
0
0
-4
-2
1/5
1,6
Q
8,05
18
8
¿Qué sucede? Si tenemos 61 hh. más, el funcional tendría que haber
aumentado en 61 x 0,4 = 24,4; sin embargo, sólo ha aumentado en 24. Vemos
que la diferencia está en una hh. que no ha aumentado el funcional. Esa es la
hh. que sobra según este segundo paso (X3 = 1). Esto nos demuestra que se
pueden comprar recursos hasta un límite, el límite lo marca el momento en
el cual ese recurso comienza a sobrar y, por lo tanto, ya no nos conviene
comprar más. Tenemos una forma de averiguar cuál es ese límite pero eso lo
veremos más adelante.
Versión 3.1 – Julio 2008
10
Modelos y Optimización I
Dualidad en programación lineal
a) Planteo dual de un problema
Al problema original lo llamaremos, a partir de ahora, directo o
primal. Por lo general es de la forma:
a11 X1 + a12 X2 + ........................................... + a1n Xn ≤ b1
.
.
.
ai1 X1 + …………………….+ aij Xj + .................... + ain Xn ≤ bj
.
.
.
am1 X1 + ……………… + amj Xj + .................... + amn Xn ≤ bm
f(x) = Z = c1 X1 + ......... + cj Xj + ............................ + cn Xn (máximo)
Xj ≥ 0
V j = 1.......n
El problema dual equivalente consiste en hallar las yi no negativas,
tales que satisfagan las siguientes inecuaciones y minimicen el funcional
g(y):
a11 Y1 + a12 Y2 + ........................................... + am1 Ym ≥ c1
.
.
.
a1j Y1 + …………………….+ aij Yi + .................... + amj Ym ≥ ci
.
.
.
a1n Y1 + ……………… + ain Yi + .................... + amn Ym ≥ cn
g(y) = Z = b1 Y1 + ......... + bi Yi + ............................ + bm Ym (mínimo)
Yi ≥ 0
V i = 1.......m
Si el primal llegara a ser de mínimo sería:
a11 X1 + a12 X2 + ........................................... + a1n Xn ≥ b1
.
.
.
ai1 X1 + …………………….+ aij Xj + .................... + ain Xn ≥ bj
Versión 3.1 – Julio 2008
Modelos y Optimización I
11
.
.
.
am1 X1 + ……………… + amj Xj + .................... + amn Xn ≥ bm
f(x) = Z = c1 X1 + ......... + cj Xj + ............................ + cn Xn (mínimo)
Xj ≥ 0
V j = 1.......n
Y su dual equivalente es:
a11 Y1 + a12 Y2 + ........................................... + am1 Ym ≤ c1
.
.
.
a1j Y1 + …………………….+ aij Yi + .................... + amj Ym ≤ ci
.
.
.
a1n Y1 + ……………… + ain Yi + .................... + amn Ym ≤ cn
g(y) = Z = b1 Y1 + ......... + bi Yi + ............................ + bm Ym (máximo)
Yi ≥ 0
V i = 1.......m
Donde las incógnitas son, también, las yi que satisfagan las
inecuaciones y maximicen g(y).
La relación entre un problema de programación lineal y su dual puede
resumirse como sigue:
a) El dual tiene una variable por cada restricción del problema
original.
b) El dual tiene tantas restricciones como variables tiene el problema
original.
c) El dual de un problema de maximización es un problema de
minimización y viceversa.
d) Los coeficientes del funcional (costo o beneficio) del problema
original, son los términos independientes de las restricciones del dual y los
términos constantes o independientes de las restricciones del problema
original son los coeficientes del funcional dual.
e) Cada columna de coeficientes en el conjunto de inecuaciones del
problema original, se transforma en una fila de coeficientes en el dual.
f) El sentido de las desigualdades en el dual es el inverso del sentido
de las desigualdades del problema original.
Versión 3.1 – Julio 2008
12
Modelos y Optimización I
g) Se mantiene la condición de que las variables sean mayores o
iguales que cero.
El teorema fundamental de la dualidad, que no desarrollaremos aquí,
nos dice que si el problema primal tiene una solución óptima finita, entonces
el dual tendrá una solución óptima y finita (y viceversa).
Además, y lo más importante, el óptimo del directo coincide con el del
dual (Máx f(x) = Mín g(y)). Si cualquiera de los dos problemas, primal o dual,
tiene una solución óptima ilimitada, entonces el otro problema no tiene
solución posible.
b) Resolución del problema dual.
Analizaremos para el ejemplo más común (directo de máx. y dual de
mín.) el dual del problema que ya conocemos:
Primal
20 X1 + 10 X2 ≤ 100
10 X1 + 30 X2 ≤ 180
5 X1 +
X2 ≤ 40
Z = 8 X1 + 5 X2 (máx)
Dual
20 Y1 + 10 Y2 + 5 Y3 ≥ 8
10 Y1 + 30 Y2 +
Y3 ≥ 5
Z = 100 Y1 + 180 Y2 + 40 Y3 (mín)
Para un problema de minimización el simplex es igual que para máximo,
sólo que para decidir cuál es el vector que entra tomaremos el que tenga zjcj mayor que cero de mayor valor absoluto. El óptimo se logra cuando todos
los zj-cj son menores o iguales que cero.
B
Y
C
100
A1
180
A2
40
A3
0
A4
M
m6
m7
8
20
10
5
5
10
30
1
13 M
30M-100
40M-180
M
0
A5
M
m6
M
m7
-1
0
1
0
0
-1
0
1
6M-40
-M
-M
0
0
B
Y
C
100
A1
180
A2
40
A3
0
A4
0
A5
M
m6
M
m7
M
m6
19/3
50/3
0
14/3
-1
1/3
1
-1/3
180
Y2
1
0
1/30
14M/3-16
0
-M/3
-1/30
M-6
0
0
1/30
-4M/3+6
180
A2
40
A3
0
A4
0
A5
M
m6
M
m7
0
1
0
7/25
-3/50
-22,8
-3/50
1/50
-2,4
1/50
-1/25
-5,2
3/50
-1/50
2,4-M
-1/50
1/25
5,2-M
1/6
1/3
19M/3 + 30 50M/3-160
B
Y
C
100
A1
100
180
Y1
Y2
19/50
1/25
45,2
1
0
0
Versión 3.1 – Julio 2008
Modelos y Optimización I
13
Vemos que todos los zj-cj son menores o iguales a cero, hemos llegado
al óptimo que es, como lo anunciamos, igual al del primal (45,2)
Para poder operar con el dual tengo que agregar 2 artificiales (una
por cada desigualdad de ≥)
c) Significado económico del dual.
El dual tiene restricciones del tipo:
m
Σ
i=1
recursoi
prod j
Yi
≥
valor
prod j
con j = 1…n
m
y minimizar g(y) =
Σ
(recurso i) Yi Yi ≥ 0
i = 1…m
i=1
Es decir que la unidad de Yi sería el valor que le damos a cada unidad
del insumo o recurso i (valor económico que tiene para nosotros ese insumo)
lo que parte del valor que tenga cada unidad (valor marginal).
Cuando un recurso tiene valor para nosotros (Yi mayor que cero) es
que está saturado.
Cada Yi representará el beneficio que la empresa debe asignarle a
cada peso invertido según sea destinado a materia prima, mano de obra o
amortización de equipos (por ejemplo en nuestro caso, Y1 es el beneficio que
reportará cada peso que se invierta en mano de obra).
Es decir que las restricciones serán:
m
Σ
i=1
recursoi
prod j
valor
recurso i
≥
valor
prod j
con j = 1…n
Con un funcional:
m
g(y) =
Σ
i=1
(recurso i)
valor
recurso i
=
Versión 3.1 – Julio 2008
(valor)
14
Modelos y Optimización I
Analicemos una de nuestras restricciones:
20 hh Y1 valor + 10 kg Y2 valor + 5 h máq. Y3 valor
X1
hh
X1
kg.
X1
h máq.
≥ 8 valor
X1
y nuestro funcional:
g(y) = 100 hh. Y1 valor + 180 kg. Y2 valor + 40 h máq. Y3 valor
sem.
hh
sem.
kg.
sem
h máq.
Daremos verbalmente la comparación de los problemas primal y dual.
Primal: Dado un valor unitario para cada producto (cj) y un límite
superior para la disponibilidad de cada recurso o insumo (bi) ¿cuántas
unidades de cada producto (Xj) deben producirse por semana para
maximizar el beneficio total?
Dual: Dada una disponibilidad total de cada insumo (bi) y un límite
inferior al valor unitario para cada producto (cj) ¿qué valor unitario debería
ser asignado a cada insumo (Yi) para minimizar el valor de insumo total?
Ya dijimos cuál era el significado de cada Yi. Ese concepto
corresponde a lo que definimos como valor marginal de un recurso. Entonces
llamaremos a cada Yi real “valor marginal de un recurso i”. Ese valor
representa la utilidad adicional (marginal) que se podría añadir a la total si
el recurso aumenta su disponibilidad en una unidad. Como vimos, esa utilidad
puede no realizarse totalmente ya que las otras restricciones pueden
reducir nuestra capacidad de usar la unidad adicional completamente. En
cuanto a las Yi slacks (en nuestro caso Y4 e Y5) las llamaremos “costo de
oportunidad” del producto al cual representan. En general, se les suele dar
varios nombres a las Yi, como “precios contables”, “precios ficticios”,
“precios virtuales”, etc.
¿Por qué en el planteo del dual el cj se ve como límite INFERIOR al
valor unitario de cada producto?
m
La relación es:
Σ
aij Yi ≥ cj
j = 1…n
i=1
Es un modelo de todas las relaciones del dual que expresan que no se
deben colocar beneficios por cada peso invertido Yi de modo tal que el
beneficio total supere al beneficio de las inversiones realmente realizadas
Versión 3.1 – Julio 2008
Modelos y Optimización I
15
en el producto, estos beneficios óptimos internos que puede colocar la
empresa se entiende que corresponden a situaciones de libre competencia.
En este tipo de relaciones el primer miembro representa el beneficio
prorrateado en los recursos y el segundo miembro, como ya sabemos, es el
beneficio por unidad del producto j.
Si se fijaran beneficios más altos que los que surgen por el cálculo, es
decir Yi más altos que los del cálculo, se tendría:
m
Σ
n
bi Yi > máx
i=1
Σ
cj Y j
ó
g(y) >
máx f(x)
j=1
Esto significaría que, mientras la empresa percibe el máximo f(x)
debería teóricamente tener que pagar por sus inversiones de materia prima,
mano de obra y equipos un interés g(y) superior a lo que gana.
m
Si por el contrario fuera:Σ bi yi
<
máx f(x)
i-1
las inversiones en mano de obra, materia prima y equipos estarían
percibiendo un interés inferior al que en conjunto está recibiendo la
empresa y lo elevaría hasta que resulta:
m
Σ
n
bi Yi =
i=1
Σ
c j Xj
j=1
d) Correspondencia entre la tabla óptima del primal o directo y la tabla
óptima del dual a partir de la tabla óptima del directo.
Para hacer la comparación incluimos la tabla óptima del directo
C
X
B
8
A1
8
5
0
X1
X2
X5
2,4
5,2
22,8
45,2
1
0
0
0
5
A2
0
A3
0
A4
0
A5
0
1
0
0
0,06
-0,02
-0,28
0,38
-0,02
0,04
0,06
0,04
0
0
1
0
Recordemos la tabla óptima del dual, pasando las fracciones a reales y
obviando las columnas de variables artificiales.
B
Y
C
100
A1
180
A2
40
A3
0
A4
0
A5
100
180
Y1
Y2
0,38
0,04
45,2
1
0
0
0
1
0
0,28
-0,06
-22,8
-0,06
0,02
-2,4
0,02
-0,04
-5,2
Versión 3.1 – Julio 2008
16
Modelos y Optimización I
Como vemos, el valor de Y1 coincide con el zj-cj de la slack X3 en la
tabla óptima primal (valor marginal de hh) y el de Y 2 coincide con el zj-cj de
X4 en la óptima primal (valor marginal de materia prima). Vemos así la razón
del nombre que le dimos a cada Yi.
Entonces, como dijimos, a cada slack Xj le corresponde una Yi real y
viceversa, hay una Yi slack por cada Xj real.
Mostraremos la correspondencia:
Primal
Dual
X1 (producción puerta 1)
X2 (producción puerta 2)
X3 (sobrante hh)
X4 (sobrante materia prima)
X5 (sobrante horas máquina)
Y4 (costo de oportunidad puerta 1)
Y5 (costo de oportunidad puerta 2)
Y1 (valor marginal hh)
Y2 (valor marginal materia prima)
Y3 (valor marginal hs. máquina)
El valor de cada Yi es igual al valor del zj-cj del Xj correspondiente.
Por eso, si la Xj correspondiente no figura en la base óptima primal, la Yi
figurará en la base óptima del dual y a la inversa. El z i-bi de cada Yi es igual
al valor de cada Xj correspondiente en la tabla óptima del primal cambiada
de signo (por ejemplo en el dual z3-b3 = -22,8 = X1).
Haciendo uso de la propiedad e) del dual que citamos en el punto a,
podemos pasar de la tabla óptima del primal a la del dual.
Primero plantearemos el encabezado de cada columna, indicando en la
parte superior de cada una de ellas la correspondencia con el primal.
En la base colocamos cada Yi que integra la base (aquellas cuyo Xj no
está en la base primal) con su valor y en las columnas correspondientes
pondremos los vectores de la matriz identidad.
C
Y
B
( X4 )
100
A1
100
180
Y1
Y2
0,38
0,04
45,2
1
0
0
( X5 )
180
A2
0
1
0
( X1 )
40
A3
( X2 )
0
A4
( X3 )
0
A5
En las zi-bi pondremos el valor de Xj correspondiente cambiado de
signo; y como columnas pondremos la fila del Xj correspondiente con sus
elementos cambiados de signo, cuidando que coincidan las posiciones. Es
decir, en la intersección de Y1 con Y3 como los elementos de una tabla dual
son –aij se pone el aij correspondiente a la intersección de X5 (Y3) con X3 (Y1)
de la tabla primal cambiado de signo, y así sucesivamente hasta llenar la
Versión 3.1 – Julio 2008
Modelos y Optimización I
17
tabla. En el caso precitado el elemento en el directo es “-0,28” y se pone
con signo positivo en el dual.
Es conveniente hacerlo para practicar y asegurarse viendo el
resultado en la tabla dual que adjuntamos. Debe coincidir exactamente con
ella. Al cabo de practicar con varios ejercicios se consigue un dominio
completo. Cuando no se hace el dual completo, igual se puede verificar si la
tabla óptima del dual está bien. Para eso calculamos los z i-bi y el funcional y
luego vemos si cada zi-bi vale lo que tiene que valer (-Xj cte.) y si el valor del
funcional es el óptimo primal. Así, se puede pasar de la tabla óptima del
primal a la óptima del dual sin necesitar más que la tabla inicial y la final del
primal. ¿Por qué la inicial?; para saber a qué restricción corresponde cada Y i
y su significado, además de otras utilidades que veremos en el punto e.
Una cosa para tener en cuenta en la correspondencia entre el primal y
dual es que, cuando uno de los dos problemas es degenerado, el otro tiene
soluciones alternativas. Además, cuando alguno de los dos problemas tiene
solución infinita (poliedro abierto), el otro no tiene solución (es
incompatible). Esta última afirmación está demostrada por el teorema de la
dualidad, de la anterior nos ocuparemos más adelante.
e) Recomendaciones adicionales.
Dijimos que el sentido de las desigualdades en el dual es el inverso del
sentido de las desigualdades del primal. Pero, ¿qué sucede si no todas las
desigualdades del primal tienen el mismo sentido?
Si hay inecuaciones de ≥, entonces habrá que multiplicarlas por -1
para invertir el signo.
Ejemplo: Primal
Dual
X1 + 2 X2 ≤ 8
Y1 - 5 Y2 ≥ 2
5 X1 - X2 ≥ 6 => -5 X1 + X2 ≤ -6
2 Y1 + Y2 ≥ 1
Z = 2 X1 + X2 (máx)
Z = 8 Y1 “-” 6 Y2 (mín)
Puede suceder que algunos de los cj sean negativos. Entonces hay que
transformar la inecuación del dual en ≤ multiplicando por (-1) para que no
quede disponibilidad negativa.
Ejemplo: Primal
Dual
2 X 1 + 3 X2 ≤ 5
2 Y1 + Y2 ≥ 2
X1 + 2 X 2 ≤ 3
3 Y1 + 2 Y2 ≥ -3 => -3 Y1 – 2 Y2 ≤ 3
Z = 2 X1 “-” 3 X2 (máx)
Z = 5 Y1 + 3 Y2 (mín)
Versión 3.1 – Julio 2008
18
Modelos y Optimización I
Por eso, una recomendación muy especial: antes de pasar
automáticamente al dual hacer el planteo inicial porque, por ejemplo, un
coeficiente del funcional que se pensaba que era 6 pasa a ser -6 en un caso
de cambio de signo y eso puede hacer que la tabla dual óptima no
corresponda con la primal óptima.
Versión 3.1 – Julio 2008
Modelos y Optimización I
19
Modificaciones en el problema original
Veamos ahora cómo podemos aprovechar lo que aprendimos acerca del
problema original y del problema dual. Lo haremos señalando las distintas
modificaciones que podemos hacer a nuestro problema. Es lógico que, si
modificamos en algo nuestro problema, la solución más inmediata que
encontraremos será hacer todo el desarrollo del simplex nuevamente. Pero
podemos aprovechar ciertas propiedades para, a partir de la tabla óptima
del problema original, llegar directamente al óptimo del problema
modificado. A continuación se indican las distintas modificaciones que
podemos hacer a un problema.
a) Agregado de incógnitas.
A nuestro problema inicial agregamos un nuevo tipo de puerta, que
consume 18 hh., no consume horas de máquina y necesita 15 kg. de materia
prima. Su beneficio unitario es de 4 $.
Llamemos X6 a la variable que representa la cantidad fabricada de
este nuevo tipo de puerta. Nuestro problema original quedaría modificado
así:
20 X1 + 10 X2 + 18 X6 ≤ 100
10 X1 + 30 X2 + 15 X6 ≤ 180
5 X1 +
X2 + 0 X6 ≤ 40
X1 ≥ 0,
z = 8 X1 +
X2 ≥ 0,
X3 ≥ 0
5 X2 + 4 X6 (máx.)
A la primera tabla de nuestro problema tendríamos que agregarle una
columna:
18
A6 = 15
0
y volver a resolver el simplex. Tenemos una forma de saber cómo será ese
vector en la tabla óptima, que es la que está conformada por las columnas de
la tabla óptima que corresponden a la matriz identidad del primer paso,
debidamente ordenados. Esto se hace porque la matriz inversa óptima
refleja los cambios que se produjeron en la base desde el primer paso y por
Versión 3.1 – Julio 2008
20
Modelos y Optimización I
eso es la encargada de “traducir” cada vector expresado en la primera base
a la base óptima. Obtengamos ese A6 óptimo.
0,06 -0,02 0
-0,02 0,04 0
-0,28 0,06 1
18
15
0
x
=
0,78
0,24
- 4,14
Es importante ordenar los coeficientes según la disposición de las
slacks en el primer caso (aquí hh – mp – h. máq.), si no el resultado será un
vector cualquiera y no el deseado por no haber expresado el primero en la
base del primer paso.
Una vez obtenido el vector calculamos su zj-cj que es el único que
falta calcular en la tabla óptima:
zj-cj = 0,78 x 8 + 0,24 x 5 - 4 = 3,44
Si hubiera dado un zj-cj negativo tendríamos que hacerlo entrar a la
base porque quiere decir que sin fabricar ese tipo de producto no se llega al
óptimo.
Si el agregado de productos no depende de otros puedo agregar de
una vez varios productos.
b) Cambios de coeficientes del funcional.
Si el funcional cambia algunos coeficientes pero no cambia su sentido
puedo solucionarlo sin necesidad de hacer todo de nuevo.
Simplemente, cuando se modifica uno o más coeficientes de costo se
reemplaza en la tabla final del simplex, los coeficientes viejos por los
nuevos, en todos los lugares en que aparezcan (por ejemplo en columna C) y
se calculan todos los zj-cj de nuevo.
Si en nuestro problema original cambiamos por 12 el beneficio
unitario de las puertas tipo 1 será:
C
X
B
12
A1
5
A2
0
A3
0
A4
0
A5
12
5
0
X1
X2
X5
2,4
5,2
22,8
54,8
1
0
0
0
0
1
0
0
0,06
-0,02
-0,28
0,62
-0,02
0,04
0,06
-0,04
0
0
1
0
Versión 3.1 – Julio 2008
Modelos y Optimización I
21
Hemos obtenido un zj-cj negativo, entonces para este cj esta tabla no
es óptima. Haremos entrar a X4 a la base para optimizarla.
Si el cj corresponde a una variable que está en la base, cambian el
funcional y todos los zj-cj.
Si el cj que cambia corresponde a una variable que no está en la base,
sólo cambiará ese zj-cj.
Para pensar: ¿qué sucede cuando todos los cj aumentan en la misma
proporción?
c) Cambios en los términos independientes.
Como los términos independientes son los coeficientes del funcional
del dual, entonces se reduce a un problema como el caso b) pero tomando la
tabla óptima del dual. Esto es porque esa modificación implicaría que se
modifiquen una o más filas y esa modificación exigiría hacer todo de nuevo.
Pero, como las filas del directo son las columnas del dual, así cada problema
que implique una modificación en filas se pasa al dual y será una modificación
de columnas, que sí es salvable.
Entonces, para solucionar esto debemos cambiar cada coeficiente del
funcional del dual como cambiamos los cj en b). Si alguna de las relaciones
del problema original era de ≥ recordemos que el bi en el funcional del dual
va cambiado de signo. Una vez cambiado el funcional del dual vuelven a
calcularse los zi-bi y di alguno es mayor que cero, se lo hace entrar para
llegar al óptimo.
d) Agregado de las inecuaciones.
Agregamos a nuestro problema un proceso de barnizado de puertas.
El consumo de pintura barniz es de 3 litros por cada puerta de tipo 1 y 2
litros por puerta de tipo 2. Hay disponibles 120 litros de pintura por
semana. Esto implicaría agregar al primer paso del simplex una nueva fila
que representaría a
3 X1 + 2 X2 ≤ 120 y una nueva columna para la
slack correspondiente. Si hiciéramos esto, tendríamos que resolver de
nuevo el problema. Pero si pasamos al dual esa variable slack que se agrega
al directo es una variable Yi real (Y6) y las filas se transformarán en
columnas, así que el problema se reduciría a agregar una incógnita del dual.
Se observa que esto reduce el problema al caso a) sólo que hay que
premultiplicar el vector Y por la matriz inversa óptima del dual, compuesta
por los vectores de la tabla óptima que en el primer paso integraban la
matriz de identidad. En el caso del simplex primal notamos que
Versión 3.1 – Julio 2008
22
Modelos y Optimización I
generalmente era los vectores de las variables slacks quienes integraban la
matriz inversa óptima, por lo tanto aquí podría pensarse lo mismo; si
revisamos la tabla inicial dual, quienes integraban la matriz identidad eran
los vectores de las variables artificiales, agregados, justamente para
formar dicha base, por ser todas las relaciones de ≥ con lo que las slacks
formaban la identidad pero cambiada de signo.
z=
20 Y1 + 10 Y2 + 5 Y3 y4 +
µ6 = 9
10 Y1 + 30 Y2 +
Y3 y5 +
µ7 = 5
100 Y1 + 180 Y2 + 40 Y3 + M µ6 + M µ7 (mín)
Entonces, para formar la matriz inversa óptima tomamos los vectores
de las variables artificiales, de tal modo que la matriz inversa óptima del
dual es:
A =
3/50
-1/50
-1/50
1/25
-1
Se puede observar que ambas columnas coinciden con las columnas de
Y4 e Y5 pero cambiadas de signo. Esto es muy útil porque, cuando pasamos de
la óptima del primal a la óptima del dual no obtenemos las columnas de
variables artificiales. En tal caso bastará con formar la matriz inversa
óptima con los vectores de la slack pero cambiados de signo (haciéndolo se
puede comprobar que se obtiene la misma matriz). Esto se hace porque
generalmente las relaciones del dual son de ≥ pero, como vimos en el capítulo
dedicado a dual, a veces hay que cambiar el signo de una inecuación a ≤ y la
slack de esa relación se sumará y no será necesaria una artificial. En ese
caso, la columna correspondiente a esa slack no se cambia de signo para
formar la matriz inversa óptima.
En nuestro ejemplo, la transformación del vector A6 sería:
3/50 -1/50
-1/50 1/25
x
3
2
=
1/50
3/50
Como b6 es = 120, z6 - b6 = 1/50 x 100 + 3/50 x 180 – 120 = - 107,2
Si hubiera dado positivo, nuestra tabla óptima habría dejado de ser tal,
pues tendría que entrar esa variable a la base. Como vemos, el
procedimiento es similar al a).
Versión 3.1 – Julio 2008
Modelos y Optimización I
23
NOTA: Hay que tener cuidado si el funcional del primal tiene algún
coeficiente negativo, entonces habrá que cambiar el sentido de la inecuación
del dual correspondiente. Todos los coeficientes de dicha restricción
cambian de signo. Hay que tenerlo en cuenta cuando se introduce una nueva
columna en el dual, hay que cambiar en dicha columna el signo del
coeficiente de esa fila (de la restricción).
Ejemplificando: si en nuestro problema el funcional fuera:
z = 8 X1 - 5 X2 el planteo dual sería:
20 Y1 + 10 Y2 + 5 Y3 ≥ 8
10 Y1 + 30 Y2 + Y3 ≥ - 5 => -10 Y1 - 30 Y2 - Y3 ≤ 5
Entonces el planteo con slacks es:
20 Y1 + 10 Y2 + 5 Y3 - Y4 + µ > 8
10 Y1 + 30 Y2 + Y3 + Y5
< 5
y si queremos introducir la restricción 3 X1 + 2 X2 ≤ 120 será
3/50 1/50
-1/50 -1/25
x
3
-2
=
7/50
1/50
Como se aprecia, no hemos cambiado de signo la columna de la slack
Y5 y sí hemos cambiado el 2 de signo porque dicha restricción, incorporada
al planteo, sería:
20 Y1 + 10 Y2 + 5 Y3 + 3 Y6 ≥ 8
10 Y1 + 30 Y2 + Y3 + 2 Y6 ≥ - 5 => -10 Y1 - 30 Y2 - Y3 - 2 Y6 ≤ 5
¿Se comprende ahora el consejo de plantear siempre el dual inicial
antes de pasar directamente de tabla óptima a tabla óptima?
Versión 3.1 – Julio 2008
24
Modelos y Optimización I
Análisis paramétrico y de sensibilidad
Cuando desarrollamos modelos de programación lineal, si deseamos
que reflejen la realidad, tendremos que prestar mucha atención a la tarea
de recopilación de valores numéricos de modo tal que éstos sean confiables
y exactos en lo que respecta a los coeficientes. Algunas veces sólo contamos
con valores estimados o promediados de los coeficientes. Entonces es
importante estudiar cómo se comporta un problema de programación lineal
cuando se varían esos coeficientes, es decir, ¿para qué rangos de valores de
los coeficientes continuará siendo óptima la solución? Aquí investigamos
cambios en coeficientes de costo de la función objetivo (cj) y de las
constantes de las restricciones (bi). Hay cambios que se suponen funciones
lineales de un parámetro (programación lineal paramétrica) y otros cambios
que hacen que la solución optimizante se vuelva no óptima (análisis de
sensibilidad). A estos últimos les prestaremos especial atención en los
puntos siguientes.
1.
Variación de coeficientes de eficiencia.
a. De variables que están en la base.
Supongamos que queremos saber hasta dónde puedo modificar el
valor de C1 sin que se modifique la solución actual. ¿Qué queremos decir con
que “no se modifique”?. Obviamente que al estar X1 en la base, el valor de Z
= (Σ CjXj) se modificará, igual que los zj-cj = (Σ ciaij – cj)
i=base
Lo que no queremos que se modifique es la estructura (valor de las a ij
y bi del paso), no queremos que esta tabla deje de ser óptima y haya que
pasar a otra tabla. Lo que nos obligaría a pasar de tabla sería el hecho de
que hubiera algún zj-cj menor que cero, por lo menos.
Para esto analicemos los zj-cj reemplazando en todos los casos el valor
de c1 por el símbolo “c1”.
z1-c1 = c1 . 1 – c1 = 0
z2-c2 = 5 . 1 – 5 = 0
z3-c3 = 0,06 . c1 – 0,02 . 5 – 0,28 . 0 – 0 = 0,06 . c1 – 0,1
z4-c4 = -0,02 . c1 + 0.04 . 5 + 0,06 . 0 – 0 = 0,2 – 0,02 . c1
z5-c5 = 1 . 0 – c1 = 0
Como todos tienen que ser mayores o iguales que cero:
Versión 3.1 – Julio 2008
Modelos y Optimización I
25
0,06 c1 – 0,1 ≥ 0 => 0,06 c1 ≥ 0,1 => c1 ≥ 5/3
0,2 – 0,02 c1 ≥ 0 => 0,02 c1 ≤ 0,2 => c1 ≤ 10
lo que indica que mientras c1 se mantenga entre 5/3 y 10, se mantendrá la
estructura actual. Debemos señalar que lógicamente, el valor actual de c 1 (8)
se encuentra en el intervalo, de lo contrario el cálculo estaría errado. Si
colocamos 10 como valor de c1 obtendremos un zj-cj = 0 (z4-c4) lo que
significa soluciones alternativas. Haciendo entrar X4 se modifica la tabla.
Similar situación se produciría si c1 = 5/3 pero con X3.
A 5/3 se lo llama límite inferior de c1 en esta tabla y a 10 límite
superior. Si hubiera varios candidatos a límite inferior se elige el mayor de
todos ellos, ya que si se eligiera al menor habría un zj-cj = 0 y, al menos otro
menor que cero. En tanto, si hubiera varios candidatos a límite superior se
elige el menor por la misma razón. Si obtuviéramos como límites c 1 ≤ 8 y c1 ≤
10 vemos que c1 ≤ 8 engloba a ambos. El razonamiento para límite inferior es
igual.
b. De variables que no están en la base.
Es lógico que cuando cambia un cj de una variable xj que no está en la
base no se altera el valor de z porque en él intervienen los ci de las xi de la
base. Tampoco modifica entonces el valor de otro z j-cj que no sea el de esa
misma variable.
Si queremos averiguar el límite superior (cj + +cj siendo cj el valor
actual y +cj la variación positiva) y el límite inferior (c j – -cj) para que no se
modifique la tabla, ese valor de zj-cj será el que tendrá que mantenerse
mayor o igual que cero.
El valor de zj no se modifica, entonces el nuevo zj-cj será:
zj – (cj + +cj) ≥ 0 zj-cj – +cj ≥ 0
zj – (cj – -cj) ≥ 0 zj-cj + -cj ≥ 0
zj-cj ≥ +cj
zj-cj ≥ – -cj
Con respecto a esta última relación, como queremos que el indicador sea
mayor o igual que cero será mayor que un número negativo como – -cj.
Entonces cuando más disminuya cj ese zj-cj será mayor y positivo. (Por
ejemplo, si ese cj llegara a ser igual a -3 sería zj – (– 3) = zj + 3, entonces zjcj nunca llega a ser negativo por esa vía). Si z j-cj no llega a ser negativo con
disminuciones de cj, ese límite no nos interesa, porque mientras el indicador
siga siendo ≥ 0 no se modificará la solución óptima.
Versión 3.1 – Julio 2008
26
Modelos y Optimización I
Vemos que el cj tiene un solo límite, el superior porque al subir el c j
hará, en un momento que zj-cj sea igual a cero y entre esa variable en la
base. Pero ¿cuánto puede aumentar cj sin que se modifique la actual tabla
óptima? Tiene que aumentar hasta que zj-cj sea cero, o sea, hasta que cj = zj.
Entonces, el límite superior de cj de una variable que no está en la
base es su zj y el límite inferior no existe (-∞).
c. Análisis gráfico.
El funcional actual está en azul. Cuando c1 = 5/3 la pendiente del
funcional (rojo) ha variado tanto que el óptimo ahora es el segmento CB.
En cambio, cuando c1 = 10 la pendiente del funcional coincide con el
segmento AB (X3 = 0). Aquí comprobamos que en los límites hay soluciones
alternativas, como habíamos dicho. Podríamos continuar el análisis variando
c1 desde cero hasta infinito. Cuando c1 vale cero, obtengo la horizontal (0A
óptimo) y cuando vale infinito obtengo la vertical (A óptimo).
d. Relación entre el signo de las aij, el objetivo del problema y la
variación de cj.
Cuando cambia el cj de una variable que no está en la base, uno de los
límites no existe, de tal modo que analizaremos un cambio de cj cuyo Xj esté
en la base. A las Xj que están en la base las llamamos xk. Ck es la variación
del cj correspondiente. Todos los zj-cj tienen que continuar siendo mayores
o iguales que cero. Entonces:
∑ aij . Ci
+ akj . Δ ck – cj ≥ 0
i = base
ó
akj . Δ ck ≥ -( Zj – cj)
Versión 3.1 – Julio 2008
Modelos y Optimización I
27
cambio de signo  -akj . Δ ck ≤ (Zj – cj)
cuando
akj > 0
Δ ck ≤ (Zj – cj)
-akj
pero como quedaría con signo negativo, cambio el signo y el sentido:
ck ≥ (Zj – cj)
akj
cuando akj < 0
ck ≥ (Zj – cj)
-akj
pero como akj < 0, - akj es positivo.
Por lo tanto:
mín
akj
Zj – cj ≤ Δ ck ≤ máx Zj – cj
akj
akj akj
cuando nos referimos al máximo es en valor absoluto.
Esto fue observado cuando calculamos cada zj-cj (ver 1.a). Cuando un
akj era positivo (ej. 0,06) no limitaba el aumento de cj (ver que c1 ≥ 5/3) pero
sí la disminución del mismo. Idéntico razonamiento se hacía con un a kj
negativo.
z3-c3 = 0,06 (8 + ∆ +c1) – 0,02 . 5 ≥ 0
z4-c4 = –0,02 (8 + ∆ +c1) + 0,04 . 5 ≥ 0
Vemos que si quiero un incremento positivo lo que me crea conflicto
es la segunda ecuación ya que en la primera ∆ +c1 está sumando y el zj-cj
seguirá siendo mayor o igual que cero.
– 0,16 – 0,02 ∆ +c1 + 0,2 ≥ 0
0,02 ∆ +c1 ≤ 0,04 ∆ +c1 ≤ 2
Puede aumentar a lo sumo en 2 porque así llega a 10 que es el límite que
habíamos logrado antes. Si queremos saber en cuánto disminuye c1:
z3-c3 = 0,06 (8 – ∆ -c1) – 0,02 . 5 ≥ 0
z4-c4 = –0,02 (8 – ∆ -c1) + 0,04 . 5 ≥ 0
Versión 3.1 – Julio 2008
28
Modelos y Optimización I
En la segunda ecuación, por compensación de signos ∆ -c1 queda
sumando, así que la que restringe para que el indicador siga siendo mayor o
igual que cero (es lógico, si antes limitaba una ecuación, ahora esa no debe
limitar)
0,48 – 0,06 ∆ -c1 – 0,1 ≥ 0
0,06 ∆ -c1 ≤ 0,38 c1 ≤ 19/3
es decir que a lo sumo puede disminuir un 19/3 con lo que quedaría en 8 –
19/3 = 5/3, valor obtenido antes.
Usando el otro método, si hiciéramos z3-c3 = 0,38 = 19/3 obtenemos el
a13
0,06
mismo límite.
e. Determinación de curvas de oferta.
La curva de oferta expresa la variación de cada Xj en función del
valor de su cj. Cada tabla tiene un rango de validez. En nuestro caso,
analizando para c1, la validez de la tabla siguiente es para 5/3 ≤ c1 ≤ 10.
C
X
B
8
A1
5
A2
0
A3
0
A4
0
A5
8
5
0
X1
X2
X5
2,4
5,2
22,8
45,2
1
0
0
0
0
1
0
0
0,06
-0,02
-0,28
0,38
-0,02
0,04
0,06
0,04
0
0
1
0
cuando c1 ≤ 5/3 pasamos a la siguiente tabla:
C
X
B
5/3
A1
5
A2
0
A3
0
A4
0
A5
0
5
0
X3
X2
X5
40
6
34
30
50/3
1/3
14/3
0
0
1
0
0
1
0
0
0
-1/3
1/30
-1/30
1/6
0
0
1
0
(los zj-cj y el funcional sólo son válidos para c1 = 5/3). Aquí X1 ya no está en
la base, entonces esta tabla es válida para – ∞ < c1 ≤ 5/3
Cuando c1 ≥ 10 pasamos a la siguiente tabla:
C
X
B
10
A1
5
A2
0
A3
0
A4
0
A5
10
0
0
X1
X4
X5
5
130
15
50
1
0
0
0
0,5
25
-1,5
0
0,05
-0,50
-0,25
0,5
0
1
0
0
0
0
1
0
Versión 3.1 – Julio 2008
Modelos y Optimización I
29
En esta tabla 0,5 c1 – 5 ≥ 0 y 0,05 c1 ≥ 0 => c1 ≥ 10
Esta tabla es válida para 10 ≤ c1 < +∞
Entonces para 5/3 ≤ c1 ≤ 10, X1 vale 2,4; para c1 ≤ 5/3, X1 vale 0 y para c1 ≥ 10,
X1 vale 5.
Graficando la curva de oferta de puertas tipo 1 entre 0 e ∞:
2.
Variación de las restricciones del problema.
a. Valores marginales. Significado. Interpretación gráfica.
El valor marginal se relaciona con los recursos y éstos se relacionan
con el vector B. Para poder comparar, tenemos que fijar la unidad, así
podremos saber el efecto que produce cambiar un recurso, en lo que hace a
su disponibilidad. Analicemos la modificación que sufre el vector B cuando le
agregamos una unidad al recurso 1.
B’ = B + Ei =
b1
.
b1
.
bm
+
0
.
1
.
0
 i
Pero ya teníamos un valor de vector X óptimo (X). ¿Qué ocurre con
ese óptimo ante esta modificación?
Sabíamos que:
Versión 3.1 – Julio 2008
30
Modelos y Optimización I
A . X = B . X = A-1 . B
X = A-1 . (B + E1) = A-1 . B + A-1 . E1
X = X + X1 que es ≥ 0
Veamos cómo varía el funcional:
Z’ = C X’ = C (X + Xi) = C X + C Xi = Z + C Xi = Z + Zi
Siempre nos referimos a los elementos A, X, B, etc. de un mismo paso. Para
todo Ci que corresponda a un vector que está en la base Zi-Ci = 0 pero
cuando no está en la solución no puede valer cero.
Z’ = Z + (Zi-Ci)
Puedo agregar Ci porque cuando se trata de un recurso, Ci vale cero.
Así, al valor zi-ci se lo llama valor marginal del recurso i y, por
supuesto, es el zj-cj de la columna que representa a ese recurso. Valor
marginal es el aumento que experimenta el funcional en función del aumento
unitario que se produzca en la disponibilidad de un recurso. Este aumento
del funcional se produce porque el valor marginal refleja el efecto que tiene
sobre el funcional la mejor reubicación de otros recursos ante la variación
de uno de ellos y la consiguiente variación en las variables producto.
Supongamos que contamos con 10 hh. más que las 100 que teníamos
antes. Esto produce una modificación en el poliedro solución por corrimiento
de uno de sus lados. Entonces cambia el óptimo (de B a B’). Si se calcula el
funcional para el punto B’ se verá que vale 49, es decir, ha aumentado en
0,38 (valor marginal de X3) x 10 (∆ X3).
Versión 3.1 – Julio 2008
Modelos y Optimización I
31
Analíticamente ¿cómo veo el beneficio de 10 hh. más? El beneficio
tengo que verlo en el nuevo vector X óptimo:
AX= B
X = A-1 B
X’ = A-1 B
X’ – X = A-1 (B’ – B)
X
B
Determinemos entonces el nuevo delta X.
X=
0,06 –0,02 0
–0,02 0,04 0
–0,28 0,06 1
x
10
0,6
0 = –0,2
0
–2,8
=
∆ X1
∆ X2
∆ X5
Coincide con el gráfico, aumenta X1 y disminuyen X2 y X5.
Económicamente valorizo cada pérdida y cada ganancia:
0,6
–0,2
–2,8
x
x
x
8
5
0
4,8
–1,0
0
3,8 que es lo que aumentó el funcional
Si hubiera aumentado sólo 1 hh. el vector delta X sería:
Versión 3.1 – Julio 2008
32
Modelos y Optimización I
0,06
–0,02
–0,28
y la valorización económica daría: 0,06 . 8 – 0,02 . 5 = z3
z3 – c3 = 0,38 – 0 = 0,38
De ahí el concepto de valor marginal como lo que aumenta z.
b. Costo de oportunidad. Significado.
Para el análisis usaremos un producto que no pertenezca a la base de
la solución óptima, siendo Ae el vector de producto.
Quiero ver qué sucede si quiero fabricar una unidad de ese producto
representado por Ae. Si Ae no pertenece al óptimo es que su incorporación a
la base será perjudicial, me trae un costo llamado costo de oportunidad.
Fabricar una unidad supone un descuento en B, ya que se necesitan
recursos para fabricarla, y si Ae es el vector del primer paso indica lo que
uso de cada recurso (descuento a B).
B’ = B – Ae
X=A
B’ = A-1 (B – Ae) = X – A-1 Ae
X = X – Xe ≥ 0
Z’ = C X + Ce = C (X – Xe ) + Ce = Z – Ze + Ce = Z – (Ze - Ce )
-1
Donde Ce es el beneficio de una unidad del producto e, y Z e - Ce representa
lo que disminuyó el funcional.
Es decir que el costo de oportunidad es la disminución que
experimenta el funcional por producir una unidad del producto j que hasta el
momento no se fabricaba. Ese valor es el zj-cj correspondiente y, como en el
caso del valor marginal, el análisis se hace en la tabla óptima. También se
suele decir que el costo de oportunidad es lo que se pierde de ganar por
entrar ese producto a la base (siempre analizando en el óptimo). Esta
disminución del funcional se produce porque lo que consume ese producto de
cada recurso le quita a los demás productos, que son más provechosos que
él, una cantidad que podría consumir y esa pérdida que se produce al
reacomodar la fabricación es mayor que el beneficio utilitario del producto.
Versión 3.1 – Julio 2008
Modelos y Optimización I
33
c. Análisis de la relación entre saturación de recursos, valores
marginales y variables slacks.
¿Cuándo un recurso se encuentra saturado? Cuando no existe
sobrante del mismo. Eso podemos verificarlo a través de la variable slack
correspondiente. En nuestro ejemplo base:
X3 = sobrante de horas hombre (hh/sem)
X4 = sobrante de materia prima (kg/sem)
X5 = sobrante de horas máquina (hmáq/sem)
Recordemos la tabla óptima:
C
X
B
8
A1
5
A2
0
A3
0
A4
0
A5
8
5
0
X1
X2
X5
2,4
5,2
22,8
45,2
1
0
0
0
0
1
0
0
0,06
-0,02
-0,28
0,38
-0,02
0,04
0,06
0,04
0
0
1
0
Como vemos, X3 = X4 = 0. Entonces, si las sobrantes de horas hombre
y de materia prima son nulas, esos recursos están saturados. No están
saturadas las hs. máq. de las cuales sobran 22,8. Recordemos que las
disponibilidades iniciales eran de 100 hh, 180 kg y 40 hs. máq. por semana.
Como habíamos analizado anteriormente, cuando un recurso tiene sobrante
su slack en la base tiene valor mayor que cero y su z j-cj es igual a cero, es
decir, su valor marginal es cero porque no me trae ningún beneficio
conseguir más hs. máq. si actualmente me sobran. En cambio, en aquellos
recursos saturados, el valor marginal es mayor que cero porque me
resultaría beneficioso conseguir más de ese recurso. Pero el beneficio no es
el mismo para todos los recursos. En este caso, el beneficio por tener una
hh. más es mayor que el beneficio por tener un kg. más de materia prima.
Eso depende de la cantidad de ese recurso que necesiten cada uno de los
productos que están en la base óptima y en qué proporción se fabriquen.
Debemos recordar que el valor marginal se calcula como z j-cj = ci aij – cj. El
valor marginal es el valor de la yi de ese recurso por lo cual esto se ve
reflejado en el dual.
d. Análisis de la relación entre la producción de un producto y el costo
de oportunidad.
Cuando un producto se encuentra en fabricación y, por lo tanto, la
variable Xj que lo representa está en la base, entonces su zj-cj vale cero y
su costo de oportunidad es nulo. Cuando en el paso óptimo una variable que
Versión 3.1 – Julio 2008
34
Modelos y Optimización I
representa a un producto no se encuentra en la base, entonces su costo de
oportunidad es distinto de cero (por ser el paso óptimo debe ser mayor que
cero). Ese producto no figura en la tabla óptima porque su fabricación no es
conveniente. Por cada unidad que se fabrique de él habrá una pérdida igual a
ese costo de oportunidad por las razones que se citaron en 2.b.
Esto se ve reflejado en la tabla dual. Sabemos que cuando una
variable real figura en la base del directo su dual correspondiente no figura
en la base del dual. Por el contrario, cuando un producto no se fabrica, su
dual correspondiente (definida como costo de oportunidad de ese producto)
está en la base del dual con un valor igual al z j-cj de ese producto. Se
descuenta que a esta altura hemos convenido en que no hay ninguna variable
en la base cuyo valor sea cero (salvo caso de degeneración).
e. Variación de restricciones de recursos no saturados. Cálculo de
límites. Análisis gráfico.
En el caso de los recursos no saturados, si la variación es positiva, es
decir, la disponibilidad aumenta, no se produce ninguna modificación en
cuanto a la producción óptima, ni en el valor del funcional, simplemente que
si antes sobraba, ahora sobra más.
Este análisis se hace justamente para saber cuáles son los recursos
no saturados porque si el empresario nota que siempre le sobra un recurso
comprará menos de él. Justamente, éste es el caso que interesa analizar
para recursos no saturados: ¿hasta qué cantidad puedo disminuir la
disponibilidad de un recurso no saturado sin que se modifique la solución? Si
disminuimos hasta llegar a cero, por nombrar un extremo, no podremos
producir nada, pero nos interesa saber cuál es el límite de disminución.
Como la disponibilidad de cada recurso (b1) es un coeficiente del funcional
del dual y estamos analizando desde el punto de vista de los recursos, esto
nos lleva a hacer nuestro análisis en el dual.
Recordemos la tabla óptima dual de nuestro problema
B
Y
C
100
A1
180
A2
40
A3
0
A4
0
A5
100
180
Y1
Y2
0,38
0,04
45,2
1
0
0
0
1
0
0,28
-0,06
-22,8
-0,06
0,02
-2,4
0,02
-0,04
-5,2
Como vemos, Y3 (valor marginal del recurso hs. máq.) es cero.
z3-c3 = –22,8 indica el valor de X5 cambiado de signo (repasar
correspondencia entre variables del primal y del dual) y nos revela que
sobran 22,8 hrs. máq. Ahora bien, queremos disminuir la disponibilidad de
Versión 3.1 – Julio 2008
Modelos y Optimización I
35
hs. máq. (b3) sin que cambie el óptimo. Para que la solución siga siendo válida,
todos los zi-ci tienen que ser menores o iguales que cero. Entonces podemos
calcularlo con un método similar al usado para calcular el límite en las
variaciones de los cj. Cuando cambia un bi de una variable Yi que no está en la
base, sólo afecta a su propio zi-bi.
Reemplazando el valor de b3 por el símbolo “b3” calculo:
z3-b3 = 100 . 0,28 – 180 . 0,06 – b3 ≤ 0
b3 ≤ 17,2
La disponibilidad de hs. máq. puede disminuir hasta ser igual a 17,2,
por lo tanto puede disminuir hasta en 22,8 hrs. Justamente, como en el caso
de los cj, el límite inferior es el zi-bi correspondiente.
Analicemos el gráfico de la siguiente página.
En línea llena vemos la recta X5=0 con la disponibilidad original de 40
hs. máq. Cuando la disponibilidad es de 17,2 (línea punteada) se achica el
poliedro (OA’BC) pero el óptimo sigue siendo B porque la pendiente del
funcional no ha cambiado. Aquí se ve claramente que cuando la disponibilidad
es 17,2 la recta X5=0 pasa por el punto B. Si la disponibilidad fuera inferior
a 17,2 el punto B se desplazaría más a la izquierda y el funcional diminuiría.
Gráficamente:
f. Variación de restricciones de recursos saturados. Cálculo de límites.
Análisis gráfico.
Cuando un recurso está saturado es que no tiene sobrante.
Versión 3.1 – Julio 2008
36
Modelos y Optimización I
En oportunidad de analizar cada uno de los coeficientes de la tabla
vimos que, si aumentábamos la disponibilidad de un recurso saturado, llegaba
un momento en el que comenzaba a sobrar y el valor marginal pasaba a ser
cero. Dijimos entonces que nos interesa averiguar cuánto podemos aumentar
la disponibilidad como límite hasta que empiece a sobrar. Esta es la sección
en la cual veremos la forma de averiguar cuál es ese límite. Pero no es sólo
eso lo que nos interesa. Queremos saber, como en 2.e cuánto podemos
aumentar la disponibilidad como máximo para que no cambie la estructura
óptima. Para ello aplicaremos el mismo método que en 2.e, analizando en el
dual pero, como sabemos, cuando cambia la bi de una variable de la base
cambian todos los zi-bi. Para que se mantengan las condiciones actuales,
todos los zi-bi tienen que seguir siendo menores o iguales a cero.
Convengamos en averiguar cuánto podría aumentar la disponibilidad de
hs. hombre sin que varíe la estructura óptima (claro que variaría el valor de
z y los zi-bi pero no queremos que cambie la base, eso es la estructura). Para
analizar reemplazaremos b1 = 100 por el símbolo “b1”, calcularemos todos los
zi-bi para extraer un valor límite.
z’3 – b3 = 0,28 b1 – 0,06 180 – 40 = 0,28 b1 – 50,8
z’4 – b4 = –0,06 b1 + 0,02 180
= 3,6
– 0,06 b1
z’5 – b5 = 0,02 b1 – 0,06 180
= 0,02 b1 – 7,2
z’3 – b3 => 0,28 b1 – 50,8
≤ 0
z’4 – b4 => 3,6
– 0,06 b1 ≤ 0
z’5 – b5 => 0,02 b1 – 7,2
≤ 0
b1 ≤ 181,42
b1 ≥ 60
b1 ≤ 360
Esto quiere decir que mientras b1 se mantenga entre 60 y 181,42 hh
se mantendrá la solución actual (de los límites superiores elijo el menor).
Esto quiere decir que, si disminuyen hasta valor 60, igual se seguirían
produciendo X1 y X2 aunque en menor cantidad (recordar que z4-b4 = X1 y z5b5 = X2) si se disminuyera b1 hasta que fuera menor que 60 dejaría de
producirse X1.
De igual modo, cuando b1 = 181,42 z3-b3 = 0 y al entrar Y3 a la base, no
puede salir sino Y1 por tener el único ai3 positivo, entonces el valor marginal
de hh = 0 y sobra. Hemos encontrado hasta qué límite podemos aumentar la
disponibilidad de mi recurso para producir cada vez más hasta que empiece
a sobrar. Si aquí no lo hubiéramos encontrado tendríamos que pasar a otra
tabla hasta hallarlo.
Recordemos que este límite es para que se mantenga esta estructura
de tabla como óptima. Cuando antes analizamos en una tabla intermedia
Versión 3.1 – Julio 2008
Modelos y Optimización I
37
obtuvimos un límite pero el análisis se hace para la tabla óptima, la única que
nos interesa.
Gráficamente:
Cuando b1=60 X3=0 está dibujado en rojo y el poliedro OA’C, si b 1 es
menor que 60 el óptimo es C. En este caso Y 1 no se produce, ya lo habíamos
notado analíticamente. Cuando b1=181,42 X3=0 está dibujada en negro y el
poliedro es OA’’B’C. Cuando X3=0 llega al límite de X5=0 el óptimo es B’. Si
sigue aumentando b1 sobran horas hombre porque X3=0 se desplaza tanto
que ya no limita el poliedro tal como actualmente X5=0 no estaba en el
poliedro y sobraban hs. máq. Gráficamente se obtienen los mismos
resultados que con el análisis. El óptimo se desplaza por la recta X 4=0.
Cuando el óptimo llega a C, ya no puede desplazarse por esa recta porque ya
es el límite y allí b1=60. Cuando el óptimo llega a B’ ya no puede desplazarse
por esa recta porque se termina el poliedro. Entonces los puntos límite son
aquellos en los cuales el óptimo deja de desplazarse por una recta y pasa a
hacerlo por otra. Además, son puntos degenerados (ver C y B’).
En los puntos de corte, analíticamente obtuvimos soluciones
alternativas (cuando un zi-bi=0 cuyo Yi no está en la base). En el gráfico,
cuando b1=60, C es un punto degenerado, igual que B’ cuando b 1=181,42. Esto
demuestra la veracidad de lo que afirmamos cuando hablamos de dualidad en
programación lineal: “cuando uno de los problemas es degenerado, el otro
tiene soluciones alternativas”. Justamente, los valores límite indican un
corte en el desplazamiento del óptimo, producido por la degeneración.
Versión 3.1 – Julio 2008
38
Modelos y Optimización I
g. Relación entre el signo de los aij, el objetivo del problema, el sentido
de la variación de las bi estudiadas y el signo de bi.
Sabemos que un cambio en una bi debe ser de magnitud tal que
conserve la estructura de la solución. Para que una solución óptima se
mantenga, todos los zi-bi del dual tienen que ser menores o iguales que cero.
Sabemos que los zi-bi representan el valor de una variable Xi.
zi-bi ≤ 0
Vi
Llamaremos a’ij a los elementos de la tabla dual para diferenciarlos de
los aij del directo que son distintos.
∑ ajk bj + a’li ∆ bl – bl ≤ 0
j=base
Para todo j en la base y donde a’li es el elemento de la l-ésima fila y la
i-ésima columna de la tabla del dual óptima (pertenece a la matriz inversa
óptima del dual).
Entonces: zi – bi + a’li ∆ bl ≤ 0
a’li ∆ bl ≤ – (zi – bi)
a’li ∆ bl ≤ – xi
Para a’li > 0 tenemos:
∆ bl ≤ – xi
a’li
pero como –xi es mayor que
cero queda positivo.
Para a’li < 0 tenemos:
∆ b1 ≤ – xi
a’li
y como ali es negativo cambio el
sentido:
∆ b1 ≥ – xi
– a’li
Entonces:
min
– a’li < 0
– xi
– a’li
≤
∆ b1
≤
máx
– a’li > 0
– xi
– a’li
Esto ya fue observado cuando calculamos la variación de bi. Cuando el
a’li era positivo (0,28; 0,02) sólo afectaba el límite superior (el mayor de
ellos). Con 0,28, en este caso el mayor, encontramos la máxima variación
positiva o límite superior:
∆ b+1 = 22,8 = 81,42
0,28
Versión 3.1 – Julio 2008
Modelos y Optimización I
39
Con lo cual el nuevo b1 será b’1 = 100 + 81,42 = 181,42.
Cuando queremos analizar una variación positiva o incremento de b1,
que actualmente vale 100, planteamos:
z’3-b3 = 0,28 (100 + ∆ b+1) – 0,06 180 – 40 ≤ 0
0,28 ∆ b+1 – 22,8 ≤
0
z’4-b4 = –0,06 (100 + ∆ b+1) + 0,02 180
≤ 0 –0,06 ∆ b+1 – 2,4 ≤ 0
z’5-b5 = 0,02 (100 + ∆ b+1) – 0,04 180
≤ 0
0,02 ∆ b+1 – 5,2
≤
0
Vemos que en la segunda ecuación, como ∆ b+1 tiene signo negativo,
cuanto más aumente, más negativo se hará ese z’i-bi, entonces no me sirve
como límite. En la primera ecuación ∆ b+1 ≤ 81,42 y en la tercera ∆ b+1 ≤
260. Tomo el menor y me queda el mismo límite obtenido anteriormente
(81,42).
En cambio si quiero analizar una variación negativa o decremento:
z’3-b3 = 0,28 (100 – ∆ b–1) – 0,06 180 – 40 ≤ 0 –0,28 ∆ b–1 – 22,8 ≤ 0
z’4-b4 = –0,06 (100 – ∆ b–1) + 0,02 180
≤ 0
0,06 ∆ b–1 – 2,4 ≤ 0
z’5-b5 = 0,02 (100 – ∆ b–1) – 0,04 180
≤ 0 –0,02 ∆ b–1 – 5,2 ≤ 0
Aquí, como en la segunda ecuación ∆ b–1 tiene signo positivo, hay
peligro de que aumente tanto que ese indicador deje de ser menor o igual a
cero, entonces es el único que limita ∆ b–1 ≤ 40. A lo sumo puede decrecer
en 40, con lo cual b1 sería igual a 60, límite que ya habíamos hallado.
h. Variación de una restricción bj de cero a infinito. Análisis analítico y
gráfico de la variación de: funcional – Valor marginal de la restricción
que varía – Uso de las otras restricciones – Valor marginal de las
otras restricciones – Valor de las variables del problema directo.
Veremos la variación de b1 de cero a infinito.
Mientras 60 ≤ b1 ≤ 181,42 vale la tabla original, en la que
adjuntamos los zi-bi en los límites.
Versión 3.1 – Julio 2008
40
Modelos y Optimización I
B
Y
C
100
A1
180
A2
40
A3
0
A4
0
A5
100
180
Y1
Y2
0,38
0,04
1
0
0
1
0,28
-0,06
-0,06
0,02
0,02
-0,04
B1 = 100
B1 = 60
B1 = 181,42
45,2
30
76,14
0
0
0
0
0
0
-22,8
-34
0
-2,4
0
-7,28
-5,2
-6
-3,57
180
A2
40
A3
0
A4
0
A5
3
50
0
0,1
-3
-34
0
1
0
-0,1
-2
-6
Veamos ahora la tabla válida para b1 ≤ 60.
B
Y
C
60
A1
60
0
Y1
Y4
0,5
2
30
1
0
0
Y la siguiente vale para b1 ≥ 181,42, porque y1 ya salió de la base:
B
Y
C
181,42
A1
40
180
Y3
Y2
19/14
17/140
76,14
25/7
3/14
0
180
A2
40
A3
0
A4
0
A5
0
1
0
1
0
0
-3/14
1/140
-7,28
1/14
-1/28
-3,57
Analicemos algunas variaciones en función de b1.
Variación del funcional.
La pendiente es el valor de Y1 en cada tabla.
Versión 3.1 – Julio 2008
Modelos y Optimización I
Valor marginal de horas hombre.
Uso de hs. máquina.
La pendiente es el ai5 de cada tabla cambiado de signo.
Valor marginal de horas máquina.
Versión 3.1 – Julio 2008
41
42
Modelos y Optimización I
Valor marginal de materia prima.
Valor de x1.
La pendiente es el ai4 de cada tabla cambiado de signo. Es el ai4 porque
el subíndice i es el coeficiente que varía (bi) y el subíndice j es el de la
columna de, en este caso X1, lo que quiero representar. Como X1 se
corresponde con Y4 j = 4.
Versión 3.1 – Julio 2008
Modelos y Optimización I
3.
43
Modificación de las dimensiones del problema.
a. Introducción de nuevos productos. Determinación del beneficio límite
para fabricar el nuevo producto.
Cuando habíamos hablado de modificaciones en el problema original,
en el capítulo anterior tocamos el caso de agregado de incógnitas en el cual
agregábamos un nuevo tipo de puerta (ver el punto “a”, agregado de
incógnitas en modificaciones en el problema original). Así, averiguamos que
con un beneficio unitario de 4$ no se modificaba nuestro óptimo, ya que con
el método de la matriz inversa óptima conseguimos dilucidarlo sin hacer
todo el desarrollo de nuevo.
Pero si no nos dieran el beneficio unitario sino que nos plantean: “qué
beneficio tendría que tener, como mínimo, ese tipo de puertas, para que
convenga producirlas”. Si conviene producirlas su zj-cj será menor o igual
que cero, para que no se mantenga la tabla actual, en la que no están en la
base, como óptima.
Primero calculamos el vector en el óptimo premultiplicando por la
matriz óptima. Recordemos:
0,06 -0,02 0
-0,02 0,04 0
-0,28 0,06 1
x
18
15
0
=
0,78
0,24
- 4,14
Calculo el zj-cj que tiene que ser mayor o igual que cero, poniendo c6
como incógnita (c6 es el beneficio unitario del nuevo producto).
z6-c6 = 0,7 . 8 + 0,24 . 5 – c6 ≤ 0
c6 ≥ 7,44 (a)
Es lógico, c6 tiene que ser mayor o igual que su zj para que z6-c6 sea
menor o igual que cero, X6 entre a la base y se produzca.
La incógnita puede ser, a veces, no cj sino alguno de los usos, por
ejemplo,”¿cuál tendría que ser el consumo máximo de horas hombre de cada
puerta tipo 3 para que convenga producirlas?”. En este caso, al calcular el
vector en el óptimo, pondremos en vez de 18 una letra para designar una
incógnita (ej: x) y calculamos el indicador (ya no es incógnita c6), y como
queda en función de la incógnita despejamos este valor.
0,06 -0,02 0
-0,02 0,04 0
-0,28 0,06 1
x
x
15
0
=
Versión 3.1 – Julio 2008
0,06 x – 0,3
- 0,02 x + 0,6
- 0,28 x + 0,9
44
Modelos y Optimización I
z6-c6 = (0,06 x – 0,3) 8 + (–0,02 x + 0,6) 5 – 4 ≤ 0
0,38 x – 3,4 ≤ 0
x ≤ 8,9473
Otra manera de calcular este tipo de cosas es mediante el lucro
cesante. En la primera pregunta, el beneficio mínimo tiene que ser aquel que
permita cubrir por lo menos la pérdida por lucro cesante. Esta pérdida se
basa en que hay que dejar de fabricar una determinada cantidad de los
otros productos porque necesito recursos para este nuevo. Esto lo calculo
con la valorización de los recursos, realizada con los Yi. Es obvio que no
habrá ningún lucro cesante cuando un recurso sobra. El lucro cesante de una
unidad de puerta 3 se calcula como suma de productos del uso unitario de
cada recurso, por el Yi correspondiente a ese recurso. c6 tiene que ser por
lo menos igual (o mayor) al lucro cesante.
c6 ≥ 18 Y1 + 15 Y2 + 0 Y3
c6 ≥ 18 0,38 + 15 0,04
c6 ≥ 7,44
Como observamos, el resultado es idéntico al obtenido por el otro
método en (a).
En la segunda pregunta, el consumo tiene que ser el máximo como para
que el z6-c6 sea igual a cero o menor:
x Y1 + 15 Y2 + 0 Y3 – c6 ≤ 0
x 0,38 + 15 0,04 – 4 ≤ 0
x 0,38 ≤ 3,4
x ≤ 8,9473
Se puede usar cualquiera de los dos métodos (o los dos para cotejar)
con tal que se entienda lo que se está haciendo y se lleguen a resultados
correctos.
b. Introducción de nuevas restricciones. Determinación de la capacidad
límite de la nueva restricción para que no altere la solución del
problema.
Al estudiar modificaciones al problema original vimos el caso de
agregado de inecuaciones, lo cual no es otra cosa que agregar nuevas
Versión 3.1 – Julio 2008
Modelos y Optimización I
45
restricciones al problema. Para refrescar los conceptos se puede recurrir al
punto “d. Agregado de inecuaciones” del capítulo anterior, de modo que no
conviene reiterar por qué analizamos en el dual. Volviendo al ejemplo que
habíamos dado en aquella oportunidad, hablábamos de un nuevo
procedimiento de barnizado (nuevo proceso). Cada puerta tipo 1 necesita 3
litros de pintura y cada puerta tipo 2 necesita 2 litros, habiendo 120 litros
de pintura barniz disponible por semana.
Habíamos visto que con esa disponibilidad el zi-bi seguía siendo
negativo en el dual y no altera la solución. Pero si nos plantean “¿cuál sería la
disponibilidad mínima de barniz para que no se modifique la solución
óptima?”.
En este caso calculamos el vector en la tabla óptima del dual.
Recordemos cómo lo hacíamos:
3/50 -1/50
x
-1/50 1/25
3
=
2
1/50
3/50
z’6 – b6 = 1/50 100 + 3/50 180 – b6 ≤ 0
b6 ≥ 64/5
Para que no se modifique la solución no se tiene que saturar este
recurso. El límite es que alcance justo pero no nos conviene que se sature
porque cambia la producción y se pasa a un nuevo óptimo en el dual, por lo
que el z será menor que el actual.
De igual modo, podemos calcular el consumo máximo de barniz que
puede hacer cada puerta de tipo 1 para que no se altere la solución.
3/50 -1/50
-1/50 1/25
x
x
2
3/50 x – 1/25
=
–1/50 x + 2/25
z6 – b6 = (3/50 x – 1/25) 100 + (– 1/50 x + 2/25) 180 - 120 ≤ 0
12/5 x – 548/5 ≤ 0
x ≤ 137/3
Versión 3.1 – Julio 2008
Descargar