GAMS Branch-and-Cut & Heuristic Facility

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

Solving convex MINLP problems with AIMMS

GAMS Productivity - Performance - Reliability

SBB: A New Solver for Mixed Integer Nonlinear Programming

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

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

Chapter 13: Binary and Mixed-Integer Programming

Grid-Enabled Optimization with GAMS

Quality Assurance For Mathematical Modeling Systems

Mixed Integer Linear Programming in R

Noncommercial Software for Mixed-Integer Linear Programming

for Algebraic Modeling Systems?

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

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

CPLEX Tutorial Handout

UMTS Radio Network Planning. Andreas Eisenblätter Thorsten Koch (ZIB) Alexander Martin (TU Darmstadt)

Integrating Benders decomposition within Constraint Programming

Branch and Cut for TSP

Simplified Benders cuts for Facility Location

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

A Constraint Programming based Column Generation Approach to Nurse Rostering Problems

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

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

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

LocalSolver: black-box local search for combinatorial optimization

Scheduling Algorithm with Optimization of Employee Satisfaction

Scheduling Home Health Care with Separating Benders Cuts in Decision Diagrams

Discrete Optimization

Network Optimization using AIMMS in the Analytics & Visualization Era

Routing in Line Planning for Public Transport

Optimization of Supply Chain Networks

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

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

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

New Exact Solution Approaches for the Split Delivery Vehicle Routing Problem

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

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

Strategic planning in LTL logistics increasing the capacity utilization of trucks

The Gurobi Optimizer

Convex Programming Tools for Disjunctive Programs

The Problem of Scheduling Technicians and Interventions in a Telecommunications Company

How to speed-up hard problem resolution using GLPK?

A Reference Point Method to Triple-Objective Assignment of Supporting Services in a Healthcare Institution. Bartosz Sawik

ON SOLVING THE PROGRESSIVE PARTY PROBLEM AS A MIP

A Student-centric Class and Exam Scheduling System at West Point

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

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

CREATING WEEKLY TIMETABLES TO MAXIMIZE EMPLOYEE PREFERENCES

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

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

Full and Complete Binary Trees

Modeling and Solving the Capacitated Vehicle Routing Problem on Trees

npsolver A SAT Based Solver for Optimization Problems

Mixed integer programming methods for supply chain optimization

Blending petroleum products at NZ Refining Company

Discrete Optimization Introduction & applications

4.6 Linear Programming duality

Refinery Planning & Scheduling - Plan the Act. Act the Plan.

Big Data Optimization at SAS

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

A MULTI-PERIOD INVESTMENT SELECTION MODEL FOR STRATEGIC RAILWAY CAPACITY PLANNING

An Integer Programming Model for the School Timetabling Problem

TOMLAB - For fast and robust largescale optimization in MATLAB

Adaptive Memory Search for Boolean Optimization Problems

Design, synthesis and scheduling of multipurpose batch plants via an effective continuous-time formulation

Beyond the Stars: Revisiting Virtual Cluster Embeddings

Re-optimization of Rolling Stock Rotations

Resource Allocation Modeling Techniques Applied to Air Force Crew Scheduling Problem

A New Method for Estimating Maximum Power Transfer and Voltage Stability Margins to Mitigate the Risk of Voltage Collapse

Approximation Algorithms

Scheduling Jobs and Preventive Maintenance Activities on Parallel Machines

A Service Design Problem for a Railway Network

HYBRID GENETIC ALGORITHMS FOR SCHEDULING ADVERTISEMENTS ON A WEB PAGE

A Metaheuristic Optimization Algorithm for Binary Quadratic Problems

Airport Planning and Design. Excel Solver

Spare part inventory control for an aircraft component repair shop

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

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

IBM ILOG CPLEX for Microsoft Excel User's Manual

A Weighted-Sum Mixed Integer Program for Bi-Objective Dynamic Portfolio Optimization

Short-term scheduling and recipe optimization of blending processes

Minimizing costs for transport buyers using integer programming and column generation. Eser Esirgen

Adaptive Linear Programming Decoding

Transcription:

GAMS Branch-and-Cut & Heuristic Facility Michael R. Bussieck MBussieck@gams.com GAMS Software GmbH GAMS Development Corp INFORMS Annual Meeting Washington DC 12 October 2008 1

Welcome/Agenda Branch-and-Cut & Heuristic Facility First Example Extensions and Open Source Algorithm Prototyping and BCH 2

Agenda Branch-and-Cut & Heuristic Facility First Example Extensions and Open Source Algorithm Prototyping and 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 Extensions and Open Source Algorithm Prototyping and 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 Separation model: mknap goto cuts mknap goto heuristic Excute_loadpoint bchout ; // Get node solution from solver * Cover cut: If (z.l<1, numcuts = 1; x_c( 1,j) = y.l(j); // cut matrix rhs_c( 1 ) = sum(j, y.l(j)) - 1; sense_c( 1 ) = 1); // 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

Agenda Branch-and-Cut & Heuristic Facility First Example Extensions and Open Source Algorithm Prototyping with BCH 13

Some Recent Extensions Features Cuts and Heuristics Incumbent Filters Branching (Alexander Martin, TU Darmstadt) Column Generation (Knut Haase, TU Dresden) Pricing 14 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

BCH and Open Source Open Source Solvers aware of BCH COIN-OR s Cbc, COIN-OR s Bonmin, ZIB s SCIP Open Source codes Highly flexible. E.g. callbacks for solving node problem E.g. SCIP: General constraint handler Commercial MIP codes Build for maximum performance without user interaction Restricted user interaction. For example, Cplex: No cut callbacks at infeasible nodes Disabled dynamic search when user callbacks active 15

Agenda Branch-and-Cut & Heuristic Facility First Example Extensions and Open Source Algorithm Prototyping with BCH 16

17 Quesada/Grossmann Algorithm for MINLP Combination of Outer Approximation (OA) Branch-and-Cut OA Cycle between NLP (with fixed discrete) MIP master with linearizations and cuts Resolve MIP master problem from scratch in every iteration QG Keep MIP master alive and add linearizations at different points in the B&C algorithm Implementations: Bonmin and FilMINT

18

Simple Implementation of QG Start with some linearization of the problem Perform regular B&C Whenever if the MIP master finds an integer solution Take the discrete variables, fix them and solve the NLP If NLP is feasible and better than the incumbent Install this solution as the incumbent. Add the linearization at this point to the MIP master problem If the NLP is infeasible, reject the solution and prevent that the solution comes up again. At fractional nodes, add other linearizations 19

BCH Implementation of QG GAMS/CPLEX Incumbent filter callback to check if integer solution of MIP master results in a solution to MINLP Cut callback to add linearizations Complications Install MINLP solution as incumbent to MIP master problem (CPLEX). Remember MINLP solution and supply this when the heuristic callback is called. Pass initial linearization of MINLP to Cplex (GAMS) Calculate linearization at a point (calculate derivatives) (GAMS) 20

Cplex Log for QG Root relaxation solution time = 0.02 sec. *** Calling cut generator. No cuts found *** Checking incumbent with objective 8000. Rejected! *** (QG) New incumbent 5.4299e+008 0!!! Nodes Cuts/ Node Left Objective IInf Best Integer Best Node ItCnt Gap 0 0 8000.0000 0 8000.0000 6 *** Calling cut generator. Added 1 cut *** Calling heuristic. Solution obj: 542989682.8678 *** Checking incumbent with objective 5.4299e+008. Accepted! * 0+ 0 5.42990e+008 8278.0645 6 100.00% *** Calling cut generator. No cuts found *** Calling cut generator. No cuts found *** Checking incumbent with objective 9950. Rejected! *** (QG) New incumbent 3.87854e+008 0!!! 0 0 9950.0000 0 5.42990e+008 Cuts: 15 13 100.00% *** Calling cut generator. Added 1 cut *** Calling cut generator. No cuts found *** Calling heuristic. Solution obj: 387854009.1913 *** Checking incumbent with objective 3.87854e+008. Accepted! * 0+ 0 3.87854e+008 9950.0000 13 100.00% 21

Summary BCH readily available with GAMS Implement user heuristics and cuts without too much computer science knowledge in your problem namespace Build rapidly prototypes of advanced algorithms in little time concentrating on the essential ideas Use unified interface to interact with different B&C frameworks 22 http://www.gams.com/docs/bch.htm (documentation) http://www.gams.com/modlib/libhtml/alfindx.htm (examples)