<div class="codehilite">
<pre data-enlighter-language="generic"><!--
{
"title": "アローダイアグラムによるクリティカルパスの計算方法",
"primary_category": "プロジェクトマネジメント",
"secondary_categories": ["計画", "進捗管理"],
"tags": ["アローダイアグラム", "クリティカルパス", "PMBOK", "IPA午前Ⅱ", "プロジェクト管理"],
"summary": "アローダイアグラムを用いたクリティカルパスの計算方法を解説。順方向・逆方向計算による各アクティビティの余裕時間(フロート)の特定、プロジェクト完了日の決定手順を詳細に説明する。",
"mermaid": true,
"verify_level": "draft",
"tweet_hint": "IPA午前Ⅱ対策!アローダイアグラムでクリティカルパスを計算する方法を解説。プロジェクトのボトルネック特定と完了日予測の基本を理解しよう。
#IPA #午前Ⅱ #プロジェクトマネジメント",
"link_hints": ["PMBOKガイド概要", "プロジェクト管理入門"]
}
-->
</pre>
</div>
<p>本記事は<strong>Geminiの出力をプロンプト工学で整理した業務ドラフト(未検証)</strong>です。</p>
<h1 class="wp-block-heading">アローダイアグラムによるクリティカルパスの計算方法</h1>
<p>プロジェクトの完了日を決定する最長経路であるクリティカルパスの特定と、各アクティビティの余裕時間を算出する。</p>
<div class="wp-block-merpress-mermaidjs diagram-source-mermaid"><pre class="mermaid">
graph TD
N1("イベント1") --> |A("4日")| N2("イベント2")
N1 --> |B("3日")| N3("イベント3")
N2 --> |C("5日")| N4("イベント4")
N3 --> |D("2日")| N4
N4 --> |E("6日")| N5("イベント5")
N5 --> |F("1日")| N6("イベント6")
</pre></div>
<h2 class="wp-block-heading">背景</h2>
<p>プロジェクト管理において、タスクの順序関係と所要時間を考慮し、効率的なスケジュールを策定することは成功の鍵となる。特に、複数のタスクが並行して進行する場合、全体の完了時期を正確に予測し、遅延リスクを管理するための手法が求められる。</p>
<h2 class="wp-block-heading">問題点</h2>
<p>プロジェクトの多くのタスクには先行関係や後続関係があり、単純に各タスクの所要時間を合算するだけでは、全体を最短で完了させるための道筋や、どのタスクが遅れるとプロジェクト全体に影響を与えるのかを特定できない。これにより、リソース配分の最適化が困難となり、予期せぬプロジェクト遅延を招く可能性がある。</p>
<h2 class="wp-block-heading">計算/手順</h2>
<p>アローダイアグラムを用いたクリティカルパスの計算は、主に以下の手順で行われる。</p>
<ol class="wp-block-list">
<li><p><strong>アローダイアグラムの作成</strong>:
イベントをノード(丸)、アクティビティを矢印で表現し、各矢印にアクティビティ名と所要時間(日数など)を記載する。ダミーアクティビティを用いて論理的な依存関係を示す場合もある。</p></li>
<li><p><strong>順方向計算(Earliest Start/Finish: ES/EF)</strong>:
プロジェクトの開始から終了へ向かって、各アクティビティの最も早い開始時刻(ES)と最も早い終了時刻(EF)を計算する。</p>
<ul>
<li><p>ES = 先行アクティビティのEFの最大値</p></li>
<li><p>EF = ES + アクティビティの所要時間
最初のイベントのESは0とする。</p></li>
</ul></li>
<li><p><strong>逆方向計算(Latest Start/Finish: LS/LF)</strong>:
プロジェクトの終了から開始へ向かって、各アクティビティの最も遅い開始時刻(LS)と最も遅い終了時刻(LF)を計算する。</p>
<ul>
<li><p>LF = 後続アクティビティのLSの最小値</p></li>
<li><p>LS = LF – アクティビティの所要時間
プロジェクトの最終イベントのLFは、順方向計算で求めたEFの最大値(プロジェクト完了日)とする。</p></li>
</ul></li>
<li><p><strong>フロート(Float)の計算とクリティカルパスの特定</strong>:
各アクティビティのフロート(余裕時間)を計算し、フロートがゼロとなる経路をクリティカルパスとして特定する。</p>
<ul>
<li>トータルフロート (TF) = LS – ES または LF – EF
クリティカルパスは、TFがゼロのアクティビティを連ねた経路であり、この経路上のアクティビティが少しでも遅れると、プロジェクト全体の完了日が遅れる。</li>
</ul></li>
</ol>
<h3 class="wp-block-heading">計算例</h3>
<p>上記のMermaid図に示したアローダイアグラム(N1-N6)を基に計算を行う。</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;">TF</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align:left;">A (N1→N2)</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</td>
<td style="text-align:left;">0</td>
<td style="text-align:left;">4</td>
<td style="text-align:left;">0</td>
</tr>
<tr>
<td style="text-align:left;">B (N1→N3)</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;">1</td>
<td style="text-align:left;">4</td>
<td style="text-align:left;">1</td>
</tr>
<tr>
<td style="text-align:left;">C (N2→N4)</td>
<td style="text-align:left;">5</td>
<td style="text-align:left;">A</td>
<td style="text-align:left;">4</td>
<td style="text-align:left;">9</td>
<td style="text-align:left;">4</td>
<td style="text-align:left;">9</td>
<td style="text-align:left;">0</td>
</tr>
<tr>
<td style="text-align:left;">D (N3→N4)</td>
<td style="text-align:left;">2</td>
<td style="text-align:left;">B</td>
<td style="text-align:left;">3</td>
<td style="text-align:left;">5</td>
<td style="text-align:left;">7</td>
<td style="text-align:left;">9</td>
<td style="text-align:left;">4</td>
</tr>
<tr>
<td style="text-align:left;">E (N4→N5)</td>
<td style="text-align:left;">6</td>
<td style="text-align:left;">C, D</td>
<td style="text-align:left;">9</td>
<td style="text-align:left;">15</td>
<td style="text-align:left;">9</td>
<td style="text-align:left;">15</td>
<td style="text-align:left;">0</td>
</tr>
<tr>
<td style="text-align:left;">F (N5→N6)</td>
<td style="text-align:left;">1</td>
<td style="text-align:left;">E</td>
<td style="text-align:left;">15</td>
<td style="text-align:left;">16</td>
<td style="text-align:left;">15</td>
<td style="text-align:left;">16</td>
<td style="text-align:left;">0</td>
</tr>
</tbody>
</table></figure>
<p>プロジェクトの完了日(最終イベントN6のLF)は<strong>16日</strong>である。
クリティカルパスは、トータルフロートがゼロのアクティビティをたどった経路であるため、「<strong>A → C → E → F</strong>」となる。</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>
<!--
{
"title": "アローダイアグラムによるクリティカルパスの計算方法",
"primary_category": "プロジェクトマネジメント",
"secondary_categories": ["計画", "進捗管理"],
"tags": ["アローダイアグラム", "クリティカルパス", "PMBOK", "IPA午前Ⅱ", "プロジェクト管理"],
"summary": "アローダイアグラムを用いたクリティカルパスの計算方法を解説。順方向・逆方向計算による各アクティビティの余裕時間(フロート)の特定、プロジェクト完了日の決定手順を詳細に説明する。",
"mermaid": true,
"verify_level": "draft",
"tweet_hint": "IPA午前Ⅱ対策!アローダイアグラムでクリティカルパスを計算する方法を解説。プロジェクトのボトルネック特定と完了日予測の基本を理解しよう。 #IPA #午前Ⅱ #プロジェクトマネジメント",
"link_hints": ["PMBOKガイド概要", "プロジェクト管理入門"]
}
-->
本記事はGeminiの出力をプロンプト工学で整理した業務ドラフト(未検証)です。
アローダイアグラムによるクリティカルパスの計算方法
プロジェクトの完了日を決定する最長経路であるクリティカルパスの特定と、各アクティビティの余裕時間を算出する。
graph TD
N1("イベント1") --> |A("4日")| N2("イベント2")
N1 --> |B("3日")| N3("イベント3")
N2 --> |C("5日")| N4("イベント4")
N3 --> |D("2日")| N4
N4 --> |E("6日")| N5("イベント5")
N5 --> |F("1日")| N6("イベント6")
背景
プロジェクト管理において、タスクの順序関係と所要時間を考慮し、効率的なスケジュールを策定することは成功の鍵となる。特に、複数のタスクが並行して進行する場合、全体の完了時期を正確に予測し、遅延リスクを管理するための手法が求められる。
問題点
プロジェクトの多くのタスクには先行関係や後続関係があり、単純に各タスクの所要時間を合算するだけでは、全体を最短で完了させるための道筋や、どのタスクが遅れるとプロジェクト全体に影響を与えるのかを特定できない。これにより、リソース配分の最適化が困難となり、予期せぬプロジェクト遅延を招く可能性がある。
計算/手順
アローダイアグラムを用いたクリティカルパスの計算は、主に以下の手順で行われる。
アローダイアグラムの作成:
イベントをノード(丸)、アクティビティを矢印で表現し、各矢印にアクティビティ名と所要時間(日数など)を記載する。ダミーアクティビティを用いて論理的な依存関係を示す場合もある。
順方向計算(Earliest Start/Finish: ES/EF):
プロジェクトの開始から終了へ向かって、各アクティビティの最も早い開始時刻(ES)と最も早い終了時刻(EF)を計算する。
逆方向計算(Latest Start/Finish: LS/LF):
プロジェクトの終了から開始へ向かって、各アクティビティの最も遅い開始時刻(LS)と最も遅い終了時刻(LF)を計算する。
フロート(Float)の計算とクリティカルパスの特定:
各アクティビティのフロート(余裕時間)を計算し、フロートがゼロとなる経路をクリティカルパスとして特定する。
- トータルフロート (TF) = LS – ES または LF – EF
クリティカルパスは、TFがゼロのアクティビティを連ねた経路であり、この経路上のアクティビティが少しでも遅れると、プロジェクト全体の完了日が遅れる。
計算例
上記のMermaid図に示したアローダイアグラム(N1-N6)を基に計算を行う。
| アクティビティ |
所要時間 (日) |
先行アクティビティ |
ES |
EF |
LS |
LF |
TF |
| A (N1→N2) |
4 |
なし |
0 |
4 |
0 |
4 |
0 |
| B (N1→N3) |
3 |
なし |
0 |
3 |
1 |
4 |
1 |
| C (N2→N4) |
5 |
A |
4 |
9 |
4 |
9 |
0 |
| D (N3→N4) |
2 |
B |
3 |
5 |
7 |
9 |
4 |
| E (N4→N5) |
6 |
C, D |
9 |
15 |
9 |
15 |
0 |
| F (N5→N6) |
1 |
E |
15 |
16 |
15 |
16 |
0 |
プロジェクトの完了日(最終イベントN6のLF)は16日である。
クリティカルパスは、トータルフロートがゼロのアクティビティをたどった経路であるため、「A → C → E → F」となる。
要点
クリティカルパスはプロジェクト全体の完了日を決定する最長経路である。
順方向計算で最も早い完了日、逆方向計算で最も遅い開始・終了日を特定する。
トータルフロートがゼロのアクティビティがクリティカルパスを構成する。
クリティカルパス上のアクティビティは、プロジェクト全体の遅延に直結するため、優先的な管理が必要となる。
コメント