UNIVERSIDAD DE CONCEPCION FACULTAD DE INGENIERIA AGRICOLA DEPARTAMENTO DE RECURSOS HIDRICOS Publicaciones para apoyo docente Ricardo Matta Canga. USO DE GAMSIDE El Sistema General de Modelación Algebraica (General Algebraic Modeling System GAMS) esta diseñado específicamente para modelar problemas de optimización tanto lineales, no lineales o de enteros mezclados. El sistema es especialmente útil para problemas que sean grandes y complejos. GAMS esta disponible en versiones para computadores personales, estaciones de trabajo, bases de datos y súper computadores. GAMS le permite al usuario concentrarse en el problema a modelar haciendo que el planteamiento del problema sea simple. El sistema se toma el trabajo en los detalles que consumen más tiempo de maquinas especificas e implementación de software. GAMS es especialmente útil para problemas únicos que sean grandes y complejos que pueden necesitar muchas revisiones antes de establecer el modelo final. El sistema modela problemas en una manera compacta y natural. El usuario puede cambiar la formulación del problema con facilidad, cambiar de un tipo de solución a otro y hasta convertir el problema de lineal a no lineal sin problemas. Qué es GAMSIDE? Generalizad Algebraic Modeling System + Integrated Development Environment. Esta versión de GAMS es una interfase gráfica para Windows. GAMS es usado en dos etapas: Primera, se usa un editor de texto para crear un archivo.gms que tiene las instrucciones GAMS. Segunda, se usa un comando que ejecuta estas instrucciones, realiza los cálculos, resuelve y genera un archivo.lst con los resultados. Para realizar estas etapas se utiliza el GAMSIDE. Existen dos versiones de GAMSIDE, la que se utilizará en este taller es gratuita, tiene limitaciones en el número de variables, restricciones y modelos que dispone, sin embargo son suficientes para los modelos que se utilizan habitualmente en Ingeniería Agrícola. 1. Instale GAMSIDE en su computador. Para bajar Gams http://www.gams.com o ejecutar setup.exe de archivos comprimidos. Por defecto se crea carpeta GAMS22.3 en Archivos de Programas, una carpeta gamsdir, una subcarpeta projdir en Mis Documentos y un icono de acceso directo. 2. Abra el programa con el icono correspondiente 3. Seleccione File - Proyect - New Proyect. El propósito de un Nuevo Proyecto es determinar donde y como serán guardados los archivos asociados al modelo. Defina nombre de Proyecto (Taller1, por ejemplo) y localización en subcarpeta projdir. Debe copiar los archivos.gms en esta subcarpeta. 4. Una vez creado el proyecto debe crear un nuevo archivo.gms o abrir alguno existente. Para efectos de este taller sea abrirá un archivo existente. Seleccione File – Open, Surco1.gms en este caso. Por defecto se abrirá la ventana donde se creó el proyecto Observe la extensión *.gms del archivo, este es el archivo para editar el modelo, léalo y revíselo, luego podrá modificarlo según nuevas restricciones. Recorra el menú principal y observará que se han habilitado algunos comandos para editar el modelo surco1.gms. En Anexo una breve explicación de los principales comandos de edición. 6. Ejecute el archivo seleccionando File – Run , aparecerá una ventana no active process En esta ventana leerá detalles sobre la compilación, generación y ejecución del modelo. Además la factibilidad de la solución y resultado de la función objetivo. Abra (open Log) o cierre (close) la ventana. 7. Maximice ventana de atrás y seleccione Surco1.lst este es el archivo de resultados del modelo, recórralo en su totalidad especialmente la sección Solve Summary . En Anexo una breve explicación de los principales comandos de resultados. 8. Ahora puede realizar modificaciones en Surco1.gms y guardar como (File Save as) Surco2.gms, por ejemplo. ANEXO 1. Comandos básicos de GAMS: * para comentarios, no computable, se puede ubicar en cualquier lugar del modelo. $ TITLE reconoce como título lo escrito en la línea y se imprime en todas las páginas del archivo .LST. VARIABLES, se utiliza para declarar y asignar el tipo de las variables de decisión y acepta cualquier letra, excepto los acentos. EQUATIONS, utilizada para declarar y definir las ecuaciones de la función objetivo y restricciones, acepta cualquier letra, excepto acentos. MODEL, expresión que define el modelo, el que puede tener cualquier nombre. SOLVE, expresión que resuelve el modelo definido en MODEL. OPTION DECIMALS=0, permite obtener resultados sin decimales en comando DISPLAY. DISPLAY, muestra el valor primal (.L) y marginal ó dual (.M) de las variables con los nombres definidos en VARIABLES; es una expresión optativa y en archivo.gms se escribe: DISPLAY X.L, X.M; Una vez formulado y guardado su modelo, ejecútelo, por defecto el archivo de resultados archivo.lst se guardará en la misma carpeta de archivo.gms. Para observar donde están los errores o ver los resultados abra archivo.lst en la página SOLVE SUMMARY. ***OBJETIVE VALUE 5300.000 Este es el valor de la función objetivo. EXIT-OPTIMAL SOLUTION FOUND Corresponde al tipo de solución encontrada. --- EQU. Corresponde a los valores obtenidos en la función objetivo y restricciones: La columna LOWER indica el valor más bajo del recurso que podría utilizar en el modelo. La columna LEVEL indica la cantidad de recurso utilizado por el modelo. La columna UPPER indica la cantidad de recurso disponible en el modelo. La columna MARGINAL es la Solución Dual o Precio Sombra y es la tasa o cantidad en que se incrementa la función objetivo, si se aumenta en una unidad la cantidad del recurso disponible en alguna restricción. El Punto (.) significa que el valor es cero. EPS significa que el valor es muy cercano a cero. ---VAR. Corresponde a los valores obtenidos en las variables de decisión. Las columnas LOWER y UPPER indican el rango que se puede lograr de las variables de decisión. La columna LEVEL indica el valor o la cantidad de la variable de decisión correspondiente. La columna MARGINAL para las variables indica que es una variable básica si aparece un punto (.). Si aparece una cifra, esta indica el aumento y/o disminución de función objetivo, si se “obliga” al modelo a producir una unidad de esa variable, es decir X2.LO=1. La forma de limitar las variables de decisión es con el uso de la extensión .LO o UP: X1.LO=3 significa que el modelo debe considerar como resultado 3 o más unidades. X1.UP=20 significa que el modelo debe considerar como resultado 20 o menos unidades. En programación no lineal, especialmente, es conveniente que el modelo resuelva el problema dentro de los límites de las variables, para esto es necesario que se asigne al modelo un valor inicial de la siguiente forma X1.L=3, esto permite a SOLVER iniciar los cálculos desde 3 unidades de la variable de decisión. ***REPORT SUMMARY 0 NONOPT (no óptima) 0 INFEASIBLE (no factible) 0 UNBOUNDED (ilimitada) En este breve informe el cero (0) indica que la solución es óptima, factible y limitada, en caso contrario aparece la cantidad de filas y/o columnas (recuerde algoritmo Simples) cuya solución no es óptima, no es factible o es ilimitada. 2. DISEÑO OPTIMO DEL RIEGO POR SURCOS. INTRODUCCION La agricultura es la actividad que consume mayor cantidad de agua, sin embargo la eficiencia de su utilización es la mas baja. El propósito de este trabajo es analizar los métodos de aplicación de agua y desarrollar modelos de optimización para sistemas de riego superficial que mejore la eficiencia del uso del agua y aumente las utilidades del manejo agrícola. MATERIALES Y METODOS. El desarrollo de un modelo para el diseño óptimo de un sistema de riego superficial requiere que las relaciones entre las variables de diseño y la utilidad, sean conocidas. Para encontrar estas relaciones se debe considerar la programación del riego, requerimientos de agua del cultivo, las variables de diseño del método de riego, el rendimiento del cultivo, el costo del riego, las relaciones entre los parámetros del riego y las variables de diseño y las relaciones entre los parámetros del riego y las utilidades. Como se mencionaba al principio, el objetivo de un diseño de riego es maximizar las utilidades. La función objetivo seleccionada está compuesta de una función exponencial y relaciones matemáticas entre la eficiencia de distribución del requerimiento de agua del cultivo y las variables de diseño, sobre la base que la eficiencia de distribución del requerimiento de agua es la distribución del agua en el suelo. *Modelo de optimización del riego superficial Versión GAMS $TITLE OPTIMIZACION DEL RIEGO POR SURCOS * *VARIABLES y ECUACIONES VARIABLES Q Caudal FE Longitud del surco TCO Tiempo de corte NF Número de surcos NR Número de corridas NS Número de set P Utilidad; EQUATIONS MOF Función objetivo DIS Volumen infiltración mínimo WAT Agua disponible LFI Longitud del surco ARE Superficie irrigada TIM Tiempo de riego por set AFM Eficiencia máxima AFI Eficiencia mínima; MOF.. DIS.. WAT.. LFI.. ARE.. TIM.. AFM.. AFI.. P=E=(Q**0.706)*(FE**(-0.645))*(TCO**0.809)*1000; Q*(FE**(-1.02))*(TCO**0.26)=G=25.0; Q*NF=L=32000.0; FE*NR=E=800.00; FE*NF*NS=G=20000.0; TCO*NS=L=1200.0; ((Q**0.706)*(FE**(-0.645))*(TCO**0.809))/7.75=L=100; ((Q**0.706)*(FE**(-0.645))*(TCO**0.809))/7.75=G=20; *LÍMITES DE LAS VARIABLES Q.LO = 700.0; Q.UP = 1300.0; FE.LO = 50.0; FE.UP = 800.0; TCO.LO = 1.0; TCO.UP = 1200.0; NF.LO = 1.0; NF.UP = 400.0; NR.LO = 1.0; NR.UP = 16.0; NS.LO = 1.0; NS.UP = 400.0; MODEL SURCO/ALL/; SOLVE SURCO USING NLP MAXIMIZING P; DISPLAY P.L, Q.L, FE.L, TCO.L, NF.L, NR.L, NS.L; RESULTADOS Y DISCUSION. El modelo de optimización considera todos los factores para el diseño del sistema. Esta representación de la realidad permite utilizar este modelo para el diseño de riego por surcos y bordes. El diseño de criterio usado en el modelo para riego por surcos y bordes es el requerimiento crítico de agua que ha sido determinado sobre la base del máximo requerimiento en un riego durante la temporada y la mayor evapotranspiración del cultivo. Variados sistemas diseñados pueden ser examinados variando el tiempo disponible diario para regar, la cantidad de agua de riego disponible en el campo, la menor superficie para regar en un día, el número de bloques de riego por día, el número de surcos por bloque y el valor de alguna de las variables de diseño. El modelo de optimización entrega el valor óptimo de las variables de diseño: el caudal de entrada, la longitud de surcos o bordes, el tiempo de riego y adicionalmente el ancho del borde para un sistema de riego por bordes, para las condiciones dadas. La ejecución del modelo para un riego por surcos en un campo de 32 hectáreas (400 metros por 800 metros) de maíz en Chillán se observa en Tabla 1. TABLA 1. Datos de entrada y Resultados de un riego por surcos en maíz. Recursos ( Datos de entrada) Disponibles Caudal mínimo (ml/s) 700 Longitud total de surcos 800.0 (m) Area mínima de riego 20000 (m²) Tiempo riego (min) 1200 Máxima eficiencia de 100 riego (%) Mínima eficiencia de 20 riego (%) Variables (Resultados) Caudal no erosivo por surco (l/s) Longitud del surco (m) Tiempo de riego (min) Surcos por bloque o set Número de corridas Número de bloques o set Eficiencia de distribución requerimientos (%) Utilidad ($) 1.3 200 306 25 4 4 de 67 519101 Para el caso estudiado, los resultados indican que el tiempo de riego es la variable de diseño más crítica. Que el caudal tiene un efecto menor en la función objetivo que el tiempo de riego. Que el valor de la función objetivo se incrementa si los valores de tiempo de riego y caudal se aumentan. La longitud de surco tiene menor efecto sobre la función objetivo. Los resultados también indican que la disponibilidad de agua y el tiempo disponible para el riego son factores importantes en el proceso de diseño. CONCLUSIONES El modelo para diseños óptimos de surcos y bordes en maíz fue desarrollado para condiciones de campo existentes en Chillán y Davis (California). El diseño de criterio usado en el modelo de optimización fue el requerimiento crítico de agua del cultivo. Las variables de diseño del modelo son: el caudal de entrada al surco, la longitud de surcos y bordes, el tiempo de riego y el ancho del borde en un sistema de riego por bordes. El modelo entrega los valores óptimos de las variables de diseño. Además el modelo puede ser usado para: (1) Examinar el efecto de los recursos disponibles (agua, tiempo de riego, mano de obra, etc.) sobre las utilidades de la gestión agrícola. (2) Comparar diferentes tipos de manejo del riego y (3) Analizar las condiciones normales de manejo de un sistema de riego y los cambios necesarios para enfocar la ejecución del sistema en función de los objetivos de la gestión agrícola del predio. Finalmente, las soluciones del modelo pueden obtenerse utilizando programación no lineal que permite el análisis de sensibilidad. 3. MODELO SIMPLE DE OPTIMIZACION EN CULTIVOS *Modelo simple de distribución de cultivos en potreros de diferente superficie $TITLE “1ª Optimización del modelo” $OFFUPPER VARIABLES X1 Remolacha Parcela 1 X2 Maiz Parcela 1 X3 Trigo Parcela 1 X4 Remolacha Parcela 2 X5 Maiz Parcela 2 X6 Trigo Parcela 2 X7 Remolacha Parcela 3 X8 Maiz Parcela 3 X9 Trigo Parcela 3 Z Función Objetivo; EQUATION ZZ Función objetivo P1 Superficie parcela 1 P2 Superficie parcela 2 P3 Superficie parcela 3 C1 Superficie remolacha C2 Superficie maíz C3 Superficie trigo A1 Agua parcela 1 A2 Agua parcela 2 A3 Agua parcela 3 S1 Social 1 S2 Social 2 S3 Social 3; ZZ..Z=E=X1*400+X2*300+X3*200+X4*400+X5*300+X6*200+X7*400+X8*300+ X9*200; P1..X1+X2+X3=L=400; P2..X4+X5+X6=L=600; P3..X7+X8+X9=L=300; C1..X1+X4+X7=L=600; C2..X2+X5+X8=L=500; C3..X3+X6+X9=L=376; A1..X1*10+X2*8+X3*3=L=600 ; A2..X4*10+X5*8+X6*3=L=800; A3..X7*10+X8*8+X9*3=L=375; S1..(600*X1+600*X2+600*X3)-(400*X4+400*X5+400*X6)=E=0; S2..(300*X4+300*X5+600*X6)-(600*X7+600*X8+600*X9)=E=0; S3..(400*X7+400*X8+400*X9)-(300*X1+300*X2+300*X3)=E=0; X1.LO=0; X2.LO=0; X3.LO=0; X4.LO=0; X5.LO=0; X6.LO=0; X7.LO=0; X8.LO=0; X9.LO=0; MODEL PRATICO/ALL/; SOLVE PRACTICO USING LP MAXIMIZING Z;