🎓 レベル:基礎 | 重要度:A(必須)
📎 関連:プロセス分析とリトルの法則 | 数理:確率過程(マルコフ連鎖・ポアソン過程)(統計・待ち行列の土台)
要点(BLUF)
- **オペレーションズ・マネジメント(OM)**は、ものとサービスの「流れ(フロー)」を設計し、最適化する分野です。
- 良し悪しは単一の数字では測れません。生産性・稼働率・スループットなどを多面的に数値化して評価します。
- 全章を貫く基本式が リトルの法則 (平均在庫 = 到着率 × 平均滞在時間)。在庫・待ち行列・生産すべてに効きます。
1. OM はフロー(流れ)の管理
OM は「投入(資源)→ プロセス(変換)→ 産出(製品・サービス)」という流れを扱います。問いはつねに、より速く・安く・安定して・高品質に流すにはどう設計するか、です。
flowchart LR IN["投入:材料・人・設備"] --> PROC["プロセス(変換)"] PROC --> OUT["産出:製品・サービス"] OUT --> KPI["生産性・稼働率・スループット で評価"] KPI --> IMP["ボトルネック特定・改善"] IMP --> PROC
2. 基本指標を多面的に測る(コード)
2つの生産ラインの実績から、代表的な OM 指標を計算します。
import numpy as np
import pandas as pd
# 2つの生産ラインの実績(合成データ)
df = pd.DataFrame({
"ライン": ["A", "B"],
"産出量": [800, 1000], # 1日の生産個数
"投入工数": [40, 60], # 1日の人時(人×時間)
"稼働可能時間": [480, 480], # 分
"実稼働時間": [400, 360], # 分
})
# OMの基本指標
df["労働生産性"] = df["産出量"] / df["投入工数"] # 個/人時(高いほど効率的)
df["稼働率"] = df["実稼働時間"] / df["稼働可能時間"]
df["スループット"] = df["産出量"] / df["実稼働時間"] # 個/分(流す速さ)
print(df.to_string(index=False, float_format=lambda x: f"{x:.3f}"))
出力:
ライン 産出量 投入工数 稼働可能時間 実稼働時間 労働生産性 稼働率 スループット
A 800 40 480 400 20.000 0.833 2.000
B 1000 60 480 360 16.667 0.750 2.778
出力の意味:B は産出量で勝る(1000>800)ものの、労働生産性は A が上(20.0 vs 16.7 個/人時)。一方 B はスループット(流す速さ)が高い(2.78 vs 2.0 個/分)が稼働率は低い(0.75)——止まっている時間が多く、ここに改善余地があります。このように OM は単一指標で「優れている」と言わず、生産性・稼働率・スループットを突き合わせてボトルネックと改善点を特定します。
3. リトルの法則:全章を貫く基本式
OM で最も汎用的な関係が リトルの法則です。安定した系(入ってくる量と出ていく量が釣り合う系)で、
- :システム内の平均アイテム数(平均在庫・平均行列長)
- :平均到着率(単位時間あたり入ってくる数)
- :システム内の平均滞在時間(フロータイム)
たとえば1時間に60人が来店し(/時)、平均滞在が0.5時間なら、店内には平均 人いる、と分布の形を問わず成り立ちます。在庫管理(第3章)でも待ち行列(第4章)でも、この一本の式が効きます。
⚠️ よくある誤解
- 「稼働率は高いほど良い」ではない:稼働率を100%に近づけると、ばらつきがあるとき待ち時間が急増します(第4章の待ち行列で定量化)。余力(バッファ)には意味があります。
- 「生産性が高い=優れたオペレーション」ではない:労働生産性だけ見ても、稼働率・品質・在庫を犠牲にしていれば総合的には劣ります。多面的に見ます。
- 「リトルの法則は特定の分布が前提」ではない:定常であれば分布によらず成り立つ、極めて頑健な関係です。
関連ノート
- プロセス分析とリトルの法則(次のトピック・L=λWを使い込む)
- 第3章 在庫管理(リトルの法則の在庫への応用)/第4章 待ち行列理論
- 確率過程(マルコフ連鎖・ポアソン過程)(統計・待ち行列の確率的土台)
- オペレーションズ・マネジメント 全体目次