(57)【要約】【課題】発注数の選択に強化学習を適用して、複数の物品をより効率的に発注することができる発注管理装置等を提供する。【解決手段】発注管理装置は、所定の時点における複数の物品の在庫数を含む状態と、複数の物品を所定数発注する行動との関数であって、複数の物品について設定されている複数の評価関数の第１値を、複数の物品について設定されている複数の推定モデルによって推定する第１推定部と、第１値に基づいて、行動を選択する選択部と、行動を行った場合の複数の物品の保管コスト及び発注された物品の輸送コストに基づいて、複数の物品それぞれに関する報酬を算出する報酬算出部と、行動を行った後の状態について、取り得る行動に関する複数の評価関数の第２値を複数の推定モデルによって推定する第２推定部と、割引率を掛けた第２値及び報酬の和と、第１値との差を小さくするように、複数の推定モデルのパラメータを更新する更新部と、を備える。【選択図】図１
2020187681.tif 000002
【特許請求の範囲】
【請求項１】
所定の時点における複数の物品の在庫数を含む状態と、前記複数の物品を所定数発注する行動との関数であって、前記複数の物品について設定されている複数の評価関数の第１値を、前記複数の物品について設定されている複数の推定モデルによって推定する第１推定部と、
前記第１値に基づいて、前記行動を選択する選択部と、
前記行動を行った場合の前記複数の物品の保管コスト及び発注された物品の輸送コストに基づいて、前記複数の物品それぞれに関する報酬を算出する報酬算出部と、
前記行動を行った後の前記状態について、取り得る前記行動に関する前記複数の評価関数の第２値を前記複数の推定モデルによって推定する第２推定部と、
割引率を掛けた前記第２値及び前記報酬の和と、前記第１値との差を小さくするように、前記複数の推定モデルのパラメータを更新する更新部と、
を備える発注管理装置。
【請求項２】
前記報酬算出部は、前記保管コストと、前記輸送コストを発注された物品の数で除算した値との和によって、前記複数の物品それぞれに関する前記報酬を算出する、
請求項１に記載の発注管理装置。
【請求項３】
前記報酬算出部は、前記保管コストと、前記輸送コストを発注された物品の数で除算した値と、前記複数の物品が欠品した場合のペナルティコストとの和によって、前記複数の物品それぞれに関する前記報酬を算出する、
請求項１又は２に記載の発注管理装置。
【請求項４】
前記選択部は、所定の確率で、ランダムに前記行動を選択し、１から前記所定の確率を引いた確率で、前記第１値が最大となる前記行動を選択する、
請求項１から３のいずれか一項に記載の発注管理装置。
【請求項５】
前記複数の推定モデルは、前記状態に関する状態値を推定する第１モデルと、前記状態における前記行動のアドバンテージ関数を推定する第２モデルとをそれぞれ含む、
請求項１から４のいずれか一項に記載の発注管理装置。
【請求項６】
前記更新部は、前記報酬及び前記割引率を掛けた前記第２値の和と、前記第１値との差の２乗について、前記複数の物品について過去に記録された前記状態、前記行動、前記報酬及び前記行動を行った後の前記状態に関する期待値が小さくなるように、前記パラメータを更新する、
請求項１から５のいずれか一項に記載の発注管理装置。
【請求項７】
前記更新部は、前記報酬及び前記割引率を掛けた前記第２値の和と、前記第１値との差のＨｕｂｅｒ損失関数について、前記複数の物品について過去に記録された前記状態、前記行動、前記報酬及び前記行動を行った後の前記状態に関する期待値が小さくなるように、前記パラメータを更新する、
請求項１から５のいずれか一項に記載の発注管理装置。
【請求項８】
前記状態は、前記所定の時点において輸送中の物品の数を含む、
請求項１から７のいずれか一項に記載の発注管理装置。
【請求項９】
前記状態は、前記所定の時点から輸送に要する期間経過後の前記在庫数の推定値を含む、
請求項１から８のいずれか一項に記載の発注管理装置。
【請求項１０】
前記状態は、前記所定の時点から輸送に要する期間が経過するまでの物品の需要数の推定値を含む、
請求項１から９のいずれか一項に記載の発注管理装置。
【請求項１１】
前記状態は、前記所定の時点から輸送に要する期間が経過してから、所定の期間が経過するまでの物品の需要数の推定値を含む、
請求項１から１０のいずれか一項に記載の発注管理装置。
【請求項１２】
所定の時点における複数の物品の在庫数を含む状態と、前記複数の物品を所定数発注する行動との関数であって、前記複数の物品について設定されている複数の評価関数の第１値を、前記複数の物品について設定されている複数の推定モデルによって推定すること、
前記第１値に基づいて、前記行動を選択することと、
前記行動を行った場合の前記複数の物品の保管コスト及び発注された物品の輸送コストに基づいて、前記複数の物品それぞれに関する報酬を算出することと、
前記行動を行った後の前記状態について、取り得る前記行動に関する前記複数の評価関数の第２値を前記複数の推定モデルによって推定することと、
割引率を掛けた前記第２値及び前記報酬の和と、前記第１値との差を小さくするように、前記複数の推定モデルのパラメータを更新することと、
を含む発注管理方法。
【請求項１３】
発注管理装置に備えられた演算部を、
所定の時点における複数の物品の在庫数を含む状態と、前記複数の物品を所定数発注する行動との関数であって、前記複数の物品について設定されている複数の評価関数の第１値を、前記複数の物品について設定されている複数の推定モデルによって推定する第１推定部、
前記第１値に基づいて、前記行動を選択する選択部、
前記行動を行った場合の前記複数の物品の保管コスト及び発注された物品の輸送コストに基づいて、前記複数の物品それぞれに関する報酬を算出する報酬算出部、
前記行動を行った後の前記状態について、取り得る前記行動に関する前記複数の評価関数の第２値を前記複数の推定モデルによって推定する第２推定部、及び
割引率を掛けた前記第２値及び前記報酬の和と、前記第１値との差を小さくするように、前記複数の推定モデルのパラメータを更新する更新部、
として機能させる発注管理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、発注管理装置、発注管理方法及び発注管理プログラムに関する。
【背景技術】
【０００２】
小売業等の仕入れを必要とする業態では、生産者や卸売業者から商品を仕入れて在庫を確保し、消費者に販売することが行われている。複数の商品を販売する場合に、それぞれの商品について在庫が枯渇しないように仕入量を決定する方法として、例えば非特許文献１に記載の方法や非特許文献２に記載の方法が知られている。
【０００３】
また、下記特許文献１には、店舗における原材料の在庫予測数に基づいて発注数を管理する発注数管理装置が記載されている。発注数管理装置は、店舗で使用される原材料の使用予測数を算出し、納品日ごとの入荷予定の納品数を算出し、直近の棚卸数と使用予測数と納品数とを用いて店舗の在庫予測数を算出し、使用予測数、納品数及び在庫予測数を納品日ごとに表示する。
【０００４】
一方で、近年、強化学習と呼ばれる機械学習の手法が研究されている。例えば、下記非特許文献３では、行動空間が高次元である場合にも適用可能なbranching deep Q-networkと呼ばれるニューラルネットワークのアーキテクチャが提唱されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１８−１２８８６２号公報
【非特許文献】
【０００６】
【非特許文献１】J. L. Balintfy, "On a basic class of multi-item inventory problems,"Management Science, vol. 10, no. 2, pp. 287-297, 1964.
【非特許文献２】A. Ishigaki and Y. Hirakawa, "Design of a economic order-point system based on forecasted inventory positions," Journal of Japan Industrial Management Association, vol. 59, no. 4, pp. 290-295, 2008.
【非特許文献３】A. Tavakoli, F. Pardo, and P. Kormushev, "Action branching architectures for deep reinforcement learning," CoRR, vol. abs/1711.08946, 2017.
【発明の概要】
【発明が解決しようとする課題】
【０００７】
例えば非特許文献１に記載の方法を用いて複数の物品の発注数を決定する場合、必ずしも最適な発注が行えないことがある。例えば、所定数の物品を１つのパレットにまとめて、複数のパレットをコンテナに積み、当該コンテナを輸送する場合、非特許文献１に記載の方法ではコンテナを効率的に使用できず、仕入れに際して余剰コストが発生してしまうことがある。
【０００８】
そこで、本発明は、発注数の選択に強化学習を適用して、複数の物品をより効率的に発注することができる発注管理装置、発注管理方法及び発注管理プログラムを提供する。
【課題を解決するための手段】
【０００９】
本発明の一態様に係る発注管理装置は、所定の時点における複数の物品の在庫数を含む状態と、複数の物品を所定数発注する行動との関数であって、複数の物品について設定されている複数の評価関数の第１値を、複数の物品について設定されている複数の推定モデルによって推定する第１推定部と、第１値に基づいて、行動を選択する選択部と、行動を行った場合の複数の物品の保管コスト及び発注された物品の輸送コストに基づいて、複数の物品それぞれに関する報酬を算出する報酬算出部と、行動を行った後の状態について、取り得る行動に関する複数の評価関数の第２値を複数の推定モデルによって推定する第２推定部と、割引率を掛けた第２値及び報酬の和と、第１値との差を小さくするように、複数の推定モデルのパラメータを更新する更新部と、を備える。
【００１０】
この態様によれば、強化学習の報酬を複数の物品それぞれについて算出し、複数の物品について設定されている複数の推定モデルのパラメータを更新していくことで、より適切な評価関数の値を推定することができるようになり、複数の物品をより効率的に発注することができる。
【００１１】
上記態様において、報酬算出部は、保管コストと、輸送コストを発注された物品の数で除算した値との和によって、複数の物品それぞれに関する報酬を算出してもよい。
【００１２】
この態様によれば、複数の物品が同時に発注されるように報酬を与えることができ、複数の物品をコンテナに搭載して輸送する場合であっても、コストを抑えるように複数の物品を発注することができる。
【００１３】
上記態様において、報酬算出部は、保管コストと、輸送コストを発注された物品の数で除算した値と、複数の物品が欠品した場合のペナルティコストとの和によって、複数の物品それぞれに関する報酬を算出してもよい。
【００１４】
この態様によれば、複数の物品が欠品しないように報酬を与えることができ、複数の物品の在庫が尽きる確率が小さくなるように複数の物品を発注することができる。
【００１５】
上記態様において、選択部は、所定の確率で、ランダムに行動を選択し、１から所定の確率を引いた確率で、第１値が最大となる行動を選択してもよい。
【００１６】
この態様によれば、新たな行動の探索と、経験的に最良である行動の選択とのバランスを取りながら、より効率的な発注ができるようになる。
【００１７】
上記態様において、複数の推定モデルは、状態に関する状態値を推定する第１モデルと、状態における行動のアドバンテージ関数を推定する第２モデルとをそれぞれ含んでもよい。
【００１８】
この態様によれば、評価関数の値を推定する推定モデルのうち、状態のみに依存する部分を第１モデルによって推定し、状態及び行動に依存する部分を第２モデルによって推定することで、より適切な評価関数の値を推定することができるようになり、複数の物品をより効率的に発注することができる。
【００１９】
上記態様において、更新部は、報酬及び割引率を掛けた第２値の和と、第１値との差の２乗について、複数の物品について過去に記録された状態、行動、報酬及び行動を行った後の状態に関する期待値が小さくなるように、パラメータを更新してもよい。
【００２０】
この態様によれば、推定モデルのパラメータを更新する際の不安定性を抑えることができ、より適切な評価関数の値を推定することができるようになる。
【００２１】
上記態様において、更新部は、報酬及び割引率を掛けた第２値の和と、第１値との差のＨｕｂｅｒ損失関数について、複数の物品について過去に記録された状態、行動、報酬及び行動を行った後の状態に関する期待値が小さくなるように、パラメータを更新してもよい。
【００２２】
この態様によれば、推定モデルのパラメータを更新する際の外れ値に対する不安定性を抑えることができ、より適切な評価関数の値を推定することができるようになる。
【００２３】
上記態様において、状態は、所定の時点において輸送中の物品の数を含んでもよい。
【００２４】
この態様によれば、複数の物品の在庫数のみならず、輸送中の物品の数を考慮して評価関数の値を推定することができ、複数の物品をより効率的に発注することができる。
【００２５】
上記態様において、状態は、所定の時点から輸送に要する期間経過後の在庫数の推定値を含んでもよい。
【００２６】
この態様によれば、複数の物品の在庫数のみならず、将来の在庫数を考慮して評価関数の値を推定することができ、複数の物品をより効率的に発注することができる。
【００２７】
上記態様において、状態は、所定の時点から輸送に要する期間が経過するまでの物品の需要数の推定値を含んでもよい。
【００２８】
この態様によれば、複数の物品の在庫数のみならず、輸送中の物品が到着するまでに生じると推定される複数の物品の需要を考慮して評価関数の値を推定することができ、複数の物品をより効率的に発注することができる。
【００２９】
上記態様において、状態は、所定の時点から輸送に要する期間が経過してから、所定の期間が経過するまでの物品の需要数の推定値を含んでもよい。
【００３０】
この態様によれば、複数の物品の在庫数のみならず、輸送中の物品が到着した後に生じると推定される複数の物品の需要を考慮して評価関数の値を推定することができ、複数の物品をより効率的に発注することができる。
【００３１】
本発明の他の態様に係る発注管理方法は、所定の時点における複数の物品の在庫数を含む状態と、複数の物品を所定数発注する行動との関数であって、複数の物品について設定されている複数の評価関数の第１値を、複数の物品について設定されている複数の推定モデルによって推定すること、第１値に基づいて、行動を選択することと、行動を行った場合の複数の物品の保管コスト及び発注された物品の輸送コストに基づいて、複数の物品それぞれに関する報酬を算出することと、行動を行った後の状態について、取り得る行動に関する複数の評価関数の第２値を複数の推定モデルによって推定することと、割引率を掛けた第２値及び報酬の和と、第１値との差を小さくするように、複数の推定モデルのパラメータを更新することと、を含む。
【００３２】
この態様によれば、強化学習の報酬を複数の物品それぞれについて算出し、複数の物品について設定されている複数の推定モデルのパラメータを更新していくことで、より適切な評価関数の値を推定することができるようになり、複数の物品をより効率的に発注することができる。
【００３３】
本発明の他の態様に係る発注管理プログラムは、発注管理装置に備えられた演算部を、所定の時点における複数の物品の在庫数を含む状態と、複数の物品を所定数発注する行動との関数であって、複数の物品について設定されている複数の評価関数の第１値を、複数の物品について設定されている複数の推定モデルによって推定する第１推定部、第１値に基づいて、行動を選択する選択部、行動を行った場合の複数の物品の保管コスト及び発注された物品の輸送コストに基づいて、複数の物品それぞれに関する報酬を算出する報酬算出部、行動を行った後の状態について、取り得る行動に関する複数の評価関数の第２値を複数の推定モデルによって推定する第２推定部、及び割引率を掛けた第２値及び報酬の和と、第１値との差を小さくするように、複数の推定モデルのパラメータを更新する更新部、として機能させる。
【００３４】
この態様によれば、強化学習の報酬を複数の物品それぞれについて算出し、複数の物品について設定されている複数の推定モデルのパラメータを更新していくことで、より適切な評価関数の値を推定することができるようになり、複数の物品をより効率的に発注することができる。
【発明の効果】
【００３５】
本発明によれば、発注数の選択に強化学習を適用して、複数の物品をより効率的に発注することができる発注管理装置、発注管理方法及び発注管理プログラムを提供することができる。
【図面の簡単な説明】
【００３６】
【図１】本発明の実施形態に係る発注管理装置の機能ブロックを示す図である。
【図２】本実施形態に係る発注管理装置の物理的構成を示す図である。
【図３】本実施形態に係る発注管理装置の複数の推定モデルの概念図である。
【図４】物品数が２である場合における、本実施形態に係る発注管理装置による総コストと、比較例の総コストとを示す図である。
【図５】本実施形態に係る発注管理装置により管理される複数の物品の在庫数の時間変化と発注タイミングを示す図である。
【図６】物品数が１０である場合における、本実施形態に係る発注管理装置による総コストと、比較例の総コストとを示す図である。
【図７】本実施形態に係る発注管理装置により実行される処理のフローチャートである。
【発明を実施するための形態】
【００３７】
添付図面を参照して、本発明の実施形態について説明する。なお、各図において、同一の符号を付したものは、同一又は同様の構成を有する。
【００３８】
図１は、本発明の実施形態に係る発注管理装置１０の機能ブロックを示す図である。発注管理装置１０は、取得部１１、第１推定部１２、記憶部１３、選択部１４、報酬算出部１５、第２推定部１６及び更新部１７を備える。
【００３９】
取得部１１は、管理端末２１から、所定の時点における複数の物品の在庫数を取得する。本実施形態において、複数の物品は、コンテナに格納されて遠隔地から輸送され、倉庫２０に保管されるものとする。もっとも、複数の物品は、必ずしも倉庫２０に保管されなくてもよく、任意の場所に保管されてよい。
【００４０】
取得部１１は、所定の時点において輸送中の物品の数を取得してもよい。輸送中の物品の数は、発注時点から輸送に要する期間が経過していない発注済みの物品の数である。
【００４１】
第１推定部１２は、所定の時点における複数の物品の在庫数を含む状態と、複数の物品を所定数発注する行動との関数であって、複数の物品について設定されている複数の評価関数の第１値を、複数の物品について設定されている複数の推定モデル１３ａによって推定する。以下では、所定の時点ｔにおける物品ｄ（ｄ＝１〜Ｎ）の在庫数をＩd,tと表し、状態をｓtと表し、物品ｄを所定数発注する行動をａdと表し、物品ｄに関する評価関数の第１値をＱd（ｓt，ａd）と表す。
【００４２】
第１推定部１２は、それぞれニューラルネットワークで構成される複数の推定モデル１３ａによって、状態ｓtにおいて可能な行動ａdについて、評価関数の第１値Ｑd（ｓt，ａd）を推定してよい。複数の推定モデル１３ａは、例えば複数の隠れ層を有する全結合ニューラルネットワークであってよいが、他のモデルであってもよい。
【００４３】
状態ｓtは、所定の時点ｔにおいて輸送中の物品ｄの数ＯＯd,tを含んでよい。輸送中の物品ｄの数ＯＯd,tを状態ｓtに含めることで、複数の物品の在庫数のみならず、輸送中の物品の数を考慮して評価関数の値を推定することができ、複数の物品をより効率的に発注することができる。
【００４４】
状態ｓtは、所定の時点ｔから輸送に要する期間ＬＴ経過後の物品ｄの在庫数の推定値Ｉd,t,t+LTを含んでよい。在庫数の推定値Ｉd,t,t+LTを状態ｓtに含めることで、複数の物品の在庫数のみならず、将来の在庫数を考慮して評価関数の値を推定することができ、複数の物品をより効率的に発注することができる。
【００４５】
状態ｓtは、所定の時点ｔから輸送に要する期間ＬＴが経過するまでの物品ｄの需要数の推定値ｆd,tt:LTを含んでよい。なお、推定値ｆd,tt:LTは、期間［ｔ，ｔ＋ＬＴ］における物品ｄの需要数の総和の推定値であってよい。物品ｄの需要数の推定値ｆd,tt:LTを状態ｓtに含めることで、複数の物品の在庫数のみならず、輸送中の物品が到着するまでに生じると推定される複数の物品の需要を考慮して評価関数の値を推定することができ、複数の物品をより効率的に発注することができる。
【００４６】
また、状態ｓtは、所定の時点ｔから輸送に要する期間ＬＴが経過してから、所定の期間Ｍが経過するまでの物品ｄの需要数の推定値ｆd,tt+LT:Mを含んでよい。なお、推定値ｆd,tt+LT:Mは、期間［ｔ＋ＬＴ，ｔ＋ＬＴ＋Ｍ］における物品ｄの需要数の総和の推定値であってよい。物品ｄの需要数の推定値ｆd,tt+LT:Mを状態ｓtに含めることで、複数の物品の在庫数のみならず、輸送中の物品が到着した後に生じると推定される複数の物品の需要を考慮して評価関数の値を推定することができ、複数の物品をより効率的に発注することができる。
【００４７】
第１推定部１２は、物品ｄの在庫数をＩd,tと、輸送中の物品ｄの数ＯＯd,tと、ｔ＋ＬＴの時点における物品ｄの在庫数の推定値Ｉd,t,t+LTと、ｔからｔ＋ＬＴまでの物品ｄの需要数の推定値ｆd,tt:LTと、ｔ＋ＬＴからｔ＋ＬＴ＋Ｍまでの物品ｄの需要数の推定値ｆd,tt+LT:Mとを、変換モデルで変換した特徴量を状態ｓtとしてもよい。ここで、変換モデルは、例えば全結合ニューラルネットワークであってよいが、他のモデルであってもよい。
【００４８】
記憶部１３は、複数の推定モデル１３ａを記憶する。複数の推定モデル１３ａは、複数の物品毎に設定されていてよい。
【００４９】
選択部１４は、評価関数の第１値Ｑd（ｓt，ａd）に基づいて、行動ａdを選択する。選択部１４は、所定の確率ε(０≦ε≦１)で、ランダムに行動ａdを選択し、１から所定の確率を引いた確率（１−ε）で、第１値Ｑd（ｓt，ａd）が最大となる行動ａdを選択してよい。すなわち、選択部１４は、確率（１−ε）で、ａd＝ａｒｇ ｍａｘaＱd（ｓt，ａ）により行動ａdを選択してよい。このようにして、新たな行動の探索と、経験的に最良である行動の選択とのバランスを取りながら、より効率的な発注ができるようになる。
【００５０】
報酬算出部１５は、行動ａdを行った場合の複数の物品の保管コスト及び発注された物品の輸送コストに基づいて、複数の物品それぞれに関する報酬ｒdを算出する。ここで、所定の時点ｔにおける物品ｄの保管コストをＣholdd,tと表し、所定の時点ｔにおける輸送コストをＣtranstと表し、物品ｄの報酬をｒdと表すとき、ｒd＝−（Ｃholdd,t＋Ｃtranst／Ｎ）であってよい。ここで、Ｎは、複数の物品の数（物品の種類の数）である。すなわち、報酬算出部１５は、保管コストと、輸送コストを発注された物品の数で除算した値との和によって、複数の物品それぞれに関する報酬を算出してよい。
【００５１】
輸送コストは、コンテナの数に応じて定まり、コンテナに収容される物品の多寡には依存しないことがある。そのため、物品をパレットにまとめてコンテナで輸送する場合、複数種類の物品を１つのコンテナにまとめた方が、複数種類の物品を個別にコンテナに収容して輸送する場合よりもコストを減らすことができる場合がある。本実施形態に係る報酬算出部１５によれば、輸送コストを複数の物品に関する報酬に分配することで、複数の物品が同時に発注されるように報酬を与えることができ、複数の物品をコンテナに搭載して輸送する場合であっても、コストを抑えるように複数の物品を発注することができる。
【００５２】
報酬算出部１５は、保管コストと、輸送コストを発注された物品の数で除算した値と、複数の物品が欠品した場合のペナルティコストとの和によって、複数の物品それぞれに関する報酬を算出してもよい。ここで、所定の時点ｔで物品ｄが欠品した場合のペナルティコストをＣpeld,tと表すとき、ｒd＝−（Ｃholdd,t＋Ｃpeld,t＋Ｃtranst／Ｎ）であってよい。このようにして、複数の物品が欠品しないように報酬を与えることができ、複数の物品の在庫が尽きる確率が小さくなるように複数の物品を発注することができる。
【００５３】
第２推定部１６は、行動ａdを行った後の状態ｓ´について、取り得る行動ａ´に関する複数の評価関数の第２値Ｑd（ｓ´，ａ´）を複数の推定モデル１３ａによって推定する。なお、第２推定部１６は、更新部によって複数の推定モデル１３ａのパラメータを更新する場合、更新を所定回数行うまで、古いパラメータを用いた複数の推定モデルによって、複数の評価関数の第２値Ｑd-（ｓ´，ａ´）を推定してもよい。
【００５４】
更新部１７は、割引率を掛けた評価関数の第２値及び報酬の和と、評価関数の第１値との差を小さくするように、複数の推定モデル１３ａのパラメータを更新する。具体的には、割引率をγと表すとき、ｙd＝ｒd＋γａｒｇ ｍａｘa´Ｑd-（ｓ´，ａ´）として、更新部１７は、Ｅ(s,ad,rd,s´)〜D［Ｌ（ｙd，Ｑd（ｓ，ａd））］を最小化するように、複数の推定モデル１３ａのパラメータを更新してよい。ここで、Ｌ（ｙd，Ｑd（ｓ，ａd））は、ｙdとＱd（ｓ，ａd）の差を評価する損失関数である。また、Ｅ(s,ad,rd,s´)〜D［・］は、複数の物品について過去に記録された状態ｓ、行動ａd、報酬ｒd及び行動を行った後の状態ｓ´に関する期待値を表す。更新部１７は、例えば、損失関数を複数の推定モデル１３ａのパラメータで偏微分して、誤差逆伝播法によって複数の推定モデル１３ａのパラメータを更新してよい。
【００５５】
本実施形態に係る発注管理装置１０によれば、強化学習の報酬を複数の物品それぞれについて算出し、複数の物品について設定されている複数の推定モデル１３ａのパラメータを更新していくことで、より適切な評価関数の値を推定することができるようになり、複数の物品をより効率的に発注することができる。
【００５６】
更新部１７は、報酬及び割引率を掛けた評価関数の第２値の和と、評価関数の第１値との差の２乗について、複数の物品について過去に記録された状態、行動、報酬及び行動を行った後の状態に関する期待値が小さくなるように、複数の推定モデル１３ａのパラメータを更新してよい。すなわち、損失関数は、Ｌ（ｙd，Ｑd（ｓ，ａd））∝Σd=1N（ｙd−Ｑd（ｓ，ａd））2であってよい。このように、過去に記録された状態、行動、報酬及び行動を行った後の状態に関する２乗誤差の期待値が小さくなるように複数の推定モデル１３ａのパラメータを更新することで、推定モデルのパラメータを更新する際の不安定性を抑えることができ、より適切な評価関数の値を推定することができるようになる。
【００５７】
また、更新部１７は、報酬及び割引率を掛けた第２値の和と、第１値との差のＨｕｂｅｒ損失関数について、複数の物品について過去に記録された状態、行動、報酬及び行動を行った後の状態に関する期待値が小さくなるように、パラメータを更新してもよい。ここで、Ｈｕｂｅｒ損失関数は、Σd=1N（ｙd−Ｑd（ｓ，ａd））2≦δ2（δは所定のパラメータ）の場合にΣd=1N（ｙd−Ｑd（ｓ，ａd））2に比例し、Σd=1N（ｙd−Ｑd（ｓ，ａd））2＞δ2の場合にΣd=1N｜ｙd−Ｑd（ｓ，ａd）｜に比例する損失関数である。これにより、推定モデルのパラメータを更新する際の外れ値に対する不安定性を抑えることができ、より適切な評価関数の値を推定することができるようになる。
【００５８】
図２は、本実施形態に係る発注管理装置１０の物理的構成を示す図である。発注管理装置１０は、演算部に相当するＣＰＵ（Central Processing Unit）１０ａと、記憶部に相当するＲＡＭ（Random Access Memory）１０ｂと、記憶部に相当するＲＯＭ（Read only Memory）１０ｃと、通信部１０ｄと、入力部１０ｅと、表示部１０ｆと、を有する。これらの各構成は、バスを介して相互にデータ送受信可能に接続される。なお、本例では発注管理装置１０が一台のコンピュータで構成される場合について説明するが、発注管理装置１０は、複数のコンピュータが組み合わされて実現されてもよい。また、図２で示す構成は一例であり、発注管理装置１０はこれら以外の構成を有してもよいし、これらの構成のうち一部を有さなくてもよい。
【００５９】
ＣＰＵ１０ａは、ＲＡＭ１０ｂ又はＲＯＭ１０ｃに記憶されたプログラムの実行に関する制御やデータの演算、加工を行う制御部である。ＣＰＵ１０ａは、強化学習を適用して、複数の物品の発注量を管理するプログラム（発注管理プログラム）を実行する演算部である。ＣＰＵ１０ａは、入力部１０ｅや通信部１０ｄから種々のデータを受け取り、データの演算結果を表示部１０ｆに表示したり、ＲＡＭ１０ｂに格納したりする。
【００６０】
ＲＡＭ１０ｂは、記憶部のうちデータの書き換えが可能なものであり、例えば半導体記憶素子で構成されてよい。ＲＡＭ１０ｂは、ＣＰＵ１０ａが実行するプログラム、複数の物品の在庫数といったデータを記憶してよい。なお、これらは例示であって、ＲＡＭ１０ｂには、これら以外のデータが記憶されていてもよいし、これらの一部が記憶されていなくてもよい。
【００６１】
ＲＯＭ１０ｃは、記憶部のうちデータの読み出しが可能なものであり、例えば半導体記憶素子で構成されてよい。ＲＯＭ１０ｃは、例えば発注管理プログラムや、書き換えが行われないデータを記憶してよい。
【００６２】
通信部１０ｄは、発注管理装置１０を他の機器に接続するインターフェースである。通信部１０ｄは、インターネット等の通信ネットワークＮに接続されてよい。
【００６３】
入力部１０ｅは、ユーザからデータの入力を受け付けるものであり、例えば、キーボード及びタッチパネルを含んでよい。
【００６４】
表示部１０ｆは、ＣＰＵ１０ａによる演算結果を視覚的に表示するものであり、例えば、ＬＣＤ（Liquid Crystal Display）により構成されてよい。表示部１０ｆは、複数の物品の在庫数の推移や発注数の推移を表示してよい。
【００６５】
発注管理プログラムは、ＲＡＭ１０ｂやＲＯＭ１０ｃ等のコンピュータによって読み取り可能な記憶媒体に記憶されて提供されてもよいし、通信部１０ｄにより接続される通信ネットワークを介して提供されてもよい。発注管理装置１０では、ＣＰＵ１０ａが発注管理プログラムを実行することにより、図１を用いて説明した様々な動作が実現される。なお、これらの物理的な構成は例示であって、必ずしも独立した構成でなくてもよい。例えば、発注管理装置１０は、ＣＰＵ１０ａとＲＡＭ１０ｂやＲＯＭ１０ｃが一体化したＬＳＩ（Large-Scale Integration）を備えていてもよい。
【００６６】
図３は、本実施形態に係る発注管理装置１０の複数の推定モデル１３ａの概念図である。複数の推定モデル１３ａは、状態に関する状態値を推定する第１モデル１３ｂと、状態における行動のアドバンテージ関数を推定する第２モデル１３ｃとをそれぞれ含む。以下では、状態をｓと表し、物品ｄに関する状態値をＶd（ｓ）と表し、物品ｄに関するアドバンテージ関数をＡd（ｓ，ａd）と表す。
【００６７】
複数の推定モデル１３ａは、複数の物品毎に設定された第１モデル１３ｂによって、状態ｓに関する状態値Ｖd（ｓ）を推定する。ここで、状態ｓは、物品ｄの在庫数をＩd,tと、輸送中の物品ｄの数ＯＯd,tと、ｔ＋ＬＴの時点における物品ｄの在庫数の推定値Ｉd,t,t+LTと、ｔからｔ＋ＬＴまでの物品ｄの需要数の推定値ｆd,tt:LTと、ｔ＋ＬＴからｔ＋ＬＴ＋Ｍまでの物品ｄの需要数の推定値ｆd,tt+LT:Mとを、変換モデルで変換した特徴量（Shared Representation）であってよい。
【００６８】
また、複数の推定モデル１３ａは、複数の物品毎に設定された第２モデル１３ｃによって、状態ｓにおける行動ａdのアドバンテージ関数Ａd（ｓ，ａd）を推定する。
【００６９】
そして、複数の推定モデル１３ａは、複数の物品毎に推定された状態値Ｖd（ｓ）とアドバンテージ関数Ａd（ｓ，ａd）の和によって、評価関数の値を推定してよい。すなわち、評価関数の値Ｑd（ｓ，ａd）は、Ｑd（ｓ，ａd）＝Ｖd（ｓ）＋Ａd（ｓ，ａd）によって推定されてよい。このように、評価関数の値を推定する推定モデルのうち、状態のみに依存する部分を第１モデル１３ｂによって推定し、状態及び行動に依存する部分を第２モデル１３ｃによって推定することで、より適切な評価関数の値を推定することができるようになり、複数の物品をより効率的に発注することができる。
【００７０】
また、図３に示すように、本実施形態に係る報酬算出部１５は、物品の種類によらずに生じる報酬（Global Reward）を、複数の物品に分配して、各物品を発注する行動に関する報酬を算出する。例えば、報酬算出部１５は、ｒd＝−（Ｃholdd,t＋Ｃpeld,t＋Ｃtranst／Ｎ）によって物品ｄに関する報酬ｒdを算出してよい。ここで、Ｃtranst／Ｎが複数の物品に分配される報酬である。
【００７１】
図４は、物品数が２である場合における、本実施形態に係る発注管理装置１０による総コスト（Total Cost）と、比較例の総コストとを示す図である。なお、総コストは、報酬の符号をマイナスにした値であり、０に近いほど性能が良いことを表している。同図では、横軸に強化学習のエピソード数を示し、縦軸に総コストを示している。
【００７２】
同図では、２種類の物品の需要の期待値が、時間とともに線形に増大する場合について、第１モデル１３ｂ及び第２モデル１３ｃにより構成される複数の推定モデル１３ａによって推定された評価関数に基づいて行動を選択し、物品の輸送コストを複数の物品に関する報酬に分配した場合の総コスト（報酬）の推移を第１グラフＧ１によって示している。ここで、２種類の物品の需要のうち定常部分は、所定のパラメータのガウス分布に従って揺らぐものとしてシミュレーションを行っている。また、それぞれ単一のモデルで構成され、第１モデル１３ｂ及び第２モデル１３ｃを含まない複数の推定モデル１３ａによって推定された評価関数に基づいて行動を選択し、物品の輸送コストを複数の物品に関する報酬に分配した場合の総コスト（報酬）の推移を第２グラフＧ２によって示している。さらに、比較例として、非特許文献３で提案された強化学習を用いる手法における総コスト（報酬）の推移を第３グラフＧ３によって示している。また、比較例として、非特許文献２で提案された強化学習を用いない手法における総コスト（報酬）を基準値Ｒｅｆとして示している。
【００７３】
実線で示す第１グラフＧ１及び破線で示す第２グラフＧ２によれば、本実施形態に係る発注管理装置１０によって、２種類の物品の発注について、基準値Ｒｅｆよりも０に近い総コスト（基準値Ｒｅｆよりも大きな報酬）が達成できることが確認できる。一方、比較例として記載した第３グラフＧ３は、基準値Ｒｅｆよりも大きなマイナスの総コストになってしまうばかりか、学習が不安定であり、総コストが収束しないことが確認できる。このように、本実施形態に係る発注管理装置１０によれば、複数の物品の需要が時間とともに変化する場合であっても、安定的に強化学習を進めることができ、複数の物品をより効率的に発注することができる。
【００７４】
図５は、本実施形態に係る発注管理装置１０により管理される複数の物品の在庫数の時間変化と発注タイミングを示す図である。同図では、第１物品（Product1）の在庫数Ｉ１及び第２物品（Product2）の在庫数Ｉ２を実線で示し、第１物品の発注数Ｏ１及び第２物品の発注数Ｏ２を破線で示し、第１物品の需要ｄ１及び第２物品の需要ｄ２を一点鎖線で示している。また、総発注数（total order）Ｔを破線で示している。同図の横軸は、シミュレーションのステップ数（Step）であり、時間に相当する。なお、第１物品の需要ｄ１及び第２物品の需要ｄ２は、強化学習のエージェントが直接観測できる量ではなく、シミュレーションのために生成されるものである。第１物品の需要ｄ１及び第２物品の需要ｄ２は、時間の経過とともに平均が増大する正規分布に従うように生成されている。
【００７５】
同図に示す結果は、２種類の物品の需要の期待値が、時間とともに線形に増大する場合について、物品のパレットを最大で２０個格納できるコンテナを用いて複数の物品を輸送する設定のシミュレーションによって得ている。ここで、輸送に要する期間は３ステップとし、取り得る行動は、０パレットの発注（発注なし）、１パレットの発注、２パレットの発注及び３パレットの発注としている。また、保管コストは０．０２、欠品コストは１．０、輸送コストは１．０と設定している。
【００７６】
同図によれば、第１物品の在庫数Ｉ１及び第２物品の在庫数Ｉ２が０とならないように、適切に第１物品の発注及び第２物品の発注が行われていることが確認できる。また、第１物品の発注数Ｏ１及び第２物品の発注数Ｏ２が同じタイミングで立ち上がる場合が多く、複数の物品をまとめて発注し、輸送コストを抑えられていることが確認できる。
【００７７】
図６は、物品数が１０である場合における、本実施形態に係る発注管理装置１０による総コスト（Total Cost）と、比較例の総コストとを示す図である。なお、総コストは、報酬の符号をマイナスにした値であり、０に近いほど性能が良いことを表している。同図では、横軸に強化学習のエピソード数を示し、縦軸に総コストを示している。
【００７８】
同図では、１０種類の物品の需要の期待値が、時間とともに線形に増大する場合について、第１モデル１３ｂ及び第２モデル１３ｃにより構成される複数の推定モデル１３ａによって推定された評価関数に基づいて行動を選択し、物品の輸送コストを複数の物品に関する報酬に分配した場合の総コスト（報酬）の推移を第５グラフＧ５によって示している。ここで、１０種類の物品の需要のうち定常部分は、所定のパラメータのガウス分布に従って揺らぐものとしてシミュレーションを行っている。また、それぞれ単一のモデルで構成され、第１モデル１３ｂ及び第２モデル１３ｃを含まない複数の推定モデル１３ａによって推定された評価関数に基づいて行動を選択し、物品の輸送コストを複数の物品に関する報酬に分配した場合の総コスト（報酬）の推移を第６グラフＧ６によって示している。さらに、比較例として、非特許文献２で提案された強化学習を用いる手法における総コスト（報酬）の推移を第７グラフＧ７によって示している。また、比較例として、非特許文献３で提案された強化学習を用いない手法における総コスト（報酬）を基準値Ｒｅｆとして示している。
【００７９】
実線で示す第５グラフＧ５及び破線で示す第６グラフＧ６によれば、本実施形態に係る発注管理装置１０によって、１０種類の物品の発注について、基準値Ｒｅｆよりも０に近い総コスト（基準値Ｒｅｆよりも大きな報酬）が達成できることが確認できる。なお、第６グラフＧ６には若干の不安定性が見られるため、第１モデル１３ｂ及び第２モデル１３ｃにより構成される複数の推定モデル１３ａによって推定された評価関数に基づいて行動を選択し、物品の輸送コストを複数の物品に関する報酬に分配する手法が最も優れていると考えられる。
【００８０】
一方、比較例として記載した第７グラフＧ７は、基準値Ｒｅｆよりも大きなマイナスの総コストになってしまうばかりか、学習が不安定であり、総コストが収束しないことが確認できる。このように、本実施形態に係る発注管理装置１０によれば、複数の物品の需要が時間とともに変化する場合であっても、安定的に強化学習を進めることができ、複数の物品をより効率的に発注することができる。
【００８１】
図７は、本実施形態に係る発注管理装置１０により実行される処理のフローチャートである。はじめに、発注管理装置１０は、複数の物品の在庫数と、輸送中の物品の数を取得する（Ｓ１０）。
【００８２】
また、発注管理装置１０は、輸送に要する期間経過後の在庫数の推定値と、輸送に要する期間が経過するまでの物品の需要数の推定値と、輸送に要する期間が経過してから、所定の期間が経過するまでの物品の需要数の推定値とを算出する（Ｓ１１）。なお、発注管理装置１０は、複数の物品の在庫数と、輸送中の物品の数と、輸送に要する期間経過後の在庫数の推定値と、輸送に要する期間が経過するまでの物品の需要数の推定値と、輸送に要する期間が経過してから、所定の期間が経過するまでの物品の需要数の推定値とを、強化学習の状態として用いる。
【００８３】
その後、発注管理装置１０は、複数の物品それぞれに関する評価関数の第１値を、複数の推定モデルによって推定する（Ｓ１２）。発注管理装置１０は、処理Ｓ１０及びＳ１１によって特定した状態について、取り得る行動の評価関数の値を、複数の物品毎に設定された複数の推定モデルによって推定する。
【００８４】
発注管理装置１０は、所定の確率で、ランダムに行動を選択し、１から所定の確率を引いた確率で、評価関数の第１値が最大となる行動を選択する（Ｓ１３）。なお、発注管理装置１０は、他の方法で行動を選択してもよい。
【００８５】
発注管理装置１０は、保管コストと、発注された物品の輸送コストを物品の数で除算した値と、複数の物品が欠品した場合のペナルティコストとの和によって、複数の物品それぞれに関する報酬を算出する（Ｓ１４）。
【００８６】
発注管理装置１０は、選択した行動を行った後の状態について、取り得る行動に関する評価関数の第２値を、複数の推定モデルによって推定する（Ｓ１５）。そして、発注管理装置１０は、割引率を掛けた評価関数の第２値及び報酬の和と、評価関数の第１値との差を小さくするように、複数の推定モデルのパラメータを更新する（Ｓ１６）。
【００８７】
発注管理装置１０は、処理を終了しない場合（Ｓ１７：ＮＯ）、処理Ｓ１０〜Ｓ１６を繰り返し実行して、強化学習を行う。なお、処理を終了する条件は、複数の推定モデルの損失関数の値が所定期間にわたって所定値以下となることであったり、強化学習のエピソード数が所定回数以上となることであったりしてよい。
【００８８】
以上説明した実施形態は、本発明の理解を容易にするためのものであり、本発明を限定して解釈するためのものではない。実施形態が備える各要素並びにその配置、材料、条件、形状及びサイズ等は、例示したものに限定されるわけではなく適宜変更することができる。また、異なる実施形態で示した構成同士を部分的に置換し又は組み合わせることが可能である。
【符号の説明】
【００８９】
１０…発注管理装置、１０ａ…ＣＰＵ、１０ｂ…ＲＡＭ、１０ｃ…ＲＯＭ、１０ｄ…通信部、１０ｅ…入力部、１０ｆ…表示部、１１…取得部、１２…第１推定部、１３…記憶部、１３ａ…複数の推定モデル、１４…選択部、１５…報酬算出部、１６…第２推定部、１７…更新部
【図１】
2020187681.tif 000003
【図２】
2020187681.tif 000004
【図３】
2020187681.tif 000005
【図４】
2020187681.tif 000006
【図５】
2020187681.tif 000007
【図６】
2020187681.tif 000008
【図７】
2020187681.tif 000009
【手続補正書】
【提出日】令和1年11月22日(2019.11.22)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
所定の時点における複数の物品の在庫数を含む状態と、前記複数の物品を所定数発注する行動との関数であって、前記複数の物品について設定されている複数の評価関数の第１値を、前記複数の物品について設定されている複数の推定モデルによって推定する第１推定部と、
前記第１値に基づいて、前記行動を選択する選択部と、
前記行動を行った場合の前記複数の物品の保管コスト及び発注された物品の輸送コストに基づいて、前記複数の物品それぞれに固有の報酬及び前記複数の物品の種類によらない報酬を算出する報酬算出部と、
前記行動を行った後の前記状態について、取り得る前記行動に関する前記複数の評価関数の第２値を前記複数の推定モデルによって推定する第２推定部と、
割引率を掛けた前記第２値、前記複数の物品それぞれに固有の報酬及び前記複数の物品の種類によらない報酬の和と、前記第１値との差を小さくするように、前記複数の推定モデルのパラメータを更新する更新部と、
を備える発注管理装置。
【請求項２】
前記報酬算出部は、前記保管コストによって、前記複数の物品それぞれに固有の報酬を算出し、前記輸送コストを発注された物品の数で除算した値によって、前記複数の物品の種類によらない報酬を算出する、
請求項１に記載の発注管理装置。
【請求項３】
前記報酬算出部は、前記保管コストによって、前記複数の物品それぞれに固有の報酬を算出し、前記輸送コストを発注された物品の数で除算した値によって、前記複数の物品の種類によらない報酬を算出し、前記複数の物品が欠品した場合のペナルティコストによって、前記複数の物品それぞれに固有の報酬を算出する、
請求項１又は２に記載の発注管理装置。
【請求項４】
前記選択部は、所定の確率で、ランダムに前記行動を選択し、１から前記所定の確率を引いた確率で、前記第１値が最大となる前記行動を選択する、
請求項１から３のいずれか一項に記載の発注管理装置。
【請求項５】
前記複数の推定モデルは、前記状態に関する状態値を推定する第１モデルと、前記状態における前記行動のアドバンテージ関数を推定する第２モデルとをそれぞれ含む、
請求項１から４のいずれか一項に記載の発注管理装置。
【請求項６】
前記更新部は、前記割引率を掛けた前記第２値、前記複数の物品それぞれに固有の報酬及び前記複数の物品の種類によらない報酬の和と、前記第１値との差の２乗について、前記複数の物品について過去に記録された前記状態、前記行動、前記複数の物品それぞれに固有の報酬、前記複数の物品の種類によらない報酬及び前記行動を行った後の前記状態に関する期待値が小さくなるように、前記パラメータを更新する、
請求項１から５のいずれか一項に記載の発注管理装置。
【請求項７】
前記更新部は、前記割引率を掛けた前記第２値、前記複数の物品それぞれに固有の報酬及び前記複数の物品の種類によらない報酬の和と、前記第１値との差のＨｕｂｅｒ損失関数について、前記複数の物品について過去に記録された前記状態、前記行動、前記複数の物品それぞれに固有の報酬、前記複数の物品の種類によらない報酬及び前記行動を行った後の前記状態に関する期待値が小さくなるように、前記パラメータを更新する、
請求項１から５のいずれか一項に記載の発注管理装置。
【請求項８】
前記状態は、前記所定の時点において輸送中の物品の数を含む、
請求項１から７のいずれか一項に記載の発注管理装置。
【請求項９】
前記状態は、前記所定の時点から輸送に要する期間経過後の前記在庫数の推定値を含む、
請求項１から８のいずれか一項に記載の発注管理装置。
【請求項１０】
前記状態は、前記所定の時点から輸送に要する期間が経過するまでの物品の需要数の推定値を含む、
請求項１から９のいずれか一項に記載の発注管理装置。
【請求項１１】
前記状態は、前記所定の時点から輸送に要する期間が経過してから、所定の期間が経過するまでの物品の需要数の推定値を含む、
請求項１から１０のいずれか一項に記載の発注管理装置。
【請求項１２】
発注管理装置に備えられた演算部によって、
所定の時点における複数の物品の在庫数を含む状態と、前記複数の物品を所定数発注する行動との関数であって、前記複数の物品について設定されている複数の評価関数の第１値を、前記複数の物品について設定されている複数の推定モデルによって推定すること、
前記第１値に基づいて、前記行動を選択することと、
前記行動を行った場合の前記複数の物品の保管コスト及び発注された物品の輸送コストに基づいて、前記複数の物品それぞれに固有の報酬及び前記複数の物品の種類によらない報酬を算出することと、
前記行動を行った後の前記状態について、取り得る前記行動に関する前記複数の評価関数の第２値を前記複数の推定モデルによって推定することと、
割引率を掛けた前記第２値、前記複数の物品それぞれに固有の報酬及び前記複数の物品の種類によらない報酬の和と、前記第１値との差を小さくするように、前記複数の推定モデルのパラメータを更新することと、
を実行する発注管理方法。
【請求項１３】
発注管理装置に備えられた演算部を、
所定の時点における複数の物品の在庫数を含む状態と、前記複数の物品を所定数発注する行動との関数であって、前記複数の物品について設定されている複数の評価関数の第１値を、前記複数の物品について設定されている複数の推定モデルによって推定する第１推定部、
前記第１値に基づいて、前記行動を選択する選択部、
前記行動を行った場合の前記複数の物品の保管コスト及び発注された物品の輸送コストに基づいて、前記複数の物品それぞれに固有の報酬及び前記複数の物品の種類によらない報酬を算出する報酬算出部、
前記行動を行った後の前記状態について、取り得る前記行動に関する前記複数の評価関数の第２値を前記複数の推定モデルによって推定する第２推定部、及び
割引率を掛けた前記第２値、前記複数の物品それぞれに固有の報酬及び前記複数の物品の種類によらない報酬の和と、前記第１値との差を小さくするように、前記複数の推定モデルのパラメータを更新する更新部、
として機能させる発注管理プログラム。