Major New Features in Gurobi 7.0

Size: px
Start display at page:

Download "Major New Features in Gurobi 7.0"

Transcription

1 Advanced Models

2 Major New Features in Gurobi 7.0 Python modeling enhancements Much more direct mapping from mathematical notation to code General constraints Shorthand for modeling common logical constraints Multi-objective optimization Algorithms for trading off competing objectives Solution pool Returns the n best solutions instead of just the one best New default lazy update semantics Simplifies modeling Cloud Offering New Instant Cloud Solution New termination criteria BestObjStop, BestBdStop: stop when obj/bound reaches specified value 2

3 Python Modeling Enhancements 3

4 Python Modeling Enhancements Significant improvement in the expressiveness of our Python API New facilities Model.addVars: add a set of variables (indexed over given indices) Model.addConstrs: add a set of constraints (using a Python generator expression) tupledict: a collection of variables that makes it easy to build linear expressions on subsets Python models become more concise and easier to read Signatures: addvars(*indexes, lb=0.0, ub=grb.infinity, obj=0.0, vtype=grb.continuous, name="") addconstrs(constrs, name="") 4

5 Python Modeling Enhancements addvars Old: transport = {} for w in warehouses: for p in plants: transport[w,p] = model.addvar(obj=transportcosts[w,p]) New: transport = model.addvars(warehouses, plants, obj=transportcosts) First arguments provide indices Two dimensions in this example First iterates over members of list of warehouses, second over list of plants Arbitrary number of dimensions, each indexed over members of a list or an integer 5

6 Python Modeling Enhancements tupledict New tupledict class, returned by model.addvars() transport = model.addvars(warehouses, plants, obj=transportcosts) Makes it easier to build linear expressions on sets of variables transport.sum(): linear expression that captures the sum of the variables in the tupledict transport.sum(w, '*'): sum over a subset of the variables transport.prod(coeffs): weighted sum transport.prod(coeffs, '*', p): weighted sum Useful in many different situations 6

7 Python Modeling Enhancements addconstrs Old: New: for w in warehouses: model.addconstr(sum(transport[w,p] for p in plants) == demand[w]) model.addconstrs(transport.sum(w, '* ) == demand[w] for w in warehouses) 7

8 Putting It Together Old: transport = {} for w in warehouses: for p in plants: transport[w,p] = model.addvar(obj=transportcosts[w,p]) for w in warehouses: model.addconstr(sum(transport[w,p] for p in plants) == demand[w]) New: transport = model.addvars(warehouses, plants, obj=transportcosts) model.addconstrs(transport.sum(w, '* ) == demand[w] for w in warehouses) 8

9 The Power of Python Lives within a powerful and versatile programming language Thousands of modules available for downloading Example: Add 6 lines to our TSP example (using bokeh package) ptseq = [points[k] for k in tour+[tour[0]]] x, y = zip(*ptseq) p = figure(title="tsp tour", x_range=[0,100], y_range=[0,100]) p.circle(x,y, size=8) p.line(x, y) show(p) 9

10 General Constraints 10

11 General Constraints Constraint types: In 6.5: Linear constraints Quadratic constraints SOS constraints In 7.0: new general constraints Min, Max, Abs, And, Or, and Indicator Fully supported in all OO APIs and the C API and in the MPS (REW), LP (RLP) format General constraints easier to read, write, and maintain Example: r = max(x 1,x 2,x 3 ), in python model.addgenconstrmax(r, [x 1,x 2,x 3 ], name= max1") Transformed to: r = x 1 + s 1 ; r = x 2 + s 2 ; r = x 3 + s 3 (s j non-negative) z 1 + z 2 + z 3 = 1 (z j binary) SOS1(s 1,z 1 ), SOS1(s 2,z 2 ), SOS1(s 3,z 3 ) Which would you rather read/write/maintain? Mostly a modeling convenience feature, but Presolve can sometimes create a tighter formulation 11

12 General Constraints MIN and MAX Model.addGenConstrMax(x 0, [x 1, x 2, x 3 ], 100, GC0 ) Sets variable x 0 = MAX(x 1, x 2, x 3, 100) Transformed to: r = x 1 + s 1 ; r = x 2 + s 2 ; r = x 3 + s 3 ; x (s j non-negative) z 1 + z 2 + z 3 1 (z j binary) SOS1(s 1,z 1 ), SOS1(s 2,z 2 ), SOS1(s 3,z 3 ) Depending on the PRESOS1BIGM parameter the SOS are linearized by using Big-M LP format (in the new General Constraint section): GC0: x0 = MAX (x1, x2, x3, 100) Model.addGenConstrMin(x 0, [x 1, x 2, x 3 ], 30, GC1 ) Sets variable x 0 = MIN(x 1, x 2, x 3, 30) Transformed to: -x 0 = MAX(-x 1, -x 2, -x 3, -30) 12

13 General Constraints AND and OR Model.addGenConstrAnd(x 0, [x 1, x 2, x 3, x 4 ], And1 ) Sets binary variable x 0 = x 1 x 2 x 3 x 4 (logical AND) Transformed to: x 1 + x 2 + x 3 + x 4 x 0 3 x 0 x i, for all i in {1,, 4} LP format (in the new General Constraint section): GC0: x0 = And (x1, x2, x3, x4) Model.addGenConstrOr(x 0, [x 1, x 2, x 3, x 4 ], Or1 ) Sets binary variable x 0 = x 1 x 2 x 3 x 4 (logical OR) Equivalent to ~x 0 = ~ x 1 ~ x 2 ~ x 3 ~ x 4 (logical AND) With ~x being the negation of x, i.e., ~x = 1 x 13

14 General Constraints ABS and Indicator Model.addGenConstrAbs(x 0, x 1, AbsCons1 ) Transformed to x 0 = MAX(x 1, -x 1 ) LP format (in the new General Constraint section): AbsCons1: x0 = ABS ( x1 ) Model.addGenConstrIndicator(x 0, 1, 2x 1 + 3x 2 + x 3 + 2x 4 1, C0 ) If binary x 0 = 1, then 2x 1 + 3x 2 + x 3 + 2x 4 1 must be satisfied LP format (in the Subject To section): C0: x0 = 1 -> 2 x1 + 3 x2 + x3 + 2 x4 <= 1 No support for equivalence (<->) indicators 14

15 Multi-Objective Optimization 15

16 Multi-Objective Optimization User can specify multiple objective functions Each objective has a priority, weight, an absolute and a relative tolerance Fully supported in all APIs and in the MPS (REW), LP (RLP) format Two options to use multiple objectives: Hierarchical Blended Can combine the two Two parameters to control the optimization MultiObjPre: presolve level on the whole multi-objective model MultiObjMethod: select barrier, dual and primal to optimize for subsequent objectives, only for continuous models 16

17 Multi-Objective Optimization - Options Hierarchical User provides priorities Optimize highest priority objective first Then optimize next highest, but without degrading highest priority objective (too much) Repeat for each objective, in order of decreasing priority Blended User provides weights Weights used to combine objectives Can combine the two 17

18 Multi-Objective Optimization # Set number of objectives model.numobj = 2 # Set and configure objective 0 model.setparam(grb.param.objnumber, 0) model.objnpriority = 2 model.objnweight = 1.0 model.objnname = 'TotalSlack' model.objnreltol = 0.1 model.objnabstol = 2.0 totslack.objn = # set and configure objective 1 model.setparam(grb.param.objnumber, 1) model.objnpriority = 1 model.objnweight = 1.0 model.objnname = 'Fairness maxshift.objn = 1.0 minshift.objn = -1.0

19 Multi-Objective Optimization LP format example Minimize multi-objectives OBJ0: Priority=0 Weight=1 AbsTol=0 RelTol=0 - x - y - 2 z OBJ1: Priority=1 Weight=0.3 AbsTol=0 RelTol=0-2 x - 3 y - z v Subject To 19

20 Solution Pool 20

21 Solution Pool In 6.5, we find an optimal solution In 7.0, you can ask for: The k best solutions k solutions within a specified gap from optimal New parameters PoolSolutions: number of solutions to keep Default is now 10 Previously kept as many as we found PoolSearchMode: strategy for finding solutions 0: default (one optimal solution) 1: more solutions (but not systematic) 2: k best solutions (systematic) PoolGap: maximum gap between best and worst solution Useful for limiting search time Why search for solutions with 50% gap if you don't want them anyway? 21

22 Solution Pool Runtime penalty usually small, but can be substantial Disables dual reductions in presolve Dual reduction: can discard a solution when you can prove that an equivalent or better solution always exists Dual reductions sometimes quite powerful 22

23 Solution Pool # Limit how many solutions to collect model.setparam(grb.param.poolsolutions, 10) # Limit the search space by setting a gap for the worst possible solution that will be accepted model.setparam(grb.param.poolgap, 0.10) # do a systematic search for the k-best solutions model.setparam(grb.param.poolsearchmode, 2) model.optimize() # Print number of solutions stored nsolutions = model.solcount # Print objective values of solutions for e in range(nsolutions): model.setparam(grb.param.solutionnumber, e) print( Sol%d: %g ' % (e, model.poolobjval)) for i in range(nvars): print( x%d = %g ' % vars[i].xn, end='') print( ) 23

24 Lazy Updates 24

25 New Default Lazy Update Semantics In Gurobi 6.5 default settings, model changes are put in a queue Must call update() to apply queued changes Plusses and minuses: Update is expensive good to have control over when it happens Adding appropriate update calls can be tedious Parameter UpdateMode set to 1 by default in Gurobi 7.0 Model changes are still put in a queue, but Can refer to newly created variables and constraints without first calling update() 25

26 New Default Lazy Update Semantics Typical usage pattern in Gurobi 6.5: Add new variables to model Call update() to clear queue and actually add variables Add constraints on those variables New update semantics avoid one update() call Less common usage pattern in Gurobi 6.5: Repeat: Add a few variables to model Call update() Add a few constraints on those variables Frequent update() calls can be expensive No longer needed 26

27 New Default Lazy Update Semantics Gurobi examples have been modified for new update semantics Every single update() call went away Uncommon usage pattern: "Here are a bunch of variables and constraints" "Can you remind me of what I just added?" This still requires an update() call with new semantics 27

28 Gurobi Instant Cloud 28

29 Gurobi Cloud Offering Gurobi has had a Cloud offering for over 6 years Important features: Many licensing options Install perpetual licenses on cloud machines or pay by the hour Available on Amazon EC2 EC2 has ~85% cloud market share Use any of our API's (C, C++, Java,.NET, Python, MATLAB, R) Full API support No code changes required to use cloud Security All communication encrypted with 256-bit AES encryption 29

30 New Instant Cloud Completely revamped Gurobi Instant Cloud New website New client launching facilities Launch cloud machine from user program Using gurobi.lic file: CLOUDACCESSID=79344c54-48af-4d cb8e9b2a1743 CLOUDKEY=p3XNjBlP5piz5huuzisS6w Using programming language APIs: env = Env.CloudEnv("79344c54-48af-4d cb8e9b2a1743", "p3xnjblp5piz5huuziss6w") Launch through REST API New pool facility Allow multiple client programs to share Configuration information A pool of servers 30

31 New Instant Cloud New Website 31

32 New Instant Cloud Pools 32

33 Thank You Questions?

What's New in Gurobi 7.0

What's New in Gurobi 7.0 What's New in Gurobi 7.0 What's New? New employees New features in 7.0 Major and minor Performance improvements New Gurobi Instant Cloud 2 The newest members of the Gurobi team Daniel Espinoza Senior Developer

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

Welcome to the Webinar. Gurobi Enhancements to MATLAB and R

Welcome to the Webinar. Gurobi Enhancements to MATLAB and R Welcome to the Webinar Gurobi 8.0 - Enhancements to MATLAB and R What s new in 8.0 for Matlab and R? General constraints: min, max, abs, etc. Handling of hierarchical and concurring multiple objectives

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

Gurobi Implementation

Gurobi Implementation Gurobi Implementation Outlines Introduction Installing Gurobi Creating a visual studio C++ project for Groubi Building and solving Gurobi model page: 2 Introduction (1/4) Gurobi is a state-of-the-art solver

More information

The Gurobi Optimizer. Bob Bixby

The Gurobi Optimizer. Bob Bixby The Gurobi Optimizer Bob Bixby Outline Gurobi Introduction Company Products Benchmarks Gurobi Technology Rethinking MIP MIP as a bag of tricks 8-Jul-11 2010 Gurobi Optimization 2 Gurobi Optimization Incorporated

More information

Gurobi Guidelines for Numerical Issues February 2017

Gurobi Guidelines for Numerical Issues February 2017 Gurobi Guidelines for Numerical Issues February 2017 Background Models with numerical issues can lead to undesirable results: slow performance, wrong answers or inconsistent behavior. When solving a model

More information

The Heuristic (Dark) Side of MIP Solvers. Asja Derviskadic, EPFL Vit Prochazka, NHH Christoph Schaefer, EPFL

The Heuristic (Dark) Side of MIP Solvers. Asja Derviskadic, EPFL Vit Prochazka, NHH Christoph Schaefer, EPFL The Heuristic (Dark) Side of MIP Solvers Asja Derviskadic, EPFL Vit Prochazka, NHH Christoph Schaefer, EPFL 1 Table of content [Lodi], The Heuristic (Dark) Side of MIP Solvers, Hybrid Metaheuristics, 273-284,

More information

1 Computer arithmetic with unsigned integers

1 Computer arithmetic with unsigned integers 1 Computer arithmetic with unsigned integers All numbers are w-bit unsigned integers unless otherwise noted. A w-bit unsigned integer x can be written out in binary as x x x w 2...x 2 x 1 x 0, where x

More information

Combinatorial Optimization Lab No. 10 Traveling Salesman Problem

Combinatorial Optimization Lab No. 10 Traveling Salesman Problem Combinatorial Optimization Lab No. 10 Traveling Salesman Problem Industrial Informatics Research Center http://industrialinformatics.cz/ May 29, 2018 Abstract In this lab we review various ways how to

More information

CSE 417 Network Flows (pt 4) Min Cost Flows

CSE 417 Network Flows (pt 4) Min Cost Flows CSE 417 Network Flows (pt 4) Min Cost Flows Reminders > HW6 is due Monday Review of last three lectures > Defined the maximum flow problem find the feasible flow of maximum value flow is feasible if it

More information

Parallel and Distributed Optimization with Gurobi Optimizer

Parallel and Distributed Optimization with Gurobi Optimizer Parallel and Distributed Optimization with Gurobi Optimizer Our Presenter Dr. Tobias Achterberg Developer, Gurobi Optimization 2 Parallel & Distributed Optimization 3 Terminology for this presentation

More information

Topics. Introduction. Specific tuning/troubleshooting topics "It crashed" Gurobi parameters The tuning tool. LP tuning. MIP tuning

Topics. Introduction. Specific tuning/troubleshooting topics It crashed Gurobi parameters The tuning tool. LP tuning. MIP tuning Tuning II Topics Introduction Gurobi parameters The tuning tool Specific tuning/troubleshooting topics "It crashed" The importance of being specific LP tuning The importance of scaling MIP tuning Performance

More information

Introduction to Python, Cplex and Gurobi

Introduction to Python, Cplex and Gurobi Introduction to Python, Cplex and Gurobi Introduction Python is a widely used, high level programming language designed by Guido van Rossum and released on 1991. Two stable releases: Python 2.7 Python

More information

Integer Programming Chapter 9

Integer Programming Chapter 9 1 Integer Programming Chapter 9 University of Chicago Booth School of Business Kipp Martin October 30, 2017 2 Outline Branch and Bound Theory Branch and Bound Linear Programming Node Selection Strategies

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

Reductions. Linear Time Reductions. Desiderata. Reduction. Desiderata. Classify problems according to their computational requirements.

Reductions. Linear Time Reductions. Desiderata. Reduction. Desiderata. Classify problems according to their computational requirements. Desiderata Reductions Desiderata. Classify problems according to their computational requirements. Frustrating news. Huge number of fundamental problems have defied classification for decades. Desiderata'.

More information

Recent Developments in the Gurobi Optimizer

Recent Developments in the Gurobi Optimizer Recent Developments in the Gurobi Optimizer Overview Introduction (10 minutes) Ed Rothberg Gurobi 7.5 and 8.0 (15 minutes) Ed Rothberg Improvements in Compute Server and Instant Cloud (30 minutes) Michel

More information

Algorithm Design and Analysis

Algorithm Design and Analysis Algorithm Design and Analysis LECTURE 29 Approximation Algorithms Load Balancing Weighted Vertex Cover Reminder: Fill out SRTEs online Don t forget to click submit Sofya Raskhodnikova 12/7/2016 Approximation

More information

What's New In Gurobi 5.0. Dr. Edward Rothberg

What's New In Gurobi 5.0. Dr. Edward Rothberg What's New In Gurobi 5.0 Dr. Edward Rothberg Our Main Goals for Gurobi 5.0 Expand the reach of the product: New problem types: Quadratic constraints: QCP, SOCP, MIQCP Massive numbers of constraints: Through

More information

Introduction. Chapter 15. Optimization Modeling: Applications. Integer Programming. Manufacturing Example. Three Types of ILP Models

Introduction. Chapter 15. Optimization Modeling: Applications. Integer Programming. Manufacturing Example. Three Types of ILP Models Chapter 5 Optimization Modeling: Applications Integer Programming Introduction When one or more variables in an LP problem must assume an integer value we have an Integer Linear Programming (ILP) problem.

More information

«Computer Science» Requirements for applicants by Innopolis University

«Computer Science» Requirements for applicants by Innopolis University «Computer Science» Requirements for applicants by Innopolis University Contents Architecture and Organization... 2 Digital Logic and Digital Systems... 2 Machine Level Representation of Data... 2 Assembly

More information

LocalSolver A New Kind of Math Programming Solver

LocalSolver A New Kind of Math Programming Solver LocalSolver A New Kind of Math Programming Solver Thierry Benoist Julien Darlay Bertrand Estellon Frédéric Gardi Romain Megel jdarlay@localsolver.com www.localsolver.com 1/18 Who are we? Bouygues, one

More information

Algorithms in Systems Engineering IE172. Midterm Review. Dr. Ted Ralphs

Algorithms in Systems Engineering IE172. Midterm Review. Dr. Ted Ralphs Algorithms in Systems Engineering IE172 Midterm Review Dr. Ted Ralphs IE172 Midterm Review 1 Textbook Sections Covered on Midterm Chapters 1-5 IE172 Review: Algorithms and Programming 2 Introduction to

More information

What is GOSET? GOSET stands for Genetic Optimization System Engineering Tool

What is GOSET? GOSET stands for Genetic Optimization System Engineering Tool Lecture 5: GOSET 1 What is GOSET? GOSET stands for Genetic Optimization System Engineering Tool GOSET is a MATLAB based genetic algorithm toolbox for solving optimization problems 2 GOSET Features Wide

More information

Approximation Algorithms

Approximation Algorithms Approximation Algorithms Given an NP-hard problem, what should be done? Theory says you're unlikely to find a poly-time algorithm. Must sacrifice one of three desired features. Solve problem to optimality.

More information

Simulation. Lecture O1 Optimization: Linear Programming. Saeed Bastani April 2016

Simulation. Lecture O1 Optimization: Linear Programming. Saeed Bastani April 2016 Simulation Lecture O Optimization: Linear Programming Saeed Bastani April 06 Outline of the course Linear Programming ( lecture) Integer Programming ( lecture) Heuristics and Metaheursitics (3 lectures)

More information

Alternating Direction Method of Multipliers

Alternating Direction Method of Multipliers Alternating Direction Method of Multipliers CS 584: Big Data Analytics Material adapted from Stephen Boyd (https://web.stanford.edu/~boyd/papers/pdf/admm_slides.pdf) & Ryan Tibshirani (http://stat.cmu.edu/~ryantibs/convexopt/lectures/21-dual-meth.pdf)

More information

Algorithms. Lecture Notes 5

Algorithms. Lecture Notes 5 Algorithms. Lecture Notes 5 Dynamic Programming for Sequence Comparison The linear structure of the Sequence Comparison problem immediately suggests a dynamic programming approach. Naturally, our sub-instances

More information

Chapter 9 Graph Algorithms

Chapter 9 Graph Algorithms Introduction graph theory useful in practice represent many real-life problems can be if not careful with data structures Chapter 9 Graph s 2 Definitions Definitions an undirected graph is a finite set

More information

Introduction. Linear because it requires linear functions. Programming as synonymous of planning.

Introduction. Linear because it requires linear functions. Programming as synonymous of planning. LINEAR PROGRAMMING Introduction Development of linear programming was among the most important scientific advances of mid-20th cent. Most common type of applications: allocate limited resources to competing

More information

BCN Decision and Risk Analysis. Syed M. Ahmed, Ph.D.

BCN Decision and Risk Analysis. Syed M. Ahmed, Ph.D. Linear Programming Module Outline Introduction The Linear Programming Model Examples of Linear Programming Problems Developing Linear Programming Models Graphical Solution to LP Problems The Simplex Method

More information

Size of a problem instance: Bigger instances take

Size of a problem instance: Bigger instances take 2.1 Integer Programming and Combinatorial Optimization Slide set 2: Computational Complexity Katta G. Murty Lecture slides Aim: To study efficiency of various algo. for solving problems, and to classify

More information

ILOG CPLEX 10.0 File Formats

ILOG CPLEX 10.0 File Formats ILOG CPLEX 10.0 File Formats January 2006 COPYRIGHT NOTICE Copyright 1987-2006, by ILOG S.A. and ILOG, Inc. All rights reserved. General Use Restrictions This document and the software described in this

More information

Introduction to Data Structure

Introduction to Data Structure Introduction to Data Structure CONTENTS 1.1 Basic Terminology 1. Elementary data structure organization 2. Classification of data structure 1.2 Operations on data structures 1.3 Different Approaches to

More information

MVE165/MMG630, Applied Optimization Lecture 8 Integer linear programming algorithms. Ann-Brith Strömberg

MVE165/MMG630, Applied Optimization Lecture 8 Integer linear programming algorithms. Ann-Brith Strömberg MVE165/MMG630, Integer linear programming algorithms Ann-Brith Strömberg 2009 04 15 Methods for ILP: Overview (Ch. 14.1) Enumeration Implicit enumeration: Branch and bound Relaxations Decomposition methods:

More information

Solving lexicographic multiobjective MIPs with Branch-Cut-Price

Solving lexicographic multiobjective MIPs with Branch-Cut-Price Solving lexicographic multiobjective MIPs with Branch-Cut-Price Marta Eso (The Hotchkiss School) Laszlo Ladanyi (IBM T.J. Watson Research Center) David Jensen (IBM T.J. Watson Research Center) McMaster

More information

Chapter 9 Graph Algorithms

Chapter 9 Graph Algorithms Chapter 9 Graph Algorithms 2 Introduction graph theory useful in practice represent many real-life problems can be if not careful with data structures 3 Definitions an undirected graph G = (V, E) is a

More information

Introduction to CPLEX. Some very convenient solvers for most students include those with Excel and Matlab.

Introduction to CPLEX. Some very convenient solvers for most students include those with Excel and Matlab. 1.0 Overview Introduction to CPLEX There are a number of commercial grade LP solvers available. An excellent survey of such surveys can be found at http://lionhrtpub.com/orms/surveys/lp/lp-survey.html.

More information

Statements 2. a operator= b a = a operator b

Statements 2. a operator= b a = a operator b Statements 2 Outline Note: i=i+1 is a valid statement. Don t confuse it with an equation i==i+1 which is always false for normal numbers. The statement i=i+1 is a very common idiom: it just increments

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

Theorem 2.9: nearest addition algorithm

Theorem 2.9: nearest addition algorithm There are severe limits on our ability to compute near-optimal tours It is NP-complete to decide whether a given undirected =(,)has a Hamiltonian cycle An approximation algorithm for the TSP can be used

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

CSE 417 Branch & Bound (pt 4) Branch & Bound

CSE 417 Branch & Bound (pt 4) Branch & Bound CSE 417 Branch & Bound (pt 4) Branch & Bound Reminders > HW8 due today > HW9 will be posted tomorrow start early program will be slow, so debugging will be slow... Review of previous lectures > Complexity

More information

Column Generation Method for an Agent Scheduling Problem

Column Generation Method for an Agent Scheduling Problem Column Generation Method for an Agent Scheduling Problem Balázs Dezső Alpár Jüttner Péter Kovács Dept. of Algorithms and Their Applications, and Dept. of Operations Research Eötvös Loránd University, Budapest,

More information

CS599: Convex and Combinatorial Optimization Fall 2013 Lecture 14: Combinatorial Problems as Linear Programs I. Instructor: Shaddin Dughmi

CS599: Convex and Combinatorial Optimization Fall 2013 Lecture 14: Combinatorial Problems as Linear Programs I. Instructor: Shaddin Dughmi CS599: Convex and Combinatorial Optimization Fall 2013 Lecture 14: Combinatorial Problems as Linear Programs I Instructor: Shaddin Dughmi Announcements Posted solutions to HW1 Today: Combinatorial problems

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

Cache Policies. Philipp Koehn. 6 April 2018

Cache Policies. Philipp Koehn. 6 April 2018 Cache Policies Philipp Koehn 6 April 2018 Memory Tradeoff 1 Fastest memory is on same chip as CPU... but it is not very big (say, 32 KB in L1 cache) Slowest memory is DRAM on different chips... but can

More information

4 Greedy Approximation for Set Cover

4 Greedy Approximation for Set Cover COMPSCI 532: Design and Analysis of Algorithms October 14, 2015 Lecturer: Debmalya Panigrahi Lecture 12 Scribe: Allen Xiao 1 Overview In this lecture, we introduce approximation algorithms and their analysis

More information

D-Optimal Designs. Chapter 888. Introduction. D-Optimal Design Overview

D-Optimal Designs. Chapter 888. Introduction. D-Optimal Design Overview Chapter 888 Introduction This procedure generates D-optimal designs for multi-factor experiments with both quantitative and qualitative factors. The factors can have a mixed number of levels. For example,

More information

Unit.9 Integer Programming

Unit.9 Integer Programming Unit.9 Integer Programming Xiaoxi Li EMS & IAS, Wuhan University Dec. 22-29, 2016 (revised) Operations Research (Li, X.) Unit.9 Integer Programming Dec. 22-29, 2016 (revised) 1 / 58 Organization of this

More information

CMPS 2200 Fall Amortized Analysis. Carola Wenk. Slides courtesy of Charles Leiserson with changes by Carola Wenk

CMPS 2200 Fall Amortized Analysis. Carola Wenk. Slides courtesy of Charles Leiserson with changes by Carola Wenk CMPS 2200 Fall 2017 Amortized Analysis Carola Wenk Slides courtesy of Charles Leiserson with changes by Carola Wenk 11/15/17 CMPS 2200 Intro. to Algorithms 1 Dynamic tables Task: Store a dynamic set in

More information

optlang Documentation

optlang Documentation optlang Documentation Release 1.4.2-2-g8da74d1-dirty Niko Sonnenschein Aug 09, 2018 Contents 1 Quick start 3 1.1 Using a particular solver......................................... 4 1.2 Quadratic programming.........................................

More information

Modelling with linear programming

Modelling with linear programming Modelling with linear programming jla@imm.dtu.dk Informatics and Mathematical Modeling Technical University of Denmark 1 Decision models Real world abstraction Model interpretation A model is a carefully

More information

Package Rcplex. February 15, 2013

Package Rcplex. February 15, 2013 Version 0.3-1 Date 2013-02-13 Title R interface to CPLEX Package Rcplex February 15, 2013 Author Hector Corrada Bravo, with contributions from Stefan Theussl and Kurt Hornik Maintainer Hector Corrada Bravo

More information

11. APPROXIMATION ALGORITHMS

11. APPROXIMATION ALGORITHMS 11. APPROXIMATION ALGORITHMS load balancing center selection pricing method: vertex cover LP rounding: vertex cover generalized load balancing knapsack problem Lecture slides by Kevin Wayne Copyright 2005

More information

Contents. Introduction

Contents. Introduction Contents Introduction xv Chapter 1. Production Models: Maximizing Profits 1 1.1 A two-variable linear program 2 1.2 The two-variable linear program in AMPL 5 1.3 A linear programming model 6 1.4 The linear

More information

CS 580: Algorithm Design and Analysis. Jeremiah Blocki Purdue University Spring 2018

CS 580: Algorithm Design and Analysis. Jeremiah Blocki Purdue University Spring 2018 CS 580: Algorithm Design and Analysis Jeremiah Blocki Purdue University Spring 2018 Chapter 11 Approximation Algorithms Slides by Kevin Wayne. Copyright @ 2005 Pearson-Addison Wesley. All rights reserved.

More information

Problem set 2. Problem 1. Problem 2. Problem 3. CS261, Winter Instructor: Ashish Goel.

Problem set 2. Problem 1. Problem 2. Problem 3. CS261, Winter Instructor: Ashish Goel. CS261, Winter 2017. Instructor: Ashish Goel. Problem set 2 Electronic submission to Gradescope due 11:59pm Thursday 2/16. Form a group of 2-3 students that is, submit one homework with all of your names.

More information

Lecture 18: March 23

Lecture 18: March 23 0-725/36-725: Convex Optimization Spring 205 Lecturer: Ryan Tibshirani Lecture 8: March 23 Scribes: James Duyck Note: LaTeX template courtesy of UC Berkeley EECS dept. Disclaimer: These notes have not

More information

CIS 121 Data Structures and Algorithms Minimum Spanning Trees

CIS 121 Data Structures and Algorithms Minimum Spanning Trees CIS 121 Data Structures and Algorithms Minimum Spanning Trees March 19, 2019 Introduction and Background Consider a very natural problem: we are given a set of locations V = {v 1, v 2,..., v n }. We want

More information

Exsys RuleBook Selector Tutorial. Copyright 2004 EXSYS Inc. All right reserved. Printed in the United States of America.

Exsys RuleBook Selector Tutorial. Copyright 2004 EXSYS Inc. All right reserved. Printed in the United States of America. Exsys RuleBook Selector Tutorial Copyright 2004 EXSYS Inc. All right reserved. Printed in the United States of America. This documentation, as well as the software described in it, is furnished under license

More information

ME 391Q Network Flow Programming

ME 391Q Network Flow Programming ME 9Q Network Flow Programming Final Exam, Summer 00. ( Points) The figure below shows an undirected network. The parameters on the edges are the edge lengths. Find the shortest path tree using Dijkstra

More information

LECTURE 6: INTERIOR POINT METHOD. 1. Motivation 2. Basic concepts 3. Primal affine scaling algorithm 4. Dual affine scaling algorithm

LECTURE 6: INTERIOR POINT METHOD. 1. Motivation 2. Basic concepts 3. Primal affine scaling algorithm 4. Dual affine scaling algorithm LECTURE 6: INTERIOR POINT METHOD 1. Motivation 2. Basic concepts 3. Primal affine scaling algorithm 4. Dual affine scaling algorithm Motivation Simplex method works well in general, but suffers from exponential-time

More information

We cover recursion in 150. Why do it again in 151?

We cover recursion in 150. Why do it again in 151? Recursion We cover recursion in 150. Why do it again in 151? First, good solutions to problems are often recursive. Here is a quick way to sort a list of objects: split the list in half, recursively sort

More information

Chapter Fourteen Bonus Lessons: Algorithms and Efficiency

Chapter Fourteen Bonus Lessons: Algorithms and Efficiency : Algorithms and Efficiency The following lessons take a deeper look at Chapter 14 topics regarding algorithms, efficiency, and Big O measurements. They can be completed by AP students after Chapter 14.

More information

Mathematical Optimization Documentation

Mathematical Optimization Documentation Mathematical Optimization Documentation Release 1 João Pedro Pedroso and Abdur Rais and Mikio Kubo and Masakaz Nov 10, 2017 Contents 1 Forward 3 2 Introduction 5 3 Facility location problems 33 4 Bin

More information

!! What is virtual memory and when is it useful? !! What is demand paging? !! When should pages in memory be replaced?

!! What is virtual memory and when is it useful? !! What is demand paging? !! When should pages in memory be replaced? Chapter 10: Virtual Memory Questions? CSCI [4 6] 730 Operating Systems Virtual Memory!! What is virtual memory and when is it useful?!! What is demand paging?!! When should pages in memory be replaced?!!

More information

Data Structures and Algorithms Dr. Naveen Garg Department of Computer Science and Engineering Indian Institute of Technology, Delhi

Data Structures and Algorithms Dr. Naveen Garg Department of Computer Science and Engineering Indian Institute of Technology, Delhi Data Structures and Algorithms Dr. Naveen Garg Department of Computer Science and Engineering Indian Institute of Technology, Delhi Lecture 20 Priority Queues Today we are going to look at the priority

More information

SUBSTITUTING GOMORY CUTTING PLANE METHOD TOWARDS BALAS ALGORITHM FOR SOLVING BINARY LINEAR PROGRAMMING

SUBSTITUTING GOMORY CUTTING PLANE METHOD TOWARDS BALAS ALGORITHM FOR SOLVING BINARY LINEAR PROGRAMMING Bulletin of Mathematics Vol. 06, No. 0 (20), pp.. SUBSTITUTING GOMORY CUTTING PLANE METHOD TOWARDS BALAS ALGORITHM FOR SOLVING BINARY LINEAR PROGRAMMING Eddy Roflin, Sisca Octarina, Putra B. J Bangun,

More information

Chapter 10 Part 1: Reduction

Chapter 10 Part 1: Reduction //06 Polynomial-Time Reduction Suppose we could solve Y in polynomial-time. What else could we solve in polynomial time? don't confuse with reduces from Chapter 0 Part : Reduction Reduction. Problem X

More information

B553 Lecture 12: Global Optimization

B553 Lecture 12: Global Optimization B553 Lecture 12: Global Optimization Kris Hauser February 20, 2012 Most of the techniques we have examined in prior lectures only deal with local optimization, so that we can only guarantee convergence

More information

February 19, Integer programming. Outline. Problem formulation. Branch-andbound

February 19, Integer programming. Outline. Problem formulation. Branch-andbound Olga Galinina olga.galinina@tut.fi ELT-53656 Network Analysis and Dimensioning II Department of Electronics and Communications Engineering Tampere University of Technology, Tampere, Finland February 19,

More information

Virtual Memory. ICS332 Operating Systems

Virtual Memory. ICS332 Operating Systems Virtual Memory ICS332 Operating Systems Virtual Memory Allow a process to execute while not completely in memory Part of the address space is kept on disk So far, we have assumed that the full address

More information

Outline for Today. Analyzing data structures over the long term. Why could we construct them in time O(n)? A simple and elegant queue implementation.

Outline for Today. Analyzing data structures over the long term. Why could we construct them in time O(n)? A simple and elegant queue implementation. Amortized Analysis Outline for Today Amortized Analysis Analyzing data structures over the long term. Cartesian Trees Revisited Why could we construct them in time O(n)? The Two-Stack Queue A simple and

More information

EXERCISES SHORTEST PATHS: APPLICATIONS, OPTIMIZATION, VARIATIONS, AND SOLVING THE CONSTRAINED SHORTEST PATH PROBLEM. 1 Applications and Modelling

EXERCISES SHORTEST PATHS: APPLICATIONS, OPTIMIZATION, VARIATIONS, AND SOLVING THE CONSTRAINED SHORTEST PATH PROBLEM. 1 Applications and Modelling SHORTEST PATHS: APPLICATIONS, OPTIMIZATION, VARIATIONS, AND SOLVING THE CONSTRAINED SHORTEST PATH PROBLEM EXERCISES Prepared by Natashia Boland 1 and Irina Dumitrescu 2 1 Applications and Modelling 1.1

More information

LECTURE NOTES OF ALGORITHMS: DESIGN TECHNIQUES AND ANALYSIS

LECTURE NOTES OF ALGORITHMS: DESIGN TECHNIQUES AND ANALYSIS Department of Computer Science University of Babylon LECTURE NOTES OF ALGORITHMS: DESIGN TECHNIQUES AND ANALYSIS By Faculty of Science for Women( SCIW), University of Babylon, Iraq Samaher@uobabylon.edu.iq

More information

Lecture 5 Sorting Arrays

Lecture 5 Sorting Arrays Lecture 5 Sorting Arrays 15-122: Principles of Imperative Computation (Spring 2018) Frank Pfenning, Rob Simmons We begin this lecture by discussing how to compare running times of functions in an abstract,

More information

Computer Science 4500 Operating Systems

Computer Science 4500 Operating Systems Computer Science 4500 Operating Systems Module 6 Process Scheduling Methods Updated: September 25, 2014 2008 Stanley A. Wileman, Jr. Operating Systems Slide 1 1 In This Module Batch and interactive workloads

More information

Mathematical Tools for Engineering and Management

Mathematical Tools for Engineering and Management Mathematical Tools for Engineering and Management Lecture 8 8 Dec 0 Overview Models, Data and Algorithms Linear Optimization Mathematical Background: Polyhedra, Simplex-Algorithm Sensitivity Analysis;

More information

Data structure and algorithm in Python

Data structure and algorithm in Python Data structure and algorithm in Python Algorithm Analysis Xiaoping Zhang School of Mathematics and Statistics, Wuhan University Table of contents 1. Experimental studies 2. The Seven Functions used in

More information

Lecture 24: More Reductions (1997) Steven Skiena. skiena

Lecture 24: More Reductions (1997) Steven Skiena.   skiena Lecture 24: More Reductions (1997) Steven Skiena Department of Computer Science State University of New York Stony Brook, NY 11794 4400 http://www.cs.sunysb.edu/ skiena Prove that subgraph isomorphism

More information

An Extension of the Multicut L-Shaped Method. INEN Large-Scale Stochastic Optimization Semester project. Svyatoslav Trukhanov

An Extension of the Multicut L-Shaped Method. INEN Large-Scale Stochastic Optimization Semester project. Svyatoslav Trukhanov An Extension of the Multicut L-Shaped Method INEN 698 - Large-Scale Stochastic Optimization Semester project Svyatoslav Trukhanov December 13, 2005 1 Contents 1 Introduction and Literature Review 3 2 Formal

More information

SUBSTITUTING GOMORY CUTTING PLANE METHOD TOWARDS BALAS ALGORITHM FOR SOLVING BINARY LINEAR PROGRAMMING

SUBSTITUTING GOMORY CUTTING PLANE METHOD TOWARDS BALAS ALGORITHM FOR SOLVING BINARY LINEAR PROGRAMMING ASIAN JOURNAL OF MATHEMATICS AND APPLICATIONS Volume 2014, Article ID ama0156, 11 pages ISSN 2307-7743 http://scienceasia.asia SUBSTITUTING GOMORY CUTTING PLANE METHOD TOWARDS BALAS ALGORITHM FOR SOLVING

More information

Time Analysis of Sorting and Searching Algorithms

Time Analysis of Sorting and Searching Algorithms Time Analysis of Sorting and Searching Algorithms CSE21 Winter 2017, Day 5 (B00), Day 3 (A00) January 20, 2017 http://vlsicad.ucsd.edu/courses/cse21-w17 Binary Search: WHEN procedure binary search (x:

More information

Outline for Today. Why could we construct them in time O(n)? Analyzing data structures over the long term.

Outline for Today. Why could we construct them in time O(n)? Analyzing data structures over the long term. Amortized Analysis Outline for Today Euler Tour Trees A quick bug fix from last time. Cartesian Trees Revisited Why could we construct them in time O(n)? Amortized Analysis Analyzing data structures over

More information

Algorithms for Integer Programming

Algorithms for Integer Programming Algorithms for Integer Programming Laura Galli November 9, 2016 Unlike linear programming problems, integer programming problems are very difficult to solve. In fact, no efficient general algorithm is

More information

Notes for Lecture 24

Notes for Lecture 24 U.C. Berkeley CS170: Intro to CS Theory Handout N24 Professor Luca Trevisan December 4, 2001 Notes for Lecture 24 1 Some NP-complete Numerical Problems 1.1 Subset Sum The Subset Sum problem is defined

More information

3 INTEGER LINEAR PROGRAMMING

3 INTEGER LINEAR PROGRAMMING 3 INTEGER LINEAR PROGRAMMING PROBLEM DEFINITION Integer linear programming problem (ILP) of the decision variables x 1,..,x n : (ILP) subject to minimize c x j j n j= 1 a ij x j x j 0 x j integer n j=

More information

CS370 Operating Systems

CS370 Operating Systems CS370 Operating Systems Colorado State University Yashwant K Malaiya Spring 2018 L20 Virtual Memory Slides based on Text by Silberschatz, Galvin, Gagne Various sources 1 1 Questions from last time Page

More information

THE LOGIC OF COMPOUND STATEMENTS

THE LOGIC OF COMPOUND STATEMENTS CHAPTER 2 THE LOGIC OF COMPOUND STATEMENTS Copyright Cengage Learning. All rights reserved. SECTION 2.5 Application: Number Systems and Circuits for Addition Copyright Cengage Learning. All rights reserved.

More information

Crash-Starting the Simplex Method

Crash-Starting the Simplex Method Crash-Starting the Simplex Method Ivet Galabova Julian Hall School of Mathematics, University of Edinburgh Optimization Methods and Software December 2017 Ivet Galabova, Julian Hall Crash-Starting Simplex

More information

CSE373: Data Structures & Algorithms Lecture 9: Priority Queues and Binary Heaps. Linda Shapiro Spring 2016

CSE373: Data Structures & Algorithms Lecture 9: Priority Queues and Binary Heaps. Linda Shapiro Spring 2016 CSE373: Data Structures & Algorithms Lecture : Priority Queues and Binary Heaps Linda Shapiro Spring 2016 A new ADT: Priority Queue A priority queue holds compare-able data Like dictionaries, we need to

More information

F O U N D A T I O N. OPC Unified Architecture. Specification. Part 1: Concepts. Version 1.00

F O U N D A T I O N. OPC Unified Architecture. Specification. Part 1: Concepts. Version 1.00 F O U N D A T I O N Unified Architecture Specification Part 1: Concepts Version 1.00 July 28, 2006 Unified Architecture, Part 1 iii Release 1.00 CONTENTS Page FOREWORD... vi AGREEMENT OF USE... vi 1 Scope...

More information

Lecture notes on Transportation and Assignment Problem (BBE (H) QTM paper of Delhi University)

Lecture notes on Transportation and Assignment Problem (BBE (H) QTM paper of Delhi University) Transportation and Assignment Problems The transportation model is a special class of linear programs. It received this name because many of its applications involve determining how to optimally transport

More information

Cpt S 223 Course Overview. Cpt S 223, Fall 2007 Copyright: Washington State University

Cpt S 223 Course Overview. Cpt S 223, Fall 2007 Copyright: Washington State University Cpt S 223 Course Overview 1 Course Goals Learn about new/advanced data structures Be able to make design choices on the suitable data structure for different application/problem needs Analyze (objectively)

More information

Ryerson Polytechnic University Department of Mathematics, Physics, and Computer Science Final Examinations, April, 2003

Ryerson Polytechnic University Department of Mathematics, Physics, and Computer Science Final Examinations, April, 2003 Ryerson Polytechnic University Department of Mathematics, Physics, and Computer Science Final Examinations, April, 2003 MTH 503 - Operations Research I Duration: 3 Hours. Aids allowed: Two sheets of notes

More information

The simplex method and the diameter of a 0-1 polytope

The simplex method and the diameter of a 0-1 polytope The simplex method and the diameter of a 0-1 polytope Tomonari Kitahara and Shinji Mizuno May 2012 Abstract We will derive two main results related to the primal simplex method for an LP on a 0-1 polytope.

More information

Symbol Tables Symbol Table: In computer science, a symbol table is a data structure used by a language translator such as a compiler or interpreter, where each identifier in a program's source code is

More information

Minimum Weight Constrained Forest Problems. Problem Definition

Minimum Weight Constrained Forest Problems. Problem Definition Slide 1 s Xiaoyun Ji, John E. Mitchell Department of Mathematical Sciences Rensselaer Polytechnic Institute Troy, NY, USA jix@rpi.edu, mitchj@rpi.edu 2005 Optimization Days Montreal, Canada May 09, 2005

More information