370 likes | 1.5k Views
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).
E N D
Lecture 10:Integer Programming & Branch-and-Bound © J. Christopher Beck 2005
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 • 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
End time of job j “Time-indexed” formulation – one way to model a scheduling problems as a MIP IP Formulation Minimize subject to All activities start once 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
Disjunctive arcs 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, AB) (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 • Conjunctive • 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 • 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
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 B&B Search Tree: Branching • Imagine a problem with 3 variables • a, b, c є{0, 1} 100 90 110 115 80 90 100 110 © J. Christopher Beck 2005
a = 0 a = 1 b = 0 b = 1 b = 0 c = 0 c = 1 c = 0 Bound B&B Search Tree: Bounding • Imagine I have a way to calculate a lower bound on the cost at each node 50 70 80 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
End time of job j IP Formulation Minimize subject to All activities start once Jobs can’t overlap © J. Christopher Beck 2005
xi≤ floor(r) xi≥ ceil(r) xk≤ floor(s) B&B for IP … … 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