Clase 7. - Universidad Nacional de Colombia : Sede Medellin

Anuncio
Clase 7 – Introducción a la optimización lineal
Álgebra Lineal
Código 1000 003
1
Escuela de Matemáticas - Facultad de Ciencias
Universidad Nacional de Colombia
Introducción a la optimización lineal
En un problema de optimización, hay que decidir que valores deben tomar unas variables instrumentales, sometidas
a unas restricciones, de manera que cierta función objetivo alcance un valor óptimo (máximo o mı́nimo). Cuando tanto
la función objetivo como las restricciones son lineales, hablamos de un problema de optimización lineal.
Cuando las restricciones lineales definen una región acotada del espacio Rn , los valores óptimos de las funciones
lineales se alcanzan en los vértices de estas regiones. En la resolución de los problemas siguientes asumiremos por
hipótesis esta situación.
Ejemplo: Una fábrica produce sillas y mesas. La fábrica dispone de los departamentos de corte y ensamble que
en una jornada disponen de 90 y 120 horas×persona respectivamente. La producción de una silla consume 1
hora×persona de corte y 1 hora×persona de ensamble. La producción de una mesa consume 1 hora×persona
de corte y 2 horas×persona de ensamble. Asumamos que el valor de mercado de una silla es de 50 mil pesos y el de
una mesa es de 80 mil pesos. ¿Cuantas sillas y mesas deberı́a producir la fábrica para maximizar su beneficio?
Planteamiento: Las variables instrumentales son:
s
:
número de sillas producidas en una jornada
m
:
número de mesas producidas en una jornada
Las restricciones nos indican que cantidad de sillas y mesas es factible construir en una jornada. Hay dos restricciones evidentes:
s ≥ 0,
m ≥ 0.
Las otras restricciones vienen dadas por la capacidad de trabajo de los departamentos de corte y ensamble. El
costo en horas×hombre de corte de producir s sillas y m mesas es c(s, m) = s + m. Dado que hay disponibles 90
horas×hombre, tenemos una restricción:
s + m ≤ 90.
Una consideración similar acerca del costo del ensamble e(s, m) = s + 2m nos da una segunda restricción:
s + 2m ≤ 120.
La función objetivo, que es el valor de mercado de la producción es, en decenas de miles de pesos 5s + 8m. El
problema anterior puede entonces plantearse como:
Maximizar la función objetivo:
f (s, m) = 5s + 8m
sometida a las restricciones:
s ≥ 0
m ≥ 0
s + m ≤ 90
s + 2m ≤ 120
Solución gráfica: Un problema de optimización que involucra únicamente a dos variables instrumentales puede
resolverse de forma gráfica. Cada una de las restricciones determina un semiplano. Por ejemplo la restricción
s + m ≤ 90 nos dá:
1
m
s + m ≥ 90
s + m ≤ 90
s
Al considerar todas las restricciones simultáneamente delimitamos la región admisible dentro del plano. En el problema anterior, esta es la región delimitada por las rectas:
s = 0,
m = 0,
s + m = 90,
s + 2m = 120.
Esta región tiene unos vértices que podemos calcular como las intersecciones dos a dos, de las rectas anteriores,
siempre y cuando esta intersección satisfaga también todas las otras restricciones. Estos pueden verse en la figura:
m
0
60
s + 2m = 120
60
30
s=0
s + m = 90
0
0
90
0
s
m=0
Finalmente podemos evaluar la función objetivo en los diferentes vértices, obteniendo:
f (0, 0) = 0,
f (0, 60) = 480,
f (60, 30) = 540,
f (90, 0) = 450.
De todas las posibilidades, la que da un mayor beneficio es fabricar 60 sillas y 90 mesas.
Para
percatarnos de este
5
hecho, bastarı́a observar que la función objetivo 5s + 8m crece en la dirección del vector
.
8
2


5
8


Problemas con más variables: En los problemas aplicados, generalmente manejamos más de dos variables instrumentales. Por ejemplo, consideremos el problema:
Minimizar la función objetivo:
f ( x, y, z) = 5x − y + 2z
sometida a las restricciones:
x ≥ 0
y ≥ 0
z ≥ 1
x+y+z ≤ 3
x+y ≤ 5
Hay un total 5 restricciones lineales. Hay 10 maneras diferentes de elegir 3 ecuaciones de la lista x = 0, y = 0, z =
1 , x + y + z = 3, x + y = 5. Cada uno de estos sistemas de 3 ecuaciones, si es compatible determinado, nos da un
punto de R3 . Si además, este punto satisface las restricciones, resulta ser un vértice de la región admisible.
Por ejemplo, el punto [0, 0, 1] T es un vértice, pues es la solución de las tres primeras ecuaciones, y verifica todas
las restricciones. Sin embargo si tomamos x = 0, z = 1, x + y = 5 obtenemos el punto [0, 5, 1] T que no está en la
región admisible pues no verifica la restricción x + y + z ≤ 3.
Si procedemos a calcular todos los posibles vértices, obtenemos:
1. Ecuaciones 1, 2 y 3: La solución es el punto [0, 0, 1] T que verifica todas las restricciones y por tanto es un vértice.
2. Ecuaciones 1, 2 y 4: La solución es el punto [0, 0, 3] T que verifica todas las restricciones y por tanto es un vértice.
3. Ecuaciones 1, 2 y 5: El sistema es incompatible.
4. Ecuaciones 1, 3 y 4: La solución es [0, 2, 1] T que verifica todas las restricciones y por tanto es un vértice.
5. Ecuaciones 1, 3 y 5: La solución es [0, 5, 1] T que no verifica la cuarta restricción, y por tanto no está en la región
admisible.
6. Ecuaciones 1, 4 y 5: La solución es [0, 5, −2] T que no verifica la tercera restricción, y por tanto no está en la
región admisible.
7. Ecuaciones 2, 3 y 4: La solución es [2, 0, 1] T que verifica todas las restricciones y por tanto es un vértice.
8. Ecuaciones 2, 3 y 5: La solución es [5, 0, 1] T que no verifica la cuarta restricción, y por tanto no está en la región
admisible.
3
9. Ecuaciones 2, 4 y 5: La solución es [5, 0, 3] T que no verifica la cuarta restricción, y por tanto no está en la región
admisible.
10. Ecuaciones 3, 4 y 5: El sistema es incompatible.
Lo que nos deja la lista de los vértices de la región: [0, 0, 1] T , [0, 0, 3] T , [0, 2, 1] T , [2, 0, 1] T . Evaluando la función
objetivo en estos puntos, obtenemos:
f (0, 0, 1) = 2,
f (0, 0, 3) = 6,
f (0, 2, 1) = 0,
f (2, 0, 1) = 8.
De manera que la función se minimiza en [0, 2, 1] donde toma un valor de 0.
Problemas en forma estándar: Como hemos visto, el problema de optimización lineal se hace muy complejo
a medida que crece el número de variables. Por este motivo existen métodos para tratar estos problemas computacionalmente. Es habitual trabajar con el algoritmo del Simplex, que está implementado en la mayorı́a de los
programas de cálculo. Para que el algoritmo pueda comenzar, debe recibir el problema de una manera especial,
llamada la forma estándar, que es como sique:
Minimizar la función objetivo:
f (x) = c T x
sometida a las restricciones:
x ≥ 0,
Ax = b
donde:
• x es el vector de las n variables de estado.
• c es un vector de Rn .
• A es una matriz m × n.
• b es un vector de Rm sin componentes negativas.
En el problema en forma estándar, las únicas restricciones dadas por desigualdades son las que dicen que las
variables instrumentales son positivas. El resto de las restricciones están dadas por igualdades.
Escribir un problema en forma estándar: Un problema donde las variables instrumentales son positivas puede
transformarse a forma estándar de la siguiente manera.
• Para cada restricción de la forma:
a1 x1 + . . . + an xn ≤ b,
agregamos una nueva variable z y cambiamos la restricción anterior por:
a1 x1 + . . . + an xn + z = b,
z≥0
y si es necesario multiplicamos la ecuación por −1.
• Para cada restricción de la forma:
a1 x1 + . . . + an xn ≥ b,
agregamos una nueva variable z y cambiamos la restricción anterior por:
a1 x1 + . . . + an xn − z = b,
z≥0
y si es necesario multiplicamos la ecuación por −1.
• Si es necesario, la maximización de la función f (x) se convierte en la minimización de la función − f (x).
4
Ejemplo: Llevemos a forma estándar el problema anterior: Maximizar la función objetivo:
f (s, m) = 5s + 8m
sometida a las restricciones:
s ≥ 0
m ≥ 0
s + m ≤ 90
s + 2m ≤ 120
Debemos considerar dos variables nuevas z, w para las últimas restricciones. Estas se convierten en:
s + m + z = 90,
s + 2m + w = 120.
Lo que expresado en forma estándar es minimzar la función:
g(s, m, z, w) = −5s − 8m
sometida a las restricciones:
 
0
s
 m   0
 

 z ≥ 0
0
w



,


s

90
1 1 1 0 
 m =
120
1 2 0 1  z 
w

Los vértices en forma estándar: Supongamos que escalonamos la matrix [ A|b] de manera que obtenemos la
matriz escalonada reducida [ A0 |b0 ], de manera que las variables pivote son xi1 , . . . xim . Entonces, si b0 es no negativo,
el vector cuyas componentes xi j valen bi0j y el resto son nulas, es un vértice de la región admisible del problema. Los
vértices se obtienen escalonando [ A|b] de todas las maneras posibles.
Ejemplo: Considerando el problema en forma estándar anterior, calculamos todas las posibles formas escalonadas reducidas de las submatrices 2 × 2 de la matriz
1 1 1 0 90
1 2 0 1 120
lo que da lugar a todos los posibles vértices:
1 0 2 −1 60
1.
que da el punto [60, 30, 0, 0] T que es un vértice.
0 1 −1 1 30
1 2 0 1
120
2.
que da el punto [120, 0, −30, 0] T que no es un vértice, pues tiene una componente
0 −1 1 −1 −30
negativa.
1 1 1 0 90
que da el punto [90, 0, 0, 30] T que es un vértice.
3.
0 1 −1 1 30
1/2 1 0 1/2 60
que da el punto [0, 60, 30, 0] T que es un vértice.
4.
1/2 0 1 −1/2 30
1 1 1 0 90
5.
que da el punto [0, 90, 0, −60] T que no es un vértice, pues tiene una componente
−1 0 −2 1 −60
negativa.
1 1 1 0 90
6.
que da el punto [0, 0, 9, 120] T que es un vértice.
1 2 0 1 120
Notese que los cuatro vértices en el espacio 4-dimensional s, m, z, w se proyectan en el plano s, m sobre los cuatro
vértices del dibujo anterior.
5
Descargar