← All courses

Training

GAMS Optimization and Programming

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

  1. Introduction
    1. Mathematics recap
    2. Algorithms and programming overview
    3. Scope determination
    4. Software
    5. Access and linking
  2. Linear Programming
    1. GAMS usage
    2. Python integration
    3. Pymo Usage
    4. Mixed Integer Linear Programming
  3. Nonlinear Programming
    1. GAMS usage
    2. Pymo Usage
    3. Mixed Integer nonlinear Programming
  4. GAMS independent (integrated in all of the above topics)
    1. Multi-Object Optimization
    2. SLGP
    3. Flow Control
  5. Assessment

Practical, connected learning

My wider training approach brings hands-on implementation and systems thinking together, connecting technology with real operational needs.