En relación con el programa del que os hablé en el post anterior, os dejo con algunos ejemplos resueltos (con sus respectivos ejemplos).
Os advierto que los hice ya hace tiempo, y no sé si la versión que os dejo es la final (diría que sí). De todas formas se comprueba fácilmente, pues las soluciones están en los enunciados. La verdad, no me apetece comprobarlo... si veis errores indicádmelo y trato de, bien arreglarlo (cuando tenga tiempo, uffff) o bien buscar la versión correcta.
EJEMPLO 1: FORMULACIÓN DISYUNTIVA 1
Plantear y resolver un MINLP para el siguiente problema de optimización escrito en forma disyuntiva.
Como nos pide el enunciado, resolvemos el problema con un MINLP, por tratarse de un sistema no lineal y además tiene componentes binarias (y1, y2, y3, y4, y5). Como objetivo del problema, tendremos que transformar lo escrito en forma disyuntiva, a expresiones algebraicas. Para ello, podremos utilizar dos métodos (“envolvente convexa” o “formulación de la “M grande”). Pudiendo utilizar para un mismo problema ambos métodos a la vez.
Esto último (resolución con ambos métodos a la vez) lo veremos en el siguiente apartado.
Ahora, nos centraremos en plantear el sistema con el método de la M grande que a pesar de que busca la solución de forma menos directa, será el único que podremos usar en las ecuaciones NO LINEALES.
Ahora, pasaremos a expresar todo lo anterior a expresiones algebraicas:
“y1”,” y2”, componentes binarias.
Ecuaciones a añadir en el programa GAMS:
Ahora ya tenemos todas las expresiones algebraicas. Tenemos así:
12 variables: x1, x2, x3, x4, y1, y2, y3, y4, y5, c1, c2, z
o De las que cinco serán binarias: y1, y2, y3, y4, y5.
o Cuatro serán variables positivas: x1, x2, x3, x4
24 ecuaciones:
o De las que 16 serán las representadas anteriormente,
o Una la función objetivo
Tres ecuaciones serán: o Cuatro que indicarán que
En el caso de la M grande, supondremos un valor aproximado de 100.
Dicho valor ha de ser lo suficientemente grande, pero no infinito. Para hallar el verdadero valor de M, deberíamos ir suponiendo valores de M aumentando su valor a medida que la “z” vaya disminuyendo (la solución vaya disminuyendo).
Una vez que variando el valor de M no conseguimos variaciones en el resultado de la solución, habríamos encontrado M.
SOLUCIONES
En el apartado segundo, nos centraremos en resolver el sistema del mismo modo que en el caso anterior, con la salvedad de que ahora utilizaremos tanto el método de la envolvente convexa como el de la M grande para pasar las expresiones de la forma disyuntiva a algebraica.
Utilizaremos pues, el método de la M grande para las expresiones NO LINEALES y el método de la envolvente convexa para las LINEALES:
El resto de ecuaciones serán las mismas que en el apartado anterior. Las soluciones así obtenidas, son las mismas que en el caso anterior:
z=4,717.
C1=5.000 C2=3.000 Y1=y4=1.000
Y2=y3=y5=0 X1=4.000 X2=x3=1.609
X4=1.918
SOLUCIONES DEL PROGRAMA “GAMS”
Con M grande para no lineales y con envolvente convexa para lineales:
En conclusión, para con seguir una función objetivo mínima, ha optado por el camino de la “y1” y de la “y4”. Ya que estas tienen un valor de uno, consiguiendo los valores de ci, xi que vemos en las tablas anteriores, y que en ambos casos dan iguales resultados.
Aquí con el enlace del enunciado: http://www.megaupload.com/?d=QCIBTK90
Bueno, cuando tenga tiempo seguiré colgando programas de éstos de mayor complejidad.
No hay comentarios:
Publicar un comentario