This problem refers to the following situation:

Suppose n jobs are to be processed on two machines, say A & B. Each job has to pass through the same sequence of operations in the same order, i.e., passing is not allowed.

After a job is completely processed
on machine A, it is assigned to machine B. If machine B is not free
at that moment, then the job enters the waiting queue. Each job from
the waiting queue is assigned to machine B according to FIFO discipline.
Let

A_{i} = Processing time for ith job on machine A

B_{i} = Processing time for ith job on machine B

T = Total elapsed time

The problem here is to determine the sequence in which these n jobs should be processed through A & B, so that the total elapsed time (T) is minimum.

The best technique for determining an optimal sequence was developed by Johnson & Bellman, which is discussed below.

- Select the minimum processing time out of all the A
_{i}'s and B_{i}'s. If it is A_{r}then do the rth job first. If it is B_{s}then do the sth job in last. - If there is a tie in selecting minimum of all the processing times,
then there are following three ways to deal with such a situation:
- If the minimum of all the processing times is A
_{r}, which is also equal to B_{s}.

That is, Min (A_{i}, B_{i}) = A_{r}= B_{s}

Then do the rth job first and sth job in last. - If Min (A
_{i}, B_{i}) = A_{r}, but A_{r}= A_{k}, i.e., there is a tie for minimum among A_{i}'s, then select any one. - If Min (A
_{i}, B_{i}) = B_{s}, but B_{s}= B_{t}, i.e., there is a tie for minimum among B_{i}'s, then select any one.

- If the minimum of all the processing times is A
- Now eliminate the job which has already been assigned from further consideration, and repeat steps 1 and 2 until an optimal sequence is found.

The next section concentrates on how to calculate the total elapsed time.