(57)【要約】【課題】複雑な計算を行うことなく、パラメータの最適解を探索すること。【解決手段】本開示のパラメータ探索装置（１００）は、Ｎ個のパラメータを軸とする所定のＮ次元空間をマス目状に分割する分割部（１０１）と、所定のＮ次元空間上のマスの中から、そのマスに対応するＮ個のパラメータのそれぞれの値を用いて得られる目的関数の値が最小値となるマスを探索する探索部（１０２）と、目的関数の値が最小値となるマスに対応するＮ個のパラメータのそれぞれの値を最適解に決定する決定部（１０３）と、を備える。【選択図】図１１
2019219869.tif 000002
【特許請求の範囲】
【請求項１】
Ｎ（Ｎは２以上の自然数）個のパラメータを軸とする所定のＮ次元空間をマス目状に分割する分割部と、
前記所定のＮ次元空間上のマスの中から、当該マスに対応するＮ個のパラメータのそれぞれの値を用いて得られる目的関数の値が最小値となるマスを探索する探索部と、
前記目的関数の値が最小値となるマスに対応するＮ個のパラメータのそれぞれの値を最適解に決定する決定部と、
を備えるパラメータ探索装置。
【請求項２】
前記探索部は、
前記所定のＮ次元空間上のマスの１つを開始点とし、
開始点とする現マス及びその周囲のマスの前記目的関数の値を計算し、開始点のマスの周囲のマスのうち前記目的関数の値が最小である周囲のマスに移動し、移動先のマスを新たな現マスとする探索処理を再帰的に実行し、
前記探索処理で探索対象であった周囲のマスを見つけられなかった場合、現マスが前記所定のＮ次元空間上のマスの中で前記目的関数の値が最小値となるマスであると判断する、
請求項１に記載のパラメータ探索装置。
【請求項３】
前記開始点のマスは、前記所定のＮ次元空間上のマスのうち、前記目的関数の値が最大値となると推測されるマスである、
請求項２に記載のパラメータ探索装置。
【請求項４】
前記探索処理は、
マスの探索方向が互いに異なるＮ個の探索モードを含み、
前記探索部は、
Ｎ個の探索モードを切り替えながら、前記探索処理を実行する、
請求項２又は３に記載のパラメータ探索装置。
【請求項５】
Ｎは２であり、
前記探索処理は、
現マス及びその周囲の第１探索方向のマスの前記目的関数の値を計算し、現マスの周囲の前記第１探索方向のマスの中から、現マスよりも前記目的関数の値が小さいマスを探索する第１探索モードと、
現マス及びその周囲の第２探索方向のマスの前記目的関数の値を計算し、現マスの周囲の前記第２探索方向のマスの中から、現マスよりも前記目的関数の値が小さいマスを探索する第２探索モードと、を含み、
前記探索部は、
前記開始点とする現マスから移動した移動先のマスの方向が前記第１探索方向である場合、前記第１探索モードを実行し、前記第１探索モードで探索対象であった周囲のマスを見つけた場合、前記第１探索モードで見つけた周囲のマスのうち前記目的関数の値が最小である周囲のマスに移動し、移動先のマスを新たな現マスとして、前記第１探索モードを再帰的に実行し、
前記開始点とする現マスから移動した移動先のマスの方向が前記第２探索方向である場合、前記第２探索モードを実行し、前記第２探索モードで探索対象であった周囲のマスを見つけた場合、前記第２探索モードで見つけた周囲のマスのうち前記目的関数の値が最小である周囲のマスに移動し、移動先のマスを新たな現マスとして、前記第２探索モードを再帰的に実行する、
請求項４に記載のパラメータ探索装置。
【請求項６】
前記探索部は、
前記第１探索モードで探索対象であった周囲のマスを見つけられなかった場合、続いて前記第２探索モードを実行し、前記第２探索モードでも探索対象であった周囲のマスを見つけられなかった場合、現マスが前記所定の２次元空間上のマスの中で前記目的関数の値が最小値となるマスであると判断し、前記第２探索モードで探索対象であった周囲のマスを見つけた場合、前記第２探索モードで見つけた周囲のマスのうち前記目的関数の値が最小である周囲のマスに移動し、移動先のマスを新たな現マスとして、前記第２探索モードを再帰的に実行し、
前記第２探索モードで探索対象であった周囲のマスを見つけられなかった場合、続いて前記第１探索モードを実行し、前記第１探索モードでも探索対象であった周囲のマスを見つけられなかった場合、現マスが前記所定の２次元空間上のマスの中で前記目的関数の値が最小値となるマスであると判断し、前記第１探索モードで探索対象であった周囲のマスを見つけた場合、前記第１探索モードで見つけた周囲のマスのうち前記目的関数の値が最小である周囲のマスに移動し、移動先のマスを新たな現マスとして、前記第１探索モードを再帰的に実行する、
請求項５に記載のパラメータ探索装置。
【請求項７】
前記目的関数は、Ｎ個のパラメータのそれぞれの値を決定する複数の指標のそれぞれの値を、前記指標毎に計算された除数で除算し、かつ、前記指標毎に設定された重み係数で乗算した上で、加算した関数であり、
前記探索部は、
前記所定のＮ次元空間上のマスの前記目的関数の値を計算する場合、当該マスに対応するＮ個のパラメータのそれぞれの値となるように前記複数の指標のそれぞれの値を計算し、計算した前記複数の指標のそれぞれの値を前記目的関数に代入する、
請求項２から４のいずれか１項に記載のパラメータ探索装置。
【請求項８】
前記探索部は、
前記指標毎の前記除数を、前記開始点のマスにおける当該指標の値を基に計算する、
請求項７に記載のパラメータ探索装置。
【請求項９】
前記探索部は、
前記指標毎の前記除数を、マスを移動する度に計算し、
移動先のマスで周囲を探索するのに使用する前記目的関数の前記指標毎の前記除数を、移動先のマスにおける当該指標の値とする、
請求項７に記載のパラメータ探索装置。
【請求項１０】
パラメータ探索装置によるパラメータ探索方法であって、
Ｎ（Ｎは２以上の自然数）個のパラメータを軸とする所定のＮ次元空間をマス目状に分割するステップと、
前記所定のＮ次元空間上のマスの中から、当該マスに対応するＮ個のパラメータのそれぞれの値を用いて得られる目的関数の値が最小値となるマスを探索するステップと、
前記目的関数の値が最小値となるマスに対応するＮ個のパラメータのそれぞれの値を最適解に決定するステップと、
を含むパラメータ探索方法。
【請求項１１】
コンピュータを、
Ｎ（Ｎは２以上の自然数）個のパラメータを軸とする所定のＮ次元空間をマス目状に分割する分割手段と、
前記所定のＮ次元空間上のマスの中から、当該マスに対応するＮ個のパラメータのそれぞれの値を用いて得られる目的関数の値が最小値となるマスを探索する探索手段と、
前記目的関数の値が最小値となるマスに対応するＮ個のパラメータのそれぞれの値を最適解に決定する決定手段と、
として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、パラメータ探索装置、パラメータ探索方法、及びプログラムに関する。
【背景技術】
【０００２】
図１を参照して、物流センター等における商品の在庫数の時系列的な変化について説明する。図１は、物流センター等における商品の在庫数の時系列データの例を示す図である。
図１において、横軸は時間、縦軸は商品の在庫数である。
また、図１の縦軸において、最大在庫数は、商品の必要最大限の在庫数である。平均在庫数は、特定期間中の商品の在庫数の平均値である。発注点数は、商品を発注するタイミングの基準となる在庫数であり、商品の在庫数が発注点数まで減少すると、商品を発注する。安全在庫数は、商品の品切れや欠品を防ぐために必要となる在庫数である。
【０００３】
また、図１の横軸において、最大在庫日数（＝保有日数）は、最大在庫数分の商品が減少して０になるまでの日数である。発注リードタイム日数は、商品の調達に要する日数である。安全在庫日数は、安全在庫数分の商品が減少して０になるまでの日数である。安全在庫日数は、安全在庫数を平均出荷数で除算することで求められる。
【０００４】
図１の例では、商品の在庫数が発注点数まで減少したタイミングで、商品の発注を行う。発注点数は、最大在庫日数及び安全在庫日数を基に求められる。従って、適切なタイミングで商品の発注を行うには、発注点数を決定するパラメータとしての最大在庫日数及び安全在庫日数を適切に設定する必要がある。
【０００５】
従来、最大在庫日数及び安全在庫日数は、ユーザが過去の経験に基づき手動で設定していた。しかし、最大在庫日数及び安全在庫日数は、平均在庫日数、発注回数といった複数の指標に依存して決定されるものであるため、経験豊富なユーザであっても、最大在庫日数及び安全在庫日数を適切に設定することは困難であった。
【０００６】
そのため、最近は、ＡＩ（Artificial Intelligence）技術を利用して、パラメータの最適解を探索する技術が提案されている。例えば、特許文献１，２には、勾配降下法を利用して、パラメータの最適解を探索する技術が開示されている。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特許第４３４９２７１号公報
【特許文献２】特表２００５−５２７０３４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかし、特許文献１，２に開示されるような一般的な勾配降下法は、パラメータの最適解の探索に微分を利用するものであるため、探索に複雑な計算が必要であり、探索に時間が掛かるといった問題がある。
【０００９】
そこで、本開示の目的は、上述した課題を解決し、複雑な計算を行うことなく、パラメータの最適解を探索することができるパラメータ探索装置、パラメータ探索方法、及びプログラムを提供することにある。
【課題を解決するための手段】
【００１０】
一態様によるパラメータ探索装置は、
Ｎ（Ｎは２以上の自然数）個のパラメータを軸とする所定のＮ次元空間をマス目状に分割する分割部と、
前記所定のＮ次元空間上のマスの中から、当該マスに対応するＮ個のパラメータのそれぞれの値を用いて得られる目的関数の値が最小値となるマスを探索する探索部と、
前記目的関数の値が最小値となるマスに対応するＮ個のパラメータのそれぞれの値を最適解に決定する決定部と、
を備える。
【００１１】
一態様によるパラメータ探索方法は、
パラメータ探索装置によるパラメータ探索方法であって、
Ｎ（Ｎは２以上の自然数）個のパラメータを軸とする所定のＮ次元空間をマス目状に分割するステップと、
前記所定のＮ次元空間上のマスの中から、当該マスに対応するＮ個のパラメータのそれぞれの値を用いて得られる目的関数の値が最小値となるマスを探索するステップと、
前記目的関数の値が最小値となるマスに対応するＮ個のパラメータのそれぞれの値を最適解に決定するステップと、
を含む。
【００１２】
一態様によるプログラムは、
コンピュータを、
Ｎ（Ｎは２以上の自然数）個のパラメータを軸とする所定のＮ次元空間をマス目状に分割する分割手段と、
前記所定のＮ次元空間上のマスの中から、当該マスに対応するＮ個のパラメータのそれぞれの値を用いて得られる目的関数の値が最小値となるマスを探索する探索手段と、
前記目的関数の値が最小値となるマスに対応するＮ個のパラメータのそれぞれの値を最適解に決定する決定手段と、
として機能させる。
【発明の効果】
【００１３】
上記の態様によれば、複雑な計算を行うことなく、パラメータを探索することができるパラメータ探索装置、パラメータ探索方法、及びプログラムを提供できるという効果が得られる。
【図面の簡単な説明】
【００１４】
【図１】物流センター等における商品の在庫数の時系列データの例を示す図である。
【図２】実施の形態に係るパラメータ探索装置の構成例を示すブロック図である。
【図３】実施の形態に係る探索部によるマスの探索方法のイメージ例を示す図である。
【図４】実施の形態に係る探索部によるマスの探索方法の例を示す図である。
【図５】実施の形態に係る探索部によるマスの探索方法の例を示す図である。
【図６】実施の形態に係る探索部が図５の方法でマスを探索する場合の探索経路の例を示す図である。
【図７】実施の形態に係るパラメータ探索装置によるパラメータ探索方法の例を示すフロー図である。
【図８】図７のステップＳ１０２の処理の例を示すフロー図である。
【図９】実施の形態に係る探索部が図８の方法でマスを探索する場合の探索経路の例を示す図である。
【図１０】実施の形態に係る探索部によるマスの探索方法の例を示す図である。
【図１１】実施の形態に係るパラメータ探索装置を概念的に示したパラメータ探索装置の構成例を示すブロック図である。
【発明を実施するための形態】
【００１５】
以下、図面を参照して本開示の実施の形態について説明する。なお、以下の記載及び図面は、説明の明確化のため、適宜、省略及び簡略化がなされている。また、以下の各図面において、同一の要素には同一の符号が付されており、必要に応じて重複説明は省略されている。
【００１６】
＜実施の形態＞
本実施の形態においては、物流センター等における商品の最大在庫日数及び安全在庫日数という２個のパラメータの最適解を探索するものとする。また、商品の最大在庫日数及び安全在庫日数を決定する指標は、商品の平均在庫日数、平均在庫金額、発注回数、及び欠品率の４個であるものとする。
【００１７】
ここで、平均在庫日数は、平均在庫数分の商品が減少して０になるまでの日数である。平均在庫金額は、特定期間中の商品の在庫金額累積を特定期間中の日数で除算することで求められる金額である。発注回数は、特定期間中の商品を発注した回数である。欠品率は、特定期間中の商品の注文に対して、商品を提供できなかった割合である。欠品率は、欠品数（受注数−出荷数）を受注数で除算することで求められる。
【００１８】
まず、図２を参照して、本実施の形態に係るパラメータ探索装置１０の構成について説明する。図２は、本実施の形態に係るパラメータ探索装置１０の構成例を示すブロック図である。
図２に示されるように、本実施の形態に係るパラメータ探索装置１０は、分割部１１、探索部１２、決定部１３、及び入力部１４を備えている。
【００１９】
分割部１１は、最大在庫日数及び安全在庫日数を軸とする所定の２次元空間をマス目状に分割する。
【００２０】
探索部１２は、所定の２次元空間上のマスについて、目的関数ｆの値を計算する機能を備えている。目的関数ｆは、例えば、次の数式（１）で表される。
【数１】
2019219869.tif 000003
ここで、ｋｉ（ｉ＝１〜４）は、各指標の桁合わせをするための除数であり、指標毎に計算される。また、ωｉは、各指標の重要度に応じて各指標の重み付けをするための重み係数であり、指標毎に設定される。
【００２１】
除数ｋｉは、例えば、探索部１２により、後述の探索開始点となるマスにおける指標の値を基に、次の数式（２）で計算される。
【数２】
2019219869.tif 000004
ここで、ｘｉは、指標である。また、ｆｌｏｏｒ（ｔ）は、ｔ以下の整数の中で最大の整数を求める床関数である。
これにより、後述の探索開始点となるマスでは、数式（１）におけるｘｉ／ｋｉの値は、０．５以上１．０未満になる。
【００２２】
重み係数ωｉは、例えば、全指標を等価とみなす場合は全て１．０に設定する。また、ωｉは、例えば、欠品率の重要度が他の指標の重要度よりも高い場合は、欠品率のωｉだけを２．０に設定し、他の指標のωｉを１．０に設定するなどする。
重み係数ωｉは、例えば、ユーザにより入力部１４を介して入力される。
【００２３】
探索部１２は、所定の２次元空間上のマスについて、目的関数ｆの値を計算する場合、以下のようにして、計算を行う。
まず、探索部１２は、該当するマスに対応する最大在庫日数及び安全在庫日数のそれぞれの値となるように、平均在庫日数、平均在庫金額、発注回数、及び欠品率のそれぞれの値を（シミュレーションなどで）計算する。
次に、探索部１２は、上記で計算した平均在庫日数、平均在庫金額、発注回数、及び欠品率の値を、目的関数ｆに代入する。
これにより、該当するマスの目的関数ｆの値が計算される。
【００２４】
探索部１２は、所定の２次元空間上のマスの中から、目的関数ｆの値が最小値となるマスを探索する。
決定部１３は、目的関数ｆの値が最小値となるマスに対応する最大在庫日数及び安全在庫日数のそれぞれの値を最適解に決定する。
入力部１４は、ユーザにより各種入力が行われる部分であり、例えば、上述のように、指標ｘｉ毎に設定される重み係数ωｉが入力される。
【００２５】
ここで、図３を参照して、本実施の形態に係る探索部１２によるマスの探索方法のイメージについて説明する。図３は、本実施の形態に係る探索部１２によるマスの探索方法のイメージ例を示す図である。なお、図３においては、所定の２次元空間の２軸を最大在庫日数及び安全在庫日数とし、この所定の２次元空間に対して垂直な軸を目的関数ｆとしている。
【００２６】
図３に示されるように、探索部１２は、所定の２次元空間上のマスの１つを探索開始点とし、目的関数ｆの値が最も大きく減少する方向(すなわち、傾斜が最も急な方向)にマスを移動させながら、目的関数ｆの値が最小値となるマスを探索する。
【００２７】
ここで、図４及び図５を参照して、本実施の形態に係る探索部１２によるマスの探索方法について詳細に説明する。図４及び図５は、本実施の形態に係る探索部１２によるマスの探索方法の例を示す図である。
【００２８】
図４の例では、まず、探索部１２は、所定の２次元空間上のマスの１つを探索開始点に設定する。探索開始点のマスは、例えば、所定の２次元空間上のマスのうち、目的関数ｆの値が最大値となると推測されるマスに設定される。
【００２９】
続いて、探索部１２は、探索開始点のマス（現マスとする）及びその周囲８方向（すなわち、全周囲）のマスの目的関数ｆの値を計算し、周囲８方向のマスのうち目的関数ｆの値が最小であるマスに移動し、移動先のマスを新たな現マスとする。
【００３０】
以降、探索部１２は、現マス及びその周囲８方向のマスの目的関数ｆの値を計算し、現マスの周囲８方向のマスの中から、現マスよりも目的関数ｆの値が小さいマスを探索する探索処理を再帰的に実行する。ただし、探索範囲から外れるマス（日数が０未満になるマスなど）は探索対象外とする。
【００３１】
探索部１２は、探索処理で探索対象であった周囲のマスを見つけられなかった場合、現マスが所定の２次元空間上のマスの中で目的関数ｆの値が最小値となるマスであると判断し、マスの探索を終了する。
【００３２】
ただし、図４の例では、探索部１２は、マスを移動する度に、現マスの周囲８方向のマスの目的関数ｆの値を全て計算するため、マスの探索時間が増大してしまうことが懸念される。
【００３３】
図５の例は、図４の例と比較して、マスの探索時間の短縮化を図るものである。図５の例では、探索開始点のマスから移動した後に行う探索処理は、斜め探索モードと、上下左右探索モードと、の２個の探索モードを含んでいる。
【００３４】
斜め探索モードは、現マス及びその周囲の斜め４方向のマスの目的関数ｆの値を計算し、現マスの周囲の斜め４方向のマスの中から、現マスよりも目的関数ｆの値が小さいマスを探索する処理である。
【００３５】
上下左右探索モードは、現マス及びその周囲の上下左右４方向のマスの目的関数ｆの値を計算し、現マスの周囲の上下左右４方向のマスの中から、現マスよりも目的関数ｆの値が小さいマスを探索する処理である。
【００３６】
図５の例は、探索開始点のマスから移動した移動方向が、斜め４方向のいずれかである場合の例である。この場合、探索開始点のマスの周囲のマスのうち目的関数ｆの値が最小であるのは、斜め方向のマスであることになる。そのため、探索開始点の近傍領域で最も傾斜が急な方向は、探索開始点のマスから斜め方向である確率が高いと考えられる。そのため、探索部１２は、斜め探索モードを実行する。
【００３７】
探索部１２は、斜め探索モードで探索対象であった周囲のマスを見つけた場合は、斜め探索モードで見つけた周囲のマスのうち目的関数ｆの値が最小である周囲のマスに移動し、移動先のマスを新たな現マスとして、斜め探索モードを再帰的に実行する。このように、斜め探索モードで探索対象であった周囲のマスを見つけた場合は、上下左右４方向のマスの計算を省略できるため、マスの探索時間の短縮化を図ることが可能となる。
【００３８】
一方、探索部１２は、斜め探索モードで探索対象であった周囲のマスを見つけられなかった場合は、斜め探索モードを上下左右探索モードに切り替え、上下左右探索モードを実行する。探索部１２は、上下左右探索モードで探索対象であった周囲のマスを見つけた場合は、上下左右探索モードで見つけた周囲のマスのうち目的関数ｆの値が最小である周囲のマスに移動し、移動先のマスを新たな現マスとして、上下左右探索モードを再帰的に実行する。逆に、探索部１２は、上下左右探索モードでも探索対象であった周囲のマスを見つけられなかった場合は、現マスが所定の２次元空間上のマスの中で目的関数ｆの値が最小値となるマスであると判断し、マスの探索を終了する。
【００３９】
このように、図５の例では、探索部１２は、斜め探索モードと上下左右探索モードとを切り替えながら、探索処理を実行する。そして、探索部１２は、斜め探索モード及び上下左右探索モードの両方で探索対象であった周囲のマスを見つけられなかった場合、現マスが所定の２次元空間上のマスの中で目的関数ｆの値が最小値となるマスであると判断する。
【００４０】
図６は、本実施の形態に係る探索部１２が図５の方法でマスを探索する場合の探索経路の例を示す図である。
図６の例では、左上のマスを探索開始点とし、まずは、斜め探索モードを実行し、続いて、上下左右探索モードへの切り替えを行い、その後、再度、斜め探索モードへの切り替えを行って、右下のマスで探索を終了している。すなわち、図６の例では、所定の２次元空間上のマスの中で、右下のマスが、目的関数ｆの値が最小値となるマスであると判断されている。
【００４１】
以下では、図７を参照して、本実施の形態に係るパラメータ探索装置１０によるパラメータ探索方法について説明する。図７は、本実施の形態に係るパラメータ探索装置１０によるパラメータ探索方法の例を示すフロー図である。
【００４２】
図７に示されるように、分割部１１は、最大在庫日数及び安全在庫日数を軸とする所定の２次元空間をマス目状に分割する（ステップＳ１０１）。例えば、１日単位で分割を行う。
探索部１２は、所定の２次元空間上のマスの中から、目的関数ｆの値が最小値となるマスを探索する（ステップＳ１０２）。
決定部１３は、目的関数ｆの値が最小値となるマスに対応する最大在庫日数及び安全在庫日数のそれぞれの値を最適解に決定する（ステップＳ１０３）。
【００４３】
続いて、図８を参照して、図７のステップＳ１０２の処理について詳細に説明する。図８は、図７のステップＳ１０２の処理の例を示すフロー図である。なお、図８は、図５の方法によりマスの探索を行う場合の処理を示している。
【００４４】
図８に示されるように、まず、探索部１２は、所定の２次元空間上のマスの１つを探索開始点に決定する（ステップＳ２０１）。続いて、探索部１２は、探索開始点のマス及びその周囲８方向のマスの目的関数ｆの値を計算し（ステップＳ２０２）、周囲８方向のマスのうち目的関数ｆの値が最小であるマスに移動し、移動先のマスを新たな現マスとする（ステップＳ２０３）。
【００４５】
続いて、探索部１２は、探索開始点のマスから移動した移動方向（上下左右４方向のいずれか、又は、斜め４方向のいずれか）を判断する（ステップＳ２０４）。
【００４６】
探索開始点のマスから移動した移動方向が上下左右４方向のいずれかであった場合、探索部１２は、上下左右探索モードを実行する。すなわち、探索部１２は、現マス及びその周囲の上下左右４方向のマスの目的関数ｆの値を計算し（ステップＳ２０５）、現マスの周囲の上下左右４方向のマスの中から、現マスよりも目的関数ｆの値が小さいマスを探索する（ステップＳ２０６）。
【００４７】
探索部１２は、上下左右探索モードで探索対象であった周囲のマスを見つけた場合は（ステップＳ２０６のＹｅｓ）、上下左右探索モードで見つけた周囲のマスのうち目的関数ｆの値が最小である周囲のマスに移動し（ステップＳ２０７）、移動先のマスを新たな現マスとする。そして、探索部１２は、ステップＳ２０５に移行し、上下左右探索モードを再帰的に実行する。
【００４８】
探索部１２は、上下左右探索モードで探索対象であった周囲のマスを見つけられなかった場合は（ステップＳ２０６のＮｏ）、続いて、斜め探索モードを実行する。すなわち、探索部１２は、現マス及びその周囲の斜め４方向のマスの目的関数ｆの値を計算し（ステップＳ２０８）、現マスの周囲の斜め４方向のマスの中から、現マスよりも目的関数ｆの値が小さいマスを探索する（ステップＳ２０９）。
【００４９】
探索部１２は、斜め探索モードで探索対象であった周囲のマスを見つけた場合は（ステップＳ２０９のＹｅｓ）、斜め探索モードで見つけた周囲のマスのうち目的関数ｆの値が最小である周囲のマスに移動し（ステップＳ２１０）、移動先のマスを新たな現マスとする。そして、探索部１２は、ステップＳ２１１に移行し、斜め探索モードを再帰的に実行する。
【００５０】
探索部１２は、斜め探索モードでも探索対象であった周囲のマスを見つけられなかった場合は（ステップＳ２０９のＮｏ）、現マスが所定の２次元空間上のマスの中で目的関数ｆの値が最小値となるマスであると判断し、マスの探索を終了する。
【００５１】
一方、探索開始点のマスから移動した移動方向が斜め４方向のいずれかであった場合、探索部１２は、上記のステップＳ２０９，Ｓ２１０と同様の斜め探索モードを実行する（ステップＳ２１１，Ｓ２１２）。
【００５２】
探索部１２は、斜め探索モードで探索対象であった周囲のマスを見つけた場合は（ステップＳ２１２のＹｅｓ）、斜め探索モードで見つけた周囲のマスのうち目的関数ｆの値が最小である周囲のマスに移動し（ステップＳ２１３）、移動先のマスを新たな現マスとする。そして、探索部１２は、ステップＳ２１１に移行し、斜め探索モードを再帰的に実行する。
【００５３】
探索部１２は、斜め探索モードで探索対象であった周囲のマスを見つけられなかった場合は（ステップＳ２１２のＮｏ）、続いて、上記のステップＳ２０６，Ｓ２０７と同様の上下左右探索モードを実行する（ステップＳ２１４，Ｓ２１５）。
【００５４】
探索部１２は、上下左右探索モードで探索対象であった周囲のマスを見つけた場合は（ステップＳ２１５のＹｅｓ）、上下左右探索モードで見つけた周囲のマスのうち目的関数ｆの値が最小である周囲のマスに移動し（ステップＳ２１６）、移動先のマスを新たな現マスとする。そして、探索部１２は、ステップＳ２０５に移行し、上下左右探索モードを再帰的に実行する。
【００５５】
探索部１２は、上下左右探索モードでも探索対象であった周囲のマスを見つけられなかった場合は（ステップＳ２１５のＮｏ）、現マスが所定の２次元空間上のマスの中で目的関数ｆの値が最小値となるマスであると判断し、マスの探索を終了する。
【００５６】
図９は、本実施の形態に係る探索部１２が図８の方法でマスを探索する場合の探索経路の例を示す図である。
図９の例では、探索部１２は、最大在庫日数が２０日で安全在庫日数が１０日の右下のマスを探索開始点に決定している。
また、探索開始点のマスでは、その周囲８方向のマスのうち目的関数ｆの値が最小であるマスが、左方向のマスである。
【００５７】
そのため、探索部１２は、探索開始点のマスから左方向のマスに移動し、以降、上下左右探索モードを再帰的に実行し、最大在庫日数が１６日で安全在庫日数が１０日のマスまで移動している。
【００５８】
ただし、最大在庫日数が１６日で安全在庫日数が１０日の現マスでは、その周囲の上下左右方向のマスの中に、現マスよりも目的関数ｆの値が小さいマスはない。一方で、現マスでは、その周囲の斜め方向のマスの中に、現マスよりも目的関数ｆの値が小さいマスがあり、また、これらのマスのうち目的関数ｆの値が最小である周囲のマスが、左上斜め方向のマスである。
【００５９】
そのため、探索部１２は、現マスから左上斜めのマスに移動し、以降、斜め探索モードを再帰的に実行し、最大在庫日数が９日で安全在庫日数が３日のマスまで移動している。
【００６０】
ただし、最大在庫日数が９日で安全在庫日数が３日の現マスでは、その周囲の斜め方向のマスの中に、現マスよりも目的関数ｆの値が小さいマスはない。また、現マスでは、その周囲の上下左右方向のマスの中にも、現マスよりも目的関数ｆの値が小さいマスはない。
そのため、探索部１２は、現マスが、目的関数ｆの値が最小値となるマスであると判断し、決定部１３は、現マスに対応する最大在庫日数の値（９日）及び安全在庫日数の値（３日）を、それぞれ、最大在庫日数及び安全在庫日数の最適解に決定する。
【００６１】
上述したように本実施の形態によれば、パラメータ探索装置１０は、最大在庫日数及び安全在庫日数を軸とする所定の２次元空間をマス目状に分割し、所定の２次元空間上のマスの中から、目的関数ｆの値が最小値となるマスを探索し、見つけたマスに対応する最大在庫日数及び安全在庫日数のそれぞれの値を最適解に決定する。そのため、複雑な計算を行うことなく、最大在庫日数及び安全在庫日数という２個のパラメータのそれぞれの最適解を探索することができる。
【００６２】
したがって、経験が不足しているユーザでも、最大在庫日数及び安全在庫日数を適切に設定することができるため、適切に発注点数を決定し、決定した発注点数まで商品の在庫数が減少した適切なタイミングで、商品の発注を行うことができる。これにより、商品の在庫数が不足して、商品の品切れや欠品が発生することを防ぐことに寄与し得る。
【００６３】
＜実施の形態の変形例＞
上記の実施の形態では、目的関数ｆの指標ｘｉ毎の桁合わせ用の除数ｋｉは、探索開始点のマスにおける指標ｘｉの値を基に計算し、以降、マスが移動しても、除数ｋｉは固定されていた。しかし、この除数ｋｉは、探索開始点のマスにおける指標ｘｉの値を基に計算したものであるため、マスの移動が進むにしたがって、適切な値にならない可能性がある。
そのため、本開示では、除数ｋｉを、マスを移動する度に計算しても良い。この場合、移動先のマスで周囲を探索するのに使用する目的関数ｆの指標ｘｉ毎の除数ｋｉを、移動先のマスにおける指標ｘｉの値とすれば良い。
【００６４】
また、上記の実施の形態では、最大在庫日数及び安全在庫日数を決定する指標が、平均在庫日数、平均在庫金額、発注回数、及び欠品率の４個である例について説明したが、本開示はこれには限定されない。本開示では、最大在庫日数及び安全在庫日数を決定する指標は、これら４個の指標のうち少なくとも１個を含む、複数個の指標であれば良い。
【００６５】
また、上記の実施の形態では、最適解を探索するパラメータが、商品の最大在庫日数及び安全在庫日数の２個である例について説明したが、本開示はこれには限定されない。本開示では、最適解を探索するパラメータが、物流センター等における在庫管理の分野以外の他分野のパラメータであっても良い。この場合、他分野のパラメータを決定する指標は、該当する分野に応じて適宜決定すれば良い。また、本開示は、Ｎ（Ｎは２以上の自然数）個のパラメータの最適解を探索する場合に適用可能であり、Ｎは２に限定されない。この場合、Ｎ個のパラメータを軸とする所定のＮ次元空間をマス目状に分割し、所定のＮ次元空間上のマスの中から、目的関数の値が最小値となるマスを探索し、目的関数の値が最小値となるマスに対応するＮ個のパラメータのそれぞれの値を最適解に決定する。
【００６６】
＜Ｎが２以外になる事例＞
以下では、Ｎが２以外になる具体的な事例について説明する。
本事例は、本開示を朝食の栄養管理の分野に適用したものである。本事例では、例えば、寮の朝食が幾つかのメニューから選択する方式である場合に、塩分、糖分などを抑え、かつ、食費も安くなるように栄養管理を行う。
【００６７】
本事例では、パラメータは、各メニューを選択する日数とする。具体的には、パラメータは、以下の４個とする（すなわち、Ｎが４）。
納豆ごはん  ……  Ｎ１  日／月
鮭の塩焼き  ……  Ｎ２  日／月
ハムエッグ  ……  Ｎ３  日／月
シリアル    ……  Ｎ４  日／月
ここで、Ｎ１〜Ｎ４の拘束条件は以下とする。
Ｎ１＋Ｎ２＋Ｎ３＋Ｎ４＝３０（又は、３１）
また、上記の各メニューの日数を決定する指標は、食費、塩分摂取量、糖分摂取量、及びコレステロール摂取量の４個とする。
【００６８】
本事例の場合、所定の４次元空間上のマスの中から、目的関数ｆの値が最小値となるマスを探索していく。
本事例の目的関数ｆは、上記の数式（１）に準じたもので、食費、塩分摂取量、糖分摂取量、及びコレステロール摂取量の４個の指標を用いた関数とする。
【００６９】
本事例において、所定の４次元空間上のマスについて、目的関数ｆの値を計算する場合、まず、該当するマスに対応する４個のメニューの日数のそれぞれの値となるように、食費、塩分摂取量、糖分摂取量、及びコレステロール摂取量のそれぞれの値を計算する。次に、上記で計算した食費、塩分摂取量、糖分摂取量、及びコレステロール摂取量の値を、目的関数ｆに代入する。これにより、該当するマスの目的関数ｆの値が計算される。
【００７０】
＜Ｎ次元空間上のマスの探索処理＞
以下では、所定のＮ次元空間上のマスの探索処理について、詳細に説明する。
（Ａ）２次元空間の場合（すなわち、Ｎが２の場合）
上記の実施の形態は、２次元空間の場合の例であった。
上記の実施の形態のように２次元空間の場合、探索開始点のマスから移動した後に行う探索処理においては、図５を用いて説明したように、上下左右探索モード及び斜め探索モードという、探索方向が互いに異なる２個の探索モードを切り替えて実行する。この２個の探索モードは、言い換えれば、以下のようになる。
１番目の探索モード（上下左右探索モード）：
２軸から１軸を取出し、取出した１軸の軸方向に現マスから±１した位置にあるマスを探索する（他の軸は０）。探索方向は、２Ｃ１×２１＝４方向となる。
２番目の探索モード（斜め探索モード）：
２軸から２軸を取出し、取出した２軸のそれぞれの軸方向に現マスから±１した位置にあるマスを探索する。探索方向は、２Ｃ２×２２＝４方向となる。
なお、２次元空間の場合、現マスの全周囲は、３２−１＝８方向となる。
【００７１】
（Ｂ）３次元空間の場合（すなわち、Ｎが３の場合）
３次元空間の場合、探索開始点のマスから移動した後に行う探索処理においては、図１０に示されるように、探索方向が互いに異なる３個の探索モードを切り替えて実行する。この３個の探索モードは、以下のようになる。
１番目の探索モード：
３軸から１軸を取出し、取出した１軸の軸方向に現マスから±１した位置にあるマスを探索する（他の軸は０）。探索方向は、３Ｃ１×２１＝６方向となる。
２番目の探索モード：
３軸から２軸を取出し、取出した２軸のそれぞれの軸方向に現マスから±１した位置にあるマスを探索する（他の軸は０）。探索方向は、３Ｃ２×２２＝１２方向となる。
３番目の探索モード：
３軸から３軸を取出し、取出した３軸のそれぞれの軸方向に現マスから±１した位置にあるマスを探索する。探索方向は、３Ｃ３×２３＝８方向となる。
なお、３次元空間の場合、現マスの全周囲は、３３−１＝２６方向となる。
【００７２】
（Ｃ）Ｎ次元空間の場合
２次元空間及び３次元空間の場合の探索処理は、上記の通りである。
これを踏まえると、Ｎ次元空間の場合、探索開始点のマスから移動した後に行う探索処理においては、探索方向が互いに異なるＮ個の探索モードを切り替えて実行する。このＮ個の探索モードは、以下のようになる。
１番目の探索モード：
Ｎ軸から１軸を取出し、取出した１軸の軸方向に現マスから±１した位置にあるマスを探索する（他の軸は０）。探索方向は、ＮＣ１×２１方向となる。
２番目の探索モード：
Ｎ軸から２軸を取出し、取出した２軸のそれぞれの軸方向に現マスから±１した位置にあるマスを探索する（他の軸は０）。探索方向は、ＮＣ２×２２方向となる。
Ｎ番目の探索モード：
Ｎ軸からＮ軸を取出し、取出したＮ軸のそれぞれの軸方向に現マスから±１した位置にあるマスを探索する。探索方向は、ＮＣＮ×２Ｎ方向となる。
なお、Ｎ次元空間の場合、現マスの全周囲の方向は、次の数式（３）で表される。
【数３】
2019219869.tif 000005
【００７３】
＜実施の形態の概念＞
続いて、上記の実施の形態に係るパラメータ探索装置１０を概念的に示した構成について説明する。図１１は、上記の実施の形態に係るパラメータ探索装置１０を概念的に示したパラメータ探索装置１００の構成例を示すブロック図である。
【００７４】
図１１に示されるように、パラメータ探索装置１００は、分割部１０１、探索部１０２、及び決定部１０３を備えている。分割部１０１は、分割部１１に相当し、探索部１０２は、探索部１２に相当し、決定部１０３は、決定部１３に相当する。
【００７５】
分割部１０１は、所定のＮ次元空間をマス目状に分割する。
探索部１０２は、所定のＮ次元空間上のマスの中から、目的関数の値が最小値となるマスを探索する。
決定部１０３は、目的関数の値が最小値となるマスに対応するＮ個のパラメータのそれぞれの値を最適解に決定する。
【００７６】
以下では、探索部１０２について詳細に説明する。
まず、探索部１０２は、所定のＮ次元空間上のマスの１つを探索開始点とする。探索開始点のマスは、例えば、所定のＮ次元空間上のマスのうち、目的関数の値が最大値となると推測されるマスとする。
【００７７】
続いて、探索部１０２は、探索開始点のマス及びその周囲のマスの目的関数の値を計算し、その周囲のマスのうち目的関数の値が最小である周囲のマスに移動し、移動先のマスを新たな現マスとする。そして、探索部１０２は、現マス及びその周囲のマスの目的関数の値を計算し、現マスの周囲のマスの中から、現マスよりも目的関数の値が小さいマスを探索する探索処理を再帰的に実行する。
【００７８】
探索部１０２は、探索処理で探索対象であった周囲のマスを見つけられなかった場合、現マスが所定のＮ次元空間上のマスの中で目的関数の値が最小値となるマスであると判断し、探索を終了する。
【００７９】
ここで、探索処理は、マスの探索方向が互いに異なるＮ個の探索モードを含み、探索部１０２は、Ｎ個の探索モードを切り替えながら、探索処理を実行する。Ｎが２の場合の探索処理は、上述のように、上下左右探索モードと斜め探索モードとの２個の探索モードを含むことになる。
【００８０】
また、目的関数は、Ｎ個のパラメータのそれぞれの値を決定する複数の指標のそれぞれの値を、指標毎に計算された除数で除算し、かつ、指標毎に設定された重み係数で乗算した上で、加算した関数である。探索部１０２は、該当マスに対応するＮ個のパラメータのそれぞれの値となるように複数の指標のそれぞれの値を計算し、計算した複数の指標のそれぞれの値を目的関数に代入することで、該当マスの目的関数の値を計算する。
【００８１】
なお、探索部１０２は、目的関数の指標毎の除数を、探索開始点のマスにおけるその指標の値を基に計算しても良い。又は、探索部１０２は、目的関数の指標毎の除数を、マスを移動する度に計算しても良い。マスを移動する度に計算する場合、探索部１０２は、移動先のマスで周囲を探索するのに使用する目的関数の指標毎の除数を、移動先のマスにおけるその指標の値とすれば良い。
【００８２】
以上、実施の形態を参照して本開示を説明したが、本開示は上記の実施の形態に限定されるものではない。本開示の構成や詳細には、本開示のスコープ内で当業者が理解し得る様々な変更をすることができる。
【００８３】
例えば、上記の実施の形態では、本開示のパラメータ探索装置をハードウェアの構成として説明したが、本開示は、これに限定されるものではない。本開示は、パラメータ探索装置が、プロセッサ及びメモリを内蔵し、プロセッサが、メモリに格納されたコンピュータプログラムを読み出し実行することにより、パラメータ探索装置の任意の処理を、実現することも可能である。
【００８４】
上記の例において、プログラムは、様々なタイプの非一時的なコンピュータ可読媒体（non-transitory computer readable medium）を用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体（tangible storage medium）を含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体（例えばフレキシブルディスク、磁気テープ、ハードディスクドライブ）、光磁気記録媒体（例えば光磁気ディスク）、ＣＤ−ＲＯＭ（Compact Disc-Read Only Memory）、ＣＤ−Ｒ（CD-Recordable）、ＣＤ−Ｒ／Ｗ（CD-ReWritable）、半導体メモリ（例えば、マスクＲＯＭ、ＰＲＯＭ（Programmable ROM）、ＥＰＲＯＭ（Erasable PROM）、フラッシュＲＯＭ、ＲＡＭ（Random Access Memory））を含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体（transitory computer readable medium）によってコンピュータに供給されても良い。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。
【００８５】
上記の実施の形態の一部又は全部は、以下の付記のようにも記載されうるが、以下には限られない。
（付記１）
Ｎ（Ｎは２以上の自然数）個のパラメータを軸とする所定のＮ次元空間をマス目状に分割する分割部と、
前記所定のＮ次元空間上のマスの中から、当該マスに対応するＮ個のパラメータのそれぞれの値を用いて得られる目的関数の値が最小値となるマスを探索する探索部と、
前記目的関数の値が最小値となるマスに対応するＮ個のパラメータのそれぞれの値を最適解に決定する決定部と、
を備えるパラメータ探索装置。
（付記２）
前記探索部は、
前記所定のＮ次元空間上のマスの１つを開始点とし、
開始点とする現マス及びその周囲のマスの前記目的関数の値を計算し、開始点のマスの周囲のマスのうち前記目的関数の値が最小である周囲のマスに移動し、移動先のマスを新たな現マスとする探索処理を再帰的に実行し、
前記探索処理で探索対象であった周囲のマスを見つけられなかった場合、現マスが前記所定のＮ次元空間上のマスの中で前記目的関数の値が最小値となるマスであると判断する、
付記１に記載のパラメータ探索装置。
（付記３）
前記開始点のマスは、前記所定のＮ次元空間上のマスのうち、前記目的関数の値が最大値となると推測されるマスである、
付記２に記載のパラメータ探索装置。
（付記４）
前記探索処理は、
マスの探索方向が互いに異なるＮ個の探索モードを含み、
前記探索部は、
Ｎ個の探索モードを切り替えながら、前記探索処理を実行する、
付記２又は３に記載のパラメータ探索装置。
（付記５）
Ｎは２であり、
前記探索処理は、
現マス及びその周囲の第１探索方向のマスの前記目的関数の値を計算し、現マスの周囲の前記第１探索方向のマスの中から、現マスよりも前記目的関数の値が小さいマスを探索する第１探索モードと、
現マス及びその周囲の第２探索方向のマスの前記目的関数の値を計算し、現マスの周囲の前記第２探索方向のマスの中から、現マスよりも前記目的関数の値が小さいマスを探索する第２探索モードと、を含み、
前記探索部は、
前記開始点とする現マスから移動した移動先のマスの方向が前記第１探索方向である場合、前記第１探索モードを実行し、前記第１探索モードで探索対象であった周囲のマスを見つけた場合、前記第１探索モードで見つけた周囲のマスのうち前記目的関数の値が最小である周囲のマスに移動し、移動先のマスを新たな現マスとして、前記第１探索モードを再帰的に実行し、
前記開始点とする現マスから移動した移動先のマスの方向が前記第２探索方向である場合、前記第２探索モードを実行し、前記第２探索モードで探索対象であった周囲のマスを見つけた場合、前記第２探索モードで見つけた周囲のマスのうち前記目的関数の値が最小である周囲のマスに移動し、移動先のマスを新たな現マスとして、前記第２探索モードを再帰的に実行する、
付記４に記載のパラメータ探索装置。
（付記６）
前記探索部は、
前記第１探索モードで探索対象であった周囲のマスを見つけられなかった場合、続いて前記第２探索モードを実行し、前記第２探索モードでも探索対象であった周囲のマスを見つけられなかった場合、現マスが前記所定の２次元空間上のマスの中で前記目的関数の値が最小値となるマスであると判断し、前記第２探索モードで探索対象であった周囲のマスを見つけた場合、前記第２探索モードで見つけた周囲のマスのうち前記目的関数の値が最小である周囲のマスに移動し、移動先のマスを新たな現マスとして、前記第２探索モードを再帰的に実行し、
前記第２探索モードで探索対象であった周囲のマスを見つけられなかった場合、続いて前記第１探索モードを実行し、前記第１探索モードでも探索対象であった周囲のマスを見つけられなかった場合、現マスが前記所定の２次元空間上のマスの中で前記目的関数の値が最小値となるマスであると判断し、前記第１探索モードで探索対象であった周囲のマスを見つけた場合、前記第１探索モードで見つけた周囲のマスのうち前記目的関数の値が最小である周囲のマスに移動し、移動先のマスを新たな現マスとして、前記第１探索モードを再帰的に実行する、
付記５に記載のパラメータ探索装置。
（付記７）
前記目的関数は、Ｎ個のパラメータのそれぞれの値を決定する複数の指標のそれぞれの値を、前記指標毎に計算された除数で除算し、かつ、前記指標毎に設定された重み係数で乗算した上で、加算した関数であり、
前記探索部は、
前記所定のＮ次元空間上のマスの前記目的関数の値を計算する場合、当該マスに対応するＮ個のパラメータのそれぞれの値となるように前記複数の指標のそれぞれの値を計算し、計算した前記複数の指標のそれぞれの値を前記目的関数に代入する、
付記２から４のいずれか１項に記載のパラメータ探索装置。
（付記８）
前記探索部は、
前記指標毎の前記除数を、前記開始点のマスにおける当該指標の値を基に計算する、
付記７に記載のパラメータ探索装置。
（付記９）
前記探索部は、
前記指標毎の前記除数を、マスを移動する度に計算し、
移動先のマスで周囲を探索するのに使用する前記目的関数の前記指標毎の前記除数を、移動先のマスにおける当該指標の値とする、
付記７に記載のパラメータ探索装置。
（付記１０）
Ｎは２であり、
前記パラメータは、商品の最大在庫日数及び安全在庫日数であり、
前記指標は、商品の平均在庫日数、平均在庫金額、発注回数、及び欠品率のうち少なくとも１個を含む、
付記７から９のいずれか１項に記載のパラメータ探索装置。
（付記１１）
パラメータ探索装置によるパラメータ探索方法であって、
Ｎ（Ｎは２以上の自然数）個のパラメータを軸とする所定のＮ次元空間をマス目状に分割するステップと、
前記所定のＮ次元空間上のマスの中から、当該マスに対応するＮ個のパラメータのそれぞれの値を用いて得られる目的関数の値が最小値となるマスを探索するステップと、
前記目的関数の値が最小値となるマスに対応するＮ個のパラメータのそれぞれの値を最適解に決定するステップと、
を含むパラメータ探索方法。
（付記１２）
コンピュータを、
Ｎ（Ｎは２以上の自然数）個のパラメータを軸とする所定のＮ次元空間をマス目状に分割する分割手段と、
前記所定のＮ次元空間上のマスの中から、当該マスに対応するＮ個のパラメータのそれぞれの値を用いて得られる目的関数の値が最小値となるマスを探索する探索手段と、
前記目的関数の値が最小値となるマスに対応するＮ個のパラメータのそれぞれの値を最適解に決定する決定手段と、
として機能させるためのプログラム。
【符号の説明】
【００８６】
１０  パラメータ探索装置
１１  分割部
１２  探索部
１３  決定部
１４  入力部
１００  パラメータ探索装置
１０１  分割部
１０２  探索部
１０３  決定部
【図１】
2019219869.tif 000006
【図２】
2019219869.tif 000007
【図３】
2019219869.tif 000008
【図４】
2019219869.tif 000009
【図５】
2019219869.tif 000010
【図６】
2019219869.tif 000011
【図７】
2019219869.tif 000012
【図８】
2019219869.tif 000013
【図９】
2019219869.tif 000014
【図１０】
2019219869.tif 000015
【図１１】
2019219869.tif 000016