SlideShare a Scribd company logo
1 of 88
Download to read offline
GAMS Development Corp. GAMS Software GmbH www.gams.com
An Introduction
Tim Johannessen & Franz Nelißen
GAMS Software GmbH
GENERAL ALGEBRAIC MODELING SYSTEM
2
Company
 Roots: World Bank, 1976
 Went commercial in 1987
 Locations
 GAMS Development Corporation (Washington)
 GAMS Software GmbH (Germany)
 Product: The General Algebraic Modeling System
GENERAL ALGEBRAIC MODELING SYSTEM
3
Agenda
GAMS – Elements and Examples
Scenarios in GAMS
Some Enhancements
GENERAL ALGEBRAIC MODELING SYSTEM
4
1976 - Two World Bank Slides
The
Origin
GENERAL ALGEBRAIC MODELING SYSTEM
5
1976 - Two World Bank Slides
The
Vision
GAMS came into being!
GENERAL ALGEBRAIC MODELING SYSTEM
6
What did this give us?
Simplified model development & maintenance
Increased productivity tremendously
Made mathematical optimization available to a
broader audience (domain experts)
2012 INFORMS Impact Prize
GENERAL ALGEBRAIC MODELING SYSTEM
7
1976
GAMS - Evolution
Now
GENERAL ALGEBRAIC MODELING SYSTEM
8
Broad User Community and Network
25+ Years
GAMS Development
11,500+ licenses
Users: 50% academic, 50% commercial
GAMS used in more than 120 countries
Uniform interface to more than 30 solvers
GENERAL ALGEBRAIC MODELING SYSTEM
9
Broad Range of Application Areas
25+ Years
GAMS Development
Agricultural Economics Applied General Equilibrium
Chemical Engineering Economic Development
Econometrics Energy
Environmental Economics Engineering
Finance Forestry
International Trade Logistics
Macro Economics Military
Management Science/OR Mathematics
Micro Economics Physics
GENERAL ALGEBRAIC MODELING SYSTEM
10
Foundation of GAMS
Powerful algebraic modeling language
Open architecture and interfaces to
other systems, independent layers
GENERAL ALGEBRAIC MODELING SYSTEM
11
Powerful Declarative Language
Similar to mathematical notation
Easy to learn - few basic language elements: sets,
parameters, variables, equations, models
Model is executable (algebraic) description of the
problem
GENERAL ALGEBRAIC MODELING SYSTEM
12
Mix of Declarative and Imperative
Elements
Advantages:
 Build complex problem algorithms within GAMS
 Simplified interaction with other systems:
 Data exchange
 GAMS process control
Control Flow Statements (e.g. loops, for, if,…),
macros and functions
GENERAL ALGEBRAIC MODELING SYSTEM
13
Strong Development Environment
GAMS IDE
 Project management
 Editor / Syntax coloring / Spell checks
 Tree view / Syntax-error navigation
 Model Debugging & Profiling
 Solver selection & setup
 Data viewer
 Export
 Charting
 GAMS Processes Control
GENERAL ALGEBRAIC MODELING SYSTEM
14
Uniform System Documentation
 Windows Help, HTML, Pdf
GENERAL ALGEBRAIC MODELING SYSTEM
15
Free Model Libraries
 More than 1400 models!
GENERAL ALGEBRAIC MODELING SYSTEM
16
Example: A Transportation Model
Minimize Transportation cost
subject to Demand satisfaction at markets
Supply constraints
350
San Diego 600
275
300
325
Topeka
1.4
2.5
1.8
1.8
1.7
2.5
Supply
(cases)
Demand
(cases)
Distance
(thousand miles)
New York
Chicago
Seattle
Freight: $90 case / thousand miles
GENERAL ALGEBRAIC MODELING SYSTEM
17
Example: Mathematical Model
Indices: 𝑖 (Canning plants)
𝑗 (Markets)
Decision variables: 𝑥𝑖𝑗 (Number of cases to ship)
Data: 𝑐𝑖𝑗 (Transport cost per case)
𝑎𝑖 (Capacity in cases)
𝑏𝑖 (Demand in cases)
min 𝑐𝑖𝑗 ∙ 𝑥𝑖𝑗𝑗𝑖 (Minimize total transportation cost)
subject to
𝑥𝑖𝑗𝑗 ≤ 𝑎𝑖 ∀ 𝑖 (Shipments from each plant ≤ supply capacity)
𝑥𝑖𝑗𝑖 ≥ 𝑏𝑗 ∀ 𝑗 (Shipments to each market ≥ demand)
𝑥𝑖𝑗 ≥ 0 ∀𝑖, 𝑗 (Do not ship from market to plant)
𝑖, 𝑗 ∈ ℕ
GENERAL ALGEBRAIC MODELING SYSTEM
18
Example: GAMS Algebra
GENERAL ALGEBRAIC MODELING SYSTEM
19
Example: Data Input
$gdxin data.gdx
$load i<d.dim1 j<d.dim2 d b a c
$include data.gms
GENERAL ALGEBRAIC MODELING SYSTEM
20
Example: Results
GENERAL ALGEBRAIC MODELING SYSTEM
21
+ MIP Model: Minimum Shipments
• Shipment volume: x (continuous variable)
• Discrete decision: ship (binary variable)
add constraints:
𝑥𝑖,𝑗 ≥ 100 ∙ 𝑠ℎ𝑖𝑝𝑖,𝑗 ∀ 𝑖, 𝑗 (if ship=1, then ship at least 100)
𝑥𝑖,𝑗 ≤ 𝑏𝑖𝑔𝑀 ∙ 𝑠ℎ𝑖𝑝𝑖,𝑗 ∀ 𝑖, 𝑗 (if ship=0, then do not ship at all)
𝑠ℎ𝑖𝑝𝑖,𝑗 ∈ 0,1
100
ship = 0 ship = 1
0
Cost ($)
Not possible
x (Number of cases)
GENERAL ALGEBRAIC MODELING SYSTEM
22
+ MIP Model: GAMS Algebra
GENERAL ALGEBRAIC MODELING SYSTEM
23
+ MIP Model: Results
GENERAL ALGEBRAIC MODELING SYSTEM
24
+ non-linear: Cost Savings
100
ship = 0 ship = 1
0
Cost ($)
Not possible
The cost per case
decreases with a
increasing shipment
volume
Replace:
min 𝑖 𝑗 𝑐𝑖𝑗 ∙ 𝑥𝑖𝑗 (Minimize total transportation cost)
With
min 𝑖 𝑗 𝑐𝑖𝑗 ∙ 𝑥𝑖𝑗
𝒃𝒆𝒕𝒂
(Minimize total transportation cost)
x (Number of cases)
GENERAL ALGEBRAIC MODELING SYSTEM
25
+ non-linear: GAMS Algebra
GENERAL ALGEBRAIC MODELING SYSTEM
26
+ non-linear Results
GENERAL ALGEBRAIC MODELING SYSTEM
27
Foundation of GAMS
Powerful algebraic modeling language
Open architecture and interfaces to
other systems, independent layers
Model
Platform Solver Data Interface
GENERAL ALGEBRAIC MODELING SYSTEM
28
Independence of Model and Platform
Supported Platforms
Model
Platform Solver Data Interface
 Move models between platforms with ease!
GENERAL ALGEBRAIC MODELING SYSTEM
29
Model
Platform Solver Data Interface
Local and distributed / remote execution
 Distributed Algorithm (CPLEX, GUROBI)
 Grid Computing Facility
 NEOS (Kestrel)
Independence of Model and Platform
GENERAL ALGEBRAIC MODELING SYSTEM
30
GAMS/Kestrel
Model transport /all/;
Option lp=kestrel;
transport.optfile=1;
$onecho > kestrel.opt
kestrel_solver xpress
$offecho
Solve transport using lp minimizing z;
--- Executing KESTREL: elapsed 0:00:00.006
Connecting to: http://neos-server.org:3332
NEOS Solver: xpress
NEOS job#=3631352, pass=iJLdAkhP
Check the following URL for progress report :
http://neos-server.org/neos/cgi-bin/nph-neos-
solver.cgi?admin=results&jobnumber=3631352&pass=i
JLdAkhP
Job 3631352 dispatched
password: iJLdAkhP
---------- Begin Solver Output -----------
Job submitted to NEOS HTCondor pool.
FICO-Xpress 24.3.3 r48116 Released Sep 19,
2014 LEG x86 64bit/Linux
Local Machine
Remote Cluster
(NEOS)
Remote Solver Execution on NEOS Servers
Stay in your GAMS environment
Results are being processed
as with any local solver
GENERAL ALGEBRAIC MODELING SYSTEM
31
GAMS: Model building and interaction with
solvers & environments
Solver: Solve an model instance (model +
numerical data) using mathematical
optimization
Model
Platform Solver Data Interface
Independence of Model and Solver
 GAMS is not a Solver!
GENERAL ALGEBRAIC MODELING SYSTEM
32
Independence of Model and Solver
Model
Platform Solver Data Interface
 All major commercial and academic solvers
integrated (30+ )
 Wide range of available model types (12+)
 Average number of commercial solvers per
license:
 Academic clients: 2.9
 Commercial clients: 2.2
GENERAL ALGEBRAIC MODELING SYSTEM
33
Independence of Model and Solver
All major commercial
LP/MIP solver
Open Source Solver (COIN)
Also solver for NLP, MINLP,
global, and stochastic
optimization
One environment for a wide range of model types and solvers
 More than 30 Solvers integrated!
Model
Platform Solver Data Interface
GENERAL ALGEBRAIC MODELING SYSTEM
34
Independence of Model and Solver
Model
Platform Solver Data Interface
Uniform interface to all major solvers:
 Switching between solvers with one
statement: option solver= ….;
 Unified Documentation
 Licensing (GAMS as a „license broker“)
GENERAL ALGEBRAIC MODELING SYSTEM
35
Independence of Model and Solver
Model
Platform Solver Data Interface
CyBio Scheduler
 Scheduling software for high
throughput screening
 Used in the pharmaceutical
industry (drug discovery)
 Model optimizes throughput of
robotic screening systems
 Solver
 COIN for smaller instances
 Commercial MIP solver for
large problems
 Developed by analytikjena
GENERAL ALGEBRAIC MODELING SYSTEM
36
Independence of Model and Solver
Model
Platform Solver Data Interface
CAPRI
 Global agricultural sector models with
focus on EU27 members
 Evaluates impacts of agricultural and
trade policies on production income,
markets, trade, and the environment
 Different NLP solvers
 Open source approach with an active
network of developers and users
coordinated by University of Bonn
GENERAL ALGEBRAIC MODELING SYSTEM
37
Independence of Model and Data
Model
Platform Solver Data Interface
 Declarative Modeling
GENERAL ALGEBRAIC MODELING SYSTEM
38
Independence of Model and Data
Model
Platform Solver Data Interface
file fy /result.csv/;
fy.pc = 5; fy.nd = 4;
loop((i,j)$x.l(i,j),
put fy i.te(i) j.te(j) x.l(i,j) /;
);
"seattle","new-york",50.00
"seattle","chicago",300.00
"san-diego","new-york",275.00
"san-diego","topeka",275.00
Initial Model Development – ASCII
 Input: Part of model input ($include file.gms)
 Output: Display / Put Command (File)
GENERAL ALGEBRAIC MODELING SYSTEM
39
Independence of Model and Data
GDX: Binary Data layer (“contract”)
between GAMS and applications
 Fast exchange of data at any
stage
 Platform independent
 Direct GDX interfaces and OO
APIs
 No license required
 Scenario Management Support
Model
Platform Solver Data Interface
Application
GAMS
SOLVER
GDX
GENERAL ALGEBRAIC MODELING SYSTEM
40
Independence of Model and Data
Model
Platform Solver Data Interface
 (GDX) Tools included in the GAMS distribution
GENERAL ALGEBRAIC MODELING SYSTEM
41
Creating a GDX file
Model
Platform Solver Data Interface
GENERAL ALGEBRAIC MODELING SYSTEM
42
Looking at a GDX file
Model
Platform Solver Data Interface
GAMS IDE-GDX Browser
 Data cube with Drag&Drop
 Searching and Charting
 Export to Excel, HTML,…
GENERAL ALGEBRAIC MODELING SYSTEM
43
GDX2XLS
gdx2xls rep.gdx
shellexecute rep.xlsx
 Dumping a GDX container to Excel
GENERAL ALGEBRAIC MODELING SYSTEM
44
GDXXRW – Accessing Excel Files
$call GDXXRW dist.xlsx par=d rng=A1 rdim=2 cdim=0
$if errorlevel 1 $abort "Problems with Excel file!"
$gdxin dist
$load d
GENERAL ALGEBRAIC MODELING SYSTEM
45
GDXDiff
 Comparing two gdx files
GENERAL ALGEBRAIC MODELING SYSTEM
46
GDXDiff - Results
GENERAL ALGEBRAIC MODELING SYSTEM
48
Independence of Model and User
Interface
Model
Platform Solver Data Interface
1
Open architecture and interfaces to other systems
 No preference for a particular user interface
2 (OO) Application Programming Interfaces
3
Smart Links to popular environments: Excel, MATLAB,
R, ...
GENERAL ALGEBRAIC MODELING SYSTEM
49
Independence of Model and User
Interface
API’s
 Low Level
 Object Oriented: .Net, Java,
Python
 No modeling capability:
Model is written in GAMS
 Wrapper class that
encapsulates a GAMS model
Model
Platform Solver Data Interface
GENERAL ALGEBRAIC MODELING SYSTEM
50
Simple Encapsulation of a GAMS Model
Main
Program
Wrapper Class Data/Results
Run()
Options
GAMS
Model
Simple API interface
 Properties to communicate input data and results
 Properties to change options like the solver to use
 Run() method to run the model
Model
Platform Solver Data Interface
GENERAL ALGEBRAIC MODELING SYSTEM
51
Smart Links to other Applications
MS ExcelMatLabR
 User keeps working in his productive tool environment
 Application accesses all optimization capabilities of GAMS through API
 Visualization and analysis of model data and results in the application
Model
Platform Solver Data Interface
GENERAL ALGEBRAIC MODELING SYSTEM
52
Agenda
GAMS – Elements and Examples
Scenarios in GAMS
Some Enhancements
GENERAL ALGEBRAIC MODELING SYSTEM
53
Solving Scenarios
Model
Generation
Optimization
(Solver)
Model
Update
GENERAL ALGEBRAIC MODELING SYSTEM
54
Simple Serial Solve Loop
Set s /s*s10/;
Parameter
A_s(s,i,j) “scenario data”,
xlo_s(s,i,j) ”scenario lower bound for x.l”,
em_s(s,i) “scenario solution for e.m;
Loop(s,
A(i,j) = A_s(s,i,j);
x.lo(j)=xlo_s(s,j);
solve mymodel min z using lp;
xl_s(s,j) = x.l(j);
em_s(s,i) = e.m(i);
);
Generation
Solution
Update
Loop
GENERAL ALGEBRAIC MODELING SYSTEM
55
Setting Solve time (secs)
Solvelink=%Solvelink.ChainScript% 52.221
Solvelink=%Solvelink.CallModule% 37.366
Solvelink=%Solvelink.LoadLibrary% 03.252
trnsport.gms (LP) solved 500 times with CPLEX:
Loop(s,
d(i,j) = dd(s,i,j);
f = ff(s);
solve transport using lp minimizing z;
rep(s) = transport.objval;
);
Simple Serial Solve - Performance
GENERAL ALGEBRAIC MODELING SYSTEM
56
Scenario Solver (GUSS)
• Generates model once and updates the
algebraic model keeping the model “hot”
inside the solver
• Platform independent, works with all solvers
• Performance close to native solver API
• Example:
Generation
Solution
Update
Set s /s*s10/;
Parameter
A_s(s,i,j) “scenario data”,
xlo_s(s,i,j) ”scenario lower bound for x.l”,
em_s(s,i) “scenario solution for e.m;
Set dict / s. scenario. ´´,
A. param. A_s,
x. lower. xlo_s,
x. level. xl_s,
e. marginal. em_s /; /;
solve mymodel min z using lp scenario dict;
GENERAL ALGEBRAIC MODELING SYSTEM
57
Scenario Solver - Performance
Setting Solve time (secs)
Loop: Solvelink=%Solvelink.Chainscript (default) 7,204
Loop: Solvelink=%Solvelink.LoadLibrary% 2,481
GAMS Scenario Solver 392
CPLEX Concert Technology 210
18.3
1.86
Factor
Example: Stochastic model with 66,320 linear problems
GENERAL ALGEBRAIC MODELING SYSTEM
58
Grid Computing Facility
GAMS jobs in a distributed environment
Scalable: supports large grids, but also works on
local machine
Platform independent, works with all
solvers/model types
Only minor changes to model required
1. Submission of jobs
2. “Grid Middleware”
– Distribution of jobs
– Job execution
3. Collection of solutions
4. Processing of results
GAMS
GAMS
Job 1
GAMS
Job 2
GAMS
Job ..
GAMS
Job n
GAMS
GENERAL ALGEBRAIC MODELING SYSTEM
59
Grid Computing Facility - Example
 GAMS Model Library: Transgrid
GENERAL ALGEBRAIC MODELING SYSTEM
60
Solving “many” Scenarios
1. Small Ratio of solver time / GAMS time  Scenario
Solver
2. Large ratio i.e. only solver time is relevant (pre/post
processing not critical)  Grid Computing Facility
3. Entire model run including pre processing /
optimization / post processing is costly  Parallel
execution of entire model in the cloud
GENERAL ALGEBRAIC MODELING SYSTEM
61
Application - Scenario Solver
 Generation of Efficient Frontiers
 GAMS/CPLEX solution pool to
collect 1,000,000+ solutions of a
small MIP
 Compact representation of
solutions
 Uses an ACE algorithm to filter out
dominated solutions
GENERAL ALGEBRAIC MODELING SYSTEM
62
 Scenario Solver and Parallel Combined
Implementation Number of
MIP models
Solve time Rest of
algorithm
Total time
Traditional
GAMS loop
100,000 1068 sec 169 sec 1237 sec
Scenario Solver 100,000 293 sec 166 sec 459 sec
Implementation Number of
MIP models
Worker
Threads
Parallel sub-
problem time
Rest of
algorithm
(serial)
Total
time
Parallel +
Scenario Solver
100,000 4 116 sec 67 sec 183 sec
http://yetanothermathprogrammingconsultant.blogspot.de/2012/04/parallel-gams-jobs-2.html
Application - Scenario Solver
GENERAL ALGEBRAIC MODELING SYSTEM
63
Application - Grid Computing Facility
 4096 MIP models on HT Condor
 Submission started Jan 11,16:00
 All jobs submitted by Jan 11, 23:00
 All jobs returned by Jan 12, 12:40
 20 hours wall time, 5,000 CPU hours
 Peak number of CPU’s: 500
GENERAL ALGEBRAIC MODELING SYSTEM
64
Application – Cloud Computing
 Task: Solve 1,000 scenarios (MIPs, ~1 hour per
scenario) once a week overnight in parallel
 Implementation:
 Amazon Cloud: 1000 parallel machines
(instances), Python, GAMS + OO API
 Issues: Automation / Licensing / Security
 Hardware Costs / run: $70!
(1,000 instances/run * $0.07 instance / hour)
xyz – Energy Company
GENERAL ALGEBRAIC MODELING SYSTEM
65
Agenda
GAMS – Elements and Example
Scenarios in GAMS
Some Enhancements
GENERAL ALGEBRAIC MODELING SYSTEM
66
Striving for Innovation and Compatibility
Models must benefit from:
Advancing hardware / New
Platforms
Enhanced / new solver and
solution technology
Improved / upcoming interfaces
to other systems
New Modeling and Solution
Concepts
Protect investments of Users
Life time of a model: 15+ years
New maintainer, platform,
solver, user interface
Backward Compatibility
Software Quality Assurance
GENERAL ALGEBRAIC MODELING SYSTEM
67
New Modeling and Solution Concepts
Examples:
 Bilevel Programs
 Extended Nonlinear Programs
 Stochastic Programming
 Disjunctive Programs
Issues:
 Breakouts of traditional Mathematical Programming classes
 Limited support with common model representation
 Incomplete/experimental solution approaches
 New and interesting solver features driven by implementation
choices  May break solver independence of models
Challenge:
 Find a concept that combines the essentials of new features
independent of the particular implementation choices.
GENERAL ALGEBRAIC MODELING SYSTEM
68
Extended Mathematical Programming
Experimental framework for automated mathematical
programming reformulations
Keep the language simple: Do not overload existing GAMS
notation
Use existing language features to specify additional model
features, structure, and semantics
Express extended model information in symbolic (source)
form and apply existing modeling/solution technology
Package new tools with the production system
The “GAMS” – Approach
 GAMS is conservative when it comes to syntax extensions
GENERAL ALGEBRAIC MODELING SYSTEM
69
Stochastic Programming in GAMS
EMP
Information
(uncertain Par.)
Reformulated
Model
(viewable)
Solution
MappingSolution
Intooriginalspace
Deterministic
Model
Translation
Solve with
established Algorithms
EMP/SP
 Simple interface to add uncertainty to
existing deterministic models
 (EMP) Keywords to describe
uncertainty include: discrete and
parametric random variables, stages,
chance constraints, Value at Risk, ...
 Available solution methods:
 Automatic generation of
Deterministic Equivalent (can be
solved with any solver)
 Specialized commercial algorithms
(DECIS, LINDO)
GENERAL ALGEBRAIC MODELING SYSTEM
70
Transport Example - Uncertain Demand
bf
Prob: 0.3
Val: 0.90
Prob: 0.5
Val: 1.00
Prob: 0.2
Val: 1.10
Decisions to make
 First-stage decision: How many units should be shipped “here and
now” (without knowing the outcome)
 Second-stage (recourse) decision:
 How can the model react if we do not ship enough?
 Penalties for “bad” first-stage decisions, e.g. buy additional
cases u(j) at the demand location:
costsp .. z =e= sum((i,j), c(i,j)*x(i,j))+
sum(j,0.3*u(j));
demandsp(j) .. sum(i, x(i,j)) =g= bf*b(j) - u(j) ;
Uncertain
demand factor bf
GENERAL ALGEBRAIC MODELING SYSTEM
71
Uncertain Demand - GAMS Algebra
GENERAL ALGEBRAIC MODELING SYSTEM
72
Uncertain Demand - Results
GENERAL ALGEBRAIC MODELING SYSTEM
73
Stochastic Programming in GAMS
 Start with a deterministic model and define uncertain model
parameters
 EMP/SP replaces these parameters and generates stochastic model
 EMP/SP supports:
 Discrete and continuous distributions
 Multi-stage problems
 Chance constraints
 Various Risk Measures (EV, VaR, CVaR)
 EMP/SP can use specialized algorithms (DECIS, LINDO) or create the
Deterministic Equivalent (free solver DE)
 Further Information:
http://www.gams.com/dd/docs/solvers/empsp/index.html
GENERAL ALGEBRAIC MODELING SYSTEM
74
Logical Constraints
 Example: If y=1 => x1 + x2 + x3=L= 0;
 EMP supports automatic reformulation of logical constraints (disjunctive
programming) in various formats, e.g.
 BigM-Formulation
constr01.. x1 + x2 + x3 =L= M*(1-y);
y ϵ {0,1};
 Indicator Constraints (CPLEX, XPRESS, SCIP):
constr01.. x1 + x2 + x3 =L= 0;
indic constr01$y 1
 Alternative: SOS1 (GUROBI):
constr01.. x1 + x2 + x3 =L= M;
SOS1:(y, M);
 Further Information:
http://www.gams.com/dd/docs/solvers/jams/index.html
GENERAL ALGEBRAIC MODELING SYSTEM
75
Quality Assurance at GAMS
 7 supported Platforms
 30+ Integrated Solvers
What are the impacts of
 new features
 updated or new solvers?
Is the new distribution backward compatible?
• …
GENERAL ALGEBRAIC MODELING SYSTEM
76
Quality Assurance - Motivation
Industry Academia
Focus on reliability Focus on performance
Quality Assurance
Essential component in most industries
Important in most software engineering sectors
Mathematical Programming
Less attention to quality assurance (small community)
Specific QA issues for modeling systems (initially
expensive)
Different focus for industry and academia
GENERAL ALGEBRAIC MODELING SYSTEM
77
Quality Test Model Library
Tests to verify proper behavior of the system
More than 680 quality test models, each containing
numerous pass/fail tests
Assurance about the basic functionality of the software!
Give the tools in the hand of the user: Included in any
distribution!
Automatically executed every night for all solver
combinations:
 13,000+ runs / platform (all tests)
 Test summaries with different level of information
GENERAL ALGEBRAIC MODELING SYSTEM
78
Nightly Quality Tests: Results
GENERAL ALGEBRAIC MODELING SYSTEM
79
Nightly Quality Tests: Reports
GENERAL ALGEBRAIC MODELING SYSTEM
80
GAMS/CONVERT
Transforms a GAMS model instance into a scalar model into
different formats: Models can then be passed on to others
for investigation without confidentiality being lost
A way of sharing GAMS test problems for use with other
modeling systems or solvers
More than 25 target formats
GENERAL ALGEBRAIC MODELING SYSTEM
81
GAMS/CONVERT - Example
GAMS Code Scalar Model
GENERAL ALGEBRAIC MODELING SYSTEM
82
Protecting IP and Sensitive Data
Obfuscate or hide sensitive information
 Extrinsic function libraries
 External Equations
 Secure (encrypted) binary source files
 Obfuscated binary file: Obfuscates all names
and other documentation related to a specific
model instance
GENERAL ALGEBRAIC MODELING SYSTEM
83
Obfuscated Binary File - Example
Reduced LP has 5 rows, 6 columns, and 12 nonzeros.
Presolve time = 0.00 sec. (0.00 ticks)
Iteration Dual Objective In Variable Out Variable
1 73.125000 x(seattle.new-york) demand(new-york) slack
2 119.025000 x(seattle.chicago) demand(chicago) slack
3 153.675000 x(san-diego.topeka) demand(topeka) slack
4 153.675000 x(san-diego.new-york) supply(seattle) slack
LP status(1): optimal
Reduced LP has 5 rows, 6 columns, and 12 nonzeros.
Presolve time = 0.00 sec. (0.00 ticks)
Iteration Dual Objective In Variable Out Variable
1 73.125000H('"!!!!!!'.'"!!!!!!!')A00002('"!!!!!!!' slack
2 119.025000 H('"!!!!!!'.'#!!!!!!')A00002('#!!!!!!') slack
3 153.675000H('"!!!!!!!!'.'"!!!!!') A00002('"!!!!!') slack
4 153.675000H('"!!!!!!!!'.'"!!!!!!!A00001('"!!!!!!') slack
LP status(1): optimal
Solver Log
Obfuscated
Normal
GENERAL ALGEBRAIC MODELING SYSTEM
84
Obfuscated Binary File - Example
Looking at Results
Obfuscated
Normal
GENERAL ALGEBRAIC MODELING SYSTEM
85
Obfuscated Binary File - Example
New options
 saveobfuscate (so) and xsaveobfuscate (xso): generate obfuscated binary
file (regular or compressed)
 restartNamed (rn) : brings back original names when restarting from an obfuscated
binary file
Example
 Compile GAMS model into named and obfuscated binary file:
gams trnsport a=c s=0named saveobfuscate=0anon
 Move obfuscated binary file to non-secure machine, execute it, and save (obfuscated)
to a gdx file: gams dummy r=0anon s=1anon gdx=demo
 Bring new (still obfuscated) save file with results back to safe machine and do continued
compilation with reporting and export:
gams dummy r=1anon restartNamed=0named gdx=res
GENERAL ALGEBRAIC MODELING SYSTEM
86
Model2Tex
 Translates a GAMS model instance into Latex Format
gams trnsport docfile=trans
model2tex trans
GENERAL ALGEBRAIC MODELING SYSTEM
88
What else is new?
 http://www.gams.com/help/index.jsp
GENERAL ALGEBRAIC MODELING SYSTEM
89
Summary
GAMS – Elements, Examples, and
Enhancements
• Simple, but powerful language
• Designed to interact, different layers (platform, solver, data, interface)
• Evolution through more than 35 years of R&D and user feedback
• Maturity through experience and rigorous testing
Striving for Innovation and Compatibility
• Provide cutting edge technology
• Increase productivity
• Don’t lock developers and users into a certain environment
• Protect investments of users
GAMS Development Corp. GAMS Software GmbH www.gams.com
Thank YouEurope
GAMS Software GmbH
P.O. Box 40 59
50216 Frechen, Germany
Phone: +49 221 949 9170
Fax: +49 221 949 9171
info@gams.de
USA
GAMS Development Corp.
1217 Potomac Street, NW
Washington, DC 20007, USA
Phone: +1 202 342 0180
Fax: +1 202 342 0181
sales@gams.com

More Related Content

Viewers also liked

Mrp 2 Manufact Resou Plannin
Mrp 2 Manufact Resou PlanninMrp 2 Manufact Resou Plannin
Mrp 2 Manufact Resou Planninmenonroopesh
 
MRP1 vs MRP2
MRP1 vs MRP2MRP1 vs MRP2
MRP1 vs MRP2Ari Limpo
 
manufacturing resource planning
manufacturing resource planningmanufacturing resource planning
manufacturing resource planningDinesh Nikam
 
Gams code for optimal pmu allocation
Gams code for optimal pmu allocationGams code for optimal pmu allocation
Gams code for optimal pmu allocationAlireza soroudi
 
MRP, MRP2 and ERP system in supply chain
MRP, MRP2 and ERP system in supply chainMRP, MRP2 and ERP system in supply chain
MRP, MRP2 and ERP system in supply chainSaad Munami
 

Viewers also liked (7)

Mrp 2 Manufact Resou Plannin
Mrp 2 Manufact Resou PlanninMrp 2 Manufact Resou Plannin
Mrp 2 Manufact Resou Plannin
 
Mrp ii
Mrp iiMrp ii
Mrp ii
 
MRP1 vs MRP2
MRP1 vs MRP2MRP1 vs MRP2
MRP1 vs MRP2
 
manufacturing resource planning
manufacturing resource planningmanufacturing resource planning
manufacturing resource planning
 
Gams code for optimal pmu allocation
Gams code for optimal pmu allocationGams code for optimal pmu allocation
Gams code for optimal pmu allocation
 
MRP I and MRP II
MRP I and MRP IIMRP I and MRP II
MRP I and MRP II
 
MRP, MRP2 and ERP system in supply chain
MRP, MRP2 and ERP system in supply chainMRP, MRP2 and ERP system in supply chain
MRP, MRP2 and ERP system in supply chain
 

Similar to GAMS 2015 Vienna

Recommendations for Building Machine Learning Software
Recommendations for Building Machine Learning SoftwareRecommendations for Building Machine Learning Software
Recommendations for Building Machine Learning SoftwareJustin Basilico
 
Justin Basilico, Research/ Engineering Manager at Netflix at MLconf SF - 11/1...
Justin Basilico, Research/ Engineering Manager at Netflix at MLconf SF - 11/1...Justin Basilico, Research/ Engineering Manager at Netflix at MLconf SF - 11/1...
Justin Basilico, Research/ Engineering Manager at Netflix at MLconf SF - 11/1...MLconf
 
Recommendations for Building Machine Learning Software
Recommendations for Building Machine Learning SoftwareRecommendations for Building Machine Learning Software
Recommendations for Building Machine Learning SoftwareJustin Basilico
 
AutoML for user segmentation: how to match millions of users with hundreds of...
AutoML for user segmentation: how to match millions of users with hundreds of...AutoML for user segmentation: how to match millions of users with hundreds of...
AutoML for user segmentation: how to match millions of users with hundreds of...Institute of Contemporary Sciences
 
Lessons Learned from Building Machine Learning Software at Netflix
Lessons Learned from Building Machine Learning Software at NetflixLessons Learned from Building Machine Learning Software at Netflix
Lessons Learned from Building Machine Learning Software at NetflixJustin Basilico
 
XGBoost: the algorithm that wins every competition
XGBoost: the algorithm that wins every competitionXGBoost: the algorithm that wins every competition
XGBoost: the algorithm that wins every competitionJaroslaw Szymczak
 
Distributed computing poli
Distributed computing poliDistributed computing poli
Distributed computing poliivascucristian
 
Applying Linear Optimization Using GLPK
Applying Linear Optimization Using GLPKApplying Linear Optimization Using GLPK
Applying Linear Optimization Using GLPKJeremy Chen
 
Spark-driven audience counting by Boris Trofimov
Spark-driven audience counting by Boris TrofimovSpark-driven audience counting by Boris Trofimov
Spark-driven audience counting by Boris TrofimovJavaDayUA
 
Production model lifecycle management 2016 09
Production model lifecycle management 2016 09Production model lifecycle management 2016 09
Production model lifecycle management 2016 09Greg Makowski
 
Model driven engineering for big data management systems
Model driven engineering for big data management systemsModel driven engineering for big data management systems
Model driven engineering for big data management systemsMarcos Almeida
 
Accelerating open science and AI with automated, portable, customizable and r...
Accelerating open science and AI with automated, portable, customizable and r...Accelerating open science and AI with automated, portable, customizable and r...
Accelerating open science and AI with automated, portable, customizable and r...Grigori Fursin
 
The embedded systems Model
The embedded systems ModelThe embedded systems Model
The embedded systems ModelAJAL A J
 
Scheduling advertisements on a web page to maximize revenue
Scheduling advertisements on a web page to maximize revenueScheduling advertisements on a web page to maximize revenue
Scheduling advertisements on a web page to maximize revenueShu-Jeng Hsieh
 
Optimization Computing Platform for the Construction Industry
Optimization Computing Platform for the Construction IndustryOptimization Computing Platform for the Construction Industry
Optimization Computing Platform for the Construction IndustryKostas Dimitriou
 
The Next Generation of Data Processing and Open Source
The Next Generation of Data Processing and Open SourceThe Next Generation of Data Processing and Open Source
The Next Generation of Data Processing and Open SourceDataWorks Summit/Hadoop Summit
 
Marketing Analytics with R Lifting Campaign Success Rates
Marketing Analytics with R Lifting Campaign Success RatesMarketing Analytics with R Lifting Campaign Success Rates
Marketing Analytics with R Lifting Campaign Success RatesRevolution Analytics
 
Machine learning on streams of data
Machine learning on streams of dataMachine learning on streams of data
Machine learning on streams of dataTomasz Sosiński
 
An Architecture and a Metamodel for Processing Analytic and Geographic Multil...
An Architecture and a Metamodel for Processing Analytic and Geographic Multil...An Architecture and a Metamodel for Processing Analytic and Geographic Multil...
An Architecture and a Metamodel for Processing Analytic and Geographic Multil...Beniamino Murgante
 
Audience counting at Scale
Audience counting at ScaleAudience counting at Scale
Audience counting at Scaleb0ris_1
 

Similar to GAMS 2015 Vienna (20)

Recommendations for Building Machine Learning Software
Recommendations for Building Machine Learning SoftwareRecommendations for Building Machine Learning Software
Recommendations for Building Machine Learning Software
 
Justin Basilico, Research/ Engineering Manager at Netflix at MLconf SF - 11/1...
Justin Basilico, Research/ Engineering Manager at Netflix at MLconf SF - 11/1...Justin Basilico, Research/ Engineering Manager at Netflix at MLconf SF - 11/1...
Justin Basilico, Research/ Engineering Manager at Netflix at MLconf SF - 11/1...
 
Recommendations for Building Machine Learning Software
Recommendations for Building Machine Learning SoftwareRecommendations for Building Machine Learning Software
Recommendations for Building Machine Learning Software
 
AutoML for user segmentation: how to match millions of users with hundreds of...
AutoML for user segmentation: how to match millions of users with hundreds of...AutoML for user segmentation: how to match millions of users with hundreds of...
AutoML for user segmentation: how to match millions of users with hundreds of...
 
Lessons Learned from Building Machine Learning Software at Netflix
Lessons Learned from Building Machine Learning Software at NetflixLessons Learned from Building Machine Learning Software at Netflix
Lessons Learned from Building Machine Learning Software at Netflix
 
XGBoost: the algorithm that wins every competition
XGBoost: the algorithm that wins every competitionXGBoost: the algorithm that wins every competition
XGBoost: the algorithm that wins every competition
 
Distributed computing poli
Distributed computing poliDistributed computing poli
Distributed computing poli
 
Applying Linear Optimization Using GLPK
Applying Linear Optimization Using GLPKApplying Linear Optimization Using GLPK
Applying Linear Optimization Using GLPK
 
Spark-driven audience counting by Boris Trofimov
Spark-driven audience counting by Boris TrofimovSpark-driven audience counting by Boris Trofimov
Spark-driven audience counting by Boris Trofimov
 
Production model lifecycle management 2016 09
Production model lifecycle management 2016 09Production model lifecycle management 2016 09
Production model lifecycle management 2016 09
 
Model driven engineering for big data management systems
Model driven engineering for big data management systemsModel driven engineering for big data management systems
Model driven engineering for big data management systems
 
Accelerating open science and AI with automated, portable, customizable and r...
Accelerating open science and AI with automated, portable, customizable and r...Accelerating open science and AI with automated, portable, customizable and r...
Accelerating open science and AI with automated, portable, customizable and r...
 
The embedded systems Model
The embedded systems ModelThe embedded systems Model
The embedded systems Model
 
Scheduling advertisements on a web page to maximize revenue
Scheduling advertisements on a web page to maximize revenueScheduling advertisements on a web page to maximize revenue
Scheduling advertisements on a web page to maximize revenue
 
Optimization Computing Platform for the Construction Industry
Optimization Computing Platform for the Construction IndustryOptimization Computing Platform for the Construction Industry
Optimization Computing Platform for the Construction Industry
 
The Next Generation of Data Processing and Open Source
The Next Generation of Data Processing and Open SourceThe Next Generation of Data Processing and Open Source
The Next Generation of Data Processing and Open Source
 
Marketing Analytics with R Lifting Campaign Success Rates
Marketing Analytics with R Lifting Campaign Success RatesMarketing Analytics with R Lifting Campaign Success Rates
Marketing Analytics with R Lifting Campaign Success Rates
 
Machine learning on streams of data
Machine learning on streams of dataMachine learning on streams of data
Machine learning on streams of data
 
An Architecture and a Metamodel for Processing Analytic and Geographic Multil...
An Architecture and a Metamodel for Processing Analytic and Geographic Multil...An Architecture and a Metamodel for Processing Analytic and Geographic Multil...
An Architecture and a Metamodel for Processing Analytic and Geographic Multil...
 
Audience counting at Scale
Audience counting at ScaleAudience counting at Scale
Audience counting at Scale
 

Recently uploaded

Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...stazi3110
 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio, Inc.
 
Folding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesFolding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesPhilip Schwarz
 
React Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaReact Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaHanief Utama
 
chapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptchapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptkotipi9215
 
software engineering Chapter 5 System modeling.pptx
software engineering Chapter 5 System modeling.pptxsoftware engineering Chapter 5 System modeling.pptx
software engineering Chapter 5 System modeling.pptxnada99848
 
Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmSujith Sukumaran
 
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024StefanoLambiase
 
Implementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureImplementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureDinusha Kumarasiri
 
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfGOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfAlina Yurenko
 
The Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdfThe Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdfPower Karaoke
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...gurkirankumar98700
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...MyIntelliSource, Inc.
 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideChristina Lin
 
Unveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsUnveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsAhmed Mohamed
 
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...Christina Lin
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackVICTOR MAESTRE RAMIREZ
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...MyIntelliSource, Inc.
 
What is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWhat is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWave PLM
 

Recently uploaded (20)

Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
 
Folding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesFolding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a series
 
React Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaReact Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief Utama
 
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
 
chapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptchapter--4-software-project-planning.ppt
chapter--4-software-project-planning.ppt
 
software engineering Chapter 5 System modeling.pptx
software engineering Chapter 5 System modeling.pptxsoftware engineering Chapter 5 System modeling.pptx
software engineering Chapter 5 System modeling.pptx
 
Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalm
 
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
 
Implementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureImplementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with Azure
 
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfGOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
 
The Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdfThe Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdf
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
 
Unveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsUnveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML Diagrams
 
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStack
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
 
What is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWhat is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need It
 

GAMS 2015 Vienna

  • 1. GAMS Development Corp. GAMS Software GmbH www.gams.com An Introduction Tim Johannessen & Franz Nelißen GAMS Software GmbH
  • 2. GENERAL ALGEBRAIC MODELING SYSTEM 2 Company  Roots: World Bank, 1976  Went commercial in 1987  Locations  GAMS Development Corporation (Washington)  GAMS Software GmbH (Germany)  Product: The General Algebraic Modeling System
  • 3. GENERAL ALGEBRAIC MODELING SYSTEM 3 Agenda GAMS – Elements and Examples Scenarios in GAMS Some Enhancements
  • 4. GENERAL ALGEBRAIC MODELING SYSTEM 4 1976 - Two World Bank Slides The Origin
  • 5. GENERAL ALGEBRAIC MODELING SYSTEM 5 1976 - Two World Bank Slides The Vision GAMS came into being!
  • 6. GENERAL ALGEBRAIC MODELING SYSTEM 6 What did this give us? Simplified model development & maintenance Increased productivity tremendously Made mathematical optimization available to a broader audience (domain experts) 2012 INFORMS Impact Prize
  • 7. GENERAL ALGEBRAIC MODELING SYSTEM 7 1976 GAMS - Evolution Now
  • 8. GENERAL ALGEBRAIC MODELING SYSTEM 8 Broad User Community and Network 25+ Years GAMS Development 11,500+ licenses Users: 50% academic, 50% commercial GAMS used in more than 120 countries Uniform interface to more than 30 solvers
  • 9. GENERAL ALGEBRAIC MODELING SYSTEM 9 Broad Range of Application Areas 25+ Years GAMS Development Agricultural Economics Applied General Equilibrium Chemical Engineering Economic Development Econometrics Energy Environmental Economics Engineering Finance Forestry International Trade Logistics Macro Economics Military Management Science/OR Mathematics Micro Economics Physics
  • 10. GENERAL ALGEBRAIC MODELING SYSTEM 10 Foundation of GAMS Powerful algebraic modeling language Open architecture and interfaces to other systems, independent layers
  • 11. GENERAL ALGEBRAIC MODELING SYSTEM 11 Powerful Declarative Language Similar to mathematical notation Easy to learn - few basic language elements: sets, parameters, variables, equations, models Model is executable (algebraic) description of the problem
  • 12. GENERAL ALGEBRAIC MODELING SYSTEM 12 Mix of Declarative and Imperative Elements Advantages:  Build complex problem algorithms within GAMS  Simplified interaction with other systems:  Data exchange  GAMS process control Control Flow Statements (e.g. loops, for, if,…), macros and functions
  • 13. GENERAL ALGEBRAIC MODELING SYSTEM 13 Strong Development Environment GAMS IDE  Project management  Editor / Syntax coloring / Spell checks  Tree view / Syntax-error navigation  Model Debugging & Profiling  Solver selection & setup  Data viewer  Export  Charting  GAMS Processes Control
  • 14. GENERAL ALGEBRAIC MODELING SYSTEM 14 Uniform System Documentation  Windows Help, HTML, Pdf
  • 15. GENERAL ALGEBRAIC MODELING SYSTEM 15 Free Model Libraries  More than 1400 models!
  • 16. GENERAL ALGEBRAIC MODELING SYSTEM 16 Example: A Transportation Model Minimize Transportation cost subject to Demand satisfaction at markets Supply constraints 350 San Diego 600 275 300 325 Topeka 1.4 2.5 1.8 1.8 1.7 2.5 Supply (cases) Demand (cases) Distance (thousand miles) New York Chicago Seattle Freight: $90 case / thousand miles
  • 17. GENERAL ALGEBRAIC MODELING SYSTEM 17 Example: Mathematical Model Indices: 𝑖 (Canning plants) 𝑗 (Markets) Decision variables: 𝑥𝑖𝑗 (Number of cases to ship) Data: 𝑐𝑖𝑗 (Transport cost per case) 𝑎𝑖 (Capacity in cases) 𝑏𝑖 (Demand in cases) min 𝑐𝑖𝑗 ∙ 𝑥𝑖𝑗𝑗𝑖 (Minimize total transportation cost) subject to 𝑥𝑖𝑗𝑗 ≤ 𝑎𝑖 ∀ 𝑖 (Shipments from each plant ≤ supply capacity) 𝑥𝑖𝑗𝑖 ≥ 𝑏𝑗 ∀ 𝑗 (Shipments to each market ≥ demand) 𝑥𝑖𝑗 ≥ 0 ∀𝑖, 𝑗 (Do not ship from market to plant) 𝑖, 𝑗 ∈ ℕ
  • 18. GENERAL ALGEBRAIC MODELING SYSTEM 18 Example: GAMS Algebra
  • 19. GENERAL ALGEBRAIC MODELING SYSTEM 19 Example: Data Input $gdxin data.gdx $load i<d.dim1 j<d.dim2 d b a c $include data.gms
  • 20. GENERAL ALGEBRAIC MODELING SYSTEM 20 Example: Results
  • 21. GENERAL ALGEBRAIC MODELING SYSTEM 21 + MIP Model: Minimum Shipments • Shipment volume: x (continuous variable) • Discrete decision: ship (binary variable) add constraints: 𝑥𝑖,𝑗 ≥ 100 ∙ 𝑠ℎ𝑖𝑝𝑖,𝑗 ∀ 𝑖, 𝑗 (if ship=1, then ship at least 100) 𝑥𝑖,𝑗 ≤ 𝑏𝑖𝑔𝑀 ∙ 𝑠ℎ𝑖𝑝𝑖,𝑗 ∀ 𝑖, 𝑗 (if ship=0, then do not ship at all) 𝑠ℎ𝑖𝑝𝑖,𝑗 ∈ 0,1 100 ship = 0 ship = 1 0 Cost ($) Not possible x (Number of cases)
  • 22. GENERAL ALGEBRAIC MODELING SYSTEM 22 + MIP Model: GAMS Algebra
  • 23. GENERAL ALGEBRAIC MODELING SYSTEM 23 + MIP Model: Results
  • 24. GENERAL ALGEBRAIC MODELING SYSTEM 24 + non-linear: Cost Savings 100 ship = 0 ship = 1 0 Cost ($) Not possible The cost per case decreases with a increasing shipment volume Replace: min 𝑖 𝑗 𝑐𝑖𝑗 ∙ 𝑥𝑖𝑗 (Minimize total transportation cost) With min 𝑖 𝑗 𝑐𝑖𝑗 ∙ 𝑥𝑖𝑗 𝒃𝒆𝒕𝒂 (Minimize total transportation cost) x (Number of cases)
  • 25. GENERAL ALGEBRAIC MODELING SYSTEM 25 + non-linear: GAMS Algebra
  • 26. GENERAL ALGEBRAIC MODELING SYSTEM 26 + non-linear Results
  • 27. GENERAL ALGEBRAIC MODELING SYSTEM 27 Foundation of GAMS Powerful algebraic modeling language Open architecture and interfaces to other systems, independent layers Model Platform Solver Data Interface
  • 28. GENERAL ALGEBRAIC MODELING SYSTEM 28 Independence of Model and Platform Supported Platforms Model Platform Solver Data Interface  Move models between platforms with ease!
  • 29. GENERAL ALGEBRAIC MODELING SYSTEM 29 Model Platform Solver Data Interface Local and distributed / remote execution  Distributed Algorithm (CPLEX, GUROBI)  Grid Computing Facility  NEOS (Kestrel) Independence of Model and Platform
  • 30. GENERAL ALGEBRAIC MODELING SYSTEM 30 GAMS/Kestrel Model transport /all/; Option lp=kestrel; transport.optfile=1; $onecho > kestrel.opt kestrel_solver xpress $offecho Solve transport using lp minimizing z; --- Executing KESTREL: elapsed 0:00:00.006 Connecting to: http://neos-server.org:3332 NEOS Solver: xpress NEOS job#=3631352, pass=iJLdAkhP Check the following URL for progress report : http://neos-server.org/neos/cgi-bin/nph-neos- solver.cgi?admin=results&jobnumber=3631352&pass=i JLdAkhP Job 3631352 dispatched password: iJLdAkhP ---------- Begin Solver Output ----------- Job submitted to NEOS HTCondor pool. FICO-Xpress 24.3.3 r48116 Released Sep 19, 2014 LEG x86 64bit/Linux Local Machine Remote Cluster (NEOS) Remote Solver Execution on NEOS Servers Stay in your GAMS environment Results are being processed as with any local solver
  • 31. GENERAL ALGEBRAIC MODELING SYSTEM 31 GAMS: Model building and interaction with solvers & environments Solver: Solve an model instance (model + numerical data) using mathematical optimization Model Platform Solver Data Interface Independence of Model and Solver  GAMS is not a Solver!
  • 32. GENERAL ALGEBRAIC MODELING SYSTEM 32 Independence of Model and Solver Model Platform Solver Data Interface  All major commercial and academic solvers integrated (30+ )  Wide range of available model types (12+)  Average number of commercial solvers per license:  Academic clients: 2.9  Commercial clients: 2.2
  • 33. GENERAL ALGEBRAIC MODELING SYSTEM 33 Independence of Model and Solver All major commercial LP/MIP solver Open Source Solver (COIN) Also solver for NLP, MINLP, global, and stochastic optimization One environment for a wide range of model types and solvers  More than 30 Solvers integrated! Model Platform Solver Data Interface
  • 34. GENERAL ALGEBRAIC MODELING SYSTEM 34 Independence of Model and Solver Model Platform Solver Data Interface Uniform interface to all major solvers:  Switching between solvers with one statement: option solver= ….;  Unified Documentation  Licensing (GAMS as a „license broker“)
  • 35. GENERAL ALGEBRAIC MODELING SYSTEM 35 Independence of Model and Solver Model Platform Solver Data Interface CyBio Scheduler  Scheduling software for high throughput screening  Used in the pharmaceutical industry (drug discovery)  Model optimizes throughput of robotic screening systems  Solver  COIN for smaller instances  Commercial MIP solver for large problems  Developed by analytikjena
  • 36. GENERAL ALGEBRAIC MODELING SYSTEM 36 Independence of Model and Solver Model Platform Solver Data Interface CAPRI  Global agricultural sector models with focus on EU27 members  Evaluates impacts of agricultural and trade policies on production income, markets, trade, and the environment  Different NLP solvers  Open source approach with an active network of developers and users coordinated by University of Bonn
  • 37. GENERAL ALGEBRAIC MODELING SYSTEM 37 Independence of Model and Data Model Platform Solver Data Interface  Declarative Modeling
  • 38. GENERAL ALGEBRAIC MODELING SYSTEM 38 Independence of Model and Data Model Platform Solver Data Interface file fy /result.csv/; fy.pc = 5; fy.nd = 4; loop((i,j)$x.l(i,j), put fy i.te(i) j.te(j) x.l(i,j) /; ); "seattle","new-york",50.00 "seattle","chicago",300.00 "san-diego","new-york",275.00 "san-diego","topeka",275.00 Initial Model Development – ASCII  Input: Part of model input ($include file.gms)  Output: Display / Put Command (File)
  • 39. GENERAL ALGEBRAIC MODELING SYSTEM 39 Independence of Model and Data GDX: Binary Data layer (“contract”) between GAMS and applications  Fast exchange of data at any stage  Platform independent  Direct GDX interfaces and OO APIs  No license required  Scenario Management Support Model Platform Solver Data Interface Application GAMS SOLVER GDX
  • 40. GENERAL ALGEBRAIC MODELING SYSTEM 40 Independence of Model and Data Model Platform Solver Data Interface  (GDX) Tools included in the GAMS distribution
  • 41. GENERAL ALGEBRAIC MODELING SYSTEM 41 Creating a GDX file Model Platform Solver Data Interface
  • 42. GENERAL ALGEBRAIC MODELING SYSTEM 42 Looking at a GDX file Model Platform Solver Data Interface GAMS IDE-GDX Browser  Data cube with Drag&Drop  Searching and Charting  Export to Excel, HTML,…
  • 43. GENERAL ALGEBRAIC MODELING SYSTEM 43 GDX2XLS gdx2xls rep.gdx shellexecute rep.xlsx  Dumping a GDX container to Excel
  • 44. GENERAL ALGEBRAIC MODELING SYSTEM 44 GDXXRW – Accessing Excel Files $call GDXXRW dist.xlsx par=d rng=A1 rdim=2 cdim=0 $if errorlevel 1 $abort "Problems with Excel file!" $gdxin dist $load d
  • 45. GENERAL ALGEBRAIC MODELING SYSTEM 45 GDXDiff  Comparing two gdx files
  • 46. GENERAL ALGEBRAIC MODELING SYSTEM 46 GDXDiff - Results
  • 47. GENERAL ALGEBRAIC MODELING SYSTEM 48 Independence of Model and User Interface Model Platform Solver Data Interface 1 Open architecture and interfaces to other systems  No preference for a particular user interface 2 (OO) Application Programming Interfaces 3 Smart Links to popular environments: Excel, MATLAB, R, ...
  • 48. GENERAL ALGEBRAIC MODELING SYSTEM 49 Independence of Model and User Interface API’s  Low Level  Object Oriented: .Net, Java, Python  No modeling capability: Model is written in GAMS  Wrapper class that encapsulates a GAMS model Model Platform Solver Data Interface
  • 49. GENERAL ALGEBRAIC MODELING SYSTEM 50 Simple Encapsulation of a GAMS Model Main Program Wrapper Class Data/Results Run() Options GAMS Model Simple API interface  Properties to communicate input data and results  Properties to change options like the solver to use  Run() method to run the model Model Platform Solver Data Interface
  • 50. GENERAL ALGEBRAIC MODELING SYSTEM 51 Smart Links to other Applications MS ExcelMatLabR  User keeps working in his productive tool environment  Application accesses all optimization capabilities of GAMS through API  Visualization and analysis of model data and results in the application Model Platform Solver Data Interface
  • 51. GENERAL ALGEBRAIC MODELING SYSTEM 52 Agenda GAMS – Elements and Examples Scenarios in GAMS Some Enhancements
  • 52. GENERAL ALGEBRAIC MODELING SYSTEM 53 Solving Scenarios Model Generation Optimization (Solver) Model Update
  • 53. GENERAL ALGEBRAIC MODELING SYSTEM 54 Simple Serial Solve Loop Set s /s*s10/; Parameter A_s(s,i,j) “scenario data”, xlo_s(s,i,j) ”scenario lower bound for x.l”, em_s(s,i) “scenario solution for e.m; Loop(s, A(i,j) = A_s(s,i,j); x.lo(j)=xlo_s(s,j); solve mymodel min z using lp; xl_s(s,j) = x.l(j); em_s(s,i) = e.m(i); ); Generation Solution Update Loop
  • 54. GENERAL ALGEBRAIC MODELING SYSTEM 55 Setting Solve time (secs) Solvelink=%Solvelink.ChainScript% 52.221 Solvelink=%Solvelink.CallModule% 37.366 Solvelink=%Solvelink.LoadLibrary% 03.252 trnsport.gms (LP) solved 500 times with CPLEX: Loop(s, d(i,j) = dd(s,i,j); f = ff(s); solve transport using lp minimizing z; rep(s) = transport.objval; ); Simple Serial Solve - Performance
  • 55. GENERAL ALGEBRAIC MODELING SYSTEM 56 Scenario Solver (GUSS) • Generates model once and updates the algebraic model keeping the model “hot” inside the solver • Platform independent, works with all solvers • Performance close to native solver API • Example: Generation Solution Update Set s /s*s10/; Parameter A_s(s,i,j) “scenario data”, xlo_s(s,i,j) ”scenario lower bound for x.l”, em_s(s,i) “scenario solution for e.m; Set dict / s. scenario. ´´, A. param. A_s, x. lower. xlo_s, x. level. xl_s, e. marginal. em_s /; /; solve mymodel min z using lp scenario dict;
  • 56. GENERAL ALGEBRAIC MODELING SYSTEM 57 Scenario Solver - Performance Setting Solve time (secs) Loop: Solvelink=%Solvelink.Chainscript (default) 7,204 Loop: Solvelink=%Solvelink.LoadLibrary% 2,481 GAMS Scenario Solver 392 CPLEX Concert Technology 210 18.3 1.86 Factor Example: Stochastic model with 66,320 linear problems
  • 57. GENERAL ALGEBRAIC MODELING SYSTEM 58 Grid Computing Facility GAMS jobs in a distributed environment Scalable: supports large grids, but also works on local machine Platform independent, works with all solvers/model types Only minor changes to model required 1. Submission of jobs 2. “Grid Middleware” – Distribution of jobs – Job execution 3. Collection of solutions 4. Processing of results GAMS GAMS Job 1 GAMS Job 2 GAMS Job .. GAMS Job n GAMS
  • 58. GENERAL ALGEBRAIC MODELING SYSTEM 59 Grid Computing Facility - Example  GAMS Model Library: Transgrid
  • 59. GENERAL ALGEBRAIC MODELING SYSTEM 60 Solving “many” Scenarios 1. Small Ratio of solver time / GAMS time  Scenario Solver 2. Large ratio i.e. only solver time is relevant (pre/post processing not critical)  Grid Computing Facility 3. Entire model run including pre processing / optimization / post processing is costly  Parallel execution of entire model in the cloud
  • 60. GENERAL ALGEBRAIC MODELING SYSTEM 61 Application - Scenario Solver  Generation of Efficient Frontiers  GAMS/CPLEX solution pool to collect 1,000,000+ solutions of a small MIP  Compact representation of solutions  Uses an ACE algorithm to filter out dominated solutions
  • 61. GENERAL ALGEBRAIC MODELING SYSTEM 62  Scenario Solver and Parallel Combined Implementation Number of MIP models Solve time Rest of algorithm Total time Traditional GAMS loop 100,000 1068 sec 169 sec 1237 sec Scenario Solver 100,000 293 sec 166 sec 459 sec Implementation Number of MIP models Worker Threads Parallel sub- problem time Rest of algorithm (serial) Total time Parallel + Scenario Solver 100,000 4 116 sec 67 sec 183 sec http://yetanothermathprogrammingconsultant.blogspot.de/2012/04/parallel-gams-jobs-2.html Application - Scenario Solver
  • 62. GENERAL ALGEBRAIC MODELING SYSTEM 63 Application - Grid Computing Facility  4096 MIP models on HT Condor  Submission started Jan 11,16:00  All jobs submitted by Jan 11, 23:00  All jobs returned by Jan 12, 12:40  20 hours wall time, 5,000 CPU hours  Peak number of CPU’s: 500
  • 63. GENERAL ALGEBRAIC MODELING SYSTEM 64 Application – Cloud Computing  Task: Solve 1,000 scenarios (MIPs, ~1 hour per scenario) once a week overnight in parallel  Implementation:  Amazon Cloud: 1000 parallel machines (instances), Python, GAMS + OO API  Issues: Automation / Licensing / Security  Hardware Costs / run: $70! (1,000 instances/run * $0.07 instance / hour) xyz – Energy Company
  • 64. GENERAL ALGEBRAIC MODELING SYSTEM 65 Agenda GAMS – Elements and Example Scenarios in GAMS Some Enhancements
  • 65. GENERAL ALGEBRAIC MODELING SYSTEM 66 Striving for Innovation and Compatibility Models must benefit from: Advancing hardware / New Platforms Enhanced / new solver and solution technology Improved / upcoming interfaces to other systems New Modeling and Solution Concepts Protect investments of Users Life time of a model: 15+ years New maintainer, platform, solver, user interface Backward Compatibility Software Quality Assurance
  • 66. GENERAL ALGEBRAIC MODELING SYSTEM 67 New Modeling and Solution Concepts Examples:  Bilevel Programs  Extended Nonlinear Programs  Stochastic Programming  Disjunctive Programs Issues:  Breakouts of traditional Mathematical Programming classes  Limited support with common model representation  Incomplete/experimental solution approaches  New and interesting solver features driven by implementation choices  May break solver independence of models Challenge:  Find a concept that combines the essentials of new features independent of the particular implementation choices.
  • 67. GENERAL ALGEBRAIC MODELING SYSTEM 68 Extended Mathematical Programming Experimental framework for automated mathematical programming reformulations Keep the language simple: Do not overload existing GAMS notation Use existing language features to specify additional model features, structure, and semantics Express extended model information in symbolic (source) form and apply existing modeling/solution technology Package new tools with the production system The “GAMS” – Approach  GAMS is conservative when it comes to syntax extensions
  • 68. GENERAL ALGEBRAIC MODELING SYSTEM 69 Stochastic Programming in GAMS EMP Information (uncertain Par.) Reformulated Model (viewable) Solution MappingSolution Intooriginalspace Deterministic Model Translation Solve with established Algorithms EMP/SP  Simple interface to add uncertainty to existing deterministic models  (EMP) Keywords to describe uncertainty include: discrete and parametric random variables, stages, chance constraints, Value at Risk, ...  Available solution methods:  Automatic generation of Deterministic Equivalent (can be solved with any solver)  Specialized commercial algorithms (DECIS, LINDO)
  • 69. GENERAL ALGEBRAIC MODELING SYSTEM 70 Transport Example - Uncertain Demand bf Prob: 0.3 Val: 0.90 Prob: 0.5 Val: 1.00 Prob: 0.2 Val: 1.10 Decisions to make  First-stage decision: How many units should be shipped “here and now” (without knowing the outcome)  Second-stage (recourse) decision:  How can the model react if we do not ship enough?  Penalties for “bad” first-stage decisions, e.g. buy additional cases u(j) at the demand location: costsp .. z =e= sum((i,j), c(i,j)*x(i,j))+ sum(j,0.3*u(j)); demandsp(j) .. sum(i, x(i,j)) =g= bf*b(j) - u(j) ; Uncertain demand factor bf
  • 70. GENERAL ALGEBRAIC MODELING SYSTEM 71 Uncertain Demand - GAMS Algebra
  • 71. GENERAL ALGEBRAIC MODELING SYSTEM 72 Uncertain Demand - Results
  • 72. GENERAL ALGEBRAIC MODELING SYSTEM 73 Stochastic Programming in GAMS  Start with a deterministic model and define uncertain model parameters  EMP/SP replaces these parameters and generates stochastic model  EMP/SP supports:  Discrete and continuous distributions  Multi-stage problems  Chance constraints  Various Risk Measures (EV, VaR, CVaR)  EMP/SP can use specialized algorithms (DECIS, LINDO) or create the Deterministic Equivalent (free solver DE)  Further Information: http://www.gams.com/dd/docs/solvers/empsp/index.html
  • 73. GENERAL ALGEBRAIC MODELING SYSTEM 74 Logical Constraints  Example: If y=1 => x1 + x2 + x3=L= 0;  EMP supports automatic reformulation of logical constraints (disjunctive programming) in various formats, e.g.  BigM-Formulation constr01.. x1 + x2 + x3 =L= M*(1-y); y ϵ {0,1};  Indicator Constraints (CPLEX, XPRESS, SCIP): constr01.. x1 + x2 + x3 =L= 0; indic constr01$y 1  Alternative: SOS1 (GUROBI): constr01.. x1 + x2 + x3 =L= M; SOS1:(y, M);  Further Information: http://www.gams.com/dd/docs/solvers/jams/index.html
  • 74. GENERAL ALGEBRAIC MODELING SYSTEM 75 Quality Assurance at GAMS  7 supported Platforms  30+ Integrated Solvers What are the impacts of  new features  updated or new solvers? Is the new distribution backward compatible? • …
  • 75. GENERAL ALGEBRAIC MODELING SYSTEM 76 Quality Assurance - Motivation Industry Academia Focus on reliability Focus on performance Quality Assurance Essential component in most industries Important in most software engineering sectors Mathematical Programming Less attention to quality assurance (small community) Specific QA issues for modeling systems (initially expensive) Different focus for industry and academia
  • 76. GENERAL ALGEBRAIC MODELING SYSTEM 77 Quality Test Model Library Tests to verify proper behavior of the system More than 680 quality test models, each containing numerous pass/fail tests Assurance about the basic functionality of the software! Give the tools in the hand of the user: Included in any distribution! Automatically executed every night for all solver combinations:  13,000+ runs / platform (all tests)  Test summaries with different level of information
  • 77. GENERAL ALGEBRAIC MODELING SYSTEM 78 Nightly Quality Tests: Results
  • 78. GENERAL ALGEBRAIC MODELING SYSTEM 79 Nightly Quality Tests: Reports
  • 79. GENERAL ALGEBRAIC MODELING SYSTEM 80 GAMS/CONVERT Transforms a GAMS model instance into a scalar model into different formats: Models can then be passed on to others for investigation without confidentiality being lost A way of sharing GAMS test problems for use with other modeling systems or solvers More than 25 target formats
  • 80. GENERAL ALGEBRAIC MODELING SYSTEM 81 GAMS/CONVERT - Example GAMS Code Scalar Model
  • 81. GENERAL ALGEBRAIC MODELING SYSTEM 82 Protecting IP and Sensitive Data Obfuscate or hide sensitive information  Extrinsic function libraries  External Equations  Secure (encrypted) binary source files  Obfuscated binary file: Obfuscates all names and other documentation related to a specific model instance
  • 82. GENERAL ALGEBRAIC MODELING SYSTEM 83 Obfuscated Binary File - Example Reduced LP has 5 rows, 6 columns, and 12 nonzeros. Presolve time = 0.00 sec. (0.00 ticks) Iteration Dual Objective In Variable Out Variable 1 73.125000 x(seattle.new-york) demand(new-york) slack 2 119.025000 x(seattle.chicago) demand(chicago) slack 3 153.675000 x(san-diego.topeka) demand(topeka) slack 4 153.675000 x(san-diego.new-york) supply(seattle) slack LP status(1): optimal Reduced LP has 5 rows, 6 columns, and 12 nonzeros. Presolve time = 0.00 sec. (0.00 ticks) Iteration Dual Objective In Variable Out Variable 1 73.125000H('"!!!!!!'.'"!!!!!!!')A00002('"!!!!!!!' slack 2 119.025000 H('"!!!!!!'.'#!!!!!!')A00002('#!!!!!!') slack 3 153.675000H('"!!!!!!!!'.'"!!!!!') A00002('"!!!!!') slack 4 153.675000H('"!!!!!!!!'.'"!!!!!!!A00001('"!!!!!!') slack LP status(1): optimal Solver Log Obfuscated Normal
  • 83. GENERAL ALGEBRAIC MODELING SYSTEM 84 Obfuscated Binary File - Example Looking at Results Obfuscated Normal
  • 84. GENERAL ALGEBRAIC MODELING SYSTEM 85 Obfuscated Binary File - Example New options  saveobfuscate (so) and xsaveobfuscate (xso): generate obfuscated binary file (regular or compressed)  restartNamed (rn) : brings back original names when restarting from an obfuscated binary file Example  Compile GAMS model into named and obfuscated binary file: gams trnsport a=c s=0named saveobfuscate=0anon  Move obfuscated binary file to non-secure machine, execute it, and save (obfuscated) to a gdx file: gams dummy r=0anon s=1anon gdx=demo  Bring new (still obfuscated) save file with results back to safe machine and do continued compilation with reporting and export: gams dummy r=1anon restartNamed=0named gdx=res
  • 85. GENERAL ALGEBRAIC MODELING SYSTEM 86 Model2Tex  Translates a GAMS model instance into Latex Format gams trnsport docfile=trans model2tex trans
  • 86. GENERAL ALGEBRAIC MODELING SYSTEM 88 What else is new?  http://www.gams.com/help/index.jsp
  • 87. GENERAL ALGEBRAIC MODELING SYSTEM 89 Summary GAMS – Elements, Examples, and Enhancements • Simple, but powerful language • Designed to interact, different layers (platform, solver, data, interface) • Evolution through more than 35 years of R&D and user feedback • Maturity through experience and rigorous testing Striving for Innovation and Compatibility • Provide cutting edge technology • Increase productivity • Don’t lock developers and users into a certain environment • Protect investments of users
  • 88. GAMS Development Corp. GAMS Software GmbH www.gams.com Thank YouEurope GAMS Software GmbH P.O. Box 40 59 50216 Frechen, Germany Phone: +49 221 949 9170 Fax: +49 221 949 9171 info@gams.de USA GAMS Development Corp. 1217 Potomac Street, NW Washington, DC 20007, USA Phone: +1 202 342 0180 Fax: +1 202 342 0181 sales@gams.com