0% found this document useful (0 votes)
113 views28 pages

Introduction To GAMS:: Formulation of A Simple Problem

This document provides an introduction to GAMS, including: 1. GAMS is a software package for specifying and solving mathematical programming and optimization models. It allows the user to specify a model's structure, data, solve it, and perform analysis on the results. 2. A simple optimization model is presented as an example to demonstrate how models are formulated in GAMS, including variable and equation specifications, the model statement, and solve statement. 3. The output generated by GAMS is described, including solution reports, status reports, and file summaries. References for learning more about GAMS are provided.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
113 views28 pages

Introduction To GAMS:: Formulation of A Simple Problem

This document provides an introduction to GAMS, including: 1. GAMS is a software package for specifying and solving mathematical programming and optimization models. It allows the user to specify a model's structure, data, solve it, and perform analysis on the results. 2. A simple optimization model is presented as an example to demonstrate how models are formulated in GAMS, including variable and equation specifications, the model statement, and solve statement. 3. The output generated by GAMS is described, including solution reports, status reports, and file summaries. References for learning more about GAMS are provided.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 28

Introduction to GAMS:

Formulation of a simple problem

Dhazn Gillig
&
Bruce A. McCarl

Department of Agricultural Economics


Texas A&M University
What is GAMS?
! Generalized Algebraic Modeling System
• a language for setting up and solving
mathematical programming optimization models
• all-in-one package that allows one to
• specify the structure of an optimization
model
• specify and calculate data that go into that
model
• solve that model
• conduct report writing on a model
• perform a comparative static analysis
Using GAMS
! Two approaches to using GAMS
(1) Traditional method:
use a text editor set up the model then use
DOS (or UNIX) command line instructions to
find errors in and run the model

(2) GAMS IDE alternative:


A graphical interface to create, debug, edit and
run GAMS files.
Formulation of a Simple Problem

STEPS
1. Variable specifications
2. Equation specifications
a. declaration
b. algebraic structure specification
3. Model statement
4. Solve statement
Variable specifications

Equation declarations

Algebraic structure
specification

Model statement

Solve statement
Dissecting GAMS – Variable naming
! Variable Specification
GAMS requires variables in each problem
to be identified. In the example, we have
variables Z, X1, X2, X3

Why new Z? => Because GAMS requires all models to be of a special form
Max CX becomes Max Z
s.t. Z = CX

Variable Name can be up to 31 characters and can have explanatory text


Dissecting GAMS – Variable naming

Types of Variables:

VARIABLE unrestricted variables


POSITIVE VARIABLE restricted variables to be nonnegative
BINARY VARIABLE restricted variables to be 0 or 1
INTEGER VARIABLE restricted variables to be 0, 1, 2, …, 9999
Dissecting GAMS – Equation naming
! Equation Specifications consist of two parts.
(1) Naming equations:
GAMS requires the modeler name each
equation, which is active in the model. In the
example, the equations are named after the
keyword EQUATIONS
Explanatory Text

The name for each equation can be anything up to 31


characters.
Dissecting GAMS – Equation naming
(2) Specifying algebraic structure:
: After naming equations, the exact algebraic structure of
equations must be specified by using .. notation.

This algebraic form involves use of a special syntax to tell the exact form of
the equation that may actually be an inequality.

=E= indicates an equality constraint


=L= indicates a less than or equal to constraint
=G= indicates a greater than or equal to constraint
Dissecting GAMS – Model specification

! Model Specification

MODEL statement is used to identify models that will be


solved. It involves 2 steps
step 1: give name of the model (e.g. Example1)
step 2: specify equations that will be included in
the model in slashes / /

MODEL Example1 /ALL/ ; including all equations

MODEL Example1 /Equation1, Equation2/ ;

Only Equation1 and Equation2


Dissecting GAMS – Solve specification

! Solve Specification
SOLVE causes GAMS to apply a solver to the model named
in the solve statement (Example1) using the data defined just
before the solve statement.
SOLVE Example1 USING LP MAXIMIZING Z ; LP MAX

SOLVE Example1 USING LP MINIMIZATION Z ; LP MIN

SOLVE Example1 USING MIP MAXIMIZING Z ; Mixed integer


programming
SOLVE Example1 USING NLP MAXIMIZING Z ; Non-linear
programming
Dissecting GAMS – ; specification
GAMS requires one to terminate each statement with a ;.

; is a very important part of the syntax their omission => syntax errors.
Dissecting GAMS – Finding errors

??

Error Message
Solution Reports

The report summary gives the total number of non-optimal,


infeasible, unbounded cases encountered.

Solution information can be output in several ways:


1. GAMS default standard solution output
2. Through added DISPLAY commands
3. Through added computed reports using values from
solutions (we will discuss this later)
Solution Reports

1. Format of the default standard GAMS solution

The single dot “.” represents a zero; INF represents


infinity
Solution Reports
syntax .L and .M is used to address
2. A DISPLAY command optimal solution variable and
DISPLAY Z .L, X1.L, X2.L, X3.L; shadow price values.

DISPLAY Equation1 .M, Equation2 .M, Equation3 .M;

variables solution values denoted with .L

Shadow prices and reduced costs denoted using .M


GAMS Output
Echo Prints or a copy of an input file

2, 3, 4, … , 20 are
line numbers
GAMS Output

Model Statistics

Model Statistics give information on model size. The BLOCK counts


refer to the number of named GAMS equations and variables. The
SINGLE counts refers to individual rows and columns. The NON ZERO
refers to the number of non-zero coefficients.
GAMS Output
Status Reports

SOLVE STATUS (a state of the program)


=> normal completion, iteration interrupted, resource interrupted,
terminated by solver, evaluation error limit, unknown.

MODEL STATUS (what solution looks like)


=> optimal, infeasible, unbounded, etc.
GAMS Output
Solution Reports

Variables => values under lower and upper refers to bounds


Equations => values under lower and upper are from RHS and
relational type of equations

Type .LO .UP .L


=E= RHS RHS RHS
=L= -INF RHS AX
=G= RHS INF AX
GAMS Output

Solution Reports

This is a final section of the solution listing. It shows the counts rows or
columns that have been marked NOPT, INFES, UNBND in the solution
listing section.
GAMS Output

File Summary

This is a final section of the output. It gives the names of the input and
output disk files. If work files (save or restart) have been used, they will
be named here as well.
Download GAMS

You can download the current GAMS distribution by going to

Then
1. Fill out the form

2. After that user id


and the password
will automatically be
e-mailed to the
email address you
provide within a few
minutes.
Download GAMS User Guide

! GAMS documentation is accessible through the


HELP menu under the choice GAMS
Download McCarl GAMS User Guide 2003

You can download the current McCarl GAMS User Guide 2003
going to
Download McCarl GAMS User Guide 2003

Then, go to File => Options


Then, select the Execute tab. Click on the Update button,
review the files in the list, and click continue to install all
modules listed. The file mccdoc.zip is the McCarl's User Guide.
Hands On
(handson1.gms)
Learning Objectives:
1. Learn basic GAMS language elements
2. See how to find and fix errors

Please write an algebraic model (a feeding problem) into GAMS


Min 3X1 + 4X2 + 5X3
s.t 0.01X1 + 0.07X2 + 0.03X3 > 0.05
0.02X1 + 0.14X2 + 0.1X3 > 0.09
X1 + X2 + X3 = 1.00
X1 , X2 , X3 > 0
Please save your work as handson1.gms since it will be used
again later.
References
McCarl, B. A. Basic GAMS class.
(http://agecon.tamu.edu/faculty/mccarl/mccarl.htm).

You might also like