Column Generation in GAMS Extending the GAMS Branch-and-Cut-and-Heuristic (BCH) Facility



Similar documents
GAMS, Condor and the Grid: Solving Hard Optimization Models in Parallel. Michael C. Ferris University of Wisconsin

GAMS Productivity - Performance - Reliability

Solving convex MINLP problems with AIMMS

Cloud Branching. Timo Berthold. joint work with Domenico Salvagnin (Università degli Studi di Padova)

SBB: A New Solver for Mixed Integer Nonlinear Programming

Branch and Cut for TSP

Branch-and-Price Approach to the Vehicle Routing Problem with Time Windows

Noncommercial Software for Mixed-Integer Linear Programming

Instituto Superior Técnico Masters in Civil Engineering. Lecture 2: Transport networks design and evaluation Xpress presentation - Laboratory work

Chapter 13: Binary and Mixed-Integer Programming

CPLEX Tutorial Handout

How to speed-up hard problem resolution using GLPK?

New Exact Solution Approaches for the Split Delivery Vehicle Routing Problem

Grid-Enabled Optimization with GAMS

Network Optimization using AIMMS in the Analytics & Visualization Era

Simplified Benders cuts for Facility Location

Scheduling Home Health Care with Separating Benders Cuts in Decision Diagrams

A Constraint Programming based Column Generation Approach to Nurse Rostering Problems

Using diversification, communication and parallelism to solve mixed-integer linear programs

Solutions to Homework 6

LocalSolver: black-box local search for combinatorial optimization

Modeling and Solving the Capacitated Vehicle Routing Problem on Trees

Mixed Integer Linear Programming in R

Quality Assurance For Mathematical Modeling Systems

Chapter 3 INTEGER PROGRAMMING 3.1 INTRODUCTION. Robert Bosch. Michael Trick

On a Railway Maintenance Scheduling Problem with Customer Costs and Multi-Depots

INTEGER PROGRAMMING. Integer Programming. Prototype example. BIP model. BIP models

5 INTEGER LINEAR PROGRAMMING (ILP) E. Amaldi Fondamenti di R.O. Politecnico di Milano 1

Integrating Benders decomposition within Constraint Programming

for Algebraic Modeling Systems?

Routing in Line Planning for Public Transport

Strategic planning in LTL logistics increasing the capacity utilization of trucks

Airport Planning and Design. Excel Solver

ON SOLVING THE PROGRESSIVE PARTY PROBLEM AS A MIP

In this paper we present a branch-and-cut algorithm for

Optimization with Gurobi and Python

Portfolio Construction with OPTMODEL

Multiproduct Batch Plant Scheduling

Recovery of primal solutions from dual subgradient methods for mixed binary linear programming; a branch-and-bound approach

An Implementation of a Constraint Branching Algorithm for Optimally Solving Airline Crew Pairing Problems

An Integer Programming Model for the School Timetabling Problem

Optimization models for targeted offers in direct marketing: exact and heuristic algorithms

Scheduling Algorithm with Optimization of Employee Satisfaction

A Column Generation Model for Truck Routing in the Chilean Forest Industry

Discuss the size of the instance for the minimum spanning tree problem.

Using computing resources with IBM ILOG CPLEX

Introduction: Models, Model Building and Mathematical Optimization The Importance of Modeling Langauges for Solving Real World Problems

Linear Programming Notes V Problem Transformations

Two objective functions for a real life Split Delivery Vehicle Routing Problem

Algorithm Design and Analysis

A Branch and Bound Algorithm for Solving the Binary Bi-level Linear Programming Problem

TSP in Spreadsheets a Guided Tour

Binary Heaps * * * * * * * / / \ / \ / \ / \ / \ * * * * * * * * * * * / / \ / \ / / \ / \ * * * * * * * * * *

Proximal mapping via network optimization

Discrete Optimization

4.6 Linear Programming duality

IEOR 4404 Homework #2 Intro OR: Deterministic Models February 14, 2011 Prof. Jay Sethuraman Page 1 of 5. Homework #2

Locating and sizing bank-branches by opening, closing or maintaining facilities

Full and Complete Binary Trees

Integer Programming: Algorithms - 3

The Gurobi Optimizer

The Problem of Scheduling Technicians and Interventions in a Telecommunications Company

GUROBI OPTIMIZER QUICK START GUIDE. Version 6.0, Copyright c 2014, Gurobi Optimization, Inc.

A progressive method to solve large-scale AC Optimal Power Flow with discrete variables and control of the feasibility

Resource Optimization of Spatial TDMA in Ad Hoc Radio Networks: A Column Generation Approach

Improving Market Clearing Software Performance to Meet Existing and Future Challenges MISO s Perspective

Using CPLEX. =5 has objective value 150.

A Branch-Cut-and-Price Approach to the Bus Evacuation Problem with Integrated Collection Point and Shelter Decisions

CHAPTER 9. Integer Programming

Introduction to Linear Programming (LP) Mathematical Programming (MP) Concept

Heuristic and exact algorithms for vehicle routing problems. Stefan Ropke

Stochastic Ship Fleet Routing with Inventory Limits YU YU

The Offshore Wind Farm Array Cable Layout Problem A Planar Open Vehicle Routing Problem

Revenue Management for Transportation Problems

Lecture 3. Linear Programming. 3B1B Optimization Michaelmas 2015 A. Zisserman. Extreme solutions. Simplex method. Interior point method

An Overview Of Software For Convex Optimization. Brian Borchers Department of Mathematics New Mexico Tech Socorro, NM

Spare part inventory control for an aircraft component repair shop

How To Solve A Minimum Set Covering Problem (Mcp)

56:171 Operations Research Midterm Exam Solutions Fall 2001

Structure Preserving Model Reduction for Logistic Networks

Linear Programming. March 14, 2014

Using EXCEL Solver October, 2000

Steiner Tree Approximation via IRR. Randomized Rounding

Transcription:

Column Generation in GAMS Extending the GAMS Branch-and-Cut-and-Heuristic (BCH) Facility Michael R. Bussieck MBussieck@gams.com GAMS Software GmbH GAMS Development Corp 83rd Working Group Meeting Real World Optimization 19. 20. November 2009 1 Mathematical Optimization in Transportation - Airline, Public Transport, Railway -

Welcome/Agenda Branch-and-Cut & Heuristic Facility First Example Constraint Generation with BCH Column Generation with BCH 2

Agenda Branch-and-Cut & Heuristic Facility First Example Constraint Generation with BCH Column Generation with BCH 3

4 Modeling Systems Best way to model and solve optimization problems Solid foundation based on Separation Separation of Model and Data Separation of Model and Algorithm Art of Modeling Some Modeling Systems provide (all) features of a programming language (e.g. GAMS, MOSEL, ) Avoid usual stumbling blocks of programming Integration of optimization models Solver is black box Good approach for >95% of optimization problems Small number of models/users that need/want more Solver/User information exchange to guide/improve the solution process.

Solution Frameworks Branch-and-Cut(-and-Price) Abacus, MINTO BCP, Bonmin, Cbc, SCIP, Symphony, Cplex, Xpress-MP, Required Knowledge for Implementation IT knowledge (C/C++/JAVA, Solver APIs) Mathematical programming knowledge Application specific knowledge Utilize rapid prototyping capability for improving solution process by user supplied information (cuts, heuristics, ) 5

Classical Branch-and-Cut-and-Heuristic Cut Generator and Heuristic Represented in terms of original GAMS problem formulation Independent of the specific solver Use any other model type and solver available in GAMS in GAMS System GAMS Solver Link Solver BCH Facility User Cut Generator & Heuristics 6

Agenda Branch-and-Cut & Heuristic Facility First Example Constraint Generation with BCH Column Generation with BCH 7

Multi-Knapsack http://www.gams.com/modlib/libhtml/bchmknap.htm Binary variables x(j); Positive variables slack(i); Equations mk(i), defobj; Variable z; defobj.. z =e= sum(j, value(j)*x(j)); mk(i).. sum(j, a(i,j)*x(j)) =l= size(i); The original model formulation model m /all/; solve m max z using mip; 8 Separation Problem for Cover Cuts: z.l<1 Cover Cuts c(j)=y.l(j): sum(c(j),x(j)) =l= card(j)-1; Binary variable y(j) membership in the cover; Equations defcover, defobj; Variable z; defobj.. z =e= sum(j, (1-x.l(j))*y(j)); defcover.. sum(j, ai(j)*y(j)) =g= size_i+1; model cover /all/; solve cover min z using mip;

Cover Cuts and Rounding Heuristic Activate BCH facility (option file): usercutcall userheurcall mknap mknap heuristic=1 Separation model: Excute_loadpoint bchout ; * Cover cut: If (z.l<1, numcuts = 1; x_c( 1,j) = y.l(j); rhs_c( 1 ) = sum(j, y.l(j)) - 1; sense_c( 1 ) = 1); // Get node solution from solver // cut matrix // 1 =l=, 2 =e=, 3 =g= * Heuristic rhs(i) = rhs(i) - sum(j$(x.l(j)=1), a(i,j)); loop(j$(x.l(j)<1), if (smin(i, rhs(i)-a(i,j))>=0, x.l(j) = 1; rhs(i) = rhs(i) - a(i,j); else x.l(j) = 0)); 9

Cplex Log with BCH Active Nodes Cuts/ Node Left Objective IInf Best Integer Best Node ItCnt Gap 0 0 4134.0741 2 4134.0741 3 *** Calling heuristic. Solution obj: 3300.0000 * 0+ 0 3300.0000 4134.0741 3 25.27% *** Calling cut generator. Added 2 cuts 0 0 3871.4286 2 3300.0000 User: 1 5 17.32% *** Calling heuristic. obj = 3300 *** Calling cut generator. Added 1 cut 0 0 3800.0000 3 3300.0000 User: 1 7 15.15% *** Calling heuristic. obj = 3300 *** Calling cut generator. No cuts found *** Calling cut generator. No cuts found *** Calling heuristic. obj = 3300 0 2 3800.0000 3 3300.0000 3800.0000 8 15.15% *** Calling cut generator. No cuts found *** Calling heuristic. obj = 3800 * 1 0 integral 0 3800.0000 3800.0000 9 0.00% 10

Oil Pipeline Design Problem Real Example: Oil Pipeline Design Problem J. Brimberg, P. Hansen, K.-W. Lih, N. Mladenovic, M. Breton 2003. An Oil Pipeline Design Problem. Operations Research, Vol 51, No. 2 228-239 Cuts generated when new incumbent is found Rounding Heuristic, Local Branching http://www.gams.com/modlib/libhtml/bchoil.htm Performance Improvements Cplex/BCH: 20 minutes Regular Cplex: 450 minutes Overhead of BCH Time spent within the callback functions minus MIP computation on cuts and heuristics: 20% ~ 25% 11

Oil-Design (Convergence) 1636.45 1565.3 1494.15 B&C&H_Dual B&C&H_Primal 1423 CPLEX_Dual CPLEX_Primal 1351.85 1280.7 0 300 600 900 1200 1500 1800 Computation Time (seconds) 12

Some Recent/Ongoing Extensions Features Cuts and Heuristics Incumbent Filters Pricing/Branching (Haase, Lübbecke, Vigerske) Thread safe, BCH in a library 13 Scope of Application Implement user heuristics/cuts for special problems Rapid Prototype Development for Algorithmic Ideas LPEC (Michael Ferris, U Wisconsin) RINS for MINLPs (Stefan Vigerske, HU Berlin) Quesada/Grossmann Algorithm for MINLP Constraints/Column Generation on the fly

Agenda Branch-and-Cut & Heuristic Facility First Example Constraint Generation with BCH Column Generation with BCH 14

Traveling Salesman Problem Start with matching constraints : sum(i, x(i,j)) = 1 for all j sum(j, x(i,j)) = 1 for all I Add subtour elimination constraints when they are needed: sum(i,j in S, x(i,j)) < card(s)-1 15 Repeat solve tsp min obj using mip; if (subtours, add cut); until no subtours (GAMS Model Library tsp1-tsp5)

BCH Implementation of TSP Perform regular B&C start with matching constraints presolve has to be turned off! Incumbent Accept/Reject Facility (userincbcall) check for subtours if rejected, store subtour elimination constraint Cut Facility (usercutcall) supply subtour elimination constraint 16

Cplex Log for TSP Root relaxation solution time = 0.00 sec. *** Calling cut generator. / *** Checking incumbent with objective 20. Rejected! Nodes Cuts/ Node Left Objective IInf Best Integer Best Node ItCnt Gap 0 0 20.0000 0 20.0000 4 *** Calling cut generator. Added 3 cuts *** Calling cut generator. / *** Checking incumbent with objective 136. Rejected! *** Calling cut generator. Added 2 cuts *** Calling cut generator. / *** Checking incumbent with objective 78. Accepted! * 0 0 integral 0 78.0000 Cuts: 13 4 0.00% 0 0 cutoff 78.0000 78.0000 4 0.00% 17

Agenda Branch-and-Cut & Heuristic Facility First Example Constraint Generation with BCH Column Generation with BCH 18

Graph Coloring Algorithm Given graph (V,E), find coloring c of V Mehrotra/Trick: min sum(i, x(i)), st. sum(i contains v, x(i))>1, i independent set of (V,E) marginal cost Pricing problem: Find an independent set j with sum(v in j, v ) > 1: max sum(v, pi(v)*z(v)), st. z(u)+z(v) < 1, uv in E, z binary 19 Repeat solve master min obj using rmip; solve pricing max obj2 using mip; if (obj2.l>1, add column); until obj2.l<1; solve master min obj using mip;

BCH Implementation of Graph Coloring Disadvantage of traditional GAMS implementation Regeneration of master problem Warm versus hot start of master LP BCH Solution: Start with a trivial independent set covering Solve restricted master and inside solver call pricing facility (userpricingcall) 20 Iteration Objective In Variable Out Variable 1 3.252941 x91 x83 2 3.252941 defcover(20) slack x84 LP status(1): optimal Optimal solution found. Objective : 3.252941 --- Calling pricing problem. 3 columns added. Iteration Objective In Variable Out Variable 1 3.252941 x92 defcover(20) slack 2 3.250000 x80 x78 LP status(1): optimal Optimal solution found. Objective : 3.250000

Outlook: Branch-and-Price Repeat solve master min obj using rmip; solve pricing max obj2 using mip; if (obj2.l>1, add column); until obj2.l<1; solve master min obj using mip; does not guarantee optimal solution True Branch-and-Price: Column generation at the nodes of the B&B tree Branching rule that is compatible with pricing problem Prototype written in GAMS (tree manager, with Haase, Lübbecke) Use solver framework (e.g. SCIP) to implement Branch-and-Price with BCH 21

Summary Solver independent BCH readily available with GAMS Implement user heuristics, cuts and dynamic constraints/columns without too much computer science knowledge in your problem namespace Build rapidly prototypes of advanced algorithms in little time concentrating on the essential ideas Ongoing project: BCH for Branch-and-Price 22 http://www.gams.com/docs/bch.htm (documentation) http://www.gams.com/modlib/libhtml/alfindx.htm (examples)