Professional Documents
Culture Documents
1
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
variable
x j 0 ( j 1, , n)
restrictions
max x1 x 2 T
1 x1
max
subject to : 1 x 2
or:
2x1 x 2 4 subject to :
3x1 4 x 2 12 2 1 x1 4
x j 0 ( j 1,2) 3 4 x 12
2
x1 0
x 2 0
4
Linear programming example:
graphical solution (2D)
x2 6 2x1 x 2 4
5 3x1 4x 2 12
max x1 x 2
4
subject to : x1 x 2 6
3 (objective)
2x1 x 2 4
3x1 4 x 2 12 2
x j 0 ( j 1,2) 1
0 1 2 3 4 5 6
solution x1
space 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 6
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 )
2 optimal solutions! 0 1 2 3 4 5 6
x1
8
Total unimodularity property for
integer programming models
Suppose that all coefficients are integer in the model:
min c T x
Ax b i.e. aij , bi , i, j
x0
Example: transportation problem
0 , for x 0
use binary indicator variable y=
1 , for x k
restrictions:
x M y (M is an upperbound on 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 :
Ax b 0 for xi 0,
C( x i )
x0 k i c i x i for xi 0.
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
j goal
a x
j
j j ,t bt y t
variation
x j,t 0, y t free
solution:
yt y y
t
t min y t y t
t
yt y y
a x
t t
j j ,t bt y y t t
j
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
j j
x k x j pk x k x j pk M1 y
or x j x k p j M2 (1 y )
x j xk p j
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
x
t 0
jt 1
n t p j
x js 1 (restricti on : exactly one job per time t)
j1 s t
16
IP example (cont.)
Complete IP-model:
n C max-1
minimize w j t x jt
j 1 t 0
subject to :
C max-1
x
t 0
jt 1 (for j 1, , n)
n t p j
tx
t 0
jt completion time of job j
C max 1
tx
t 0
kt pk start time of job k
C max 1 C max 1
tx
t 0
jt 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)
child nodes
... Level 2
...
• each node is a partial solution, i.e. a part of
the solution space 23
Branch and bound example 1
Disjunctive programming (appendix A.4):
disjunctive set of constraints: at least one must be satisfied
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 1 2 3 4 (?,?,?,?) Level 0
p(j) 4 2 6 5
r(j) 0 1 3 5
d(j) 8 12 11 10
1 3 4 3 2
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
t
d(4)<d(3) d(3)<d(2)
LB=5 LB=7*
infeasible: =UB (2,?,?,?) (3,?,?,?)
(1,?,?,?) (4,?,?,?) Level 1
(1,3,4,3,2)
LB=6* LB=5*=UB
=UB (1,2,?,?) (1,3,?,?) (1,3,4,2) Jobs 1 2 3 4
(1,2,4,3) DONE p(j) 4 2 6 5
r(j) 0 1 3 5
d(j) 8 12 11 10
(1,2,4,3) (1,3,4,2)
29
Branch and bound example 3
LP solution: x1 0.8,
x 2 2.4
x2 6
x1 0 x1 1
5
x 1 0, x1 1,
4
x2 3 x2 2 x1 x 2 6
obj: 3 obj: 3 3 (objective)
2
1
x2 2 x2 3
x1 1, x 1 0,
0 1 2 3 4 5 6
x2 2 x2 3 x1
obj: 3 obj: 3 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:
max( d j p j t ,0 ) MS rule
wj
K p
I j (t) e
pj
look-ahead parameter:
WSPT
rule K = 4.5 + R (R 0.5)
K = 6 - 2R (R 0.5)
R dmax dmin / Cmax = due date range factor
31
Beam search example 1 (cont.)
single-machine, total weighted tardiness
(?,?,?,?)
Jobs 1 2 3 4
p(j) 10 10 13 4
d(j) 4 2 1 12
w(j) 14 12 1 12 (1,?,?,?) (2,?,?,?) (3,?,?,?) (4,?,?,?)
w(j)/p(j) 1.4 1.2 0.1 3
(?,?,?,?)
4 nodes
(1,?,?,?) (2,?,?,?) (3,?,?,?) (4,?,?,?)
analyzed
(filter width=4)
UB=408 UB=436 UB=814 UB=440
explored discarded
further
(beam width = 2)
34
Beam search example 1 (cont.)
(?,?,?,?)