<div class="codehilite">
<pre data-enlighter-language="generic"><!--
{
"title": "IPA午前Ⅱ:クリティカルパス法の計算とプロジェクト期間",
"primary_category": "プロジェクトマネジメント",
"secondary_categories": ["スケジュール管理", "品質管理"],
"tags": ["クリティカルパス", "プロジェクト期間", "PERT", "CPM", "浮動時間", "最早開始時刻", "最早完了時刻", "最遅開始時刻", "最遅完了時刻", "IPA", "午前Ⅱ"],
"summary": "クリティカルパス法を用いて、プロジェクトの最短完了期間を特定し、各作業の余裕時間を計算する方法について解説します。",
"mermaid": "graph LR\n A[作業A: 期間3日] --> B(作業B)\n A --> C(作業C)\n B --> D(作業D)\n C --> D\n D --> E[作業E: 期間3日]",
"verify_level": "draft",
"tweet_hint": "IPA午前Ⅱ対策!クリティカルパス法でプロジェクト期間を最短化する方法を解説。各作業の余裕時間計算もポイント💡
#IPA #午前Ⅱ #クリティカルパス",
"link_hints": [
"クリティカルパスとは",
"PERT図",
"ガントチャート"
]
}
-->
</pre>
</div>
<p>本記事は<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>複数の作業が並行して進行し、複雑な依存関係を持つプロジェクトでは、どの作業が全体の期間に最も影響を与えるか、また、どの作業に遅延が発生しても全体のスケジュールに影響がないか(余裕時間があるか)を把握することが困難となる。これを明確にしないと、誤った作業に優先順位をつけたり、全体的な遅延を引き起こしたりするリスクがある。</p>
<h2 class="wp-block-heading">クリティカルパス法の計算と手順</h2>
<p>クリティカルパス法(CPM: Critical Path Method)は、プロジェクトの全作業を洗い出し、それらの前後関係(依存関係)と所要期間を基に、プロジェクト全体の最短完了期間と、各作業における余裕時間(フロート)を算出する手法である。フロートがゼロの作業を結んだ経路がクリティカルパスとなり、この経路上の作業が遅延すると、プロジェクト全体の完了期間も遅延する。</p>
<h3 class="wp-block-heading">1. 作業の定義と依存関係の把握</h3>
<p>プロジェクトを構成する全ての作業を特定し、それぞれの作業の所要期間と、どの作業が完了しないと開始できないか(先行作業)を明確にする。</p>
<h3 class="wp-block-heading">2. PERT図(アローダイアグラムまたはアクティビティ・オン・ノード)の作成</h3>
<p>作業と依存関係を視覚的に表現するため、PERT図(Program Evaluation and Review Technique図)を作成する。ここではアクティビティ・オン・ノード方式で図示する。</p>
<div class="wp-block-merpress-mermaidjs diagram-source-mermaid"><pre class="mermaid">
graph LR
subgraph プロジェクト作業
A("作業A: 期間3日")
B("作業B: 期間4日")
C("作業C: 期間5日")
D("作業D: 期間2日")
E("作業E: 期間3日")
end
A --> B
A --> C
B --> D
C --> D
D --> E
</pre></div>
<p><strong>図:プロジェクト作業の依存関係</strong></p>
<h3 class="wp-block-heading">3. 最早開始時刻(ES)と最早完了時刻(EF)の計算(順行計算)</h3>
<p>プロジェクト開始から順に、各作業が最も早く開始できる時刻(ES: Earliest Start)と、最も早く完了できる時刻(EF: Earliest Finish)を計算する。</p>
<ul class="wp-block-list">
<li><p><strong>ES</strong>: 先行作業のEFの最大値。先行作業がない場合はプロジェクト開始時刻(通常0)。</p></li>
<li><p><strong>EF</strong>: ES + 当該作業の所要期間。</p></li>
</ul>
<h3 class="wp-block-heading">4. 最遅開始時刻(LS)と最遅完了時刻(LF)の計算(逆行計算)</h3>
<p>プロジェクト完了から逆算して、各作業がプロジェクト全体の完了期間に影響を与えずに、最も遅く完了できる時刻(LF: Latest Finish)と、最も遅く開始できる時刻(LS: Latest Start)を計算する。</p>
<ul class="wp-block-list">
<li><p><strong>LF</strong>: 後続作業のLSの最小値。後続作業がない場合はプロジェクト全体のEF(プロジェクト完了時刻)。</p></li>
<li><p><strong>LS</strong>: LF – 当該作業の所要期間。</p></li>
</ul>
<h3 class="wp-block-heading">5. フロート(浮動時間)の計算とクリティカルパスの特定</h3>
<p>各作業のフロート(F: Float)を計算する。フロートは、その作業の開始または完了を遅らせても、プロジェクト全体の完了期間に影響を与えない許容時間である。</p>
<ul class="wp-block-list">
<li><strong>フロート (F)</strong> = LF – EF または LS – ES</li>
</ul>
<p>フロートがゼロの作業を結んだ経路が<strong>クリティカルパス</strong>である。クリティカルパス上の作業は、少しでも遅延するとプロジェクト全体の完了期間が遅延するため、重点的な管理が必要となる。</p>
<h3 class="wp-block-heading">計算例</h3>
<p>上記のPERT図を基に、各時刻とフロートを計算する。</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>
<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;">フロート (F)</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</td>
<td style="text-align:left;">0</td>
<td style="text-align:left;">3</td>
<td style="text-align:left;">0</td>
</tr>
<tr>
<td style="text-align:left;">B</td>
<td style="text-align:left;">4</td>
<td style="text-align:left;">A</td>
<td style="text-align:left;">3</td>
<td style="text-align:left;">7</td>
<td style="text-align:left;">4</td>
<td style="text-align:left;">8</td>
<td style="text-align:left;">1</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</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>
</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</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>
</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</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>
</tr>
</tbody>
</table></figure>
<ul class="wp-block-list">
<li><p><strong>順行計算 (ES, EF)</strong>:</p>
<ul>
<li><p>A: ES=0, EF=0+3=3</p></li>
<li><p>B: ES=EF(A)=3, EF=3+4=7</p></li>
<li><p>C: ES=EF(A)=3, EF=3+5=8</p></li>
<li><p>D: ES=max(EF(B), EF(C))=max(7,8)=8, EF=8+2=10</p></li>
<li><p>E: ES=EF(D)=10, EF=10+3=13</p></li>
<li><p>プロジェクト完了期間 = 13日</p></li>
</ul></li>
<li><p><strong>逆行計算 (LS, LF)</strong>:</p>
<ul>
<li><p>E: LF=13, LS=13-3=10</p></li>
<li><p>D: LF=LS(E)=10, LS=10-2=8</p></li>
<li><p>C: LF=LS(D)=8, LS=8-5=3</p></li>
<li><p>B: LF=LS(D)=8, LS=8-4=4</p></li>
<li><p>A: LF=min(LS(B), LS(C))=min(4,3)=3, LS=3-3=0</p></li>
</ul></li>
<li><p><strong>フロート</strong>:</p>
<ul>
<li><p>A: LF-EF = 3-3=0</p></li>
<li><p>B: LF-EF = 8-7=1</p></li>
<li><p>C: LF-EF = 8-8=0</p></li>
<li><p>D: LF-EF = 10-10=0</p></li>
<li><p>E: LF-EF = 13-13=0</p></li>
</ul></li>
</ul>
<p>この計算結果から、フロートが0の作業はA、C、D、Eである。
したがって、クリティカルパスは <strong>A → C → D → E</strong> であり、プロジェクトの最短完了期間は13日となる。</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>
<li><p>フロートのある作業は、ある程度の遅延が許容されるため、資源配分の柔軟性を持つ。</p></li>
</ul>
<!--
{
"title": "IPA午前Ⅱ:クリティカルパス法の計算とプロジェクト期間",
"primary_category": "プロジェクトマネジメント",
"secondary_categories": ["スケジュール管理", "品質管理"],
"tags": ["クリティカルパス", "プロジェクト期間", "PERT", "CPM", "浮動時間", "最早開始時刻", "最早完了時刻", "最遅開始時刻", "最遅完了時刻", "IPA", "午前Ⅱ"],
"summary": "クリティカルパス法を用いて、プロジェクトの最短完了期間を特定し、各作業の余裕時間を計算する方法について解説します。",
"mermaid": "graph LR\n A[作業A: 期間3日] --> B(作業B)\n A --> C(作業C)\n B --> D(作業D)\n C --> D\n D --> E[作業E: 期間3日]",
"verify_level": "draft",
"tweet_hint": "IPA午前Ⅱ対策!クリティカルパス法でプロジェクト期間を最短化する方法を解説。各作業の余裕時間計算もポイント💡 #IPA #午前Ⅱ #クリティカルパス",
"link_hints": [
"クリティカルパスとは",
"PERT図",
"ガントチャート"
]
}
-->
本記事はGeminiの出力をプロンプト工学で整理した業務ドラフト(未検証)です。
IPA午前Ⅱ:クリティカルパス法の計算とプロジェクト期間
クリティカルパス法は、プロジェクトの最短完了期間と各作業の余裕時間を特定する計算手法である。
背景
プロジェクトを計画する際、多くの作業が相互に依存し、それぞれ異なる期間を要する。限られた資源と時間の中で、納期を厳守し、効率的にプロジェクトを完了させることが求められる。
問題点
複数の作業が並行して進行し、複雑な依存関係を持つプロジェクトでは、どの作業が全体の期間に最も影響を与えるか、また、どの作業に遅延が発生しても全体のスケジュールに影響がないか(余裕時間があるか)を把握することが困難となる。これを明確にしないと、誤った作業に優先順位をつけたり、全体的な遅延を引き起こしたりするリスクがある。
クリティカルパス法の計算と手順
クリティカルパス法(CPM: Critical Path Method)は、プロジェクトの全作業を洗い出し、それらの前後関係(依存関係)と所要期間を基に、プロジェクト全体の最短完了期間と、各作業における余裕時間(フロート)を算出する手法である。フロートがゼロの作業を結んだ経路がクリティカルパスとなり、この経路上の作業が遅延すると、プロジェクト全体の完了期間も遅延する。
1. 作業の定義と依存関係の把握
プロジェクトを構成する全ての作業を特定し、それぞれの作業の所要期間と、どの作業が完了しないと開始できないか(先行作業)を明確にする。
2. PERT図(アローダイアグラムまたはアクティビティ・オン・ノード)の作成
作業と依存関係を視覚的に表現するため、PERT図(Program Evaluation and Review Technique図)を作成する。ここではアクティビティ・オン・ノード方式で図示する。
graph LR
subgraph プロジェクト作業
A("作業A: 期間3日")
B("作業B: 期間4日")
C("作業C: 期間5日")
D("作業D: 期間2日")
E("作業E: 期間3日")
end
A --> B
A --> C
B --> D
C --> D
D --> E
図:プロジェクト作業の依存関係
3. 最早開始時刻(ES)と最早完了時刻(EF)の計算(順行計算)
プロジェクト開始から順に、各作業が最も早く開始できる時刻(ES: Earliest Start)と、最も早く完了できる時刻(EF: Earliest Finish)を計算する。
4. 最遅開始時刻(LS)と最遅完了時刻(LF)の計算(逆行計算)
プロジェクト完了から逆算して、各作業がプロジェクト全体の完了期間に影響を与えずに、最も遅く完了できる時刻(LF: Latest Finish)と、最も遅く開始できる時刻(LS: Latest Start)を計算する。
5. フロート(浮動時間)の計算とクリティカルパスの特定
各作業のフロート(F: Float)を計算する。フロートは、その作業の開始または完了を遅らせても、プロジェクト全体の完了期間に影響を与えない許容時間である。
- フロート (F) = LF – EF または LS – ES
フロートがゼロの作業を結んだ経路がクリティカルパスである。クリティカルパス上の作業は、少しでも遅延するとプロジェクト全体の完了期間が遅延するため、重点的な管理が必要となる。
計算例
上記のPERT図を基に、各時刻とフロートを計算する。
| 作業 |
期間 (日) |
先行作業 |
ES |
EF |
LS |
LF |
フロート (F) |
| A |
3 |
なし |
0 |
3 |
0 |
3 |
0 |
| B |
4 |
A |
3 |
7 |
4 |
8 |
1 |
| C |
5 |
A |
3 |
8 |
3 |
8 |
0 |
| D |
2 |
B, C |
8 |
10 |
8 |
10 |
0 |
| E |
3 |
D |
10 |
13 |
10 |
13 |
0 |
順行計算 (ES, EF):
A: ES=0, EF=0+3=3
B: ES=EF(A)=3, EF=3+4=7
C: ES=EF(A)=3, EF=3+5=8
D: ES=max(EF(B), EF(C))=max(7,8)=8, EF=8+2=10
E: ES=EF(D)=10, EF=10+3=13
プロジェクト完了期間 = 13日
逆行計算 (LS, LF):
E: LF=13, LS=13-3=10
D: LF=LS(E)=10, LS=10-2=8
C: LF=LS(D)=8, LS=8-5=3
B: LF=LS(D)=8, LS=8-4=4
A: LF=min(LS(B), LS(C))=min(4,3)=3, LS=3-3=0
フロート:
A: LF-EF = 3-3=0
B: LF-EF = 8-7=1
C: LF-EF = 8-8=0
D: LF-EF = 10-10=0
E: LF-EF = 13-13=0
この計算結果から、フロートが0の作業はA、C、D、Eである。
したがって、クリティカルパスは A → C → D → E であり、プロジェクトの最短完了期間は13日となる。
要点
クリティカルパスは、プロジェクト全体の最短完了期間を決定する作業経路。
クリティカルパス上の作業は、フロート(余裕時間)がゼロである。
クリティカルパス上の作業が遅延すると、プロジェクト全体の完了も遅延する。
プロジェクトマネージャーは、クリティカルパス上の作業を特に厳密に管理する必要がある。
フロートのある作業は、ある程度の遅延が許容されるため、資源配分の柔軟性を持つ。
コメント