PERTは「いちばん長い道」を探すだけ

PERT(Program Evaluation and Review Technique)は、多数の作業からなるプロジェクトの日程計画を管理する手法です。作業を矢線で、作業の区切りを結合点(丸)で表した図をアローダイアグラムといいます。

試験で問われることは、突き詰めると1つです。開始から終了までの経路のうち、いちばん所要日数が長いものを探す。 その経路がクリティカルパスで、その長さがプロジェクト全体の最短所要日数になります。

「いちばん長い経路なのに最短所要日数」というのが初学者のつまずきどころです。並行して進む作業はすべて終わらないと次に進めないので、最も時間のかかる経路が全体の完了時期を決めるからです。渋滞している車線が到着時刻を決めるのと同じ、と考えると腑に落ちます。

例題で手順を確認する

作業 所要日数 先行作業
A 3 なし
B 2 なし
C 4 A
D 5 B
E 2 C, D
F 3 D

EとFが終わればプロジェクト完了とします。

手順1:経路を全部書き出す

作業数が少ないうちは、開始から終了までの経路を全部列挙して足し算するのが最も確実です。

  • A→C→E:3+4+2=9日
  • B→D→E:2+5+2=9日
  • B→D→F:2+5+3=10日

最長はB→D→Fの10日。これがクリティカルパスで、最短所要日数は10日です。

手順2:最早結合点時刻(ES)を前から埋める

作業が多くなると経路の列挙は漏れやすいので、本試験では結合点ごとに時刻を書き込む方法を使います。まず開始点を0として、前から順に「その結合点に到達できる最も早い時刻」を求めます。合流する結合点では大きい方を採用します。

  • Aの終点:0+3=3
  • Bの終点:0+2=2
  • Cの終点(=Eの始点の一部):3+4=7
  • Dの終点:2+5=7
  • Eの始点:CとDの両方が終わる必要があるので max(7, 7)=7
  • 終点:Eの終了 7+2=9 と Fの終了 7+3=10 の大きい方=10

手順3:最遅結合点時刻(LS)を後ろから埋める

次に終点の時刻10から逆算し、「全体を遅らせずに済むぎりぎりの時刻」を求めます。分岐する結合点では小さい方を採用します。

  • 終点:10
  • Eの始点:10−2=8
  • Fの始点(=Dの終点):10−3=7。Dの終点はEの始点でもあるので min(8, 7)=7
  • Cの終点:Eの始点から 8
  • Aの終点:8−4=4
  • Bの終点:7−5=2
  • 開始点:min(4−3, 2−2)=0

手順4:余裕がゼロの経路をたどる

最早時刻と最遅時刻が等しい結合点をつないだ経路がクリティカルパスです。

結合点 最早 最遅 余裕
開始 0 0 0
Aの終点 3 4 1
Bの終点 2 2 0
Dの終点 7 7 0
Cの終点 7 8 1
終点 10 10 0

余裕0をたどると 開始→B→D→F→終点。手順1の答えと一致しました。作業Aは1日遅れても全体に影響しない(トータルフロート1日)ことも読み取れます。

覚え方

  • 前からは「大きい方」、後ろからは「小さい方」。前向き計算は「全部そろうまで待つ」ので遅い方に合わせ、後ろ向き計算は「どれも遅らせない」ので早い方に合わせる、と理由ごと覚えます。
  • クリティカルパスは余裕ゼロの道。最早=最遅の点をつなぐだけです。
  • クリティカルパス上の作業を短縮しないと全体は短くならない。逆に、クリティカルパス以外の作業を短縮しても所要日数は変わらない、という正誤問題が頻出です。
  • 短縮の問題では「どこか1つを1日縮めたら、別の経路が新たにクリティカルになっていないか」を必ず確認します。上の例でFを2日縮めると B→D→F は8日になり、9日の A→C→E と B→D→E が新たなクリティカルパスになります。

ダミー作業の扱い

アローダイアグラムでは、先行関係だけを示すために所要日数0のダミー作業(破線)を使うことがあります。ダミーは「時間はかからないが順序制約はある」矢線です。経路を足し算するときは0として扱えばよいのですが、ダミーを無視して先行関係を見落とすと経路そのものを間違えるので、破線が出てきたら必ず「どの作業がどの作業を待っているのか」を言葉に直してから計算してください。

学習のコツ

  • 図を見たらまず経路を全部書き出す。作業が8個程度までなら列挙が最速で確実です。
  • それ以上のときは結合点に「最早/最遅」を2段で書き込む方式に切り替えます。手を動かして3〜4問解けば、形が体に入ります。
  • 選択肢の日数は「最長経路」「2番目に長い経路」「存在しない経路」で作られることが多いので、答えが出たら先行関係が本当に成立する経路かを見直すのが失点防止になります。