Download presentation

Presentation is loading. Please wait.

Published byBernard Franklin Modified over 2 years ago

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, AB) 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

Similar presentations

© 2017 SlidePlayer.com Inc.

All rights reserved.

Ads by Google