Branch and Cut for TSP



Similar documents
CHAPTER 9. Integer Programming

Dantzig-Wolfe bound and Dantzig-Wolfe cookbook

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

New Exact Solution Approaches for the Split Delivery Vehicle Routing Problem

5.1 Bipartite Matching

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

Number of hours in the semester L Ex. Lab. Projects SEMESTER I 1. Economy Philosophy Mathematical Analysis Exam

Proximal mapping via network optimization

Scheduling Home Health Care with Separating Benders Cuts in Decision Diagrams

! Solve problem to optimality. ! Solve problem in poly-time. ! Solve arbitrary instances of the problem. !-approximation algorithm.

Chapter Load Balancing. Approximation Algorithms. Load Balancing. Load Balancing on 2 Machines. Load Balancing: Greedy Scheduling

Routing in Line Planning for Public Transport

! Solve problem to optimality. ! Solve problem in poly-time. ! Solve arbitrary instances of the problem. #-approximation algorithm.

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

A Column-Generation and Branch-and-Cut Approach to the Bandwidth-Packing Problem

Discrete Optimization

Lecture 11: 0-1 Quadratic Program and Lower Bounds

Completely Positive Cone and its Dual

Can linear programs solve NP-hard problems?

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

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

Algorithm Design and Analysis

On the effect of forwarding table size on SDN network utilization

Approximation Algorithms

Chapter 13: Binary and Mixed-Integer Programming

Modeling and Solving the Capacitated Vehicle Routing Problem on Trees

Optimization Modeling for Mining Engineers

Nan Kong, Andrew J. Schaefer. Department of Industrial Engineering, Univeristy of Pittsburgh, PA 15261, USA

How to speed-up hard problem resolution using GLPK?

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

11. APPROXIMATION ALGORITHMS

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

Efficient and Robust Allocation Algorithms in Clouds under Memory Constraints

A Working Knowledge of Computational Complexity for an Optimizer

Integer factorization is in P

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

How To Solve The Line Connectivity Problem In Polynomatix

Cost-efficient network synthesis from leased lines

Mathematical finance and linear programming (optimization)

Integer Programming Approach to Printed Circuit Board Assembly Time Optimization

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

Applied Algorithm Design Lecture 5

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

Column Generation for the Pickup and Delivery Problem with Time Windows

Transportation Polytopes: a Twenty year Update

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

Noncommercial Software for Mixed-Integer Linear Programming

Approximating Minimum Bounded Degree Spanning Trees to within One of Optimal

Convex Programming Tools for Disjunctive Programs

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

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

Classification - Examples

Route optimization applied to school transports A method combining column generation with greedy heuristics

A Service Design Problem for a Railway Network

Incremental Network Design with Shortest Paths

ARTICLE IN PRESS. European Journal of Operational Research xxx (2004) xxx xxx. Discrete Optimization. Nan Kong, Andrew J.

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

Adaptive Linear Programming Decoding

4.6 Linear Programming duality

Computer Algorithms. NP-Complete Problems. CISC 4080 Yanjun Li

Analysis of Approximation Algorithms for k-set Cover using Factor-Revealing Linear Programs

Stronger Multi-Commodity Flow Formulations of the Capacitated Vehicle Routing Problem

Solving NP Hard problems in practice lessons from Computer Vision and Computational Biology

Equilibrium computation: Part 1

A hierarchical multicriteria routing model with traffic splitting for MPLS networks

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

A Constraint Programming based Column Generation Approach to Nurse Rostering Problems

Heuristic and exact algorithms for vehicle routing problems. Stefan Ropke

Duality in General Programs. Ryan Tibshirani Convex Optimization /36-725

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

A Network Flow Approach in Cloud Computing

Guessing Game: NP-Complete?

Linear Programming Notes V Problem Transformations

Dynamic programming. Doctoral course Optimization on graphs - Lecture 4.1. Giovanni Righini. January 17 th, 2013

Strategic planning in LTL logistics increasing the capacity utilization of trucks

Binary Image Reconstruction

Automated SEO. A Market Brew White Paper

Some representability and duality results for convex mixed-integer programs.

Simplified Benders cuts for Facility Location

Linear Programming. Widget Factory Example. Linear Programming: Standard Form. Widget Factory Example: Continued.

Transcription:

Branch and Cut for TSP jla,jc@imm.dtu.dk Informatics and Mathematical Modelling Technical University of Denmark 1

Branch-and-Cut for TSP Branch-and-Cut is a general technique applicable e.g. to solve symmetric TSP problem. TSP is N P-hard no one believes that there exists a polynomial algorithm for the problem. TSP can be formulated as an integer programming problem for an n-vertex graph the number of binary variables becomes n(n 1) 2, and the problem has an exponential number of subtour elimination constraints. 2

The symmetric TSP min e E d ex e s.t. x(δ(v)) = 2, v {1,..., n} x(δ(s)) 2, S V x e {0, 1}, e E 3

The number of subtour elimination constraints is huge (2 V ) and even though we can remove half of those due to symmetry there are still exponentially many. therefore, in the relaxed version we remove the integrality constraints and the exponentially many subtour elimination constraints. 4

Challenges For the cutting plane approach to work we need to 1. be able to check whether any subtour elimination constraints are violated (efficiently) and 2. we must be able to solve the LP relaxation efficiently. 5

Problem 2 Start by solving a smaller variant of the original problem. Let E E and solve: min e E d e x e s.t. x(δ(v)) = 2, v {1,..., n} x(δ(s)) 2, S V 0 x e 1, e E An optimal solution x for this problem can be extended to a feasible solution for the original problem by x e = x e, e E and x e = 0, e E \ E. 6

BUT this solution might not be optimal in the original relaxed problem. Idea: Look at the dual problem. 7

Dual of the STSP max v V 2y v + S V 2Y S s.t. y u + y v + (u,v) δ(s) Y S d uv, (u, v) E Y S 0, S V If (y, Y ) is also feasible for the dual linear programming problem of the original problem then we know that x is optimal Otherwise add variables to E that violated the constraint of the dual linear programming problem and resolve. 8

Problem 1 Here we use branch-and-cut. Start of by removing the subtour elimination constraints. Then we get: min e E d ex e s.t. x(δ(v)) = 2, v {1,..., n} 0 x e 1, e E Let x be a feasible solution to the initial linear programming problem. 9

If the solution falls apart into several components then the node set S of each component violates a subtour elimination constraint. This situation is very easy to detect. We might end in a situation where the graph is not disconnected but there are actually subtour elimination constraints that are violated. How do we detect those? 10

The separation algorithm Use max-flow to find cuts that are violated in the present situation. Here we have two problems: Max-flow works on directed graphs this is a non-directed graph. We need a sink and a source to run the max-flow algorithm. 11

Now we are in a good position. We are now able to detect all possible subtour elimination constraints, but is that enough to solve the problem? 12

Consider the following part of a graph (dash is a flow of 0.5). 13

Comb inequalities Let C be a comb with a handle H and teeth T 1, T 2,..., T 2k+1 for k 1. Then the solution x for a feasible solution must satisfy: x(e(h))+ 2k+1 i=1 x(e(t i )) H + ( T i 1) (k +1) 2k+1 i=1 14

These cuts are generally still not enough but there are more cuts we could add: Grötschel and Padberg (1985) Jünger, Reinelt and Rinaldi (1995) Naddef (1990) Even these are not enough. There is today no full description of the convex hull for the TSP. Furthermore for some of the valid inequalities the exists no efficient (polynomial) separation algorithm. 15

THEREFORE branch after having added all the simple valid inequalities. Example: Upper bound: 56892 (simple heuristic) Lower bound: 56785 (LP-relaxation, subtour and simple comb-ineq) Gap: 0.2%!! 16

16 cities 15 + 14 + 13 +... + 2 + 1 = 16 15 2 = 120 variables. Let us keep the constraint that j x ij = 2, i = 1,..., N. Relax integrality constraints on variables to 0 x ij 1 17

Objective value: 920 Forbid the subtour Skagen- Thisted-Aalborg and resolve 18

Objective value: 960 Forbid the subtour Fredericia-Kolding-Vejle and resolve 19

Objective value: 982 Forbid the subtour Kolding- Fredericia-Vejle-Esbjerg- Aabenraa-Tønder-Ribe and resolve 20

Objective value: 992.5 Identify a comb inequality: Handle being Thisted, Ringkøbing and Herning; teeth being (Thisted, Skagen), (Ringkøbing, Esbjerg) and (Herning, Vejle). 21

Objective value: 992.5 Identify a comb inequality: Handle being Vejle, Silkeborg and Aarhus; teeth being (Vejle, Fredericia), (Silkeborg, Viborg) and (Aarhus, Randers). 22

Objective value: 994.5 Identify a comb inequality: Handle being Viborg, Randers and Aalborg; teeth being (Viborg, Silkeborg), (Randers, Aarhus) and (Aalborg, Skagen). 23

Objective value: 996 Integer solution!!! 24