<p><!--
{
"title": "IPA午前Ⅱ:アローダイアグラムによるクリティカルパスの計算解説",
"primary_category": "プロジェクトマネジメント",
"secondary_categories": ["スケジュール管理", "PMBOK"],
"tags": ["IPA午前Ⅱ", "クリティカルパス", "アローダイアグラム", "プロジェクト管理", "CPM", "スケジュール"],
"summary": "IPA午前Ⅱ試験で出題されるクリティカルパスの概念と、アローダイアグラムを用いた具体的な計算方法を解説します。プロジェクトの最短期間を特定し、重要な作業経路を理解するための計算手順を詳細に説明します。",
"mermaid": "graph TD\n subgraph プロジェクトの作業フロー\n S[プロジェクト開始] -->|先行なし| A[作業A: 3日]\n S –>|先行なし| B[作業B: 4日]\n A –>|作業A完了後| C[作業C: 5日]\n B –>|作業B完了後| D[作業D: 2日]\n C –>|作業C完了後| D\n D –>|作業D完了後| E[作業E: 3日]\n E –>|作業E完了後| F[プロジェクト終了]\n end”,
“verify_level”: “draft”,
“tweet_hint”: “IPA午前Ⅱ対策!クリティカルパスの計算方法をアローダイアグラムで徹底解説。プロジェクトの最長経路を見つける手順を理解しよう。 #IPA午前II #プロジェクトマネジメント #クリティカルパス”,
“link_hints”: [
{“text”: “PMBOKガイド”, “url”: “https://www.pmi.org/pmbok-guide”}
]
}
–>
本記事は<strong>Geminiの出力をプロンプト工学で整理した業務ドラフト(未検証)</strong>です。</p>
<h1 class="wp-block-heading">IPA午前Ⅱ:アローダイアグラムによるクリティカルパスの計算解説</h1>
<p>プロジェクトの最短期間を特定するクリティカルパスは、アローダイアグラム上の最長経路であり、余裕時間がゼロの作業経路として計算される。</p>
<h2 class="wp-block-heading">背景</h2>
<p>プロジェクト管理において、スケジュールは最も重要な要素の一つである。特に大規模かつ複雑なプロジェクトでは、多数の作業が相互に関連し、それぞれの所要日数も異なるため、プロジェクト全体の完了時期を正確に見積もり、遅延のリスクを管理することが不可欠となる。このような状況で用いられるのが、クリティカルパス法 (CPM: Critical Path Method) である。</p>
<p>クリティカルパス法は、プロジェクトの全作業とそれらの依存関係をアローダイアグラム(またはネットワーク図)で視覚化し、各作業の最早開始・完了時刻、最遅開始・完了時刻、および余裕時間を算出することで、プロジェクトの最短完了期間を特定する手法である[1]。これにより、プロジェクトマネージャーは、どの作業が遅延するとプロジェクト全体に影響を与えるか(クリティカルな作業)、どの作業にはスケジュール上の余裕があるか(非クリティカルな作業)を明確に把握できる。</p>
<h2 class="wp-block-heading">問題点</h2>
<p>プロジェクトの進行中に予期せぬ問題が発生したり、特定作業の遅延が生じたりすることは少なくない。このような事態が発生した際に、プロジェクト全体の納期に影響を与えることなく対応するためには、あらかじめスケジュールのどこに余裕があり、どこに余裕がないのかを把握しておく必要がある。また、リソース配分や進捗管理の優先順位を決定する上でも、プロジェクト全体のボトルネックとなる作業経路を特定することが求められる[2]。</p>
<p>この課題に対し、アローダイアグラムとクリティカルパス法は、以下の情報を提供する。</p>
<ul class="wp-block-list">
<li><p><strong>プロジェクトの最短完了期間</strong>: すべての作業が順調に完了した場合の最短納期。</p></li>
<li><p><strong>クリティカルな作業</strong>: わずかでも遅れるとプロジェクト全体の遅延につながる作業。</p></li>
<li><p><strong>余裕のある作業</strong>: ある程度の遅延が許容される作業。</p></li>
</ul>
<p>これらの情報を得ることで、プロジェクトマネージャーは効果的なリスク管理、リソース最適化、および進捗監視を行うことが可能となる。</p>
<h2 class="wp-block-heading">クリティカルパスの計算方法</h2>
<p>クリティカルパスを特定するためには、アローダイアグラムを用いて各作業の最早開始・完了時刻、最遅開始・完了時刻、そして余裕時間を計算する。</p>
<h3 class="wp-block-heading">1. アローダイアグラムの作成</h3>
<p>まず、プロジェクトの全作業、それぞれの所要日数、および作業間の先行関係(依存関係)を明確にし、ネットワーク図として表現する。アローダイアグラムでは、作業をノード(箱)で表し、依存関係を矢印で結ぶ「アクティビティ・オン・ノード (AON)」形式が一般的である。</p>
<p>以下の例を用いて解説する。</p>
<div class="wp-block-merpress-mermaidjs diagram-source-mermaid"><pre class="mermaid">
graph TD
subgraph プロジェクトの作業フロー
S["プロジェクト開始"] -->|先行なし| A["作業A: 3日"]
S -->|先行なし| B["作業B: 4日"]
A -->|作業A完了後| C["作業C: 5日"]
B -->|作業B完了後| D["作業D: 2日"]
C -->|作業C完了後| D
D -->|作業D完了後| E["作業E: 3日"]
E -->|作業E完了後| F["プロジェクト終了"]
end
</pre></div>
<h3 class="wp-block-heading">2. 主要な計算値の定義</h3>
<p>各作業に対して、以下の4つの時間を算出する。</p>
<ul class="wp-block-list">
<li><p><strong>最早開始時刻 (ES: Early Start)</strong>: その作業を開始できる最も早い時刻。先行作業の最早完了時刻の最大値に等しい。</p></li>
<li><p><strong>最早完了時刻 (EF: Early Finish)</strong>: その作業が完了できる最も早い時刻。<code>ES + 所要日数</code> で計算される。</p></li>
<li><p><strong>最遅完了時刻 (LF: Late Finish)</strong>: プロジェクト全体を遅らせずに、その作業を完了できる最も遅い時刻。後続作業の最遅開始時刻の最小値に等しい。</p></li>
<li><p><strong>最遅開始時刻 (LS: Late Start)</strong>: プロジェクト全体を遅らせずに、その作業を開始できる最も遅い時刻。<code>LF - 所要日数</code> で計算される。</p></li>
</ul>
<p>これらの値を用いて、各作業の余裕時間を算出する。</p>
<ul class="wp-block-list">
<li><strong>トータルフロート (TF: Total Float)</strong>: その作業を遅らせても、プロジェクト全体の完了時期に影響を与えない最大の時間。<code>LS - ES</code> または <code>LF - EF</code> で計算される[3]。</li>
</ul>
<h3 class="wp-block-heading">3. 計算手順</h3>
<h4 class="wp-block-heading">(1) 前方計算(フォワードパス):ESとEFの算出</h4>
<p>プロジェクト開始点から順に、各作業のESとEFを計算する。</p>
<ul class="wp-block-list">
<li><p>最初の作業(先行作業がない作業)のESは0とする。</p></li>
<li><p>ある作業のESは、その先行作業すべてのEFの中で最も遅い時刻とする。</p></li>
<li><p>EFは <code>ES + 所要日数</code> で計算する。</p></li>
</ul>
<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>
<th style="text-align:left;">ES (最早開始)</th>
<th style="text-align:left;">EF (最早完了)</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>
<td style="text-align:left;">0</td>
<td style="text-align:left;">3 (0+3)</td>
</tr>
<tr>
<td style="text-align:left;">B</td>
<td style="text-align:left;">4</td>
<td style="text-align:left;">–</td>
<td style="text-align:left;">0</td>
<td style="text-align:left;">4 (0+4)</td>
</tr>
<tr>
<td style="text-align:left;">C</td>
<td style="text-align:left;">5</td>
<td style="text-align:left;">A</td>
<td style="text-align:left;">3 (AのEF)</td>
<td style="text-align:left;">8 (3+5)</td>
</tr>
<tr>
<td style="text-align:left;">D</td>
<td style="text-align:left;">2</td>
<td style="text-align:left;">B, C</td>
<td style="text-align:left;">8 (BのEF:4, CのEF:8 の最大値)</td>
<td style="text-align:left;">10 (8+2)</td>
</tr>
<tr>
<td style="text-align:left;">E</td>
<td style="text-align:left;">3</td>
<td style="text-align:left;">D</td>
<td style="text-align:left;">10 (DのEF)</td>
<td style="text-align:left;">13 (10+3)</td>
</tr>
</tbody>
</table></figure>
<p>プロジェクトの最短完了期間は、最終作業(この例ではE)のEFである13日となる。</p>
<h4 class="wp-block-heading">(2) 後方計算(バックワードパス):LFとLSの算出</h4>
<p>プロジェクトの最終完了時刻から逆算して、各作業のLFとLSを計算する。</p>
<ul class="wp-block-list">
<li><p>最終作業(プロジェクトの完了点)のLFは、前方計算で求めたプロジェクトの最短完了期間(この例では13日)とする。</p></li>
<li><p>ある作業のLFは、その後続作業すべてのLSの中で最も早い時刻とする。</p></li>
<li><p>LSは <code>LF - 所要日数</code> で計算する。</p></li>
</ul>
<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>
<th style="text-align:left;">LF (最遅完了)</th>
<th style="text-align:left;">LS (最遅開始)</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align:left;">E</td>
<td style="text-align:left;">3</td>
<td style="text-align:left;">–</td>
<td style="text-align:left;">13</td>
<td style="text-align:left;">10 (13-3)</td>
</tr>
<tr>
<td style="text-align:left;">D</td>
<td style="text-align:left;">2</td>
<td style="text-align:left;">E</td>
<td style="text-align:left;">10 (EのLS)</td>
<td style="text-align:left;">8 (10-2)</td>
</tr>
<tr>
<td style="text-align:left;">C</td>
<td style="text-align:left;">5</td>
<td style="text-align:left;">D</td>
<td style="text-align:left;">8 (DのLS)</td>
<td style="text-align:left;">3 (8-5)</td>
</tr>
<tr>
<td style="text-align:left;">B</td>
<td style="text-align:left;">4</td>
<td style="text-align:left;">D</td>
<td style="text-align:left;">8 (DのLS)</td>
<td style="text-align:left;">4 (8-4)</td>
</tr>
<tr>
<td style="text-align:left;">A</td>
<td style="text-align:left;">3</td>
<td style="text-align:left;">C</td>
<td style="text-align:left;">3 (CのLS)</td>
<td style="text-align:left;">0 (3-3)</td>
</tr>
</tbody>
</table></figure>
<h4 class="wp-block-heading">(3) フロート(余裕時間)の計算とクリティカルパスの特定</h4>
<p>ES, EF, LS, LFを用いて各作業のトータルフロート(TF)を計算する。</p>
<ul class="wp-block-list">
<li><p>TFがゼロとなる作業が、クリティカルな作業である。</p></li>
<li><p>クリティカルな作業のみで構成される経路が、クリティカルパスである。</p></li>
</ul>
<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;">ES</th>
<th style="text-align:left;">EF</th>
<th style="text-align:left;">LS</th>
<th style="text-align:left;">LF</th>
<th style="text-align:left;">TF (LS-ES または LF-EF)</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;">0</td>
<td style="text-align:left;">3</td>
<td style="text-align:left;">0</td>
<td style="text-align:left;">3</td>
<td style="text-align:left;">0</td>
<td style="text-align:left;"><strong>○</strong></td>
</tr>
<tr>
<td style="text-align:left;">B</td>
<td style="text-align:left;">4</td>
<td style="text-align:left;">0</td>
<td style="text-align:left;">4</td>
<td style="text-align:left;">4</td>
<td style="text-align:left;">8</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;">5</td>
<td style="text-align:left;">3</td>
<td style="text-align:left;">8</td>
<td style="text-align:left;">3</td>
<td style="text-align:left;">8</td>
<td style="text-align:left;">0</td>
<td style="text-align:left;"><strong>○</strong></td>
</tr>
<tr>
<td style="text-align:left;">D</td>
<td style="text-align:left;">2</td>
<td style="text-align:left;">8</td>
<td style="text-align:left;">10</td>
<td style="text-align:left;">8</td>
<td style="text-align:left;">10</td>
<td style="text-align:left;">0</td>
<td style="text-align:left;"><strong>○</strong></td>
</tr>
<tr>
<td style="text-align:left;">E</td>
<td style="text-align:left;">3</td>
<td style="text-align:left;">10</td>
<td style="text-align:left;">13</td>
<td style="text-align:left;">10</td>
<td style="text-align:left;">13</td>
<td style="text-align:left;">0</td>
<td style="text-align:left;"><strong>○</strong></td>
</tr>
</tbody>
</table></figure>
<p>この表から、作業A、C、D、Eのトータルフロートがゼロであることがわかる。したがって、これらの作業で構成される経路 <code>S → A → C → D → E → F</code> がこのプロジェクトのクリティカルパスとなる。この経路の所要日数は <code>3 + 5 + 2 + 3 = 13日</code> であり、これがプロジェクトの最短完了期間となる。</p>
<h2 class="wp-block-heading">要点</h2>
<ul class="wp-block-list">
<li><p>クリティカルパス法は、プロジェクトのスケジュールを管理するための重要な手法である。</p></li>
<li><p>クリティカルパスは、アローダイアグラム上の<strong>最も所要日数が長く、余裕時間(トータルフロート)がゼロ</strong>となる経路である。</p></li>
<li><p>この経路上の作業が一つでも遅れると、<strong>プロジェクト全体の完了時期が遅延</strong>する。</p></li>
<li><p>クリティカルパスを特定するためには、<strong>前方計算(ES, EF)</strong>と<strong>後方計算(LS, LF)</strong>を行い、その後<strong>トータルフロート</strong>を算出する。</p></li>
<li><p>プロジェクトマネージャーは、クリティカルパス上の作業に特に注意を払い、進捗を厳密に管理する必要がある。</p></li>
</ul>
<hr/>
<p>参照:
[1] Project Management Institute. (2021年8月1日). <em>PMBOK® Guide – Seventh Edition</em>. Project Management Institute.
[2] 情報処理推進機構. (2023年4月1日). <em>情報処理用語データベース</em>. IPA.
[3] Project Solutions Inc. (2024年3月15日). <em>クリティカルパス法徹底解説:計算手順と例</em>. (仮の参照元)</p>
|先行なし| A[作業A: 3日]\n S –>|先行なし| B[作業B: 4日]\n A –>|作業A完了後| C[作業C: 5日]\n B –>|作業B完了後| D[作業D: 2日]\n C –>|作業C完了後| D\n D –>|作業D完了後| E[作業E: 3日]\n E –>|作業E完了後| F[プロジェクト終了]\n end”,
“verify_level”: “draft”,
“tweet_hint”: “IPA午前Ⅱ対策!クリティカルパスの計算方法をアローダイアグラムで徹底解説。プロジェクトの最長経路を見つける手順を理解しよう。 #IPA午前II #プロジェクトマネジメント #クリティカルパス”,
“link_hints”: [
{“text”: “PMBOKガイド”, “url”: “https://www.pmi.org/pmbok-guide”}
]
}
–>
本記事はGeminiの出力をプロンプト工学で整理した業務ドラフト(未検証) です。
IPA午前Ⅱ:アローダイアグラムによるクリティカルパスの計算解説
プロジェクトの最短期間を特定するクリティカルパスは、アローダイアグラム上の最長経路であり、余裕時間がゼロの作業経路として計算される。
背景
プロジェクト管理において、スケジュールは最も重要な要素の一つである。特に大規模かつ複雑なプロジェクトでは、多数の作業が相互に関連し、それぞれの所要日数も異なるため、プロジェクト全体の完了時期を正確に見積もり、遅延のリスクを管理することが不可欠となる。このような状況で用いられるのが、クリティカルパス法 (CPM: Critical Path Method) である。
クリティカルパス法は、プロジェクトの全作業とそれらの依存関係をアローダイアグラム(またはネットワーク図)で視覚化し、各作業の最早開始・完了時刻、最遅開始・完了時刻、および余裕時間を算出することで、プロジェクトの最短完了期間を特定する手法である[1]。これにより、プロジェクトマネージャーは、どの作業が遅延するとプロジェクト全体に影響を与えるか(クリティカルな作業)、どの作業にはスケジュール上の余裕があるか(非クリティカルな作業)を明確に把握できる。
問題点
プロジェクトの進行中に予期せぬ問題が発生したり、特定作業の遅延が生じたりすることは少なくない。このような事態が発生した際に、プロジェクト全体の納期に影響を与えることなく対応するためには、あらかじめスケジュールのどこに余裕があり、どこに余裕がないのかを把握しておく必要がある。また、リソース配分や進捗管理の優先順位を決定する上でも、プロジェクト全体のボトルネックとなる作業経路を特定することが求められる[2]。
この課題に対し、アローダイアグラムとクリティカルパス法は、以下の情報を提供する。
プロジェクトの最短完了期間 : すべての作業が順調に完了した場合の最短納期。
クリティカルな作業 : わずかでも遅れるとプロジェクト全体の遅延につながる作業。
余裕のある作業 : ある程度の遅延が許容される作業。
これらの情報を得ることで、プロジェクトマネージャーは効果的なリスク管理、リソース最適化、および進捗監視を行うことが可能となる。
クリティカルパスの計算方法
クリティカルパスを特定するためには、アローダイアグラムを用いて各作業の最早開始・完了時刻、最遅開始・完了時刻、そして余裕時間を計算する。
1. アローダイアグラムの作成
まず、プロジェクトの全作業、それぞれの所要日数、および作業間の先行関係(依存関係)を明確にし、ネットワーク図として表現する。アローダイアグラムでは、作業をノード(箱)で表し、依存関係を矢印で結ぶ「アクティビティ・オン・ノード (AON)」形式が一般的である。
以下の例を用いて解説する。
graph TD
subgraph プロジェクトの作業フロー
S["プロジェクト開始"] -->|先行なし| A["作業A: 3日"]
S -->|先行なし| B["作業B: 4日"]
A -->|作業A完了後| C["作業C: 5日"]
B -->|作業B完了後| D["作業D: 2日"]
C -->|作業C完了後| D
D -->|作業D完了後| E["作業E: 3日"]
E -->|作業E完了後| F["プロジェクト終了"]
end
2. 主要な計算値の定義
各作業に対して、以下の4つの時間を算出する。
最早開始時刻 (ES: Early Start) : その作業を開始できる最も早い時刻。先行作業の最早完了時刻の最大値に等しい。
最早完了時刻 (EF: Early Finish) : その作業が完了できる最も早い時刻。ES + 所要日数 で計算される。
最遅完了時刻 (LF: Late Finish) : プロジェクト全体を遅らせずに、その作業を完了できる最も遅い時刻。後続作業の最遅開始時刻の最小値に等しい。
最遅開始時刻 (LS: Late Start) : プロジェクト全体を遅らせずに、その作業を開始できる最も遅い時刻。LF - 所要日数 で計算される。
これらの値を用いて、各作業の余裕時間を算出する。
トータルフロート (TF: Total Float) : その作業を遅らせても、プロジェクト全体の完了時期に影響を与えない最大の時間。LS - ES または LF - EF で計算される[3]。
3. 計算手順
(1) 前方計算(フォワードパス):ESとEFの算出
プロジェクト開始点から順に、各作業のESとEFを計算する。
作業
所要日数
先行作業
ES (最早開始)
EF (最早完了)
A
3
–
0
3 (0+3)
B
4
–
0
4 (0+4)
C
5
A
3 (AのEF)
8 (3+5)
D
2
B, C
8 (BのEF:4, CのEF:8 の最大値)
10 (8+2)
E
3
D
10 (DのEF)
13 (10+3)
プロジェクトの最短完了期間は、最終作業(この例ではE)のEFである13日となる。
(2) 後方計算(バックワードパス):LFとLSの算出
プロジェクトの最終完了時刻から逆算して、各作業のLFとLSを計算する。
作業
所要日数
後続作業
LF (最遅完了)
LS (最遅開始)
E
3
–
13
10 (13-3)
D
2
E
10 (EのLS)
8 (10-2)
C
5
D
8 (DのLS)
3 (8-5)
B
4
D
8 (DのLS)
4 (8-4)
A
3
C
3 (CのLS)
0 (3-3)
(3) フロート(余裕時間)の計算とクリティカルパスの特定
ES, EF, LS, LFを用いて各作業のトータルフロート(TF)を計算する。
作業
所要日数
ES
EF
LS
LF
TF (LS-ES または LF-EF)
クリティカルパス
A
3
0
3
0
3
0
○
B
4
0
4
4
8
4
C
5
3
8
3
8
0
○
D
2
8
10
8
10
0
○
E
3
10
13
10
13
0
○
この表から、作業A、C、D、Eのトータルフロートがゼロであることがわかる。したがって、これらの作業で構成される経路 S → A → C → D → E → F がこのプロジェクトのクリティカルパスとなる。この経路の所要日数は 3 + 5 + 2 + 3 = 13日 であり、これがプロジェクトの最短完了期間となる。
要点
クリティカルパス法は、プロジェクトのスケジュールを管理するための重要な手法である。
クリティカルパスは、アローダイアグラム上の最も所要日数が長く、余裕時間(トータルフロート)がゼロ となる経路である。
この経路上の作業が一つでも遅れると、プロジェクト全体の完了時期が遅延 する。
クリティカルパスを特定するためには、前方計算(ES, EF) と後方計算(LS, LF) を行い、その後トータルフロート を算出する。
プロジェクトマネージャーは、クリティカルパス上の作業に特に注意を払い、進捗を厳密に管理する必要がある。
参照:
[1] Project Management Institute. (2021年8月1日). PMBOK® Guide – Seventh Edition . Project Management Institute.
[2] 情報処理推進機構. (2023年4月1日). 情報処理用語データベース . IPA.
[3] Project Solutions Inc. (2024年3月15日). クリティカルパス法徹底解説:計算手順と例 . (仮の参照元)
コメント