【新規性喪失の例外の表示】特許法第30条第2項適用 (1)平成31年2月6日 東京工業大学 工学院 経営工学系 経営工学コース 修士論文発表会 (2)平成31年2月 東京工業大学修士論文「大規模な物流倉庫における商品のピッキング最適化アルゴリズムの研究」 (3)平成31年3月13日 日本オペレーションズ・リサーチ学会2019年春季研究発表会アブストラクト集 (4)平成31年3月15日(開催期間 平成31年3月14日から平成31年3月15日) 日本オペレーションズ・リサーチ学会2019年春季研究発表会
(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0011】
以下、本開示の実施形態について図面に基づき詳細に説明する。
【0012】
図1は、物流倉庫の一例を示す平面図である。以下では、同図に示される物流倉庫10に、本実施形態に係る作業バッチ生成装置100(
図3参照)が使用される例について説明する。
図1に示すように、物流倉庫10では、それぞれ多数の在庫商品を収容する収納ブロック11a〜23bがマトリックス状に整列配置されており、収納ブロック群の横には商品受渡しエリア30が設けられている。
【0013】
図2に示すように、収納ブロック11a〜13bは、図中上側の領域A1にマトリックス状に整列配置されており、収納ブロック21a〜23bは、図中下側の領域A2にマトリックス状に整列配置されている。すなわち、領域A1では、ブロック列C1に沿って収納ブロック11a,11bが配置され、その隣(図中左側)のブロック列C2に沿って収納ブロック12a,12bが配置されている。さらに、その隣(図中左側)のブロック列C3に沿って収納ブロック13a,13bが配置されている。同様に、領域A2では、ブロック列C1に沿って収納ブロック21a,21bが配置され、その隣(図中左側)のブロック列C2に沿って収納ブロック22a,22bが配置されている。さらに、その隣(図中左側)のブロック列C3に沿って収納ブロック23a,23bが配置されている。
【0014】
領域A1と領域A2の間にはメイン通路50が設けられており、メイン通路50には、該メイン通路50に直交する交差通路52が設けられている。すなわち、ブロック列C1〜C3の間、ブロック列C1の右側、及びブロック列C3の左側に交差通路52が設けられている。以下ではメイン通路50の延伸方向をX方向といい、交差通路52の延伸方向をY方向という。
【0015】
収納ブロック11a〜23bは、いずれも3×2個の商品棚を含んでいる。商品棚は3つずつ横に(Y方向に)並べられ、それらが互いに背中合わせにして配置されている。収納ブロック11a〜23bに含まれる商品棚は、いずれかの交差通路52に面しており、いずれかの交差通路52から商品をピッキングできる。
【0016】
領域A1では、収納ブロック11a,12a,13aと、収納ブロック11b,12b,13bの間にサブ通路51が設けられており、収納ブロック11a,12a,13aのメイン通路50とは反対側にもサブ通路51が設けられている。同様に領域A2では、収納ブロック21a,22a,23aと、収納ブロック21b,22b,23bの間にサブ通路51が設けられており、収納ブロック21a,22a,23aのメイン通路50とは反対側にもサブ通路51が設けられている。
【0017】
ピッキング作業者60(
図1参照)は、商品受渡しエリア30から出発し、メイン通路50、サブ通路51及び交差通路52を移動して、例えば紙媒体で配布されたり、或いはタブレットなどの電子端末に表示されたりする作業バッチにより指示された商品を、指示された順序でピッキングしてカートに入れ、商品受渡しエリア30に持ち帰る。こうしてピッキングされた商品に対して、図示しない発送エリアにおいて梱包などの発送作業がさらに行われる。
【0018】
図3は、作業バッチ生成装置のハードウェア構成図である。作業バッチ生成装置100は、例えば物流倉庫10の隅に配置されており、所定数の注文データが蓄積されるたびに、それらをピッキング作業者60と同数の作業バッチに仕訳ける。作業バッチ生成装置100は、一般的なパーソナルコンピュータにより構成されてよく、CPUなどのプロセッサ101、RAMなどのメモリ102、ストレージ103、通信インタフェース104、ポインティングデバイスやキーボードなどの入力部105、LCDやOLEDなどのディスプレイ106及びプリンタ107を含んでよい。通信インタフェース104はLAN又はインターネットに接続されており、図示しない受注コンピュータと作業バッチ生成装置100との間でデータ通信が可能となっている。特に、作業バッチ生成装置100は商品に対する注文が発生するたびに受注コンピュータから注文データを受信する。ストレージ103はHDDやSSDであってよく、本開示に係る作業バッチ生成方法を実行するためのプログラムが特にインストールされている。また、上述のようにして受注コンピュータから受信される注文データが順次蓄積される。
【0019】
図4は、作業バッチ生成装置100が受注システムから受信する注文データ群を模式的に示す図である。各注文データOiは、1注文の内容を示しており、当該注文により顧客から発送要求された1又は複数の商品の情報を含む。各商品の情報は、例えば商品のID、商品の名称、商品の物流倉庫10における保管位置情報を含む。保管位置情報は、ここでは収納ブロックの識別情報、そこに含まれる収納棚の識別情報、当該収納棚の座標(物流倉庫10のフロアにおけるXY座標)が含まれてよい。
【0020】
図5は、作業バッチ生成装置100により生成される作業バッチ群を模式的に示す図である。作業バッチ生成装置100は、ピッキングの作業指示を含む注文データO1〜Onのそれぞれを、ピッキング作業者60と同数の作業バッチB1,B2,B3,…のいずれかに割り当てる。1注文データに複数の商品の情報が含まれる場合、それら複数の商品の情報が異なる作業バッチに割り当てられることはない。作業バッチB1,B2,B3,…は、各ピッキング作業者の移動距離の総和(コスト)ができるだけ短くなるようにして生成される。なお、各作業バッチに含まれる注文データの数は所定数以下に制限されてよい。或いは、各作業バッチに含まれる商品の数が所定数以下に制限されてよい。作業バッチB1,B2,B3,…には、その作業バッチに割り当てられた注文データに含まれる商品の情報が、商品をピッキングすべき順序で記述されている。
【0021】
こうして生成される作業バッチをピッキング作業者に電子データ形式で配布する場合、作業バッチ生成装置100は、作業バッチB1,B2,B3,…のデータを、通信インタフェース104を介して各ピッキング作業者が所持している電子端末に送信する。また、紙媒体で作業バッチを配布する場合には、作業バッチ生成装置100はプリンタ107により作業バッチB1,B2,B3,…を印刷する。
【0022】
図6は、作業バッチ生成装置100における作業バッチ生成処理を示すフロー図である。同図に示す処理は、ストレージ103に格納されたプログラムをプロセッサ101が実行することにより、実現されるものである。同図に示すように、作業バッチ生成装置100はまず、ストレージ103に蓄積されている注文データO1〜Onを読み出す(S1)。次に、S1で読みだされた注文データO1〜Onに基づいてピッキング作業者60と同数の初期作業バッチを生成する(S2)。初期作業バッチは、例えばClarke及びWrightにより提案されたセービング法を利用して作成でき、ここでは作業バッチ群の近似解が得られる。次に、この初期作業バッチに対して、本開示に係る第1の局所探索処理が適用され、改良された作業バッチが得られる(S3)。こうして改良された作業バッチに対して、本開示に係る第2の局所探索処理がさらに適用され、さらに改良された作業バッチが得られる(S4)。その後、作業バッチ生成装置100はプリンタ107又は通信インタフェース104により作業バッチB1,B2,B3,…を出力する(S5)。
【0023】
図7は、
図6のS1に示される初期バッチ群の生成処理の一例を示すフロー図である。同図に示すように、この処理では作業バッチ生成装置100は、まず注文データO1〜Onのそれぞれに1つの作業バッチを割り当てる(S21)。すなわち、この段階では注文データの数と作業バッチの数が等しい。次に、作業バッチのすべての組み合わせについて、それらを結合した場合におけるコスト削減量を計算する(S22)。コスト削減量は、結合前後におけるコストの差である。コストは、各作業バッチの実施に必要な個別コストの総和である。ここで個別コストは、作業バッチに割り当てられた注文データの全商品を物流倉庫10においてピッキングするのに必要な移動距離である。
【0024】
作業バッチ生成装置100は、次にコスト削減量に基づいて作業バッチの対を特定する(S23)。ここでは、結合することによりコストが最も削減される作業バッチの対を特定する。そして、特定された作業バッチの対に含まれる注文データの総数が事前に定められた上限数C未満かを調べる(S24)。注文データの総数が上限数C未満であれば、特定された作業バッチの対を結合し、これにより作業バッチの数を1つ減らす(S26)。一方、注文データの総数が上限数C以上であれば、S23で特定された作業バッチの対を結合対象から除外し(S25)、再びS23の処理を実行する。なお、S23においてコスト削減が可能なバッチ対が存在しない場合には、一部の作業バッチを再び複数の作業バッチに分解し、S22移行の処理を再度実行すればよい。こうして、作業バッチの数がMに達すれば処理を終了する(S27)。
【0025】
ここで、作業バッチのコスト計算について説明する。
図8は、物流倉庫10の各収納棚に付与されたピッキング順位を示す図である。物流倉庫10には、同図に矢印で示されるように基本移動経路が設定されており、この基本移動経路にしたがって各収納棚にはピッキング順位が付与されている。具体的には、基本移動経路において、より上流の位置においてピッキングできる収納棚ほど上位のピッキング順位が付与されており、逆により下流の位置でないとピッキングできない収納棚ほど下位のピッキング順位が付与されている。
図7のS22においては、このピッキング順位に従って、作業バッチの結合前後における、ピッキング順序を決定する。すなわち、作業バッチに含まれる商品が収納された収納棚のピッキング順位を調べ、ピッキング順位が上位の収納棚に収納された商品ほど先にピッキングするよう、作業バッチに含まれる全商品のピッキング順序を定める。次に、こうして定められたピッキング順序にて各商品をピッキングする際の移動距離を決定する。
【0026】
図9(a)に示すように、ピッキング作業者60がある時点で到達すべき収納棚(図中ハッチングで示す)が面している交差通路52と、メイン通路50又はサブ通路51との交点であるP2及びP3のY座標と、次の時点で到達すべき収納棚(図中網掛けで示す)が面している交差通路52と、メイン通路50又はサブ通路51との交点であるP1及びP4のY座標と、それぞれ等しい場合には、移動経路として図中のR1及びR2のように2通りが存在する。このような場合は両経路R1及びR2のうち短い方を選択し、その距離をコストとする。その他の場合は、
図9(b)(c)に示すように、移動経路は1通りだけであり、単純にマンハッタン距離をコストとする。このように、
図7のS22においては、収納棚のピッキング順位に従って、作業バッチに含まれる商品のピッキング順序を一意に定めるので、作業バッチのコスト(総移動距離)の計算量が比較的少ない。なお、メイン通路50、サブ通路51及び交差通路52に対して重みを適宜設定し、その単位距離あたりの移動コストを異ならせてもよい。
【0027】
次に
図10は、第1の局所探索処理を示すフロー図である。この処理は、公知の焼きなまし法を改良したものである。この処理では、まず各作業バッチから交換候補となる注文を選出する(S31)。この選出は、
図11に示される選出処理により行う。なお、従来技術では、S31において各作業バッチから交換候補となる注文をランダムに選択する。
【0028】
次に、すべての作業バッチの対について、それらの交換候補となる注文を交換させた前後におけるコストの差、すなわちコスト削減量を計算する(S32)。このコスト削減量の計算においても、
図8及び
図9で説明した方法によりコストの計算を行ってよい。そして、コスト削減量が最大となる交換操作(すなわち作業バッチの対)を特定する(S33)。
【0029】
こうして特定された交換操作のコスト削減量が正であれば(S34)、特定された交換操作を実際に実行する(S35)。また、S33で特定された交換操作のコスト削減量がゼロ又は負であったとしても、確率的に当該交換操作を実行する(S36)。
【0030】
その後、S31乃至S36の処理の反復回数が上限回数に達するまで(S37)、S31に戻って処理を繰り返す。なお、S36においては、現在までの反復回数が多ければ多いほど交換操作を実行する確率が低くなり、S33で特定される交換操作のコスト削減量が大きいほど確率が高くなるようにしてよい。
【0031】
図11は、
図10のS31における交換候補の選出処理の詳細を示すフロー図である。同図に示すように、この処理ではまず、注目している作業バッチから各注文を取り除く減少操作を適用した場合のコスト削減量を計算する(S311)。なお、減少操作は、非交換操作の一例である。S311の計算においても、
図8及び
図9で説明した方法によりコストの計算を行ってよい。次に、S311で計算されるコスト削減量に基づいて各注文に確率を設定する(S312)。ここでは、減少操作を適用した場合のコスト削減量が大きいほど確率を高くする。なお、コスト削減量が零であったとしても、確率をゼロにしないようにしてよい。その後、乱数を発生させ、発生した乱数に基づいて、1の注文をS312で設定した確率で選択する(S313)。例えば、各注文に、該注文に設定された確率に比例する広さの数値範囲を割当て、発生した乱数が属する数値範囲が割当てられた注文を選択する。以上の処理は、すべての作業バッチに適用され、すべての作業バッチから交換候補となる注文が選出される。
【0032】
図12は、S312における確率設定の一例を示す図である。ある作業バッチに注文A〜Dが含まれるとして、注文A及びBについては、それらを作業バッチから取り除いたとしてもコスト削減しないものとする。一方、注文Cを作業バッチから取り除くと1000のコスト削減が可能であり、注文Dを作業バッチから取り除くと2000のコスト削減が可能であるとする。この場合、注文A及びB、すなわちコスト削減に寄与しない注文には全体として確率αを付与し(1>α>0)、注文C及びD、すなわちコスト削減に寄与する注文には全体として確率1−αを付与する。注文A及びBには確率αを等分して分配し、それぞれ確率α/2が付与される。注文C及びDについては、確率1−αを、それぞれのコスト削減量に比例するよう分配する。
【0033】
図11及び
図12に示す処理によれば、ある作業バッチにおいて各注文を減少させる減少操作が適用され、減少操作の前後におけるコスト削減量が計算される。そして、計算されたコスト削減量に応じた確率で、いずれかの減少操作(注文)が選択される。この減少操作に対応する注文が交換候補となり、
図10のS32乃至S36の処理により、候補となった注文が実際に交換される。すなわち、S313で選択された減少操作に対応する交換操作がそのコスト削減量に応じて実行される。このようにすれば、各作業バッチからランダムに交換候補を選出するのに比して、最終的なコスト削減につながりやすい(
図10のS34においてYとなりやすい)交換候補を選出することができ、局所探索による改善スピードが向上する。
【0034】
次に
図13は、第2の局所探索処理を示すフロー図である。同図に示す処理では、まずすべての注文について、他の作業バッチに移すシフト操作を適用した場合のコスト削減量を計算する。そして、コスト削減量が最大となるシフト先の作業バッチを特定する(S41)。
図14は、S41の計算結果の一例を示している。同図に示すように、一例として、注文O4は作業バッチB1から作業バッチB3に移すと、コスト削減量が2000となり、他の作業バッチに移すよりも最もコスト削減量が大きい。このように、すべての注文について、最善のシフト先である作業バッチ、及びそのシフトによるコスト削減量を計算する。S41の計算においても、
図8及び
図9で説明した方法によりコストの計算を行ってよい。
【0035】
次に、S41の計算結果から、コスト削減量が正のシフト操作を、例えばコスト削減量が大きな順で選択する(S42)。
図14の例では、7000がコスト削減量の最大値であり、注文O7を作業バッチB3から作業バッチB2に移動させるシフト操作が選択される。さらに、S41の計算結果から、S42で選択されたシフト操作によるシフト先である作業バッチから、S42で選択されたシフト操作によるシフト元である作業バッチへのシフト操作を、コスト削減量に基づいて選択する(S43)。ここで、S42で選択されたシフト操作によるコスト削減量と、S43で特定されるシフト操作によるコスト削減量と、の和が正になるようにする。和が0又は負になる場合には、S43においてそのようなシフト操作を選択しない。
【0036】
図15は、S41の計算結果のうち、シフト元が作業バッチB2のレコードのみを示している。シフト元が作業バッチB2である注文のうち、シフト先が作業バッチB3であるのは、注文O5、注文O6及び注文On−1である。上述のように、注文O7を作業バッチB3から作業バッチB2に移動せるシフト操作によるコスト削減量は7000であるので、上述の和が正となるのは注文O5及び注文O6であり、S43の処理では、このような注文が選択される。
【0037】
その後、S42で選択されるシフト操作により移動する注文と、S43で選択されるシフト操作により移動する各注文と、の交換操作によるコスト削減量を計算する(S44)。そして、コスト削減量が正であり、且つ最大となる交換操作となる交換操作を実際に実行する(S45)。
【0038】
S42において、コスト削減量が正であるシフト操作をすべて選択するまで(S46)、S42乃至S45の処理を繰り返す。また、S41の処理を上限回数Mだけ実行するよう、S41乃至S46の処理を繰り返す(S47)。
【0039】
以上の処理においても、非交換操作であるシフト操作を適用した前後におけるコスト削減量を計算し(S41)、計算されたコスト削減量に基づいてシフト操作を選択している(S42及びS43)。そして、選択されたシフト操作に対応する交換操作をそのコスト削減量に応じて実行している(S45)。この第2の局所探索処理によっても、最終的なコスト削減につながりやすい(
図13のS44において大きなコスト削減量が算出されやすい)交換操作が選択的に実行されるので、局所探索による改善スピードを向上できる。
【0040】
また、第2の局所探索処理では、S44においてコスト削減量を計算する交換操作の数を少数に制限できる。そこで、S44においては、より厳密なコスト削減量の計算を実行することにしてよい。すなわち、S41等の計算では、作業バッチに含まれる商品のピッキング順序は、簡易的に、その商品が収納される収納棚のピッキング順位に基づいて一意に決定されていたが、複数候補の中から、コストに基づいて、よりコストの低い順序を決定してよい。
【0041】
図16は、複数の収納棚から順次商品をピッキングするための、より短い移動経路の決定方法を説明する図である。この方法では、ピッキング作業者は、領域A1でのピッキングをブロック列C1、C2及びC3の順に行い、次に領域A2でのピッキングをブロック列C3、C2及びC1の順に行うものとする。ただし、
図16に示すように、ピッキング作業者は交差通路52を、メイン通路50に近づく向き(下向き)又は遠ざかる向き(上向き)に移動するものとする。
【0042】
図17は、複数の収納棚から順次商品をピッキングする移動経路の具体例を示す図である。
図17において、地点1乃至地点12の収納棚にピッキング作業者が立寄る必要がある場合には、商品受渡しエリア30からスタートした後、ピッキング作業者には各交差通路52において2つの移動方向の選択肢がある。このため、ピッキング順序の選択肢は
図18に示される有向グラフにより示されることになる。
【0043】
ここで、グラフの頂点を同図に示すv0からv15としたとき、グラフの枝eijは頂点viから頂点vjへの移動を示すものとする。枝eijのコストwijは、頂点viに対応する経路部分での最後のピッキング箇所から頂点vjに対応する経路部分での最初のピッキング箇所までの距離Laと、頂点vjに対応する経路部分での最初のピッキング箇所から頂点vjの最後のピッキング箇所までの距離Laと、の和として定められる。距離La及びLbは、
図8及び
図9で説明した方法により計算してよい。頂点v0からv15に至るコストwijの総和を最小化する枝eijを、例えば動的計画法により計算することで、よりコストの低いピッキング順序を決定することができる。
【0044】
以上説明した作業バッチ生成装置100によれば、一の作業バッチにおける一の注文の減少をそれぞれ伴う複数の非交換操作(注文の減少操作やシフト操作)を適用した前後でのコスト変化量を計算して、計算されたコスト変化量に基づいて非交換操作を選択する。そして、こうして選択される非交換操作に対応する交換操作を作業バッチ群に適用する。特定の非交換操作により削減されるコストが大きい場合には、その非交換操作に対応する交換操作もコスト削減効果が高いと期待でき、局所探索による作業バッチの改善スピードを向上できる。
【0045】
本発明の範囲は上記実施形態に限定されず、種々の変形が可能であり、そのような変形も本発明の範囲に含まれる。たとえば、以上の説明では物流倉庫10における商品のピッキングに本発明を適用する例を示したが、商品の配送についても同様に本発明を適用することができる。また、他の作業についても、そのコスト関数を適宜選択することにより、本発明を適用することができる。