GAMS Optimization and Programming
General Algebraic Modeling System (GAMS) is used to model and analyze mixed-integer, linear, and nonlinear optimization problems. It is one of the best tools to analyze large and complex systems. Although the GAMS tool is widely used to solve various power and energy systems complex optimization problems, it can be used in any field to mathematically formulate and find optimal solutions.
This course shall use a trial version of GAMS python coding using the free package Pyomo.
Learning Outcome
By the end of this course, the learner may be expected to:
- Read a problem statement and build an optimization model
- Be able to identify the objective function, decision variables, constraints, and parameters
- Code an optimization model in GAMS
- Define sets, variables, parameters, scalars, equations
- Use different solvers in GAMS
- Import data from text, gdx, and spreadsheet files
- Export data to text, gdx, and spreadsheet files
- Impose different variable ranges, and bounds
- Code an optimization model in Pyomo
- Define models, sets, variables, parameters, constraints, and objective function
- Use different solvers in Pyomo
Course Stats
- Duration:
- 1 day
- 9 am to 5pm,
- 1 hour lunch break and
- A maximum of 2 x 15 minute breaks
- Assessment: In-course assessment
- Intensity: High
- Type: Hands-on
- Medium of lecture: English
Prerequisites
- Root Access to OS
- Internet connection
- External resource access (google and kaggle)
- GAMS Software (trial version would suffice)
- Google Colab access
- Understanding of linear and non-linear mathematics
Outline
- Introduction
- Mathematics recap
- Algorithms and programming overview
- Scope determination
- Software
- Access and linking
- Linear Programming
- GAMS usage
- Python integration
- Pymo Usage
- Mixed Integer Linear Programming
- Nonlinear Programming
- GAMS usage
- Pymo Usage
- Mixed Integer nonlinear Programming
- GAMS independent (integrated in all of the above topics)
- Multi-Object Optimization
- SLGP
- Flow Control
- Assessment
Practical, connected learning
My wider training approach brings hands-on implementation and systems thinking together, connecting technology with real operational needs.