NivaarExam PrepOfficial exam papers ↗

23-Ind-A1 Operations Research · December 2014

Question 3 of 10: CPM Network and Crashing — Nine-Task Project

Nivaar worked solution (AI-drafted; not reviewed by a licensed engineer)

Notes on this paper

National Exams — December 2014 — 98-Ind-A1 Operations Research. Three-hour, open-book exam (any non-communicating calculator permitted); the paper totals 150 marks across 10 questions and only 100 marks are required, so a candidate would normally answer a subset — all ten are solved below for completeness.

Reference texts: Hillier & Lieberman, Introduction to Operations Research (11th ed., McGraw-Hill) — linear/integer programming, network optimization (CPM), dynamic programming, decision analysis, Markov chains and queueing theory; Nahmias, Production and Operations Analysis (7th ed.) — EOQ and inventory-control models.

Question 3: CPM Network and Crashing — Nine-Task Project (15 marks)

Question text not reproduced: the examination questions are © Engineers and Geoscientists BC. Open the official past paper (linked at the top of this page) to read the question, then follow the worked solution below.

Given. Nine activities with (min/crash time, normal time, cost slope $b_{i,j}$ per unit-time saved, predecessors):

Given data — activity durations and crash slopes
TaskCrash timeNormal time$b_{i,j}$ ($/day saved)Predecessors
A134—
B241—
C0.521A
D251A
E163B, C
F127D, E
G349D, E
H235F
I458G

Find. (a) The activity-on-node project diagram and the critical path at normal durations; (b) an LP formulation (not solved) for choosing each activity's duration between its crash and normal time to hit a specified project deadline at minimum crashing cost.

Approach. Run a forward/backward CPM pass at normal durations to get the critical path (part a), then generalize the network's precedence structure into a time-cost-tradeoff LP with one continuous duration variable per activity, bounded between its crash and normal time (part b).

A(3)B(4)C(2)D(5)E(6)F(2)G(4)H(3)I(5)
Activity-on-node network at normal durations (duration shown in parentheses). Arrows show precedence: A→C, A→D, B→E, C→E, D→F, D→G, E→F, E→G, F→H, G→I.
  1. Forward pass (earliest start/finish). With no predecessors, $A$ and $B$ start at $t=0$: $EF_A=3$, $EF_B=4$. Then $EF_C=EF_A+2=5$, $EF_D=EF_A+5=8$, $EF_E=\max(EF_B,EF_C)+6=5+6=11$, $EF_F=\max(EF_D,EF_E)+2=11+2=13$, $EF_G=\max(EF_D,EF_E)+4=11+4=15$, $EF_H=EF_F+3=16$, $EF_I=EF_G+5=20$. Project duration $=\max(EF_H,EF_I)=\boxed{20\text{ days}}$.
  2. Backward pass and slack. Setting $LF_I=LF_H=20$ and working back task-by-task (Python-verified) gives zero slack ($LS=ES$) on A, C, E, G, I and positive slack on B (1 day), D (3 days), F (4 days), H (4 days).
  3. Part (a) — critical path. The zero-slack chain is $\boxed{A\rightarrow C\rightarrow E\rightarrow G\rightarrow I}$, length $3+2+6+4+5=20$ days, matching the project duration found above.
  4. Part (b) — decision variables. Let $t_{ij}$ be the (continuous) duration actually used for activity $(i,j)$, bounded between its crash time $cr_{ij}$ and normal time $nr_{ij}$: $cr_{ij}\le t_{ij}\le nr_{ij}$. Let $x_{ij}=nr_{ij}-t_{ij}\ge0$ be the amount that activity is crashed, so the crashing cost is $b_{ij}x_{ij}$ (linear, per the given slopes).
  5. Part (b) — event times and precedence. Introduce an event time $T_k$ at each node $k\in\{A,\dots,I,\text{Finish}\}$ (start node $T_0=0$). Precedence is enforced by $T_j\ge T_i+t_{ij}$ for every activity $(i,j)$ in the network above (e.g. $T_C\ge T_A+t_A$, $T_E\ge T_B+t_B$, $T_E\ge T_C+t_C$, $T_F\ge T_D+t_D$, $T_F\ge T_E+t_E$, and so on through $T_{\text{Finish}}\ge T_H+t_H$, $T_{\text{Finish}}\ge T_I+t_I$).
  6. Part (b) — deadline and objective. With specified deadline $D_{\text{spec}}$, add $T_{\text{Finish}}\le D_{\text{spec}}$. The complete (unsolved) LP is: $$\boxed{\text{Minimize } Z=\sum_{(i,j)} b_{ij}x_{ij}\ \text{ s.t. } T_j-T_i+x_{ij}\ge nr_{ij}\ \forall(i,j),\ 0\le x_{ij}\le nr_{ij}-cr_{ij},\ T_{\text{Finish}}\le D_{\text{spec}},\ T_k\ge0.}$$ (The constraint form $T_j-T_i+x_{ij}\ge nr_{ij}$ is the linearization of $T_j\ge T_i+(nr_{ij}-x_{ij})$, i.e. $T_j\ge T_i+t_{ij}$.)
Final results — Question 3
QuantityValue
Project duration (normal times)20 days
Critical pathA → C → E → G → I
Slack: B / D / F / H1 / 3 / 4 / 4 days
Crashing LPformulated, not solved (per instructions)