スケジューリングとラインバランシング
PERT/CPM、ジョンソン法、ガントチャート、ラインバランシングの計算手順と実務知識
前提知識
このページを読む前に
このページは、プロジェクトや製造ラインで「期限内に、効率よく完成させるための計画」の立て方を学びます。
前提として以下を理解しておくと読みやすいです:
- 作業の前後関係(どの作業が終わってから次が始まるか)
- 機械やステーションの概念(複数の作業を並列に処理)
- 時間単位の一貫性(分・時間・日を混ぜない)
まずイメージをつかむ
プロジェクト全体を完成させるには、「どの経路が全体を遅らせるか」を知ることが大事です。建設プロジェクトでは鉄骨組み立てが遅れると内装工事も遅れますし、工場のラインでは最も時間のかかる工程のペースに全体が合わせられます。また2台の機械で複数の部品を加工するときは、加工順序で総所要時間が大きく変わります。このページではこれら3つの視点から、スケジューリングと工程管理を整理します。
試験で何が問われるか
- クリティカルパスを求めるか(最長経路の計算)
- 余裕時間(フロート)を計算できるか
- 作業を短縮するとき最適な選択肢は何か(クラッシング)
- ジョンソン法で最適順序を導出できるか
- ラインバランシングで工程をステーションに割り当てることができるか
- ディスパッチングルールの特性を使い分けることができるか
PERT/CPMとクリティカルパス
PERT(Program Evaluation and Review Technique)/CPM(Critical Path Method)は、作業の前後関係をネットワーク図で表し、最短工期と余裕のない経路(クリティカルパス)を求める手法です。大規模プロジェクトでは全体を遅らせている経路を事前に特定して、そこに注力することが本質です。
基本用語と計算式
| 用語 | 意味 | 計算方法 |
|---|---|---|
| 最早開始時刻(ES) | その作業を最も早く始められる時刻 | 先行作業の最早完了時刻の最大値 |
| 最早完了時刻(EF) | その作業を最も早く完了できる時刻 | EF = ES + 作業時間 |
| 最遅完了時刻(LF) | その作業を遅くとも完了すべき時刻 | 後続作業の最遅開始時刻の最小値 |
| 最遅開始時刻(LS) | その作業を遅くとも始めるべき時刻 | LS = LF − 作業時間 |
| 総余裕時間(TF) | 全体工期に影響しない遅延可能時間 | TF = LS − ES(= LF − EF) |
| クリティカルパス | 総余裕時間がゼロの作業を結ぶ最長経路 | TF = 0 の作業をすべて抽出 |
計算手順
PERT/CPMの計算は大きく3ステップに分かれます。フォワードパスで最早時刻を求め、バックワードパスで最遅時刻を求めてから、余裕時間を計算してクリティカルパスを特定します。
フォワードパス(前進計算) ─ 最早時刻を求める
- 開始ノードのES = 0から始める
- 各作業のEF = ES + 作業時間を計算
- 合流ノードの次の作業のES = 流入する全作業のEFの最大値
バックワードパス(後退計算) ─ 最遅時刻を求める
- 最終ノードのLF = 最短工期(フォワードパスの結果)
- 各作業のLS = LF − 作業時間を計算
- 分岐ノードの前の作業のLF = 流出する全作業のLSの最小値
余裕時間の計算
- TF = LS − ESで各作業の総余裕時間を計算
- TF = 0の作業がクリティカルパス上の作業(全体を遅らせる経路)
計算例:クリティカルパスの特定
【ネットワーク構造】
作業A(3日) → 作業C(4日) → 作業E(2日)
作業B(5日) → 作業D(3日) → 作業E(2日)
作業A(3日) → 作業D(3日)
【フォワードパス結果】
A: ES=0, EF=3
B: ES=0, EF=5
C: ES=3, EF=7
D: ES=max(3,5)=5, EF=8
E: ES=max(7,8)=8, EF=10
最短工期 = 10日
【バックワードパス結果】
E: LF=10, LS=8
D: LF=8, LS=5
C: LF=8, LS=4
A: LF=min(4,5)=4, LS=1
B: LF=5, LS=0
【余裕時間(TF = LS − ES)】
A: 1−0=1日 B: 0−0=0日 C: 4−3=1日
D: 5−5=0日 E: 8−8=0日
クリティカルパス: B → D → E(TF=0の経路)
この経路上の作業が遅れると全体工期が延びる3点見積法(PERT)
作業時間が不確実な場合、楽観値(a)、最頻値(m)、悲観値(b)の3つの推定値から期待時間と分散を算出します。これにより、プロジェクト全体の完成確率を推定できます。
期待時間の公式:期待時間 = (a + 4m + b) ÷ 6
分散の公式:分散 = ((b − a) ÷ 6) の二乗
ある作業について楽観値3日、最頻値5日、悲観値13日の場合、期待時間 = (3 + 20 + 13) ÷ 6 = 6日、分散 = (10÷6)の二乗 ≈ 2.78、標準偏差 ≈ 1.67日となります。この作業は平均6日で完了すると予想されますが、±1.67日の変動がある(信頼度約68%)ことを意味します。
クラッシング(工期短縮)
計画工期を前倒しする必要が生じたとき、クリティカルパス上のどの作業を短縮すべきかという意思決定の問題です。基本原則は「短縮できるのはクリティカルパス上の作業のみ」であり、クリティカルパス以外を短縮しても全体工期は変わりません。複数の短縮候補がある場合は、「短縮コスト÷日」が最小の作業から検討します。
クリティカルパスがB→D→E(工期10日)の場合、短縮コスト/日で比較すると作業E(40万円/日)が最小なので、1日短縮する際は作業Eを短縮するのが最適です。2日短縮が必要ならEを1日短縮(40万円)してからBを1日短縮(50万円)と進めます。
ジョンソン法──2機械フローショップの最適順序
ジョンソン法は、2台の機械で複数のジョブを処理する場合に、総所要時間(メイクスパン)を最小化する順序を求める方法です。単純に「短いジョブから」では最適順序が得られません。なぜなら機械2の待機時間を最小化する目的を考慮する必要があり、だからこそ「機械1なら先頭、機械2なら末尾」というルールが生まれました。
アルゴリズム(手順)
- 全ジョブの機械1と機械2の処理時間をリストアップ
- 全体の最小値を探す
- その値が機械1にあれば → そのジョブを先頭から順に入れる
- その値が機械2にあれば → そのジョブを末尾から順に入れる
- 決定したジョブを除外して②に戻る
- 全ジョブの順序が決まるまで繰り返す
計算例1:基本的なジョンソン法
【データ】4つのジョブ
ジョブ | 機械1 | 機械2
───────┼──────┼──────
J1 | 3 | 6
J2 | 8 | 2
J3 | 5 | 7
J4 | 4 | 3
手順1: 全体の最小値 → J2の機械2=2
→ 機械2なので末尾に配置: [_, _, _, J2]
手順2: 残り{J1,J3,J4}の最小値 → J1の機械1=3
→ 機械1なので先頭に配置: [J1, _, _, J2]
手順3: 残り{J3,J4}の最小値 → J4の機械2=3
→ 機械2なので末尾から配置: [J1, _, J4, J2]
手順4: 残り{J3}
→ [J1, J3, J4, J2]
最適順序: J1 → J3 → J4 → J2計算例2:タイがある場合
ジョンソン法で同じ値が複数ある場合、どの順序で処理しても最終的なメイクスパンは同じです。任意に選んで進めても構いません。J1(機械1=4, 機械2=3)、J2(機械1=3, 機械2=3)、J3(機械1=2, 機械2=5)の場合、最小値J3の機械1=2で先頭に入れ、次はJ2のタイ(機械1=3と機械2=3)で機械1を採用して先頭側に入れ、最後にJ1を入れると最適順序はJ3→J2→J1になります。
ラインバランシング──工程配分と編成効率
ラインバランシングは、各工程への作業配分を最適化し、ライン全体の効率を高める手法です。ライン全体の速度は最も遅い工程で決まる(ボトルネック)ため、どんなに他の工程を高速化しても、ボトルネック工程が変わらなければ全体は改善されません。
タクトタイムとサイクルタイム
タクトタイム = 稼働時間 ÷ 必要生産数(市場が要求する1個あたりの生産ペース)
サイクルタイム(CT) = max(各工程の作業時間)(実際のラインにおけるボトルネック工程の時間)
この2つの関係が重要です。タクトタイム < CTなら改善が必要で、タクトタイム ≥ CTなら生産ペースは市場要求を満たしています。
編成効率とバランスロス率
| 指標 | 計算式 | 意味 |
|---|---|---|
| ライン編成効率 | (各工程の作業時間の合計) ÷ (工程数 × CT) × 100% | 有効時間の割合(高いほど良い) |
| バランスロス率 | 100% − 編成効率 | ムダ待ち時間の割合(低いほど良い) |
| 最小工程数の理論値 | ⌈作業時間の合計 ÷ CT⌉ | 先行関係がない場合の下限値 |
計算例1:効率を評価する
【データ】
稼働時間 480分/日、必要生産数 120個/日
工程A: 3分、工程B: 4分、工程C: 2分、工程D: 3分
手順1: タクトタイム
= 480 ÷ 120 = 4分/個
手順2: サイクルタイム(ボトルネック)
CT = max(3, 4, 2, 3) = 4分(工程B)
手順3: ライン編成効率
= (3+4+2+3) ÷ (4×4) × 100
= 12 ÷ 16 × 100 = 75%
手順4: バランスロス率
= 100 − 75 = 25%
タクトタイム=CT=4分なので生産ペースは市場要求ぴったり。
工程Bがボトルネック。改善するなら工程Bの作業時間短縮。計算例2:工程をステーションに割り当てる
実際の生産ラインでは、複数の作業を1つのステーション(工程グループ)に割り当てます。先行関係を守りながら、タクトタイム以内に各ステーションの作業を完了させる必要があります。
【データ】タクトタイム: 60秒、6つの作業
作業1(20秒) → 作業2(35秒) → 作業4(40秒) → 作業5(15秒) → 作業6(30秒)
作業1(20秒) → 作業3(25秒) → 作業4(40秒)
合計作業時間 = 165秒
最小ステーション数 = ⌈165÷60⌉ = 3ステーション(理論値)
【実際のステーション割当(タクトタイム≦60秒を守る)】
ステーション1: 作業1(20秒) + 作業2(35秒) = 55秒 OK
ステーション2: 作業3(25秒) = 25秒 OK
ステーション3: 作業4(40秒) + 作業5(15秒) = 55秒 OK
ステーション4: 作業6(30秒) = 30秒 OK
実配置: 4ステーション必要(理論値3より1多い)ディスパッチングルール
複数のジョブが機械を待っているとき、どの順序で処理するかを決めるルール。目的によって最適なルールは異なり、各ルールは特定の評価指標(平均滞留時間や最大遅れなど)を最適化しますが、個別ジョブの納期遵守を保証するものではありません。
| ルール | 基準 | 最適化対象 | 特徴 |
|---|---|---|---|
| SPT(最短処理時間) | 処理時間が短い順 | 平均滞留時間 | 平均滞留時間が最小になる |
| EDD(最早納期) | 納期が早い順 | 納期遅れ | 最大納期遅れを最小化 |
| FCFS(先着順) | 到着順 | 公平性 | 公平だが効率は低い |
| CR(クリティカルレシオ) | (納期−現在) ÷ 残り処理時間が小さい順 | 緊急度に応じた処理 | 複雑だが状況に応じた対応 |
計算例:SPTとEDDの比較
【ジョブデータ】4つのジョブ、処理機械は1台、現在時刻=0
ジョブ | 処理時間 | 納期
───────┼─────────┼─────
J1 | 5分 | 12分
J2 | 3分 | 6分
J3 | 8分 | 15分
J4 | 4分 | 9分
【SPT(最短処理時間順)】
処理順: J2(3) → J4(4) → J1(5) → J3(8)
完了時刻: 3, 7, 12, 20分
納期遅れ: 0, 0, 0, 5分 → 最大遅れ5分、平均滞留10.5分
【EDD(最早納期順)】
処理順: J2(6) → J4(9) → J1(12) → J3(15)
完了時刻: 3, 7, 12, 20分
納期遅れ: 0, 0, 0, 5分 → 最大遅れ5分、平均滞留10.5分
【FCFS(到着順)】
処理順: J1 → J2 → J3 → J4
完了時刻: 5, 8, 16, 20分
納期遅れ: 0, 2, 1, 11分 → 最大遅れ11分、平均滞留12.25分結論:平均滞留時間を最小化したい → SPT、納期遅れを最小化したい → EDD。データによって効果は異なります。
ガントチャート──計画と実績を可視化する
ガントチャートは、時間軸の上に作業や製品の進捗を棒グラフで表します。機械別ガントチャート(各機械がいつどのジョブを処理しているか)と製品別ガントチャート(各製品がどのステーションをいつ通過するか)の2つの見方があります。
機械別ガントチャート(負荷図) :各機械の稼働状況とアイドル時間を可視化。機械1が先に終了すればその後はアイドル時間が生じます。
製品別ガントチャート(スケジュール図) :各製品がラインを流れていく様子を時系列で表示。タクトタイムごとに1個の製品がライン全体を通過していきます。
よくある計算ミスと対策
| ミス | 原因 | 対策 |
|---|---|---|
| クリティカルパスが複数ある場合に1本だけ報告 | 「最長経路は1本」という先入観 | 全作業の余裕時間を計算してTF=0をすべて拾う |
| ジョンソン法で「最小値を機械1なら先頭」の判断を誤る | 「最小値の場所」を見落とす | 表を作り、どの機械のどのジョブが最小かを明確に |
| ラインバランシングでタクトタイムとCTを混同 | 「理想」と「現実」を区別していない | タクトタイム=市場要求、CT=現在のボトルネック |
| ステーション割当で先行関係を無視 | タクトタイム内に詰め込もうとする | 先行関係を満たす順序を最優先に、その後工程をグループ化 |
確認問題
問1:クリティカルパスの特定
作業A(2日)→C(5日)、作業B(4日)→D(3日)、作業C→E(1日)、作業D→E(1日)の場合、最短工期とクリティカルパスを求めよ。
解答: A→C→E: 2+5+1=8日 B→D→E: 4+3+1=8日 どちらも8日で、両方がクリティカルパス。最短工期は8日。
問2:3点見積法
ある作業の見積もり:楽観値=4日、最頻値=6日、悲観値=14日。期待時間と標準偏差を求めよ。
解答: 期待時間 = (4 + 24 + 14) ÷ 6 = 42 ÷ 6 = 7日 分散 = (10÷6)の二乗 ≈ 2.78 標準偏差 = 約1.67日
問3:ライン編成効率
5工程のラインで、各工程の作業時間が6分、8分、5分、7分、4分。ライン編成効率を求めよ。
解答: CT = max(6,8,5,7,4) = 8分 合計 = 6+8+5+7+4 = 30分 編成効率 = 30÷(5×8)×100 = 75%
問4:ジョンソン法
3つのジョブ(J1: 機械1=2,機械2=5、J2: 機械1=6,機械2=3、J3: 機械1=4,機械2=4)の最適順序をジョンソン法で求めよ。
解答: 最小値=J1の機械1(2)→先頭: [J1,,] 次の最小値=J2の機械2(3)→末尾: [J1,_,J2] 残りJ3→[J1,J3,J2] 最適順序: J1→J3→J2
このページの後で読むページ
このページは役に立ちましたか?
評価とひとことを残してもらえると、内容と導線の改善に使えます。
Last updated on