Presentation is loading. Please wait.

Presentation is loading. Please wait.

Lecture 10: Integer Programming & Branch-and-Bound

Similar presentations


Presentation on theme: "Lecture 10: Integer Programming & Branch-and-Bound"— 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 Polynomial time
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 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

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

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

25 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

26 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

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

30 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

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


Download ppt "Lecture 10: Integer Programming & Branch-and-Bound"

Similar presentations


Ads by Google