Title: Tier II: Casos de Estudio
1(No Transcript)
2Tier II Casos de Estudio
- Sección 1
- Software de Optimización Lingo
3Software 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
4Software de Optimización
- 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
5Software de Optimización
- 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.htmllingof.html
6Lingo
- 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 3x2 es y 3x2
7Operadores 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 Xn
- Igual
- Mayor o menor que gt o lt
- Nota Lingo acepta lt como lt. Esto no es
estrictamente menor que o mayor que.
8Operadores Lingo(Continuación)
- Valor absoluto de x _at_abs(x)
- Logaritmo Natural de x _at_log(x)
- Funciones Trigonométricas _at_sin(x), _at_cos(x),
_at_tan(x) (x in radians) - Exponenciales _at_exp(x)
- Dar la porción entera de un número decimal
_at_floor(x) - _at_sign(x) da -1 si x lt 0, de otra manera da 1
9Operadores Lingo(Continuación)
- Encontrar el valor mayor o menor en un grupo
_at_smax(x1,x2,xn) o _at_smin(x1,x2,xn) - Encontrar el máximo o mínimo de una función max
o min - Permitir variables negativas _at_free(x)
- Lingo contiene otros operadores, pero estos son
los operadores matemáticos probablemente más
usados
10Usando 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
11Pantalla de Lingo
Solve para resolver el grupo de problemas
actuales
Si se requiere ayuda adicional
12Solver de Ecuaciones Básicas
Este encontrará la intersección de las líneas y
3x 4 y y 5x 1
13Solución
Solución Factible encontrada en la iteración
Nota Lingo no distingue entre letras mayúsculas
y minúsculas
14Solver de Ecuaciones 2
! Esto es para encontrar donde la línea y x
cruza la parábola y (x 5) 2
15Solución 2
Solución Factible encontrada en la iteración
116
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.
16Solución 2
17Dificultades 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
18Má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
19Resolviendo 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
20Ejemplo de Planta Química
- Objetivo Maximizar 1000x1 1500x2
- Restricciones
- 4x1 2x2 lt 80
- 2x1 5x2 lt 60
- 4x1 4x2 lt 75
- x1, x2 gt 0
21Ejemplo de Planta Química
! Problema 1 ! Función Objetivo
! Restricciones
22Solución de Lingo
23Problema de Esquema de Transportación
! Problema 2 ! Función Objetivo
! Restricciones
24Solución del Problema 2
25Valores 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) - _at_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
26Intentando 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
27Intentando Obtener una Solución Negativa
! Muestra 6 ! Función Objetivo
! Restricciones
28Intentando Obtener una Solución Negativa
29Intentando Obtener una Solución Negativa
! Muestra 6 ! Función Objetivo
! Restricciones
30Intentando Obtener una Solución Negativa
31Mayor que o Menor que
- Otro problema potencial que será encontrado al
usar Lingo es que éste maneja lt de igual manera
que lt, y gt igual que gt - Por lo tanto, si una variable debe ser
estrictamente mayor que un valor, la restricción
debe ser tratada como sigue - Para x gt A, donde A es una solución diferente
usa x gt A b - donde b es un valor arbitrario, como 0.1, que
cubre una porción donde la solución no se
encuentra
32Ejemplo de lt o gt
! Muestra 3 ! Función Objetivo
! Restricciones
33Ejemplo de lt o gt
34Ejemplo de lt o gt
! Muestra 3 ! Función Objetivo
! Restricciones
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.
35Ejemplo de lt o gt
36Conclusiones
- 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