PPT

advertisement
Chapter 9
Branch and Bound
Methods
1. Motivations:
n
n
i 1
i 1
n /1// T , n /1//  Li , or n /1//   i (Ci )
Tree organization
Complete search tree
( Ignore the dash lines. )
The difference between Traversal Technique and Branch and Bound method
Traversal Technique:
FIFO, LIFO
Branch and Bound method: FIFO, LIFO, Least cost search
XXXX
1
5
1234
7
6
12XX
17
2
1XXX
18
1243
13XX
19
1324
14XX
21
20
1342
1423
22
1432
10
9
21XX
23XX
2134
24
2143
25
2314
3
2XXX
8
23
XXXX
26
2341
12
11
24XX
27
2413
31XX
28
29
2431
3124
4
3XXX
30
3142
32XX
34XX
31 32
33 34
3214
3412
3241
15
14
13
41XX
35
3421
4123
Depth-first traversal (LIFO)
1
4XXX
16
42XX
36
4132
5
43XX
7
6
21XX
21 22
23 24
17 18
19 20
4212
4312
1234
1324
4321
23XX
14XX
39 40
1243
10
9
13XX
25
3
2XXX
8
12XX
37 38
4231
2
1XXX
26
1342 1423 1432 2134 2143 2314 2341
24XX
27 28
4
3XXX
11
12
14
31XX
32XX
34XX
29 30
31 32
33 34
13
2413 2431 3124 3142 3214 3241 3412
4XXX
15
16
41XX
42XX
43XX
35 36
37 38
39 40
3421 4123 4132 4212
4231 4312 4321
LIFO Branch and Bound method
(all children of a expanding node are generated.)
5
The difference between Traversal Technique and Branch and Bound method
Traversal Technique:
FIFO (queue), LIFO (stack)
Branch and Bound method: FIFO, LIFO, Least cost search
XXXX
1
5
1234
7
6
12XX
17
2
1XXX
18
1243
13XX
19
1324
14XX
21
20
1342
1423
22
1432
10
9
21XX
23XX
2134
24
2143
25
2314
3
2XXX
8
23
XXXX
26
2341
12
11
24XX
27
2413
31XX
28
29
2431
3124
4
3XXX
30
3142
32XX
34XX
31 32
33 34
3214
3412
3241
15
14
13
41XX
35
3421
4123
Depth-first traversal (LIFO)
1
4XXX
16
42XX
36
4132
5
43XX
7
6
21XX
21 22
23 24
17 18
19 20
4212
4312
1234
1324
4321
23XX
14XX
39 40
1243
10
9
13XX
25
3
2XXX
8
12XX
37 38
4231
2
1XXX
26
1342 1423 1432 2134 2143 2314 2341
24XX
27 28
4
3XXX
11
12
14
31XX
32XX
34XX
29 30
31 32
33 34
13
2413 2431 3124 3142 3214 3241 3412
4XXX
15
16
41XX
42XX
43XX
35 36
37 38
39 40
3421 4123 4132 4212
4231 4312 4321
LIFO Branch and Bound method
(all children of a expanding node are generated.)
6
iteration 1
iteration 4
iteration 2
iteration 3
iteration 5
queue
7
iteration 6
iteration 7
iteration 8
iteration 9
iteration 10
iteration 11
iteration 12
8
iteration 1
iteration 2
iteration 3
stack
9
iteration 4
Iteration 7
iteration 5
iteration 8
iteration 6
(Node 11 is bounded.)
iteration 9
iteration 10
10
FIFO, LIFO: search direction is independent of problem instance.
Least-cost search: search direction is dependent on problem instance.
11
(ii) Elimination techniques: (feasiblity test)
Minimize f ( x1, x2, x3, … ,xn )
s.t.
constraints
(a) For a leaf node X = ( x1, x2, x3, … , xn )
 f ( x1 , x 2 ,
C( X )  
 
, x n ) for any feasible X  ( x1, x 2 ,
, xn )
for each infeasible node X.
Usually, we do not know this value before we explore the
subtree with root X.
X
C(X)
minmum cost in the subtree of X
12
A 4/3/P/Cmax Flow-Shop:
1
5
2
1XXX
7
6
12XX
17
XXXX
13XX
18
19
14XX
20
21
22
10
8
9
21XX
23XX
23
24
25
3
2XXX
26
12
11
24XX
27
31XX
28
29
4
3XXX
32XX
30
31
34XX
32
15
14
13
33
4XXX
41XX
34
35
16
42XX
36
37
43XX
38
39
40
123X
124X
132X
134X
142X
143X
213X
214X
231X
234X
241X
243X
312X
314X
321X
324X
341X
342X
412X
413X
421X
423X
431X
432X
1234
1243
1324
1342
1423
1432
2134
2143
2314
2341
2413
2431
3124
3142
3214
3241
3412
3421
4123
4132
4213
4231
4312
4321
(i) Tree organization: (a) Each solution is represented by an n-tupe (x1, x2, …,
xn ) such that xi = k if job k is scheduled at the i-th position.
13
14
15
For example: at node (1 , 2, X, X )
Assume that the processing on machine 1 is continuous.
Assume that the processing on machine 2 is continuous.
Assume that the processing on machine 3 is continuous.
Refer the following 3 pages.
16
(i) The possibility that the processing on machine 1 is continuous for
unassigned jobs set U:
In this case, Cmax   i ( K )   ai  (bi ( n )  ci ( n ) )
J i in U
 i(K) 
 a  min { b  c }
i
J i in U
Suppose ( J1 J2 X X)
U = { J3, J4 }
M1
J i in U
(1 + 2)
6+3
(1 + 2)
6+3
i
i
M2
M3
M1
M2
min { 2 + 8, 9 + 2 } = 2 + 8
M3
2
8
(ii) The possibility that the processing on machine 2 is continuous for
unassigned jobs set U:
In this case, Cmax
 i(K ) 
b  c
i
i (n)
J i in U
 i(K) 
Suppose ( J1 J2 X X)
U = { J3, J4 }
M1
 b  min { c }
i
J i in U
J i in U
8
4
8
4
i
1 2
M2
2+9
M3
M1
M2
min { 8, 2 } = 2
M3
1 2
2+9
2
(iii) The possibility that the processing on machine 3 is continuous for
unassigned jobs set U:
In this case, Cmax   i ( K ) 
c
i
J i in U
Suppose ( J1 J2 X X)
U = { J3, J4 }
M1
1 2
88
M2
4
M3
M1
M2
M3
4
5
1 2
88
4
4
5
8+2
For example: at node (1 , 2, X, X )
(1+2 ) + 9 + 10 = 21
M1
(1 + 2)
Assume that the processing on machine 1 is continuous.
3+6
M2
M3
(1+2) + 3 + 6 + min { b3 + c3, b4 + c4 } = (1+2) + 3 + 6 + min { 2 + 8, 9 + 2 }
M1
M2
M3
(1 + 2)
3+6
2
8
20
For example: : at node (1 , 2, X, X )
13 + 11 + 2 = 26
M1
Assume that the processing on machine 2 is continuous.
1 2
8
M2
4
2+9
M3
(1 + 8 + 4) + 2 + 6 + min { c3, c4 } = 21 + min { 8, 2 } = 21 + 2 = 23
M1
M2
M3
1 2
8
4
2+9
2
21
For example: : at node (1 , 2, X, X )
18 + 10 = 28
M1
Assume that the processing on machine 3 is continuous.
1 2
88
M2
4
4
M3
5
(1+8+4+5) + 8 + 2 = 18 + 8 + 2 = 28
M1
M2
M3
1 2
88
4
4
5
8+2
22
( i ) Depth-first search (LIFO branch and bound)
( X, X, X, X )
stack
M1 processing is continuous.
1+ (2+ 6+3) + min{4+5, 2+8,9+2}
M2 processing is continuous.
1+ 8+ (4+ 2+9) + min{5, 8, 2}
M3 processing is continuous.
1+ 8+ 4 +(4+ 2+9) + (5+8+2)
XXXX
1
1XXX
2
2XXX
3
3XXX
4
4XXX
28
23
XXXX
28
1
28 5
12XX
2
1XXX
2XXX
3
3XXX
4
4XXX
7
6
13XX
14XX
24
28
XXXX
28
1
5
28
1234
U= 28
13XX
1243
2XXX
3
3XXX
4
4XXX
7
6
12XX
2
1XXX
14XX
killed
25
XXXX
1
5
1234
7
6
12XX
17
2
1XXX
18
1243
13XX
19
1324
14XX
21
20
1342
1423
2XXX
8
9
21XX
23XX
27
3
3XXX
4
4XXX
10
24XX
22
1432
26
XXXX
1
5
2
1XXX
7
6
12XX
13XX
14XX
3
2XXX
8
9
21XX
23XX
3XXX
4
4XXX
10
24XX
28
17
1234
18
1243
19
1324
21
20
1342
1423
22
killed
1432
27
XXXX
1
5
2
1XXX
7
6
12XX
13XX
14XX
3
2XXX
8
9
21XX
23XX
3XXX
4
4XXX
10
24XX
29
17
1234
18
1243
19
1324
21
20
1342
1423
22
1432
killed
28
XXXX
1
5
2
1XXX
7
6
12XX
13XX
14XX
3
2XXX
8
9
21XX
23XX
3XXX
4
4XXX
10
24XX
29
17
1234
18
1243
19
1324
21
20
1342
1423
22
killed
1432
29
XXXX
1
2
1XXX
3
2XXX
3XXX
31
4
4XXX
killed
5
12XX
17
1234
7
6
18
1243
13XX
19
1324
14XX
21
20
1342
1423
22
1432
10
8
9
21XX
23XX
23
2134
24
2143
25
2314
24XX
26
2341
27
2413
28
2431
30
Stack = 
stop
XXXX
31
1
2
1XXX
3
2XXX
4
3XXX
4XXX
killed
5
12XX
17
1234
7
6
18
1243
13XX
19
1324
14XX
21
20
1342
1423
22
1432
10
8
9
21XX
23XX
23
2134
24
2143
25
2314
24XX
26
2341
12
11
27
2413
31XX
28
29
2431
3124
30
3142
13
32XX
31
3214
34XX
32
3241
33
3412
34
3421
31
Live nodes are stored in the stack
data structure.
XXXX
1
5
2
1XXX
7
6
9
23XX
13XX
14XX
21XX
17 18
19 20
21 22
23 24
1234
1324
1243
10
8
12XX
25
1342 1423 1432 2134 2143 2314
3
2XXX
11
12
31XX
32XX
34XX
30
31 32
33 34
24XX
26
2341
27 28
4
3XXX
29
2413 2431 3124
3142 3214
14
13
3241 3412
4XXX
15
16
41XX
42XX
43XX
35 36
37 38
39 40
3421 4123 4132 4212
32
4231 4312 4321
heap
XXXX
XXXX
27
28
1
1XXX
2
2XXX
31
3
31
4
3XXX
33
4XXX
heap
34
XXXX
28
1
27
2
1XXX
28
8
21XX
31
3
2XXX
29 9
23XX
10
31
4
3XXX
29
24XX
35
4XXX
heap
36
XXXX
28
1
1XXX
upper bound
2134
2
3
2XXX
9
23XX
21XX
23
31
29
28 8
28
28
27
24
10
31
4
3XXX
29
24XX
33
2143
37
4XXX
38
Live nodes are stored in the stack data
structure.
27
(2XXX)
28
31
(1XXX)
(3XXX)
31
(4XXX)
28
(1XXX)
28
29
(21XX)
31
(4XXX)
(24XX)
29 31
(23XX)
(3XXX)
All live nodes are killed.
Heap = 
stop
39
40
Dynamic Programming as a search method on tree ( 4/1// T problem, refer the
last 6 pages)
Stage 1: { 1XXX, 2XXX, 3XXX, 4XXX }
: live nodes
1
5
1234
2
1XXX
7
6
12XX
17
18
1243
XXXX
13XX
19
1324
14XX
21
20
1342
1423
22
1432
10
8
9
21XX
23XX
23
2134
24
2143
25
2314
3
2XXX
26
2341
12
11
24XX
27
2413
31XX
28
29
2431
3124
4
3XXX
30
3142
32XX
31
3214
34XX
32
3241
15
14
13
33
3412
4XXX
41XX
34
35
3421
4123
16
42XX
36
4132
37
4212
43XX
38
4231
39
4312
40
4321
41
Stage 2: { 21XX, 13XXX, 14XX, 23XX, 24XX, 34XX, 43XX }
: nodes to be eliminated.
XXXX
: live nodes
1
5
1234
7
6
12XX
17
2
1XXX
18
1243
13XX
19
1324
14XX
21
20
1342
1423
22
1432
10
8
9
21XX
23XX
23
2134
24
2143
25
2314
3
2XXX
26
2341
12
11
24XX
27
2413
31XX
28
29
2431
3124
4
3XXX
30
3142
32XX
31
3214
34XX
32
3241
15
14
13
33
3412
4XXX
41XX
34
35
3421
4123
16
42XX
36
4132
37
4212
43XX
38
4231
39
4312
40
4321
42
Stage 3: { 213X, 214X, 143X, 234X, 243X }
: nodes to be eliminated.
: live nodes
XXXX
1
5
1234
7
6
12XX
17
2
1XXX
18
1243
13XX
19
1324
14XX
21
20
1342
1423
22
1432
10
8
9
21XX
23XX
23
2134
24
2143
25
2314
3
2XXX
26
2341
12
11
24XX
27
2413
31XX
28
29
2431
3124
4
3XXX
30
3142
32XX
31
3214
34XX
32
3241
15
14
13
33
3412
4XXX
41XX
34
35
3421
4123
16
42XX
36
4132
37
4212
43XX
38
4231
39
4312
40
4321
43
Stage 4:
: nodes to be eliminated.
: live nodes
XXXX
1
5
1234
7
6
12XX
17
2
1XXX
18
1243
13XX
19
1324
14XX
21
20
1342
1423
22
1432
10
8
9
21XX
23XX
23
2134
24
2143
3
2XXX
25
26
2314
2341
12
11
24XX
27
2413
31XX
28
29
2431
3124
4
3XXX
30
3142
32XX
31
3214
34XX
32
3241
15
14
13
33
3412
4XXX
41XX
34
35
3421
4123
16
42XX
36
4132
37
4212
43XX
38
4231
39
4312
40
4321
44
Optimal solution
Depth-first Traversal search ( LIFO) method on tree ( 4/1// T problem )
First 3 nodes searched (explicitly or implicitly):
: live nodes
1
5
1234
2
1XXX
7
6
12XX
17
18
1243
XXXX
13XX
19
1324
14XX
21
20
1342
1423
22
1432
10
8
9
21XX
23XX
23
2134
24
2143
25
2314
3
2XXX
26
2341
12
11
24XX
27
2413
31XX
28
29
2431
3124
4
3XXX
30
3142
32XX
31
3214
34XX
32
3241
15
14
13
33
3412
4XXX
41XX
34
35
3421
4123
16
42XX
36
4132
37
4212
43XX
38
4231
39
4312
40
4321
45
First 10 nodes searched (explicitly or implicitly):
: live nodes
XXXX
1
5
1234
7
6
12XX
17
2
1XXX
18
1243
13XX
19
1324
14XX
21
20
1342
1423
22
1432
10
8
9
21XX
23XX
23
2134
24
2143
25
2314
3
2XXX
26
2341
12
11
24XX
27
2413
31XX
28
29
2431
3124
4
3XXX
30
3142
32XX
31
3214
34XX
32
3241
15
14
13
33
3412
4XXX
41XX
34
35
3421
4123
16
42XX
36
4132
37
4212
43XX
38
4231
39
4312
40
4321
46
First 15 nodes searched (explicitly or implicitly):
: live nodes
XXXX
1
5
1234
7
6
12XX
17
2
1XXX
18
1243
13XX
19
1324
14XX
21
20
1342
1423
22
1432
10
8
9
21XX
23XX
23
2134
24
2143
25
2314
3
2XXX
26
2341
12
11
24XX
27
2413
31XX
28
29
2431
3124
4
3XXX
30
3142
32XX
31
3214
34XX
32
3241
15
14
13
33
3412
4XXX
41XX
34
35
3421
4123
16
42XX
36
4132
37
4212
43XX
38
4231
39
4312
40
4321
47
First 23 nodes searched (explicitly or implicitly):
: live nodes
XXXX
1
5
1234
7
6
12XX
17
2
1XXX
18
1243
13XX
19
1324
14XX
21
20
1342
1423
22
1432
10
8
9
21XX
23XX
23
2134
24
2143
25
2314
3
2XXX
26
2341
12
11
24XX
27
2413
31XX
28
29
2431
3124
4
3XXX
30
3142
32XX
31
3214
34XX
32
3241
15
14
13
33
3412
4XXX
41XX
34
35
3421
4123
16
42XX
36
4132
37
4212
43XX
38
4231
39
4312
40
4321
48
Depth-first traversal (stack):
Breadth-first Traversal search ( FIFO) method on tree ( 4/1// T problem )
First 4 nodes searched (explicitly or implicitly):
XXXX
1
5
1234
7
6
12XX
17
2
1XXX
18
1243
13XX
19
1324
14XX
21
20
1342
1423
22
1432
10
8
9
21XX
23XX
23
2134
24
2143
25
2314
3
2XXX
26
2341
12
11
24XX
27
2413
31XX
28
29
2431
3124
4
3XXX
30
3142
32XX
31
3214
34XX
32
3241
15
14
13
33
3412
4XXX
41XX
34
35
3421
4123
16
42XX
36
4132
37
4212
43XX
38
4231
39
4312
40
4321
52
Breadth-first Traversal search ( FIFO) method on tree ( 4/1// T problem )
First 8 nodes searched (explicitly or implicitly):
XXXX
1
5
1234
7
6
12XX
17
2
1XXX
18
1243
13XX
19
1324
14XX
21
20
1342
1423
22
1432
10
8
9
21XX
23XX
23
2134
24
2143
25
2314
3
2XXX
26
2341
12
11
24XX
27
2413
31XX
28
29
2431
3124
4
3XXX
30
3142
32XX
31
3214
34XX
32
3241
15
14
13
33
3412
4XXX
41XX
34
35
3421
4123
16
42XX
36
4132
37
4212
43XX
38
4231
39
4312
40
4321
53
Least-cost search Branch and Bound method on tree ( 4/1// T problem )
The 1st branching:
XXXX
1
5
1234
7
6
12XX
17
2
1XXX
18
1243
13XX
19
1324
14XX
21
20
1342
1423
22
1432
10
8
9
21XX
23XX
23
2134
24
2143
25
2314
3
2XXX
26
2341
12
11
24XX
27
2413
31XX
28
29
2431
3124
4
3XXX
30
3142
32XX
31
3214
34XX
32
3241
15
14
13
33
3412
4XXX
41XX
34
35
3421
4123
16
42XX
36
4132
37
4212
43XX
38
4231
39
4312
40
4321
54
Least-cost Branch and Bound search method on tree ( 4/1// T problem )
The 2nd branching
intelligent search
XXXX
1
5
1234
7
6
12XX
17
2
1XXX
18
1243
13XX
19
1324
14XX
21
20
1342
1423
22
1432
10
8
9
21XX
23XX
23
2134
24
2143
25
2314
3
2XXX
26
2341
12
11
24XX
27
2413
31XX
28
29
2431
3124
4
3XXX
30
3142
32XX
31
3214
34XX
32
3241
15
14
13
33
3412
4XXX
41XX
34
35
3421
4123
16
42XX
36
4132
37
4212
43XX
38
4231
39
4312
40
4321
55
Least-cost Branch and Bound search method on tree ( 4/1// T problem )
The 3rd branching:
XXXX
1
5
1234
7
6
12XX
17
2
1XXX
18
1243
13XX
19
1324
14XX
21
20
1342
1423
22
1432
10
8
9
21XX
23XX
23
2134
24
2143
25
2314
3
2XXX
26
2341
12
11
24XX
27
2413
31XX
28
29
2431
3124
optimal solution
4
3XXX
30
3142
32XX
31
3214
34XX
32
3241
15
14
13
33
3412
4XXX
41XX
34
35
3421
4123
16
42XX
36
4132
37
4212
43XX
38
4231
39
4312
40
4321
56
Job Sequencing Problem with Deadlines:
Example:
Job j
1
2
3
4
pj
5
10
6
3
dj
1
3
2
1
tj
1
2
1
1
□ : infeasible node
An alternate tree organization:
x1 = the 1st nondelay job.
...
xk = the k-th nondelay job.
Initial node
Branch node 1
x1 = 1
UB = 24
LB = 0
Job j
1
2
3
4
pj
5
10
6
3
dj
1
3
2
1
tj
1
2
1
1
x1 = 0
UB = 24
LB = 0
UB = 19
LB = 0
x1 = 1
Heap of live nodes:
1
x1 = 0
LB = 0
2
UB = 24
LB = 5
3
LB = 5
3
2
1
Iteration 3 –
Branch node 2 ( x1 = 1 )
node 4: x2 = 1
LB(4) = 0, u(4) = 6+3 = 9, U = 9 (updated), best sol. ( 1, 1, 0, 0)
node 5: x2 = 0
LB(5) = 10, u(5) = 10+6+3 = 19, U = 9
live nodes: {3, 4, 5 }  branch node 4
x1 = 1
2
x2 = 1
UB = 9
LB = 0
4
x2 = 0
UB = 19
LB =10
1
Job j
1
2
3
4
pj
5
10
6
3
dj
1
3
2
1
tj
1
2
1
1
Heap of live nodes:
x1 = 0
UB = 24
LB =5
3
LB = 0
4
5
LB = 5
3
5
LB = 10
Iteration 4 –
Branch node 4
( x1 = 1, x2 = 1 )
Job j
1
2
3
4
pj
5
10
6
3
node 9: x3 = 0
dj
1
3
2
1
LB(9) = 6, u(9) = 6+3 = 9, U = 9
tj
1
2
1
1
node 8: x3 = 1
x1 = x2 = x3 = 1 infeasible
live nodes: { 3, 5, 9 }  branch node 3
x1 = 1
2
x2 = 1
x2 = 0
1
Heap of live nodes:
x1 = 0
UB = 24
LB =5
3
LB = 5
UB = 9
LB = 0
x3 = 1
8
infeasible
UB = 19
4
LB =10
3
5
x3 = 0
9
UB = 9
LB = 6
LB = 10
5
9
LB = 6
Iteration 5 –
Branch node 3
( x1 = 0 )
node 6: x2 = 1
LB(6) = 5, u(6) = 5+6+3 = 14, U = 9
node 7: x2 = 0
LB(7) = 5+10=15, u(7) = 5+10+6+3 = 24, U = 9
Job j
1
2
3
4
pj
5
10
6
3
dj
1
3
2
1
tj
1
2
1
1
live nodes: {5, 9, 6, 7 }  branch node 6
Heap of live nodes:
x1 = 1
1
x1 = 0
2
x2 = 1
UB = 9
LB = 0
x3 = 1
LB =10
5
UB = 14
LB =5
LB =5
LB = 5
x2 = 1
x2 = 0
6
7
UB = 24
LB =15
LB = 10
x3 = 0
9
infeasible
3
x2 = 0
UB = 19
4
UB = 24
UB = 9
LB = 6
LB = 15
7
5
6
9
LB = 6
Iteration 6 –
Branch node 6
( x1 = 0, x2 = 1 )
Job j
1
2
3
4
pj
5
10
6
3
node 13: x3 = 0
dj
1
3
2
1
LB(13) = 5+6= 11, u(13) = 5+6+3 = 14, U = 8
live nodes: {5, 9, 7, 12, 13}  branch node 12
tj
1
2
1
1
node 12: x3 = 1
LB(12) = 5, u(12) = 5+3 = 8, U = 8 (updated)
x1 = 1
Heap of live nodes:
1
x1 = 0
UB = 24
2
x2 = 1
UB = 9
LB = 0
x3 = 1
LB =10
infeasible
x2 = 1
5
UB = 14
LB =5
UB = 9
LB = 6
6
x2 = 0
7
UB = 8
LB =5
12
13
12
UB = 24
LB =15
x3 = 1 x3 = 0
x3 = 0
9
LB =5
LB = 5
x2 = 0
UB = 19
4
3
LB = 6
UB = 14
LB =11
9
7
LB = 14
LB = 10
5
13
LB = 15
Iteration 7 –
Branch node 12 ( x1 = 0, x2 = 1, x3 = 1 )
Job j
1
2
3
4
x1 = 0, x2 = x3 = x4 = 1 infeasible
pj
5
10
6
3
node 25: x4 = 0
dj
1
3
2
1
LB(25) = 5+3 =8, u(25) = 5+3 = 8, U = 8
tj
1
2
1
1
node 24: x4 = 1
best sol. ( 0, 1, 1, 0)
live nodes: {5, 9, 7, 13}  branch node 9
x1 = 1
Heap of live nodes:
1
x1 = 0
2
x2 = 1
UB = 9
LB = 0
x3 = 1
8
infeasible
x2 = 0
UB = 19
4
UB = 24
LB =5
LB =10
x2 = 1
5
UB = 19
LB =5
UB = 9
LB = 6
6
UB = 19
LB =5
12
13
LB = 6
x2 = 0
7
x3 = 1 x3 = 0
x3 = 0
9
3
UB = 24
LB =15
LB =10
UB = 14
LB =11
LB =14
24
infeasible
25
UB = 8
LB = 8
9
13
5
7
LB = 15
Iteration 8 –
Branch node 9
( x1 = 1, x2 = 1, x3 = 0 )
Job j
1
2
3
4
x1 = x2 = x4 = 1, x3 = 0 infeasible
pj
5
10
6
3
node 19: x4 = 0
dj
1
3
2
1
LB(19) = 6+3 = 9, u(19) = 6+3 = 9, U = 8
tj
1
2
1
1
node 18: x4 = 1
live nodes: {5, 7, 13}  branch node 5
LB(5)=10  U ( = 8)  End of search
x1 = 1
Heap of live nodes:
1
x1 = 0
2
x2 = 1
UB = 9
LB = 0
UB = 24
LB =5
x2 = 0
UB = 19
4
LB =10
x2 = 1
5
UB = 19
LB =5
9
8
UB = 9
LB = 6
infeasible
18
infeasible
19
6
x2 = 0
7
UB = 9
LB = 9
UB = 19
LB =5
24
infeasible
12
25
13
UB = 8
LB = 8
LB = 10
5
UB = 24
LB =15
LB =14
x3 = 1 x3 = 0
x3 = 0
x3 = 1
3
UB = 14
LB =11
LB =15
13
7
An improved lower bound calculation:
At node X  ( x1 , x 2 ,
, x m , ,
, )
(1) If anyone of the remaning jobs cannot be added, then let
m
C ( X )   pi (1  xi ) 
i 1
n

i  m 1
pi .
(2) If we cannot add all remaning jobs, then let
m
C ( X )   pi (1  xi ) 
i 1
min { p }.
i  m 1, , n
i
For example,
Iteration 3 – Branch node 2
( x1 = 1 )
Job j
1
2
3
4
pj
5
10
6
3
dj
1
3
2
1
tj
1
2
1
1
node 4: x2 = 1
By EDD rule, we know that partial schedle is (J1, J2, X,X) and it is
mposible to add any one of jobs J3 and J4 without violating due date. So,
LB(4) = 6 + 3 = 9.
node 5: x2 = 0
By EDD rule, we know it is mposible to add job J1, J3 and J4 all together
without violating due date. So, LB(5) = 10 + min{ 6, 3} = 13.
Heap data structure
Iteration
Nodes
X
LB(X)
UB(X)
Best sol.
&U
Live nodes
Branch
node
1
1
0
24*
(0,0,0,0), 24
{1}
1
2
2
3
0
5
19*
24
{ 2, 3 }
(1,0,0,0), 19
2
3
4
5
0
10
9*
19
{ 4, 3, 5 }
(1,1,0,0), 9
4
4
8
9
infeasible
infeasible
{ 3, 5, 9 }
3
15
24
(1,1,0,0), 9
5
6
7
5
15
19
24
{ 6, 5, 7, 9 }
(1,1,0,0), 9
6
6
12
13
5
10
19
11
{ 5,7,9,12, 13 }
(1,1,0,0), 9
12
7
24
25
Infeasible
Infeasible
{ 5, 7, 9 , 13}
9
8
8*
18
19
Infeasible
Infeasible
{ 5, 7, 13 }
5
8
9
9
(0,1,1,0), 8
(0,1,1,0), 8
(0,1,1,0), 8
LB(5)=10  heap = 
 end
(1) The 1st lower bound
M1 is continuous.
M2 is continuous.
M3 is continuous.
(2) The 2nd lower bound
Suppose ( J1 J2 X X), U = { J3, J4 }
M1
Job
ai
bi
ci
J1
1
8
4
J2
2
4
5
J3
6
2
8
J4
3
9
2
M2
M3
1 2
8
4
2+9
2
= [(1+2) + (8+4)] + (2+9) + 2 = 26
min { 8, 2 } = 2
= max { 13, 3 + min { 6, 3} } = 13
Suppose ( J1 J2 X X), U = { J3, J4 }
M1
Job
ai
bi
ci
J1
1
8
4
J2
2
4
5
J3
11
2
8
J4
12
9
2
M2
M3
1 2
8
4
2+9
2
= [(1+2) + (8+4)] + (2+9) + 2 = 26
min { 8, 2 } = 2
M1
M2
M3
1 2
= max { 13, 3 + min { 11, 12} } = 14
11
8
4
2+9
= 27
2
27
= 26

q3'  max  i ( K ) , i ( K )  min  bi  , i ( K )  min  ai  bi
J i U
Ji U

  c
i
J i U
Suppose ( J1 J2 X X), U = { J3, J4 }
Job
ai
bi
ci
J1
1
8
4
J2
2
4
5
J3
6
2
8
J4
3
9
2
M1
1 2
M2
M3
88
4
4
5
8+2
= 18 + (8+2) = 28

q3'  max  i ( K ) , i ( K )  min  bi  , i ( K )  min  ai  bi
J i U
= max { 18, 13 + min{ 2, 9}, 3 + min {6+2, 3+9}} + ( 8+2)
= max { 18, 15, 15 } +10 \
= 28
q3'  q3
Ji U

  c
J i U
i

q3'  max  i ( K ) , i ( K )  min  bi  , i ( K )  min  ai  bi
J i U
Ji U

  c
i
J i U
Suppose ( J1 J2 X X), U = { J3, J4 }
Job
ai
bi
ci
J1
1
8
4
J2
2
4
5
J3
6
6
8
J4
3
9
2
M1
1 2
M2
88
4
4
M3
5
8+2
= 18 + (8+2) = 28

q3'  max  i ( K ) , i ( K )  min  bi  , i ( K )  min  ai  bi
J i U
Ji U

  c
J i U
= max { 18, 13 + min{ 6, 9}, 3 + min {6+6, 3+9}} + ( 8+2)
= max { 18, 19, 15 } +10 \
M1
1 2
= 29
q3'  q3
M2
M3
88
4
6
8+2
29
i




lb( A)   i ( K )  max ai  bi  ci   min{a j , c j }
J i in U
J j in U


J

J
j
i


Suppose ( J1 J2 X X)
U = { J3, J4 }
M1
1 2
6
2
M2
8
M3
M1
M2
M3
2
21
1 2
3
9
2
6
22
Download