Flow-Shop: It is a typical example of an assembly line. In a
flow-shop, each of the n jobs must be processed through m machines in the same
order, and each job is processed exactly once on each machine. Processing
machines are placed in a sequence and the jobs move in sequentially across the processing
machines. We will consider flow shop scheduling for two machines.
Example
Job Processing time on m/c-I Processing time on m/c-II
1 4 7
2 6 3
3 2 3
4 7 7
5 8 6
Makespan: It is the
time required to complete all n jobs.
To minimize makespan we use JOHNSON’S
PROCEDURE :
Step 1) Determine the minimum processing
time on either machine – eg. In the given example, it is 2 for Job-3 on m/c-I
Step 2 (a) If the minimum processing time occurs
on m/c-I, place the associated job in the first available position in the
sequence. In our example Job-3 is placed in the first position. Proceed to
Step-3.
Step 2 (b) If the minimum processing time occurs on
m/c-II, place the associated job in the last available position in the
sequence. Proceed to Step-3.
Step 3) Job sequenced in the step-2 is
removed from consideration and the process of scheduling is repeated until all
jobs are scheduled. Break ties arbitrarily.
In our example when the Johnson’s procedure is
applied step by step, we get
< 3, _, _, _,
_ >
< 3, _, _, _,
2 >
< 3, 1, _, _,
2 >
< 3, 1, _, 5,
2 >
< 3, 1, 4, 5,
2 >
Makespan = 30
Verification: This is the best possible solution.
This can be proved by assuming any other scheduling. If there is any
discrepancy, then we reach closer to the optimum solution by switching the schedule plan at that point.
The makespan will either get better or will remain the same each time.
Therefore finally the scheduling given by this procedure will be the most
optimum one.
Extension of Johnson’s method to three m/c s (A, B,
C) :
If either
min
Ai >= max Bi
Or min
Ci >= max Bi
Then define
Ai’
= Ai + Bi
and Bi’ = Bi + Ci
Solve the problem for two machines (A’ & B’)
case.
General Job
Shop Scheduling:
There are no optimal rules or procedures for job
shops with more than two machines and two jobs.
Consider the following example with 3 machines (A,
B, C) and 6 jobs:
JOB Sequence
& Processing times Due
Date
1 A
(3), B (3), C (2) 10
2 A
(5), C (2) 13
3 B
(4), A (4), C (3) 12
4 B
(3), C (5), A (2) 18
5 C
(5), B (4) 14
6 C
(2), A (5), B (5) 15
Scheduling may be based on simple rules such as:
a) Earliest
Due Date first (EDD): priority
is given to the job with the earliest due date. This ensures minimum delay.
b) First
Come First Served (FCFS): priority
is given to the processing of the job that arrived at the machine first. This
minimizes largest waiting time.
c) Least
Slack First (LSF): priority is
given to the processing of the job with the least slack. Slack is the
difference between due date and the work remaining on the job.
At time zero (0), the slack for Job-I is 10-(3+3+2)
= 2
This minimizes the number of jobs that are tardy.
d) Shortest
Processing Time (SPT): priority
is given to the job with the shortest processing time on the machine under
consideration.
e) Least
Work Remaining: priority is
given to the job with the least amount of total processing remaining to be
done. This minimizes the total processing time of the remaining jobs.
GANTT CHARTS show the schedules developed using such
rules.
Gantt Chart is prepared by determining the set of
jobs waiting for each machine. If more than one job is waiting for a machine, a
rule is used to process the next job. When the processing of a job on one
machine is completed, the job is added to the waiting list for that m/c where
it needs to be processed next.
Example:
|
EDD |
|
|
|
|
5 |
|
|
|
|
10 |
|
|
|
|
15 |
|
|
|
|
20 |
|
|
|
|
25 |
|
m/c-A |
1 |
1 |
1 |
2 |
2 |
2 |
2 |
2 |
3 |
3 |
3 |
3 |
6 |
6 |
6 |
6 |
6 |
- |
- |
- |
4 |
4 |
|
|
|
|
m/c-B |
3 |
3 |
3 |
3 |
1 |
1 |
1 |
5 |
5 |
5 |
5 |
4 |
4 |
4 |
- |
- |
- |
6 |
6 |
6 |
6 |
6 |
|
|
|
|
m/c-C |
5 |
5 |
5 |
5 |
5 |
6 |
6 |
1 |
1 |
2 |
2 |
- |
3 |
3 |
3 |
4 |
4 |
4 |
4 |
4 |
- |
- |
|
|
|
|
SPT |
|
|
|
|
5 |
|
|
|
|
10 |
|
|
|
|
15 |
|
|
|
|
20 |
|
|
|
|
25 |
|
|
m/c-A |
1 |
1 |
1 |
2 |
2 |
2 |
2 |
2 |
6 |
6 |
6 |
6 |
6 |
3 |
3 |
3 |
3 |
4 |
4 |
|
|
|
|
|
|
|
|
m/c-B |
4 |
4 |
4 |
1 |
1 |
1 |
3 |
3 |
3 |
3 |
5 |
5 |
5 |
5 |
6 |
6 |
6 |
6 |
6 |
|
|
|
|
|
|
|
|
m/c-C |
6 |
6 |
5 |
5 |
5 |
5 |
5 |
1 |
1 |
2 |
2 |
4 |
4 |
4 |
4 |
4 |
- |
3 |
3 |
3 |
|
|
|
|
|
|
Similarly other rules can be applied & then
finally compared to look for the final optimum solution.
THE
ASSIGNMENT PROBLEM :
Assigning
n jobs to n machines in an optimal manner. These are a special case of
transportation LP problems that have more efficient solution procedures.
Example:
A machine company has four machines and four jobs to
be completed each m/c unit must be assigned to complete one job. The time
required to set-up each machine for completing each job is as follows:
Job
I Job II Job III Job IV
M/C-I 14 5 8 7
M/C-II 2 12 6 5
M/C-III 7 8 3 9
M/C-IV 2 4 6 10
Machine company wants to minimize total set-up time
needed to complete the four jobs.
Solution:
Define Xij = 1 if machine ‘i’ is assigned to meet the demand of job ‘j’
= 0
otherwise
n n
Objective function : å å Cij * Xij
i=1 i=1
n
å Xij
= 1 " i
j=1
n
å Xij
= 1 " j
i=1
An assignment problem is a balanced transportation
problem ( if 0–1 constraint is ignored ) where all supplies and demands equal
1.
Solution
via Hungarian Method :
Step 1) Find
the minimum element in each row of (m x m) cost
matrix. Construct a new matrix by subtracting from each cost the minimum cost
in its row. For this new matrix find the minimum cost in each column. Construct
a new matrix by subtracting from each cost the minimum cost in its column.
|
|
|
|
|
Min |
|
14 |
5 |
8 |
7 |
5 |
|
2 |
12 |
6 |
5 |
2 |
|
7 |
8 |
3 |
9 |
3 |
|
2 |
4 |
6 |
10 |
2 |
|
9 |
0 |
3 |
2 |
|
|
0 |
10 |
4 |
3 |
|
|
4 |
5 |
0 |
6 |
|
|
0 |
2 |
4 |
8 |
|
|
0 |
0 |
0 |
2 |
Min |
|
9 |
0 |
3 |
0 |
|
0 |
10 |
4 |
1 |
|
4 |
5 |
0 |
4 |
|
0 |
2 |
4 |
6 |
Step (2): Draw
the minimum no. of lines (horizontal and/or vertical) that are need to cover
all the zeroes in the reduced cost matrix. If m lines are required, an optimal
solution is available amongst the covered zeroes in the matrix. If fewer than m
lines are required, proceed to step(3).
Step (3): Find
the smallest non-zero element (call it k) in the reduced cost matrix that if
uncovered by lines drawn in step (2). Now subtract k from each uncovered
element of the reduced cost matrix and add k to each element that is covered by
2 lines. Return to step(2).
|
|
0 |
3 |
0 |
|
0 |
10 |
4 |
1 |
|
|
5 |
0 |
4 |
|
0 |
2 |
4 |
6 |
3 lines < 4
Smallest uncovered element equals 1
Subtract 1 from each uncovered element and add 1 to
twice covered elements.
The resulting matrix is
|
|
0 |
3 |
0 |
|
0 |
9 |
3 |
0 |
|
|
5 |
0 |
4 |
|
0 |
1 |
3 |
5 |
4 lines are now needed
Only covered 0 in row 3 is x33 ie. x33
= 1
Similarly x12 = 1 Þ x14 = 0 Þ x24 = 1 Þ x21 = 0 Þ x41 = 1
Intuitive Justification:
If a constant is added to each cost in a row, or
column, of a balanced transportation problem, the optimum solution to the
problem remains unchanged.
New objective function = old objective function + k
*(x11 + x12 + x13 + x14)
= old objective function + k
Step(3) is equivalent to adding k to each cost that
lies in a covered row and subtracting k from each cost that lies in an
uncovered column.