FP /

GAMSModelRefactoring

GAMS model refactoring

Project description

The General Algebraic Modeling System (GAMS) is a high-level modeling system for mathematical programming and optimization. GAMS is used at the Potsdam Institute for Climate Impact Research (PIK) for a number of modelling / optimization projects. One project is developing ReMIND - a coupled model of the time evolution of the economy (energy sector in particular) and the climate. The ReMIND model conseptually consists of a few submodules but the GAMS code does not describe this subdivision properly. The goal of this project is to refactor the GAMS implementation of the ReMIND model to allow for future improvements and faster optimization.

Structure:

A half-time report should be handed in after 8-9 weeks to ensure that the documentation work does not lag behind the implementation. The final report should be handed in after 18-19 weeks before the final oral presentation.

The work will mainly be done at Chalmers, but it may be possible to arrange a visit to Potsdam.

The project will be done during the Spring of 2009.

Work plan

  • Study the GAMS documentation
  • Understand the top level structure of the ReMIND model
  • Make a litterature search for related work (on GAMS modelling / refactoring)
  • Set up a testing framework for running ReMIND
    • including test data and expected output (test cases)
  • Identify submodules within ReMIND
    • mutually dependent set of equations
    • "local" variables
    • interface towards the other modules (shared variables?)
  • Set up "stub code" for testing the submodules separately
  • Analyse at least one submodule in more detail and suggest possible improvements in the optimisation technology
  • Suggest improvements to the GAMS language to better support "modelling in the large"

Prerequisites

Functional Programming, Optimization, Programming Languages, Compiler Construction, Mathematical Modelling, Algorithms

Contacts

Patrik Jansson (at Chalmers) and Cezar Ionescu (at PIK)

Student

Eric Bergquist will work on this project from 090109-090501.