Modelling. Christina Burt, Stephen J. Maher, Jakob Witzig. 29th September Zuse Institute Berlin Berlin, Germany

Size: px
Start display at page:

Download "Modelling. Christina Burt, Stephen J. Maher, Jakob Witzig. 29th September Zuse Institute Berlin Berlin, Germany"

Transcription

1 Modelling Christina Burt, Stephen J. Maher, Jakob Witzig Zuse Institute Berlin Berlin, Germany 29th September 2015

2 Modelling Languages Jakob Witzig Burt, Maher, Witzig Modelling 1 / 22

3 Modelling Languages: What are they? Algebraic Modelling Languages are high-level computer programming languages. They provide a concise, readable way to express/formulate a mathematical problem, do not solve the problems directly, but rather, call external solvers, generally contain a mix of declarative and procedural elements. Examples of modelling languages include Xpress-Mosel, ZIMPL, AIMMS, AMPL, GAMS and OPL. Burt, Maher, Witzig Modelling 2 / 22

4 Modelling Languages: Pros and Cons The benefits of using a modelling language to implement a model include: can be a fast way to implement a model, easy to learn due to few basic language elements; short learning curve to achieve high expressivity, syntax is usually very similar to mathematical notation, making it intuitive, simplified expression of some elements of math programming models, such as sets and logical expressions. Burt, Maher, Witzig Modelling 3 / 22

5 Modelling Languages: Pros and Cons ZIMPL: set Warehouses := {1,2,3,4}; set Plants := {1,2}; var transport[warehouses * Plants] integer; Gurobi: Warehouses = [1,2,3,4] Plants = [1,2] transport = [] for w in warehouses: transport.append([]) for p in plants: transport[w].append( m.addvar( obj=transcosts[w][p], name="trans%d.%d" % (p, w) )) Burt, Maher, Witzig Modelling 4 / 22

6 Modelling Languages: Pros and Cons The drawbacks of using a modelling language include: access to solver features, such as callbacks, is often difficult (or not possible) the solving is decoupled from the modelling process to some extent the user still must understand how to model well for the target algorithm, the language interpreter may perform inefficient conversions compared to what a reformulation may achieve. Burt, Maher, Witzig Modelling 5 / 22

7 Modelling Languages: Pros and Cons Today we will do a modelling exercise that will illustrate: how quickly you can learn a modelling language, how quickly you can implement a model and obtain a solution from an installed solver. Burt, Maher, Witzig Modelling 6 / 22

8 Some Modelling Languages ZIMPL: for writing down a model quickly and output a format for LP, MIP and MINLP that can be read into any LP/MIP solver (and SCIP for MINLP); GAMS: contains procedural elements for modifying the data and model during the procedure, can switch between solvers, has an IDE with tree-view and model debugging; AIMMS: contains procedural elements and tools for deployment, e.g. it is possible to write a GUI for a model-application for partners who do not want to see the model itself AMPL: integrates a modelling language, command language (for debugging and analysing), and a scripting language for modifying the data and model during the procedure. Burt, Maher, Witzig Modelling 7 / 22

9 Getting Started with ZIMPL Jakob Witzig Burt, Maher, Witzig Modelling 8 / 22

10 What is ZIMPL? Zuse Institute Mathematical Programming Language Free software, first release 2001 Burt, Maher, Witzig Modelling 9 / 22

11 What is ZIMPL? Zuse Institute Mathematical Programming Language Free software, first release 2001 Language to translate mathematical models into (mixed) integer programs. Burt, Maher, Witzig Modelling 9 / 22

12 What is ZIMPL? Zuse Institute Mathematical Programming Language Free software, first release 2001 Language to translate mathematical models into (mixed) integer programs. ZIMPL is part of the SCIP Optimization Suite ( User Guide: Burt, Maher, Witzig Modelling 9 / 22

13 ZIMPL Format & Functions Each line ends with a semicolon Burt, Maher, Witzig Modelling 10 / 22

14 ZIMPL Format & Functions Each line ends with a semicolon 6 different statements: Sets, Parameters, Variables, Objective, Constraints, Function definition, and print commands. Burt, Maher, Witzig Modelling 10 / 22

15 ZIMPL Format & Functions Each line ends with a semicolon 6 different statements: Sets, Parameters, Variables, Objective, Constraints, Function definition, and print commands. Rational arithmetic functions (e.g., modulo, factorial, min/max of a set, rounding,... ) Burt, Maher, Witzig Modelling 10 / 22

16 ZIMPL Format & Functions Each line ends with a semicolon 6 different statements: Sets, Parameters, Variables, Objective, Constraints, Function definition, and print commands. Rational arithmetic functions (e.g., modulo, factorial, min/max of a set, rounding,... ) Double precision functions: square root, logarithm, exponential function Burt, Maher, Witzig Modelling 10 / 22

17 ZIMPL Format & Functions Each line ends with a semicolon 6 different statements: Sets, Parameters, Variables, Objective, Constraints, Function definition, and print commands. Rational arithmetic functions (e.g., modulo, factorial, min/max of a set, rounding,... ) Double precision functions: square root, logarithm, exponential function Set related functions (e.g., cross product, union, argmin,... ) Burt, Maher, Witzig Modelling 10 / 22

18 ZIMPL Format & Functions Each line ends with a semicolon 6 different statements: Sets, Parameters, Variables, Objective, Constraints, Function definition, and print commands. Rational arithmetic functions (e.g., modulo, factorial, min/max of a set, rounding,... ) Double precision functions: square root, logarithm, exponential function Set related functions (e.g., cross product, union, argmin,... ) Input stream to read in data files Burt, Maher, Witzig Modelling 10 / 22

19 Executing ZIMPL To get an LP file of example.zpl zimpl example.zpl Use SCIP to read in directly and solve scip -f example.zpl Burt, Maher, Witzig Modelling 11 / 22

20 Sets Set Definitions: s e t A := {1.. 4 } ; s e t B := {1 to 3 } ; s e t D[B] := <1>{ a, b }, <2>{ c }, <3>{ c, e, f } ; s e t E := { monkey, g i r a f f e, e l e p h a n t } ; Set Operations: s e t C := A c r o s s C ; s e t P [ ] := p o w e r s e t (D) ; s e t I := i n d e x s e t (P ) ; s e t S [ ] := s u b s e t s ( I, 2 ) ; s e t U := union <i > i n I : D[ i ] ; Burt, Maher, Witzig Modelling 12 / 22

21 Parameters Indexsets: s e t I := {1.. 10}; s e t J := { a, b, c, x, y, z, } ; Parameters: param h [ I J ] := a, c, x, z 1 12, 17, 99, , 3, 17, /3,.4, 3, abs ( 4) 9 1, 2, 0, 3 d e f a u l t 99; param g [ I I I ] := 1, 2, 3 1, 3 0, 0, 1 2, 1 1, 0, 1 ; param k [ I I ] := <4,7> 89, <4,8> 67, <4,9> 55, <5,7> 12, <5,8> 13, <5,9> 14, <1,2> 17, <3,4> 99; Burt, Maher, Witzig Modelling 13 / 22

22 Reading Sets and Parameters Input file data.txt: 1 2 ab con1 2 3 bc con2 4 5 de con3 Read Sets: s e t Q := { read data. t x t as <4s> } ; Read Parameter: param c o s t [Q] := read data. t x t as 2n 1n ; Burt, Maher, Witzig Modelling 14 / 22

23 Variables Types: binary, integer, and real Implicit bounds are [0, ] Declare binary/integer variables as implicit Example: v a r x1 ; v a r x2 b i n a r y ; v a r x3 i n t e g e r >= i n f i n i t y ; v a r y [A] r e a l >= 2 <= 1 8 ; v a r z[<a, b> i n C ] i n t e g e r >= a 10 <= i f b <= 3 then p [ b ] e l s e i n f i n i t y end ; v a r w i m p l i c i t b i n a r y ; Burt, Maher, Witzig Modelling 15 / 22

24 Objective Functions Syntax: sense name : term; Can be minimize or maximize Must be at most one objective function Example: minimize obj : 3 x1 1 x2 ; minimize c o s t : sum <i, j > i n E with i < j : c [ i, j ] x [ i, j ] ; maximize p r o f i t : sum <i > i n I : p [ i ] x [ i ] ; Burt, Maher, Witzig Modelling 16 / 22

25 Constraints Syntax: subto name : term sense term; Sense can be, ==, and subto c1 : sum <i, j> i n E with i < j and j!= 1 : x [ i, j ] == 1 ; Burt, Maher, Witzig Modelling 17 / 22

26 Constraints Syntax: subto name : term sense term; Sense can be, ==, and subto c1 : sum <i, j> i n E with i < j and j!= 1 : x [ i, j ] == 1 ; Can be combined with if-conditions subto c2 : f o r a l l <i > i n I do i f i <= 5 then 3 y [ i ] >= 1 e l s e 2 y [ i ] <= 0 end ; Burt, Maher, Witzig Modelling 17 / 22

27 Constraints Syntax: subto name : term sense term; Sense can be, ==, and subto c1 : sum <i, j> i n E with i < j and j!= 1 : x [ i, j ] == 1 ; Can be combined with if-conditions subto c2 : f o r a l l <i > i n I do i f i <= 5 then 3 y [ i ] >= 1 e l s e 2 y [ i ] <= 0 end ; Combining with and subto c3 : f o r a l l <i, j > i n E do i f i < j then sum <k> i n K : y [ k, i, j ] == 1 and x [ i, j ] == 2 e l s e sum <k> i n K : y [ k, i, j ] == 0 end ; Burt, Maher, Witzig Modelling 17 / 22

28 Function Definition and Print Commands Functions Definition: Syntax: def* name(input) := term; * = numb, strg, bool, and set Example: defnumb d i s t ( a, b ) := s q r t ( a a + b b ) ; d e f b o o l smal ( a, b ) := a < b ; d e f s e t b i g g ( i ) := { <j > i n K with j > i } ; Burt, Maher, Witzig Modelling 18 / 22

29 Function Definition and Print Commands Functions Definition: Syntax: def* name(input) := term; * = numb, strg, bool, and set Example: defnumb d i s t ( a, b ) := s q r t ( a a + b b ) ; d e f b o o l smal ( a, b ) := a < b ; d e f s e t b i g g ( i ) := { <j > i n K with j > i } ; Print Commands: Print Sets: s e t I := {1.. 10}; do p r i n t I ; do p r i n t C a r d i n a l i t y o f I :, card ( I ) ; Print Supersets: do f o r a l l <i > i n I with i >= 4 do p r i n t s q r t ( i ) ; Burt, Maher, Witzig Modelling 18 / 22

30 Exercise: ZIMPL The SCIP Team Burt, Maher, Witzig Modelling 19 / 22

31 Exercise: ZIMPL Implement the model of the equitable coach problem you have created before in ZIMPL. Use the code skeleton: /home/exercise/modelling/exercise ECP.zpl The ZIMPL user guide is located at: /home/exercise/modelling/ Burt, Maher, Witzig Modelling 20 / 22

32 The Code Skeleton You can execute the *.zpl file with: zimpl Exercise ECP.zpl -D FILE= test data You have to complete the reading of parameters and sets... define a function... define your own variables... define the model itself (objective function, constraints, etc.) Burt, Maher, Witzig Modelling 21 / 22

33 Exercise: ZIMPL Implement the model of the equitable coach problem you have created before in ZIMPL. Use the code skeleton: /home/exercise/modelling/exercise ECP.zpl The ZIMPL user guide is located at: /home/exercise/modelling/ Burt, Maher, Witzig Modelling 22 / 22

ZIMPL User Guide. Konrad-Zuse-Zentrum für Informationstechnik Berlin THORSTEN KOCH. ZIB-Report (August 2001)

ZIMPL User Guide. Konrad-Zuse-Zentrum für Informationstechnik Berlin THORSTEN KOCH. ZIB-Report (August 2001) Konrad-Zuse-Zentrum für Informationstechnik Berlin Takustraße 7 D-14195 Berlin-Dahlem Germany THORSTEN KOCH ZIMPL User Guide ZIB-Report 01-20 (August 2001) (Zuse Institute Mathematical Programming Language)

More information

Mathematics for Decision Making: An Introduction. Lecture 4

Mathematics for Decision Making: An Introduction. Lecture 4 Mathematics for Decision Making: An Introduction Lecture 4 Matthias Köppe UC Davis, Mathematics January 15, 2009 4 1 Modeling the TSP as a standard optimization problem, I A key observation is that every

More information

LP SCIP NEOS URL. example1.lp 2.1 LP 1. minimize. subject to, bounds, free, general, binary, end. .lp 1 2.2

LP SCIP NEOS URL. example1.lp 2.1 LP 1. minimize. subject to, bounds, free, general, binary, end. .lp 1 2.2 c LP SCIP LP SCIP NEOS 1. URL 2. 2.1 LP 1 LP LP.lp 1 184 8588 2 24 16 1 minimize 3x +4.5y 2z 1 + f subject to g 1,1 + g 1,2 5, 3g 1,1 7g 1,2 + z 2 10, 2f g 1,1 =6, x +0.5y = 4.6, f 0, y 0, g 1,2 0, g 1,1

More information

Addressing degeneracy in the dual simplex algorithm using a decompositon approach

Addressing degeneracy in the dual simplex algorithm using a decompositon approach Addressing degeneracy in the dual simplex algorithm using a decompositon approach Ambros Gleixner, Stephen J Maher, Matthias Miltenberger Zuse Institute Berlin Berlin, Germany 16th July 2015 @sj_maher

More information

Agenda. Understanding advanced modeling techniques takes some time and experience No exercises today Ask questions!

Agenda. Understanding advanced modeling techniques takes some time and experience No exercises today Ask questions! Modeling 2 Agenda Understanding advanced modeling techniques takes some time and experience No exercises today Ask questions! Part 1: Overview of selected modeling techniques Background Range constraints

More information

Tools for Modeling Optimization Problems A Short Course. Algebraic Modeling Systems. Dr. Ted Ralphs

Tools for Modeling Optimization Problems A Short Course. Algebraic Modeling Systems. Dr. Ted Ralphs Tools for Modeling Optimization Problems A Short Course Algebraic Modeling Systems Dr. Ted Ralphs Algebraic Modeling Systems 1 The Modeling Process Generally speaking, we follow a four-step process in

More information

Design Principles that Make the Difference

Design Principles that Make the Difference Design Principles that Make the Difference Franz Nelissen: FNelissen@gams.com GAMS Development Corp. GAMS Software GmbH www.gams.com Company Background Roots: World Bank, 1976 GAMS Development Corporation

More information

Handling first-order linear constraints with SCIP

Handling first-order linear constraints with SCIP Handling first-order linear constraints with SCIP James Cussens, University of York KU Leuven, 2015-02-16 James Cussens, University of York FO with SCIP KU Leuven, 2015-02-16 1 / 18 MIP Mixed integer programs

More information

Fundamentals of Integer Programming

Fundamentals of Integer Programming Fundamentals of Integer Programming Di Yuan Department of Information Technology, Uppsala University January 2018 Outline Definition of integer programming Formulating some classical problems with integer

More information

Modelling of LP-problems (2WO09)

Modelling of LP-problems (2WO09) Modelling of LP-problems (2WO09) assignor: Judith Keijsper room: HG 9.31 email: J.C.M.Keijsper@tue.nl course info : http://www.win.tue.nl/ jkeijspe Technische Universiteit Eindhoven meeting 1 J.Keijsper

More information

Introduction to Mathematical Programming IE406. Lecture 9. Dr. Ted Ralphs

Introduction to Mathematical Programming IE406. Lecture 9. Dr. Ted Ralphs Introduction to Mathematical Programming IE406 Lecture 9 Dr. Ted Ralphs IE406 Lecture 9 1 Reading for This Lecture AMPL Book: Chapter 1 AMPL: A Mathematical Programming Language GMPL User s Guide ZIMPL

More information

3. Pyomo Fundamentals

3. Pyomo Fundamentals 3. Pyomo Fundamentals John D. Siirola Discrete Math & Optimization (1464) Center for Computing Research Sandia National Laboratories Albuquerque, NM USA Sandia National Laboratories is a

More information

Cloud Branching MIP workshop, Ohio State University, 23/Jul/2014

Cloud Branching MIP workshop, Ohio State University, 23/Jul/2014 Cloud Branching MIP workshop, Ohio State University, 23/Jul/2014 Timo Berthold Xpress Optimization Team Gerald Gamrath Zuse Institute Berlin Domenico Salvagnin Universita degli Studi di Padova This presentation

More information

Mathematical Tools for Engineering and Management

Mathematical Tools for Engineering and Management Mathematical Tools for Engineering and Management Lecture 1 20 Oct 2010 Overview Introduction Organisational issues Lectures Exercises Computers Book Exam Topics Why mathematics? Models and Data Sets Two

More information

Notes on AMPL for and (Adapted from notes by Sommer Gentry)

Notes on AMPL for and (Adapted from notes by Sommer Gentry) Notes on AMPL for 16.410 and 16.413 (Adapted from notes by Sommer Gentry) User Guides for MS-Dos and UNIX: http://www.ampl.com/refs/index.html#os_links About AMPL/CPLEX AMPL stands for A Mathematical Programming

More information

ME1107 Computing Y Yan.

ME1107 Computing Y Yan. ME1107 Computing 1 2008-2009 Y Yan http://www.staff.city.ac.uk/~ensyy About Fortran Fortran Formula Translation High level computer language Basic, Fortran, C, C++, Java, C#, (Matlab) What do we learn?

More information

GAMS. General Algebraic Modeling System. EURO 2009 Bonn. Michael Bussieck Jan-Hendrik Jagla

GAMS. General Algebraic Modeling System. EURO 2009 Bonn. Michael Bussieck Jan-Hendrik Jagla GAMS General Algebraic Modeling System Michael Bussieck mbussieck@gams.com Jan-Hendrik Jagla jhjagla@gams.com GAMS Software GmbH www.gams.de GAMS Development Corporation www.gams.com EURO 2009 Bonn GAMS

More information

Prepared by: Shraddha Modi

Prepared by: Shraddha Modi Prepared by: Shraddha Modi Introduction Operator: An operator is a symbol that tells the Computer to perform certain mathematical or logical manipulations. Expression: An expression is a sequence of operands

More information

Outline. Modeling. Outline DMP204 SCHEDULING, TIMETABLING AND ROUTING. 1. Models Lecture 5 Mixed Integer Programming Models and Exercises

Outline. Modeling. Outline DMP204 SCHEDULING, TIMETABLING AND ROUTING. 1. Models Lecture 5 Mixed Integer Programming Models and Exercises Outline DMP204 SCHEDULING, TIMETABLING AND ROUTING 1. Lecture 5 Mixed Integer Programming and Exercises Marco Chiarandini 2. 3. 2 Outline Modeling 1. Min cost flow Shortest path 2. Max flow Assignment

More information

Choice of C++ as Language

Choice of C++ as Language EECS 281: Data Structures and Algorithms Principles of Algorithm Analysis Choice of C++ as Language All algorithms implemented in this book are in C++, but principles are language independent That is,

More information

Constraint Modeling. with MiniZinc. Jakub Bulín. Department of CU Prague

Constraint Modeling. with MiniZinc. Jakub Bulín. Department of CU Prague Constraint Modeling with MiniZinc Jakub Bulín Department of Algebra @ CU Prague Table of contents 1. Intro & the theory part 2. An overview of MinZinc 3. Examples of constraint models 4. Learn more 1 In

More information

Operators and Expressions in C & C++ Mahesh Jangid Assistant Professor Manipal University, Jaipur

Operators and Expressions in C & C++ Mahesh Jangid Assistant Professor Manipal University, Jaipur Operators and Expressions in C & C++ Mahesh Jangid Assistant Professor Manipal University, Jaipur Operators and Expressions 8/24/2012 Dept of CS&E 2 Arithmetic operators Relational operators Logical operators

More information

GAMS READER Introduction For what type of problems can GAMS be used? 1.3. GAMS Statement Formats

GAMS READER Introduction For what type of problems can GAMS be used? 1.3. GAMS Statement Formats GAMS READER 1.1. Introduction GAMS is a software package to solve systems of equations. GAMS stands for General Algebraic Modelling System and is constructed by the GAMS Development Corporation. GAMS contains

More information

Exact solutions to mixed-integer linear programming problems

Exact solutions to mixed-integer linear programming problems Exact solutions to mixed-integer linear programming problems Dan Steffy Zuse Institute Berlin and Oakland University Joint work with Bill Cook, Thorsten Koch and Kati Wolter November 18, 2011 Mixed-Integer

More information

Integrating Optimization Modeling with General-Purpose Programming for Efficient and Reliable Application Deployment

Integrating Optimization Modeling with General-Purpose Programming for Efficient and Reliable Application Deployment Integrating Optimization Modeling with General-Purpose Programming for Efficient and Reliable Application Deployment Robert Fourer, Filipe Brandão AMPL Optimization {4er,fdabrandao}@ampl.com Christian

More information

COMP9334: Capacity Planning of Computer Systems and Networks

COMP9334: Capacity Planning of Computer Systems and Networks COMP9334: Capacity Planning of Computer Systems and Networks Week 10: Optimisation (1) A/Prof Chun Tung Chou CSE, UNSW COMP9334, Chun Tung Chou, 2016 Three Weeks of Optimisation The lectures for these

More information

A.1 Numbers, Sets and Arithmetic

A.1 Numbers, Sets and Arithmetic 522 APPENDIX A. MATHEMATICS FOUNDATIONS A.1 Numbers, Sets and Arithmetic Numbers started as a conceptual way to quantify count objects. Later, numbers were used to measure quantities that were extensive,

More information

Our Strategy for Learning Fortran 90

Our Strategy for Learning Fortran 90 Our Strategy for Learning Fortran 90 We want to consider some computational problems which build in complexity. evaluating an integral solving nonlinear equations vector/matrix operations fitting data

More information

Computer Laboratories: Mathematical Formulation and Implementation in GAMS. S. Vitali Charles University. 3/15/2017 Copyright 2017 S.

Computer Laboratories: Mathematical Formulation and Implementation in GAMS. S. Vitali Charles University. 3/15/2017 Copyright 2017 S. Computer Laboratories: Mathematical Formulation and Implementation in GAMS 1 S. Vitali Charles University 3/15/2017 Copyright 2017 S. Vitali 1 3/15/2017 1.2 GAMS General Algebraic Modeling System: language

More information

Mixed Integer Programming Class Library (MIPCL)

Mixed Integer Programming Class Library (MIPCL) Mixed Integer Programming Class Library (MIPCL) Nicolai N. Pisaruk Belarus State University, Faculty of Economy, Nezavisimosty Av., 4, 220088 Minsk, Belarus April 20, 2016 Abstract The Mixed Integer Programming

More information

Operators and Expressions:

Operators and Expressions: Operators and Expressions: Operators and expression using numeric and relational operators, mixed operands, type conversion, logical operators, bit operations, assignment operator, operator precedence

More information

Solving Scenarios in the Cloud

Solving Scenarios in the Cloud Solving Scenarios in the Cloud Franz Nelißen FNelissen@gams.com GAMS Development Corp. GAMS Software GmbH www.gams.com GAMS - History Roots: World Bank, 1976 Alex Meerausfounded GAMS Development Corp.

More information

AIMMS Function Reference - Error Handling Related Identifiers

AIMMS Function Reference - Error Handling Related Identifiers AIMMS Function Reference - Error Handling Related Identifiers This file contains only one chapter of the book. For a free download of the complete book in pdf format, please visit www.aimms.com Aimms 3.13

More information

Introduction. Problem Solving on Computer. Data Structures (collection of data and relationships) Algorithms

Introduction. Problem Solving on Computer. Data Structures (collection of data and relationships) Algorithms Introduction Problem Solving on Computer Data Structures (collection of data and relationships) Algorithms 1 Objective of Data Structures Two Goals: 1) Identify and develop useful high-level data types

More information

Definition. A Taylor series of a function f is said to represent function f, iff the error term converges to 0 for n going to infinity.

Definition. A Taylor series of a function f is said to represent function f, iff the error term converges to 0 for n going to infinity. Definition A Taylor series of a function f is said to represent function f, iff the error term converges to 0 for n going to infinity. 120202: ESM4A - Numerical Methods 32 f(x) = e x at point c = 0. Taylor

More information

COMP1730/COMP6730 Programming for Scientists. Data: Values, types and expressions.

COMP1730/COMP6730 Programming for Scientists. Data: Values, types and expressions. COMP1730/COMP6730 Programming for Scientists Data: Values, types and expressions. Lecture outline * Data and data types. * Expressions: computing values. * Variables: remembering values. What is data?

More information

Welcome to the Webinar. What s New in Gurobi 7.5

Welcome to the Webinar. What s New in Gurobi 7.5 Welcome to the Webinar What s New in Gurobi 7.5 Speaker Introduction Dr. Tobias Achterberg Director of R&D at Gurobi Optimization Formerly a developer at ILOG, where he worked on CPLEX 11.0 to 12.6 Obtained

More information

SCIP Workshop 2014, Berlin, September 30, Introduction to SCIP

SCIP Workshop 2014, Berlin, September 30, Introduction to SCIP SCIP Workshop 2014, Berlin, September 30, 2014 Introduction to SCIP ZIB: Fast Algorithms Fast Computers Konrad-Zuse-Zentrum für Informationstechnik Berlin non-university research institute of the state

More information

Visual Basic for Applications

Visual Basic for Applications Visual Basic for Applications Programming Damiano SOMENZI School of Economics and Management Advanced Computer Skills damiano.somenzi@unibz.it Week 1 Outline 1 Visual Basic for Applications Programming

More information

Chapter 1 Introduction to MATLAB

Chapter 1 Introduction to MATLAB Chapter 1 Introduction to MATLAB 1.1 What is MATLAB? MATLAB = MATrix LABoratory, the language of technical computing, modeling and simulation, data analysis and processing, visualization and graphics,

More information

NEOS.jl (and other things)

NEOS.jl (and other things) NEOS.jl (and other things) Oscar Dowson Department of Engineering Science, University of Auckland, New Zealand. o.dowson@auckland.ac.nz Overview 1. The NEOS Server 2. NEOS.jl interface with MPB 3. File

More information

Advanced Use of GAMS Solver Links

Advanced Use of GAMS Solver Links Advanced Use of GAMS Solver Links Michael Bussieck, Steven Dirkse, Stefan Vigerske GAMS Development 8th January 2013, ICS Conference, Santa Fe Standard GAMS solve Solve william minimizing cost using mip;

More information

ENGINEERING 1020 Introduction to Computer Programming M A Y 2 6, R E Z A S H A H I D I

ENGINEERING 1020 Introduction to Computer Programming M A Y 2 6, R E Z A S H A H I D I ENGINEERING 1020 Introduction to Computer Programming M A Y 2 6, 2 0 1 0 R E Z A S H A H I D I Today s class Constants Assignment statement Parameters and calling functions Expressions Mixed precision

More information

ANSI C Programming Simple Programs

ANSI C Programming Simple Programs ANSI C Programming Simple Programs /* This program computes the distance between two points */ #include #include #include main() { /* Declare and initialize variables */ double

More information

Data types for mcrl2

Data types for mcrl2 Data types for mcrl2 Aad Mathijssen April 5, 2018 We provide a syntax for the standard data types of the mcrl2 language. This syntax is intended to be a practical mix between standard mathematical notation

More information

ScaLP: A Light-Weighted (MI)LP Library

ScaLP: A Light-Weighted (MI)LP Library ScaLP: A Light-Weighted (MI)LP Library Patrick Sittel University of Kassel sittel@uni-kassel.de Martin Kumm University of Kassel kumm@uni-kassel.de Thomas Schönwälder University of Kassel thomas.schoenwaelder@student.uni-kassel.de

More information

NOTATION AND TERMINOLOGY

NOTATION AND TERMINOLOGY 15.053x, Optimization Methods in Business Analytics Fall, 2016 October 4, 2016 A glossary of notation and terms used in 15.053x Weeks 1, 2, 3, 4 and 5. (The most recent week's terms are in blue). NOTATION

More information

Two Approaches to Algorithms An Example (1) Iteration (2) Recursion

Two Approaches to Algorithms An Example (1) Iteration (2) Recursion 2. Recursion Algorithm Two Approaches to Algorithms (1) Iteration It exploits while-loop, for-loop, repeat-until etc. Classical, conventional, and general approach (2) Recursion Self-function call It exploits

More information

Advanced Operations Research Techniques IE316. Lecture 10. Dr. Ted Ralphs

Advanced Operations Research Techniques IE316. Lecture 10. Dr. Ted Ralphs Advanced Operations Research Techniques IE316 Lecture 10 Dr. Ted Ralphs IE316 Lecture 10 1 Reading for This Lecture AMPL Book: Chapter 1 AMPL: A Mathematical Programming Language IE316 Lecture 10 2 Software

More information

Tutorial on CPLEX Linear Programming

Tutorial on CPLEX Linear Programming Tutorial on CPLEX Linear Programming Combinatorial Problem Solving (CPS) Enric Rodríguez-Carbonell June 8, 2018 LP with CPLEX Among other things, CPLEX allows one to deal with: Real linear progs (all vars

More information

MATLAB INTRODUCTION. Risk analysis lab Ceffer Attila. PhD student BUTE Department Of Networked Systems and Services

MATLAB INTRODUCTION. Risk analysis lab Ceffer Attila. PhD student BUTE Department Of Networked Systems and Services MATLAB INTRODUCTION Risk analysis lab 2018 2018. szeptember 10., Budapest Ceffer Attila PhD student BUTE Department Of Networked Systems and Services ceffer@hit.bme.hu Előadó képe MATLAB Introduction 2

More information

C++ Programming: From Problem Analysis to Program Design, Fifth Edition. Chapter 6: User-Defined Functions I

C++ Programming: From Problem Analysis to Program Design, Fifth Edition. Chapter 6: User-Defined Functions I C++ Programming: From Problem Analysis to Program Design, Fifth Edition Chapter 6: User-Defined Functions I In this chapter, you will: Objectives Learn about standard (predefined) functions and discover

More information

ROPI. A Robust Optimization Programming Interface Version 0.1.0

ROPI. A Robust Optimization Programming Interface Version 0.1.0 ROPI A Robust Optimization Programming Interface Version 0.1.0 Written by Marc Goerigk Institute for Numerical and Applied Mathematics University of Göttingen, Germany m.goerigk@math.uni-goettingen.de

More information

Lesson 10: Representing, Naming, and Evaluating Functions

Lesson 10: Representing, Naming, and Evaluating Functions : Representing, Naming, and Evaluation Functions Classwork Opening Exercise Study the 4 representations of a function below. How are these representations alike? How are they different? TABLE: Input 0

More information

Free modelling languages for linear and integer programming

Free modelling languages for linear and integer programming Alistair Clark Free modelling languages for linear and integer programming Alistair Clark Faculty of Computing, Engineering and Mathematical Sciences University of the West of England alistair.clark@uwe.ac.uk

More information

A Fast Review of C Essentials Part I

A Fast Review of C Essentials Part I A Fast Review of C Essentials Part I Structural Programming by Z. Cihan TAYSI Outline Program development C Essentials Functions Variables & constants Names Formatting Comments Preprocessor Data types

More information

LaGO - A solver for mixed integer nonlinear programming

LaGO - A solver for mixed integer nonlinear programming LaGO - A solver for mixed integer nonlinear programming Ivo Nowak June 1 2005 Problem formulation MINLP: min f(x, y) s.t. g(x, y) 0 h(x, y) = 0 x [x, x] y [y, y] integer MINLP: - n

More information

Recent enhancements in. GAMS Development Corporation

Recent enhancements in. GAMS Development Corporation Recent enhancements in Jan-H. Jagla jhjagla@gams.com GAMS Software GmbH GAMS Development Corporation www.gams.de www.gams.com GAMS at a Glance General Algebraic Modeling System Roots: World Bank, 1976

More information

AIMMS Function Reference - GMPInstance Procedures and Functions

AIMMS Function Reference - GMPInstance Procedures and Functions AIMMS Function Reference - Instance Procedures and Functions This file contains only one chapter of the book. For a free download of the complete book in pdf format, please visit www.aimms.com Aimms 3.13

More information

CSCE 120: Learning To Code

CSCE 120: Learning To Code CSCE 120: Learning To Code Manipulating Data I Introduction This module is designed to get you started working with data by understanding and using variables and data types in JavaScript. It will also

More information

STEPHEN WOLFRAM MATHEMATICADO. Fourth Edition WOLFRAM MEDIA CAMBRIDGE UNIVERSITY PRESS

STEPHEN WOLFRAM MATHEMATICADO. Fourth Edition WOLFRAM MEDIA CAMBRIDGE UNIVERSITY PRESS STEPHEN WOLFRAM MATHEMATICADO OO Fourth Edition WOLFRAM MEDIA CAMBRIDGE UNIVERSITY PRESS Table of Contents XXI a section new for Version 3 a section new for Version 4 a section substantially modified for

More information

GAMS. Stefan Vigerske October 2nd, 2015, Berlin

GAMS. Stefan Vigerske October 2nd, 2015, Berlin GAMS Stefan Vigerske stefan@gams.com October 2nd, 2015, CO@Work, Berlin Prologue Material to this lecture: http://co-at-work.zib.de/files/gams/ CO@Work virtual machines: GAMS is installed (run gams) Download

More information

The SCIP Optimization Suite 3.2

The SCIP Optimization Suite 3.2 The SCIP Optimization Suite 3.2 Gerald Gamrath 1, Tobias Fischer 2, Tristan Gally 2, Ambros M. Gleixner 1, Gregor Hendel 1, Thorsten Koch 1, Stephen J. Maher 1, Matthias Miltenberger 1, Benjamin Müller

More information

CSI31 Lecture 5. Topics: 3.1 Numeric Data Types 3.2 Using the Math Library 3.3 Accumulating Results: Factorial

CSI31 Lecture 5. Topics: 3.1 Numeric Data Types 3.2 Using the Math Library 3.3 Accumulating Results: Factorial CSI31 Lecture 5 Topics: 3.1 Numeric Data Types 3.2 Using the Math Library 3.3 Accumulating Results: Factorial 1 3.1 Numberic Data Types When computers were first developed, they were seen primarily as

More information

MAS212 Assignment #1 (2018): Rational approximations

MAS212 Assignment #1 (2018): Rational approximations MAS212 Assignment #1 (2018): Rational approximations Dr Sam Dolan (sdolan@sheffieldacuk) In this assignment you will use Python to find rational approximations to real numbers such as π, 2 and the golden

More information

Introduction to Engineering gii

Introduction to Engineering gii 25.108 Introduction to Engineering gii Dr. Jay Weitzen Lecture Notes I: Introduction to Matlab from Gilat Book MATLAB - Lecture # 1 Starting with MATLAB / Chapter 1 Topics Covered: 1. Introduction. 2.

More information

KS3 Progression Map: Number

KS3 Progression Map: Number KS3 Progression Map: Number This progression map expands upon the statements of subject content in the DfE document Mathematics programmes of study: Key Stage 3 published September 2013. Suggested allocation

More information

Maths. Formative Assessment/key piece of work prior to end of unit: Term Autumn 1

Maths. Formative Assessment/key piece of work prior to end of unit: Term Autumn 1 Term Autumn 1 3 weeks Negative numbers Multiples and factors Common factors Prime numbers Ordering decimal numbers Rounding Square numbers and square roots Prime factor decomposition LCM and HCF Square

More information

Graph Optimization - Lab 1

Graph Optimization - Lab 1 Graph Optimization - Lab 1 ORLAB - Operations Research Laboratory Stefano Gualandi October 24, 2011 What you do during lab sessions Data Math Model Algorithms Solver Solution(s) Modeling Interpretation

More information

Counting shapes 1.4.6

Counting shapes 1.4.6 GRADE R_TERM 1 WEEK TOPIC CONTENT CAMI KEYSTROKE CAMI Program Count in ones 1.1.1.1; 1.1.1.2; 1.1.1.3 1.1.1.4 Cami Math Count pictures 1.1.3.1; 1.1.3.2; 1 & 2 Counting 1.1.3.3; 1.1.3.4; Counting in units

More information

Introduction to Mosel and Xpress

Introduction to Mosel and Xpress ORLAB - Operations Research Laboratory Politecnico di Milano, Italy April 15, 2011 From Modeling to Strategies Model Algorithms Solution(s) Problem Modeling Interpretation Strategy From Modeling to Strategies

More information

Constraint Programming 101

Constraint Programming 101 Constraint Programming 101 Jacob Feldman, Ph.D. Founder & CTO OpenRules Inc. Shock Troops for Enterprise Decision Management I have concluded that decision making and the techniques and technologies to

More information

Scientific Computing

Scientific Computing Scientific Computing Martin Lotz School of Mathematics The University of Manchester Lecture 1, September 22, 2014 Outline Course Overview Programming Basics The C++ Programming Language Outline Course

More information

Math Content

Math Content 2013-2014 Math Content PATHWAY TO ALGEBRA I Hundreds and Tens Tens and Ones Comparing Whole Numbers Adding and Subtracting 10 and 100 Ten More, Ten Less Adding with Tens and Ones Subtracting with Tens

More information

Math Glossary Numbers and Arithmetic

Math Glossary Numbers and Arithmetic Math Glossary Numbers and Arithmetic Version 0.1.1 September 1, 200 Next release: On or before September 0, 200. E-mail edu@ezlink.com for the latest version. Copyright 200 by Brad Jolly All Rights Reserved

More information

The following information is for reviewing the material since Exam 3:

The following information is for reviewing the material since Exam 3: Outcomes List for Math 121 Calculus I Fall 2010-2011 General Information: The purpose of this Outcomes List is to give you a concrete summary of the material you should know, and the skills you should

More information

Elementary maths for GMT. Algorithm analysis Part I

Elementary maths for GMT. Algorithm analysis Part I Elementary maths for GMT Algorithm analysis Part I Algorithms An algorithm is a step-by-step procedure for solving a problem in a finite amount of time Most algorithms transform input objects into output

More information

ABE Math TABE Modules 1-10

ABE Math TABE Modules 1-10 MODULE COMPETENCIES CW/HW Competencies M1 1. TABE Score Copy DAY 2. Data Form ONE PRETEST 3. First Exam (Pretest E/M/D/A) 4. Orientation M2 5. The Number System Whole Reviewing Place Value Naming Large

More information

2 Introduction to GAMS

2 Introduction to GAMS 2 Introduction to GAMS 2.1. Introduction GAMS stands for General Algebraic Modeling System. It is a software package for: - Designing and - Solving various types of models. Originally developed by a group

More information

The Supporting Hyperplane Optimization Toolkit A Polyhedral Outer Approximation Based Convex MINLP Solver Utilizing a Single Branching Tree Approach

The Supporting Hyperplane Optimization Toolkit A Polyhedral Outer Approximation Based Convex MINLP Solver Utilizing a Single Branching Tree Approach The Supporting Hyperplane Optimization Toolkit A Polyhedral Outer Approximation Based Convex MINLP Solver Utilizing a Single Branching Tree Approach Andreas Lundell a, Jan Kronqvist b, and Tapio Westerlund

More information

SAMS Programming A/B. Lecture #1 Introductions July 3, Mark Stehlik

SAMS Programming A/B. Lecture #1 Introductions July 3, Mark Stehlik SAMS Programming A/B Lecture #1 Introductions July 3, 2017 Mark Stehlik Outline for Today Overview of Course A Python intro to be continued in lab on Wednesday (group A) and Thursday (group B) 7/3/2017

More information

Full file at

Full file at Java Programming: From Problem Analysis to Program Design, 3 rd Edition 2-1 Chapter 2 Basic Elements of Java At a Glance Instructor s Manual Table of Contents Overview Objectives s Quick Quizzes Class

More information

ENGI Introduction to Computer Programming M A Y 2 8, R E Z A S H A H I D I

ENGI Introduction to Computer Programming M A Y 2 8, R E Z A S H A H I D I ENGI 1020 - Introduction to Computer Programming M A Y 2 8, 2 0 1 0 R E Z A S H A H I D I Last class Last class we talked about the following topics: Constants Assignment statements Parameters and calling

More information

Solving Difficult MIP Problems using GAMS and Condor

Solving Difficult MIP Problems using GAMS and Condor Solving Difficult MIP Problems using GAMS and Condor Michael R. Bussieck MBussieck@gams.com GAMS Software GmbH http://www.gams.de Michael C. Ferris Ferris@cs.wisc.edu University of Wisconsin-Madison http://www.cs.wisc.edu/~ferris/

More information

The SCIP Optimization Suite 4.0

The SCIP Optimization Suite 4.0 Zuse Institute Berlin Takustrasse 7 D-14195 Berlin-Dahlem Germany STEPHEN J. MAHER, TOBIAS FISCHER, TRISTAN GALLY, GERALD GAMRATH, AMBROS GLEIXNER, ROBERT LION GOTTWALD, GREGOR HENDEL, THORSTEN KOCH, MARCO

More information

Sharp EL-9900 Graphing Calculator

Sharp EL-9900 Graphing Calculator Sharp EL-9900 Graphing Calculator Basic Keyboard Activities General Mathematics Algebra Programming Advanced Keyboard Activities Algebra Calculus Statistics Trigonometry Programming Sharp EL-9900 Graphing

More information

Developing Optimization Applications Quickly and Effectively with Algebraic Modeling in AMPL

Developing Optimization Applications Quickly and Effectively with Algebraic Modeling in AMPL Developing Optimization Applications Quickly and Effectively with Algebraic Modeling in AMPL Robert Fourer 4er@ampl.com AMPL Optimization Inc. www.ampl.com +1 773-336-AMPL INFORMS Annual Meeting Houston

More information

Reals 1. Floating-point numbers and their properties. Pitfalls of numeric computation. Horner's method. Bisection. Newton's method.

Reals 1. Floating-point numbers and their properties. Pitfalls of numeric computation. Horner's method. Bisection. Newton's method. Reals 1 13 Reals Floating-point numbers and their properties. Pitfalls of numeric computation. Horner's method. Bisection. Newton's method. 13.1 Floating-point numbers Real numbers, those declared to be

More information

Working with JavaScript

Working with JavaScript Working with JavaScript Creating a Programmable Web Page for North Pole Novelties 1 Objectives Introducing JavaScript Inserting JavaScript into a Web Page File Writing Output to the Web Page 2 Objectives

More information

Solving Large-Scale Energy System Models

Solving Large-Scale Energy System Models Solving Large-Scale Energy System Models Frederik Fiand Operations Research Analyst GAMS Software GmbH GAMS Development Corp. GAMS Software GmbH www.gams.com Agenda 1. GAMS System Overview 2. BEAM-ME Background

More information

COMS W4115. Programming Languages and Translators. ASML: White Paper

COMS W4115. Programming Languages and Translators. ASML: White Paper COMS W4115 Programming Languages and Translators ASML: White Paper 09/23/2003 Davidov, Olga olga.davidov@riag.com ASML: ARRAY SORTING AND MANIPULATION LANGUAGE Introduction ASML is designed to be a simple,

More information

Getting Started. Office Hours. CSE 231, Rich Enbody. After class By appointment send an . Michigan State University CSE 231, Fall 2013

Getting Started. Office Hours. CSE 231, Rich Enbody. After class By appointment send an  . Michigan State University CSE 231, Fall 2013 CSE 231, Rich Enbody Office Hours After class By appointment send an email 2 1 Project 1 Python arithmetic Do with pencil, paper and calculator first Idle Handin Help room 3 What is a Computer Program?

More information

Rapid Application Development & Grid Computing Using GAMS. Software Demonstration INFORMS San Francisco 2005

Rapid Application Development & Grid Computing Using GAMS. Software Demonstration INFORMS San Francisco 2005 Rapid Application Development & Grid Computing Using GAMS Software Demonstration INFORMS San Francisco 2005 1 Demo Objectives Basics / Algebraic Modeling Data Exchange / Charting Tying things together

More information

The MIP-Solving-Framework SCIP

The MIP-Solving-Framework SCIP The MIP-Solving-Framework SCIP Timo Berthold Zuse Institut Berlin DFG Research Center MATHEON Mathematics for key technologies Berlin, 23.05.2007 What Is A MIP? Definition MIP The optimization problem

More information

Objectives. In this chapter, you will:

Objectives. In this chapter, you will: Objectives In this chapter, you will: Become familiar with functions, special symbols, and identifiers in C++ Explore simple data types Discover how a program evaluates arithmetic expressions Learn about

More information

Java Programming Unit 3: Variables and Arithmetic Operations

Java Programming Unit 3: Variables and Arithmetic Operations Java Programming Unit 3: Variables and Arithmetic Operations Bensalem Township School District Standards Link: PA State Standards for Business Education: http://www.pdesas.org/standard/views#114,115,116,117

More information

Topic 3: MiniZinc (Version of 10th November 2015)

Topic 3: MiniZinc (Version of 10th November 2015) Topic 3: (Version of 10th November 2015) Jean-Noël Monette ASTRA Research Group on Combinatorial Optimisation Uppsala University Sweden Course 1DL449: for Combinatorial Optimisation Outline 1 2 3 4 5 Course

More information

Data Types. (with Examples In Haskell) COMP 524: Programming Languages Srinivas Krishnan March 22, 2011

Data Types. (with Examples In Haskell) COMP 524: Programming Languages Srinivas Krishnan March 22, 2011 Data Types (with Examples In Haskell) COMP 524: Programming Languages Srinivas Krishnan March 22, 2011 Based in part on slides and notes by Bjoern 1 Brandenburg, S. Olivier and A. Block. 1 Data Types Hardware-level:

More information

Lecture 13: (Integer Multiplication and Division) FLOATING POINT NUMBERS

Lecture 13: (Integer Multiplication and Division) FLOATING POINT NUMBERS Lecture 13: (Integer Multiplication and Division) FLOATING POINT NUMBERS Lecture 13 Floating Point I (1) Fall 2005 Integer Multiplication (1/3) Paper and pencil example (unsigned): Multiplicand 1000 8

More information

Objectives. Chapter 2: Basic Elements of C++ Introduction. Objectives (cont d.) A C++ Program (cont d.) A C++ Program

Objectives. Chapter 2: Basic Elements of C++ Introduction. Objectives (cont d.) A C++ Program (cont d.) A C++ Program Objectives Chapter 2: Basic Elements of C++ In this chapter, you will: Become familiar with functions, special symbols, and identifiers in C++ Explore simple data types Discover how a program evaluates

More information