応用情報技術者 2019年 春期 午前2 問53
問題文
図のアローダイアグラムから読み取れることとして、適切なものはどれか。ここで、プロジェクトの開始日を1日目とする。

選択肢
ア:作業Cを最も早く開始できるのは6日目である。
イ:作業Dはクリティカルパス上の作業である。
ウ:作業Eの総余裕時間は30日である。(正解)
エ:作業Fを最も遅く開始できるのは11日目である。
🔒 解説は解答すると表示されます
作業Eの余裕時間【午前2解説】
正解の理由
選択肢ウ が正しい理由は、作業Eの最早開始日(ES)が11日目、最遅開始日(LS)が41日目となり、総余裕時間(Total Float)が 日と求まるためです。ダミー作業(N2→N1)が存在するため、中間ノードの最早到達時刻は単純にAの終了時刻ではなくB経路の影響も受け、これを考慮した順算・逆算により E の余裕が 30 日であることが導かれます。
解法ステップ
以下で順算(前向き計算)と逆算(後向き計算)を順に示します。開始日を ES(start)=1 とし、各作業について EF = ES + 所要日数 とします(時間単位は日)。
-
順算(最早時刻 = ES, EF)
- 開始ノード: 時刻 = 1
- A: ES_A = 1, EF_A = 1 + 5 = 6
- B: ES_B = 1, EF_B = 1 + 10 = 11
- N1(Aとダミー(B経路)が合流するノード)の最早時刻は incoming の最大 → max(EF_A, EF_dummy_from_B) = max(6, 11) = 11
- C: ES_C = 11, EF_C = 11 + 20 = 31
- D: ES_D = 11, EF_D = 11 + 30 = 41
- E: ES_E = 11, EF_E = 11 + 10 = 21
- F: ES_F = EF_B = 11, EF_F = 11 + 10 = 21
- N3(EとF合流)の最早時刻 = max(EF_E, EF_F) = max(21,21) = 21
- G: ES_G = EF_C = 31, EF_G = 31 + 20 = 51
- N5(D,G,dummy(N3)合流)の最早時刻 = max(EF_D, EF_G, EF_dummy_from_N3) = max(41,51,21) = 51
- H: ES_H = 51, EF_H = 51 + 10 = 61(プロジェクト終了時刻)
-
逆算(最遅時刻 = LF, LS)
- 終了ノード LF = EF_H = 61
- H: LS_H = LF_H - 10 = 61 - 10 = 51 → H の LS = 51
- N5 の最遅時刻 = LS_H = 51
- G: LS_G = 51 - 20 = 31 → C の LF = 31
- C: LS_C = 31 - 20 = 11
- D: LS_D = 51 - 30 = 21
- N3 の最遅時刻は N5 に到達するダミーを通じて N5 の最遅時刻に等しいため N3_latest = 51
- E: LS_E = 51 - 10 = 41
- F: LS_F = 51 - 10 = 41
- N1 の最遅時刻 = min(LS_C, LS_D, LS_E) = min(11,21,41) = 11 → A の LS = 11 - 5 = 6
- N2 の最遅時刻 = min(LS_F, (N1の最遅時刻 経由のダミー)) = min(41,11) = 11 → B の LS = 11 - 10 = 1
-
総余裕 = LS - ES(各作業)
- A: ES=1, LS=6 → 余裕 = 5
- B: ES=1, LS=1 → 余裕 = 0
- C: ES=11, LS=11 → 余裕 = 0
- D: ES=11, LS=21 → 余裕 = 10
- E: ES=11, LS=41 → 余裕 = 30
- F: ES=11, LS=41 → 余裕 = 30
- G: ES=31, LS=31 → 余裕 = 0
- H: ES=51, LS=51 → 余裕 = 0
- ダミーは所要0だがノード時刻で拘束され、該当するダミーの余裕は0等になる場合がある
以上より作業Eの総余裕は 日であり、選択肢ウが正しいことが確定します。
選択肢別の誤答解説
-
ア: 「作業Cを最も早く開始できるのは6日目である。」
- 誤り。C の ES は N1 の最早時刻に依存します。A の EF=6 でも、B→ダミーにより N1 は EF_B=11 の影響を受けるため N1 の最早は 11 日目であり、C の開始は 11 日目です(6日目ではありません)。
-
イ: 「作業Dはクリティカルパス上の作業である。」
- 誤り。D の総余裕は 10 日であり(ES=11, LS=21)、余裕が0の作業のみがクリティカルパス上にあると判定します。本問題のクリティカル経路は B →(ダミー)→ C → G → H(これらの作業は総余裕が0)です。従って D はクリティカルではありません。
-
ウ: 「作業Eの総余裕時間は30日である。」
- 正しい。上記の順算・逆算により ES_E=11, LS_E=41 となり、総余裕は 30 日です。
-
エ: 「作業Fを最も遅く開始できるのは11日目である。」
- 誤り。F の ES は 11 日ですが、最遅開始(LS)は 41 日で、最遅で開始できる日は 41 日目となります。11日目は最早開始日です。
よくある誤解
- ダミー作業を無視すると誤る:ダミーは期間0でもノードの依存関係を作るため、合流ノードの最早時刻を決める要因になり得ます(本問ではこれがC/Eの開始時刻に影響)。
- EF/LS の定義混同:EF = ES + 所要日数(ここでの扱い)とするか EF = ES + 所要日数 - 1 とするかの違いで数値がずれるため、解法中は一貫した扱いを必ず明示すること(本解説は EF = ES + 所要日数 の表式を採用)。
- ノードの最早時刻は「incoming の最大」・最遅時刻は「outgoing の最小」である点を忘れると、誤った ES/LS を出す。
補足コラム
- クリティカルパスの同定法:各作業の総余裕が0である作業群をつないでいき、開始ノードから終了ノードまで連続する経路を見つけると、プロジェクト全体のクリティカルパスが得られます。必ずダミーや並列分岐を考慮してノード時刻(イベント時刻)を求めてください。
- 総余裕(Total Float)と自由余裕(Free Float)の違い:
- 総余裕 = LS - ES(または LF - EF)。作業全体が遅れてもプロジェクトの終了に影響が出ない最大遅延日数。
- 自由余裕 = 次のイベントの最早時刻 - EF。直後の作業に影響を与えずに遅らせられる日数。
FAQ
Q1: ダミー作業の余裕はどう扱うべきですか?
A1: ダミーは所要日数0で計算に入れます。順算では incoming の EF を伝搬し、逆算では successor の LF を伝搬します。ダミーもノード時刻を拘束するため余裕の計算に影響します。
A1: ダミーは所要日数0で計算に入れます。順算では incoming の EF を伝搬し、逆算では successor の LF を伝搬します。ダミーもノード時刻を拘束するため余裕の計算に影響します。
Q2: クリティカルパスに含まれる活動は必ず「最長経路」の活動ですか?
A2: はい。クリティカルパスはプロジェクト全体の最短完了時間(=最長経路の合計所要日数)を決める経路で、その経路上の作業は総余裕が0になります。ただし、ダミー等により最長経路の先頭が直接開始ノードから始まらない場合(本問のようにB経路が制約を導入するケース)もあり得ます。
A2: はい。クリティカルパスはプロジェクト全体の最短完了時間(=最長経路の合計所要日数)を決める経路で、その経路上の作業は総余裕が0になります。ただし、ダミー等により最長経路の先頭が直接開始ノードから始まらない場合(本問のようにB経路が制約を導入するケース)もあり得ます。
Q3: ES/EF の式を変えると結果はどう変わりますか?
A3: 「EF = ES + 所要日数」か「EF = ES + 所要日数 - 1」を使うかで数値は1日単位でずれますが、総余裕やクリティカル判定(差分)は方法を一貫して扱えば同じ結論になります。本解説は前者の式を採用しています。
A3: 「EF = ES + 所要日数」か「EF = ES + 所要日数 - 1」を使うかで数値は1日単位でずれますが、総余裕やクリティカル判定(差分)は方法を一貫して扱えば同じ結論になります。本解説は前者の式を採用しています。
関連キーワード: アローダイアグラム、クリティカルパス、順算・逆算、ES/LS、総余裕、ダミー作業、前向き計算、後向き計算

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

