応用情報技術者 2022年 秋期 午前2 問52
問題文
図は、実施する三つのアクティビティについて、プレシデンスダイアグラム法を用いて、依存関係及び必要な作業日数を示したものである。全ての作業を完了するための所要日数は最少で何日か。

選択肢
ア:11
イ:12(正解)
ウ:13
エ:14
🔒 解説は解答すると表示されます
リードとラグの工期計算【午前2解説】
正解の理由
プレシデンスダイアグラムでの関係を正しく式に落とし込むと、各アクティビティの開始・終了時点は次のようになります。Aは開始から6日で終了し、A→Bは「終了―開始(リード2日)」なのでBはAの終了の2日前に開始します。B→Cは「開始―開始(ラグ3日)」なのでCはBの開始の3日後に開始します。これらを計算すると、A終了=6日、B開始=4日、B終了=11日、C開始=7日、C終了=12日となり、全作業の完了は最大値の12日です。したがって正解は イ(12日)です。
解法ステップ
- 各アクティビティの所要日数を確認
- A:6日、B:7日、C:5日
- 関係の意味を数式化する(リードは負のラグと考える)
- 終了―開始(リード2日): B_start = A_finish − 2
- 開始―開始(ラグ3日): C_start = B_start + 3
- Aを時間0に開始すると仮定して計算する
- A_start = 0 → A_finish = 0 + 6 =
- B_start = A_finish − 2 =
- B_finish = B_start + 7 =
- C_start = B_start + 3 =
- C_finish = C_start + 5 =
- 全体の所要日数は全作業の終了時刻の最大値 → max(6, 11, 12) =
選択肢別の誤答解説
-
ア:11日
誤りの典型例は「Bの終了(11日)をプロジェクト終了と見なす」場合です。図ではCがBより後に終わるため、Cを無視すると11日になります。ここではCの開始時刻(B開始+3日)を計算せず、Cの存在を見落としていることが原因です。 -
イ:12日(正答)
前節の通り、リード(B_start = A_finish − 2)とラグ(C_start = B_start + 3)を正しく適用すると全作業完了は12日になります。選択肢表記では イ がこれに該当します。 -
ウ:13日
13日となる誤りは「リードを無視してBをA終了後に開始する」といった誤認に由来します。具体的にはB_start を A_finish(6日)として計算すると B_finish = 6 + 7 = 13 となり、そこで終了と見なすと13日になります(この場合もCを正しく処理していないか、B開始を遅らせてしまった誤りです)。 -
エ:14日
14日になる誤りは「リードを無視してB_start = 6 とし、その上でラグを正しく適用して C_start = B_start + 3 = 9 とした」ケースで説明できます。すると C_finish = 9 + 5 = 14 となります。つまりリードの符号(開始を早める効果)を誤って扱い、B開始を遅らせたため全体が延びる誤りです。
よくある誤解
- リードは「余分に待つ日数」ではなく、 successor(後続)が前倒しで開始できる負のラグであると理解していない。符号を逆に扱うと開始時刻が遅くなり誤答につながる。
- 複数の経路がある場合、プロジェクト終了は単一経路の終了ではなく、全アクティビティの終了時刻の最大値で決まる。特定のパスだけ見て判断してしまうミス。
- 関係タイプ(FS、SSなど)を取り違える。特に「開始―開始」と「終了―開始」は挙動が異なるので要注意。
補足コラム
- 用語整理:リード(lead)は「後続を前倒しで開始させる日数」で、ラグ(lag)は「後続を遅らせる日数」。一般的にリードは負のラグとして扱います。
- 汎用式(2アクティビティ間)
- 終了―開始(FS)でlag = L(負ならリード): succ_start = pred_finish + L
- 開始―開始(SS)でlag = L: succ_start = pred_start + L
- 計算手順のコツ:まず各関係式で「開始時刻」を求め、各アクティビティの終了 = 開始 + 所要日数を計算し、最後に最大終了時刻を選ぶ。
FAQ
Q1. リードが「2日」とあるとき、どちらを2日早めるのですか?
A1. 「終了―開始(リード2日)」の場合、後続(ここではB)の開始を前の作業(A)の終了より2日早めます。式では B_start = A_finish − 2 と扱います。
A1. 「終了―開始(リード2日)」の場合、後続(ここではB)の開始を前の作業(A)の終了より2日早めます。式では B_start = A_finish − 2 と扱います。
Q2. 複数の前提(複数前任)があるときの開始日はどう決めますか?
A2. それぞれの前任から導かれる開始時刻の制約のうち最も遅い(最大の)開始時刻を採用します。つまり全制約を満たすために最も厳しい制約に従います。
A2. それぞれの前任から導かれる開始時刻の制約のうち最も遅い(最大の)開始時刻を採用します。つまり全制約を満たすために最も厳しい制約に従います。
関連キーワード: プレシデンスダイアグラム、リード、ラグ、FS、SS、工期計算、クリティカルパス

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

