Optimización de Procesos
description
Transcript of Optimización de Procesos
![Page 1: Optimización de Procesos](https://reader034.fdocument.pub/reader034/viewer/2022042616/5681433c550346895dafaf53/html5/thumbnails/1.jpg)
Optimización de Procesos
![Page 2: Optimización de Procesos](https://reader034.fdocument.pub/reader034/viewer/2022042616/5681433c550346895dafaf53/html5/thumbnails/2.jpg)
Tier II: Casos de Estudio
Sección 1:
Software de Optimización Lingo
![Page 3: Optimización de Procesos](https://reader034.fdocument.pub/reader034/viewer/2022042616/5681433c550346895dafaf53/html5/thumbnails/3.jpg)
Software de Optimización
• Muchos de los métodos de optimización previamente vistos pueden ser tediosos y requieren mucho trabajo para resolverse, especialmente cuando los modelos se vuelven más complejos y tienen dos o tres variables, que será el caso frecuentemente.
• Un Software puede ser usado para resolver estos problemas más eficientemente
![Page 4: Optimización de Procesos](https://reader034.fdocument.pub/reader034/viewer/2022042616/5681433c550346895dafaf53/html5/thumbnails/4.jpg)
• Los Softwares disponibles comúnmente usan los métodos revisados previamente, pero por supuesto llevan a cabo los cálculos más rápido, permitiendo fácilmente el efecto de variaciones en el modelo a ser estudiado
Software de Optimización
![Page 5: Optimización de Procesos](https://reader034.fdocument.pub/reader034/viewer/2022042616/5681433c550346895dafaf53/html5/thumbnails/5.jpg)
• Ya se han mostrado algunos ejemplos de optimización usando Excel
• Otro programa, Lingo, será mostrado a continuación
• Una versión de prueba de ese software puede ser descargada en el sitio www.lindo.com/cgi/frameset.cgi?leftlingo.html;lingof.html
Software de Optimización
![Page 6: Optimización de Procesos](https://reader034.fdocument.pub/reader034/viewer/2022042616/5681433c550346895dafaf53/html5/thumbnails/6.jpg)
Lingo
• Lingo es un programa diseñado específicamente para resolver problemas de optimización
• Usa una sintaxis que es similar a lo que sería escrito a mano, o a lo que sería usado en Excel, sin requerir variables a ser declaradas
• Por ejemplo, y = 3*x^2 es y = 3x2
![Page 7: Optimización de Procesos](https://reader034.fdocument.pub/reader034/viewer/2022042616/5681433c550346895dafaf53/html5/thumbnails/7.jpg)
Operadores Lingo
• Muchos de los operadores Matemáticos de Lingo son similares a los que usa Excel:– Adición: + - Multiplicación: *– Sustracción: - - División: /– Para exponentes: X^n– Igual: =– Mayor o menor que: > o <
• Nota: Lingo acepta ‘<’ como ‘<=’. Esto no es estrictamente menor que o mayor que.
![Page 8: Optimización de Procesos](https://reader034.fdocument.pub/reader034/viewer/2022042616/5681433c550346895dafaf53/html5/thumbnails/8.jpg)
Operadores Lingo(Continuación)
• Valor absoluto de x: @abs(x)• Logaritmo Natural de x: @log(x)• Funciones Trigonométricas: @sin(x),
@cos(x), @tan(x) (x in radians)• Exponenciales: @exp(x)• Dar la porción entera de un número
decimal: @floor(x)• @sign(x): da -1 si x < 0, de otra manera
da 1
![Page 9: Optimización de Procesos](https://reader034.fdocument.pub/reader034/viewer/2022042616/5681433c550346895dafaf53/html5/thumbnails/9.jpg)
• Encontrar el valor mayor o menor en un grupo: @smax(x1,x2…,xn) o @smin(x1,x2…,xn)
• Encontrar el máximo o mínimo de una función: max o min
• Permitir variables negativas: @free(x)• Lingo contiene otros operadores, pero
estos son los operadores matemáticos probablemente más usados
Operadores Lingo(Continuación)
![Page 10: Optimización de Procesos](https://reader034.fdocument.pub/reader034/viewer/2022042616/5681433c550346895dafaf53/html5/thumbnails/10.jpg)
Usando Lingo
• Otros operadores, como los operadores lógicos, pueden encontrarse en la lista completa de operadores en el archivo ayuda (help)
• Ahora que tenemos los operadores matemáticos más usados, podemos demostrar como Lingo trabaja con algunos ejemplos
• Lingo puede ser usado estrictamente como un solver de ecuaciones o como un optimizador
![Page 11: Optimización de Procesos](https://reader034.fdocument.pub/reader034/viewer/2022042616/5681433c550346895dafaf53/html5/thumbnails/11.jpg)
Pantalla de LingoSolve – para resolver
el grupo de problemas actuales
Si se requiere ayuda adicional
Estas son las funciones más importantes de Lingo, y probablemente las únicas que necesitarás;
![Page 12: Optimización de Procesos](https://reader034.fdocument.pub/reader034/viewer/2022042616/5681433c550346895dafaf53/html5/thumbnails/12.jpg)
Exclamación para una línea de comentario;Cada línea debe terminar con un punto y coma;
Solver de Ecuaciones Básicas
Este encontrará la intersección de las líneas “y = 3x + 4” y
“y = 5x + 1”
![Page 13: Optimización de Procesos](https://reader034.fdocument.pub/reader034/viewer/2022042616/5681433c550346895dafaf53/html5/thumbnails/13.jpg)
Solución
Nota: Lingo no distingue entre letras mayúsculas y minúsculas
Solución Factible encontrada en la iteración:Solución Factible encontrada en la iteración:
![Page 14: Optimización de Procesos](https://reader034.fdocument.pub/reader034/viewer/2022042616/5681433c550346895dafaf53/html5/thumbnails/14.jpg)
Solver de Ecuaciones #2
! Esto es para encontrar donde la línea “y = x” cruza la parábola “y = (x – 5) ^ 2” ;
![Page 15: Optimización de Procesos](https://reader034.fdocument.pub/reader034/viewer/2022042616/5681433c550346895dafaf53/html5/thumbnails/15.jpg)
Solución #2
Solo una solución fue encontrada. Deben existir dos soluciones para
este problema. El solver automáticamente se detiene cuando encuentra la primera
solución.
Solución Factible encontrada en la iteración:Solución Factible encontrada en la iteración: 116116
![Page 16: Optimización de Procesos](https://reader034.fdocument.pub/reader034/viewer/2022042616/5681433c550346895dafaf53/html5/thumbnails/16.jpg)
Solución #2
-5
0
5
10
15
20
-5 0 5 10 15
X
Y
3.2087
3.2087
7.791
7.791
![Page 17: Optimización de Procesos](https://reader034.fdocument.pub/reader034/viewer/2022042616/5681433c550346895dafaf53/html5/thumbnails/17.jpg)
Dificultades No Lineales
• Lingo no está diseñado para tratar con ecuaciones no lineales
• No puede encontrar soluciones múltiples
• Existe un inconveniente al resolver problemas no lineales, especialmente si la solución se encuentra en el dominio negativo
![Page 18: Optimización de Procesos](https://reader034.fdocument.pub/reader034/viewer/2022042616/5681433c550346895dafaf53/html5/thumbnails/18.jpg)
Máximo y Mínimo
• Las funciones máximo y mínimo son las funciones más importantes necesarias para problemas de optimización
• Estas funciones son usadas como sigue:
max = función objetivo;
min = función objetivo;
![Page 19: Optimización de Procesos](https://reader034.fdocument.pub/reader034/viewer/2022042616/5681433c550346895dafaf53/html5/thumbnails/19.jpg)
Resolviendo Problemas de Optimización
• Varios ejemplos de optimización que se trabajaron en secciones previas ahora serán resueltos usando Lingo
• El primer ejemplo es de la sección de introducción
![Page 20: Optimización de Procesos](https://reader034.fdocument.pub/reader034/viewer/2022042616/5681433c550346895dafaf53/html5/thumbnails/20.jpg)
Ejemplo de Planta Química
• Objetivo: Maximizar 1000x1 + 1500x2
• Restricciones:4x1 + 2x2 <= 80
2x1 + 5x2 <= 60
4x1 + 4x2 <= 75
x1, x2 >= 0
![Page 21: Optimización de Procesos](https://reader034.fdocument.pub/reader034/viewer/2022042616/5681433c550346895dafaf53/html5/thumbnails/21.jpg)
Ejemplo de Planta Química
! Restricciones;
! Problema# 1;! Función Objetivo;
![Page 22: Optimización de Procesos](https://reader034.fdocument.pub/reader034/viewer/2022042616/5681433c550346895dafaf53/html5/thumbnails/22.jpg)
Solución de Lingo
Solución, incluyendo el valor
de la función objetivo en el óptimo y en el punto óptimo
![Page 23: Optimización de Procesos](https://reader034.fdocument.pub/reader034/viewer/2022042616/5681433c550346895dafaf53/html5/thumbnails/23.jpg)
Problema de Esquema de Transportación
! Restricciones;
! Problema# 2;! Función Objetivo;
![Page 24: Optimización de Procesos](https://reader034.fdocument.pub/reader034/viewer/2022042616/5681433c550346895dafaf53/html5/thumbnails/24.jpg)
Solución del Problema #2
![Page 25: Optimización de Procesos](https://reader034.fdocument.pub/reader034/viewer/2022042616/5681433c550346895dafaf53/html5/thumbnails/25.jpg)
Valores Negativos
• Lingo no puede resolver automáticamente para una variable negativa
• Si se sospecha que una solución será negativa, entonces esa variable necesitará ser declarada específicamente como libre (free) :
@free(x);• Es una buena idea declarar todas las variables
como se indicó arriba, a menos por supuesto que un valor negativo no sea factible
![Page 26: Optimización de Procesos](https://reader034.fdocument.pub/reader034/viewer/2022042616/5681433c550346895dafaf53/html5/thumbnails/26.jpg)
Intentando Obtener una Solución Negativa
• El siguiente ejemplo demostrará que pasa si un valor negativo es requerido para obtener una solución óptima
• Lingo automáticamente resolverá para la solución óptima obtenida solo de variables positivas, incluso si éste no es el verdadero óptimo
![Page 27: Optimización de Procesos](https://reader034.fdocument.pub/reader034/viewer/2022042616/5681433c550346895dafaf53/html5/thumbnails/27.jpg)
Intentando Obtener una Solución Negativa
! Restricciones;
! Muestra # 6;
! Función Objetivo;
![Page 28: Optimización de Procesos](https://reader034.fdocument.pub/reader034/viewer/2022042616/5681433c550346895dafaf53/html5/thumbnails/28.jpg)
Esta solución es viable si los valores de la
variable deben ser positivos,
pero éste no es el óptimo verdadero
Intentando Obtener una Solución Negativa
![Page 29: Optimización de Procesos](https://reader034.fdocument.pub/reader034/viewer/2022042616/5681433c550346895dafaf53/html5/thumbnails/29.jpg)
Estos enunciados permiten el uso de valores negativos para
estas variables
Intentando Obtener una Solución Negativa
! Restricciones;
! Muestra # 6;! Función Objetivo;
![Page 30: Optimización de Procesos](https://reader034.fdocument.pub/reader034/viewer/2022042616/5681433c550346895dafaf53/html5/thumbnails/30.jpg)
Ahora el óptimo verdadero es obtenido, con
variables negativas
Intentando Obtener una Solución Negativa
![Page 31: Optimización de Procesos](https://reader034.fdocument.pub/reader034/viewer/2022042616/5681433c550346895dafaf53/html5/thumbnails/31.jpg)
Mayor que o Menor que
• Otro problema potencial que será encontrado al usar Lingo es que éste maneja < de igual manera que <=, y > igual que >=
• Por lo tanto, si una variable debe ser estrictamente mayor que un valor, la restricción debe ser tratada como sigue:– Para x > A, donde A es una solución diferente usa
x > A + b;
donde b es un valor arbitrario, como 0.1, que cubre una porción donde la solución no se encuentra
![Page 32: Optimización de Procesos](https://reader034.fdocument.pub/reader034/viewer/2022042616/5681433c550346895dafaf53/html5/thumbnails/32.jpg)
Ejemplo de < o >
! Restricciones;
! Muestra # 3;! Función Objetivo;
![Page 33: Optimización de Procesos](https://reader034.fdocument.pub/reader034/viewer/2022042616/5681433c550346895dafaf53/html5/thumbnails/33.jpg)
Claramente, este valor no es
correcto puesto que X1 está restringida a
valores mayores que 0
Ejemplo de < o >
![Page 34: Optimización de Procesos](https://reader034.fdocument.pub/reader034/viewer/2022042616/5681433c550346895dafaf53/html5/thumbnails/34.jpg)
Ahora se forzará a X1 y X2 a ser mayores que 0. Podemos hacer esto porque sabemos
que X1 y X2 también son mayores que 0.1.
Ejemplo de < o >
! Restricciones;
! Muestra # 3;! Función Objetivo;
![Page 35: Optimización de Procesos](https://reader034.fdocument.pub/reader034/viewer/2022042616/5681433c550346895dafaf53/html5/thumbnails/35.jpg)
Las variables ahora obedecen las restricciones
deseadas. Es una coincidencia que el valor objetivo sea
el mismo que en el caso anterior.
Ejemplo de < o >
![Page 36: Optimización de Procesos](https://reader034.fdocument.pub/reader034/viewer/2022042616/5681433c550346895dafaf53/html5/thumbnails/36.jpg)
Conclusiones
• Lingo es efectivo y eficiente para la resolución de problemas de optimización si éstos son lineales
• No está diseñado para trabajar con problemas no lineales
• No es muy bueno para trabajar con problemas no lineales, por lo que éstos deben ser atacados con precaución
• No maneja muy bien los puntos múltiples máximos o mínimos en casos no lineales