(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024143776
(43)【公開日】2024-10-11
(54)【発明の名称】装置、方法およびプログラム
(51)【国際特許分類】
B63H 25/04 20060101AFI20241003BHJP
B63H 21/21 20060101ALI20241003BHJP
【FI】
B63H25/04 G
B63H21/21
【審査請求】未請求
【請求項の数】11
【出願形態】OL
(21)【出願番号】P 2023056646
(22)【出願日】2023-03-30
(71)【出願人】
【識別番号】000006507
【氏名又は名称】横河電機株式会社
(74)【代理人】
【識別番号】110000877
【氏名又は名称】弁理士法人RYUKA国際特許事務所
(72)【発明者】
【氏名】大石 憲児
(72)【発明者】
【氏名】功刀 弘太
(72)【発明者】
【氏名】河野 武尊
(72)【発明者】
【氏名】根岸 萌友
(57)【要約】 (修正有)
【課題】船の現在位置から目的地まで到達するための推奨制御パラメータに応じて自船を制御する装置、方法及びプログラムを提供する。
【解決手段】船の現在位置から目的地までの航路に関する情報と、目的地への到着期限までの残り時間とを示す状況データ、および、船の制御内容を示す制御パラメータを取得する取得部と、前記取得部により取得された状況データおよび制御パラメータを含む学習データを用いて、状況データの入力に応じ、推奨される船の制御内容を示す推奨制御パラメータを出力するモデルの学習処理を行う学習処理部と、を備え、前記航路に関する情報は、船の現在位置から目的地までの距離を含む装置が提供される。
【選択図】
図1
【特許請求の範囲】
【請求項1】
船の現在位置から目的地までの航路に関する情報と、目的地への到着期限までの残り時間とを示す状況データ、および、船の制御内容を示す制御パラメータを取得する取得部と、
前記取得部により取得された状況データおよび制御パラメータを含む学習データを用いて、状況データの入力に応じ、推奨される船の制御内容を示す推奨制御パラメータを出力するモデルの学習処理を行う学習処理部と、
を備える装置。
【請求項2】
前記航路に関する情報は、船の現在位置から目的地までの距離を含む、請求項1に記載の装置。
【請求項3】
前記航路に関する情報は、航路上の気象または海象の少なくとも一方に関する情報を含む、請求項1に記載の装置。
【請求項4】
前記状況データは、現在の船の状態に関する情報を含む、請求項1に記載の装置。
【請求項5】
前記現在の船の状態に関する情報は、船の速度、傾き、揺れの大きさ、積み荷の量、バラストの重量、吃水のレベル、エンジンの出力、燃料消費量、発電量、電力消費量、または、船に搭載された液化ガスタンクの内圧の少なくとも一つを示す、請求項4に記載の装置。
【請求項6】
前記制御内容は、バラストの重量、吃水のレベル、エンジンの出力、船の速度、または、発電量の少なくとも1つに関する、請求項1に記載の装置。
【請求項7】
前記学習処理部は、前記学習データと、予め設定された報酬関数により定まる報酬値とを用いて前記モデルの学習処理を行い、
前記モデルは、状況データの入力に応じ、前記報酬関数により定まる報酬値を基準報酬値よりも高めるために推奨される制御内容を示す推奨制御パラメータを出力する、請求項1に記載の装置。
【請求項8】
前記報酬関数は、前記船の燃料消費量、前記船の揺れの大きさ、または、前記船における発電量と電力消費量との差に関する少なくとも1つのパラメータを有する、請求項7に記載の装置。
【請求項9】
前記学習処理部により学習処理が行われた前記モデルに対し、前記取得部により取得された状況データを供給する供給部と、
前記供給部が前記モデルに状況データを供給することに応じて当該モデルから出力される推奨制御パラメータに応じて自船を制御する制御部と、
を備える、請求項1から8の何れか一項に記載の装置。
【請求項10】
船の現在位置から目的地までの航路に関する情報と、目的地への到着期限までの残り時間とを示す状況データ、および、船の制御内容を示す制御パラメータを取得する取得段階と、
前記取得段階により取得された状況データおよび制御パラメータを含む学習データを用いて、状況データの入力に応じ、推奨される船の制御内容を示す推奨制御パラメータを出力するモデルの学習処理を行う学習処理段階と、
を備える方法。
【請求項11】
コンピュータを、
船の現在位置から目的地までの航路に関する情報と、目的地への到着期限までの残り時間とを示す状況データ、および、船の制御内容を示す制御パラメータを取得する取得部と、
前記取得部により取得された状況データおよび制御パラメータを含む学習データを用いて、状況データの入力に応じ、推奨される船の制御内容を示す推奨制御パラメータを出力するモデルの学習処理を行う学習処理部
として機能させるプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、装置、方法およびプログラムに関する。
【背景技術】
【0002】
特許文献1~4には「前記接岸または前記離岸の対象となる埠頭もしくは係留点に対する前記船舶の姿勢Aと、前記船舶の速度Vと、前記船舶に与えられる推進力Fとを機械学習し…」(特許文献1の請求項1)等と記載されている。
[先行技術文献]
[特許文献]
[特許文献1] 特開2020-26208号公報
[特許文献2] 特開2021-18484号公報
[特許文献3] 特開2021-195076号公報
[特許文献4] 特開2021-195077号公報
【発明の概要】
【0003】
本発明の第1の態様においては、船の現在位置から目的地までの航路に関する情報と、目的地への到着期限までの残り時間とを示す状況データ、および、船の制御内容を示す制御パラメータを取得する取得部と、前記取得部により取得された状況データおよび制御パラメータを含む学習データを用いて、状況データの入力に応じ、推奨される船の制御内容を示す推奨制御パラメータを出力するモデルの学習処理を行う学習処理部と、を備える装置が提供される。
【0004】
上記の装置においては、前記航路に関する情報は、船の現在位置から目的地までの距離を含んでよい。
【0005】
上記何れかの装置においては、前記航路に関する情報は、航路上の気象または海象の少なくとも一方に関する情報を含んでよい。
【0006】
上記何れかの装置においては、前記状況データは、現在の船の状態に関する情報を含んでよい。
【0007】
上記の装置においては、前記現在の船の状態に関する情報は、船の速度、傾き、揺れの大きさ、積み荷の量、バラストの重量、吃水のレベル、エンジンの出力、燃料消費量、発電量、電力消費量、または、船に搭載された液化ガスタンクの内圧の少なくとも一つを示してよい。
【0008】
上記何れかの装置においては、前記制御内容は、バラストの重量、吃水のレベル、エンジンの出力、船の速度、または、発電量の少なくとも1つに関してよい。
【0009】
上記何れかの装置においては、前記学習処理部は、前記学習データと、予め設定された報酬関数により定まる報酬値とを用いて前記モデルの学習処理を行い、前記モデルは、状況データの入力に応じ、前記報酬関数により定まる報酬値を基準報酬値よりも高めるために推奨される制御内容を示す推奨制御パラメータを出力してよい。
【0010】
上記の装置においては、前記報酬関数は、前記船の燃料消費量、前記船の揺れの大きさ、または、前記船における発電量と電力消費量との差に関する少なくとも1つのパラメータを有してよい。
【0011】
上記何れかの装置においては、前記学習処理部により学習処理が行われた前記モデルに対し、前記取得部により取得された状況データを供給する供給部と、前記供給部が前記モデルに状況データを供給することに応じて当該モデルから出力される推奨制御パラメータに応じて自船を制御する制御部と、を備えてよい。
【0012】
本発明の第2の態様においては、船の現在位置から目的地までの航路に関する情報と、目的地への到着期限までの残り時間とを示す状況データ、および、船の制御内容を示す制御パラメータを取得する取得段階と、前記取得段階により取得された状況データおよび制御パラメータを含む学習データを用いて、状況データの入力に応じ、推奨される船の制御内容を示す推奨制御パラメータを出力するモデルの学習処理を行う学習処理段階と、を備える方法が提供される。
【0013】
本発明の第3の態様においては、コンピュータを、船の現在位置から目的地までの航路に関する情報と、目的地への到着期限までの残り時間とを示す状況データ、および、船の制御内容を示す制御パラメータを取得する取得部と、前記取得部により取得された状況データおよび制御パラメータを含む学習データを用いて、状況データの入力に応じ、推奨される船の制御内容を示す推奨制御パラメータを出力するモデルの学習処理を行う学習処理部として機能させるプログラムが提供される。
【0014】
なお、上記の発明の概要は、本発明の必要な特徴の全てを列挙したものではない。また、これらの特徴群のサブコンビネーションもまた、発明となりうる。
【図面の簡単な説明】
【0015】
【
図3】本実施形態に係る装置1の学習段階での動作を示す。
【
図4】本実施形態に係る装置1の運用段階での動作を示す。
【
図5】本発明の複数の態様が全体的または部分的に具現化されてよいコンピュータ2200の例を示す。
【発明を実施するための形態】
【0016】
以下、発明の実施の形態を通じて本発明を説明するが、以下の実施形態は特許請求の範囲にかかる発明を限定するものではない。また、実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。
【0017】
<1.装置1>
図1は、本実施形態に係る装置1を示す。装置1は船に搭載されて船の運航を支援するものであり、データ取得部10と、報酬値取得部11と、記憶部12と、学習処理部13と、モデル14と、供給部15と、制御部16とを備える。
【0018】
なお、装置1の搭載される船は、客船、貨物船(一例としてLNGタンカやコンテナ船)、漁船(一例として捕鯨船、トロール船)、作業船(一例としてタグボート)または艦艇などの何れかであってよい。また、船は予め設定された航路を複数回、運航するものであってよい。本実施形態では一例として、船は液化ガス(一例としてLNGガス)を運搬するLNGタンカであってよい。
【0019】
<1.1.データ取得部10>
データ取得部10は、取得部の一例であり、船の現在位置から目的地までの航路に関する情報と、目的地への到着期限までの残り時間とを示す状況データ、および、船の制御内容を示す制御パラメータを取得する。
【0020】
ここで、航路に関する情報は、船の現在位置から目的地までの距離を含んでよい。航路に関する情報は、航路上の環境に関する情報を含んでよく、例えば航路上の気象または海象の少なくとも一方に関する情報を含んでよい。気象に関する情報は、一例として気温や気圧、風向、風速、降水(降雪)量などを示してよい。海象に関する情報は、一例として海上風や有義波高、風浪、海流などを示してよい。航路上の環境に関する情報は、現時点での環境を示してよい。これに加えて、航路上の環境に関する情報は、船の現在位置から目的地までの各地点において、現在から到着期限までの各時点で予測される環境を示してもよい。
【0021】
状況データは、現在の船の状態に関する情報をさらに含んでよい。現在の船の状態に関する情報は、船の速度、傾き、揺れの大きさ、積み荷の量、バラストの重量、吃水のレベル、エンジンの出力、燃料消費量、発電量、電力消費量、または、船に搭載された液化ガスタンクの内圧の少なくとも一つを示してよい。船の傾きは、前後方向の傾きであってもよいし、左右方向の傾きであってもよい。揺れの大きさは、震度(一例として工学的震度)であってもよいし、基準時間内での傾きの最大変化量であってもよい。積み荷の量は、積み荷の重量であってもよいし、甲板上の積み荷の体積であってもよい。燃料消費量は単位時間当たりの燃料消費量、つまり燃料の消費速度であってもよいし、現在までの通算の燃料消費量であってもよい。電力消費量は単位時間あたりに船内で消費される電力量であってよい。発電量は単位時間当たりに船内の発電機により発生する電力量であってよい。船に搭載された液化ガスタンクの内圧は、船に搭載されて液化ガスを収容したタンクの内圧であってよく、気化燃料として利用可能なガスの量を示してよい。データ取得部10は、状況データを装置1の外部機器(図示せず)から取得してよく、一例として、船に設けられたセンサから取得してもよいし、通信装置を介して陸上などのサーバから取得してもよいし、入力装置を介して船員から取得してもよい。データ取得部10は、航路上の環境に関する情報として、船の現在位置から目的地までの各地点において現在から到着期限までの各時点で予測される環境を示す情報を取得する場合には、陸上などのサーバから情報を取得してよい。
【0022】
船の制御内容は、バラストの重量、吃水のレベル、エンジンの出力、船の速度、または、発電量の少なくとも1つに関するものであってよい。データ取得部10は、制御内容を示す制御パラメータを後述の制御部16から取得してよい。
【0023】
データ取得部10は、取得した状況データおよび制御パラメータを対応付けて記憶部12に供給してよい。本実施形態では一例として、データ取得部10は、制御パラメータと、当該制御パラメータで示される制御内容で船が制御された後の状況データとを対応付けて供給することとして説明するが、状況データと、当該状況データで示される状況において制御された船の制御内容を示す制御パラメータとを対応付けて供給してもよい。データ取得部10は、取得した状況データを報酬値取得部11および供給部15にさらに供給してよい。
【0024】
<1.2.報酬値取得部11>
報酬値取得部11は、学習処理部13による強化学習に用いられる報酬値を取得するものであり、船の運航状態を評価するための報酬値を取得する。報酬値は、予め設定された報酬関数により定まる値であってよい。ここで、関数とは、ある集合の各要素に他の集合の各要素を一対一で対応させる規則を持つ写像であり、例えば数式でもよいし、テーブルでもよい。本実施形態では一例として、報酬値取得部11は、データ取得部10からの状況データを報酬関数に入力して報酬値を取得するが、報酬関数を使用した船員から入力装置を介して報酬値を取得してもよい。報酬値取得部11は、取得した報酬値を記憶部12に供給してよい。
【0025】
報酬関数は、任意に設定されてよく、状況データで示される1または複数の値をパラメータとして有してよい。報酬関数は、船の燃料消費量、船の揺れの大きさ、または、船における発電量と電力消費量との差に関する少なくとも1つのパラメータを有してよい。
【0026】
<1.3.記憶部12>
記憶部12は、データ取得部10により取得された状況データおよび制御パラメータを含む学習データを複数記憶する。記憶部12は、データ取得部10から供給される状況データおよび制御パラメータを対応付けて学習データとして記憶してよい。記憶部12は、報酬値取得部11から供給される報酬値を学習データ(一例として報酬値の元となった状況データを含む学習データ)に対応付けて記憶してよい。
【0027】
<1.4.学習処理部13>
学習処理部13は、学習データを用いてモデル14の学習処理を行う。学習処理部13は、強化学習を行ってよく、学習データと、予め設定された報酬関数により定まる報酬値とを用いてモデル14の学習処理を行ってよい。学習処理部13は、記憶部12に対応付けて記憶された学習データおよび報酬値を用いてモデル14の学習処理を行ってよい。学習処理部13は、一例としてカーネルダイナミックポリシープログラミング法(Kernel Dynamic Policy Programming、KDPP)、最急降下法、サポートベクトルマシン、ロジスティック回帰、決定木、ニューラルネットワークなどのアルゴリズムにより学習を行ってよい。
【0028】
<1.5.モデル14>
モデル14は、状況データの入力に応じ、推奨される船の制御内容を示す推奨制御パラメータを出力する。モデル14は、状況データの入力に応じ、報酬関数により定まる報酬値を基準報酬値よりも高めるために推奨される制御内容を示す推奨制御パラメータを出力してよい。基準報酬値は、所定の時点(一例として現在)の状況に対応する報酬値(一例としてその時点の状況データを報酬関数に入力して得られる報酬値)であってもよいし、予め設定された固定値(一例として報酬値の最大値から許容値を減じた値)であってもよい。
【0029】
例えば、モデル14は、新たに状況データが入力されることに応じて、到着期限までの将来の複数の時点のそれぞれで複数の制御内容の何れかを選択する場合に予測される状況データの推移を網羅的に算出してよい。航路上の気象または海象などの環境に関する情報が状況データに含まれる場合には、モデル14は、データ取得部10によって取得される、現在から到着期限までの各時点、各地点での予測情報を用いて状況データの予測推移を算出してよい。モデル14は、複数の状況データの推移のそれぞれについて、各時点の状況データを報酬関数に入力して得られる報酬値の合計を算出してよく、複数の状況データの推移のうち、報酬値の合計が最大となる一の推移を特定してよい。モデル14は、複数の状況データの推移のうち、直近の時点での報酬値が基準報酬値より高い何れかの推移を特定してよい。モデル14は、特定された状況データの推移に対応する各時点の制御内容のうち、直近の時点での制御内容を示す制御パラメータを推奨制御パラメータとして出力してよい。
【0030】
<1.6.供給部15>
供給部15は、学習処理部13により学習処理が行われたモデル14に対し、データ取得部10により取得された状況データを供給する。これにより、状況データに応じた推奨制御パラメータがモデル14から制御部16に出力されてよい。
【0031】
<1.7.制御部16>
制御部16は、船の各部を制御する。制御部16は、供給部15がモデル14に状況データを供給することに応じて当該モデル14から出力される推奨制御パラメータに応じて自船を制御してよい。制御部16は、推奨制御パラメータが示す制御内容で船を制御してよく、推奨制御パラメータを制御パラメータとして船の各部に供給することで船を制御してよい。制御パラメータの供給対象は、一例としてバラスト水を増減させるためのポンプまたはバルブ、エンジン、発電機、および、操舵装置などであってよい。制御部16は、制御パラメータをデータ取得部10にも供給してよい。
【0032】
以上の装置1によれば、現在位置から目的地までの航路に関する情報と、目的地への到着期限までの残り時間とを示す状況データ、および、船の制御内容を示す制御パラメータが取得され、取得された状況データおよび制御パラメータを含む学習データを用いてモデル14の学習処理が行われる。従って、状況データを入力することに応じて残りの航路および残り時間に応じた推奨の制御内容を出力するモデル14を取得することができる。これにより、例えば、残り時間に余裕があり、残りの航路の気象条件が悪い場合には、目的地に向かって無理に船を進めずに停泊したり、気象条件の良い経由地を目指したりするなどの制御内容を、推奨の制御内容として取得することができる。
【0033】
また、航路に関する情報は船の現在位置から目的地までの距離を含むので、残りの航路の距離および残り時間に応じた推奨の制御内容を出力するモデル14を取得することができる。
【0034】
また、航路に関する情報は航路上の気象または海象の少なくとも一方に関する情報を含むので、残りの航路の環境と、残り時間とに応じた推奨の制御内容を出力するモデル14を取得することができる。
【0035】
また、状況データは現在の船の状態に関する情報を含むので、現在の船の状態と、残りの航路および残り時間とに応じた推奨の制御内容を出力するモデル14を取得することができる。
【0036】
また、現在の船の状態に関する情報は船の速度、傾き、揺れ、積み荷の量、バラストの重量、吃水のレベル、エンジンの出力、発電量、電力消費量、または、船に搭載された液化ガスタンクの内圧の少なくとも一つを示すので、当該情報で示される具体的な船の状態に応じた推奨の制御内容を出力するモデル14を取得することができる。
【0037】
また、制御内容はバラストの重量、吃水のレベル、エンジンの出力、船の速度、または、発電量の少なくとも1つに関するので、燃料消費量、船の揺れおよび電力の需給差の何れかについて推奨される制御内容を出力するモデル14を取得することができる。
【0038】
また、モデル14は状況データの入力に応じて、報酬関数により定まる報酬値を基準報酬値よりも高めるために推奨される制御内容を示す推奨制御パラメータを出力するので、報酬値を高めるために推奨される制御内容を出力するモデル14を取得することができる。
【0039】
また、報酬関数には船の燃料消費量、船の揺れの大きさ、および、船内の発電量と電力消費量との差に関する少なくとも1つのパラメータが含まれる。従って、燃料消費量、船の揺れおよび電力の需給差の何れかを適切な値とするために推奨される制御内容を出力するモデル14を取得することができる。一例として、燃料消費量が小さいほど報酬値が大きくなる報酬関数を用い場合には、燃料消費量を小さくするために推奨される制御内容を出力するモデル14を取得することができる。揺れの大きさが小さいほど報酬値が大きくなる報酬関数を用いる場合には、揺れの大きさを小さくするために推奨される制御内容を出力するモデル14を取得することができる。発電量と電力消費量との差が大きいほど報酬値が小さくなる報酬関数を用いる場合には、発電量と電力消費量との差を小さくすることで電力不足による停電を防止しつつ過剰な発電を防止するために推奨される制御内容を出力するモデル14を取得することができる。
【0040】
また、学習済みのモデル14に状況データが供給されて出力される推奨制御パラメータに応じて自船が制御されるので、残りの航路および残り時間に応じた推奨制御パラメータに応じて自船を自動制御させることができる。
【0041】
<2.学習データ>
図2は学習データの一例を示す。学習データの状況データには、航路に関する情報(航路情報とも称する)と、残り時間と、船の状態に関する情報(状態情報とも称する)とが含まれてよく、航路情報には、航路の識別情報(航路IDとも称する)と、船の現在位置と、目的地までの距離と、航路環境とが含まれてよい。航路IDは、予め設定された複数の航路のうち何れか1つの航路を示してよい。なお、航路情報は、航路IDに代えて、出航地と、1または複数の経由地と、目的地とを示す情報を含んでもよい。船の現在位置は、経度および緯度で示されてもよいし、航路上の進行度(一例として全航路長に対する運航済みの航路長の割合など)で示されてもよい。目的地までの距離は、船の現在位置から目的地までの、航路に沿った経路上での距離であってよい。航路環境は、航路上の気象または海象の少なくとも一方に関する情報であってよい。船の状態情報には、船の速度、傾き、揺れの大きさ、積み荷の量、バラストの重量、吃水のレベル、エンジンの出力、燃料消費量、発電量、電力消費量、および、船に搭載された液化ガスタンクの内圧などが含まれてよい。また、学習データの制御パラメータには、バラストの重量、吃水のレベル、エンジンの出力、船の速度、および、発電量などが含まれてよい。
【0042】
<3.動作>
<3.1.学習段階>
図3は、本実施形態に係る装置1の学習段階での動作を示す。装置1は、ステップS11~S25の処理を行うことにより船を運航させつつモデル14の学習を行う。
【0043】
まずステップS11においてデータ取得部10は、状況データを取得する。これにより、初期状態の状況データが取得される。データ取得部10は、記憶部12に状況データを記憶させてよい。
【0044】
ステップS13において制御部16は、船の各部を制御する。制御部16は、制御パラメータを決定して制御を行ってよい。決定される制御パラメータは、報酬値を高くするものであってもよいし、低くするものであってもよいし、報酬値とは無関係に決定されるものであってもよい。制御部16は、オペレータの操作に応じて制御パラメータを決定してよい。これに代えて、制御部16は、モデル14から出力される推奨制御パラメータを制御パラメータとして決定してよい。
【0045】
例えば、ステップS13の処理が最初に行われる場合には、制御部16は、ステップS11で取得された状況データをモデル14に入力したことに応じてモデル14から出力される推奨制御パラメータを、次の制御周期での制御パラメータとして決定してよい。ステップS13~S19の処理が繰り返されてステップS13の処理が複数回行われる場合には、制御部16は、最後に行われたステップS17の処理で取得された状況データをモデル14に入力したことに応じてモデル14から出力される推奨制御パラメータを、次の制御周期での制御パラメータとして決定してよい。ステップS13の処理が複数回行われる場合には、複数のステップS13の処理のうち少なくとも一部の処理の間では、異なる制御パラメータが決定されてよい。制御部16は、決定した制御パラメータを出力して船の各部を制御してよい。
【0046】
ステップS15においてデータ取得部10は、制御部16から出力された制御パラメータを取得する。データ取得部10は、ステップS11で取得した状況データに対応付けて、制御パラメータを記憶部12に記憶させてよい。ステップS13~S19の処理が繰り返されてステップS15の処理が複数回行われる場合には、データ取得部10は、最後に行われたステップS17の処理で取得された状況データに対応付けて、制御パラメータを記憶部12に記憶させてよい。これにより、状況データおよび制御パラメータを含む学習データが記憶部12に記憶される。
【0047】
ステップS17においてデータ取得部10は、改めて状況データを取得する。これにより、制御パラメータで示される制御内容で船の各部が制御された場合の状況データが取得される。データ取得部10は、記憶部12に状況データを記憶させてよい。
【0048】
ステップS19において報酬値取得部11は、報酬関数により定まる報酬値を取得する。一例として、報酬値取得部11は、ステップS17で取得された状況データを報酬関数に入力して報酬値を取得してよい。報酬値取得部11は、取得した報酬値を記憶部12に記憶させてよい。報酬値取得部11は、最後に行われたステップS15の処理で記憶された学習データに対応付けて報酬値を記憶させてよい。
【0049】
ステップS21において制御部16は、ステップS13~S19の処理を基準ステップ数だけ行ったか否かを判定する。基準ステップ数だけ処理を行っていないと判定された場合(ステップS21;No)には、ステップS13に処理が移行する。これにより、状況データまたは制御パラメータの少なくとも一方が異なる学習データが基準ステップ数だけサンプリングされて報酬値と共に記憶される。なお、ステップS13~S19の処理が繰り返し行われる場合に、ステップS13の周期(つまり制御周期)は船の各部の時定数に応じて定められてよく、一例として5分であってよい。ステップS21において基準ステップ数だけ処理を行ったと判定された場合(ステップS21;Yes)には、ステップS23に処理が移行する。
【0050】
ステップS23において学習処理部13は、ステップS11,S17で取得された状況データおよびステップS15で取得された制御パラメータを含む学習データを用いてモデル14の学習処理を行う。これにより、モデル14が更新される。
【0051】
学習処理部13は、対応付けて記憶部12に記憶された学習データおよび報酬値の組をそれぞれ用いてモデル14の学習処理を行ってよい。学習処理部13は、報酬値が高くなる制御パラメータほど推奨制御パラメータとして優先的に出力されるように、モデル14の学習処理を行ってよい。
【0052】
ステップS25において制御部16は、ステップS13~S23の処理を基準繰り返し(イテレーション)数だけ行ったか否かを判定する。基準繰り返し数だけ処理を行っていないと判定された場合(ステップS25;No)には、ステップS11に処理が移行する。基準イテレーション数だけ処理を行ったと判定された場合(ステップS25;Yes)には、処理が終了する。
【0053】
<3.2.運用段階>
図4は、本実施形態に係る装置1の運用段階での動作を示す。装置1は、ステップS31~S37の処理を行うことによりモデル14を用いて船を運航させる。
【0054】
ステップS31においてデータ取得部10は、状況データを取得する。これにより、初期状態の状況データが取得される。状況データは供給部15からモデル14に供給されてよい。
【0055】
ステップS33において制御部16は、状況データがモデル14に供給されたことに応じてモデル14が出力する推奨制御パラメータを取得する。そして、ステップS35において制御部16が推奨制御パラメータを出力して船の各部を制御し、ステップS37においてデータ取得部10は、状況データを取得する。これにより、船の各部が推奨制御パラメータで制御された状態での状況データが取得される。ステップS37の処理が終了したら、装置1はステップS33に処理を移行してよい。
【0056】
<4.変形例>
なお、上記の実施形態においては、装置1は報酬値取得部11と、記憶部12と、モデル14と、供給部15と、制御部16とを備えることとして説明したが、これらの何れかを備えないこととしてもよい。装置1が報酬値取得部11を備えない場合には、学習処理部13は強化学習ではない学習アルゴリズムによってモデル14の学習処理を行ってよい。装置1が記憶部12を備えない場合には、外部の記憶装置に接続されてよい。装置1がモデル14を備えない場合には、モデル14は装置1の外部のサーバに格納されてもよい。装置1が供給部15や制御部16を有しない場合には、装置1はモデル14を用いた船の制御を行わなくてよい。
【0057】
また、本発明の様々な実施形態は、フローチャートおよびブロック図を参照して記載されてよく、ここにおいてブロックは、(1)操作が実行されるプロセスの段階または(2)操作を実行する役割を持つ装置のセクションを表わしてよい。特定の段階およびセクションが、専用回路、コンピュータ可読媒体上に格納されるコンピュータ可読命令と共に供給されるプログラマブル回路、および/またはコンピュータ可読媒体上に格納されるコンピュータ可読命令と共に供給されるプロセッサによって実装されてよい。専用回路は、デジタルおよび/またはアナログハードウェア回路を含んでよく、集積回路(IC)および/またはディスクリート回路を含んでよい。プログラマブル回路は、論理AND、論理OR、論理XOR、論理NAND、論理NOR、および他の論理操作、フリップフロップ、レジスタ、フィールドプログラマブルゲートアレイ(FPGA)、プログラマブルロジックアレイ(PLA)等のようなメモリ要素等を含む、再構成可能なハードウェア回路を含んでよい。
【0058】
コンピュータ可読媒体は、適切なデバイスによって実行される命令を格納可能な任意の有形なデバイスを含んでよく、その結果、そこに格納される命令を有するコンピュータ可読媒体は、フローチャートまたはブロック図で指定された操作を実行するための手段を作成すべく実行され得る命令を含む、製品を備えることになる。コンピュータ可読媒体の例としては、電子記憶媒体、磁気記憶媒体、光記憶媒体、電磁記憶媒体、半導体記憶媒体等が含まれてよい。コンピュータ可読媒体のより具体的な例としては、フロッピー(登録商標)ディスク、ディスケット、ハードディスク、ランダムアクセスメモリ(RAM)、リードオンリメモリ(ROM)、消去可能プログラマブルリードオンリメモリ(EPROMまたはフラッシュメモリ)、電気的消去可能プログラマブルリードオンリメモリ(EEPROM)、静的ランダムアクセスメモリ(SRAM)、コンパクトディスクリードオンリメモリ(CD-ROM)、デジタル多用途ディスク(DVD)、ブルーレイ(RTM)ディスク、メモリスティック、集積回路カード等が含まれてよい。
【0059】
コンピュータ可読命令は、アセンブラ命令、命令セットアーキテクチャ(ISA)命令、マシン命令、マシン依存命令、マイクロコード、ファームウェア命令、状態設定データ、またはSmalltalk(登録商標)、JAVA(登録商標)、C++等のようなオブジェクト指向プログラミング言語、および「C」プログラミング言語または同様のプログラミング言語のような従来の手続型プログラミング言語を含む、1または複数のプログラミング言語の任意の組み合わせで記述されたソースコードまたはオブジェクトコードのいずれかを含んでよい。
【0060】
コンピュータ可読命令は、汎用コンピュータ、特殊目的のコンピュータ、若しくは他のプログラム可能なデータ処理装置のプロセッサまたはプログラマブル回路に対し、ローカルにまたはローカルエリアネットワーク(LAN)、インターネット等のようなワイドエリアネットワーク(WAN)を介して提供され、フローチャートまたはブロック図で指定された操作を実行するための手段を作成すべく、コンピュータ可読命令を実行してよい。プロセッサの例としては、コンピュータプロセッサ、処理ユニット、マイクロプロセッサ、デジタル信号プロセッサ、コントローラ、マイクロコントローラ等を含む。
【0061】
図5は、本発明の複数の態様が全体的または部分的に具現化されてよいコンピュータ2200の例を示す。コンピュータ2200にインストールされたプログラムは、コンピュータ2200に、本発明の実施形態に係る装置に関連付けられる操作または当該装置の1または複数のセクションとして機能させることができ、または当該操作または当該1または複数のセクションを実行させることができ、および/またはコンピュータ2200に、本発明の実施形態に係るプロセスまたは当該プロセスの段階を実行させることができる。そのようなプログラムは、コンピュータ2200に、本明細書に記載のフローチャートおよびブロック図のブロックのうちのいくつかまたはすべてに関連付けられた特定の操作を実行させるべく、CPU2212によって実行されてよい。
【0062】
本実施形態によるコンピュータ2200は、CPU2212、RAM2214、グラフィックコントローラ2216、およびディスプレイデバイス2218を含み、それらはホストコントローラ2210によって相互に接続されている。コンピュータ2200はまた、通信インタフェース2222、ハードディスクドライブ2224、DVD-ROMドライブ2226、およびICカードドライブのような入/出力ユニットを含み、それらは入/出力コントローラ2220を介してホストコントローラ2210に接続されている。コンピュータはまた、ROM2230およびキーボード2242のようなレガシの入/出力ユニットを含み、それらは入/出力チップ2240を介して入/出力コントローラ2220に接続されている。
【0063】
CPU2212は、ROM2230およびRAM2214内に格納されたプログラムに従い動作し、それにより各ユニットを制御する。グラフィックコントローラ2216は、RAM2214内に提供されるフレームバッファ等またはそれ自体の中にCPU2212によって生成されたイメージデータを取得し、イメージデータがディスプレイデバイス2218上に表示されるようにする。
【0064】
通信インタフェース2222は、ネットワークを介して他の電子デバイスと通信する。ハードディスクドライブ2224は、コンピュータ2200内のCPU2212によって使用されるプログラムおよびデータを格納する。DVD-ROMドライブ2226は、プログラムまたはデータをDVD-ROM2201から読み取り、ハードディスクドライブ2224にRAM2214を介してプログラムまたはデータを提供する。ICカードドライブは、プログラムおよびデータをICカードから読み取り、および/またはプログラムおよびデータをICカードに書き込む。
【0065】
ROM2230はその中に、アクティブ化時にコンピュータ2200によって実行されるブートプログラム等、および/またはコンピュータ2200のハードウェアに依存するプログラムを格納する。入/出力チップ2240はまた、様々な入/出力ユニットをパラレルポート、シリアルポート、キーボードポート、マウスポート等を介して、入/出力コントローラ2220に接続してよい。
【0066】
プログラムが、DVD-ROM2201またはICカードのようなコンピュータ可読媒体によって提供される。プログラムは、コンピュータ可読媒体から読み取られ、コンピュータ可読媒体の例でもあるハードディスクドライブ2224、RAM2214、またはROM2230にインストールされ、CPU2212によって実行される。これらのプログラム内に記述される情報処理は、コンピュータ2200に読み取られ、プログラムと、上記様々なタイプのハードウェアリソースとの間の連携をもたらす。装置または方法が、コンピュータ2200の使用に従い情報の操作または処理を実現することによって構成されてよい。
【0067】
例えば、通信がコンピュータ2200および外部デバイス間で実行される場合、CPU2212は、RAM2214にロードされた通信プログラムを実行し、通信プログラムに記述された処理に基づいて、通信インタフェース2222に対し、通信処理を命令してよい。通信インタフェース2222は、CPU2212の制御下、RAM2214、ハードディスクドライブ2224、DVD-ROM2201、またはICカードのような記録媒体内に提供される送信バッファ処理領域に格納された送信データを読み取り、読み取られた送信データをネットワークに送信し、またはネットワークから受信された受信データを記録媒体上に提供される受信バッファ処理領域等に書き込む。
【0068】
また、CPU2212は、ハードディスクドライブ2224、DVD-ROMドライブ2226(DVD-ROM2201)、ICカード等のような外部記録媒体に格納されたファイルまたはデータベースの全部または必要な部分がRAM2214に読み取られるようにし、RAM2214上のデータに対し様々なタイプの処理を実行してよい。CPU2212は次に、処理されたデータを外部記録媒体にライトバックする。
【0069】
様々なタイプのプログラム、データ、テーブル、およびデータベースのような様々なタイプの情報が記録媒体に格納され、情報処理を受けてよい。CPU2212は、RAM2214から読み取られたデータに対し、本開示の随所に記載され、プログラムの命令シーケンスによって指定される様々なタイプの操作、情報処理、条件判断、条件分岐、無条件分岐、情報の検索/置換等を含む、様々なタイプの処理を実行してよく、結果をRAM2214に対しライトバックする。また、CPU2212は、記録媒体内のファイル、データベース等における情報を検索してよい。例えば、各々が第2の属性の属性値に関連付けられた第1の属性の属性値を有する複数のエントリが記録媒体内に格納される場合、CPU2212は、第1の属性の属性値が指定される、条件に一致するエントリを当該複数のエントリの中から検索し、当該エントリ内に格納された第2の属性の属性値を読み取り、それにより予め定められた条件を満たす第1の属性に関連付けられた第2の属性の属性値を取得してよい。
【0070】
上で説明したプログラムまたはソフトウェアモジュールは、コンピュータ2200上またはコンピュータ2200近傍のコンピュータ可読媒体に格納されてよい。また、専用通信ネットワークまたはインターネットに接続されたサーバーシステム内に提供されるハードディスクまたはRAMのような記録媒体が、コンピュータ可読媒体として使用可能であり、それによりプログラムを、ネットワークを介してコンピュータ2200に提供する。
【0071】
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態に記載の範囲には限定されない。上記実施の形態に、多様な変更または改良を加えることが可能であることが当業者に明らかである。その様な変更または改良を加えた形態も本発明の技術的範囲に含まれ得ることが、特許請求の範囲の記載から明らかである。
【0072】
特許請求の範囲、明細書、および図面中において示した装置、システム、プログラム、および方法における動作、手順、ステップ、および段階等の各処理の実行順序は、特段「より前に」、「先立って」等と明示しておらず、また、前の処理の出力を後の処理で用いるのでない限り、任意の順序で実現しうることに留意すべきである。特許請求の範囲、明細書、および図面中の動作フローに関して、便宜上「まず、」、「次に、」等を用いて説明したとしても、この順で実施することが必須であることを意味するものではない。
【符号の説明】
【0073】
1 装置
10 データ取得部
11 報酬値取得部
12 記憶部
13 学習処理部
14 モデル
15 供給部
16 制御部
2200 コンピュータ
2201 DVD-ROM
2210 ホストコントローラ
2212 CPU
2214 RAM
2216 グラフィックコントローラ
2218 ディスプレイデバイス
2220 入/出力コントローラ
2222 通信インタフェース
2224 ハードディスクドライブ
2226 DVD-ROMドライブ
2230 ROM
2240 入/出力チップ
2242 キーボード