Column Generation Based Primal Heuristics

Similar documents
Column Generation based Primal Heuristics

Primal Heuristics for Branch-and-Price: the assets of diving methods

Primal Heuristics for Branch-and-Price

Primal Heuristics for Branch-and-Price Algorithms

Column Generation based Primal Heuristics

3 INTEGER LINEAR PROGRAMMING

Bin Packing with Conflicts: a Generic Branch-and-Price Algorithm

Primal Heuristics in SCIP

Heuristics in MILP. Group 1 D. Assouline, N. Molyneaux, B. Morén. Supervisors: Michel Bierlaire, Andrea Lodi. Zinal 2017 Winter School

The MIP-Solving-Framework SCIP

Heuristics in Commercial MIP Solvers Part I (Heuristics in IBM CPLEX)

Adaptive Large Neighborhood Search

Motivation for Heuristics

Applied Mixed Integer Programming: Beyond 'The Optimum'

A Branch-and-Bound Algorithm for the Knapsack Problem with Conflict Graph

Selected Topics in Column Generation

GENERAL ASSIGNMENT PROBLEM via Branch and Price JOHN AND LEI

The Size Robust Multiple Knapsack Problem

COLUMN GENERATION BASED HEURISTIC FOR THE GENERALIZED ASSIGNMENT PROBLEM

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

Fundamentals of Integer Programming

Algorithms for Integer Programming

Outline. Column Generation: Cutting Stock A very applied method. Introduction to Column Generation. Given an LP problem

Column Generation: Cutting Stock

A Primal-Dual Framework for Combinatorial Problem Solving

MVE165/MMG631 Linear and integer optimization with applications Lecture 9 Discrete optimization: theory and algorithms

Branch-Cut-and-Price solver for Vehicle Routing Problems

Integer Programming Chapter 9

Recursive column generation for the Tactical Berth Allocation Problem

Algorithms for the Bin Packing Problem with Conflicts

Penalty Alternating Direction Methods for Mixed- Integer Optimization: A New View on Feasibility Pumps

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

A Generic Separation Algorithm and Its Application to the Vehicle Routing Problem

Controlling Open Stacks and Flow Time in a Cutting Process

DIP with CHiPPS: Decomposition Methods for Integer Linear Programming. CSIRO, Melbourne, Australia, 19 December, 2011

Lagrangean Methods bounding through penalty adjustment

Benders Decomposition

On the Global Solution of Linear Programs with Linear Complementarity Constraints

Conflict Graphs for Combinatorial Optimization Problems

Algorithms II MIP Details

Computational Integer Programming. Lecture 12: Branch and Cut. Dr. Ted Ralphs

Improved Gomory Cuts for Primal Cutting Plane Algorithms

A Bucket Graph Based Labelling Algorithm for the Resource Constrained Shortest Path Problem with Applications to Vehicle Routing

56:272 Integer Programming & Network Flows Final Examination -- December 14, 1998

Restrict-and-relax search for 0-1 mixed-integer programs

Benders in a nutshell Matteo Fischetti, University of Padova

2. Modeling AEA 2018/2019. Based on Algorithm Engineering: Bridging the Gap Between Algorithm Theory and Practice - ch. 2

Exploiting Degeneracy in MIP

2 is not feasible if rounded. x =0,x 2

Algorithms for Decision Support. Integer linear programming models

Parallel Branch & Bound

Combinatorial Auctions: A Survey by de Vries and Vohra

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

Solving a Challenging Quadratic 3D Assignment Problem

DIP with CHiPPS: Decomposition Methods for Integer Linear Programming. ExxonMobil, 21 October 2011

Decomposition Methods for Discrete Optimization. INFORMS Computing Society Conference, 7 January 2013

Improving the heuristic performance of Benders decomposition

Integer Programming and Network Modeis

COLUMN GENERATION IN LINEAR PROGRAMMING

Search Algorithms. IE 496 Lecture 17

Facility Location-Routing-Scheduling Problem: LRS

Gomory Reloaded. Matteo Fischetti, DEI, University of Padova (joint work with Domenico Salvagnin) 1 MIP 2010

A LARGE SCALE INTEGER AND COMBINATORIAL OPTIMIZER

Pivot and Gomory Cut. A MIP Feasibility Heuristic NSERC

Solving lexicographic multiobjective MIPs with Branch-Cut-Price

15.083J Integer Programming and Combinatorial Optimization Fall Enumerative Methods

Experiments with a Generic Dantzig-Wolfe Decomposition for Integer Programs

Pure Cutting Plane Methods for ILP: a computational perspective

Noncommercial Software for Mixed-Integer Linear Programming

General Methods and Search Algorithms

Hybrid Constraint Programming and Metaheuristic methods for Large Scale Optimization Problems

Advanced Use of GAMS Solver Links

Crew Scheduling Problem: A Column Generation Approach Improved by a Genetic Algorithm. Santos and Mateus (2007)

Exact Algorithms for Mixed-Integer Bilevel Linear Programming

Integer Programming. Xi Chen. Department of Management Science and Engineering International Business School Beijing Foreign Studies University

A List Heuristic for Vertex Cover

Branch-price-and-cut for vehicle routing. Guy Desaulniers

Automatic Decomposition and Branch-and-Price A Status Report

5.3 Cutting plane methods and Gomory fractional cuts

Manpower Planning: Task Scheduling. Anders Høeg Dohn

DETERMINISTIC OPERATIONS RESEARCH

Decomposition in Integer Linear Programming

Decomposition and Dynamic Cut Generation in Integer Linear Programming

Alternating Criteria Search: A Parallel Large Neighborhood Search Algorithm for Mixed Integer Programs

Decomposition in Integer Linear Programming

Two-stage column generation

Last topic: Summary; Heuristics and Approximation Algorithms Topics we studied so far:

Parallel Computing in Combinatorial Optimization

Algorithm Design Methods. Some Methods Not Covered

George Reloaded. M. Monaci (University of Padova, Italy) joint work with M. Fischetti. MIP Workshop, July 2010

Experiments On General Disjunctions

Implementing a B&C algorithm for Mixed-Integer Bilevel Linear Programming

DIP and DipPy: Towards a Decomposition-based MILP Solver. International Symposium on Mathematical Programming, August 2012

Marginal and Sensitivity Analyses

The Gurobi Optimizer. Bob Bixby

Exact solutions to mixed-integer linear programming problems

An Integer Programming Approach to Packing Lightpaths on WDM Networks 파장분할다중화망의광경로패킹에대한정수계획해법. 1. Introduction

Graph Coloring via Constraint Programming-based Column Generation

Combinatorial Optimization

Rounding procedures in Semidefinite Programming

Transcription:

Column Generation Based Primal Heuristics C. Joncour, S. Michel, R. Sadykov, D. Sverdlov, F. Vanderbeck University Bordeaux 1 & INRIA team RealOpt

Outline 1 Context Generic Primal Heuristics The Branch-and-Price Approach 2 Column Generation based Primal Heuristics Specificity of the B-a-P context Literature Review 3 Diving Heuristic An implementation with Limited Discrepancy Search Numerical tests 4 Discussion

Context Generic Primal Heuristics for MIPs good feasible solutions using the tools of exact optimization Truncating an exact method Building from the relaxation used for the exact approach Defining a target based on the relaxation Using dual information to price choices in greedy heuristics Exact approach used to explore a neighborhood Examples: [Berthold 06] 1 Relaxation Induced Neighborhood Search [Dana al 05] 2 Local Branching [Fischetti al 03] 3 Feasibility Pump [Fischetti al 05]

Context Generic Primal Heuristics for MIPs good feasible solutions using the tools of exact optimization Truncating an exact method Building from the relaxation used for the exact approach Defining a target based on the relaxation Using dual information to price choices in greedy heuristics Exact approach used to explore a neighborhood Examples: [Berthold 06] 1 Relaxation Induced Neighborhood Search [Dana al 05] 2 Local Branching [Fischetti al 03] 3 Feasibility Pump [Fischetti al 05]

Context Generic Primal Heuristics for MIPs good feasible solutions using the tools of exact optimization Truncating an exact method Building from the relaxation used for the exact approach Defining a target based on the relaxation Using dual information to price choices in greedy heuristics Exact approach used to explore a neighborhood Examples: [Berthold 06] 1 Relaxation Induced Neighborhood Search [Dana al 05] 2 Local Branching [Fischetti al 03] 3 Feasibility Pump [Fischetti al 05]

Context Generic Primal Heuristics for MIPs good feasible solutions using the tools of exact optimization Truncating an exact method Building from the relaxation used for the exact approach Defining a target based on the relaxation Using dual information to price choices in greedy heuristics Exact approach used to explore a neighborhood Examples: [Berthold 06] 1 Relaxation Induced Neighborhood Search [Dana al 05] 2 Local Branching [Fischetti al 03] 3 Feasibility Pump [Fischetti al 05]

Context Generic Primal Heuristics for MIPs good feasible solutions using the tools of exact optimization Truncating an exact method Building from the relaxation used for the exact approach Defining a target based on the relaxation Using dual information to price choices in greedy heuristics Exact approach used to explore a neighborhood Examples: [Berthold 06] 1 Relaxation Induced Neighborhood Search [Dana al 05] 2 Local Branching [Fischetti al 03] 3 Feasibility Pump [Fischetti al 05]

Context Generic LP based heuristics min{ j c jx j : j a ijx j b i i, l j x j u j j} Rounding: Iteratively select a var x j and bound/fix it least fractional: argmin j {min{x j x j, x j x j }} least infeasibility: argmin j {up-lock j + down-lock j } where up-lock j = # constraint i with a ij < 0 and down-lock j = # constraint i with a ij > 0 guided search: argmin j { x j x inc j } least pseudo-cost: argmin j {LP val increase} greedy: argmin j { c j Pi a } ij Diving: rounding + LP resolve + reiterate heuristic depth search in branch-and-bound tree branching rule that of exact branch-and-bound sub-miping: rounding + MIP sol of the residual prob.

Context Generic LP based heuristics min{ j c jx j : j a ijx j b i i, l j x j u j j} Rounding: Iteratively select a var x j and bound/fix it least fractional: argmin j {min{x j x j, x j x j }} least infeasibility: argmin j {up-lock j + down-lock j } where up-lock j = # constraint i with a ij < 0 and down-lock j = # constraint i with a ij > 0 guided search: argmin j { x j x inc j } least pseudo-cost: argmin j {LP val increase} greedy: argmin j { c j Pi a } ij Diving: rounding + LP resolve + reiterate heuristic depth search in branch-and-bound tree branching rule that of exact branch-and-bound sub-miping: rounding + MIP sol of the residual prob.

Context Generic LP based heuristics min{ j c jx j : j a ijx j b i i, l j x j u j j} Rounding: Iteratively select a var x j and bound/fix it least fractional: argmin j {min{x j x j, x j x j }} least infeasibility: argmin j {up-lock j + down-lock j } where up-lock j = # constraint i with a ij < 0 and down-lock j = # constraint i with a ij > 0 guided search: argmin j { x j x inc j } least pseudo-cost: argmin j {LP val increase} greedy: argmin j { c j Pi a } ij Diving: rounding + LP resolve + reiterate heuristic depth search in branch-and-bound tree branching rule that of exact branch-and-bound sub-miping: rounding + MIP sol of the residual prob.

Context Generic LP based heuristics min{ j c jx j : j a ijx j b i i, l j x j u j j} Rounding: Iteratively select a var x j and bound/fix it least fractional: argmin j {min{x j x j, x j x j }} least infeasibility: argmin j {up-lock j + down-lock j } where up-lock j = # constraint i with a ij < 0 and down-lock j = # constraint i with a ij > 0 guided search: argmin j { x j x inc j } least pseudo-cost: argmin j {LP val increase} greedy: argmin j { c j Pi a } ij Diving: rounding + LP resolve + reiterate heuristic depth search in branch-and-bound tree branching rule that of exact branch-and-bound sub-miping: rounding + MIP sol of the residual prob.

Context Heuristic search in branch-and-bound tree Diving sub-miping

Context The Branch-and-Price Approach min c 1 x 1 + c 2 x 2 +... + c K x K D x 1 + D x 2 +... + D x K d B x 1 b B x 2 b...... B x K x 1 N n, x 2 N n,... x K N n. Relax Dx d = decomposition: subproblem {B x b, x N n } and a reformulation solved by Branch-and-Price: b min P S S cx s λ s P s S Dx s λ s d P S S λs = K λ N S Solve Master LP Pricing Problem y := X k x k = X S S cx s λ s Solve Master LP Solve Master LP Pricing Problem Pricing Problem

Context The Branch-and-Price Approach min c 1 x 1 + c 2 x 2 +... + c K x K D x 1 + D x 2 +... + D x K d B x 1 b B x 2 b...... B x K x 1 N n, x 2 N n,... x K N n. Relax Dx d = decomposition: subproblem {B x b, x N n } and a reformulation solved by Branch-and-Price: b min P S S cx s λ s P s S Dx s λ s d P S S λs = K λ N S Solve Master LP Pricing Problem y := X k x k = X S S cx s λ s Solve Master LP Solve Master LP Pricing Problem Pricing Problem

Context The Branch-and-Price Approach min c 1 x 1 + c 2 x 2 +... + c K x K D x 1 + D x 2 +... + D x K d B x 1 b B x 2 b...... B x K x 1 N n, x 2 N n,... x K N n. Relax Dx d = decomposition: subproblem {B x b, x N n } and a reformulation solved by Branch-and-Price: b min P S S cx s λ s P s S Dx s λ s d P S S λs = K λ N S Solve Master LP Pricing Problem y := X k x k = X S S cx s λ s Solve Master LP Solve Master LP Pricing Problem Pricing Problem

Column Generation based Primal Heuristics Difficulties in a B-a-P context Heuristic paradigm in original space or the reformulation? On master variables: λ Cannot fix bounds (as in rounding) Cannot define constraints (as in local branching) On original variables: x Cannot grasp individual SP var. after aggregation in the common case of identical SPs Cannot modify the SP structure required by the oracle What can be done: define a partial solution iteratively updated (lb on λ) apply col. gen. to the residual prob. (prepr. = bd x, λ)

Column Generation based Primal Heuristics Difficulties in a B-a-P context Heuristic paradigm in original space or the reformulation? On master variables: λ Cannot fix bounds (as in rounding) Cannot define constraints (as in local branching) On original variables: x Cannot grasp individual SP var. after aggregation in the common case of identical SPs Cannot modify the SP structure required by the oracle What can be done: define a partial solution iteratively updated (lb on λ) apply col. gen. to the residual prob. (prepr. = bd x, λ)

Column Generation based Primal Heuristics Difficulties in a B-a-P context Heuristic paradigm in original space or the reformulation? On master variables: λ Cannot fix bounds (as in rounding) Cannot define constraints (as in local branching) On original variables: x Cannot grasp individual SP var. after aggregation in the common case of identical SPs Cannot modify the SP structure required by the oracle What can be done: define a partial solution iteratively updated (lb on λ) apply col. gen. to the residual prob. (prepr. = bd x, λ)

Column Generation based Primal Heuristics Difficulties in a B-a-P context Heuristic paradigm in original space or the reformulation? On master variables: λ Cannot fix bounds (as in rounding) Cannot define constraints (as in local branching) On original variables: x Cannot grasp individual SP var. after aggregation in the common case of identical SPs Cannot modify the SP structure required by the oracle What can be done: define a partial solution iteratively updated (lb on λ) apply col. gen. to the residual prob. (prepr. = bd x, λ)

Column Generation based Primal Heuristics Review of column generation based heuristics 1 Restricted Master min{ S c sλ s : s Dx s λ s d, s λ s = K, λ s N s S} restricted set build either heuristically / from master LP 2 Greedy iteratively select column with best pseudo-cost / red-cost 3 Rounding round down master LP solution + iterative round-up complete heuristically 4 Local search delete columns from incumbent rebuild heuristically genericity & feasibility issue

Column Generation based Primal Heuristics Review of column generation based heuristics 1 Restricted Master min{ S c sλ s : s Dx s λ s d, s λ s = K, λ s N s S} restricted set build either heuristically / from master LP 2 Greedy iteratively select column with best pseudo-cost / red-cost 3 Rounding round down master LP solution + iterative round-up complete heuristically 4 Local search delete columns from incumbent rebuild heuristically genericity & feasibility issue

Column Generation based Primal Heuristics Review of column generation based heuristics 1 Restricted Master min{ S c sλ s : s Dx s λ s d, s λ s = K, λ s N s S} restricted set build either heuristically / from master LP 2 Greedy iteratively select column with best pseudo-cost / red-cost 3 Rounding round down master LP solution + iterative round-up complete heuristically 4 Local search delete columns from incumbent rebuild heuristically genericity & feasibility issue

Column Generation based Primal Heuristics Review of column generation based heuristics 1 Restricted Master min{ S c sλ s : s Dx s λ s d, s λ s = K, λ s N s S} restricted set build either heuristically / from master LP 2 Greedy iteratively select column with best pseudo-cost / red-cost 3 Rounding round down master LP solution + iterative round-up complete heuristically 4 Local search delete columns from incumbent rebuild heuristically genericity & feasibility issue

Column Generation based Primal Heuristics Review of column generation based heuristics 1 Restricted Master min{ S c sλ s : s Dx s λ s d, s λ s = K, λ s N s S} restricted set build either heuristically / from master LP 2 Greedy iteratively select column with best pseudo-cost / red-cost 3 Rounding round down master LP solution + iterative round-up complete heuristically 4 Local search delete columns from incumbent rebuild heuristically genericity & feasibility issue

Column Generation based Primal Heuristics Review of column generation based heuristics 1 Restricted Master (generic, often leads to infeasibility) min{ S c sλ s : s Dx s λ s d, s λ s = K, λ s N s S} restricted set build either heuristically / from master LP 2 Greedy (application specific) iteratively select column with best pseudo-cost / red-cost 3 Rounding (application specific) round down master LP solution + iterative round-up complete heuristically 4 Local search (application specific) delete columns from incumbent rebuild heuristically genericity & feasibility issue

Diving Heuristic Diving Heuristic: generic algorithm Generic way to restore feasibility: further column generation Step 1: Solve the current master LP. Step 2: Select columns into the current solution at heuristically set values: λ s λ s Step 3: If the partial solution defines a complete primal solution, record this solution and goto Step 6. Step 4: Update the master (RHS) and the pricing problems (SP var. bounds). Step 5: If residual master problem is shown infeasible through preprocessing, goto Step 6. Else, return to Step 1. Step 6: + diversification procedure: limited backtracking

Diving Heuristic Diving Heuristic: generic algorithm Generic way to restore feasibility: further column generation Step 1: Solve the current master LP. Step 2: Select columns into the current solution at heuristically set values: λ s λ s Step 3: If the partial solution defines a complete primal solution, record this solution and goto Step 6. Step 4: Update the master (RHS) and the pricing problems (SP var. bounds). Step 5: If residual master problem is shown infeasible through preprocessing, goto Step 6. Else, return to Step 1. Step 6: Stop. + diversification procedure: limited backtracking

Diving Heuristic Diving Heuristic: generic algorithm Generic way to restore feasibility: further column generation Step 1: Solve the current master LP. Step 2: Select columns into the current solution at heuristically set values: λ s λ s Step 3: If the partial solution defines a complete primal solution, record this solution and goto Step 6. Step 4: Update the master (RHS) and the pricing problems (SP var. bounds). Step 5: If residual master problem is shown infeasible through preprocessing, goto Step 6. Else, return to Step 1. Step 6: Backtrack. + diversification procedure: limited backtracking

Diving Heuristic Diving plus diversification Depth-first search: select column: λ s λ s update master and SP apply preprocessing Backtracking: Limited Discrepancy Search MaxDiscrepancy = 2, MaxDepth = 3

Diving Heuristic Numerical tests: Cutting Stock & Vertex Coloring 2 1 3 5 4 pure B-a-P DH w LDS problem size #inst. #nodes time gap time CSP 50 10 245 26 0% 2 CSP 80 10 417 192 0% 14 VCP 11 211 18 17 116 0% 26

Diving Heuristic Numerical tests: Bin Packing With Conflicts conflict conflict conflict 20 inst. b-a-p b-a-p + diving w LDS class not opt. av. time not opt. av. time max. time t60 0 1.7 0 1.6 7.2 t120 1 156.0 0 14.9 846.3 t249 2 334.2 0 32.1 172.1 t501 0 245.9 0 174.9 793.5 u120 0 3.4 0 3.6 36.2 u250 0 23.9 0 14.6 30.9 u500 1 318.0 0 74.8 136.3 u1000 0 1401.2 0 552.8 5359.6

Diving Heuristic Numerical tests: Bin Packing With Conflicts conflict conflict conflict Tabu Search Diving H DH LDS class gap time gap time gap time t60 0.45% 37.5 0.11% 1.3 0% 1.5 t120 0.62% 40.0 0.66% 2.5 0% 5.9 t249 0.39% 51.9 0.35% 5.1 0% 32.1 t501 0.21% 58.9 0.16% 10.3 0% 174.9 u120 0.10% 22.4 0.18% 2.6 0% 3.3 u250 0.21% 52.1 0.07% 5.4 0% 14.6 u500 0.20% 69.7 0.03% 10.7 0% 74.8 u1000 0.22% 107.8 0.01% 21.5 0.002% 514.1

Diving Heuristic Numerical tests: Vehicle Routing Diving H problem size #inst. # unsolved gap time VRP An32-80 27 17 5.25% 70

Discussion Feedback on experimentation Rounding/Diving based on fixing master var. λ works when 1 Sufficiently many columns in the solution: s λ s = K with K 1 2 Objective function is flat : many solutions of the same costs 3 Most of the combinatorial difficulty is in the subproblem

Discussion Further research Exact Branch-and-Price with heuristic oracle First experiment on CSP with greedy knapsack solver Seems no good when most of the difficulty is in the SP Sub-MIPing Fixing original variables in aggregate space