SlideShare a Scribd company logo
1 of 9
INTRODUCCION A GAMS 
GAMS: GENERIC ALGEBRAIC MODELING SYSTEM 
Es un lenguaje de programación que sirve: 
 La modelización de cierto problema de optimización 
 Su resolución(mediante otros programas llamados SOLVERS) y el análisis de la solución 
Características: 
 Las formas en que GAMS representa un problema es casi idéntica a la que se espera en el pizarrón 
 Índices: arreglos matriciales 
 Datos: matrices , vectores y parámetros 
 Variables y función objetivo 
Naturaleza de las variables 
Cotas superiores e inferiores 
 Restricciones +funciones objetivo 
 Llamaremos al SOLVER y desplegaremos las soluciones (o parte de ella) 
 Permite pasar de un modelo de pocas variables (<=200) a un modelo de talla mayor sin modificaciones 
substanciales del modelo. 
 Separa el PROCESO DE MODELIZACIÓN de la RESOLUCION 
Una vez resuelto el modelo siguiendo las sintaxis se llama a un programa específico de resolución 
Ej: para la PL usaremos el paquete CPLEX 
 GAMS permite resolver problemas estructurales 
Reglas para producir un archivo .gams 
 GAMS no distingue entre mayúsculas o minúsculas 
 Cada comando debe terminar en ; 
 Los comandos pueden aparecer en “cualquier parte del programa” siempre y cuando las variables que utilizan se 
hayan definido posteriormente 
 Los IDENTIFICADORES (nombres para variables , indices ) no pueden ser las palabras restringidas de GAMS 
 Los identificadores pueden tener hasta 9 caracteres alfanuméricos y debe comenzar con una letra 
 No usar tildes ñ / * 
 En algunos comandos es indeferente usando en plural o singular 
Ej:Parameter o Parameters 
Set o Sets 
 Es posible escribir varios comandos en un misma línea siempre y cuando esten separados por ; 
 Cuando se quiere poner un comando o no incluir algunas líneas del programa las instrucciones debe comenzar 
con * 
*El peso en kg 
 Un comando es válido para declarar o definir varios elementos al mismo tiempo 
 La mayoría de los comandos sirve para la DECLARACIÓN de sus elementos y/o para asignarles valores 
COMANDOS OBJETIVO 
INDICES: 
Set 
Declarar conjuntos de índices de 
vectores o matrices
DATOS: 
Scala 
Declara un parámetro (numero o cte del 
modelo) y/o les asigna un valor 
Parameters Declara vectores de datos y/o les asigna 
un valor 
Table Declara y asigna matrices 
Variables Declara las variables del modelo, sin tipo 
y cotas superiores e inferiores o 
preasigna valores 
RESTRICCIONES: 
Equations 
Declara las restricciones y la función 
objetiva 
Model Declara el modelo , le da un nombre y las 
restricciones que incluye 
SOLUCION: 
Solve 
Llama al SOLVER y resuelve el problema 
Display Muestra toda o parte de la solución 
*Poblema del restaurante 13-10-2014.version1 
variables 
x1 cantidad de platos de tipo1 para elaborarse al dìa 
x2 cantidad de platos de tipo2 para elaborarse al dìa 
z ingreso diario por ventas ; // termino el comando de declaración de variables 
positive variables // variables positivas 
x1,x2; 
Equations 
ingreso funcion objetivo_ingresos diarios totales por ventas en u.m. 
restriccion1 limitacion diaria de langostinos 
restriccion2 limitacion diaria de mejillones 
restriccion3 limitacion diaria de ostras ; 
ingreso.. z=e=8*x1+6*x2; // .. es quivalente a : 
restriccion1.. 5*x1+3*x2=l=30 // <= =l= 
restriccion2.. 2*x1+3*x2=l=24 ; 
restriccion3.. x1+3*x2=l=18 ; 
model restaurante_v1 /all/; 
solve restaurante_v1 using LP maximizing z; 
MODELO DEL RESTAURANTE PODRIA ESCRIBIRSE COMO 
Max 푧 = Σ 푝(푗) ∗ 푥(푗) 2푗 
=1 
Sor 
퐴푥 ≤ 푏 (푥 ≥ 0) ≅ Σ 푎(푖, 푗)푎(푗) ≤ 푏(푖) ( 푖 = 1,2,3) 2푗 
=1 matriz tecnica 
x, y ∈ 푅 푥 ≤ 푦 ≅ 푥푖 ≤ 푦푖 (푖 = 1 … 푚)
*Poblema del restaurante 13-10-2014.version2 
sets 
i mariscos /langostinos,mejillones,ostras/ 
j platos /platos1, platos2/; 
table 
a(i,j) contenido del marisco i en una unidad de plato 
platos1 platos2 
langostinos 5 3 
mejillones 2 3 
ostras 1 3 
parameters 
p(j) precio unitario de cada plato1 en u.m. por plato 
/platos1 8 
platos2 6/ 
b(i) disponibilidad diaria del i-esimo marisco 
/langostinos 30 
mejillones 24 
ostras 18/; 
variables 
x(j) cantidad de platos j al producirse al dia 
z ingreso total por ventas 
*z es u.m 
X ; 
equations 
ingreso funcion objetivo_ingreso total por ventas diarias 
restriccion(i) disponibilida diaria del i-esimo recurso ; 
ingreso.. z=e=sum(j,p(j)*x(j)); 
restriccion(i).. sum(j,a(i,j)*x(j))=l=b(i); 
model restaurante_v2/all/; 
solve restaurante_v2 using LP maximizing z; 
display x.l, z.l; // LEVEL NIVEL DE EJERCICIOS DE ACTIVIDAD 1 ETC 
PROBLEMA DE REGRESION 
set 
i indice de la abscisa /1*6/; 
parameters 
x(i) abscisa de la i-esima medida
/1 0.5 
2 1.2 
3 1.9 
4 2.5 
5 3.0 
6 3.2 / 
q(i) medidas aproximadas de Q(x) en la abscisa x(i) 
/1 3.5 
2 6.2 
3 4.8 
4 5.5 
5 1.2 
6 3.3 /; 
variables 
a,b,c,d,er,z; 
*por defecto en GAMS las variables son libres (sin restriccion sobre su signo) 
equations 
objetivo maximo de los errores en valor absoluto 
restriccion1(i) restriccion del valor absoluto 
restriccion2(i) otra restriccion del valor absoluto; 
objetivo.. z=e=er; 
restriccion1(i).. a+b*x(i)+c*sin(x(i))+d*cos(x(i))-er=l=q(i); 
restriccion2(i).. a+b*x(i)+c*sin(x(i))+d*cos(x(i))+er=g=q(i); 
model regresion /all/; 
solve regresion using LP minimizing z; 
display a.l,b.l,c.l,d.l,er.l,z.l;
PROBLEMA DE LA DIETA 
sets 
i ingredientes/nd,pd,ca,ph/ 
j alimentos/maiza,avena, maizb, salmado, linaza/ 
; 
table 
a(i,j) contenido de los ingrediente i en los alimentos j 
maiza avena maizb salmado linaza 
nd 78.6 70.1 80.1 67.2 77.0 
pd 6.5 9.4 8.8 13.7 30.4 
ca 0.02 0.09 0.03 0.14 0.41 
ph 0.27 0.34 0.30 1.29 0.86 
parameters 
p(j) precio unitario del alimento j 
/maiza 1 
avena 0.5 
maizb 2 
salmado 1.2 
linaza 3 / 
r(i) requerimiento minimo del ingrediente i 
/nd 74.2 
pd 14.7 
ca 0.14 
ph 0.55 /; 
variables 
x(j) cantidad de alimento j a comprar 
z costo total de adquisicion de alimentos en um 
positive variables 
x;
equations 
costo funcion objetivo_costo total por compras 
restriccion(i) requerimiento minimo del ingrediente i; 
costo.. z=e=sum(j,x(j)*p(j)); 
restriccion(i).. sum(j,a(i,j)*x(j))=g=r(i) 
model dieta /all/; 
solve dieta using LP minimizing z; 
display z.l, x.l; 
PROBLEMAS DE TRANSPORTE 
UN PRODUCTO DE ELABORA EN 3 FABRICAS fi,f2,f3 Y SE LOS DISTRIBUYE A 5 CUIDADES POR CAJAS C1.C2.C3.C4.C5 
$title Modelo de transporte 
sets 
i indice para las fabricas /f1*f3/ 
j indices para las ciudades /c1*c5/; 
table 
d(i,j) matriz que da la distancia en km de la fabrica fi a cj 
c1 c2 c3 c4 c5 
f1 20 15.8 51.2 67 85 
f2 19 10 45 5 16 
f3 45 80 25.5 47 10 
scalar 
f flete de transporte en um por kilimetros y cajas /0.5/ 
parameters 
a(i) oferta de la fabrica fi (en cajas) 
/ 
f1 300
f2 400 
f3 800 
/ 
b(j) demanda de la ciudad cj (en cajas) 
/ 
c1 200 
c2 150 
c3 400 
c4 300 
c5 300 
/ 
c(i,j) matriz de costo unitario; 
c(i,j)=f*d(i,j); 
*c(i,j) esta en u.m. por caja 
variables 
x(i,j) cantidad de cajas que se envian desde la fi a la cj 
z costo total de transporte 
positive variables 
x; 
equations 
costo_transporte costo total de transporte 
oferta(i) oferta de las fabricas fi 
demanda(j) demanda de las ciudades cj; 
costo_transporte.. z=e=sum((i,j), c(i,j)*x(i,j)); 
oferta(i).. sum(j,x(i,j))=l=a(i); 
demanda(j).. sum(i, x(i,j))=g=b(j); 
model transporte/all/;
solve transporte using LP minimizing z; 
display x.l, z.l; 
PROBLEMAS DE ASIGNACION: 
Supongamos que tenemos m trabajos T1*Tm que deben asignarse a cualquiera de las n maquinas M1*Mn. Se conoce 
c(i,j) :rendimiento(eficiencia) de asignar el trabajo Ti a la maquina Mj. 
PROBLEMA: 
Como hacer una asignación de rendimiento máximo 
VARIABLE DIVALENTE: Sirven para modelar si se hace o no una acción determinada. 
Xij= 1 si se asigna el trabajo Ti a la maquina Mj 
0 si no 
EJERCICIO: 
Se tienen 4 trabajos a asignarse a 4 maquinas . se conoce el costo de preparación c(i,j) que implica el Trabajo ti se haga 
en la maquina mj 
PROBLEMA: realizar un programa de asignación máxima 
$title Problema de asignacion 
sets 
i indice para los trabajos /t1*t4/ 
j indices para las maquinas /m1*m4/; 
table 
c(i,j) costo de preparacion para realizar el trabajo ti en la maquina mj 
m1 m2 m3 m4 
t1 14 2 7 2 
t2 5 12 8 4 
t3 8 6 3 6 
t4 7 5 9 10 
variables
x(i,j) variable si se asigna el trabajo ti en la maquina mj 
z costo total de preparacion 
positive variables 
x; 
equations 
costo funcion costo total por preparacion 
trabajo(i) numero de trabajos ti 
maquina(j) numero de maquinas mj ; 
costo.. z=e=sum((i,j), c(i,j)*x(i,j)); 
trabajo(i).. sum(j,x(i,j))=e=1; 
maquina(j).. sum(i,x(i,j))=e=1; 
model asignacion /all/; 
solve asignacion using LP minimizing z; 
display x.L, z.L;

More Related Content

What's hot

5.2 instruccion switch
5.2  instruccion switch5.2  instruccion switch
5.2 instruccion switchSNPP
 
Clase 2 Estructuras de Control
Clase 2 Estructuras de ControlClase 2 Estructuras de Control
Clase 2 Estructuras de ControlDesireé mart?ez
 
Estructuras de repetición en programacion
Estructuras de repetición en programacionEstructuras de repetición en programacion
Estructuras de repetición en programacionSERCOMPFAST
 
183007957 estructuras repetitivas-estructurarepetitivadesdevi
183007957 estructuras repetitivas-estructurarepetitivadesdevi183007957 estructuras repetitivas-estructurarepetitivadesdevi
183007957 estructuras repetitivas-estructurarepetitivadesdeviyaquelinpr
 
Estructuras repetitivas for y while
Estructuras repetitivas for y whileEstructuras repetitivas for y while
Estructuras repetitivas for y whilechristianlopezth
 
Practica 9 Laboratorio de Computación para Ingenieros FI
Practica 9 Laboratorio de Computación para Ingenieros FIPractica 9 Laboratorio de Computación para Ingenieros FI
Practica 9 Laboratorio de Computación para Ingenieros FIJorge Iván Alba Hernández
 
1 entrada y salida estandar(1)
1 entrada y salida estandar(1)1 entrada y salida estandar(1)
1 entrada y salida estandar(1)Arely Ramirez Mar
 
Elementos del lenguaje java
Elementos del lenguaje javaElementos del lenguaje java
Elementos del lenguaje javaMarisol Henao
 
Estructuras de Control C++
Estructuras de Control C++Estructuras de Control C++
Estructuras de Control C++Jorge Leonardo
 
Instrucciones de control de salto
Instrucciones de control de saltoInstrucciones de control de salto
Instrucciones de control de saltoAbrirllave
 
Estructuras iterativas en java y pseudocódigo
Estructuras iterativas en java y pseudocódigoEstructuras iterativas en java y pseudocódigo
Estructuras iterativas en java y pseudocódigoAlex Cordova
 
Practica 9 Laboratorio de Computación para Ingenieros FI
Practica 9 Laboratorio de Computación para Ingenieros FIPractica 9 Laboratorio de Computación para Ingenieros FI
Practica 9 Laboratorio de Computación para Ingenieros FIJorge Iván Alba Hernández
 

What's hot (20)

5.2 instruccion switch
5.2  instruccion switch5.2  instruccion switch
5.2 instruccion switch
 
Clase 2 Estructuras de Control
Clase 2 Estructuras de ControlClase 2 Estructuras de Control
Clase 2 Estructuras de Control
 
Sentencias de control
Sentencias de controlSentencias de control
Sentencias de control
 
Estructuras de control
Estructuras de controlEstructuras de control
Estructuras de control
 
Matlab1
Matlab1Matlab1
Matlab1
 
Diagramas De Flujo
Diagramas De FlujoDiagramas De Flujo
Diagramas De Flujo
 
Estructuras de repetición en programacion
Estructuras de repetición en programacionEstructuras de repetición en programacion
Estructuras de repetición en programacion
 
183007957 estructuras repetitivas-estructurarepetitivadesdevi
183007957 estructuras repetitivas-estructurarepetitivadesdevi183007957 estructuras repetitivas-estructurarepetitivadesdevi
183007957 estructuras repetitivas-estructurarepetitivadesdevi
 
Estructuras repetitivas for y while
Estructuras repetitivas for y whileEstructuras repetitivas for y while
Estructuras repetitivas for y while
 
Programacionnolineal
Programacionnolineal Programacionnolineal
Programacionnolineal
 
Practica 9 Laboratorio de Computación para Ingenieros FI
Practica 9 Laboratorio de Computación para Ingenieros FIPractica 9 Laboratorio de Computación para Ingenieros FI
Practica 9 Laboratorio de Computación para Ingenieros FI
 
2.4 Bucles Repetitivos
2.4 Bucles Repetitivos2.4 Bucles Repetitivos
2.4 Bucles Repetitivos
 
1 entrada y salida estandar(1)
1 entrada y salida estandar(1)1 entrada y salida estandar(1)
1 entrada y salida estandar(1)
 
Lenguaje C_Curso Secap
Lenguaje C_Curso SecapLenguaje C_Curso Secap
Lenguaje C_Curso Secap
 
Elementos del lenguaje java
Elementos del lenguaje javaElementos del lenguaje java
Elementos del lenguaje java
 
Programacion no lineal
Programacion no linealProgramacion no lineal
Programacion no lineal
 
Estructuras de Control C++
Estructuras de Control C++Estructuras de Control C++
Estructuras de Control C++
 
Instrucciones de control de salto
Instrucciones de control de saltoInstrucciones de control de salto
Instrucciones de control de salto
 
Estructuras iterativas en java y pseudocódigo
Estructuras iterativas en java y pseudocódigoEstructuras iterativas en java y pseudocódigo
Estructuras iterativas en java y pseudocódigo
 
Practica 9 Laboratorio de Computación para Ingenieros FI
Practica 9 Laboratorio de Computación para Ingenieros FIPractica 9 Laboratorio de Computación para Ingenieros FI
Practica 9 Laboratorio de Computación para Ingenieros FI
 

Similar to Introduccion a gams (20)

MN01_-_Introduccion_Matlab.pdf
MN01_-_Introduccion_Matlab.pdfMN01_-_Introduccion_Matlab.pdf
MN01_-_Introduccion_Matlab.pdf
 
Metodos numéricos
Metodos numéricosMetodos numéricos
Metodos numéricos
 
Metodos numéricos (1)
Metodos numéricos (1)Metodos numéricos (1)
Metodos numéricos (1)
 
Clase 02
Clase 02Clase 02
Clase 02
 
Matlab
MatlabMatlab
Matlab
 
Matlab
MatlabMatlab
Matlab
 
Matlab
MatlabMatlab
Matlab
 
Matlab
MatlabMatlab
Matlab
 
Fx 7400 gplus-sp_ch02_es
Fx 7400 gplus-sp_ch02_esFx 7400 gplus-sp_ch02_es
Fx 7400 gplus-sp_ch02_es
 
Matlab
MatlabMatlab
Matlab
 
11 solveroptimización
11 solveroptimización11 solveroptimización
11 solveroptimización
 
Curo maple 2016
Curo maple 2016Curo maple 2016
Curo maple 2016
 
MATLAB 2010
MATLAB 2010MATLAB 2010
MATLAB 2010
 
Intro_Matlab_1.pdf
Intro_Matlab_1.pdfIntro_Matlab_1.pdf
Intro_Matlab_1.pdf
 
Classpad 330
Classpad 330Classpad 330
Classpad 330
 
Classpad 330
Classpad 330Classpad 330
Classpad 330
 
Programación modular
Programación modularProgramación modular
Programación modular
 
Programación modular
Programación modularProgramación modular
Programación modular
 
Programación modular
Programación modularProgramación modular
Programación modular
 
5. PROGRAMACION ESTRUCTURADA C++.pptx
5. PROGRAMACION ESTRUCTURADA C++.pptx5. PROGRAMACION ESTRUCTURADA C++.pptx
5. PROGRAMACION ESTRUCTURADA C++.pptx
 

Recently uploaded

Edificio residencial Tarsia de AEDAS Homes Granada
Edificio residencial Tarsia de AEDAS Homes GranadaEdificio residencial Tarsia de AEDAS Homes Granada
Edificio residencial Tarsia de AEDAS Homes GranadaANDECE
 
CONSTRUCCIONES II - SEMANA 01 - REGLAMENTO NACIONAL DE EDIFICACIONES.pdf
CONSTRUCCIONES II - SEMANA 01 - REGLAMENTO NACIONAL DE EDIFICACIONES.pdfCONSTRUCCIONES II - SEMANA 01 - REGLAMENTO NACIONAL DE EDIFICACIONES.pdf
CONSTRUCCIONES II - SEMANA 01 - REGLAMENTO NACIONAL DE EDIFICACIONES.pdfErikNivor
 
Proyecto de Base de Datos de César Guzmán
Proyecto de Base de Datos de César GuzmánProyecto de Base de Datos de César Guzmán
Proyecto de Base de Datos de César Guzmáncesarguzmansierra751
 
Revista estudiantil, trabajo final Materia ingeniería de Proyectos
Revista estudiantil, trabajo final Materia ingeniería de ProyectosRevista estudiantil, trabajo final Materia ingeniería de Proyectos
Revista estudiantil, trabajo final Materia ingeniería de ProyectosJeanCarlosLorenzo1
 
I LINEAMIENTOS Y CRITERIOS DE INFRAESTRUCTURA DE RIEGO.pptx
I LINEAMIENTOS Y CRITERIOS DE INFRAESTRUCTURA DE RIEGO.pptxI LINEAMIENTOS Y CRITERIOS DE INFRAESTRUCTURA DE RIEGO.pptx
I LINEAMIENTOS Y CRITERIOS DE INFRAESTRUCTURA DE RIEGO.pptxPATRICIAKARIMESTELAL
 
La mineralogia y minerales, clasificacion
La mineralogia y minerales, clasificacionLa mineralogia y minerales, clasificacion
La mineralogia y minerales, clasificacionnewspotify528
 
Hanns Recabarren Diaz (2024), Implementación de una herramienta de realidad v...
Hanns Recabarren Diaz (2024), Implementación de una herramienta de realidad v...Hanns Recabarren Diaz (2024), Implementación de una herramienta de realidad v...
Hanns Recabarren Diaz (2024), Implementación de una herramienta de realidad v...Francisco Javier Mora Serrano
 
PRIMER Y SEGUNDO TEOREMA DE CASTIGLIANO.pdf
PRIMER Y SEGUNDO TEOREMA DE CASTIGLIANO.pdfPRIMER Y SEGUNDO TEOREMA DE CASTIGLIANO.pdf
PRIMER Y SEGUNDO TEOREMA DE CASTIGLIANO.pdfAuraGabriela2
 
01 COSTOS UNITARIOS Y PRESUPUESTO DE OBRA-EXPEDIENTE TECNICO DE OBRA.pptx
01 COSTOS UNITARIOS Y PRESUPUESTO DE OBRA-EXPEDIENTE TECNICO DE OBRA.pptx01 COSTOS UNITARIOS Y PRESUPUESTO DE OBRA-EXPEDIENTE TECNICO DE OBRA.pptx
01 COSTOS UNITARIOS Y PRESUPUESTO DE OBRA-EXPEDIENTE TECNICO DE OBRA.pptxluiscisnerosayala23
 
MUROS Y CONEXIONES NTC 2017 CONCRETO REFORZADO.pptx
MUROS Y CONEXIONES NTC 2017 CONCRETO REFORZADO.pptxMUROS Y CONEXIONES NTC 2017 CONCRETO REFORZADO.pptx
MUROS Y CONEXIONES NTC 2017 CONCRETO REFORZADO.pptxIcelaMartnezVictorin
 
Trabajo en altura de acuerdo a la normativa peruana
Trabajo en altura de acuerdo a la normativa peruanaTrabajo en altura de acuerdo a la normativa peruana
Trabajo en altura de acuerdo a la normativa peruana5extraviado
 
Sistema de gestión de turnos para negocios
Sistema de gestión de turnos para negociosSistema de gestión de turnos para negocios
Sistema de gestión de turnos para negociosfranchescamassielmor
 
Centro Integral del Transporte de Metro de Madrid (CIT). Premio COAM 2023
Centro Integral del Transporte de Metro de Madrid (CIT). Premio COAM 2023Centro Integral del Transporte de Metro de Madrid (CIT). Premio COAM 2023
Centro Integral del Transporte de Metro de Madrid (CIT). Premio COAM 2023ANDECE
 
ESTUDIO TÉCNICO DEL PROYECTO DE CREACION DE SOFTWARE PARA MANTENIMIENTO
ESTUDIO TÉCNICO DEL PROYECTO DE CREACION DE SOFTWARE PARA MANTENIMIENTOESTUDIO TÉCNICO DEL PROYECTO DE CREACION DE SOFTWARE PARA MANTENIMIENTO
ESTUDIO TÉCNICO DEL PROYECTO DE CREACION DE SOFTWARE PARA MANTENIMIENTOCamiloSaavedra30
 
5.1 MATERIAL COMPLEMENTARIO Sesión 02.pptx
5.1 MATERIAL COMPLEMENTARIO Sesión 02.pptx5.1 MATERIAL COMPLEMENTARIO Sesión 02.pptx
5.1 MATERIAL COMPLEMENTARIO Sesión 02.pptxNayeliZarzosa1
 
Edificio residencial Becrux en Madrid. Fachada de GRC
Edificio residencial Becrux en Madrid. Fachada de GRCEdificio residencial Becrux en Madrid. Fachada de GRC
Edificio residencial Becrux en Madrid. Fachada de GRCANDECE
 
Sistema de Base de Datos para renta de trajes
Sistema de Base de Datos para renta de trajesSistema de Base de Datos para renta de trajes
Sistema de Base de Datos para renta de trajesjohannyrmnatejeda
 
Tarea de UTP matematices y soluciones ingenieria
Tarea de UTP matematices y soluciones ingenieriaTarea de UTP matematices y soluciones ingenieria
Tarea de UTP matematices y soluciones ingenieriaSebastianQP1
 

Recently uploaded (20)

Edificio residencial Tarsia de AEDAS Homes Granada
Edificio residencial Tarsia de AEDAS Homes GranadaEdificio residencial Tarsia de AEDAS Homes Granada
Edificio residencial Tarsia de AEDAS Homes Granada
 
CONSTRUCCIONES II - SEMANA 01 - REGLAMENTO NACIONAL DE EDIFICACIONES.pdf
CONSTRUCCIONES II - SEMANA 01 - REGLAMENTO NACIONAL DE EDIFICACIONES.pdfCONSTRUCCIONES II - SEMANA 01 - REGLAMENTO NACIONAL DE EDIFICACIONES.pdf
CONSTRUCCIONES II - SEMANA 01 - REGLAMENTO NACIONAL DE EDIFICACIONES.pdf
 
Proyecto de Base de Datos de César Guzmán
Proyecto de Base de Datos de César GuzmánProyecto de Base de Datos de César Guzmán
Proyecto de Base de Datos de César Guzmán
 
Revista estudiantil, trabajo final Materia ingeniería de Proyectos
Revista estudiantil, trabajo final Materia ingeniería de ProyectosRevista estudiantil, trabajo final Materia ingeniería de Proyectos
Revista estudiantil, trabajo final Materia ingeniería de Proyectos
 
Linea del tiempo de la inteligencia artificial.pptx
Linea del tiempo de la inteligencia artificial.pptxLinea del tiempo de la inteligencia artificial.pptx
Linea del tiempo de la inteligencia artificial.pptx
 
I LINEAMIENTOS Y CRITERIOS DE INFRAESTRUCTURA DE RIEGO.pptx
I LINEAMIENTOS Y CRITERIOS DE INFRAESTRUCTURA DE RIEGO.pptxI LINEAMIENTOS Y CRITERIOS DE INFRAESTRUCTURA DE RIEGO.pptx
I LINEAMIENTOS Y CRITERIOS DE INFRAESTRUCTURA DE RIEGO.pptx
 
La mineralogia y minerales, clasificacion
La mineralogia y minerales, clasificacionLa mineralogia y minerales, clasificacion
La mineralogia y minerales, clasificacion
 
Hanns Recabarren Diaz (2024), Implementación de una herramienta de realidad v...
Hanns Recabarren Diaz (2024), Implementación de una herramienta de realidad v...Hanns Recabarren Diaz (2024), Implementación de una herramienta de realidad v...
Hanns Recabarren Diaz (2024), Implementación de una herramienta de realidad v...
 
PRIMER Y SEGUNDO TEOREMA DE CASTIGLIANO.pdf
PRIMER Y SEGUNDO TEOREMA DE CASTIGLIANO.pdfPRIMER Y SEGUNDO TEOREMA DE CASTIGLIANO.pdf
PRIMER Y SEGUNDO TEOREMA DE CASTIGLIANO.pdf
 
01 COSTOS UNITARIOS Y PRESUPUESTO DE OBRA-EXPEDIENTE TECNICO DE OBRA.pptx
01 COSTOS UNITARIOS Y PRESUPUESTO DE OBRA-EXPEDIENTE TECNICO DE OBRA.pptx01 COSTOS UNITARIOS Y PRESUPUESTO DE OBRA-EXPEDIENTE TECNICO DE OBRA.pptx
01 COSTOS UNITARIOS Y PRESUPUESTO DE OBRA-EXPEDIENTE TECNICO DE OBRA.pptx
 
MUROS Y CONEXIONES NTC 2017 CONCRETO REFORZADO.pptx
MUROS Y CONEXIONES NTC 2017 CONCRETO REFORZADO.pptxMUROS Y CONEXIONES NTC 2017 CONCRETO REFORZADO.pptx
MUROS Y CONEXIONES NTC 2017 CONCRETO REFORZADO.pptx
 
Trabajo en altura de acuerdo a la normativa peruana
Trabajo en altura de acuerdo a la normativa peruanaTrabajo en altura de acuerdo a la normativa peruana
Trabajo en altura de acuerdo a la normativa peruana
 
Sistema de gestión de turnos para negocios
Sistema de gestión de turnos para negociosSistema de gestión de turnos para negocios
Sistema de gestión de turnos para negocios
 
Centro Integral del Transporte de Metro de Madrid (CIT). Premio COAM 2023
Centro Integral del Transporte de Metro de Madrid (CIT). Premio COAM 2023Centro Integral del Transporte de Metro de Madrid (CIT). Premio COAM 2023
Centro Integral del Transporte de Metro de Madrid (CIT). Premio COAM 2023
 
ESTUDIO TÉCNICO DEL PROYECTO DE CREACION DE SOFTWARE PARA MANTENIMIENTO
ESTUDIO TÉCNICO DEL PROYECTO DE CREACION DE SOFTWARE PARA MANTENIMIENTOESTUDIO TÉCNICO DEL PROYECTO DE CREACION DE SOFTWARE PARA MANTENIMIENTO
ESTUDIO TÉCNICO DEL PROYECTO DE CREACION DE SOFTWARE PARA MANTENIMIENTO
 
5.1 MATERIAL COMPLEMENTARIO Sesión 02.pptx
5.1 MATERIAL COMPLEMENTARIO Sesión 02.pptx5.1 MATERIAL COMPLEMENTARIO Sesión 02.pptx
5.1 MATERIAL COMPLEMENTARIO Sesión 02.pptx
 
Edificio residencial Becrux en Madrid. Fachada de GRC
Edificio residencial Becrux en Madrid. Fachada de GRCEdificio residencial Becrux en Madrid. Fachada de GRC
Edificio residencial Becrux en Madrid. Fachada de GRC
 
Sistema de Base de Datos para renta de trajes
Sistema de Base de Datos para renta de trajesSistema de Base de Datos para renta de trajes
Sistema de Base de Datos para renta de trajes
 
MATPEL COMPLETO DESDE NIVEL I AL III.pdf
MATPEL COMPLETO DESDE NIVEL I AL III.pdfMATPEL COMPLETO DESDE NIVEL I AL III.pdf
MATPEL COMPLETO DESDE NIVEL I AL III.pdf
 
Tarea de UTP matematices y soluciones ingenieria
Tarea de UTP matematices y soluciones ingenieriaTarea de UTP matematices y soluciones ingenieria
Tarea de UTP matematices y soluciones ingenieria
 

Introduccion a gams

  • 1. INTRODUCCION A GAMS GAMS: GENERIC ALGEBRAIC MODELING SYSTEM Es un lenguaje de programación que sirve:  La modelización de cierto problema de optimización  Su resolución(mediante otros programas llamados SOLVERS) y el análisis de la solución Características:  Las formas en que GAMS representa un problema es casi idéntica a la que se espera en el pizarrón  Índices: arreglos matriciales  Datos: matrices , vectores y parámetros  Variables y función objetivo Naturaleza de las variables Cotas superiores e inferiores  Restricciones +funciones objetivo  Llamaremos al SOLVER y desplegaremos las soluciones (o parte de ella)  Permite pasar de un modelo de pocas variables (<=200) a un modelo de talla mayor sin modificaciones substanciales del modelo.  Separa el PROCESO DE MODELIZACIÓN de la RESOLUCION Una vez resuelto el modelo siguiendo las sintaxis se llama a un programa específico de resolución Ej: para la PL usaremos el paquete CPLEX  GAMS permite resolver problemas estructurales Reglas para producir un archivo .gams  GAMS no distingue entre mayúsculas o minúsculas  Cada comando debe terminar en ;  Los comandos pueden aparecer en “cualquier parte del programa” siempre y cuando las variables que utilizan se hayan definido posteriormente  Los IDENTIFICADORES (nombres para variables , indices ) no pueden ser las palabras restringidas de GAMS  Los identificadores pueden tener hasta 9 caracteres alfanuméricos y debe comenzar con una letra  No usar tildes ñ / *  En algunos comandos es indeferente usando en plural o singular Ej:Parameter o Parameters Set o Sets  Es posible escribir varios comandos en un misma línea siempre y cuando esten separados por ;  Cuando se quiere poner un comando o no incluir algunas líneas del programa las instrucciones debe comenzar con * *El peso en kg  Un comando es válido para declarar o definir varios elementos al mismo tiempo  La mayoría de los comandos sirve para la DECLARACIÓN de sus elementos y/o para asignarles valores COMANDOS OBJETIVO INDICES: Set Declarar conjuntos de índices de vectores o matrices
  • 2. DATOS: Scala Declara un parámetro (numero o cte del modelo) y/o les asigna un valor Parameters Declara vectores de datos y/o les asigna un valor Table Declara y asigna matrices Variables Declara las variables del modelo, sin tipo y cotas superiores e inferiores o preasigna valores RESTRICCIONES: Equations Declara las restricciones y la función objetiva Model Declara el modelo , le da un nombre y las restricciones que incluye SOLUCION: Solve Llama al SOLVER y resuelve el problema Display Muestra toda o parte de la solución *Poblema del restaurante 13-10-2014.version1 variables x1 cantidad de platos de tipo1 para elaborarse al dìa x2 cantidad de platos de tipo2 para elaborarse al dìa z ingreso diario por ventas ; // termino el comando de declaración de variables positive variables // variables positivas x1,x2; Equations ingreso funcion objetivo_ingresos diarios totales por ventas en u.m. restriccion1 limitacion diaria de langostinos restriccion2 limitacion diaria de mejillones restriccion3 limitacion diaria de ostras ; ingreso.. z=e=8*x1+6*x2; // .. es quivalente a : restriccion1.. 5*x1+3*x2=l=30 // <= =l= restriccion2.. 2*x1+3*x2=l=24 ; restriccion3.. x1+3*x2=l=18 ; model restaurante_v1 /all/; solve restaurante_v1 using LP maximizing z; MODELO DEL RESTAURANTE PODRIA ESCRIBIRSE COMO Max 푧 = Σ 푝(푗) ∗ 푥(푗) 2푗 =1 Sor 퐴푥 ≤ 푏 (푥 ≥ 0) ≅ Σ 푎(푖, 푗)푎(푗) ≤ 푏(푖) ( 푖 = 1,2,3) 2푗 =1 matriz tecnica x, y ∈ 푅 푥 ≤ 푦 ≅ 푥푖 ≤ 푦푖 (푖 = 1 … 푚)
  • 3. *Poblema del restaurante 13-10-2014.version2 sets i mariscos /langostinos,mejillones,ostras/ j platos /platos1, platos2/; table a(i,j) contenido del marisco i en una unidad de plato platos1 platos2 langostinos 5 3 mejillones 2 3 ostras 1 3 parameters p(j) precio unitario de cada plato1 en u.m. por plato /platos1 8 platos2 6/ b(i) disponibilidad diaria del i-esimo marisco /langostinos 30 mejillones 24 ostras 18/; variables x(j) cantidad de platos j al producirse al dia z ingreso total por ventas *z es u.m X ; equations ingreso funcion objetivo_ingreso total por ventas diarias restriccion(i) disponibilida diaria del i-esimo recurso ; ingreso.. z=e=sum(j,p(j)*x(j)); restriccion(i).. sum(j,a(i,j)*x(j))=l=b(i); model restaurante_v2/all/; solve restaurante_v2 using LP maximizing z; display x.l, z.l; // LEVEL NIVEL DE EJERCICIOS DE ACTIVIDAD 1 ETC PROBLEMA DE REGRESION set i indice de la abscisa /1*6/; parameters x(i) abscisa de la i-esima medida
  • 4. /1 0.5 2 1.2 3 1.9 4 2.5 5 3.0 6 3.2 / q(i) medidas aproximadas de Q(x) en la abscisa x(i) /1 3.5 2 6.2 3 4.8 4 5.5 5 1.2 6 3.3 /; variables a,b,c,d,er,z; *por defecto en GAMS las variables son libres (sin restriccion sobre su signo) equations objetivo maximo de los errores en valor absoluto restriccion1(i) restriccion del valor absoluto restriccion2(i) otra restriccion del valor absoluto; objetivo.. z=e=er; restriccion1(i).. a+b*x(i)+c*sin(x(i))+d*cos(x(i))-er=l=q(i); restriccion2(i).. a+b*x(i)+c*sin(x(i))+d*cos(x(i))+er=g=q(i); model regresion /all/; solve regresion using LP minimizing z; display a.l,b.l,c.l,d.l,er.l,z.l;
  • 5. PROBLEMA DE LA DIETA sets i ingredientes/nd,pd,ca,ph/ j alimentos/maiza,avena, maizb, salmado, linaza/ ; table a(i,j) contenido de los ingrediente i en los alimentos j maiza avena maizb salmado linaza nd 78.6 70.1 80.1 67.2 77.0 pd 6.5 9.4 8.8 13.7 30.4 ca 0.02 0.09 0.03 0.14 0.41 ph 0.27 0.34 0.30 1.29 0.86 parameters p(j) precio unitario del alimento j /maiza 1 avena 0.5 maizb 2 salmado 1.2 linaza 3 / r(i) requerimiento minimo del ingrediente i /nd 74.2 pd 14.7 ca 0.14 ph 0.55 /; variables x(j) cantidad de alimento j a comprar z costo total de adquisicion de alimentos en um positive variables x;
  • 6. equations costo funcion objetivo_costo total por compras restriccion(i) requerimiento minimo del ingrediente i; costo.. z=e=sum(j,x(j)*p(j)); restriccion(i).. sum(j,a(i,j)*x(j))=g=r(i) model dieta /all/; solve dieta using LP minimizing z; display z.l, x.l; PROBLEMAS DE TRANSPORTE UN PRODUCTO DE ELABORA EN 3 FABRICAS fi,f2,f3 Y SE LOS DISTRIBUYE A 5 CUIDADES POR CAJAS C1.C2.C3.C4.C5 $title Modelo de transporte sets i indice para las fabricas /f1*f3/ j indices para las ciudades /c1*c5/; table d(i,j) matriz que da la distancia en km de la fabrica fi a cj c1 c2 c3 c4 c5 f1 20 15.8 51.2 67 85 f2 19 10 45 5 16 f3 45 80 25.5 47 10 scalar f flete de transporte en um por kilimetros y cajas /0.5/ parameters a(i) oferta de la fabrica fi (en cajas) / f1 300
  • 7. f2 400 f3 800 / b(j) demanda de la ciudad cj (en cajas) / c1 200 c2 150 c3 400 c4 300 c5 300 / c(i,j) matriz de costo unitario; c(i,j)=f*d(i,j); *c(i,j) esta en u.m. por caja variables x(i,j) cantidad de cajas que se envian desde la fi a la cj z costo total de transporte positive variables x; equations costo_transporte costo total de transporte oferta(i) oferta de las fabricas fi demanda(j) demanda de las ciudades cj; costo_transporte.. z=e=sum((i,j), c(i,j)*x(i,j)); oferta(i).. sum(j,x(i,j))=l=a(i); demanda(j).. sum(i, x(i,j))=g=b(j); model transporte/all/;
  • 8. solve transporte using LP minimizing z; display x.l, z.l; PROBLEMAS DE ASIGNACION: Supongamos que tenemos m trabajos T1*Tm que deben asignarse a cualquiera de las n maquinas M1*Mn. Se conoce c(i,j) :rendimiento(eficiencia) de asignar el trabajo Ti a la maquina Mj. PROBLEMA: Como hacer una asignación de rendimiento máximo VARIABLE DIVALENTE: Sirven para modelar si se hace o no una acción determinada. Xij= 1 si se asigna el trabajo Ti a la maquina Mj 0 si no EJERCICIO: Se tienen 4 trabajos a asignarse a 4 maquinas . se conoce el costo de preparación c(i,j) que implica el Trabajo ti se haga en la maquina mj PROBLEMA: realizar un programa de asignación máxima $title Problema de asignacion sets i indice para los trabajos /t1*t4/ j indices para las maquinas /m1*m4/; table c(i,j) costo de preparacion para realizar el trabajo ti en la maquina mj m1 m2 m3 m4 t1 14 2 7 2 t2 5 12 8 4 t3 8 6 3 6 t4 7 5 9 10 variables
  • 9. x(i,j) variable si se asigna el trabajo ti en la maquina mj z costo total de preparacion positive variables x; equations costo funcion costo total por preparacion trabajo(i) numero de trabajos ti maquina(j) numero de maquinas mj ; costo.. z=e=sum((i,j), c(i,j)*x(i,j)); trabajo(i).. sum(j,x(i,j))=e=1; maquina(j).. sum(i,x(i,j))=e=1; model asignacion /all/; solve asignacion using LP minimizing z; display x.L, z.L;