Branch-and-Bound. Leo Liberti. LIX, École Polytechnique, France. INF , Lecture p. 1

Similar documents
Branch-and-Bound for the Travelling Salesman Problem

Scheduling and Optimization Course (MPRI)

Gestion de la production. Book: Linear Programming, Vasek Chvatal, McGill University, W.H. Freeman and Company, New York, USA

Introduction to Integer Linear Programming

where X is the feasible region, i.e., the set of the feasible solutions.

Introduction to Integer Programming

Introduction to Mathematical Programming IE406. Lecture 21. Dr. Ted Ralphs

Data Structures in Java

CHAPTER 3 FUNDAMENTALS OF COMPUTATIONAL COMPLEXITY. E. Amaldi Foundations of Operations Research Politecnico di Milano 1

Travelling Salesman Problem

4/12/2011. Chapter 8. NP and Computational Intractability. Directed Hamiltonian Cycle. Traveling Salesman Problem. Directed Hamiltonian Cycle

16.410/413 Principles of Autonomy and Decision Making

Integer Programming ISE 418. Lecture 8. Dr. Ted Ralphs

Section #2: Linear and Integer Programming

Algorithms. NP -Complete Problems. Dong Kyue Kim Hanyang University

BBM402-Lecture 20: LP Duality

Algorithms Design & Analysis. Approximation Algorithm

3.4 Relaxations and bounds

Unit 1A: Computational Complexity

Integer Linear Programming

IE418 Integer Programming

Integer Programming. Wolfram Wiesemann. December 6, 2007

Math Models of OR: Branch-and-Bound

Decision Diagrams for Discrete Optimization

Discrete Optimization 2010 Lecture 8 Lagrangian Relaxation / P, N P and co-n P

to work with) can be solved by solving their LP relaxations with the Simplex method I Cutting plane algorithms, e.g., Gomory s fractional cutting

maxz = 3x 1 +4x 2 2x 1 +x 2 6 2x 1 +3x 2 9 x 1,x 2

Algorithm Design Strategies V

Combinatorial Optimization

Lecture 4: NP and computational intractability

Chapter 3: Discrete Optimization Integer Programming

Algorithms, Lecture 3 on NP : Nondeterminis7c Polynomial Time

Technische Universität München, Zentrum Mathematik Lehrstuhl für Angewandte Geometrie und Diskrete Mathematik. Combinatorial Optimization (MA 4502)

Discrete (and Continuous) Optimization WI4 131

Decision Procedures An Algorithmic Point of View

NP-Complete Problems. More reductions

In complexity theory, algorithms and problems are classified by the growth order of computation time as a function of instance size.

Lecture 23 Branch-and-Bound Algorithm. November 3, 2009

Section Notes 8. Integer Programming II. Applied Math 121. Week of April 5, expand your knowledge of big M s and logical constraints.

Week Cuts, Branch & Bound, and Lagrangean Relaxation

CS Algorithms and Complexity

CS675: Convex and Combinatorial Optimization Fall 2014 Combinatorial Problems as Linear Programs. Instructor: Shaddin Dughmi

CS675: Convex and Combinatorial Optimization Fall 2016 Combinatorial Problems as Linear and Convex Programs. Instructor: Shaddin Dughmi

Chapter 3: Discrete Optimization Integer Programming

Discrete Optimization 2010 Lecture 2 Matroids & Shortest Paths

Optimisation and Operations Research

ACO Comprehensive Exam October 18 and 19, Analysis of Algorithms

Computational Intractability 2010/4/15. Lecture 2

AM 121: Intro to Optimization! Models and Methods! Fall 2018!

Integer Programming Methods LNMB

Maximum Flow Problem (Ford and Fulkerson, 1956)

Limits to Approximability: When Algorithms Won't Help You. Note: Contents of today s lecture won t be on the exam

Part III: Traveling salesman problems

The Traveling Salesman Problem: An Overview. David P. Williamson, Cornell University Ebay Research January 21, 2014

Discrete Optimization 2010 Lecture 7 Introduction to Integer Programming

Chapter 11. Approximation Algorithms. Slides by Kevin Wayne Pearson-Addison Wesley. All rights reserved.

NP-Completeness. Andreas Klappenecker. [based on slides by Prof. Welch]

from notes written mostly by Dr. Matt Stallmann: All Rights Reserved

Geometric Steiner Trees

23. Cutting planes and branch & bound

NP-Completeness. ch34 Hewett. Problem. Tractable Intractable Non-computable computationally infeasible super poly-time alg. sol. E.g.

How to Relax. CP 2008 Slide 1. John Hooker Carnegie Mellon University September 2008

1 Primals and Duals: Zero Sum Games

NP-Complete Problems and Approximation Algorithms

21. Set cover and TSP

NP-complete problems. CSE 101: Design and Analysis of Algorithms Lecture 20

NP-Completeness. CptS 223 Advanced Data Structures. Larry Holder School of Electrical Engineering and Computer Science Washington State University

Combinatorial optimization problems

Lecture 13, Fall 04/05

More on NP and Reductions

5 Integer Linear Programming (ILP) E. Amaldi Foundations of Operations Research Politecnico di Milano 1

Integer Linear Programming (ILP)

Computer Science 385 Analysis of Algorithms Siena College Spring Topic Notes: Limitations of Algorithms

Bounds on the Traveling Salesman Problem

Representations of All Solutions of Boolean Programming Problems

Design and Analysis of Algorithms May 12, 2011 Massachusetts Institute of Technology. Practice Final Exam. Problem Title Points Parts Grade Initials

Computational Integer Programming. Lecture 2: Modeling and Formulation. Dr. Ted Ralphs

Algorithm Design and Analysis

VIII. NP-completeness

Decision Problems TSP. Instance: A complete graph G with non-negative edge costs, and an integer

CS 583: Algorithms. NP Completeness Ch 34. Intractability

15.083J/6.859J Integer Optimization. Lecture 2: Efficient Algorithms and Computational Complexity

NP-Complete Reductions 2

CHAPTER 3: INTEGER PROGRAMMING

Network Flows. 6. Lagrangian Relaxation. Programming. Fall 2010 Instructor: Dr. Masoud Yaghini

CS/COE

min3x 1 + 4x 2 + 5x 3 2x 1 + 2x 2 + x 3 6 x 1 + 2x 2 + 3x 3 5 x 1, x 2, x 3 0.

Mixed Integer Non Linear Programming

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

The CPLEX Library: Mixed Integer Programming

CS 320, Fall Dr. Geri Georg, Instructor 320 NP 1

ABHELSINKI UNIVERSITY OF TECHNOLOGY

15.081J/6.251J Introduction to Mathematical Programming. Lecture 24: Discrete Optimization

ECS122A Handout on NP-Completeness March 12, 2018

Modeling with Integer Programming

Problem Complexity Classes

Integer programming: an introduction. Alessandro Astolfi

Discrete Optimization in a Nutshell

Integer Programming and Branch and Bound

The traveling salesman problem

Transcription:

Branch-and-Bound Leo Liberti LIX, École Polytechnique, France INF431 2011, Lecture p. 1

Reminders INF431 2011, Lecture p. 2

Problems Decision problem: a question admitting a YES/NO answer Example HAMILTONIAN CYCLE. Given an undirected graph G = (V,E), does it have a simple spanning cycle? 3 3 4 Spanning subgraph: a subgraph 4 2 5 whose vertex set is V Cycle: even degree subgraph 1 1 2 Simple cycle: connected with all vertices having degree 2 YES instance NO instance Optimization problem: finding a mathematical structure of optimum cost Example TRAVELLING SALESMAN PROBLEM (TSP). Given a set V and a positive square matrix (d ij ) (where i,j V ) find a tour (=order on V ) of minimum total cost INF431 2011, Lecture p. 3

Solutions The mathematical structures sought in decision/optimization problems are also called solutions or certificates Solutions can be feasible if they satisfy the constraints given in the problem statement or infeasible otherwise Feasible solutions of optimization problems can be optimal if their cost is best amongst all solutions, or locally optimal if their cost is best in a neighbourhood INF431 2011, Lecture p. 4

Twofacesof thesame coin Reduction optimization decision: if we know how to find an optimal solution, then we trivially know how to answer the question does the problem have a feasible solution? Reduction decision optimization: restate find minimum cost solution by is there a solution with cost at most K?, then run a bisection search on a sequence of decision problems with different values of K INF431 2011, Lecture p. 5

Easy&hard problems Characterization of easy and hard problems championed by Jack Edmonds A problem is considered easy if there exists an algorithm which solves it in worst-case polynomial time in function of the instance length A problem is considered difficult if it is NP-hard Problem A is NP-hard if there is another NP-hard problem B whose solutions can be used to obtain solutions of A in polynomial time instance(a) polytime instance(b) algorithm(b) solution(a) polytime solution(b) oracle for solving B N.B.: difficult = easy is an open question ( P NP) INF431 2011, Lecture p. 6

Solutionspace A difficult problem must have more than polynomially many solutions otherwise complete enumeration would be a polyomial-time algorithm Typically, it has exponentially or factorially many solutions Example The number of solutions of a TSP instance on the set V = {1,...,n} is (n 1)!: fix 1 as the first tour element, then there are n 1 choices for the second, n 2 for the third, and so on Under the hypothesis that difficult = easy, we cannot do much better than complete enumeration in the worst case Look for practically efficient methods INF431 2011, Lecture p. 7

The branch... INF431 2011, Lecture p. 8

The TSP again Consider the following graph-based TSP formulation Given a complete digraphg = (V,A) with arc weight functiond : A R +, find a tour of minimum cost In this formulation, a tour is a set of arcs which defines a strongly connected spanning subgraph H of G where each vertex has indegree=outdegree=1 Spanning V(H) = V indegree=outdegree=1 A(H) = V = n Hence, we can consider every set of arcs to be a solution; feasible solutions correspond to tours INF431 2011, Lecture p. 9

Growing agoodarc set For a set S of arcs, let d(s) = (i,j) S LetisTour(S) be TRUE if S is a tour Disjunction: For a A, either a S or a S d ij with d( ) = Exhaustive exploration: for a given arc a, either use it or not, then recurse the search Let Y, N, S A: Y =candidate solution, N =forbidden arcs, S =best tour so far (incumbent) 1. if istour(y) and d(y) < d(s), replace S with Y 2. if Y is not a tour, choose an arc a not in Y N 3. recurse with Y replaced by Y {a} and then with N replaced by N {a} INF431 2011, Lecture p. 10

Tree-basedenumeration algorithm treesearch(y, N, S): ifistour(y) then if d(y) < d(s) then S = Y else if Y N A Y N = then choose a A (Y N) treesearch(y {a}, N, S) treesearch(y, N {a}, S) INF431 2011, Lecture p. 11

Instance with V = 4 the whole tree zooming on the left zooming on the right INF431 2011, Lecture p. 12

...and thebound INF431 2011, Lecture p. 13

Improving the branch idea What if we could determine that a branch growing from a given node α does not lead to any improving tour? For example, suppose we can determine that a given branch will lead to tours whose cost is at best d Suppose also that our incumbent has cost d(s) < d Then we can immediately determine that the branch should be discarded α is said to be pruned by bound INF431 2011, Lecture p. 14

Relaxations How can we compute the bound to the cost in the optimization direction (lower if minimum, upper if maximum)? Consider the case of linear programming (optimizing along a linear direction on a polyhedron): opt. direction opt. direction opt. direction opt. direction opt. direction opt. direction As the number of constraints increases, the optimum gets worse In general, if C D are two sets whose elements are weighted, minc mind and maxc maxd If the problem requires optimizing over D, then optimizing over C gives a guaranteed bound for the problem on D Optimization on C is a relaxation of the optimization on D A relaxation is useful only if optimizing onc is easier than ond INF431 2011, Lecture p. 15

Abound forthe TSP T = set of all tours on V S = set of all permutations of V O = set of all orders on V M = set of all maps V V We have T = O S M, so M is a relaxation of T Finding the minimum cost map f : V V is easy: v V f(v) = argmin{d vw w δ + (v)}, ( ) (where δ + (v) = {w V (u,v) A} is the outstar of v) Consider the TSP instance: 1 2 3 4 1 1.2 0.6 2 2 1.2 3 1.1 3 0.6 3 0.9 4 2 1.1 0.9 The map 1 3,2 4,3 1,4 3 has minimum cost 0.6+1.1+0.6+0.9= 3.2 No tour can ever have lower cost INF431 2011, Lecture p. 16

Adapting thebound toanode A node α in the search tree is a quadruplet (Y,N,S,c ) where Y,N,S A and c R (discussed later) Every tour in the subtree rooted at α contains the arcs in Y and does not contain the arcs in N we need a bound on tours extending Y and not containing N Again use maps V V as target relaxations Consider mapping u v for all (u, v) Y and not mapping w z for all (w,z) N We update ( ) as follows u V f(u) = v if (u,v) Y argmin{d vw w δ + (v) N} otherwise ( ) DefinelowerBound(α) to return the set of arcs defined by f INF431 2011, Lecture p. 17

Implicit exhaustive exploration BB generates exploration trees (also called BB trees) These trees are not explicitly exhaustive (as for treesearch) because some nodes are pruned by bound Since pruning by bound is guaranteed not to lose any optimal solution, the search is said to be implicitly exhaustive To reduce CPU time, aim to reduce the tree size by adjusting some parameters INF431 2011, Lecture p. 18

Choosingthenext node treesearch works using a depth-first exploration This imposes a depth-first order to the BB tree nodes Is this the best possible order as regards tree size? Intuitively, we wish to find the best tour S as early as possible in the search: since d(s ) is small, the chance that other nodes have lower bounds d with d d(s ) increases more nodes could be pruned by bound Choose order which maximizes chances to find S early: Process node with lowest lower bound INF431 2011, Lecture p. 19

Infeasible nodes Suppose that, at node α, Y contains the arcs (1,2),(2,1) and that n > 2 Since (1,2),(2,1) is already a tour (of length 2), no extension of(1,2),(2,1) can ever be Hamiltonian No need to explore the subtree rooted at α: the node is infeasible and can be pruned In general, if Y contains a tour shorter than n, it can be pruned (pruned by infeasibility) Also, in ( ) it might happen that, given u, (u,v) N for each v, so f(u) = node is infeasible Nodes are also infeasible if Y N LetisFeasible(α) return TRUE iff α is a feasible node INF431 2011, Lecture p. 20

Thealgorithm Require: set Q of nodes (Y,N,S,c ) ordered by increasing c R Let Q = {(,,, )} while Q do Let α = (Y,N,S,c ) = argmin c Q; let Q = Q {α} if isfeasible(α) then Let L = lowerbound(α) if d(l) < d(s) then if istour(l) then if Y N A then choose a A (Y N) Let β = (Y {a},n,s,d(l)); let γ = (Y,N {a},s,d(l)) Let Q = Q {β,γ} else Let S = L end while return S INF431 2011, Lecture p. 21

In actiononthe root node Let Q = {(,,, )} while Q do Let α = (Y,N,S,c ) = argmin c Q Let Q = Q {α} if isfeasible(α) then Let L = lowerbound(α) if d(l) < d(s) then if istour(l) then if Y N A then choose a A (Y N) Let β = (Y {a},n,s,d(l)) Let γ = (Y,N {a},s,d(l)) Let Q = Q {β,γ} else Let S = L end while root node Y = N = S = isfeasible(α) = TRUE because can be extended to a tour INF431 2011, Lecture p. 22

In actiononthe root node Let Q = {(,,, )} while Q do Let α = (Y,N,S,c ) = argmin c Q Let Q = Q {α} if isfeasible(α) then Let L = lowerbound(α) if d(l) < d(s) then if istour(l) then if Y N A then choose a A (Y N) Let β = (Y {a},n,s,d(l)) Let γ = (Y,N {a},s,d(l)) Let Q = Q {β,γ} else Let S = L end while root node Instance: 1 2 3 4 1 1.2 0.6 2 2 1.2 3 1.1 3 0.6 3 0.9 4 2 1.1 0.9 L = {(1,3),(2,4),(3,1),(4,3)} by greedy choice of cheapest next vertex INF431 2011, Lecture p. 23

In actiononthe root node Let Q = {(,,, )} while Q do Let α = (Y,N,S,c ) = argmin c Q Let Q = Q {α} if isfeasible(α) then Let L = lowerbound(α) if d(l) < d(s) then if istour(l) then if Y N A then choose a A (Y N) Let β = (Y {a},n,s,d(l)) Let γ = (Y,N {a},s,d(l)) Let Q = Q {β,γ} else Let S = L end while root node L = {(1,3),(2,4),(3,1),(4,3)} d(l) = 3.2 < = d( ) INF431 2011, Lecture p. 24

In actiononthe root node Let Q = {(,,, )} while Q do Let α = (Y,N,S,c ) = argmin c Q Let Q = Q {α} if isfeasible(α) then Let L = lowerbound(α) if d(l) < d(s) then if istour(l) then if Y N A then choose a A (Y N) Let β = (Y {a},n,s,d(l)) Let γ = (Y,N {a},s,d(l)) Let Q = Q {β,γ} else Let S = L end while root node L = {(1,3),(2,4),(3,1),(4,3)} is evidently not a tour INF431 2011, Lecture p. 25

In actiononthe root node Let Q = {(,,, )} while Q do Let α = (Y,N,S,c ) = argmin c Q Let Q = Q {α} if isfeasible(α) then Let L = lowerbound(α) if d(l) < d(s) then if istour(l) then if Y N A then choose a A (Y N) Let β = (Y {a},n,s,d(l)) Let γ = (Y,N {a},s,d(l)) Let Q = Q {β,γ} else Let S = L end while root node Y = N = Y N A INF431 2011, Lecture p. 26

In actiononthe root node Let Q = {(,,, )} while Q do Let α = (Y,N,S,c ) = argmin c Q Let Q = Q {α} if isfeasible(α) then Let L = lowerbound(α) if d(l) < d(s) then if istour(l) then if Y N A then choose a A (Y N) Let β = (Y {a},n,s,d(l)) Let γ = (Y,N {a},s,d(l)) Let Q = Q {β,γ} else Let S = L end while root node for example, take a as the cheapest arc in A = A, i.e. a = (1,3) INF431 2011, Lecture p. 27

In actiononthe root node Let Q = {(,,, )} while Q do Let α = (Y,N,S,c ) = argmin c Q Let Q = Q {α} if isfeasible(α) then Let L = lowerbound(α) if d(l) < d(s) then if istour(l) then if Y N A then choose a A (Y N) Let β = (Y {a},n,s,d(l)) Let γ = (Y,N {a},s,d(l)) Let Q = Q {β,γ} else Let S = L end while root node create a new node with Y = {(1,3)}, N =, S =, d(l) = 3.2 INF431 2011, Lecture p. 28

In actiononthe root node Let Q = {(,,, )} while Q do Let α = (Y,N,S,c ) = argmin c Q Let Q = Q {α} if isfeasible(α) then Let L = lowerbound(α) if d(l) < d(s) then if istour(l) then if Y N A then choose a A (Y N) Let β = (Y {a},n,s,d(l)) Let γ = (Y,N {a},s,d(l)) Let Q = Q {β,γ} else Let S = L end while root node create a new node with Y =, N = {(1,3)}, S =, d(l) = 3.2 INF431 2011, Lecture p. 29

In actiononthe root node Let Q = {(,,, )} while Q do Let α = (Y,N,S,c ) = argmin c Q Let Q = Q {α} if isfeasible(α) then Let L = lowerbound(α) if d(l) < d(s) then if istour(l) then if Y N A then choose a A (Y N) Let β = (Y {a},n,s,d(l)) Let γ = (Y,N {a},s,d(l)) Let Q = Q {β,γ} else Let S = L end while root node add these new nodes to the queue Q INF431 2011, Lecture p. 30

The BBtree root node [(1,3), true] LB=3.2 [(1,3), false] LB=3.8 incumbent [(3,4), true] LB=3.6 [(3,4), false] LB=3.2 [(4,2), true] LB=5.6 pruned by bound [(4,2), false] LB=5.4 pruned by bound [(2,4), true] LB=3.2 [(2,4), false] LB=3.3 [(3,1), true] LB=3.2 infeasible [(3,1), false] LB=5.6 pruned by bound [(2,1), true] LB=5.7 pruned by bound [(2,1), false] LB=7.5 pruned by bound INF431 2011, Lecture p. 31

In actiononthe incumbent Let Q = {(,,, )} while Q do Let α = (Y,N,S,c ) = argmin c Q Let Q = Q {α} if isfeasible(α) then Let L = lowerbound(α) if d(l) < d(s) then if istour(l) then if Y N A then choose a A (Y N) Let β = (Y {a},n,s,d(l)) Let γ = (Y,N {a},s,d(l)) Let Q = Q {β,γ} else Let S = L end while incumbent node the queue Q is not empty INF431 2011, Lecture p. 32

In actiononthe incumbent Let Q = {(,,, )} while Q do Let α = (Y,N,S,c ) = argmin c Q Let Q = Q {α} if isfeasible(α) then Let L = lowerbound(α) if d(l) < d(s) then if istour(l) then if Y N A then choose a A (Y N) Let β = (Y {a},n,s,d(l)) Let γ = (Y,N {a},s,d(l)) Let Q = Q {β,γ} else Let S = L end while incumbent node Q = {({(1,3)},,,3.2), (,{(1,3)},,3.2)} since both nodes have associated bound c = 3.2, both can be chosen for example, choose the node α = (,{(1,3)},,3.2) INF431 2011, Lecture p. 33

In actiononthe incumbent Let Q = {(,,, )} while Q do Let α = (Y,N,S,c ) = argmin c Q Let Q = Q {α} if isfeasible(α) then Let L = lowerbound(α) if d(l) < d(s) then if istour(l) then if Y N A then choose a A (Y N) Let β = (Y {a},n,s,d(l)) Let γ = (Y,N {a},s,d(l)) Let Q = Q {β,γ} else Let S = L end while incumbent node Q = {({(1,3)},,,3.2)} INF431 2011, Lecture p. 34

In actiononthe incumbent Let Q = {(,,, )} while Q do Let α = (Y,N,S,c ) = argmin c Q Let Q = Q {α} if isfeasible(α) then Let L = lowerbound(α) if d(l) < d(s) then if istour(l) then if Y N A then choose a A (Y N) Let β = (Y {a},n,s,d(l)) Let γ = (Y,N {a},s,d(l)) Let Q = Q {β,γ} else Let S = L end while incumbent node Since Y =, there are no circuits of length < 4 the node is feasible INF431 2011, Lecture p. 35

In actiononthe incumbent Let Q = {(,,, )} while Q do Let α = (Y,N,S,c ) = argmin c Q Let Q = Q {α} if isfeasible(α) then Let L = lowerbound(α) if d(l) < d(s) then if istour(l) then if Y N A then choose a A (Y N) Let β = (Y {a},n,s,d(l)) Let γ = (Y,N {a},s,d(l)) Let Q = Q {β,γ} else Let S = L end while incumbent node (N = {(1,3)}) The greedy choice {(1,3),(2,4),(3,1),(4,3)} doesnotworkbecause(1,3) N 1 2 3 4 1 1.2 0.6 2 2 1.2 3 1.1 3 0.6 3 0.9 4 2 1.1 0.9 next best choice is to replace (1, 3) with (1, 2), obtaining L = {(1,2),(2,4),(3,1),(4,3)} with cost d(l) = 3.8 INF431 2011, Lecture p. 36

In actiononthe incumbent Let Q = {(,,, )} while Q do Let α = (Y,N,S,c ) = argmin c Q Let Q = Q {α} if isfeasible(α) then Let L = lowerbound(α) if d(l) < d(s) then if istour(l) then if Y N A then choose a A (Y N) Let β = (Y {a},n,s,d(l)) Let γ = (Y,N {a},s,d(l)) Let Q = Q {β,γ} else Let S = L end while incumbent node (S = ) 3.8 = d(l) < = d( ) INF431 2011, Lecture p. 37

In actiononthe incumbent Let Q = {(,,, )} while Q do Let α = (Y,N,S,c ) = argmin c Q Let Q = Q {α} if isfeasible(α) then Let L = lowerbound(α) if d(l) < d(s) then if istour(l) then if Y N A then choose a A (Y N) Let β = (Y {a},n,s,d(l)) Let γ = (Y,N {a},s,d(l)) Let Q = Q {β,γ} else Let S = L end while incumbent node L yields a function 1 2,2 4,4 3,3 1 which is a Hamiltonian tour INF431 2011, Lecture p. 38

In actiononthe incumbent Let Q = {(,,, )} while Q do Let α = (Y,N,S,c ) = argmin c Q Let Q = Q {α} if isfeasible(α) then Let L = lowerbound(α) if d(l) < d(s) then if istour(l) then if Y N A then choose a A (Y N) Let β = (Y {a},n,s,d(l)) Let γ = (Y,N {a},s,d(l)) Let Q = Q {β,γ} else Let S = L end while incumbent node we update S with L = {(1,2),(2,4),(3,1),(4,3)} and d(s) = 3.8 INF431 2011, Lecture p. 39

The BBtree again root node [(1,3), true] LB=3.2 [(1,3), false] LB=3.8 incumbent [(3,4), true] LB=3.6 [(3,4), false] LB=3.2 [(4,2), true] LB=5.6 pruned by bound [(4,2), false] LB=5.4 pruned by bound [(2,4), true] LB=3.2 [(2,4), false] LB=3.3 [(3,1), true] LB=3.2 infeasible [(3,1), false] LB=5.6 pruned by bound [(2,1), true] LB=5.7 pruned by bound [(2,1), false] LB=7.5 pruned by bound INF431 2011, Lecture p. 40

It works Thm. The Branch-and-Bound algorithm finds a tour of minimum cost Proof (Sketch) (termination) Once Y,N and the node set order have been given, there are unique possible values for S,c. Since Y,N A, the number of nodes is finite. Notice no node is ever considered more than once: hence the algorithm terminates. (optimality) Suppose, to get a contradiction, that the algorithm returns a tour S but that the optimum S has d(s ) < d(s). Then there exist BB tree nodes with Y S and N A S which are feasible (for otherwise S would not be Hamiltonian), and such that d(y) < d(s) (because Y S d(y) d(s ) < d(s)). In particular, there will be a branch leading to a node with L = S : since d(l) = d(s ) < d(s), the algorithm will set S = L = S, against the assumption. INF431 2011, Lecture p. 41

In general A general Branch-and-Bound algorithm rests on the following fundamental primitives: a (not necessarily binary) disjunction over which to branch, such that a recursive search over the disjunction lists all possible solutions the ability to compute a bound value (in the optimization direction) which improves as the number of constraints imposed on the solution increases Speed-up heuristics include: a good strategy for choosing the next node to process computation of a good incumbent good choice of branching disjunction INF431 2011, Lecture p. 42

ApplicationtoMixed-IntegerLinear Programming INF431 2011, Lecture p. 43

MILP formulation A MILP is like a Linear Program (LP) where some of the variables are constrained to be integer Formulation: given known vectors c R n,b R m, a known matrix A R nm, a known set Z {1,...,n} and a vector x R n of decision variables, minc T x Ax b i Z x i Z This expresses the minimum value of the objective function c T x subject to the linear constraints Ax b and the integrality constraints i Z (x i Z) If Z =, get LP can solve it by the simplex method or by some interior point method INF431 2011, Lecture p. 44

MILPBB Solution: assignment of values x to decision variables x Feasible solution: x satisfies all constraints Relaxation: all solutions x satisfying linear but not necessarily integrality constraints (solve using simplex) Lower bound: minimum objective value of the relaxed LP Branching: pick a variable x i with i Z s.t. x Z: is a valid disjunction x x x x Applications: too many to mention! (scheduling, energy production, network design, vehicle routing, logistics, stock management, combinatorial optimization problems...) Implementations: IBM-ILOG CPLEX (commercial), FICO XPress (commercial), CBC (open source), GLPK (open source) INF431 2011, Lecture p. 45

MILP example max3x 1 +4x 2 2x 1 +x 2 6 (1) 2x 1 +3x 2 9 (2) x 1,x 2 0 x 1,x 2 Z INF431 2011, Lecture p. 46

MILP BBTree 12.75 (1) (2) x 2 1 x 2 2 (3) (3) 11.5: pruned (1) (2) 12.5 (1) (2) x 1 1 x 1 2 (3) (3) (4) 12.33... (1) (2) (4) infeasible (1) (2) (3) x 2 2 x 2 3 (3) (1) (2) (4) x = (1,2), 11: inc. (4) (1) (2) x = (0,3), 12: opt. INF431 2011, Lecture p. 47

Historicalnotes INF431 2011, Lecture p. 48

First reference tobb:1960 INF431 2011, Lecture p. 49

First reference totsp:1759 INF431 2011, Lecture p. 50

First reference tobbfortsp:1963 INF431 2011, Lecture p. 51

The end INF431 2011, Lecture p. 52