(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-10-11
(45)【発行日】2022-10-19
(54)【発明の名称】パラメータ探索装置、パラメータ探索方法、及びプログラム
(51)【国際特許分類】
G06F 17/10 20060101AFI20221012BHJP
G06N 99/00 20190101ALI20221012BHJP
【FI】
G06F17/10 Z
G06N99/00 180
(21)【出願番号】P 2018116286
(22)【出願日】2018-06-19
【審査請求日】2021-05-12
(73)【特許権者】
【識別番号】000232092
【氏名又は名称】NECソリューションイノベータ株式会社
(74)【代理人】
【識別番号】100103894
【氏名又は名称】家入 健
(72)【発明者】
【氏名】伊藤 雅次
(72)【発明者】
【氏名】宇田 安規男
(72)【発明者】
【氏名】天羽 孝行
(72)【発明者】
【氏名】常友 哲也
【審査官】田中 幸雄
(56)【参考文献】
【文献】特表2005-527034(JP,A)
【文献】特開2005-304118(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 17/10
G06N 99/00
(57)【特許請求の範囲】
【請求項1】
N(Nは2以上の自然数)個のパラメータを軸とする所定のN次元空間をマス目状に分割する分割部と、
前記所定のN次元空間上のマスの中から、当該マスに対応するN個のパラメータのそれぞれの値を用いて得られる目的関数の値が最小値となるマスを探索する探索部と、
前記目的関数の値が最小値となるマスに対応するN個のパラメータのそれぞれの値を最適解に決定する決定部と、
を備え
、
前記探索部は、
前記所定のN次元空間上のマスの1つを開始点とし、
開始点とする現マス及びその周囲のマスの前記目的関数の値を計算し、開始点のマスの周囲のマスのうち前記目的関数の値が最小である周囲のマスに移動し、移動先のマスを新たな現マスとする探索処理を再帰的に実行し、
前記探索処理で探索対象であった周囲のマスを見つけられなかった場合、現マスが前記所定のN次元空間上のマスの中で前記目的関数の値が最小値となるマスであると判断し、
前記目的関数は、N個のパラメータのそれぞれの値を決定する複数の指標のそれぞれの値を、前記指標毎に計算された除数で除算し、かつ、前記指標毎に設定された重み係数で乗算した上で、加算した関数であり、
前記探索部は、
前記所定のN次元空間上のマスの前記目的関数の値を計算する場合、当該マスに対応するN個のパラメータのそれぞれの値となるように前記複数の指標のそれぞれの値を計算し、計算した前記複数の指標のそれぞれの値を前記目的関数に代入する、
パラメータ探索装置。
【請求項2】
前記探索処理は、
マスの探索方向が互いに異なるN個の探索モードを含み、
前記探索部は、
N個の探索モードを切り替えながら、前記探索処理を実行する、
請求項
1に記載のパラメータ探索装置。
【請求項3】
前記探索部は、
前記指標毎の前記除数を、前記開始点のマスにおける当該指標の値を基に計算する、
請求項
1に記載のパラメータ探索装置。
【請求項4】
前記探索部は、
前記指標毎の前記除数を、マスを移動する度に計算し、
移動先のマスで周囲を探索するのに使用する前記目的関数の前記指標毎の前記除数を、移動先のマスにおける当該指標の値とする、
請求項
1に記載のパラメータ探索装置。
【請求項5】
パラメータ探索装置によるパラメータ探索方法であって、
N(Nは2以上の自然数)個のパラメータを軸とする所定のN次元空間をマス目状に分割するステップと、
前記所定のN次元空間上のマスの中から、当該マスに対応するN個のパラメータのそれぞれの値を用いて得られる目的関数の値が最小値となるマスを探索する
探索ステップと、
前記目的関数の値が最小値となるマスに対応するN個のパラメータのそれぞれの値を最適解に決定するステップと、
を含
み、
前記探索ステップでは、
前記所定のN次元空間上のマスの1つを開始点とし、
開始点とする現マス及びその周囲のマスの前記目的関数の値を計算し、開始点のマスの周囲のマスのうち前記目的関数の値が最小である周囲のマスに移動し、移動先のマスを新たな現マスとする探索処理を再帰的に実行し、
前記探索処理で探索対象であった周囲のマスを見つけられなかった場合、現マスが前記所定のN次元空間上のマスの中で前記目的関数の値が最小値となるマスであると判断し、
前記目的関数は、N個のパラメータのそれぞれの値を決定する複数の指標のそれぞれの値を、前記指標毎に計算された除数で除算し、かつ、前記指標毎に設定された重み係数で乗算した上で、加算した関数であり、
前記探索ステップでは、
前記所定のN次元空間上のマスの前記目的関数の値を計算する場合、当該マスに対応するN個のパラメータのそれぞれの値となるように前記複数の指標のそれぞれの値を計算し、計算した前記複数の指標のそれぞれの値を前記目的関数に代入する、
パラメータ探索方法。
【請求項6】
コンピュータを、
N(Nは2以上の自然数)個のパラメータを軸とする所定のN次元空間をマス目状に分割する分割手段と、
前記所定のN次元空間上のマスの中から、当該マスに対応するN個のパラメータのそれぞれの値を用いて得られる目的関数の値が最小値となるマスを探索する探索手段と、
前記目的関数の値が最小値となるマスに対応するN個のパラメータのそれぞれの値を最適解に決定する決定手段と、
として機能させるためのプログラム
であって、
前記探索手段は、
前記所定のN次元空間上のマスの1つを開始点とし、
開始点とする現マス及びその周囲のマスの前記目的関数の値を計算し、開始点のマスの周囲のマスのうち前記目的関数の値が最小である周囲のマスに移動し、移動先のマスを新たな現マスとする探索処理を再帰的に実行し、
前記探索処理で探索対象であった周囲のマスを見つけられなかった場合、現マスが前記所定のN次元空間上のマスの中で前記目的関数の値が最小値となるマスであると判断し、
前記目的関数は、N個のパラメータのそれぞれの値を決定する複数の指標のそれぞれの値を、前記指標毎に計算された除数で除算し、かつ、前記指標毎に設定された重み係数で乗算した上で、加算した関数であり、
前記探索手段は、
前記所定のN次元空間上のマスの前記目的関数の値を計算する場合、当該マスに対応するN個のパラメータのそれぞれの値となるように前記複数の指標のそれぞれの値を計算し、計算した前記複数の指標のそれぞれの値を前記目的関数に代入する、
プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、パラメータ探索装置、パラメータ探索方法、及びプログラムに関する。
【背景技術】
【0002】
図1を参照して、物流センター等における商品の在庫数の時系列的な変化について説明する。
図1は、物流センター等における商品の在庫数の時系列データの例を示す図である。
図1において、横軸は時間、縦軸は商品の在庫数である。
また、
図1の縦軸において、最大在庫数は、商品の必要最大限の在庫数である。平均在庫数は、特定期間中の商品の在庫数の平均値である。発注点数は、商品を発注するタイミングの基準となる在庫数であり、商品の在庫数が発注点数まで減少すると、商品を発注する。安全在庫数は、商品の品切れや欠品を防ぐために必要となる在庫数である。
【0003】
また、
図1の横軸において、最大在庫日数(=保有日数)は、最大在庫数分の商品が減少して0になるまでの日数である。発注リードタイム日数は、商品の調達に要する日数である。安全在庫日数は、安全在庫数分の商品が減少して0になるまでの日数である。安全在庫日数は、安全在庫数を平均出荷数で除算することで求められる。
【0004】
図1の例では、商品の在庫数が発注点数まで減少したタイミングで、商品の発注を行う。発注点数は、最大在庫日数及び安全在庫日数を基に求められる。従って、適切なタイミングで商品の発注を行うには、発注点数を決定するパラメータとしての最大在庫日数及び安全在庫日数を適切に設定する必要がある。
【0005】
従来、最大在庫日数及び安全在庫日数は、ユーザが過去の経験に基づき手動で設定していた。しかし、最大在庫日数及び安全在庫日数は、平均在庫日数、発注回数といった複数の指標に依存して決定されるものであるため、経験豊富なユーザであっても、最大在庫日数及び安全在庫日数を適切に設定することは困難であった。
【0006】
そのため、最近は、AI(Artificial Intelligence)技術を利用して、パラメータの最適解を探索する技術が提案されている。例えば、特許文献1,2には、勾配降下法を利用して、パラメータの最適解を探索する技術が開示されている。
【先行技術文献】
【特許文献】
【0007】
【文献】特許第4349271号公報
【文献】特表2005-527034号公報
【発明の概要】
【発明が解決しようとする課題】
【0008】
しかし、特許文献1,2に開示されるような一般的な勾配降下法は、パラメータの最適解の探索に微分を利用するものであるため、探索に複雑な計算が必要であり、探索に時間が掛かるといった問題がある。
【0009】
そこで、本開示の目的は、上述した課題を解決し、複雑な計算を行うことなく、パラメータの最適解を探索することができるパラメータ探索装置、パラメータ探索方法、及びプログラムを提供することにある。
【課題を解決するための手段】
【0010】
一態様によるパラメータ探索装置は、
N(Nは2以上の自然数)個のパラメータを軸とする所定のN次元空間をマス目状に分割する分割部と、
前記所定のN次元空間上のマスの中から、当該マスに対応するN個のパラメータのそれぞれの値を用いて得られる目的関数の値が最小値となるマスを探索する探索部と、
前記目的関数の値が最小値となるマスに対応するN個のパラメータのそれぞれの値を最適解に決定する決定部と、
を備える。
【0011】
一態様によるパラメータ探索方法は、
パラメータ探索装置によるパラメータ探索方法であって、
N(Nは2以上の自然数)個のパラメータを軸とする所定のN次元空間をマス目状に分割するステップと、
前記所定のN次元空間上のマスの中から、当該マスに対応するN個のパラメータのそれぞれの値を用いて得られる目的関数の値が最小値となるマスを探索するステップと、
前記目的関数の値が最小値となるマスに対応するN個のパラメータのそれぞれの値を最適解に決定するステップと、
を含む。
【0012】
一態様によるプログラムは、
コンピュータを、
N(Nは2以上の自然数)個のパラメータを軸とする所定のN次元空間をマス目状に分割する分割手段と、
前記所定のN次元空間上のマスの中から、当該マスに対応するN個のパラメータのそれぞれの値を用いて得られる目的関数の値が最小値となるマスを探索する探索手段と、
前記目的関数の値が最小値となるマスに対応するN個のパラメータのそれぞれの値を最適解に決定する決定手段と、
として機能させる。
【発明の効果】
【0013】
上記の態様によれば、複雑な計算を行うことなく、パラメータを探索することができるパラメータ探索装置、パラメータ探索方法、及びプログラムを提供できるという効果が得られる。
【図面の簡単な説明】
【0014】
【
図1】物流センター等における商品の在庫数の時系列データの例を示す図である。
【
図2】実施の形態に係るパラメータ探索装置の構成例を示すブロック図である。
【
図3】実施の形態に係る探索部によるマスの探索方法のイメージ例を示す図である。
【
図4】実施の形態に係る探索部によるマスの探索方法の例を示す図である。
【
図5】実施の形態に係る探索部によるマスの探索方法の例を示す図である。
【
図6】実施の形態に係る探索部が
図5の方法でマスを探索する場合の探索経路の例を示す図である。
【
図7】実施の形態に係るパラメータ探索装置によるパラメータ探索方法の例を示すフロー図である。
【
図8】
図7のステップS102の処理の例を示すフロー図である。
【
図9】実施の形態に係る探索部が
図8の方法でマスを探索する場合の探索経路の例を示す図である。
【
図10】実施の形態に係る探索部によるマスの探索方法の例を示す図である。
【
図11】実施の形態に係るパラメータ探索装置を概念的に示したパラメータ探索装置の構成例を示すブロック図である。
【発明を実施するための形態】
【0015】
以下、図面を参照して本開示の実施の形態について説明する。なお、以下の記載及び図面は、説明の明確化のため、適宜、省略及び簡略化がなされている。また、以下の各図面において、同一の要素には同一の符号が付されており、必要に応じて重複説明は省略されている。
【0016】
<実施の形態>
本実施の形態においては、物流センター等における商品の最大在庫日数及び安全在庫日数という2個のパラメータの最適解を探索するものとする。また、商品の最大在庫日数及び安全在庫日数を決定する指標は、商品の平均在庫日数、平均在庫金額、発注回数、及び欠品率の4個であるものとする。
【0017】
ここで、平均在庫日数は、平均在庫数分の商品が減少して0になるまでの日数である。平均在庫金額は、特定期間中の商品の在庫金額累積を特定期間中の日数で除算することで求められる金額である。発注回数は、特定期間中の商品を発注した回数である。欠品率は、特定期間中の商品の注文に対して、商品を提供できなかった割合である。欠品率は、欠品数(受注数-出荷数)を受注数で除算することで求められる。
【0018】
まず、
図2を参照して、本実施の形態に係るパラメータ探索装置10の構成について説明する。
図2は、本実施の形態に係るパラメータ探索装置10の構成例を示すブロック図である。
図2に示されるように、本実施の形態に係るパラメータ探索装置10は、分割部11、探索部12、決定部13、及び入力部14を備えている。
【0019】
分割部11は、最大在庫日数及び安全在庫日数を軸とする所定の2次元空間をマス目状に分割する。
【0020】
探索部12は、所定の2次元空間上のマスについて、目的関数fの値を計算する機能を備えている。目的関数fは、例えば、次の数式(1)で表される。
【数1】
ここで、k
i(i=1~4)は、各指標の桁合わせをするための除数であり、指標毎に計算される。また、ω
iは、各指標の重要度に応じて各指標の重み付けをするための重み係数であり、指標毎に設定される。
【0021】
除数k
iは、例えば、探索部12により、後述の探索開始点となるマスにおける指標の値を基に、次の数式(2)で計算される。
【数2】
ここで、x
iは、指標である。また、floor(t)は、t以下の整数の中で最大の整数を求める床関数である。
これにより、後述の探索開始点となるマスでは、数式(1)におけるx
i/k
iの値は、0.5以上1.0未満になる。
【0022】
重み係数ωiは、例えば、全指標を等価とみなす場合は全て1.0に設定する。また、ωiは、例えば、欠品率の重要度が他の指標の重要度よりも高い場合は、欠品率のωiだけを2.0に設定し、他の指標のωiを1.0に設定するなどする。
重み係数ωiは、例えば、ユーザにより入力部14を介して入力される。
【0023】
探索部12は、所定の2次元空間上のマスについて、目的関数fの値を計算する場合、以下のようにして、計算を行う。
まず、探索部12は、該当するマスに対応する最大在庫日数及び安全在庫日数のそれぞれの値となるように、平均在庫日数、平均在庫金額、発注回数、及び欠品率のそれぞれの値を(シミュレーションなどで)計算する。
次に、探索部12は、上記で計算した平均在庫日数、平均在庫金額、発注回数、及び欠品率の値を、目的関数fに代入する。
これにより、該当するマスの目的関数fの値が計算される。
【0024】
探索部12は、所定の2次元空間上のマスの中から、目的関数fの値が最小値となるマスを探索する。
決定部13は、目的関数fの値が最小値となるマスに対応する最大在庫日数及び安全在庫日数のそれぞれの値を最適解に決定する。
入力部14は、ユーザにより各種入力が行われる部分であり、例えば、上述のように、指標xi毎に設定される重み係数ωiが入力される。
【0025】
ここで、
図3を参照して、本実施の形態に係る探索部12によるマスの探索方法のイメージについて説明する。
図3は、本実施の形態に係る探索部12によるマスの探索方法のイメージ例を示す図である。なお、
図3においては、所定の2次元空間の2軸を最大在庫日数及び安全在庫日数とし、この所定の2次元空間に対して垂直な軸を目的関数fとしている。
【0026】
図3に示されるように、探索部12は、所定の2次元空間上のマスの1つを探索開始点とし、目的関数fの値が最も大きく減少する方向(すなわち、傾斜が最も急な方向)にマスを移動させながら、目的関数fの値が最小値となるマスを探索する。
【0027】
ここで、
図4及び
図5を参照して、本実施の形態に係る探索部12によるマスの探索方法について詳細に説明する。
図4及び
図5は、本実施の形態に係る探索部12によるマスの探索方法の例を示す図である。
【0028】
図4の例では、まず、探索部12は、所定の2次元空間上のマスの1つを探索開始点に設定する。探索開始点のマスは、例えば、所定の2次元空間上のマスのうち、目的関数fの値が最大値となると推測されるマスに設定される。
【0029】
続いて、探索部12は、探索開始点のマス(現マスとする)及びその周囲8方向(すなわち、全周囲)のマスの目的関数fの値を計算し、周囲8方向のマスのうち目的関数fの値が最小であるマスに移動し、移動先のマスを新たな現マスとする。
【0030】
以降、探索部12は、現マス及びその周囲8方向のマスの目的関数fの値を計算し、現マスの周囲8方向のマスの中から、現マスよりも目的関数fの値が小さいマスを探索する探索処理を再帰的に実行する。ただし、探索範囲から外れるマス(日数が0未満になるマスなど)は探索対象外とする。
【0031】
探索部12は、探索処理で探索対象であった周囲のマスを見つけられなかった場合、現マスが所定の2次元空間上のマスの中で目的関数fの値が最小値となるマスであると判断し、マスの探索を終了する。
【0032】
ただし、
図4の例では、探索部12は、マスを移動する度に、現マスの周囲8方向のマスの目的関数fの値を全て計算するため、マスの探索時間が増大してしまうことが懸念される。
【0033】
図5の例は、
図4の例と比較して、マスの探索時間の短縮化を図るものである。
図5の例では、探索開始点のマスから移動した後に行う探索処理は、斜め探索モードと、上下左右探索モードと、の2個の探索モードを含んでいる。
【0034】
斜め探索モードは、現マス及びその周囲の斜め4方向のマスの目的関数fの値を計算し、現マスの周囲の斜め4方向のマスの中から、現マスよりも目的関数fの値が小さいマスを探索する処理である。
【0035】
上下左右探索モードは、現マス及びその周囲の上下左右4方向のマスの目的関数fの値を計算し、現マスの周囲の上下左右4方向のマスの中から、現マスよりも目的関数fの値が小さいマスを探索する処理である。
【0036】
図5の例は、探索開始点のマスから移動した移動方向が、斜め4方向のいずれかである場合の例である。この場合、探索開始点のマスの周囲のマスのうち目的関数fの値が最小であるのは、斜め方向のマスであることになる。そのため、探索開始点の近傍領域で最も傾斜が急な方向は、探索開始点のマスから斜め方向である確率が高いと考えられる。そのため、探索部12は、斜め探索モードを実行する。
【0037】
探索部12は、斜め探索モードで探索対象であった周囲のマスを見つけた場合は、斜め探索モードで見つけた周囲のマスのうち目的関数fの値が最小である周囲のマスに移動し、移動先のマスを新たな現マスとして、斜め探索モードを再帰的に実行する。このように、斜め探索モードで探索対象であった周囲のマスを見つけた場合は、上下左右4方向のマスの計算を省略できるため、マスの探索時間の短縮化を図ることが可能となる。
【0038】
一方、探索部12は、斜め探索モードで探索対象であった周囲のマスを見つけられなかった場合は、斜め探索モードを上下左右探索モードに切り替え、上下左右探索モードを実行する。探索部12は、上下左右探索モードで探索対象であった周囲のマスを見つけた場合は、上下左右探索モードで見つけた周囲のマスのうち目的関数fの値が最小である周囲のマスに移動し、移動先のマスを新たな現マスとして、上下左右探索モードを再帰的に実行する。逆に、探索部12は、上下左右探索モードでも探索対象であった周囲のマスを見つけられなかった場合は、現マスが所定の2次元空間上のマスの中で目的関数fの値が最小値となるマスであると判断し、マスの探索を終了する。
【0039】
このように、
図5の例では、探索部12は、斜め探索モードと上下左右探索モードとを切り替えながら、探索処理を実行する。そして、探索部12は、斜め探索モード及び上下左右探索モードの両方で探索対象であった周囲のマスを見つけられなかった場合、現マスが所定の2次元空間上のマスの中で目的関数fの値が最小値となるマスであると判断する。
【0040】
図6は、本実施の形態に係る探索部12が
図5の方法でマスを探索する場合の探索経路の例を示す図である。
図6の例では、左上のマスを探索開始点とし、まずは、斜め探索モードを実行し、続いて、上下左右探索モードへの切り替えを行い、その後、再度、斜め探索モードへの切り替えを行って、右下のマスで探索を終了している。すなわち、
図6の例では、所定の2次元空間上のマスの中で、右下のマスが、目的関数fの値が最小値となるマスであると判断されている。
【0041】
以下では、
図7を参照して、本実施の形態に係るパラメータ探索装置10によるパラメータ探索方法について説明する。
図7は、本実施の形態に係るパラメータ探索装置10によるパラメータ探索方法の例を示すフロー図である。
【0042】
図7に示されるように、分割部11は、最大在庫日数及び安全在庫日数を軸とする所定の2次元空間をマス目状に分割する(ステップS101)。例えば、1日単位で分割を行う。
探索部12は、所定の2次元空間上のマスの中から、目的関数fの値が最小値となるマスを探索する(ステップS102)。
決定部13は、目的関数fの値が最小値となるマスに対応する最大在庫日数及び安全在庫日数のそれぞれの値を最適解に決定する(ステップS103)。
【0043】
続いて、
図8を参照して、
図7のステップS102の処理について詳細に説明する。
図8は、
図7のステップS102の処理の例を示すフロー図である。なお、
図8は、
図5の方法によりマスの探索を行う場合の処理を示している。
【0044】
図8に示されるように、まず、探索部12は、所定の2次元空間上のマスの1つを探索開始点に決定する(ステップS201)。続いて、探索部12は、探索開始点のマス及びその周囲8方向のマスの目的関数fの値を計算し(ステップS202)、周囲8方向のマスのうち目的関数fの値が最小であるマスに移動し、移動先のマスを新たな現マスとする(ステップS203)。
【0045】
続いて、探索部12は、探索開始点のマスから移動した移動方向(上下左右4方向のいずれか、又は、斜め4方向のいずれか)を判断する(ステップS204)。
【0046】
探索開始点のマスから移動した移動方向が上下左右4方向のいずれかであった場合、探索部12は、上下左右探索モードを実行する。すなわち、探索部12は、現マス及びその周囲の上下左右4方向のマスの目的関数fの値を計算し(ステップS205)、現マスの周囲の上下左右4方向のマスの中から、現マスよりも目的関数fの値が小さいマスを探索する(ステップS206)。
【0047】
探索部12は、上下左右探索モードで探索対象であった周囲のマスを見つけた場合は(ステップS206のYes)、上下左右探索モードで見つけた周囲のマスのうち目的関数fの値が最小である周囲のマスに移動し(ステップS207)、移動先のマスを新たな現マスとする。そして、探索部12は、ステップS205に移行し、上下左右探索モードを再帰的に実行する。
【0048】
探索部12は、上下左右探索モードで探索対象であった周囲のマスを見つけられなかった場合は(ステップS206のNo)、続いて、斜め探索モードを実行する。すなわち、探索部12は、現マス及びその周囲の斜め4方向のマスの目的関数fの値を計算し(ステップS208)、現マスの周囲の斜め4方向のマスの中から、現マスよりも目的関数fの値が小さいマスを探索する(ステップS209)。
【0049】
探索部12は、斜め探索モードで探索対象であった周囲のマスを見つけた場合は(ステップS209のYes)、斜め探索モードで見つけた周囲のマスのうち目的関数fの値が最小である周囲のマスに移動し(ステップS210)、移動先のマスを新たな現マスとする。そして、探索部12は、ステップS211に移行し、斜め探索モードを再帰的に実行する。
【0050】
探索部12は、斜め探索モードでも探索対象であった周囲のマスを見つけられなかった場合は(ステップS209のNo)、現マスが所定の2次元空間上のマスの中で目的関数fの値が最小値となるマスであると判断し、マスの探索を終了する。
【0051】
一方、探索開始点のマスから移動した移動方向が斜め4方向のいずれかであった場合、探索部12は、上記のステップS209,S210と同様の斜め探索モードを実行する(ステップS211,S212)。
【0052】
探索部12は、斜め探索モードで探索対象であった周囲のマスを見つけた場合は(ステップS212のYes)、斜め探索モードで見つけた周囲のマスのうち目的関数fの値が最小である周囲のマスに移動し(ステップS213)、移動先のマスを新たな現マスとする。そして、探索部12は、ステップS211に移行し、斜め探索モードを再帰的に実行する。
【0053】
探索部12は、斜め探索モードで探索対象であった周囲のマスを見つけられなかった場合は(ステップS212のNo)、続いて、上記のステップS206,S207と同様の上下左右探索モードを実行する(ステップS214,S215)。
【0054】
探索部12は、上下左右探索モードで探索対象であった周囲のマスを見つけた場合は(ステップS215のYes)、上下左右探索モードで見つけた周囲のマスのうち目的関数fの値が最小である周囲のマスに移動し(ステップS216)、移動先のマスを新たな現マスとする。そして、探索部12は、ステップS205に移行し、上下左右探索モードを再帰的に実行する。
【0055】
探索部12は、上下左右探索モードでも探索対象であった周囲のマスを見つけられなかった場合は(ステップS215のNo)、現マスが所定の2次元空間上のマスの中で目的関数fの値が最小値となるマスであると判断し、マスの探索を終了する。
【0056】
図9は、本実施の形態に係る探索部12が
図8の方法でマスを探索する場合の探索経路の例を示す図である。
図9の例では、探索部12は、最大在庫日数が20日で安全在庫日数が10日の右下のマスを探索開始点に決定している。
また、探索開始点のマスでは、その周囲8方向のマスのうち目的関数fの値が最小であるマスが、左方向のマスである。
【0057】
そのため、探索部12は、探索開始点のマスから左方向のマスに移動し、以降、上下左右探索モードを再帰的に実行し、最大在庫日数が16日で安全在庫日数が10日のマスまで移動している。
【0058】
ただし、最大在庫日数が16日で安全在庫日数が10日の現マスでは、その周囲の上下左右方向のマスの中に、現マスよりも目的関数fの値が小さいマスはない。一方で、現マスでは、その周囲の斜め方向のマスの中に、現マスよりも目的関数fの値が小さいマスがあり、また、これらのマスのうち目的関数fの値が最小である周囲のマスが、左上斜め方向のマスである。
【0059】
そのため、探索部12は、現マスから左上斜めのマスに移動し、以降、斜め探索モードを再帰的に実行し、最大在庫日数が9日で安全在庫日数が3日のマスまで移動している。
【0060】
ただし、最大在庫日数が9日で安全在庫日数が3日の現マスでは、その周囲の斜め方向のマスの中に、現マスよりも目的関数fの値が小さいマスはない。また、現マスでは、その周囲の上下左右方向のマスの中にも、現マスよりも目的関数fの値が小さいマスはない。
そのため、探索部12は、現マスが、目的関数fの値が最小値となるマスであると判断し、決定部13は、現マスに対応する最大在庫日数の値(9日)及び安全在庫日数の値(3日)を、それぞれ、最大在庫日数及び安全在庫日数の最適解に決定する。
【0061】
上述したように本実施の形態によれば、パラメータ探索装置10は、最大在庫日数及び安全在庫日数を軸とする所定の2次元空間をマス目状に分割し、所定の2次元空間上のマスの中から、目的関数fの値が最小値となるマスを探索し、見つけたマスに対応する最大在庫日数及び安全在庫日数のそれぞれの値を最適解に決定する。そのため、複雑な計算を行うことなく、最大在庫日数及び安全在庫日数という2個のパラメータのそれぞれの最適解を探索することができる。
【0062】
したがって、経験が不足しているユーザでも、最大在庫日数及び安全在庫日数を適切に設定することができるため、適切に発注点数を決定し、決定した発注点数まで商品の在庫数が減少した適切なタイミングで、商品の発注を行うことができる。これにより、商品の在庫数が不足して、商品の品切れや欠品が発生することを防ぐことに寄与し得る。
【0063】
<実施の形態の変形例>
上記の実施の形態では、目的関数fの指標xi毎の桁合わせ用の除数kiは、探索開始点のマスにおける指標xiの値を基に計算し、以降、マスが移動しても、除数kiは固定されていた。しかし、この除数kiは、探索開始点のマスにおける指標xiの値を基に計算したものであるため、マスの移動が進むにしたがって、適切な値にならない可能性がある。
そのため、本開示では、除数kiを、マスを移動する度に計算しても良い。この場合、移動先のマスで周囲を探索するのに使用する目的関数fの指標xi毎の除数kiを、移動先のマスにおける指標xiの値とすれば良い。
【0064】
また、上記の実施の形態では、最大在庫日数及び安全在庫日数を決定する指標が、平均在庫日数、平均在庫金額、発注回数、及び欠品率の4個である例について説明したが、本開示はこれには限定されない。本開示では、最大在庫日数及び安全在庫日数を決定する指標は、これら4個の指標のうち少なくとも1個を含む、複数個の指標であれば良い。
【0065】
また、上記の実施の形態では、最適解を探索するパラメータが、商品の最大在庫日数及び安全在庫日数の2個である例について説明したが、本開示はこれには限定されない。本開示では、最適解を探索するパラメータが、物流センター等における在庫管理の分野以外の他分野のパラメータであっても良い。この場合、他分野のパラメータを決定する指標は、該当する分野に応じて適宜決定すれば良い。また、本開示は、N(Nは2以上の自然数)個のパラメータの最適解を探索する場合に適用可能であり、Nは2に限定されない。この場合、N個のパラメータを軸とする所定のN次元空間をマス目状に分割し、所定のN次元空間上のマスの中から、目的関数の値が最小値となるマスを探索し、目的関数の値が最小値となるマスに対応するN個のパラメータのそれぞれの値を最適解に決定する。
【0066】
<Nが2以外になる事例>
以下では、Nが2以外になる具体的な事例について説明する。
本事例は、本開示を朝食の栄養管理の分野に適用したものである。本事例では、例えば、寮の朝食が幾つかのメニューから選択する方式である場合に、塩分、糖分などを抑え、かつ、食費も安くなるように栄養管理を行う。
【0067】
本事例では、パラメータは、各メニューを選択する日数とする。具体的には、パラメータは、以下の4個とする(すなわち、Nが4)。
納豆ごはん …… N1 日/月
鮭の塩焼き …… N2 日/月
ハムエッグ …… N3 日/月
シリアル …… N4 日/月
ここで、N1~N4の拘束条件は以下とする。
N1+N2+N3+N4=30(又は、31)
また、上記の各メニューの日数を決定する指標は、食費、塩分摂取量、糖分摂取量、及びコレステロール摂取量の4個とする。
【0068】
本事例の場合、所定の4次元空間上のマスの中から、目的関数fの値が最小値となるマスを探索していく。
本事例の目的関数fは、上記の数式(1)に準じたもので、食費、塩分摂取量、糖分摂取量、及びコレステロール摂取量の4個の指標を用いた関数とする。
【0069】
本事例において、所定の4次元空間上のマスについて、目的関数fの値を計算する場合、まず、該当するマスに対応する4個のメニューの日数のそれぞれの値となるように、食費、塩分摂取量、糖分摂取量、及びコレステロール摂取量のそれぞれの値を計算する。次に、上記で計算した食費、塩分摂取量、糖分摂取量、及びコレステロール摂取量の値を、目的関数fに代入する。これにより、該当するマスの目的関数fの値が計算される。
【0070】
<N次元空間上のマスの探索処理>
以下では、所定のN次元空間上のマスの探索処理について、詳細に説明する。
(A)2次元空間の場合(すなわち、Nが2の場合)
上記の実施の形態は、2次元空間の場合の例であった。
上記の実施の形態のように2次元空間の場合、探索開始点のマスから移動した後に行う探索処理においては、
図5を用いて説明したように、上下左右探索モード及び斜め探索モードという、探索方向が互いに異なる2個の探索モードを切り替えて実行する。この2個の探索モードは、言い換えれば、以下のようになる。
1番目の探索モード(上下左右探索モード):
2軸から1軸を取出し、取出した1軸の軸方向に現マスから±1した位置にあるマスを探索する(他の軸は0)。探索方向は、
2C
1×2
1=4方向となる。
2番目の探索モード(斜め探索モード):
2軸から2軸を取出し、取出した2軸のそれぞれの軸方向に現マスから±1した位置にあるマスを探索する。探索方向は、
2C
2×2
2=4方向となる。
なお、2次元空間の場合、現マスの全周囲は、3
2-1=8方向となる。
【0071】
(B)3次元空間の場合(すなわち、Nが3の場合)
3次元空間の場合、探索開始点のマスから移動した後に行う探索処理においては、
図10に示されるように、探索方向が互いに異なる3個の探索モードを切り替えて実行する。この3個の探索モードは、以下のようになる。
1番目の探索モード:
3軸から1軸を取出し、取出した1軸の軸方向に現マスから±1した位置にあるマスを探索する(他の軸は0)。探索方向は、
3C
1×2
1=6方向となる。
2番目の探索モード:
3軸から2軸を取出し、取出した2軸のそれぞれの軸方向に現マスから±1した位置にあるマスを探索する(他の軸は0)。探索方向は、
3C
2×2
2=12方向となる。
3番目の探索モード:
3軸から3軸を取出し、取出した3軸のそれぞれの軸方向に現マスから±1した位置にあるマスを探索する。探索方向は、
3C
3×2
3=8方向となる。
なお、3次元空間の場合、現マスの全周囲は、3
3-1=26方向となる。
【0072】
(C)N次元空間の場合
2次元空間及び3次元空間の場合の探索処理は、上記の通りである。
これを踏まえると、N次元空間の場合、探索開始点のマスから移動した後に行う探索処理においては、探索方向が互いに異なるN個の探索モードを切り替えて実行する。このN個の探索モードは、以下のようになる。
1番目の探索モード:
N軸から1軸を取出し、取出した1軸の軸方向に現マスから±1した位置にあるマスを探索する(他の軸は0)。探索方向は、
NC
1×2
1方向となる。
2番目の探索モード:
N軸から2軸を取出し、取出した2軸のそれぞれの軸方向に現マスから±1した位置にあるマスを探索する(他の軸は0)。探索方向は、
NC
2×2
2方向となる。
N番目の探索モード:
N軸からN軸を取出し、取出したN軸のそれぞれの軸方向に現マスから±1した位置にあるマスを探索する。探索方向は、
NC
N×2
N方向となる。
なお、N次元空間の場合、現マスの全周囲の方向は、次の数式(3)で表される。
【数3】
【0073】
<実施の形態の概念>
続いて、上記の実施の形態に係るパラメータ探索装置10を概念的に示した構成について説明する。
図11は、上記の実施の形態に係るパラメータ探索装置10を概念的に示したパラメータ探索装置100の構成例を示すブロック図である。
【0074】
図11に示されるように、パラメータ探索装置100は、分割部101、探索部102、及び決定部103を備えている。分割部101は、分割部11に相当し、探索部102は、探索部12に相当し、決定部103は、決定部13に相当する。
【0075】
分割部101は、所定のN次元空間をマス目状に分割する。
探索部102は、所定のN次元空間上のマスの中から、目的関数の値が最小値となるマスを探索する。
決定部103は、目的関数の値が最小値となるマスに対応するN個のパラメータのそれぞれの値を最適解に決定する。
【0076】
以下では、探索部102について詳細に説明する。
まず、探索部102は、所定のN次元空間上のマスの1つを探索開始点とする。探索開始点のマスは、例えば、所定のN次元空間上のマスのうち、目的関数の値が最大値となると推測されるマスとする。
【0077】
続いて、探索部102は、探索開始点のマス及びその周囲のマスの目的関数の値を計算し、その周囲のマスのうち目的関数の値が最小である周囲のマスに移動し、移動先のマスを新たな現マスとする。そして、探索部102は、現マス及びその周囲のマスの目的関数の値を計算し、現マスの周囲のマスの中から、現マスよりも目的関数の値が小さいマスを探索する探索処理を再帰的に実行する。
【0078】
探索部102は、探索処理で探索対象であった周囲のマスを見つけられなかった場合、現マスが所定のN次元空間上のマスの中で目的関数の値が最小値となるマスであると判断し、探索を終了する。
【0079】
ここで、探索処理は、マスの探索方向が互いに異なるN個の探索モードを含み、探索部102は、N個の探索モードを切り替えながら、探索処理を実行する。Nが2の場合の探索処理は、上述のように、上下左右探索モードと斜め探索モードとの2個の探索モードを含むことになる。
【0080】
また、目的関数は、N個のパラメータのそれぞれの値を決定する複数の指標のそれぞれの値を、指標毎に計算された除数で除算し、かつ、指標毎に設定された重み係数で乗算した上で、加算した関数である。探索部102は、該当マスに対応するN個のパラメータのそれぞれの値となるように複数の指標のそれぞれの値を計算し、計算した複数の指標のそれぞれの値を目的関数に代入することで、該当マスの目的関数の値を計算する。
【0081】
なお、探索部102は、目的関数の指標毎の除数を、探索開始点のマスにおけるその指標の値を基に計算しても良い。又は、探索部102は、目的関数の指標毎の除数を、マスを移動する度に計算しても良い。マスを移動する度に計算する場合、探索部102は、移動先のマスで周囲を探索するのに使用する目的関数の指標毎の除数を、移動先のマスにおけるその指標の値とすれば良い。
【0082】
以上、実施の形態を参照して本開示を説明したが、本開示は上記の実施の形態に限定されるものではない。本開示の構成や詳細には、本開示のスコープ内で当業者が理解し得る様々な変更をすることができる。
【0083】
例えば、上記の実施の形態では、本開示のパラメータ探索装置をハードウェアの構成として説明したが、本開示は、これに限定されるものではない。本開示は、パラメータ探索装置が、プロセッサ及びメモリを内蔵し、プロセッサが、メモリに格納されたコンピュータプログラムを読み出し実行することにより、パラメータ探索装置の任意の処理を、実現することも可能である。
【0084】
上記の例において、プログラムは、様々なタイプの非一時的なコンピュータ可読媒体(non-transitory computer readable medium)を用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体(tangible storage medium)を含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体(例えばフレキシブルディスク、磁気テープ、ハードディスクドライブ)、光磁気記録媒体(例えば光磁気ディスク)、CD-ROM(Compact Disc-Read Only Memory)、CD-R(CD-Recordable)、CD-R/W(CD-ReWritable)、半導体メモリ(例えば、マスクROM、PROM(Programmable ROM)、EPROM(Erasable PROM)、フラッシュROM、RAM(Random Access Memory))を含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体(transitory computer readable medium)によってコンピュータに供給されても良い。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。
【0085】
上記の実施の形態の一部又は全部は、以下の付記のようにも記載されうるが、以下には限られない。
(付記1)
N(Nは2以上の自然数)個のパラメータを軸とする所定のN次元空間をマス目状に分割する分割部と、
前記所定のN次元空間上のマスの中から、当該マスに対応するN個のパラメータのそれぞれの値を用いて得られる目的関数の値が最小値となるマスを探索する探索部と、
前記目的関数の値が最小値となるマスに対応するN個のパラメータのそれぞれの値を最適解に決定する決定部と、
を備えるパラメータ探索装置。
(付記2)
前記探索部は、
前記所定のN次元空間上のマスの1つを開始点とし、
開始点とする現マス及びその周囲のマスの前記目的関数の値を計算し、開始点のマスの周囲のマスのうち前記目的関数の値が最小である周囲のマスに移動し、移動先のマスを新たな現マスとする探索処理を再帰的に実行し、
前記探索処理で探索対象であった周囲のマスを見つけられなかった場合、現マスが前記所定のN次元空間上のマスの中で前記目的関数の値が最小値となるマスであると判断する、
付記1に記載のパラメータ探索装置。
(付記3)
前記開始点のマスは、前記所定のN次元空間上のマスのうち、前記目的関数の値が最大値となると推測されるマスである、
付記2に記載のパラメータ探索装置。
(付記4)
前記探索処理は、
マスの探索方向が互いに異なるN個の探索モードを含み、
前記探索部は、
N個の探索モードを切り替えながら、前記探索処理を実行する、
付記2又は3に記載のパラメータ探索装置。
(付記5)
Nは2であり、
前記探索処理は、
現マス及びその周囲の第1探索方向のマスの前記目的関数の値を計算し、現マスの周囲の前記第1探索方向のマスの中から、現マスよりも前記目的関数の値が小さいマスを探索する第1探索モードと、
現マス及びその周囲の第2探索方向のマスの前記目的関数の値を計算し、現マスの周囲の前記第2探索方向のマスの中から、現マスよりも前記目的関数の値が小さいマスを探索する第2探索モードと、を含み、
前記探索部は、
前記開始点とする現マスから移動した移動先のマスの方向が前記第1探索方向である場合、前記第1探索モードを実行し、前記第1探索モードで探索対象であった周囲のマスを見つけた場合、前記第1探索モードで見つけた周囲のマスのうち前記目的関数の値が最小である周囲のマスに移動し、移動先のマスを新たな現マスとして、前記第1探索モードを再帰的に実行し、
前記開始点とする現マスから移動した移動先のマスの方向が前記第2探索方向である場合、前記第2探索モードを実行し、前記第2探索モードで探索対象であった周囲のマスを見つけた場合、前記第2探索モードで見つけた周囲のマスのうち前記目的関数の値が最小である周囲のマスに移動し、移動先のマスを新たな現マスとして、前記第2探索モードを再帰的に実行する、
付記4に記載のパラメータ探索装置。
(付記6)
前記探索部は、
前記第1探索モードで探索対象であった周囲のマスを見つけられなかった場合、続いて前記第2探索モードを実行し、前記第2探索モードでも探索対象であった周囲のマスを見つけられなかった場合、現マスが前記所定の2次元空間上のマスの中で前記目的関数の値が最小値となるマスであると判断し、前記第2探索モードで探索対象であった周囲のマスを見つけた場合、前記第2探索モードで見つけた周囲のマスのうち前記目的関数の値が最小である周囲のマスに移動し、移動先のマスを新たな現マスとして、前記第2探索モードを再帰的に実行し、
前記第2探索モードで探索対象であった周囲のマスを見つけられなかった場合、続いて前記第1探索モードを実行し、前記第1探索モードでも探索対象であった周囲のマスを見つけられなかった場合、現マスが前記所定の2次元空間上のマスの中で前記目的関数の値が最小値となるマスであると判断し、前記第1探索モードで探索対象であった周囲のマスを見つけた場合、前記第1探索モードで見つけた周囲のマスのうち前記目的関数の値が最小である周囲のマスに移動し、移動先のマスを新たな現マスとして、前記第1探索モードを再帰的に実行する、
付記5に記載のパラメータ探索装置。
(付記7)
前記目的関数は、N個のパラメータのそれぞれの値を決定する複数の指標のそれぞれの値を、前記指標毎に計算された除数で除算し、かつ、前記指標毎に設定された重み係数で乗算した上で、加算した関数であり、
前記探索部は、
前記所定のN次元空間上のマスの前記目的関数の値を計算する場合、当該マスに対応するN個のパラメータのそれぞれの値となるように前記複数の指標のそれぞれの値を計算し、計算した前記複数の指標のそれぞれの値を前記目的関数に代入する、
付記2から4のいずれか1項に記載のパラメータ探索装置。
(付記8)
前記探索部は、
前記指標毎の前記除数を、前記開始点のマスにおける当該指標の値を基に計算する、
付記7に記載のパラメータ探索装置。
(付記9)
前記探索部は、
前記指標毎の前記除数を、マスを移動する度に計算し、
移動先のマスで周囲を探索するのに使用する前記目的関数の前記指標毎の前記除数を、移動先のマスにおける当該指標の値とする、
付記7に記載のパラメータ探索装置。
(付記10)
Nは2であり、
前記パラメータは、商品の最大在庫日数及び安全在庫日数であり、
前記指標は、商品の平均在庫日数、平均在庫金額、発注回数、及び欠品率のうち少なくとも1個を含む、
付記7から9のいずれか1項に記載のパラメータ探索装置。
(付記11)
パラメータ探索装置によるパラメータ探索方法であって、
N(Nは2以上の自然数)個のパラメータを軸とする所定のN次元空間をマス目状に分割するステップと、
前記所定のN次元空間上のマスの中から、当該マスに対応するN個のパラメータのそれぞれの値を用いて得られる目的関数の値が最小値となるマスを探索するステップと、
前記目的関数の値が最小値となるマスに対応するN個のパラメータのそれぞれの値を最適解に決定するステップと、
を含むパラメータ探索方法。
(付記12)
コンピュータを、
N(Nは2以上の自然数)個のパラメータを軸とする所定のN次元空間をマス目状に分割する分割手段と、
前記所定のN次元空間上のマスの中から、当該マスに対応するN個のパラメータのそれぞれの値を用いて得られる目的関数の値が最小値となるマスを探索する探索手段と、
前記目的関数の値が最小値となるマスに対応するN個のパラメータのそれぞれの値を最適解に決定する決定手段と、
として機能させるためのプログラム。
【符号の説明】
【0086】
10 パラメータ探索装置
11 分割部
12 探索部
13 決定部
14 入力部
100 パラメータ探索装置
101 分割部
102 探索部
103 決定部