Recent Enhancement in GAMS

Jan-Hendrik Jagla [email protected] Lutz Westermann [email protected]

GAMS Software GmbH www.gams.de GAMS Development Corp. www.gams.com Then …

GAMS Users Guide (1988) 2 … and now

Type s in 1988 s in 2008 Improvement Factor camcge NLP 468 0.031 15097 dinamico LP 1986 0.125 15888 egypt* LP 1758 0.015 117200 fertd* MIP 2382 0.062 38419 ganges NLP 546 0.109 5009 sarf LP 9210 0.139 66259 yemcem* MIP 510 0.140 3643

* 1988 solver ZOOM, 2008 solver CPLEX 11.0.1

3 Agenda

GAMS – An Introduction

Solver Technology

Productivity and Connectivity Tools

Interfacing GAMS with other Applications

4 GAMS at a Glance

General Algebraic Modeling System

• Roots: World Bank, 1976 • Went commercial in 1987 • GAMS Development Corp. • GAMS Software GmbH

• Broad academic & commercial user community and network

5 GAMS’ Fundamental concepts

Deployed models have often 15+ years lifecycle – Changing environment (Hardware, OS, Interface) – Improving solver technology

 Different layers with separation of – model and data – model and solution methods – model and – model and interface

Interface Data Model Solver Interface

6 GAMS’ Fundamental concepts

 Models benefit from – Advancing hardware – Enhanced / new solver technology – Improved / upcoming interfaces to other systems

 Backward compatibility

 Protection of user investments

Interface Data Model Solver Interface

7 GAMS at a Glance

General Algebraic Modeling System

• Algebraic Modeling Language • 25+ Integrated Solvers • 10+ Supported MP classes • 10+ Supported Platforms • Connectivity- & Productivity Tools • IDE • Model Libraries • GDX, Interfaces & Tools • Grid Computing • Benchmarking • Compression & Encryption • Deployment System •…

8 Supported Model Types (GAMS 22.7)

9 Supported Platforms (GAMS 22.7)

10 Downloads by Platform

GAMS 22.5 GAMS 22.6

~525 downloads/week ~590 downloads/week

GAMS 22.7

11 ~590 downloads a week System Overview

Interactive API / Batch

Productivity Tools Connectivity Tools • Integrated Development • Uniform Data Exchange: Environment • ASCII User Interfaces • Integrated Data Browser and Charting Engine • GDX (ODBC, SQL, • Model Libraries XLS, XML) • Benchmarking and Deployment • Model Debugger and Profiler • GDX Tools • Transparent and reproducible Quality Assurance and Testing • Component Libraries with System Interfaces to ,C++,C#, GAMS Language Compiler • Data and Model Encryption Delphi,Fortran,Java,VB,… and Execution System • Grid Computing • Scenario Reduction • MPSGE for general equilibrium • Ext. programs modeling • EXCEL • MATLAB • GNUPLOT, … ALPHAECP, BARON, COIN, Solvers CONOPT, CPLEX, DECIS, DICOPT, • CONVERT LP/MIP-QCP-MIQCP-NLP/DNLP-MINLP- KNITRO, LGO, LINDO, MINOS, CNS-MCP-MPEC,global, and stochastic MOSEK, OQNLP, PATH, SNOPT, XA, XPRESS, … 12 Improvements on all Frontiers

– Solver Technology • Updates for existing solvers • New solvers

– Productivity Tools • IDE improvements • Documentation and Wikis

– Connectivity Tools • Gams Data eXchange and GDX Tools • Component Libraries/APIs

13 Agenda

GAMS – An Introduction

Solver Technology

Productivity and Connectivity Tools

Interfacing GAMS with other Applications

14 Solver Updates Continuous updates of existing solvers

– BARON 8.1 – Coin-OR Solvers • CoinCBC 2.1 • CoinGLPK 4.22 • CoinIpopt 3.3 • CoinBonmin 0.99 – CPLEX 11.1 – LINDOGLOBAL 5.0 – MOSEK 5.0 – XPRESS 18.0 –…

15 New Solvers Continuous addition of new solvers, e.g.

• CoinScip http://scip.zib.de/ – LP/MIP solver developed at Zuse Institute (ZIB) – Branch -and -cut framework – Supports GAMS/BCH facility to allow additional control of the solution process – free for academic users

• In-core communication solvers – Bdmlpd, Conoptd, Cplexd, …

• (Experimental) Extended Mathematical Programming

16 Improved Global Optimizers in GAMS • Practical optimization problems are often nonlinear and non-convex, with discrete variables • They may contain disconnected feasible regions with multiple local optima

2 1  Find the best of all local optima 0 2 -1 0 -4 -2 -2 0 2 -4 • BARON 4 Proven global optimum • LINDOGLOBAL

• LGO Stochastic convergence • OQNLP/MSNLP to global optimum

17 Global Benchmark Summary

• 250 models MINLPs from MINLIB • timelimit : 600 sec • gap tol.: 0%

• Lindoglobal 5.0.1 • Baron 7.8.1

18 Coin-OR An initiative to spur the development of open-source software for the OR community

http://www.coin-or.org/

• A repository of currently ~30 open-source projects – Solvers – Interfaces – Tools

• An active OR community – Mailing lists – Google group – Wikis 19 The Coin-OR / GAMSLinks Project

https://projects.coin-or.org/GAMSlinks Stefan Vigerske (Humboldt-University Berlin)

Goals

• easy access to COIN-OR solvers via GAMS • broadening the audience of COIN-OR • broadening the audience of GAMS • help developers to connect their solvers to GAMS • provide access to GAMS benchmarking and quality assurance tools

20 The Coin-OR / GAMSLinks Project

GAMS interfaces to open-source Solvers

• COIN-OR ( CLP ) and Branch and Cut ( CBC ) – state of the art LP and MIP solver from J. Forrest

• Gnu Linear Programming Kit ( GLPK ) – LP and MIP solver from A. Makhorin

• Interior Point Optimizer ( IPOPT ) – large scale NLP solver from A. Wächter

21 The Coin-OR / GAMSLinks Project GAMS interfaces to open-source Solvers

• Basic Open-source Nonlinear Mixed Integer programming ( BONMIN ) – Branch and Cut based MINLP solver from P. Bonami et.al.

• Lagrangian Global Optimizer ( LaGO ) – Convexification and Branch and Cut based MINLP solver from I. Nowak and S. Vigerske

• Solving Constraint Integer Programs ( SCIP ) – LP/MIP solver developed at Zuse Institute Berlin (ZIB)

22 The Coin-OR / GAMSLinks Project

Available on • (32- and 64-bit x86-CPUs) • MacOS Darwin (PowerPC-based G4/G5) • Solaris (64 -bit x86 -CPUs) • Windows (32-bit and 64-bit x86-CPUs)

Corresponding GAMS Systems distribute free coin solvers • CoinIpopt • CoinBonmin • CoinCbc • CoinGlpk • CoinScip (academic only)

23 MIP Benchmark Summary

24 MINLP Benchmark Summary

25 The Coin-OR / GAMSLinks Project

Performance Benchmark of MIP codes free for academic use by H. Mittelmann. Solution times are geometric means where unsolved instances were assigned a 2 hours solution time (time limit). Details at scip.zib.de

GAMS QA and testing supports maturing of COIN-OR solvers! Coin-OR solvers enable GAMS to offer dependable free solvers! 26 Agenda

GAMS – An Introduction

Solver Technology

Productivity and Connectivity Tools

Interfacing GAMS with other Applications

27 Integrated Development Environment

28 Integrated Development Environment

• Project management • Editor / Syntax coloring / Spell checking • Launching and monitoring of (multiple) GAMS processes • Listing file / Tree view / Syntax -error navigation • Solver selection / Option selection • GDX viewer – Data cube – Data export (e.g. to MS Excel) – Charting facilities • Documentation • Model libraries

29 Documentation

• Distributed Documentation – GAMS Users Guide – Expanded GAMS Users Guide (McCarl) – Solver Manuals – GAMS Utility Manuals

• Wikis – Support Wiki http://support.gams-software.com – Interfaces Wiki http://interfaces.gams-software.com

30 Distributed Model Libraries • GAMS Model – Example and user-contributed models – Very often used as templates – Tests for • Solver robustness and correctness • Backward compatibility

• GAMS Test Library – Transparent and reproducible Quality Assurance Tests – Tests for • Solver correctness • Special functions • GAMS utilities

31 Distributed Model Libraries • GAMS Data Utilities Library – Demonstration of the various utilities interfacing GAMS with other applications – e.g. GDX utilities

• Practical Financial Optimization Models Models of the forthcoming book

“PRACTICAL FINANCIAL OPTIMIZATION – A Library of GAMS Models”

by Consiglio, Nielsen and Zenios

32 GAMSworld Model Libraries

Maintained libraries of established and varied set of both theoretical and practical test models:

• CONELib • GLOBALLib • LinLib • MINLPLib • MPECLib • MPSGELib • PrincetonLib • XPRESSLib

33 •… Gams Data eXchange

Binary Data Exchange

GAMS GDX Tools Application GDX SOLVER Invert IDE GDX Viewer GDX GDXrank API GDX2HAR / • Fast exchange of data GAMS HAR2GDX • Syntactical check on data before GDX model starts GDX2XLS GDXmerge • Data Exchange at any stage (Compile GDXxrw GDXdump and Run-time) GDXcopy • Platform Independent MDB2GMS GDXdiff • Direct GDX interfaces and general API • Scenario Management Support • Full Support of Batch Runs 34 GAMS in Control

GAMS Model

Direct GDX Direct GDX Interface Interface

External Database External Database GUIs

35 Import Export Application in Control

Application

GDX API GDX API

GAMS GDX (Executable / DLL) GDX Container Container Creating Call GAMS Reading 36 Input Solution Calling GAMS from an Application Works from basically every environment

– MS Office Application / VBA – Programming languages: • C,C++,C# • Delphi • Java • VB.NET • Fortran – Web application (server side) – ERP Systems: Oracle, SAP –…

37 Interfacing with GIS Applications

Increase in Ktons Per Year Less Than 0 0 - 199 200-1000 1000-3000

38 Interfacing with MATLAB

39 Interfacing with GNUPLOT

40 Interfacing with Web Applications

41 Interfacing with Individual Front Ends

42 SAT-PROPHET Distributed APIs • Component Libraries – GAMS – GDX – Option

• Interfaces for – C, C++, C# – Delphi – Fortran – Java – VBA, VB.Net

• Examples/Documentation 43 Agenda

GAMS – An Introduction

Solver Technology

Productivity and Connectivity Tools

Interfacing GAMS with other Applications

44 Sample GAMS Applications

• Integrated Model of the US Electricity, Coal and Emission Markets  GAMS model is in control

• Hotdip Galvanizing Scheduling Model  Application is in control

45 Integrated US Energy Model

46 Varying Size of the Problem

7,500,000 Variables

1.3 GB 1,400,000 6 GB 5,000,000 900,000 900,000

26,000,000 Non-zero Entries 3,500,000 Constraints Constraints 3,500,0003,500,000 13 hours 40 min 40

47 Layout of the Model Integrated US Energy Model

Data Data Import Solution Report Manipulation Module Module Module Module

GDX GDX GDX Container Container Container

GDX Container GDX Container

MS Excel MS Excel

48 Hot-dip Galvanizing Scheduling Problem

• Given – Set of jobs – Gas usage for reheating job i after job j is completed – Set of jobs not allowed to follow each other – Gas costs

points 18 j137 j43 j111j122j134j140j143j55 j46 j60j65j97j59 j112 j116j19 j118j119j144 j49 j124 j106j123 17

16 j115j18j23j96 j133 j121j42j64j87 j100j110j54 j139 j142 j136 j105 j58j71 j101j67 15

14 • Wanted : j132 j141j17 j138j76 j99 j78 j95 j114j66 j104 j41j53 j109 j117j63 j135 13

12 j86 j126 j22 j24 j108j127j131j89j94 j129 j103j16j90 j98 – Schedule minimizing 11 10 j128j70 j72 j85 j125 j130j88 9

8 j35 j40 j21 j62j84 j15j69 j45j48 j102j107 j52 j113 j91 j92 j120 j93 j74 total gas costs 7

6 j14 j39 j34 j51j82 j73 j83 j20j30 j80 j26 j81 j57j68j77 j37 j44j61j79 j47 j75 5

4 j25 j29 j31j33 j27j56j8 j13 j38 j4j6 j12 j36 j50 j28j2 j32 3

2 j7j1 j9 j3j5 j10 j11 1 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20

49 Hot-dip Galvanizing Scheduling Problem • Can be formulated as a TSP like Model

• Need of subtour elimination constraints

• Single ‘Brute force’ model cannot be solved

• Algorithmic Approach using dynamic cuts

50 GAMS Beta 22.8

GAMS Beta Distribution 22.8 is available for download

http://beta.gams-software.com

- New Solver Libraries, e.g. - CPLEX 11.1 - Coin-OR Solvers - Experimental Solvers offering in-core communication - Two new Model Libraries - New utilities (gdx2xls, invert, xlstalk) -…

51 Contacting GAMS

Europe USA

GAMS Software GmbH GAMS Development Corp. Eupener Str. 135-137 1217 Potomac Street, NW 50933 Cologne Washington, DC 20007 Germany USA

Phone: +49 221 949 9170 Phone: +1 202 342 0180 Fax: +49 221 949 9171 Fax: +1 202 342 0181 http://www.gams.de http://www.gams.com

[email protected] [email protected] [email protected] [email protected]

52