# Lecture 10: Integer Programming & Branch-and-Bound

## Presentation on theme: "Lecture 10: Integer Programming & Branch-and-Bound"— Presentation transcript:

Lecture 10: Integer Programming & Branch-and-Bound

Outline Quick mathematical programming review Disjunctive graph
Disjunctive programming formulation Example 5.3.1 Branch-and-bound Example B.4.1 Note: Some slides taken from see text CD (Iowa State, Amsterdam) © J. Christopher Beck 2005

Review of Mathematical Programming
Many scheduling problems can be formulated as mathematical programs: Linear Programming Integer Programming See Appendix A in book. © J. Christopher Beck 2005

Linear Programs Minimize subject to © J. Christopher Beck 2005

Solving LPs LPs can be solved efficiently Polynomial time
Simplex method (1950s) Interior point methods (1970s) Polynomial time Has been used in practice to solve huge problems © J. Christopher Beck 2005

Integer Programming LP where all variables must be integer
Mixed-integer programming (MIP) Much more difficult than LP Most useful for scheduling © J. Christopher Beck 2005

Example: Single Machine
One machine and n jobs Minimize Define the decision variables © J. Christopher Beck 2005

All activities start once
IP Formulation Minimize subject to End time of job j All activities start once “Time-indexed” formulation – one way to model a scheduling problems as a MIP Jobs can’t overlap © J. Christopher Beck 2005

Solving IPs Branch-and-bound methods
Branch on the decision variables Linear programming relaxation provides bounds There are other methods but we will focus on B&B We will come back to B&B later in the lecture © J. Christopher Beck 2005

Disjunctive Graph Formulation
A alternative MIP formulation from the time-indexed one Each job follows a given route Picture each job as a row of nodes: (i,j)=operation on machine i of job j (1,1) (2,1) (3,1) Conjunctive arcs Source (1,2) (2,2) (4,2) Sink (2,3) (1,3) (4,3) (3,3) © J. Christopher Beck 2005

Graph Representation To model the machines, introduce the arc set B (...), giving ‘a clique’ of bidirected arc-pairs on each machine Full Graph G(N, AB) Disjunctive arcs (1,1) (2,1) (3,1) Conjunctive arcs Source (1,2) (2,2) (4,2) Sink (2,3) (1,3) (4,3) (3,3) © J. Christopher Beck 2005

Solving the Problem Select one arc from each disjunctive pair (1,1)
(2,1) (3,1) Source (1,2) (2,2) (4,2) Sink (2,3) (1,3) (4,3) (3,3) © J. Christopher Beck 2005

Feasibility of the Schedule
Are all selections feasible? Resulting graph must be acyclic (1,1) (2,1) (3,1) Source (1,2) (2,2) (4,2) Sink (2,3) (1,3) (4,3) (3,3) © J. Christopher Beck 2005

Conjunctive vs. Disjunctive
All constraints must be satisfied “AND” In JSP they come from the job routings Disjunctive At least one of the constraints must be satisfied “OR” In JSP they come from the machine usage © J. Christopher Beck 2005

Disjunctive Programming Idea
Formulate an Integer Program based on the disjunctive graph and use standard IP solution techniques (e.g., B&B) to solve it How do we formulate a JSP as a disjunctive program? Assume objective is to minimize makespan (i.e., min Cmax) © J. Christopher Beck 2005

Notation N – set of all operations
A – set of all conjunctive constraints B – set of all disjunctive constraints yij – starting time of operation (i, j) (i,j)=operation on machine i of job j © J. Christopher Beck 2005

Disjunctive Programming Formulation
Minimize Cmax s.t. © J. Christopher Beck 2005

Disjunctive Programming Formulation
Minimize Cmax s.t. All operations must end before makespan © J. Christopher Beck 2005

Disjunctive Programming Formulation
Minimize Cmax s.t. An operation cannot start before the previous operation (in the job) ends © J. Christopher Beck 2005

Disjunctive Programming Formulation
Minimize Cmax s.t. One disjunctive arc must be chosen © J. Christopher Beck 2005

Disjunctive Programming Formulation
Minimize Cmax s.t. Start times cannot be negative © J. Christopher Beck 2005

Disjunctive Programming Formulation
See Example 5.3.1 You should be able to create a disjunctive programming formulation for a given JSP instance © J. Christopher Beck 2005

OK, now what? Either the time-indexed or the disjunctive formulation So we’ve got a IP formulation of the problem, how do we solve it? Using standard IP solution techniques such as branch-and-bound Doesn’t mean the problem is easy Will now talk about branch-and-bound (B&B) which can be used to solve IPs and other hard problems © J. Christopher Beck 2005

Branch-and-Bound Idea Creates a search tree
Systematically search through possible variable values Use heuristics to pick a decision to try (“branch”) Use lower bounds on solutions to “bound” the search Creates a search tree © J. Christopher Beck 2005

B&B Search Tree: Branching
Imagine a problem with 3 variables a, b, c є {0, 1} Branch a = 0 a = 1 b = 0 b = 1 b = 0 b = 1 c = 0 c = 1 c = 0 c = 1 c = 0 c = 1 c = 0 c = 1 100 90 110 115 80 90 100 110 © J. Christopher Beck 2005

B&B Search Tree: Bounding
Imagine I have a way to calculate a lower bound on the cost at each node a = 0 a = 1 50 b = 0 b = 1 b = 0 70 80 Bound c = 0 c = 1 c = 0 85 95 80 100 90 80 © J. Christopher Beck 2005

B&B Branch: assign a heuristic value to a variable
Creates two subproblems Bound: compare lower bound at node with best known solution If LB > best, you can backtrack right away © J. Christopher Beck 2005

B&B for IP Usually lower bound is found by solving the linear relaxation of the IP LP formed by ignoring integral constraints Branch on one of the integer variables with a non-integer value to be: greater than or equal to the next highest integer, or Less than or equal to the next lowest integer © J. Christopher Beck 2005

All activities start once
IP Formulation Minimize subject to End time of job j All activities start once Jobs can’t overlap © J. Christopher Beck 2005

B&B for IP Solve LP to give cost LB
xi ≤ floor(r) xi ≥ ceil(r) xk ≤ floor(s) Solve LP to give cost LB If solution in non-integer, choose xi = r (r in non-integer) Branch on xi Repeat at next node © J. Christopher Beck 2005

B&B is Important! We will look at it again in the next lecture!
You should understand Sections B.3 and B.4 (in Appendix B) © J. Christopher Beck 2005