(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-12-05
(45)【発行日】2022-12-13
(54)【発明の名称】コンテナ積載計画装置、方法、および、プログラム
(51)【国際特許分類】
G06Q 10/08 20120101AFI20221206BHJP
【FI】
G06Q10/08
(21)【出願番号】P 2021572137
(86)(22)【出願日】2020-01-20
(86)【国際出願番号】 JP2020001759
(87)【国際公開番号】W WO2021149115
(87)【国際公開日】2021-07-29
【審査請求日】2022-06-09
(73)【特許権者】
【識別番号】000004237
【氏名又は名称】日本電気株式会社
(74)【代理人】
【識別番号】100103090
【氏名又は名称】岩壁 冬樹
(74)【代理人】
【識別番号】100124501
【氏名又は名称】塩川 誠人
(72)【発明者】
【氏名】比嘉 亮太
【審査官】田付 徳雄
(56)【参考文献】
【文献】特開2020-3841(JP,A)
【文献】特開2016-88630(JP,A)
【文献】米国特許出願公開第2010/0145501(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06Q 10/00 - 99/00
(57)【特許請求の範囲】
【請求項1】
積載対象のコンテナの情報、貨車の積載状態、および、コンテナ到着予測の入力を受け付ける入力部と、
過去の積載実績または積載計画に基づいて学習された、前記貨車の積載状態に対して想定されるコンテナの積載位置の選択確率を算出する方策関数および前記貨車の積載状態に対する価値を算出する価値関数に基づいて、前記貨車における前記積載対象のコンテナの積載位置を決定する積載位置決定部とを備え、
前記積載位置決定部は、前記コンテナ到着予測に基づいて算出される前記価値関数と、前記方策関数とに基づいてコンテナの積載位置を決定する
ことを特徴とするコンテナ積載計画装置。
【請求項2】
積載位置決定部は、ノードがコンテナの積載位置に対応するモンテカルロ木探索により、価値関数と方策関数とを含む前記ノードの選択基準の値を最大にするコンテナの積載位置を、コンテナ到着予測が示すコンテナの到着順に複数回試行して、コンテナの積載位置を決定する
請求項1記載のコンテナ積載計画装置。
【請求項3】
積載位置決定部は、試行回数が最も多いノードに対応する積載位置を、コンテナの積載位置として決定する
請求項2記載のコンテナ積載計画装置。
【請求項4】
積載位置決定部は、コンテナ到着予測から予測される第一のコンテナについて、選択基準の値を最大化する積載位置に対応するノードを試行して第一の価値関数の値を算出し、前記第一のコンテナの後に予測される第二のコンテナについて、前記試行した積載位置に対応するノードから、さらに下位のノードを試行して第二の価値関数の値を算出し、当該第二の価値関数の値を上位のノードの第一の価値関数の値に加算して、当該上位のノードの第一の価値関数の値を更新する
請求項2または請求項3記載のコンテナ積載計画装置。
【請求項5】
選択基準は、試行回数が多いノードほど、価値関数の値を減少させるとともに方策関数の値を減少させるように定義される
請求項2から請求項4のうちのいずれか1項に記載のコンテナ積載計画装置。
【請求項6】
積載位置決定部は、試行結果をもとにボルツマン分布を用いて方策分布を計算する
請求項1から請求項5のうちのいずれか1項に記載のコンテナ積載計画装置。
【請求項7】
積載対象のコンテナの情報、貨車の積載状態、および、コンテナ到着予測の入力を受け付け、
過去の積載実績または積載計画に基づいて学習された、前記貨車の積載状態に対して想定されるコンテナの積載位置の選択確率を算出する方策関数および前記貨車の積載状態に対する価値を算出する価値関数に基づいて、前記貨車における前記積載対象のコンテナの積載位置を決定し、
前記コンテナの積載位置を決定する際、前記コンテナ到着予測に基づいて算出される前記価値関数と、前記方策関数とに基づいてコンテナの積載位置を決定する
ことを特徴とするコンテナ積載計画方法。
【請求項8】
ノードがコンテナの積載位置に対応するモンテカルロ木探索により、価値関数と方策関数とを含む前記ノードの選択基準の値を最大にするコンテナの積載位置を、コンテナ到着予測が示すコンテナの到着順に複数回試行して、コンテナの積載位置を決定する
請求項7記載のコンテナ積載計画方法。
【請求項9】
コンピュータに、
積載対象のコンテナの情報、貨車の積載状態、および、コンテナ到着予測の入力を受け付ける入力処理、および、
過去の積載実績または積載計画に基づいて学習された、前記貨車の積載状態に対して想定されるコンテナの積載位置の選択確率を算出する方策関数および前記貨車の積載状態に対する価値を算出する価値関数に基づいて、前記貨車における前記積載対象のコンテナの積載位置を決定する積載位置決定処理を実行させ、
前記積載位置決定処理で、前記コンテナ到着予測に基づいて算出される前記価値関数と、前記方策関数とに基づいてコンテナの積載位置を決定させる
ためのコンテナ積載計画プログラム。
【請求項10】
コンピュータに、
積載位置決定処理で、ノードがコンテナの積載位置に対応するモンテカルロ木探索により、価値関数と方策関数とを含む前記ノードの選択基準の値を最大にするコンテナの積載位置を、コンテナ到着予測が示すコンテナの到着順に複数回試行させて、コンテナの積載位置を決定させる
請求項9記載のコンテナ積載計画プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、貨車に積載するコンテナの位置を計画するコンテナ積載計画装置、コンテナ積載計画方法、および、コンテナ積載計画プログラムに関する。
【背景技術】
【0002】
近年、AI(Artificial
Intelligence )や、IoT(Internet of Things)の発展に伴い、物流業界においても、業務効率化や自動化が求められている。鉄道貨物輸送も、物流業界における輸送形態の一つであり、鉄道貨物輸送に用いられるコンテナの管理もまた、効率化が求められている。
【0003】
コンテナを管理するシステムの一例が、非特許文献1に記載されている。非特許文献1に記載されたシステムは、コンテナの位置等をリアルタイムに把握することで、コンテナの操配を適切に行う。また、非特許文献1に記載されたシステムは、自動枠調整機能を備えており、自動的に最も早く到着する列車の予約を行うとともに、新たな荷物のオーダが発生する都度、余裕のある荷物について他の列車への変更を行う。
【先行技術文献】
【非特許文献】
【0004】
【文献】花岡俊樹,“RFIDを活用した鉄道コンテナ管理システム”,電気設備学会学会誌,2008年,第28巻,5月号,p.311-315
【発明の概要】
【発明が解決しようとする課題】
【0005】
一方、非特許文献1に記載されたシステムでは、コンテナの積載バランス等、積載の際の制約は考慮されていない。また、実際の積載現場においては、予約の変更等が発生する場合が存在する。しかし、非特許文献1に記載されたシステムでは、現状の逐次変化を考慮しない静的なシステムであるため、そのような変化に対応できず、現場での判断により適宜補正されているという実態がある。そのため、対応を行う作業者の熟練度合いにより、積載効率が異なってしまうという課題がある。
【0006】
また、想定されるコンテナのパターンの組み合わせを単純に最適化しようとした場合、組み合わせ爆発が生じてしまうため、現場でリアルタイムに積載位置を計画しようとしても現実的な時間で処理することは難しい。
【0007】
そこで、本発明では、効率的なコンテナの積載位置をリアルタイムに計画できるコンテナ積載計画装置、コンテナ積載計画方法、および、コンテナ積載計画プログラムを提供することを目的とする。
【課題を解決するための手段】
【0008】
本発明によるコンテナ積載計画装置は、積載対象のコンテナの情報、貨車の積載状態、および、コンテナ到着予測の入力を受け付ける入力部と、過去の積載実績または積載計画に基づいて学習された、貨車の積載状態に対して想定されるコンテナの積載位置の選択確率を算出する方策関数および貨車の積載状態に対する価値を算出する価値関数に基づいて、貨車における積載対象のコンテナの積載位置を決定する積載位置決定部とを備え、積載位置決定部が、コンテナ到着予測に基づいて算出される価値関数と、方策関数とに基づいてコンテナの積載位置を決定することを特徴とする。
【0009】
本発明によるコンテナ積載計画方法は、積載対象のコンテナの情報、貨車の積載状態、および、コンテナ到着予測の入力を受け付け、過去の積載実績または積載計画に基づいて学習された、貨車の積載状態に対して想定されるコンテナの積載位置の選択確率を算出する方策関数および貨車の積載状態に対する価値を算出する価値関数に基づいて、貨車における積載対象のコンテナの積載位置を決定し、コンテナの積載位置を決定する際、コンテナ到着予測に基づいて算出される価値関数と、方策関数とに基づいてコンテナの積載位置を決定することを特徴とする。
【0010】
本発明によるコンテナ積載計画プログラムは、コンピュータに、積載対象のコンテナの情報、貨車の積載状態、および、コンテナ到着予測の入力を受け付ける入力処理、および、過去の積載実績または積載計画に基づいて学習された、貨車の積載状態に対して想定されるコンテナの積載位置の選択確率を算出する方策関数および貨車の積載状態に対する価値を算出する価値関数に基づいて、貨車における積載対象のコンテナの積載位置を決定する積載位置決定処理を実行させ、積載位置決定処理で、コンテナ到着予測に基づいて算出される価値関数と、方策関数とに基づいてコンテナの積載位置を決定させることを特徴とする。
【発明の効果】
【0011】
本発明によれば、効率的なコンテナの積載位置をリアルタイムに計画できる。
【図面の簡単な説明】
【0012】
【
図1】本発明によるコンテナ積載計画装置の一実施形態の構成例を示すブロック図である。
【
図3】コンテナの積載位置を決定する処理の例を示す説明図である。
【
図4】先読みによるノード選択の例を示す説明図である。
【
図5】ノードを追加する処理の例を示す説明図である。
【
図6】各ノードで算出された値の総和を算出する処理の例を示す説明図である。
【
図7】シミュレーションの実行結果の例を示す説明図である。
【
図9】コンテナ積載計画装置の動作例を示すフローチャートである。
【
図10】本発明によるコンテナ積載計画装置の概要を示すブロック図である。
【
図11】少なくとも1つの実施形態に係るコンピュータの構成を示す概略ブロック図である。
【発明を実施するための形態】
【0013】
以下、本発明の実施形態を図面を参照して説明する。
【0014】
図1は、本発明によるコンテナ積載計画装置の一実施形態の構成例を示すブロック図である。本実施形態のコンテナ積載計画装置100は、入力部10と、記憶部20と、積載位置決定部30と、出力部40とを含む。
【0015】
なお、
図1に例示するように、本実施形態のコンテナ積載計画装置100が、サーバ200に接続され、全体として、コンテナ積載計画システム1として実現されていてもよい。
【0016】
入力部10は、積載対象のコンテナの情報、および、貨車の積載状態の入力を受け付ける。積載対象のコンテナの情報とは、貨車に積載する対象のコンテナの情報であり、例えば、コンテナの長さや、荷物の有り無しなどの情報を含む。また、貨車の積載状態とは、対象の貨車全体においてコンテナがどの位置に配置されているかを示す。
【0017】
本実施形態では、説明を簡易化するために、コンテナの種類を3種類(12フィートコンテナ、20フィートコンテナ、および、30フィートコンテナ)とし、それぞれのコンテナの荷物の有り、または、無しの状況を想定する。以下、貨車の積載状態を、以下の数字で識別する。
0:コンテナを置いてない状態
1:12フィートコンテナを配置
2:空の12フィートコンテナ配置
3:20フィートコンテナを配置
4:空の20フィートコンテナ配置
5:30フィートコンテナを配置
6:空の30フィートコンテナ配置
【0018】
各貨車の積載位置をNとし、貨車の番号をN´とすると、状態集合
【0019】
【0020】
は、以下のように表わされる。
【0021】
s∈{0,1,2,3,4,5,6}N×N´
【0022】
例えば、貨車の積載位置が5通り存在し、貨車が24~26台程度存在するとした場合、状態数は、7130≒10110になる。このように簡易化した場合にも、組み合わせの数が膨大になると言える。
【0023】
さらに、入力部10は、コンテナ到着予測の入力を受け付ける。コンテナ到着予測は、積載対象のコンテナの次以降に到着する予定のコンテナ(到着が確定しているコンテナも含む)を示す情報である。なお、コンテナ到着予測に、積載対象のコンテナの情報が含まれていてもよい。
【0024】
コンテナ到着予測が表わす態様は任意である。コンテナ到着予測が、例えば、到着予定(積載予定)の具体的なコンテナを表す情報であってもよい。また、他にも、コンテナ到着予測が、コンテナの種類ごとに到着する確率(重み)の予測分布からコンテナをサンプリングできるような情報であってもよい。
【0025】
例えば、到着予定のコンテナの状態をs´とした場合、h個先読みできるとすると、時刻tにおける状態st´は、以下のように表わすことができる。なお、以下の状態st´が、コンテナ到着予測の確率分布pθb(s´)から生成されてもよい。
【0026】
st´∈{0,1,2,3,4,5,6}h
【0027】
記憶部20は、後述する積載位置決定部30が、コンテナの積載位置を決定する際に用いる各種情報を記憶する。本実施形態では、記憶部20は、方策関数および価値関数を記憶する。価値関数Vθ(s)は、貨車の積載状態sに対する価値(評価値)を算出する関数である。例えば、コンテナ積載の場合、価値関数を、最大積載量(貨車の長さ)に対するコンテナの積載量の割合を算出する関数として定義できる。
【0028】
具体的には、積載できたか否かを表す報酬関数をrt∈{0,1}、重み(積載したコンテナフィート)をwt∈{12,20,30}、積載位置の数をN(=5)、貨車の数をN´(=26)とした場合、価値関数Vd(s)を、以下に示す式1で表わすことができる。なお、価値関数を、簡易的に、最終状態において積み付けが成功した場合に1、
失敗した場合に0をとる関数として定義してもよい。
【0029】
【0030】
また、方策関数π(at|st)は、貨車の積載状態stに対して想定されるコンテナの積載位置の選択確率(次の行動の確率)を算出する関数である。コンテナ積載の場合、ここで行われる選択とは、時刻tにおいて、N×N´通りの位置の中からコンテナを逐次配置する行動atである。
【0031】
図2は、方策関数の例を示す説明図である。
図2に例示するように、方策関数π(a
t|s
t)は、貨車の積載状態と、判明している次に積載するコンテナ(積載対象のコンテナ)の情報を入力として、次の行動の確率(すなわち、ある状態sにおける各積載位置の選択確率)を出力する。
【0032】
方策関数および価値関数は、過去の積載実績または積載計画を示す学習データを用いて学習されてもよい。ここで、積載計画とは、後述する積載位置決定部30が決定したコンテナの積載位置を示す情報を意味する。なお、方策関数および価値関数の学習方法は任意である。方策関数および価値関数は、例えば、深層学習を行う学習器を用いて学習されてもよい。また、
図1に示す例では、サーバ200の学習器220により学習された方策関数および価値関数が用いられてもよい。
【0033】
積載位置決定部30は、方策関数および価値関数に基づいて、貨車における積載対象のコンテナの積載位置を決定する。特に、本実施形態では、積載位置決定部30は、コンテナ到着予測に基づいて算出される価値関数と、方策関数とに基づいて、コンテナの積載位置を決定する。
【0034】
なお、すべての貨車の積載状態から想定される分岐について評価(最適化)を行おうとしても、組み合わせ数が膨大になってしまい、リアルタイムに処理を行うことは難しい。そこで、本実施形態では、シミュレーションによって有効な手を集中して探索するため、積載位置決定部30は、モンテカルロ木探索を利用して、コンテナの積載位置を決定する。
【0035】
ここで、モンテカルロ木探索を利用してコンテナの積載位置を決定する具体例を説明する。
図3は、コンテナの積載位置を決定する処理の例を示す説明図である。本具体例では、貨車の初期状態をs
0とし、以降予測されるコンテナの状態を、s
1,s
2…とする。
図3に示す例では、コンテナ到着予測101に基づき、初期状態s
0で積み込むコンテナが「12フィートコンテナ」、次の状態s
1で配置すると予測されるコンテナが「20フィートコンテナ」、さらに次の状態s
2で配置すると予測されるコンテナが「30フィートコンテナ」であるとする。
【0036】
モンテカルロ木における各ノードが、積載位置(すなわち、どの貨車のどの位置に積むか)に対応する。
図3に例示するように、初期状態s
0では、ルートノード102のみ存在する。積載位置決定部30は、コンテナ到着予測が示すコンテナの到着順に試行を繰り返して、コンテナの積載位置を決定する。その際、積載位置決定部30は、価値関数と方策関数とを含むモンテカルロ木のノードの選択基準の値を最大にするコンテナの積載位置を選択する試行を繰り返す。そして、積載位置決定部30は、試行回数の最も多いノードが示す積載位置を、コンテナの積載位置として決定する。
【0037】
なお、この選択基準は、コンテナ到着予測に基づいて行われる先読みによる評価と、意思決定の確率に基づく評価とのトレードオフを考慮して定義される。ここで、意思決定の確率は、方策関数に基づいて算出でき、先読みによる評価は、先読みを辿った際に計算される価値関数の総和で算出できる。
【0038】
そこで、積載位置決定部30は、以下の式2で定義される選択基準X(s,a)の値が最も大きくなるノードを選択する試行を繰り返してもよい。式2において、W(s)は、ノード配下に存在する各ノードで算出された価値関数Vθ(s)の値の総和を示し、N(s,a)は、そのノードの選択回数(試行回数)を示す。なお、選択される貨車をa1とし、貨車の積載位置をa2とすると、積載位置a=(a1,a2)である。
【0039】
【0040】
上記の式2に例示する選択基準は、試行回数が多いノードほど、価値関数の値を減少させるとともに方策関数の値を減少させるように定義される基準と言える。
【0041】
以下、
図3に例示する状態に基づいて行われる試行を具体的に説明する。
図4は、先読みによるノード選択の例を示す説明図である。まず、積載位置決定部30は、コンテナ到着予測から、状態sで配置すると予測されるコンテナの情報を取得する(ステップS51)。初期状態s
0では、積載位置決定部30は、状態s
1で配置すると予測されるコンテナの情報(20フィートコンテナ)を取得する。
【0042】
次に、積載位置決定部30は、現在の状態sがリーフノードか否か判定する(ステップS52)。ここでは、s0がリーフノードでない(すなわち、ステップS52におけるNo)ため、ステップS53に進む。
【0043】
ステップS53において、積載位置決定部30は、選択基準X(s,a)が最大になるノードを選択する。初期状態s0では、どのノードもまだ試行を行っていないため、状態s1において、1番目の貨車の1番目(a=(1,1))の積載位置103が選択されたとする。その後、積載位置決定部30は、状態を1つ進め(ステップS54)、ステップS51の処理に戻る。
【0044】
積載位置決定部30は、再度、コンテナ到着予測から、状態sで配置すると予測されるコンテナの情報を取得する(ステップS51)。状態s1では、積載位置決定部30は、状態s2で配置すると予測されるコンテナの情報(30フィートコンテナ)を取得する。
【0045】
次に、積載位置決定部30は、現在の状態sがリーフノードか否か判定する(ステップS52)。ここでは、s1はリーフノードである(すなわち、ステップS52におけるYes)ため、ノードを追加する処理に進む。
【0046】
図5は、ノードを追加する処理の例を示す説明図である。積載位置決定部30は、現在のノードに対する子ノードs´を追加する(ステップS55)。そして、積載位置決定部30は、追加した子ノードの状態s´(ここでは、s
2)について、候補となる各積載位置に対する方策関数(π
θ(a|s´))の値および価値関数(V
θ(s´))の値を算出する(ステップS56)。また、積載位置決定部30は、追加した各ノードの情報を初期化する(ステップS57)。すなわち、積載位置決定部30は、各積載位置について、N(s´,a)=0、W(s´,a)に設定する。
【0047】
図6は、ノード配下に存在する各ノードで算出された値の総和を算出する処理の例を示す説明図である。
図6に例示する処理は、リーフノードの価値関数を逆に伝播させる処理を示す。まず、積載位置決定部30は、現在の状態sがルートノードか否か判定する(ステップS58)。状態s
2はルートノードでない(ステップS58におけるNo)ため、ステップS59に進む。
【0048】
ステップS59において、積載位置決定部30は、リーフノードの状態(ここでは、s2)で算出される価値関数の値sL(ここでは、Vθ(s2))を上位のノード(ここでは、s1)の価値関数の総和W(s,a)に加算し、総和を更新する(ここでは、W(s1,a))。また、積載位置決定部30は、上位のノード(ここでは、s1)の選択回数N(s,a)に1を加算し、総和を更新する(ここでは、N(s1,a))(ステップS59)。そして、積載位置決定部30は、上位のノードに処理を戻す(ステップS60)。
【0049】
その後、ステップS58以降の処理を繰り返す。具体的には、積載位置決定部30は、現在の状態sがルートノードか否か判定する(ステップS58)。状態s1はルートノードでない(ステップS58におけるNo)ため、ステップS59に進む。
【0050】
ステップS59において、積載位置決定部30は、リーフノードの状態(ここでは、s2)で算出される価値関数の値sL(ここでは、Vθ(s2))を上位のノード(ここでは、s0)の価値関数の総和W(s,a)に加算し、総和を更新する(ここでは、W(s0,a))。また、積載位置決定部30は、上位のノード(ここでは、s0)の選択回数N(s,a)に1を加算し、総和を更新する(ここでは、N(s0,a))(ステップS59)。そして、積載位置決定部30は、上位のノードに処理を戻す(ステップS60)。
【0051】
その後、ステップS58以降の処理を繰り返す。具体的には、積載位置決定部30は、現在の状態sがルートノードか否か判定する(ステップS58)。状態s0はルートノードである(ステップS58におけるYes)ため、処理を終了する。
【0052】
積載位置決定部30は、このシミュレーションを複数回実行することにより、各ノード(積載位置)の試行回数N(s,a)を得ることができる。
図7は、シミュレーションの実行結果の例を示す説明図である。
図7に示す例では、シミュレーションを100回行った結果、少なくとも1番目の貨車の1番目の積載位置(a=(1,1))の試行が10回行われたことを示す。
【0053】
また、積載位置決定部30は、試行結果をもとにボルツマン分布を用いて方策分布を計算してもよい。具体的には、積載位置決定部30は、以下に示す式3に基づいて、方策分布を計算してもよい。式3において、N(s,a)は、状態sで実行された試行の回数であり、βは逆温度である。βの設定は任意であり、最適な積載位置を決定する場合、β-1=0とすればよい。これは、argmaxaπ(a|s)に対応する。
【0054】
【0055】
また、シミュレーション回数をLとしたとき、積載位置決定部30は、以下の式4に例示する制約条件を考慮して、方策分布を計算してもよい。
【0056】
【0057】
出力部40は、決定したコンテナの積載位置を出力する。また、出力部40は、試行において選択した貨車および積載位置に関する情報を試行結果として出力してもよい。
図8は、試行結果の出力例を示す説明図である。
図8に示す例では、横軸に選択した貨車の番号a
1を設定し、縦軸に貨車において選択した積載位置a
2を設定したグラフを示す。また、
図8に示す例では、グラフ上部に貨車ごとの選択回数、グラフ右部に積載位置ごとの選択回数を、それぞれ棒グラフで示し、選択された積載位置をグラフ中丸印で表している。
【0058】
入力部10と、積載位置決定部30と、出力部40とは、プログラム(コンテナ積載計画プログラム)に従って動作するコンピュータのプロセッサ(例えば、CPU(Central Processing Unit )、GPU(Graphics
Processing Unit))によって実現される。また、記憶部20は、例えば、磁気ディスク等により実現される。
【0059】
例えば、プログラムは、コンテナ積載計画装置100が備える記憶部20に記憶され、プロセッサは、そのプログラムを読み込み、プログラムに従って、入力部10、積載位置決定部30、および、出力部40として動作してもよい。また、コンテナ積載計画装置100の機能がSaaS(Software as a Service )形式で提供されてもよい。
【0060】
また、入力部10と、積載位置決定部30と、出力部40とは、それぞれが専用のハードウェアで実現されていてもよい。また、各装置の各構成要素の一部又は全部は、汎用または専用の回路(circuitry )、プロセッサ等やこれらの組合せによって実現されもよい。これらは、単一のチップによって構成されてもよいし、バスを介して接続される複数のチップによって構成されてもよい。各装置の各構成要素の一部又は全部は、上述した回路等とプログラムとの組合せによって実現されてもよい。
【0061】
また、コンテナ積載計画装置100の各構成要素の一部又は全部が複数の情報処理装置や回路等により実現される場合には、複数の情報処理装置や回路等は、集中配置されてもよいし、分散配置されてもよい。例えば、情報処理装置や回路等は、クライアントサーバシステム、クラウドコンピューティングシステム等、各々が通信ネットワークを介して接続される形態として実現されてもよい。
【0062】
図1において、サーバ200は、価値関数および方策関数を学習する装置であり、入力部210と、学習器220と、記憶部230と、出力部240とを含む。
【0063】
入力部210は、学習に用いる過去の積載実績または積載計画を示す学習データの入力を受け付ける。また、入力部210は、受け付けた学習データを記憶部230に記憶させてもよい。
【0064】
学習器220は、受け付けた学習データを用いた機械学習により、価値関数および方策関数を学習する。学習器220が行う学習方法は任意であり、例えば、広く知られた深層学習により価値関数および方策関数が学習されてもよい。
【0065】
記憶部230は、生成された価値関数および方策関数を記憶する。また、記憶部230は、受け付けた学習データを記憶してもよい。記憶部230は、例えば、磁気ディスク等により実現される。
【0066】
出力部240は、生成した価値関数および方策関数を出力する。出力部240は、生成した価値関数および方策関数をコンテナ積載計画装置100に送信して、記憶部20に記憶させてもよい。
【0067】
次に、本実施形態のコンテナ積載計画装置100の動作を説明する。
図9は、本実施形態のコンテナ積載計画装置100の動作例を示すフローチャートである。入力部10は、積載対象のコンテナの情報、貨車の積載状態、および、コンテナ到着予測の入力を受け付ける(ステップS11)。積載位置決定部30は、コンテナ到着予測に基づいて算出される価値関数と方策関数とに基づいて、積載対象のコンテナの積載位置を決定する(ステップS12)。
【0068】
以上のように、本実施形態では、入力部10が、積載対象のコンテナの情報、貨車の積載状態、および、コンテナ到着予測の入力を受け付け、積載位置決定部30が、方策関数および価値関数に基づいて、貨車における積載対象のコンテナの積載位置を決定する。その際、積載位置決定部30は、コンテナ到着予測に基づいて算出される価値関数と、方策関数とに基づいてコンテナの積載位置を決定する。よって、効率的なコンテナの積載位置をリアルタイムに計画できるため、積載効率の安定化に繋がる。
【0069】
次に、本発明の概要を説明する。
図10は、本発明によるコンテナ積載計画装置の概要を示すブロック図である。本発明によるコンテナ積載計画装置80(例えば、コンテナ積載計画装置100)は、積載対象のコンテナの情報、貨車の積載状態、および、コンテナ到着予測の入力を受け付ける入力部81(例えば、入力部10)と、過去の積載実績または積載計画に基づいて学習された、貨車の積載状態に対して想定されるコンテナの積載位置の選択確率を算出する方策関数(例えば、π(a
t|s
t))および貨車の積載状態に対する価値を算出する価値関数(例えば、V
θ(s
t))に基づいて、貨車における積載対象のコンテナの積載位置を決定する積載位置決定部82(例えば、積載位置決定部30)とを備えている。
【0070】
そして、積載位置決定部82は、コンテナ到着予測に基づいて算出される価値関数と、方策関数とに基づいてコンテナの積載位置を決定する。
【0071】
そのような構成により、効率的なコンテナの積載位置をリアルタイムに計画できる。
【0072】
具体的には、積載位置決定部82は、ノードがコンテナの積載位置に対応するモンテカルロ木探索(例えば、
図3から
図6に例示するモンテカルロ木探索)により、価値関数と方策関数とを含むノードの選択基準(例えば、上記式2)の値を最大にするコンテナの積載位置を、コンテナ到着予測が示すコンテナの到着順に複数回試行して、コンテナの積載位置を決定してもよい。
【0073】
その際、積載位置決定部82は、試行回数が最も多いノードに対応する積載位置を、コンテナの積載位置として決定してもよい。
【0074】
また、積載位置決定部82は、コンテナ到着予測から予測される第一のコンテナについて、選択基準の値を最大化する積載位置に対応するノードを試行して第一の価値関数の値を算出し、第一のコンテナの後に予測される第二のコンテナについて、試行した積載位置に対応するノードから、さらに下位のノードを試行して第二の価値関数の値を算出し、その第二の価値関数の値を上位のノードの第一の価値関数の値に加算して、その上位のノードの第一の価値関数の値を更新してもよい。そのような構成により、リーフノードの価値関数の値を逆伝播させることが可能になる。
【0075】
選択基準は、試行回数が多いノードほど、価値関数の値を減少させるとともに方策関数の値を減少させるように定義されてもよい。
【0076】
また、積載位置決定部82は、試行結果をもとにボルツマン分布を用いて方策分布を計算してもよい(例えば、上記式3および式4)。
【0077】
図11は、少なくとも1つの実施形態に係るコンピュータの構成を示す概略ブロック図である。コンピュータ1000は、プロセッサ1001、主記憶装置1002、補助記憶装置1003、インタフェース1004を備える。
【0078】
上述のコンテナ積載計画装置80は、コンピュータ1000に実装される。そして、上述した各処理部の動作は、プログラム(コンテナ積載計画プログラム)の形式で補助記憶装置1003に記憶されている。プロセッサ1001は、プログラムを補助記憶装置1003から読み出して主記憶装置1002に展開し、当該プログラムに従って上記処理を実行する。
【0079】
なお、少なくとも1つの実施形態において、補助記憶装置1003は、一時的でない有形の媒体の一例である。一時的でない有形の媒体の他の例としては、インタフェース1004を介して接続される磁気ディスク、光磁気ディスク、CD-ROM(Compact Disc Read-only memory )、DVD-ROM(Read-only
memory)、半導体メモリ等が挙げられる。また、このプログラムが通信回線によってコンピュータ1000に配信される場合、配信を受けたコンピュータ1000が当該プログラムを主記憶装置1002に展開し、上記処理を実行してもよい。
【0080】
また、当該プログラムは、前述した機能の一部を実現するためのものであっても良い。さらに、当該プログラムは、前述した機能を補助記憶装置1003に既に記憶されている他のプログラムとの組み合わせで実現するもの、いわゆる差分ファイル(差分プログラム)であってもよい。
【符号の説明】
【0081】
1 コンテナ積載計画システム
10 入力部
20 記憶部
30 積載位置決定部
40 出力部
100 コンテナ積載計画装置
200 サーバ
210 入力部
220 学習器
230 記憶部
240 出力部