【直列型待ち行列モデル】センター出荷作業のサイクルタイムを求めてみる

2023年10月16日

Photo by Massimo Adami on Unsplash

これまでいろいろなタイプの待ち行列を見てきましたが、いずれも作業工程は1つでした。

 

M/M/Cモデルでは窓口が複数ありますが、これらは同じ作業を並列に行っているだけなので、工程自体は1つです。

しかし、製造業でも物流業でも、複数の工程が直列につながった作業がほとんどだと思います。

いわゆるベルトコンベア式の流れ作業です。

例えば、物流センターの入庫作業において荷卸し⇨入荷チェック⇨棚入れというオペレーションがある場合、3つの工程があります。

このような作業は直列型待ち行列モデルで表すことができます。

 

各工程における窓口の数にはいろいろなパターンがあります。

ある工程は1つしかないかもしれないし(M/M/1)、別の工程では4つあるかもしれません(M/M/C)。

 

このように、M/M/1モデルとM/M/Cモデルを直列につなぎ合わせた直列型待ち行列モデルによって、汎用的なオペレーションを表現することができます。

今回はこのような汎用的なオペレーションにおける待ち時間を、どのように解析するかについて見てみましょう。

 

直列型待ち行列モデルの解析方法

一般化した図

直列型待ち行列モデルは、工程がK個あるとすると次のように一般化できます。

 

この図では各工程の窓口数は同じように見えますが、異なっていても構いません。

例えば工程1は窓口1つ(M/M/1)、工程2は窓口5つ(M/M/5)、、、と各工程で異なる窓口数を取ることができます。

また各工程における離脱率はμjで表しますが、この離脱率は各工程で同一でなければなりません。

工程2に5つの窓口がある場合、各窓口の離脱率はすべてμ2とします。

 

この図を見てわかるように、到着率λについては工程1についてしかわかりません。

工程2以降の到着率はどのように計算すればよいのでしょうか?

 

各工程が独立になる条件

工程1の窓口での処理速度によって工程2の到着率は影響を受けそうですね。

このように到着率λは前工程の処理速度行列のキャパ(何人並ぶことができるか?)等により影響を受けそうです。

でもそこまで複雑に考えると、ただでさえ難しい待ち行列理論がますます難しくなってしまうので、前提条件を付けて問題を簡略化します。

具体的には、次の定理を使います。

 

3つの条件

  1. 到着間隔が指数分布に従う
  2. 処理時間が指数分布に従う
  3. 各工程間の行列の長さには制限がない

が満たされる時、

  1. 各工程の待ち行列M/M/Cは独立
  2. 各工程における到着率λは最初の工程のλに等しい

とみなせる。

 

これで解析が随分と楽になりますね。

私たちはM/M/1モデルやM/M/Cモデルの解析方法がわかっているので、各工程を別々に解析すれば良いのです。

 

待ち人数と待ち時間の求め方

ここでM/M/1モデルとM/M/Cモデルにおける待ち人数と待ち時間の計算式をおさらいしておきましょう。

M/M/1モデル

行列の待ち人数Lq;

Lq=ρ2/(1-ρ)

行列の待ち時間Wq;

Wq=ρ/(μ-λ)

【待ち行列|M/M/1モデル】5つの公式をわかりやすい言葉で解説します

 

M/M/Cモデル

行列の待ち人数Lq;

Lq=P(j≧c)ρ/(1―ρ)

行列の待ち時間Wq;

Wq=Lq/λ=P(j≧c)/(cμ―λ)

但し、

P(J≧c)=(cρ)cΠ0/c!(1―ρ)

【Excelで解く待ち行列M/M/Cモデル】物流現場で応用する方法を具体的に解説

 

このようにして各工程におけるLqWqを求めることができます。

これらを合計すれば、直列型待ち行列全体の待ち人数や待ち時間を求められます。

Lq=Lq1+Lq2+・・・+LqK

Wq=Wq1+Wq2+・・・+WqK

 

3工程の出荷作業への適用事例

問題設定

ある物流センターの出荷作業には、ピッキング検数荷積みの3工程があり、各工程における作業スタッフ人数と一人当たり平均作業スピードは下記の通りです。

ピッキング

25箱/人・時 ✕ 4人

検数

100箱/人・時 ✕ 1人

荷積み

33箱/人・時 ✕ 3人

 

またオーダーが入ってくるスピードは90箱/時です。

 

この時、1箱の出荷作業にかかる時間(サイクルタイム)は何分でしょうか?

またオーダーが入ってくるスピードが95箱/時に増えると、サイクルタイムは何分になるでしょうか?

 

考え方

この場合、工程が3つありますのでK =3になります。

そしてピッキング工程がM/M/4行列、検数工程がM/M/1行列、荷積み工程がM/M/3行列になります。

図では次のように描けます。

 

オーダーが入ってくる間隔はランダムなので、指数分布に従うと考えることができます。

またピッキング等の作業はアイテムによって保管ロケーションが違い、歩く距離やロケーションの高さもランダムになりますので、処理スピード指数分布に従うと考えて差し支えないでしょう。

また、物流センターでは処理した後に貨物を置くスペースがないために処理スピードが制約を受けるということもないため(もしあるならそのセンターはスペース不足)、各工程間の行列の長さに制限がないという条件も満たされると考えて差し支えありません。

 

よって、3つの待ち行列は独立で、2番目と3番目の待ち行列の到着率は1番目の待ち行列の到着率と同じと考えられ、次のようになります。

 

あとは3つの待ち行列を別々に解析すればよいだけです。

知りたいのはサイクルタイム(系に貨物が滞在する平均時間)Wです。

先程の式はWq(貨物が待ち状態にある時の滞在時間)を求める式ですので、これに窓口での処理時間Wsを加える必要があります。

W=Wq+Ws

 これはリトルの法則より、

Ws=Ls/λ

で計算できますので、簡単に求められます。

 

Excelでシミュレーション

計算式の中で難しいのはM/M/C行列におけるΠ0の計算ですが、下記のような計算シートでまとめて計算できます。

クリックすると拡大します

 

サイクルタイムは.35時間21分)と計算されました。

その内訳を見てみると、待ち時間Wqが0.26時間(16分)、正味処理時間Wsが0.09時間(5分)で、付加価値を生まない待ち時間が付加価値を産む正味処理時間の3倍もあることがわかります。

 

到着率を変えてシミュレーション

次に、オーダーがより多く入るようになり、到着率λが95箱/時になるとサイクルタイムがどう変わるかを見てみましょう。

これは先程のシートのλを変えるだけで、次のように瞬時に計算できます。

 

サイクルタイムは41分になりました。

このうち正味処理時間は5分で変わらず、待ち時間が36分と大幅に長くなっています。

オーダーがたくさん来るようになっても、処理能力が足りないために待ち時間が長くなるだけだということがわかります。

 

まとめ

  1. 多工程の作業は直列型待ち行列で解析できる
  2. 到着間隔も処理時間もランダム(指数分布)で、工程間の行列の長さに制約がなければ、各工程をM/M/1またはM/M/C行列として独立に解析できる
  3. 工場や倉庫での重要な指標であるサイクルタイムは、各工程における滞在時間を合計することにより求められる

 

この方法はベルトコンベア式にすべての貨物がすべての工程を経る場合には有用ですが、貨物によってはある工程をスキップする運用も実務では多く見られます。

そのような場合にも適用できる汎用的な方法がこちらです。

【開放型待ち行列モデル】宅配便集荷作業のサイクルタイムを求めてみる

 

 

Udemyの関連講座

Optimization with Excel: Operations Research without Coding

Optimization with Gurobi, CBC, IPOPT. Linear programming, nonlinear, genetic algorithm. Using Excel, without coding

 

Assignment and Transportation Problem Operations Research 01

The Hungarian Assignment Problem and Transportation Problem

 

Optimization with Python: Solve Operations Research Problems

Solve optimization problems with CPLEX, Gurobi, Pyomo… using linear programming, nonlinear, evolutionary algorithms…