chapter7.ppt

advertisement
IOE/MFG 543
Chapter 7: Job shops
Sections 7.1 and 7.2
(skip section 7.3)
1
Job shop (Jm)


m machines, n jobs
Each job has its own routing on the
machines
– The flow shop is a special case where
all the jobs follow the same route (recall
F3||Cmax is NP-hard)
– If a job is to be processed on the same
machine more than once =>
recirculation
2
Section 7.1. Disjunctive
graph for Jm||Cmax



In Jm||Cmax there is no recirculation
All jobs start at a source node U and finish
at the sink node V
Node (i,j) is the processing of job j on
machine i
– Let N denote the set of nodes

The arc from node (i,j) has weight pij
– The arcs going out of the source node have zero
weights
– Let A denote the set of arcs
3
Disjunctive graph (2)
 For each machine i connect all nodes of
the form (i,j) and (i,k) with two arcs (one
going in each direction)
–
The arcs for each machine form a clique, i.e., a
sub-graph in which any two nodes are
connected to one another
 The two arcs are disjunctive, i.e., only one
of them is utilized
–
–
If the operation (i,j) precedes operation (i,k)
then only the arc from (i,j) to (i,k) and not the
arc from (i,k) to (i,j) is utilized
Let B denote the set of disjunctive arcs
4
Using the graph to find a
feasible schedule



Select one disjunctive arc from each pair of
disjunctive arcs
If the selection results in an acyclic graph,
i.e., contains no cycles, then the
corresponding schedule is feasible
The makespan of the schedule is
determined by the critical path method
5
Minimizing the makespan


To minimize the makespan we need to
select the arcs that results in a schedule
that minimizes the makespan
Disjunctive program
– yij is the starting time of operation (i,j)
minimize
subject to
Cmax
ykj-yij≥pij
Cmax-yij≥ pij
 (i,j)(k,j)
 (i,j)
yij-yil≥pil or yil-yij≥pij  (i,l) and (i,j) , i=1,…,m
 (i,j)
yij≥0
6
Minimizing the makespan
(2)

Solving this problem can be achieved by
a branch and bound algorithm
– The algorithm is computationally expensive
even for a problem with a modest number
of jobs and machines

Use heuristic methods instead
7
Section 7.2: The shifting
bottleneck heuristic
Example 7.2.2

job
1
2
3
machine
sequence
1, 2, 3
2, 1, 4, 3
1, 2, 4
processing times
p11=10, p21=8, p31=4
8, 3, 5, 6
4, 7, 3
8
Example 7.2.2:
Disjunctive graph
10
1,1
8
2,1
3,1
4
5
6
0
U
0
2,2
8 1,2 3
4,2
3,2
0
1,3
4
2,3
7
V
3
4,3
9
Example 7.2.2:
Iteration 1


M0=Set of machines already scheduled=
Only include the conjuctive arcs
10
1,1
8
2,1
3,1
4
5
6
0
U
0
2,2
8 1,2 3
4,2
3,2
0
1,3

4
2,3
7
V
3
4,3
Compute Cmax(M0)=22
10
Ex. 7.2.2: Iter. 1 Which
machine to sched. first?

Solve 1|rj|Lmax for each machine i
–
–

Release dates
rij=longest path from U to node (i,j)
Due dates
dij= Cmax(M0)
- longest path from (i,j) to V
+ pij
The machine with the largest minimum
Lmax is the bottleneck machine
11
Ex. 7.2.2: Iter. 1.
1|rj|Lmax

Machine 1:
– How do we solve this
problem?
– Branch and bound
algorithm gives
Lmax(1)=5

Machine 2:
– Branch and bound
algorithm gives
Lmax(2)=5
job j
p1j
r1j
d1j
1
10
0
10
2
3
8
11
3
4
0
12
job j
p2j
r2j
d2j
1
8
10
18
2
8
0
8
3
7
4
19
12
Ex. 7.2.2: Iter. 1.
1|rj|Lmax


job j
Machine 3:
p3j
– Only 2 schedules!
r3j
Lmax(3)=4
d3j
Machine 4:
– Only 2 schedules… job j
Lmax(4)=0
p4j
r4j
d4j
1
4
18
22
2
6
16
22
3
-
1
-
2
5
11
16
3
3
11
22
13
Ex. 7.2.2: Iter. 1 Which
machine to sched. first? (2)


Machines 1 and 2 both have a
minimum Lmax of 5
We can choose either machine so
let’s pick machine 1 => M0={1}
10
1,1
U
0
2,2
2,1
10
0
8 1,2 3
0
8
4,2
3,1
4
5
6
3,2
3
1,3
4
2,3
7
V
3
4,3
14
Ex. 7.2.2:
Iteration 2
10
1,1
U
0
0
2,2
8 1,2 3
4,2
3,1
4
5
6
3,2
3
1,3

2,1
10
0
8
4
2,3
7
V
3
4,3
Compute Cmax(M0)=27
15
Ex. 7.2.2: Iteration 2.
1|rj|Lmax

Machine 2
– B&b algorithm gives
Lmax(2)=1 w/sequence 2-1-3

Machine 3
– Lmax(3)=1
w/sequences
1-2 and 2-1

Machine 4
– Lmax(4)=0
w/sequence 2-3

Add machine 2 to M0 so
M0={1,2}
job j
p2j
r2j
d2j
1
8
10
23
2
8
0
10
3
7
17
24
job j
p4j
r4j
d4j
1
-
2
5
13
21
3
3
24
27
16
Ex. 7.2.2: Iteration 2
Resequencing
Should we resequence machine
1 to decrease
U
Cmax(M0)?
1-2-3 gives
Lmax(1)=0


–

1,1
0
2,2
8
2,1
8
0
8 1,2 3
4,2
3,1
4
5
6
3,2
8
0
which is optimal since
lateness of job 1
increases if it is
delayed
Do not resequence
machine 1
10
1,3
4
2,3
7
V
3
4,3
job j
1
2
3
p1j
r1j
d1j
10
0
10
3
8
17
4
0
18
17
Ex. 7.2.2:
Iteration 3
10
1,1
0
U
0
0
2,2
3,1
4
5
6
8
8 1,2 3
4,2
3,2
3
1,3

2,1
10
8
8
4
2,3
7
V
3
4,3
Compute Cmax(M0)=28
18
Ex. 7.2.2: Iteration 3.
1|rj|Lmax

Machine 3
– Lmax(3)=0

Machine 4
– Lmax(4)=0
w/sequence 2-3
job j
p3j
r3j
d3j
1
4
18
28
2
6
18
28
3
-
job j
p4j
r4j
d4j
1
-
2
5
13
22
3
3
25
28
19
Ex. 7.2.2: Iteration 3
Conclusion

Sequencing machines 3 and 4 does
not increase the makespan of
Cmax(M0)=28
– No need to try to resequence
10
1,1
0
U
0
0
2,2
2,1
3,1
8 1,2 3
4,2
3
1,3
4
4
4
8
10
8
8
2,3
7
5
5
6
3,2
V
3
4,3
20
Ex. 7.2.2:
Gantt chart
8 10
0
1
2
1718
13
2
22
25 28
3
1
3
1
2
2
3
21
Algorithm 7.2.1: The shifting
bottleneck heuristic
1.
2.
3.
4.
5.
6.
Initialization. Set M0=. Graph G contains only the
conjunctive arcs
Solve a maximum lateness problem for each
machine that has not been sequenced.
Sequence the machine that has the maximum
minimum maximum lateness
Add it to M0 and add the disjunctive arcs to G for
that machine
Resequence all machines in M0 one at a time,
except the last added machine. Modify the
disjunctive constraints accordingly
Stop if all machines have been sequenced,
otherwise go to step 2.
22
An implementation issue
with the heuristic



Recall: The disjunctive constraints
must be selected such that the
resulting graph is acyclic
In the SBH heuristic a cycle can be
created
This can be prevented by adding
precedence constraints (arcs) having a
delay (a positive weight)
23
Example 7.2.3. Delayed
precedence constraints
job
1
2
3
4
machine
sequence
1, 2
2,1
3
3
processing times
p11=1, p21=1
1, 1
4
4
24
Download