1 / 31

Lecture 10: Integer Programming & Branch-and-Bound

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).

stephanie
Download Presentation

Lecture 10: Integer Programming & Branch-and-Bound

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Lecture 10:Integer Programming & Branch-and-Bound © J. Christopher Beck 2005

  2. 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

  3. 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

  4. Linear Programs Minimize subject to © J. Christopher Beck 2005

  5. 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

  6. 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

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

  8. 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

  9. 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

  10. 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

  11. 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, AB) (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

  12. 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

  13. 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

  14. 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

  15. 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

  16. 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

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

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

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

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

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

  22. 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

  23. 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

  24. 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

  25. 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

  26. 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

  27. 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

  28. 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

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

  30. 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

  31. 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

More Related