応用情報技術者 2010年 春期 午前2 問52
問題文
図のプロジェクトを最短の日数で完了したいとき、作業Eの最遅開始日は何日目か。

選択肢
ア:9
イ:12
ウ:13(正解)
エ:17
🔒 解説は解答すると表示されます
最遅開始日の算出【午前2解説】
正解の理由
作業Eの最遅開始日は、プロジェクトを最短で終える(クリティカルパスに従う)ときに許される、作業Eの直前の開始時刻の最大値です。図のネットワークを順方向(最早時刻)と逆方向(最遅時刻)に走査すると、プロジェクトの最短完了日は 日と求まります。終了ノードの最遅終了時刻を 日と指定して逆算すると、ノード4(EとFの到達点)の最遅終了時刻は 日になります。したがって作業E(所要4日)の最遅開始日は 日となり、選択肢では ウ(13日)が正しいです。
解法ステップ
-
ノードに最早時刻(Earliest Event Time)を順方向で計算する(複数の入力があれば最大値を取る)。
- 開始ノード =
- ノード1 = (A)
- ノード2 = (B)
- ノード3 は node1→C と node2→D の両方から来るので max
- ノード4 は node2→E と node3→F の両方から来るので max
- 終了ノード = (G)
- よってプロジェクト最短完了日 = 日
-
終了ノードの最遅終了時刻(Latest Event Time)をプロジェクト最短完了日に置き、逆方向に計算する(複数の出力があれば最小値を取る)。
- 終了ノードの最遅終了 =
- ノード4 の最遅終了 = (Gの所要3日を差し引く)
- 作業E の最遅開始 = ノード4の最遅終了 − Eの所要 =
- 他のノード・作業も同様に逆算すればクリティカルパス(浮動時間0の経路)は A→B→D→F→G(合計20日)であることが確認できる
-
一般式:作業の最遅開始 = 後続ノードの最遅終了 − 当該作業の所要日数
選択肢別の誤答解説
-
ア: 9
9日はノード2の最早(または最遅)時刻に関係する数値であり、作業Eの最遅開始ではありません。具体的にはノード2の最早時刻=9で、Eの開始候補の一つ(最早開始)は だが、最遅開始はそれより大きくなり得ます(この問題では13日)。 -
イ: 12
12日はノード3の最早時刻(または作業Fの最遅開始)に該当する数値です。作業Eはノード2→ノード4を通る経路に属するため、ノード3の時刻と直接の関係はなく、Eの最遅開始は12日ではありません。 -
エ: 17
17日はノード4の最遅終了(かつノード4の最早終了)時刻です。作業Eの最遅開始日をノード4の時刻そのままと誤解すると17日とする誤りが起きますが、作業Eは所要4日なので開始は 日でなければなりません。
よくある誤解
- 「最遅時刻は単純にノードの値をそのまま使う」こと:ノード(イベント)の最遅終了時刻と作業の最遅開始時刻を混同しやすい。作業の最遅開始は必ず「後続ノードの最遅終了 − 所要日数」で求める。
- 「最早時刻は足し算、最遅時刻は引き算だけ」だが、複数前後関係がある場合の取り扱い(最早:最大、最遅:最小)を忘れると誤答につながる。
補足コラム
クリティカルパス法(CPM)の基本は「順方向の最早イベント時刻」と「逆方向の最遅イベント時刻」を計算し、各作業の余裕(フロート)を求めることです。余裕 = 最遅開始 − 最早開始(または最遅終了 − 最早終了)。余裕が0の作業群がクリティカルパスで、プロジェクト全体の最短完了日を決定します。本問ではクリティカルパスが A+B+D+F+G(3+6+3+5+3=20)であるため、プロジェクト最短完了日は 日です。
FAQ
Q. なぜノードの最早値は「最大」を取るのですか?
A. そのノードが始まるにはすべての前作業が完了している必要があるため、先行作業の中で最も遅く終わる時刻がそのノードの最早時刻になります。
A. そのノードが始まるにはすべての前作業が完了している必要があるため、先行作業の中で最も遅く終わる時刻がそのノードの最早時刻になります。
Q. 逆に最遅値はなぜ「最小」なのですか?
A. ノードの最遅時刻は後続作業に遅れを生じさせないための限界であり、複数の後続作業がある場合は「最も早く開始しなければならない後続作業」を基準にするため最小値をとります。
A. ノードの最遅時刻は後続作業に遅れを生じさせないための限界であり、複数の後続作業がある場合は「最も早く開始しなければならない後続作業」を基準にするため最小値をとります。
Q. 今回のようにノードに複数の入力・出力があるときの具体的手順は?
A. 順方向は各ノードで到達時刻候補を計算し最大値を採る。逆方向は終了ノードから逆にたどり、各ノードで候補値を計算し最小値を採る。最後に各作業の最遅開始=後続ノードの最遅終了−所要日数を求める。
A. 順方向は各ノードで到達時刻候補を計算し最大値を採る。逆方向は終了ノードから逆にたどり、各ノードで候補値を計算し最小値を採る。最後に各作業の最遅開始=後続ノードの最遅終了−所要日数を求める。
関連キーワード: クリティカルパス、最早時刻、最遅時刻、フロート、順逆走査、工期短縮、ネットワーク図

\ せっかくなら /
応用情報技術者を
クイズ形式で学習しませんか?
クイズ画面へ遷移する→
すぐに利用可能!

