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

2023年10月16日

Photo by Dan Dennis on Unsplash

前回の記事【直列型待ち行列モデル】センター出荷作業のサイクルタイムを求めてみるでは、ベルトコンベア式の流れ作業における待ち行列を解析しました。

これは非常に汎用的なモデルなのですが、これに当てはまらない業務フローも結構あります。

 

開放型待ち行列モデルとは?

例えば某国の宅配便会社の集荷作業を見てみましょう。

トラックで集荷されてきた貨物は集荷センターに集められ、手書きの送り状の情報がシステムに入力されます。

ところが、最近は宅配便会社のサイト上でユーザーが情報を入力した後、印刷される送り状を貨物に貼り付ける方式が普及してきています。

このようにシステム出力された送り状が貼り付けられた貨物は、集荷センターでシステム入力作業をスキップできます。

つまり、手書き送り状の貨物はシステム入力工程を通りますが、システム送り状の貨物は通りません。

 

また、この会社では書類小包を扱っています。

書類は決められたサイズのパッケージに入る書類は、すべて同一サイズと認識します。

これに対して小包は、実重量容積重量のうち大きい方を課金重量とします。

容積重量は、

容積重量(kg)=縦(cm)×横(cm)×高さ(cm)÷6,000 (cm3/kg)

で計算されるため、三辺の寸法を測る必要があります。

トラック/航空/海上貨物で容積重量の計算方法が違うのはなぜ?

つまり、小包貨物は採寸工程を通りますが、書類貨物は通りません。

 

図に描くと次のようになります。

 

このように、

  1. 任意の工程から作業がスタートする
  2. 場合により特定の工程をスキップする

という業務フローになります。

開放型待ち行列モデルとは、更に一般化した次のような待ち行列モデルになります。

  1. 任意の工程から作業がスタートする
  2. ある工程が終了後、任意の工程に遷移する
  3. ある工程が終了後、いつでも作業を終了できる

このように自由度の高い業務フローを解析することができます。

 

開放型待ち行列の解析方法

一般化した図

開放型待ち行列の特徴である①どこからでもスタートできる、②どの工程にも遷移できる、③いつでも終了できるということを図で表すと、次のように描くことができます。

但し、

ri:系外から工程iに入る到着率

Pij:工程iから工程jに遷移する確率

μi:工程iの処理スピード

です。

 

でも、このままだと③いつでも終了できるを表せていなさそうに思えますね。

しかし、その確率は次式で計算することができます。

今、工程iを終了したところだとすると、そこから工程jに遷移する確率はPijです。

ですので、これをj=1~Kまで変化させて合計すれば、工程iからいずれかの工程に遷移する確率になります。

よって、1からその合計確率を引けば、他の工程に遷移しない確率=終了する確率となるのです。

 

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

M/M/1モデルであろうとM/M/Cモデルであろうと、λとμとcがわかれば、

ρ=λ/μ(M/M/1の場合)

ρ=λ/cμ(M/M/Cの場合)

から待ち人数も待ち時間も求められます。

 

μは各工程の処理スピードなので与えられている条件です。

問題は到着率λです。

わかっているのは系外から各工程への到着率riです。

rとλの違いは何でしょうか?

それは次のように考えるとよくわかります。

 

工程iに到着する人(またはモノ)は系外から直接来る他に、各工程からもやって来ます。

そしてその到着スピードは、系外から来る人はi、工程1から来る人はλ1P1i、工程2から来る人はλ2P2i、、、工程Kから来る人はλKPKiです。

このことから

が導けます。

これで各工程におけるλiが求まりましたので、これを各工程の処理スピードであるμiで割れば、各工程におけるρiが求まります。

あとはM/M/1M/M/Cの公式を使うことによって、待ち人数や待ち時間を計算することができます。

本記事ではこのλi実質的な到着率と呼ぶことにします。

 

宅配便集荷作業への適用事例

問題設定

宅配便会社Aでは夕方になると各地区で小型トラックにより集配された貨物が集配センターに集まってきます。

これらの貨物はシステム入力⇨採寸⇨仕分けの工程を経て大型トラックに積められ、夜間にハブセンターへ送られます。

貨物の種類によって最初に投入される工程が次のように異なります。

 

手書き送り状の貨物・・・システム入力から

システム送り状の小包・・・採寸から

システム送り状の書類・・・仕分けから

 

そして各工程へ貨物が投入されるスピードλiと、処理スピードμiは次の通りです。

 

システム入力・・・λ1=70個/時、μ1=90個/時

採寸・・・λ2=10個/時、μ2=40個/時

仕分け・・・λ3=20個/時、μ3=120個/時

 

またシステム入力が終わった貨物は40%(小包)が採寸工程へ、60%(書類)が仕分け工程へと送られます。

この時、貨物1個を処理するサイクルタイムは何分になるでしょうか?

 

考え方

開放型待ち行列として条件を書き入れると、次のようになります。

 

まずは各工程の実質的な到着率λiがいくつになるかを求めます。

そのために式1を各工程に適用していくと次のようになります。

 

λ1=r170

λ2=r2λ1*0.4=38

λ3=r3λ1*0.6+λ2=100

 

これで各工程の実質的な到着率λiと離脱率μiがすべてわかりましたので、あとはM/M/1モデルの公式を使えば各工程における滞在時間が求まります。

そしてそれらを合計すれば、全体のサイクルタイムがわかるというわけです。

 

M/M/1モデルの公式を適用する

各工程における滞在時間Wを求めるには、まず各工程における滞在個数Lを求める必要があります。

L=ρ/(1-ρ)

【待ち行列|M/M/1モデル】5つの定理の証明方法と物流への適用事例

 

各工程につきLiを計算すると次のようになります。

L1ρ1/(1-ρ1)=(70/90)/(1-70/90)=3.5

L2=ρ2/(1-ρ2)=(38/40)/(1-38/40)=19

L3=ρ3/(1-ρ3)=(100/120)/(1-100/120)=5

 

よって、全工程に滞在する個数は

L=L1+L2+L3=3.5+19+5=27.5

になります。

ここでリトルの法則を適用すると、全工程に貨物が滞在する時間は

W=L/λ

で計算できます。

今知りたいのは、外部から入ってきた貨物がどれくらいの間、系内に滞在するかですので、外部から全工程に入る貨物の到着率を合計して、

λ=r1+r2+r3=70+10+20=100

とします。

よって、全工程に1つの貨物が滞在する時間(1つの貨物が最初の工程に入ってから最後の工程を出るまでにかかる平均時間サイクルタイム)は

W=27.5/100=0.275時間=16.5

となります。

 

最後に

直列型待ち行列モデルでは、

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

の条件を満たせれば各工程を独立に解析できましたが、開放型待ち行列でもその条件が満たされていることを前提としています。

その上で、

  1. 任意の工程から作業がスタートする
  2. ある工程が終了後、任意の工程に遷移する
  3. ある工程が終了後、いつでも作業を終了できる

という自由度の高い業務フローを解析するための手法になります。

今回は説明を簡単にするために各工程がM/M/1モデルである事例を扱いましたが、勿論M/M/Cモデルであっても同じように計算できます。

 

 

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…