Presentation is loading. Please wait.

Presentation is loading. Please wait.

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

Similar presentations


Presentation on theme: "© J. Christopher Beck 20051 Lecture 10: Integer Programming & Branch-and-Bound."— Presentation transcript:

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

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

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

4 © J. Christopher Beck Linear Programs Minimize subject to

5 © J. Christopher Beck 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

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

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

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

9 © J. Christopher Beck 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

10 © J. Christopher Beck Disjunctive Graph Formulation 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) (1,2)(2,2)(4,2) (2,3)(1,3)(4,3)(3,3) SinkSource Conjunctive arcs A alternative MIP formulation from the time-indexed one

11 © J. Christopher Beck 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) (1,2)(2,2)(4,2) (2,3)(1,3)(4,3)(3,3) SinkSource Conjunctive arcs Disjunctive arcs

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

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

14 © J. Christopher Beck 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

15 © J. Christopher Beck 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 C max )

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

17 © J. Christopher Beck Disjunctive Programming Formulation Minimize C max s.t.

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

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

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

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

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

23 © J. Christopher Beck OK, now what? 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 Either the time-indexed or the disjunctive formulation

24 © J. Christopher Beck 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

25 © J. Christopher Beck B&B Search Tree: Branching Imagine a problem with 3 variables a, b, c є {0, 1} a = 0a = 1 b = 0b = 1 c = 0c = 1c = 0c = 1c = 0c = 1c = 0c = 1 b = 0b = Branch

26 © J. Christopher Beck B&B Search Tree: Bounding Imagine I have a way to calculate a lower bound on the cost at each node a = 0a = 1 b = 0b = 1 c = 0c = 1c = 0 b = Bound

27 © J. Christopher Beck 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

28 © J. Christopher Beck 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

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

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

31 © J. Christopher Beck 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)


Download ppt "© J. Christopher Beck 20051 Lecture 10: Integer Programming & Branch-and-Bound."

Similar presentations


Ads by Google