Vous êtes sur la page 1sur 35

Contents college 3 en 4

Book: Appendix A.1, A.3, A.4, 3.4, 3.5,


4.1, 4.2, 4.4, 4.6 (not: 3.6 - 3.8, 4.2
- 4.3)
Extra literature on resource constrained
project scheduling (will be handed out)

Planning and scheduling


optimization techniques

Dispatching Rules
Composite Dispatching Rules
Adaptive search
Dynamic Programming
(Integer) Linear Programming
Cutting plane methods
Branch and Bound
Beam Search
2

Linear programming (LP) model


LP:

min c1 x1 c 2 x 2 ... c n x n

objective function

subject to :
a11 x1 a12 x 2 ... a1n x n b1

constraints

a21 x1 a22 x 2 ... a2n x n b2

am1 x1 am2 x 2 ... amn x n bm


x j 0 ( j 1, , n)

Matrix form:

min c T x
Ax b
x0

where:
x, c: n-vector
A:
m,n-matrix
b:
m-vector

variable
restrictions

Linear programming example


max x1 x 2
subject to :
2x1 x 2 4
3x1 4 x 2 12
x j 0 ( j 1,2)

or:

1 x1
max
1 x 2
subject to :
2 1 x1 4

x
3 4 2 12
x1 0

x 2 0
4

Linear programming example:


graphical solution (2D)
2x1 x 2 4

x2 6

max x1 x 2
subject to :
2x1 x 2 4

5
4

x1 x 2 6

(objective)

3x1 4 x 2 12

x j 0 ( j 1,2)

solution
space

3x1 4 x 2 12

6
x1
5

Linear programming (cont.)


Solution techniques:
(dual) simplex method
interior point methods (e.g. Karmarkar algorithm)

Commercial solvers, for example:


CPLEX (ILOG)
XPRESS-MP (Dash optimization)
OSL (IBM)

Modeling software, for example:


AIMMS
AMPL

Integer programming (IP) models


Integer variable restriction
IP: integer variables only
MIP: part integer, part non-integer variables
BIP: binary (0-1) variables
min c T x

General IP-formulation:

Ax b
x integer ( x Z )

Complex solution space

Integer programming example:


graphical solution (2D)
x2 6

max x1 x 2

subject to :

2x1 x 2 4

x1 x 2 6

(objective)

3x1 4 x 2 12

x j Z ( j 1,2)
2 optimal solutions!

1
0

6
x1
8

Total unimodularity property for


integer programming models
Suppose that all coefficients are integer in the model:
min c T x
i.e. aij , bi , i, j
Ax b
x0

Example: transportation problem


if A has the total unimodularity property
(i.e. every square submatrix has determinant 0,1,-1)

there is an optimal integer solution x*


&
the simplex method will find such a solution 9

Integer programming tricks


PROBLEM: x = 0 or x k
0 , for x 0
use binary indicator variable y=
1 , for x k

restrictions:
x M y (M is an upperboundon x)
x ky
y 0,1
10

Integer programming tricks (2)


PROBLEM: fixed costs: if xi>0 then costs C(xi)
minimize C( x) where :
for x i 0,
0
Ax b
C( x i )
k i c i x i for x i 0.
x0
0 , for xi 0
use indicator variable yi=
1 , for xi 0
xi M yi

restrictions (i): C( x i ) k i y i c i x i
y i 0,1

11

(Integer) programming tricks (3)


Hard vs. soft restrictions
hard restriction: must hold, otherwise unfeasibility
for example: x1 x 2 5
soft restriction: may be violated, with a penalty
for example: minimize c T x Y 100

x1 x 2 5 Y

x 0, Y 0
12

(Integer) programming tricks (4)


Absolute values: min y t

goal

a x
j

bt y t

j ,t

variation

x j,t 0, y t free

solution:

yt y y

min y t y t

yt y y

a x
j

j ,t

bt y y

x j,t 0, y t 0, y t 0

13

Integer programming tricks (5)


Conjunctive/disjunctive programming
- conjunctive set of constraints: must all be satisfied
- disjunctive set of constraints: at least one must be satisfied

example (Appendix A.4):


min w j x j

min w j x j

x k x j pk

x k x j pk M1 y

or
x j xk p j

x j x k p j M2 (1 y )

y {0,1}

14

IP example
nonpreemptive single machine, total weighted
completion time (App. A.3)
model definition:
x jt 1, if job j completes at time t, and 0 otherwise

objective function: minimize weighted completion time:


t x jt completion time of job j if x jt 1

Cmax-1

t x
t 0

jt

min imize

completion time of job j


n Cmax-1

w
j1

t 0

t x jt (objective function)
15

IP example (cont.)
Restriction: all jobs must be completed once:
Cmax-1

x
t 0

jt

Restriction: only one job per time t:


if job j is in process during t, it must be completed
somewhere during [t,t+pj]

t p j

x
s t

js

1 (if job j is in process during t)

n t p j

x js 1 (restriction : exactly one job per time t)


j1 s t

16

IP example (cont.)
Complete IP-model:
minimize

n Cmax-1

w
j 1

t x jt

t 0

subject to :
Cmax-1

x
t 0

jt

1 (for j 1, , n)

n t p j

x
j 1 s t

js

1 (for t 0, , Cmax - 1)

x jt 0,1 (for j 1, , n, t 0, , Cmax - 1)

nCmax
integer
variables
17

IP example (cont.)
Additional restriction: precedence constraints
Model definition: SUCC(j) = successors of job j
job j must be completed before all jobs in SUCC(j):
C max 1

tx
t 0

jt

completion time of job j

kt

pk start time of job k

C max 1

tx
t 0

C max 1

tx
t 0

jt

C max 1

tx
t 0

kt

(for k SUCC(j), j 1, , n)
18

Integer programming
solution techniques
Heuristic vs. explicit approach:
trade-off between solution quality and computation time
trade-off between implementation effort/costs and yield
(i.e. profits gained from solution quality improvement)

Heuristic methods; for example:

local search (e.g. simulated annealing, tabu search, k-opt)


(composite) dispatching rules (e.g. EDD, SPT, MS)
adaptive search
rounding fractional solutions
19
beam search

Integer programming
solution techniques (cont.)
Explicit methods; 3 categories:
1. dynamic programming
2. cutting plane (polyhedral) methods
3. branch and bound
or: hybrid methods (combination of the above)
Commercial IP solvers usually use a
combination of heuristics and 2, 3
20

Dynamic programming
Problem divided into stages x t (t 0, , T)
Each stage can have various states it
A recursive objective function is used to
iterate through all states and all stages
(forwards or backwards)

F0 (i0 ) c 0 (constant)

Ft (it ) min{c t (it , x t ) Ft 1 (it 1 (it , x t ))}


xt

21

Cutting plane methods


STEP 0:

STEP 1:
STEP 2:

Create a relaxation of the problem by


omitting restrictions
(e.g. the integrality restrictions)
Solve the current problem
If solution is infeasible then generate
a restriction that cuts of the solution,
and add it to the problem STEP 1
Otherwise: DONE
22

Branch and bound


Enumeration in a search tree
root node

Level 0

Level 1

child nodes

...

child nodes

...

Level 2

each node is a partial solution, i.e. a part of


23
the solution space

Branch and bound example 1


Disjunctive programming (appendix A.4):
disjunctive set of constraints: at least one must be satisfied

xj = completion time of job j


restriction: either x k x j pk or x j x k p j (j, k I)
solve LP without
disjunctive restrictions
(= LP relaxation)
if disjunct. restr.
violated for j & k

Level 0

Level 1

x k x j pk

x j xk p j

...

24

Branch and bound (cont.)


Upper bound: e.g. a feasible solution
Lower bound:
e.g. a solution to an easier problem
Node elimination (fathom/discard nodes):
when lower bound >= upper bound

25

Branch and bound (cont.)


Branching strategy:
how to partition solution space
Node selection strategy:
sequence of exploring nodes:
depth first (tries to obtain a solution fast)
breadth/best bound first (tries to find the best solution)

which nodes to explore (filter and beam width)


filter width: #nodes selected for thorough evaluation
beam width: #nodes that are branched on ( filter width)

Beam search

26

Branch and bound example 2


Single machine, maximum lateness, release
and due dates
Jobs
p(j)
r(j)
d(j)

1
4
0
8

2
2
1
12

3
6
3
11

4
5
5
10
(1,?,?,?)

Level 0

(?,?,?,?)

(2,?,?,?)

(3,?,?,?)

(4,?,?,?)

Level 1

lower bound: EDD + preemption


27

Branch and bound example 2


Lower bound for: (1,?,?,?)
r(2)

r(3)

r(4)

Jobs
p(j)
r(j)
d(j)

1
4
0
8

2
2
1
12

3
6
3
11

4
5
5
10

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17

d(4)<d(3)

d(3)<d(2)

Lower bound: Lmax = max(0,17-12,15-11,0)=5


28

Branch and bound example 2 (cont.)


Level 0

(?,?,?,?)

LB=5
infeasible:
(1,?,?,?)
(1,3,4,3,2)
LB=6*
=UB (1,2,?,?)
(1,2,4,3)

(1,2,4,3)

LB=7*
=UB (2,?,?,?) (3,?,?,?)

LB=5*=UB
(1,3,?,?) (1,3,4,2)
DONE

(4,?,?,?) Level 1

Jobs
p(j)
r(j)
d(j)

1
4
0
8

2
2
1
12

3
6
3
11

(1,3,4,2)
29

4
5
5
10

Branch and bound example 3


LP solution: x1 0.8,
x 2 2.4

x1 0

x1 1

x 1 0,

x1 1,

x2 3

x2 2

obj: 3

x2 6

obj: 3

5
4

x1 x 2 6

(objective)

2
x2 2

x2 3

x1 1,

x 1 0,

x2 2

x2 3

obj: 3

obj: 3

1
0

6
x1
30

Beam search example 1

single-machine, total weighted tardiness


Upper bound: ATC rule (apparent tardiness cost):
schedule 1 job at a time
every time a machine comes available, determine
ranking of jobs:

I j (t)

wj
pj

WSPT
rule

max( d j p j t ,0 )

K p

MS rule

look-ahead parameter:
K = 4.5 + R (R 0.5)
K = 6 - 2R (R 0.5)
R dmax dmin / C max = due date range factor
31

Beam search example 1 (cont.)


single-machine, total weighted tardiness
(?,?,?,?)

Jobs
p(j)
d(j)
w(j)
w(j)/p(j)

1
10
4
14
1.4

2
10
2
12
1.2

3
13
1
1
0.1

4
4
12
12
3

(1,?,?,?)

(2,?,?,?)

(3,?,?,?)

(4,?,?,?)

Upper bound by ATC rule: max( d j p j t ,0) 0 ( j 1,2,3)

I j (t)

wj
pj

max( d j p j t ,0 )

K p

wj
pj

(j 1,2,3)
32

Beam search example 1 (cont.)


single-machine, total weighted tardiness

Jobs
p(j)
d(j)
w(j)
w(j)/p(j)

1
10
4
14
1.4

2
10
2
12
1.2

3
13
1
1
0.1

4
4
12
12
3

(?,?,?,?)

(1,?,?,?)

Upper bound Jobs C(j)


1 10
by ATC rule:
2 24
3 37
4 14

(2,?,?,?)

d(j) T(j) w(j)*T(j)


4 6
84
2 22
264
1 36
36
12 2
24
Total = 408

(3,?,?,?)

(4,?,?,?)

33

Beam search example 1 (cont.)


single-machine, total weighted tardiness
(?,?,?,?)

(1,?,?,?)

(2,?,?,?)

(3,?,?,?)

(4,?,?,?)

UB=408 UB=436 UB=814 UB=440


explored
further
(beam width = 2)

4 nodes
analyzed
(filter width=4)

discarded

34

Beam search example 1 (cont.)


(?,?,?,?)

UB=408

436

(1,?,?,?)

UB=480
(1,2,?,?)

(2,?,?,?)

706
(1,3,?,?)

440

814
(3,?,?,?)

408
(1,4,?,?)

UB=408
(1,4,2,3)

best solution

(4,?,?,?)

436
(2,1,?,?)

(2,3,?,?)

554

436

(1,4,3,2)

(2,4,?,?)

(2,4,1,3)

608
(2,4,3,1)
35

Vous aimerez peut-être aussi