D1 4.5, 4.6 - Resource histograms and scheduling

D1 4.5, 4.6 - Resource histograms and scheduling

Construct and interpret resource histograms, move non-critical work to reduce peaks, and produce schedules using the least possible number of workers. You will check both the timing constraints and the allocation of individual workers.

Count workers, then check when they are needed

Our project contains exactly 2424 hours of work and must finish in 1212 hours. Two workers supply exactly 2424 worker-hours. Surely that is enough? Surprisingly, the dependencies force a period when one of those workers has nothing available to do. We will prove why the project needs three workers even though its average demand is only two.

You already know

The project has duration 1212 hours and critical path A−C−FA-C-F. Total float permits some non-critical activities to move, provided their dependencies and the project deadline remain satisfied. A worker lower bound comes from rounding total worker-hours divided by the available time upwards; it does not by itself prove that a schedule exists.

Keep the same activity data. Unless a question changes the requirement, each activity needs one worker throughout its duration.

ActivityDuration / hoursImmediate predecessorsEarliest interval
AA44None[0,4][0,4]
BB33None[0,3][0,3]
CC55AA[4,9][4,9]
DD22A,BA,B[4,6][4,6]
EE44A,BA,B[4,8][4,8]
FF33C,DC,D[9,12][9,12]
GG22EE[8,10][8,10]
HH11AA[4,5][4,5]

The endpoint 44, for example, can be both the finish of AA and the start of CC. When counting workers, use intervals of the form [s,f)[s,f): the finishing task releases its workers at ff, when another task may start. Do not count both at that instant.

Resource histogram

A resource histogram shows the number of workers required against time for a specified set of activity start times. Its height on an interval is the sum of the worker requirements of all activities running then. Its area is total worker-hours.

A two-worker activity of duration 44 occupies two workers simultaneously for all four hours. It contributes 88 worker-hours; this does not mean one worker can perform it in 88 hours. Use the given durations and worker requirements. In the schedules here, activities run continuously, with the same assigned worker or team throughout; do not interrupt an activity or hand it from one worker to another.

Key idea

A histogram describes demand for the chosen activity timings. A schedule must also name workers, fit their activities without overlaps, and respect every predecessor. Lowering the tallest bar requires a feasible change of timings.

Distinguish simultaneous demand from total work.

Split the time axis whenever an activity starts or finishes

List every distinct start and finish time. Between consecutive times the set of running activities is constant, so add their worker requirements and draw a rectangle of that height. Label both axes and use a clear time scale. Merge neighbouring intervals of equal height if desired, while retaining enough labels to recover the timings.

Only real duration bars use workers. A float extension is a choice of where work could move; it does not itself add resource demand. Dummies need no workers.

Workers and worker-hours

For a chosen schedule,

R(t)=∑activities running at trk,W=∑krkdkR(t)=\sum_{\text{activities running at }t}r_k, \qquad W=\sum_k r_kd_k

Here rkr_k is the worker requirement and dkd_k the duration of activity kk. The area of the resource histogram is WW.

Not in the formula booklet: learn it.

Start with earliest timings and one worker per activity.

Worked example 1: an earliest-start histogram

Question. Construct the resource histogram for the original earliest-start intervals and state its peak.

Plan. Split at 0,3,4,5,6,8,9,10,120,3,4,5,6,8,9,10,12, then count the running activities.

Time intervalRunning activitiesWorkers
[0,3)[0,3)A,BA,B22
[3,4)[3,4)AA11
[4,5)[4,5)C,D,E,HC,D,E,H44
[5,6)[5,6)C,D,EC,D,E33
[6,8)[6,8)C,EC,E22
[8,9)[8,9)C,GC,G22
[9,10)[9,10)F,GF,G22
[10,12)[10,12)FF11

Why this step? HH finishes at 55, so the height falls then; at 99, CC finishes and FF starts, leaving the same height but a different pair of activities.

Answer. The left-hand histogram below, with peak demand 44 workers on [4,5)[4,5).

Check. Its area is

3(2)+1(1)+1(4)+1(3)+2(2)+1(2)+1(2)+2(1)=24,3(2)+1(1)+1(4)+1(3)+2(2)+1(2)+1(2)+2(1)=24,

equal to the sum of the eight one-worker durations.

Keep every duration and start time fixed; change only EE's requirement from one worker to two.

Worked example 2: one activity needs a larger team

Question. Update the histogram when EE requires two workers, all other requirements remaining one.

Plan. Add one worker precisely while EE runs, from 44 to 88.

R(t)=54≤t<5R(t)=45≤t<6R(t)=36≤t<8\begin{aligned} R(t)&=5 && 4\le t<5\\ R(t)&=4 && 5\le t<6\\ R(t)&=3 && 6\le t<8 \end{aligned}

Every other height is unchanged.

Why this step? Two workers on EE means one more than the worker already counted. Adding two to the old histogram would count its original worker twice.

Answer. The right-hand histogram below, with peak 55 workers.

Check. The additional area is 1×4=41\times4=4, so the total becomes 24+4=2824+4=28 worker-hours, also ∑rkdk\sum r_kd_k.

[DIAGRAM: asset_name: Earliest resource histograms with one changed requirement; asset_slug: 9fm0-d1175-histogram-comparison; caption: Changing E's team adds one worker only during its four-hour interval; description: Two side-by-side resource histograms use a 0 to 12 hour time axis and a common vertical scale 0 to 6 workers. The first has heights 2 on 0 to 3, 1 on 3 to 4, 4 on 4 to 5, 3 on 5 to 6, 2 on 6 to 10 and 1 on 10 to 12. The second adds one worker from 4 to 8 only, reaching height 5. Each plateau has its height labelled in dark ink. Titles identify one worker each and E needs two workers.]
Changing E's team adds one worker only during its four-hour interval

The histogram construction method is not in the formula booklet. Its area gives a useful arithmetic check, while the interval table checks that the workers appear at the correct times.

Watch out

Wrong: count activities when their requirements differ. Right: add the given worker requirements of the activities running on that interval.

Change one requirement again, keeping the original timings and every other requirement equal to one.

Read a histogram backwards by subtracting known demands

You may know the activity timings and the histogram but need to recover worker requirements. Write “sum of requirements of running activities equals the height”. Begin on an interval containing just one activity, then use overlapping intervals to find the others. A one-hour width does not mean one worker: use the height.

For the next examples, retain all original earliest timings but use the new histogram below. The labels show its heights; the worker requirements are to be deduced.

[DIAGRAM: asset_name: Resource histogram for recovering worker requirements; asset_slug: 9fm0-d1175-weighted-histogram; caption: Known activity timings turn each height into an equation for worker requirements; description: A resource histogram on a 0 to 12 hour axis has heights 3 on 0 to 3, 2 on 3 to 4, 6 on 4 to 5, 5 on 5 to 6, 4 on 6 to 8, 3 on 8 to 10 and 2 on 10 to 12. All heights and break times are labelled in dark ink, including the unchanged height at time 9. A note states that the original earliest activity timings apply.]
Known activity timings turn each height into an equation for worker requirements

Work backwards from the last interval, where only FF is running.

Worked example 3: separate a late overlapping pair

Question. Deduce the worker requirements of FF and GG.

Plan. Find FF alone, then subtract its requirement where F,GF,G overlap.

rF=210≤t<12: F alonerF+rG=39≤t<10: F,G runrG=3−2=1subtract known demand\begin{aligned} r_F&=2 && 10\le t<12:\ F\text{ alone}\\ r_F+r_G&=3 && 9\le t<10:\ F,G\text{ run}\\ r_G&=3-2=1 && \text{subtract known demand} \end{aligned}

Why this step? On [8,9)[8,9), FF has not started; although the height is also 33, that interval contains C,GC,G.

Answer. FF requires two workers and GG one.

Check. Their overlap needs 2+1=32+1=3, as plotted, and the drop at 1010 removes exactly GG's one worker.

Keep the same histogram and change only the pair of unknown requirements under investigation, from F,GF,G to C,EC,E.

Worked example 4: continue through the earlier overlaps

Question. Given rG=1r_G=1, deduce the worker requirements of C,EC,E.

Plan. Use C,GC,G first; once CC is known, use C,EC,E.

rC+1=38≤t<9rC=2subtract rG2+rE=46≤t<8rE=2subtract rC\begin{aligned} r_C+1&=3 && 8\le t<9\\ r_C&=2 && \text{subtract }r_G\\ 2+r_E&=4 && 6\le t<8\\ r_E&=2 && \text{subtract }r_C \end{aligned}

Why this step? Choose intervals where the other requirements are already known. The highest bar mixes four activities and is a poor starting point.

Answer. Both C,EC,E require two workers.

Check. Their four-worker overlap lasts from hour 66 to hour 88, exactly the height shown.

The same subtraction gives rA=2r_A=2 from [3,4)[3,4) and rB=1r_B=1 from [0,3)[0,3). The complete recovered requirements will be used in the final scheduling example:

ActivityAABBCCDDEEFFGGHH
Workers2211221122221111

These equations are derived from the running-activity sets; there is no separate formula-booklet rule for recovering requirements.

Exam tip

State the interval and running activities used in each equation. This makes the deduction checkable even when adjacent histogram bars have equal heights.

Finish the deduction for the two short activities.

Watch out

Wrong: two simultaneous activities always make a histogram height of 22. The height is the sum of their worker requirements: if C,EC,E each need 22, their joint contribution is 2+2=42+2=4. Form an equation from the exact running-activity set in the chosen time interval.

Choose intervals whose other worker requirements are already known.

Continue this lesson.

You’re previewing NovaLearn without an account. Create a free account to read the rest.

Create free account