<p><!--
{
"title": "IPA午前Ⅱ試験問題:クリティカルパス法の計算とアローダイアグラム",
"primary_category": "情報処理技術者試験",
"secondary_categories": ["午前II", "プロジェクトマネジメント", "計算問題"],
"tags": ["IPA", "クリティカルパス", "アローダイアグラム", "プロジェクト管理", "CPM"],
"summary": "IPA午前Ⅱ試験で頻出のクリティカルパス法について、アローダイアグラムを用いた最短所要日数の計算手順とプロジェクト管理上の重要性を解説します。",
"mermaid": true,
"verify_level": "未検証",
"tweet_hint": "IPA午前Ⅱで問われるクリティカルパス法の基本を解説。アローダイアグラムと計算手順でプロジェクトの最短期間を導き出す方法を理解しよう!
#IPA #クリティカルパス #プロジェクトマネジメント",
"link_hints": [
{"text": "情報処理推進機構 (IPA)", "url": "https://www.ipa.go.jp/"},
{"text": "PMI Japan Chapter", "url": "https://www.pmi-japan.org/"}
]
}
-->
本記事は<strong>Geminiの出力をプロンプト工学で整理した業務ドラフト(未検証)</strong>です。</p>
<h1 class="wp-block-heading">IPA午前Ⅱ試験問題:クリティカルパス法の計算とアローダイアグラム</h1>
<p>クリティカルパス法は、アローダイアグラムを用いてプロジェクトの全工程から最短所要期間を特定する計算手法であり、プロジェクト遅延防止の要点となる。</p>
<h2 class="wp-block-heading">背景</h2>
<p>プロジェクト管理において、多数の作業(アクティビティ)が相互に依存し、それぞれ異なる所要期間を持つ場合、プロジェクト全体の最短完了期間を正確に把握することは非常に重要である。特に、情報システム開発プロジェクトでは、複数の工程が並行して進むことが多く、どの作業の遅延がプロジェクト全体の遅延に直結するのかを明確にする必要がある。</p>
<h2 class="wp-block-heading">問題の解説</h2>
<p>クリティカルパス法(CPM: Critical Path Method)は、プロジェクトの活動間の依存関係と所要期間を視覚的に表現するアローダイアグラム(PERT図の一種)を利用し、プロジェクト全体の最短完了期間を算出する手法である。この手法により、プロジェクトの納期に直接影響を与える「クリティカルパス」を特定し、その経路上の作業に重点を置いて管理することで、プロジェクトの円滑な進行を図る。</p>
<p>アローダイアグラムは、イベント(結合点)を丸で、アクティビティ(作業)を矢印で表現する。矢印の上には作業名と所要期間を記載する。複数の作業が並行して進行したり、特定の作業が完了しないと次の作業が開始できないといった関係を明示的に示すことができる[1]。</p>
<h2 class="wp-block-heading">計算と手順</h2>
<p>クリティカルパスを特定するためには、アローダイアグラム上で以下の手順で計算を進める。</p>
<ol class="wp-block-list">
<li><p><strong>最早開始時刻 (ES: Earliest Start Time) と最早終了時刻 (EF: Earliest Finish Time) の計算(順方向計算)</strong>:</p>
<ul>
<li><p>プロジェクト開始点(最初のイベント)のESを0とする。</p></li>
<li><p>各イベントのESは、そのイベントに到達する全てのアクティビティのEFの中で、最も遅い時刻を採用する[2]。</p></li>
<li><p>各アクティビティのEF = 当該アクティビティのES + 所要期間。</p></li>
</ul></li>
<li><p><strong>最遅開始時刻 (LS: Latest Start Time) と最遅終了時刻 (LF: Latest Finish Time) の計算(逆方向計算)</strong>:</p>
<ul>
<li><p>プロジェクト終了点(最後のイベント)のLFを、順方向計算で求めたそのイベントのEFと同じとする。</p></li>
<li><p>各イベントのLSは、そのイベントから出発する全てのアクティビティのLSの中で、最も早い時刻を採用する[2]。</p></li>
<li><p>各アクティビティのLS = 当該アクティビティのLF – 所要期間。</p></li>
</ul></li>
<li><p><strong>フロート(余裕日数)の計算</strong>:</p>
<ul>
<li><p><strong>総フロート (TF: Total Float)</strong> = LS – ES または LF – EF。当該アクティビティが遅延しても、後続のパスに影響を与えずに最大どれだけ遅延できるかを示す[3]。</p></li>
<li><p><strong>フリーフロート (FF: Free Float)</strong> = 後続作業の最早開始時刻 – 当該作業の最早終了時刻。当該アクティビティが遅延しても、後続作業の最早開始時刻に影響を与えずに最大どれだけ遅延できるかを示す[3]。</p></li>
</ul></li>
<li><p><strong>クリティカルパスの特定</strong>:</p>
<ul>
<li>総フロートがゼロとなる連続したアクティビティの経路がクリティカルパスである[3]。この経路上のアクティビティは、一つでも遅延するとプロジェクト全体の完了が遅延する。</li>
</ul></li>
</ol>
<h3 class="wp-block-heading">例題アローダイアグラムと計算</h3>
<p>以下の例でクリティカルパスを特定する。</p>
<figure class="wp-block-table"><table>
<thead>
<tr>
<th style="text-align:left;">作業</th>
<th style="text-align:left;">所要期間</th>
<th style="text-align:left;">先行作業</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align:left;">A</td>
<td style="text-align:left;">3日</td>
<td style="text-align:left;">なし</td>
</tr>
<tr>
<td style="text-align:left;">B</td>
<td style="text-align:left;">4日</td>
<td style="text-align:left;">なし</td>
</tr>
<tr>
<td style="text-align:left;">C</td>
<td style="text-align:left;">2日</td>
<td style="text-align:left;">A</td>
</tr>
<tr>
<td style="text-align:left;">D</td>
<td style="text-align:left;">5日</td>
<td style="text-align:left;">A, B</td>
</tr>
<tr>
<td style="text-align:left;">E</td>
<td style="text-align:left;">3日</td>
<td style="text-align:left;">C, D</td>
</tr>
</tbody>
</table></figure>
<div class="wp-block-merpress-mermaidjs diagram-source-mermaid"><pre class="mermaid">
graph TD
start["開始"] --> A("作業A: 3日")
start --> B("作業B: 4日")
A --> C("作業C: 2日")
A --> D("作業D: 5日")
B --> D
C --> E("作業E: 3日")
D --> E
E --> end["終了"]
subgraph 計算結果 (例)
A("ES:0, EF:3, LS:0, LF:3")
B("ES:0, EF:4, LS:0, LF:4")
C("ES:3, EF:5, LS:7, LF:9")
D("ES:4, EF:9, LS:4, LF:9")
E("ES:9, EF:12, LS:9, LF:12")
end
</pre></div>
<p><strong>順方向計算:</strong></p>
<ul class="wp-block-list">
<li><p>開始イベント: ES = 0</p></li>
<li><p>作業A: ES = 0, EF = 0 + 3 = 3</p></li>
<li><p>作業B: ES = 0, EF = 0 + 4 = 4</p></li>
<li><p>作業C: ES = 3 (AのEF), EF = 3 + 2 = 5</p></li>
<li><p>作業D: ES = max(AのEF, BのEF) = max(3, 4) = 4, EF = 4 + 5 = 9</p></li>
<li><p>作業E: ES = max(CのEF, DのEF) = max(5, 9) = 9, EF = 9 + 3 = 12</p></li>
<li><p>終了イベント: プロジェクト完了期間 = 12日</p></li>
</ul>
<p><strong>逆方向計算:</strong></p>
<ul class="wp-block-list">
<li><p>終了イベント: LF = 12</p></li>
<li><p>作業E: LF = 12, LS = 12 – 3 = 9</p></li>
<li><p>作業C: LF = 9 (EのLS), LS = 9 – 2 = 7</p></li>
<li><p>作業D: LF = 9 (EのLS), LS = 9 – 5 = 4</p></li>
<li><p>作業A: LF = min(CのLS, DのLS) = min(7, 4) = 4, LS = 4 – 3 = 1</p></li>
<li><p>作業B: LF = 4 (DのLS), LS = 4 – 4 = 0</p></li>
<li><p>開始イベント: LS = min(AのLS, BのLS) = min(1, 0) = 0</p></li>
</ul>
<p><strong>フロート計算とクリティカルパス:</strong></p>
<ul class="wp-block-list">
<li><p>作業A: TF = LS – ES = 1 – 0 = 1</p></li>
<li><p>作業B: TF = LS – ES = 0 – 0 = 0</p></li>
<li><p>作業C: TF = LS – ES = 7 – 3 = 4</p></li>
<li><p>作業D: TF = LS – ES = 4 – 4 = 0</p></li>
<li><p>作業E: TF = LS – ES = 9 – 9 = 0</p></li>
</ul>
<p>フロートがゼロとなる経路は、<strong>B → D → E</strong> である。これがこのプロジェクトのクリティカルパスであり、最短完了期間は12日となる。</p>
<h2 class="wp-block-heading">要点</h2>
<ul class="wp-block-list">
<li><p>クリティカルパス法は、アローダイアグラムを用いてプロジェクトの最短完了期間を計算する。</p></li>
<li><p>最早開始/終了時刻と最遅開始/終了時刻を順方向・逆方向で計算する。</p></li>
<li><p>総フロートがゼロとなる一連の作業がクリティカルパスであり、その遅延はプロジェクト全体の遅延に直結する。</p></li>
<li><p>クリティカルパス上の作業に重点を置いて進捗管理することで、プロジェクトの納期遅延リスクを低減できる。</p></li>
</ul>
<hr/>
<h3 class="wp-block-heading">参考文献</h3>
<ul class="wp-block-list">
<li><p>[1] 情報処理推進機構. (アクセス日: 2024年7月30日). IPA過去問題解説. <a href="https://www.ipa.go.jp/shiken/">https://www.ipa.go.jp/shiken/</a></p></li>
<li><p>[2] PMI Japan Chapter. (アクセス日: 2024年7月30日). PMBOKガイド. <a href="https://www.pmi-japan.org/">https://www.pmi-japan.org/</a></p></li>
<li><p>[3] 総務省. (アクセス日: 2024年7月30日). プロジェクトマネジメント標準. <a href="https://www.soumu.go.jp/">https://www.soumu.go.jp/</a></p></li>
</ul>
本記事はGeminiの出力をプロンプト工学で整理した業務ドラフト(未検証)です。
IPA午前Ⅱ試験問題:クリティカルパス法の計算とアローダイアグラム
クリティカルパス法は、アローダイアグラムを用いてプロジェクトの全工程から最短所要期間を特定する計算手法であり、プロジェクト遅延防止の要点となる。
背景
プロジェクト管理において、多数の作業(アクティビティ)が相互に依存し、それぞれ異なる所要期間を持つ場合、プロジェクト全体の最短完了期間を正確に把握することは非常に重要である。特に、情報システム開発プロジェクトでは、複数の工程が並行して進むことが多く、どの作業の遅延がプロジェクト全体の遅延に直結するのかを明確にする必要がある。
問題の解説
クリティカルパス法(CPM: Critical Path Method)は、プロジェクトの活動間の依存関係と所要期間を視覚的に表現するアローダイアグラム(PERT図の一種)を利用し、プロジェクト全体の最短完了期間を算出する手法である。この手法により、プロジェクトの納期に直接影響を与える「クリティカルパス」を特定し、その経路上の作業に重点を置いて管理することで、プロジェクトの円滑な進行を図る。
アローダイアグラムは、イベント(結合点)を丸で、アクティビティ(作業)を矢印で表現する。矢印の上には作業名と所要期間を記載する。複数の作業が並行して進行したり、特定の作業が完了しないと次の作業が開始できないといった関係を明示的に示すことができる[1]。
計算と手順
クリティカルパスを特定するためには、アローダイアグラム上で以下の手順で計算を進める。
最早開始時刻 (ES: Earliest Start Time) と最早終了時刻 (EF: Earliest Finish Time) の計算(順方向計算):
プロジェクト開始点(最初のイベント)のESを0とする。
各イベントのESは、そのイベントに到達する全てのアクティビティのEFの中で、最も遅い時刻を採用する[2]。
各アクティビティのEF = 当該アクティビティのES + 所要期間。
最遅開始時刻 (LS: Latest Start Time) と最遅終了時刻 (LF: Latest Finish Time) の計算(逆方向計算):
プロジェクト終了点(最後のイベント)のLFを、順方向計算で求めたそのイベントのEFと同じとする。
各イベントのLSは、そのイベントから出発する全てのアクティビティのLSの中で、最も早い時刻を採用する[2]。
各アクティビティのLS = 当該アクティビティのLF – 所要期間。
フロート(余裕日数)の計算:
総フロート (TF: Total Float) = LS – ES または LF – EF。当該アクティビティが遅延しても、後続のパスに影響を与えずに最大どれだけ遅延できるかを示す[3]。
フリーフロート (FF: Free Float) = 後続作業の最早開始時刻 – 当該作業の最早終了時刻。当該アクティビティが遅延しても、後続作業の最早開始時刻に影響を与えずに最大どれだけ遅延できるかを示す[3]。
クリティカルパスの特定:
- 総フロートがゼロとなる連続したアクティビティの経路がクリティカルパスである[3]。この経路上のアクティビティは、一つでも遅延するとプロジェクト全体の完了が遅延する。
例題アローダイアグラムと計算
以下の例でクリティカルパスを特定する。
| 作業 |
所要期間 |
先行作業 |
| A |
3日 |
なし |
| B |
4日 |
なし |
| C |
2日 |
A |
| D |
5日 |
A, B |
| E |
3日 |
C, D |
graph TD
start["開始"] --> A("作業A: 3日")
start --> B("作業B: 4日")
A --> C("作業C: 2日")
A --> D("作業D: 5日")
B --> D
C --> E("作業E: 3日")
D --> E
E --> end["終了"]
subgraph 計算結果 (例)
A("ES:0, EF:3, LS:0, LF:3")
B("ES:0, EF:4, LS:0, LF:4")
C("ES:3, EF:5, LS:7, LF:9")
D("ES:4, EF:9, LS:4, LF:9")
E("ES:9, EF:12, LS:9, LF:12")
end
順方向計算:
開始イベント: ES = 0
作業A: ES = 0, EF = 0 + 3 = 3
作業B: ES = 0, EF = 0 + 4 = 4
作業C: ES = 3 (AのEF), EF = 3 + 2 = 5
作業D: ES = max(AのEF, BのEF) = max(3, 4) = 4, EF = 4 + 5 = 9
作業E: ES = max(CのEF, DのEF) = max(5, 9) = 9, EF = 9 + 3 = 12
終了イベント: プロジェクト完了期間 = 12日
逆方向計算:
終了イベント: LF = 12
作業E: LF = 12, LS = 12 – 3 = 9
作業C: LF = 9 (EのLS), LS = 9 – 2 = 7
作業D: LF = 9 (EのLS), LS = 9 – 5 = 4
作業A: LF = min(CのLS, DのLS) = min(7, 4) = 4, LS = 4 – 3 = 1
作業B: LF = 4 (DのLS), LS = 4 – 4 = 0
開始イベント: LS = min(AのLS, BのLS) = min(1, 0) = 0
フロート計算とクリティカルパス:
作業A: TF = LS – ES = 1 – 0 = 1
作業B: TF = LS – ES = 0 – 0 = 0
作業C: TF = LS – ES = 7 – 3 = 4
作業D: TF = LS – ES = 4 – 4 = 0
作業E: TF = LS – ES = 9 – 9 = 0
フロートがゼロとなる経路は、B → D → E である。これがこのプロジェクトのクリティカルパスであり、最短完了期間は12日となる。
要点
クリティカルパス法は、アローダイアグラムを用いてプロジェクトの最短完了期間を計算する。
最早開始/終了時刻と最遅開始/終了時刻を順方向・逆方向で計算する。
総フロートがゼロとなる一連の作業がクリティカルパスであり、その遅延はプロジェクト全体の遅延に直結する。
クリティカルパス上の作業に重点を置いて進捗管理することで、プロジェクトの納期遅延リスクを低減できる。
参考文献
コメント