SCIP Optimization Suite

Slides:



Advertisements
Similar presentations
Copyright © 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Chapter 15 Introduction to Rails.
Advertisements

Integer Optimization Basic Concepts Integer Linear Program(ILP): A linear program except that some or all of the decision variables must have integer.
Software development process. Explanation of the iterative nature of the software development process.
/425 Declarative Methods - J. Eisner1 Mathematical Programming especially Integer Linear Programming and Mixed Integer Programming.
Integer Programming Kusdhianto Setiawan Gadjah Mada University.
Linear programming: lp_solve, max flow, dual CSC 282 Fall 2013.
Software & Services Group, Developer Products Division Copyright© 2010, Intel Corporation. All rights reserved. *Other brands and names are the property.
Corso MAE Metodi Quantitativi per il Management Quantitative methods for Management Roma, 18 settembre - 24 ottobre 2003 Prof. Gianni Di Pillo Prof. Laura.
© Imperial College London Eplex: Harnessing Mathematical Programming Solvers for Constraint Logic Programming Kish Shen and Joachim Schimpf IC-Parc.
What is GAMS?. While they are not NLP solvers, per se, attention should be given to modeling languages like: GAMS- AIMMS-
Integer linear programming Optimization problems where design variables have to be integers are more difficult than ones with continuous variables. The.
MIPS Coding. Exercise 1 4/17/2015week04-3.ppt2 Suppose we have three arrays, A, B, C, all of size 10. Now we want to set C[i] = min(A[i], B[i]) for all.
Modeling problems with Integer Linear Programming (ILP) Name: Chuan Huang.
GAMS/GAMSIDE AGEC 641 Lab, Fall 2011 Mario Andres Fernandez Based on material written by Gillig and McCarl and improved upon by previous lab instructors.
CIS 101: Computer Programming and Problem Solving Lecture 8 Usman Roshan Department of Computer Science NJIT.
Linear Programming and CPLEX Ting-Yuan Wang Advisor: Charlie C. Chen Department of Electrical and Computer Engineering University of Wisconsin-Madison.
ME1107 Computing Y Yan
Names and Scopes CS 351. Program Binding We should be familiar with this notion. A variable is bound to a method or current block e.g in C++: namespace.
1 Key Concepts:  Why C?  Life Cycle Of a C program,  What is a computer program?  A program statement?  Basic parts of a C program,  Printf() function?
Linear Programming Integer Linear Models. When Variables Have To Be Integers Example – one time production decisions –Fractional values make no sense.
CS-341 Dick Steflik Introduction. C++ General purpose programming language A superset of C (except for minor details) provides new flexible ways for defining.
Penn ESE535 Spring DeHon 1 ESE535: Electronic Design Automation Day 5: February 2, 2009 Architecture Synthesis (Provisioning, Allocation)
COMP1170 Midterm Preparation (March 17 th 2009) Acknowledgment The notes are adapted from those provided by Deitel & Associates, Inc. and Pearson Education.
1 Robustness by cutting planes and the Uncertain Set Covering Problem AIRO 2008, Ischia, 10 September 2008 (work supported my MiUR and EU) Matteo Fischetti.
1 Linear Programming Supplements (Optional). 2 Standard Form LP (a.k.a. First Primal Form) Strictly ≤ All x j 's are non-negative.
(Not in text).  An LP with additional constraints requiring that all the variables be integers is called an all-integer linear program (IP).  The LP.
CSC 8310 Programming Languages Meeting 2 September 2/3, 2014.
Chapter 4 - Linear Programming: Computer Solution Excel Solver
Introduction to Java Appendix A. Appendix A: Introduction to Java2 Chapter Objectives To understand the essentials of object-oriented programming in Java.
Introduction to FORTRAN
Robert Fourer, Jun Ma, Kipp Martin Optimization Services Instance Language (OSiL), Solvers, and Modeling Languages Kipp Martin University of Chicago
The NetBeans IDE CSIS 3701: Advanced Object Oriented Programming.
Lecture No.01 Data Structures Dr. Sohail Aslam
History Server & API Christopher Larrieu Jefferson Laboratory.
Hans-Peter Plag October 16, 2014 Session 3 Programming Languages Data Types and Variables Expressions and Operators Flow Control.
Types of IP Models All-integer linear programs Mixed integer linear programs (MILP) Binary integer linear programs, mixed or all integer: some or all of.
Tot 15 LTPDA Graphic User Interface summary and status N. Tateo 26/06/2007.
1 ILOG CPLEX CPLEX is a product developed by ILOG to solve  LPs  MIPs  QPs  MIQPs  Network Flow problems CPLEX technologies  CPLEX callable library.
Hans-Peter Plag November 6, 2014 Session 4 (Programming Languages) (Data Types and Variables) Expressions and Operators Flow Control.
1 Lecture 26 – Problem Page 617 Military Problem with Three Commanders Six Radar Stations Each Commander Should Be Assigned Two Radar Stations C1C2C3.
Review for E&CE Find the minimal cost spanning tree for the graph below (where Values on edges represent the costs). 3 Ans. 18.
Linear Programming – Simplex Method
Linear Programming with Excel Solver.  Use Excel’s Solver as a tool to assist the decision maker in identifying the optimal solution for a business decision.
1 Max 8X 1 + 5X 2 (Weekly profit) subject to 2X 1 + 1X 2  1000 (Plastic) 3X 1 + 4X 2  2400 (Production Time) X 1 + X 2  700 (Total production) X 1.
6. A PPLICATION MAPPING 6.3 HW/SW partitioning 6.4 Mapping to heterogeneous multi-processors 1 6. Application mapping (part 2)
Solving MINLP problems with AIMMS Pittsburgh June 4, 2014 Marcel Hunting AIMMS Software Developer.
OCR GCSE Computing © Hodder Education 2013 Slide 1 OCR GCSE Computing Python programming 1: Introduction.
Introduction to C Programming Lecture 6. Functions – Call by value – Call by reference Arrays Today's Lecture Includes.
1 System Planning 2013 Lecture 7: Optimization Appendix A Contents: –General about optimization –Formulating optimization problems –Linear Programming.
FOUNDATION IN INFORMATION TECHNOLOGY (CS-T-101) TOPIC : INFORMATION SYSTEM – SOFTWARE.
Integer Programming Key characteristic of an Integer Program (IP) or Mixed Integer Linear Program (MILP): One or more of the decision variable must be.
Comparison Networks Sorting Sorting binary values Sorting arbitrary numbers Implementing symmetric functions.
Chapter 12: Programming in the Large By: Suraya Alias 1-1.
Spring 2009 Programming Fundamentals I Java Programming XuanTung Hoang Lecture No. 8.
Engineering Optimization Most engineering design involves using optimization software Minimizes or maximizes a merit function Applies functional constraints.
Higher Computing Science 2016 Prelim Revision. Topics to revise Computational Constructs parameter passing (value and reference, formal and actual) sub-programs/routines,
ICS312 Introduction to Compilers Set 23. What is a Compiler? A compiler is software (a program) that translates a high-level programming language to machine.
Optimization of Pallet Packaging Space and a Robotic SCARA Manipulator for Package Stacking Group-4 Puneet Jethani Erica Neuperger Siddharth Kodgi Zarvan.
Production systems LP and MILP models. Introduction  Linear programing (LP) is a base tool in optimization  George B. Dantzig developed the simplex.
OCR AS Level F452: Data types and data structures Data types and data structures a. define different data types, eg numeric (integer, real),
Introduction To Software Development Environment.
Problem 1 Demand Total There are 20 full time employees, each can produce 10.
Introduction to Python
Control Structures (Structured Programming) for controlling the procedural aspects of programming CS1110 – Kaminski.
GENERAL VIEW OF KRATOS MULTIPHYSICS
A Mathematical Programming Language
LTPDA Graphic User Interface summary and status
Linear Programming Integer Linear Models.
Linear Programming Integer Linear Models.
Control Structures (Structured Programming) for controlling the procedural aspects of programming CS1110 – Kaminski.
Presentation transcript:

SCIP Optimization Suite 1

SCIP Optimization Suite Three main software zimpl: Compiler of ZIMPL modeling language soplex: LP solver (implementation of Simplex) scip: An advanced implementation of B&B to solve ILP All these are available in single packages SCIP optimization suite Source code zimpl, soplex, scip are standalone applications Binary (Linux & Windows) Single executable scip application that is linked by zimpl & soplex 2

How Does It Work? As a programming library As a standalone solver It has API, you can call the functions in C, C++ As a standalone solver Develop a model in zimpl language Compile/Translate your model: zimpl model.zpl Solve it LP problems: soplex model.lp ILP, MIP problems: scip -f model.lp scip by itself calls zimpl if the input file is not .lp scip -f model.zpl 3

4

What we need Parameters Variables Sets Objective function Constraints 5

Sets Set of numbers Set of strings Set of tuples 6

Set operations 7

{<1, “hi”>, <2, “hi”>, <3, “hi”>, <1, “ha”>, …} {1, 6, 7, 8, 9} 8

Indexed Sets The arrays of ZIMPL Each element has its own index A set indexes another set Refer to i-th element by S[i] Example set I := {1, 2, 4}; set A[I] := <1> {10}, <2> {20}, <4> {30,40,50}; set B[ <i> in I] := {10 * i}; 9

Parameters set A := {1,2,3}; param B := 10; param C[A] := <1> 10, <2> 20, <3> 30; param D[A] := <1> 100 default 0; param E := min A; param F := max <i> in A : C[i]; 10

These operations are used in zimpl models to generate the numerical model. Most operations are applicable only on parameters, cannot be used for variables, because they are not linear 11

Variables “real”, “binary”, or “integer” var x1; var x2 integer; Default is “real” var x1; var x2 integer; var x3 binary; set A := {1,2,3}; var x4[A] real; var x5[A * A] integer >=0 <= 10; 12

Objective “maximize” or “minimize” var x1; var x2; var x3; maximize obj1: x1 + x2 + x3; minimize obj2: 2*x1 + 3*x2; 13

Objective set A := {1,2,3}; param B[A] := <1> 10, <2> 20, <3> 30; var X[A]; maximize obj1: sum <i> in A: X[i]; minimize obj2: sum <i> in A: B[i] * X[i]; 14

Constraint subto name: constraint subto c1: x1 <= 10; “<=“ , “=>”, “==“ There is not “>” and “<“ subto c1: x1 <= 10; subto c2: x1 + x2 <= 20; subto c3: x1 + x2 + x3 == 100; 15

Constraint set A := {1,2,3}; param B[A] := <1> 10, <2> 20, <3> 30; var X[A]; subto c1: forall <i> in A: X[i] <= B[i]; 16

Expressions forall expression sum expression if expression forall <i> in S: x[i] <= b[i]; sum expression sum <i> in S: x[i]; if expression forall <i> in S: x[i] <= if (i mod 3 == 0) then A[i] else B[i] end; 17

Example 18

param c[I] := <1> 1, <2> 20, <3> 300; set I := {1,2,3}; set J := {1,2}; param c[I] := <1> 1, <2> 20, <3> 300; param A[J * I] := <1,1> 1, <1,2> 2, <1,3> 3, <2,1> 30, <2,2> 20, <2,3> 10; param b[J] := <1> 20, <2> 200; var X[I]; maximize obj: sum <i> in I: c[i] * X[i]; subto const: forall <j> in J: sum <i> in I: A[j,i] * X[i] <= b[j]; 19

Realistic Problems A model for the problem Multiple instances Each instance has its own data Separation between model and data Create a general model Read data from file 20

Reading Set and Parameters from file “read filename as template” set A := {read "a.txt" as "<1n>"}; a.txt 1 2 3 4 5 21

set A := {read "a.txt" as "<1n>"}; param B[A] := read "b.txt" as "<1n> 2s"; a.txt b.txt 1 1 aa 2 3 bb 3 2 cc 22

23

set I := {read "I.txt" as "<1n>"}; set J := {read "J.txt" as "<1n>"}; param c[I] := read "c.txt" as "<1n> 2n"; param A[J * I] := read "A.txt" as "<1n,2n> 3n"; param b[J] := read "b.txt" as "<1n> 2n"; var X[I]; maximize obj: sum <i> in I: c[i] * X[i]; subto const: forall <j> in J: sum <i> in I: A[j,i] * X[i] <= b[j]; 24

25

Integrality  Complexity: An Example Consider the LP problem I = 1000 J = 100 If variables are “real” Solution time = 0.21 sec. Objective = 1727.05 If variables are “integer” Solution time = 22.85 sec. Objective = 1724 26