You are on page 1of 4

Push Pull Push - 3 Pass Logic

hours, and Job B required 48 hours from now. The objective is to try and meet the due date of each job, but to start each job ju
taking into consideration the following:

- the start of the schedule (hour zero)


- the length of the job in hours
- when the job is due
- the stop of the previous job
- the start of the next job

Push 1 Pull Push 2


Jobs Hours Due Start Stop Start Stop Start Stop 0

In the first pass job A starts now, and job B starts immediately after that:

job A 32 24 0 32
job B 8 48 32 40

In the second pass each job stops when it is due, so job A would need to have started 8 hours ago:

job A 32 24 0 32 -8 24 1
job B 8 48 32 40 40 48

The third pass pushes job A later so that it starts at hour zero:

job A 32 24 0 32 -8 24 0 32
job B 8 48 32 40 40 48 40 48

Here are some other examples:

job A 32 24 0 32 -8 24 0 32
job B 24 48 32 56 24 48 32 56

job A 16 24 0 16 8 24 8 24
job B 16 48 16 32 32 48 32 48

job A 8 24 0 8 8 16 8 16
job B 32 48 8 40 16 48 16 48

job A 16 24 0 16 -8 8 0 16
job B 40 48 16 56 8 48 16 56

=MIN(C34,F35) - pull stop is the earlier of the due time or the start of the next job
=MAX(D34,F34,I33) - push 2 start is the later of: the earliest start
the push start
the stop of the previous job
=H34+B34 - push 2 stop is the start plus hours
each job, but to start each job just in time. The logic works in 3 passes, and "shuffles" the jobs

Day 1 Day 2
8 16 24 32 40 48 56

1 1 1 1
1

1 1 1
1

1 1 1 1
1

1 1 1 1
1 1 1

1 1
1 1

1
1 1 1 1

1 1
1 1 1 1 1

the next job


the earliest start
the push start
the stop of the previous job

You might also like