(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023177493
(43)【公開日】2023-12-14
(54)【発明の名称】ジレンマ推定装置及びジレンマ推定方法
(51)【国際特許分類】
G06Q 10/04 20230101AFI20231207BHJP
【FI】
G06Q10/04
【審査請求】未請求
【請求項の数】11
【出願形態】OL
(21)【出願番号】P 2022090202
(22)【出願日】2022-06-02
(71)【出願人】
【識別番号】000005108
【氏名又は名称】株式会社日立製作所
(74)【代理人】
【識別番号】110001678
【氏名又は名称】藤央弁理士法人
(72)【発明者】
【氏名】松本 杜青
(72)【発明者】
【氏名】鯨井 俊宏
【テーマコード(参考)】
5L049
【Fターム(参考)】
5L049AA04
(57)【要約】
【課題】複数の敵対物間の状態の違いによってエージェントが受けるジレンマを推定する。
【解決手段】複数の敵対物がエージェントに及ぼすジレンマを推定するジレンマ推定装置は、エージェントの観測範囲に含まれる当該複数の敵対物の状態を示すパラメータの時系列を保持し、当該時系列に基づいて、当該複数の敵対物のパラメータの時間変化を示す軌跡を算出し、当該複数の敵対物の軌跡間の差異量を算出し、当該差異量に基づいて、当該複数の敵対物がエージェントに及ぼす乱雑度を算出し、乱雑度に基づいて前記ジレンマを推定する。
【選択図】
図1
【特許請求の範囲】
【請求項1】
複数の敵対物がエージェントに及ぼすジレンマを推定するジレンマ推定装置であって、
プロセッサとメモリとを含み、
前記メモリは、前記エージェントの観測範囲に含まれる前記複数の敵対物の状態を示すパラメータの時系列を示す観測履歴情報を保持し、
前記プロセッサは、
前記観測履歴情報が示す前記時系列に基づいて、前記複数の敵対物のパラメータの時間変化を示す軌跡を算出し、
前記複数の敵対物の軌跡間の差異量を算出し、
前記差異量に基づいて、前記複数の敵対物が前記エージェントに及ぼす乱雑度を算出し、
前記乱雑度に基づいて前記ジレンマを推定する、ジレンマ推定装置。
【請求項2】
請求項1に記載のジレンマ推定装置であって、
前記プロセッサは、
前記複数の敵対物それぞれの軌跡に基づいて、当該敵対物のパラメータの時間による変化量を算出し、
前記算出した変化量に基づいて、前記乱雑度を算出する、ジレンマ推定装置。
【請求項3】
請求項1に記載のジレンマ推定装置であって、
前記観測履歴情報は、複数の前記パラメータの時系列を示し、
前記メモリは、前記複数のパラメータごとの軌跡の算出対象期間である履歴時間を示す履歴時間情報を保持し、
前記プロセッサは、
前記複数のパラメータそれぞれについて、
前記履歴時間情報が示す当該パラメータに対応する履歴時間分遡った時刻からの前記軌跡を算出し、
前記複数の敵対物の当該パラメータの軌跡間の差異量を算出する、ジレンマ推定装置。
【請求項4】
請求項1に記載のジレンマ推定装置であって、
前記観測履歴情報は、複数の時刻における前記パラメータの時系列を示し、
前記メモリは、過去の時刻における軌跡の差異量の比重を示す重みパラメータ情報を保持し、
前記プロセッサは、
前記複数の時刻それぞれについて、
前記観測履歴情報が示す前記時系列に基づいて、前記複数の敵対物のパラメータの時間変化を示す軌跡を算出し、
前記複数の敵対物の軌跡間の差異量を算出し、
前記複数の時刻の差異量のうち、過去の時刻における差異量に前記比重を適用し、
前記比重を適用した差異量に基づいて、前記乱雑度を算出する、ジレンマ推定装置。
【請求項5】
請求項1に記載のジレンマ推定装置であって、
前記プロセッサは、
前記観測範囲の外部に位置していた時刻の敵対物の前記パラメータを、前記観測履歴情報が示す当該敵対物の時系列が示す、当該時刻の直前又は直後の時刻の前記パラメータに基づいて推測し、
前記推測したパラメータを前記観測履歴情報の前記時系列に含める、ジレンマ推定装置。
【請求項6】
請求項1に記載のジレンマ推定装置であって、
前記パラメータは、前記複数の敵対物それぞれの位置、速度ベクトル、及び属性情報の少なくとも1つを含む、ジレンマ推定装置。
【請求項7】
請求項1に記載のジレンマ推定装置であって、
前記メモリは、前記エージェント及び前記複数の敵対物それぞれの行動の施策を決定するためのモデルを保持し、
前記プロセッサは、前記算出した乱雑度を低下させるよう前記モデルを学習する、ジレンマ推定装置。
【請求項8】
請求項1に記載のジレンマ推定装置であって、
前記メモリは、前記エージェント及び前記複数の敵対物それぞれの行動の施策を決定するためのモデルを保持し、
前記モデルは、前記エージェントの行動によるスコアを示し、
前記エージェントは、領海内を航行する巡視船であり、
前記複数の敵対物それぞれは、前記領海内を航行する不審船であり、
前記スコアは、前記領海内への不審船の侵入によって低下し、
前記パラメータは、前記不審船それぞれの速度ベクトルを含む、ジレンマ推定装置。
【請求項9】
請求項1に記載のジレンマ推定装置であって、
前記メモリは、前記エージェント及び前記敵対物の行動の施策を決定するためのモデルを保持し、
前記モデルは、前記エージェントの行動によるスコアを示し、
前記エージェントは、所定の領域を移動可能なロボットであり、
前記複数の敵対物それぞれは、前記所定の領域を移動可能な人間であり、
前記スコアは、前記ロボットが前記人間に衝突することによって低下し、
前記パラメータは、前記人間それぞれの速度ベクトルを含む、ジレンマ推定装置。
【請求項10】
請求項1に記載のジレンマ推定装置であって、
前記複数の敵対物が複数の前記エージェントそれぞれに及ぼすジレンマを推定し、
前記メモリは、前記複数のエージェント及び前記複数の敵対物それぞれの行動の施策を決定するためのモデルを保持し、
前記モデルは、前記エージェントの行動によるスコアを示し、
前記エージェントは、店舗に設置されたレジであり、
前記複数の敵対物それぞれは、前記店舗の内部を移動可能な人間であり、
前記スコアは、当該レジに向かう人流が混雑するほどに低下し、
前記パラメータは、前記人間それぞれの速度ベクトルを含む、ジレンマ推定装置。
【請求項11】
複数の敵対物がエージェントに及ぼすジレンマを、ジレンマ推定装置が推定するジレンマ推定方法であって、
前記ジレンマ推定装置は、プロセッサとメモリとを含み、
前記メモリは、前記エージェントの観測範囲に含まれる前記複数の敵対物の状態を示すパラメータの時系列を示す観測履歴情報を保持し、
前記ジレンマ推定方法は、
前記プロセッサが、前記観測履歴情報が示す前記時系列に基づいて、前記複数の敵対物のパラメータの時間変化を示す軌跡を算出し、
前記プロセッサが、前記複数の敵対物の軌跡間の差異量を算出し、
前記差異量に基づいて、前記複数の敵対物が前記エージェントに及ぼす乱雑度を算出し、
前記プロセッサが、前記乱雑度に基づいて前記ジレンマを推定する、ジレンマ推定方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ジレンマ推定装置及びジレンマ推定方法に関する。
【背景技術】
【0002】
エージェントに損失や脅威を及ぼす対象である敵対物が、エージェントが予測できないような不確実な行動を行うことで、エージェントは敵対物の行動に対し適切な行動を行うことが困難となる。従って、エージェントにとってはこのような不確実な行動は脅威である。この不確実な行動は、敵対物の行動だけにとどまらず、敵対物の位置及び速度、並びに種類などの属性情報にも影響を受けるおそれがある。
【0003】
本技術分野の背景技術として特許文献1及び非特許文献1がある。非特許文献1には、敵対物が作戦行動を予測できないようにする状態を示すジレンマについて記載されており、行動の不確実性に対する脅威はジレンマに繋がる。
【0004】
また、特許文献1には、「大略人位置決定手段22は、部分領域毎に、部分領域内の人数を整数に補正し、部分領域に関する情報に基づいて画像上に補正された人数分の人のおおよその位置を決定し、補正前の人数と補正後の人数とに基づいて人数補正係数を算出し、おおよその位置に人が観測されたものとする。人状態推定手段25は、記憶手段に記憶された過去の人の状態を表す粒子の状態から現在の粒子の状態を予測するとともに、新たな粒子を追加し、観測された人毎に生成された観測モデルと人数補正係数とに基づいて、予測された粒子及び追加した粒子の状態の確からしさを評価して粒子の重みを更新し、当該粒子の重みに比例した確率で粒子をリサンプリングし、得られた粒子の状態を記憶手段に記憶するとともに、得られた粒子の状態を人流として出力する」と記載されている(要約参照)。
【先行技術文献】
【特許文献】
【0005】
【非特許文献】
【0006】
【非特許文献1】Bryan Clark, Daniel Patt, Harrison Schramm, “Mosaic Warfare: Exploiting Artificial Intelligence and Autonomous Systems to Implement Decision-Centric Operations”, Center for Strategic and Budgetary Assessments, February 11, 2020
【発明の概要】
【発明が解決しようとする課題】
【0007】
特許文献1に記載の技術は、観測された人ごとに観測モデルに基づいて人の状態を表す粒子の状態の確からしさを評価しているが、敵対物ごとに算出されたジレンマの単純な和を算出することでジレンマを算出している。一方、複数の敵対物がエージェントに与えるジレンマには、個別の敵対物がエージェントに与えるジレンマだけでなく、各敵対物間の状態の違いによる当該複数の敵対物全体がエージェントに与える非統一感を考慮する必要がある。しかし、特許文献1及び非特許文献1のいずれにも、各敵対物間の状態の違いによる当該複数の敵対物全体がエージェントに与える非統一感について記載されていない。
【0008】
そこで本発明の一態様は、複数の敵対物間の状態の違いによってエージェントが受けるジレンマを推定する。
【課題を解決するための手段】
【0009】
上記した課題を解決するために、本発明の一態様は以下の構成を採用する。複数の敵対物がエージェントに及ぼすジレンマを推定するジレンマ推定装置は、プロセッサとメモリとを含み、前記メモリは、前記エージェントの観測範囲に含まれる前記複数の敵対物の状態を示すパラメータの時系列を示す観測履歴情報を保持し、前記プロセッサは、前記観測履歴情報が示す前記時系列に基づいて、前記複数の敵対物のパラメータの時間変化を示す軌跡を算出し、前記複数の敵対物の軌跡間の差異量を算出し、前記差異量に基づいて、前記複数の敵対物が前記エージェントに及ぼす乱雑度を算出し、前記乱雑度に基づいて前記ジレンマを推定する。
【発明の効果】
【0010】
本発明の一態様は、複数の敵対物間の状態の違いによってエージェントが受けるジレンマを推定することができる。
【0011】
上記した以外の課題、構成及び効果は、以下の実施形態の説明により明らかにされる。
【図面の簡単な説明】
【0012】
【
図1】実施例1におけるジレンマ推定装置のハードウェア構成例を示すブロック図である。
【
図2】実施例1におけるデータベースに格納されている情報の一覧の一例を示す図である。
【
図3】実施例1におけるジレンマ推定装置の機能構成例を示すブロック図である。
【
図4A】実施例1におけるエージェント情報リストのデータ構成例を示す図である。
【
図4B】実施例1における敵対物情報リストのデータ構成例を示す図である。
【
図4C】実施例1における観測範囲パラメータのデータ構成例を示す図である。
【
図4D】実施例1における履歴パラメータのデータ構成例を示す図である。
【
図5】実施例1における観測された敵対物の一例を示す説明図である。
【
図6】実施例1におけるエージェントの観測範囲内に含まれた敵対物の速度ベクトルの軌跡の例を示す説明図である。
【
図7A】実施例1における敵対物の軌跡と、乱雑度と、の関係の一例を説明するための図である。
【
図7B】実施例1における敵対物の軌跡と、乱雑度と、の関係の一例を説明するための図である。
【
図7C】実施例1における敵対物の軌跡と、乱雑度と、の関係の一例を説明するための図である。
【
図8A】実施例1における重みパラメータ個別のデータ構成例を示す図である。
【
図8B】実施例1における重みパラメータ全体のデータ構成例を示す図である。
【
図8C】実施例1における乱雑度重みパラメータのデータ構成例を示す図である。
【
図9】実施例1における施策学習部による処理の一例を示すフローチャートである。
【
図10】実施例1における観測範囲抽出部による処理の一例を示すフローチャートである。
【
図11】実施例1における履歴抽出部による処理の一例を示すフローチャートである。
【
図12】実施例1における敵対物抽出部による処理の一例を示すフローチャートである。
【
図13】実施例1における乱雑度推定部による処理の一例を示すフローチャートである。
【
図14】実施例1における乱雑度1の算出処理の一例を示すフローチャートである。
【
図15】実施例1における乱雑度2の算出処理の一例を示すフローチャートである。
【
図16A】実施例2における不審船威圧シミュレーションによって出力された状態の例を示す説明図である。
【
図16B】実施例2における観測情報データベースに格納されているデータのデータ構成例を示す図である。
【
図16C】実施例2における各エージェント及び各敵対物の速度ベクトルの軌跡の例を示す説明図である。
【
図17A】実施例3におけるロボット制御シミュレーションによって出力された状態の例を示す説明図である。
【
図17B】実施例3におけるロボット制御シミュレーションによって出力された状態の例を示す説明図である。
【
図18A】実施例4における人流制御シミュレーションによって出力された状態の例を示す説明図である。
【
図18B】実施例4における人流制御シミュレーションによって出力された状態の例を示す説明図である。
【発明を実施するための形態】
【0013】
以下、本発明の実施形態を図面に基づいて詳細に説明する。本実施形態において、同一の構成には原則として同一の符号を付け、繰り返しの説明は省略する。なお、本実施形態は本発明を実現するための一例に過ぎず、本発明の技術的範囲を限定するものではないことに注意すべきである。
【0014】
本実施形態におけるエージェントとは、シミュレーション又は現実世界において、自身の行動を決定する一個体を示す。ここで、エージェントに敵対する個体を敵対物とする。なお、エージェントが決定する行動には、エージェントが動かないことも含まれる(つまり、エージェントは「動かない」という行動を決定することもできる)。本実施形態において、エージェントの個体数は単一であってもよいし複数(マルチエージェント)であってもよい。
【0015】
エージェントの観測範囲内の敵対物が単一である場合は、例えば、行動に関連する速度ベクトル等の時間変化と、行動とは直接は関係しない位置情報等の時間変化と、属性等の情報と、に規則性がなければ、エージェントはこの敵対物の行動に対して非統一感を観測する。エージェントの観測範囲内の敵対物が複数である場合、敵対物が単一である場合と同様に各敵対物の行動や位置の時間変化と、属性の情報と、に規則性がない場合に加え、各敵対物間の行動、位置、及び属性情報それぞれの差異からも非統一感を観測する。これらの非統一感が観測された状況はエージェントにとって乱雑な状況であり、この乱雑さを示す度合いを乱雑度とも呼ぶ。
【0016】
乱雑な状況においては、敵対物の行動に規則性がなく、エージェントは、敵対物がどのような行動を取るか予測することが困難となる。従って、敵対物の行動に規則性がない場合、敵対物の行動は不確実性を有する。この行動の不確実性はエージェントにとっては、ジレンマに相当し、乱雑度は敵対物の行動の不確実性に対する脅威とみなすことができる。従って、ジレンマは乱雑度と同等、又はジレンマに関連するとみなすことができ、ジレンマを乱雑度から算出可能である。
【0017】
しかしながら、シミュレーションや人間が観測できる時間変化は離散的であり、各離散時刻での情報(速度、位置、及び種類などの属性情報など)は離散時間に対して不連続に変化する。従って、1点の時刻である現時刻の状態の差異を用いて乱雑度が算出される場合、算出された乱雑度は時間に対し不連続に変動し、乱雑度の時間変化を正しく見積もることができない。つまり、この場合、エージェントの観測するジレンマは不連続となり、エージェントに適切なジレンマを観測させ、それに適切な施策を立案させることができない。そこで、本実施形態のジレンマ推定装置は、乱雑度の時間変化を正しく見積もり、敵対物がエージェントに及ぼす適切なジレンマを推定する。
【実施例0018】
<ジレンマ推定装置のハードウェア構成>
図1は、ジレンマ推定装置100のハードウェア構成例を示すブロック図である。ジレンマ推定装置100は、例えば、プロセッサ801、補助記憶装置802、通信装置803、入力装置804、出力装置805、及びメモリ806を有する計算機によって構成される。
【0019】
プロセッサ801は、CPU(Central Processing Unit)等に含まれ、メモリ806に格納されたプログラムを実行する。メモリ806は、不揮発性の記憶素子であるROM(Read Only Memory)及び揮発性の記憶素子であるRAM(Random Access Memory)を含む。ROMは、不変のプログラム(例えば、BIOS(Basic Input/Output System))などを格納する。RAMは、DRAM(Dynamic Random Access Memory)のような高速かつ揮発性の記憶素子であり、プロセッサ801が実行するプログラム及びプログラムの実行時に使用されるデータを一時的に格納する。
【0020】
補助記憶装置802は、例えば、磁気記憶装置(HDD(Hard Disk Drive))、フラッシュメモリ(SSD(Solid State Drive))等の大容量かつ不揮発性の記憶装置であり、プロセッサ801が実行するプログラム及びプログラムの実行時に使用されるデータを格納する。すなわち、プログラムは、補助記憶装置802から読み出されて、メモリ806にロードされて、プロセッサ801によって実行される。
【0021】
入力装置804は、キーボード、マウス、タッチパネル、テンキー、スキャナ、及びマイクなどの、オペレータからの入力を受ける装置である。出力装置805は、ディスプレイ、プリンタ、及びスピーカなどの、プログラムの実行結果をオペレータが視認可能な形式で出力する装置である。
【0022】
通信装置803は、所定のプロトコルに従って、他の装置との通信を制御するネットワークインターフェース装置である。また、通信装置803は、例えば、USB(Universal Serial Bus)等のシリアルインターフェースを含んでもよい。
【0023】
プロセッサ801が実行するプログラムの一部またはすべては、非一時的記憶媒体であるリムーバブルメディア(CD-ROM、フラッシュメモリなど)又は、非一時的記憶装置を備える外部計算機からネットワークを介してジレンマ推定装置100に提供され、非一時的記憶媒体である不揮発性の補助記憶装置802に格納されてもよい。このため、ジレンマ推定装置100は、リムーバブルメディアからデータを読み込むインターフェースを有するとよい。
【0024】
ジレンマ推定装置100は、物理的に一つの計算機上で、又は、論理的又は物理的に構成された複数の計算機上で構成される計算機システムであり、同一の計算機上で別個のスレッドで動作してもよく、複数の物理的計算機資源上に構築された仮想計算機上で動作してもよい。
【0025】
メモリ806は、例えば、いずれもプログラムである、データ入出力部101と、施策学習部102と、データ抽出部103と、乱雑度推定部104と、を含む。施策学習部102は、いずれもプログラムであるシミュレーション部121及び施策計画部122を含む。データ抽出部103は、いずれもプログラムである、観測範囲抽出部131、履歴抽出部133、及び敵対物抽出部134を含む。
【0026】
例えば、プロセッサ801は、メモリ806にロードされたプログラムであるデータ入出力部101に従って動作することで、機能部であるデータ入出力部として機能し、メモリ806にロードされたプログラムである施策学習部102に従って動作することで、機能部である施策学習部として機能する。メモリ806に含まれる他の部についても、プログラムと機能部の関係は同様である。
【0027】
なお、プロセッサ801によって実現される機能の一部又は全部が、例えば、ASIC(Application Specific Integrated Circuit)やFPGA(Field-Programmable Gate Array)等のハードウェアによって実現されてもよい。
【0028】
補助記憶装置802は、例えば、データベース110及び観測情報データベース132を保持する。なお、データベース110及び観測情報データベース132に含まれる情報の一部又は全てが、メモリ806に格納されていてもよいし、ジレンマ推定装置100に接続された外部の装置に格納されていてもよい。
【0029】
<データベース110>
図2は、データベース110に格納されている情報の一覧の一例を示す図である。データベース110は、例えば、シミュレーションパラメータ200、シミュレーション合計時間情報201、シミュレーションタイムステップ情報202、シミュレーション回数情報203、エージェント情報リスト204、敵対物情報リスト205、施策パラメータ207、観測範囲パラメータ208、履歴パラメータ210、重みパラメータ個別211、重みパラメータ全体212、乱雑度重みパラメータ213、及びシミュレーション終了条件214を保持する。
【0030】
シミュレーションパラメータ200、シミュレーション合計時間情報201、シミュレーションタイムステップ情報202、シミュレーション回数情報203、エージェント情報リスト204、及び敵対物情報リスト205は、いずれもシミュレーション部121に入力されるパラメータを示す。
【0031】
シミュレーションパラメータ200は、シミュレーションの状況設定などのシミュレーションを構成するために必要な基本情報を示すパラメータを含む。例えば、エージェントである巡視船が敵対物である不審船を撃退するシミュレーションにおいては、シミュレーションパラメータ200は、海の波の高さ、天候、座標(地域)の等のシミュレーションの環境を設定するための情報を含む。シミュレーション合計時間情報201は、1回のシミュレーション内の最大時間であるシミュレーション合計時間を示す。シミュレーションタイムステップ情報202は、なお、シミュレーションタイムステップは、シミュレーション内の1ステップで経過する時間(シミュレーションのステップ間の時間間隔)であるシミュレーションタイムステップ(以下、単にタイムステップとも呼ぶ)を示す。
【0032】
シミュレーション回数情報203は、学習時に行われるシミュレーション試行回数を示す。エージェント情報リスト204は、エージェントに関する情報を示す。敵対物情報リスト205は、敵対物(例えば、エージェントやエージェントの仲間と考えられる対象とは異なる対象)に関する情報を示す。
【0033】
施策パラメータ207は、施策計画部122に入力され、エージェント情報リスト204に含まれるエージェントごとの施策を計画するためのパラメータである。なお、施策パラメータ207は、敵対物情報リスト205に含まれる敵対物ごとの施策を計画するためのパラメータをさらに含んでもよい。つまり、施策計画部122が、エージェントごとの施策に加えて、敵対物ごとの施策をさらに計画し、計画した施策をシミュレーション部121に入力してもよい。なお、例えば、ルールベースで決定される敵対物の施策のルールがシミュレーション部121の内部に記述され、シミュレーション部121が当該ルールに従って、敵対物の施策を計画してもよい。
【0034】
観測範囲パラメータ208は、エージェント情報リスト204に含まれるエージェントそれぞれが、シミュレーション部121が出力した状態を観測可能な範囲を示すパラメータである。観測範囲パラメータ208は、観測範囲抽出部131に入力される。
【0035】
履歴パラメータ210は、履歴時間を示すパラメータである。エージェント及び敵対物に対する観測データの履歴抽出において、最新のタイムステップから履歴時間分遡った時間までの履歴が抽出される。履歴パラメータ210は、履歴抽出部133に入力される。
【0036】
重みパラメータ個別211は、乱雑度を算出する際に用いられ、各敵対物についての軌跡の時刻に対する重みを示す。重みパラメータ全体212は、乱雑度を算出する際に用いられ、敵対物間の軌跡の差異を算出における軌跡の時刻に対する重みを示す。乱雑度重みパラメータ213は、各敵対物に算出された乱雑度1と、敵対物間で算出された乱雑度2と、に対する重みを示す。
【0037】
<ジレンマ推定装置100の機能構成例>
図3は、ジレンマ推定装置100の機能構成例を示すブロック図である。ジレンマ推定装置100は、敵対物の行動の不確実性がエージェントに及ぼす脅威及び/又は損失を示す指標であるジレンマを推定する。データベース110には、
図2に示す情報が格納されている。また、データベース110には、シミュレーション結果や、ジレンマ推定装置100による処理の途中結果を示す情報等も格納されていてもよい。
【0038】
データ入出力部101は、入力装置804、又はジレンマ推定装置100と通信可能に接続されている外部の計算機から、データの入力を受け付ける。また、データ入出力部101は、ジレンマ推定装置100による処理結果を、出力装置805、又はジレンマ推定装置100と通信可能に接続されている外部の計算機に出力する。
【0039】
施策学習部102は、例えば、ランダムサーチ、グリッドサーチ、局所探索法、遺伝的アルゴリズム、(学習対象の関数が連続な場合においては)勾配法、又は強化学習等の学習アルゴリズムによって施策学習を実行する。
【0040】
シミュレーション部121は、エージェント情報リスト204と敵対物情報リスト205をデータベース110から取得する。施策計画部122は、エージェントごとに、観測状態から行動を決定する施策を計画する。シミュレーション部121は、施策計画部122が計画した施策に基づいて、シミュレーションを実行する。
【0041】
シミュレーション部121は、シミュレーションタイムステップ情報202が示すタイムステップをデータベース110から取得し、取得したタイムステップ数分シミュレーションの状態を更新し、更新した状態と、更新した状態に対するスコアと、を出力する。
【0042】
なお、複数タイムステップのシミュレーションの状態の更新が1度に行われてもよい。スコアは、シミュレーションパラメータ群の優劣を示す指標の一例であり、例えばデータベース110に格納される。強化学習における報酬関数はスコアの一例である。
【0043】
施策計画部122は、シミュレーション部121が出力したスコアと、シミュレーション部121から出力された観測範囲情報のうち観測範囲抽出部131が抽出したエージェントの観測範囲における観測範囲情報と、乱雑度推定部104から出力されたジレンマ(乱雑度)と、に基づいて、エージェントの施策を計画する。
【0044】
例えば、施策計画方法がニューラルネットワークのような学習モデルを含む場合、当該学習モデルに含まれる重みが施策パラメータ207に含まれている。施策計画方法がニューラルネットワークではないルールベースのようなアルゴリズムを含む場合、当該ルールが施策パラメータ207に含まれている。施策計画方法が、他のエージェントの施策計画アルゴリズムを含む場合であっても、当該アルゴリズムに用いられる関数やパラメータが施策パラメータ207に含まれている。
【0045】
施策計画部122は、マルチエージェントの施策を計画してもよいし、エージェントに加えて敵対物の施策も計画してもよい。施策計画部122は、エージェントごとに施策を計画し、エージェントごとに計画した施策をシミュレーション部121に入力する。シミュレーション部121は、入力された施策に基づいてシミュレーションを実行する。エージェントの基本情報はエージェント情報リスト204に含まれ、敵対物の基本情報は敵対物情報リスト205に含まれている。
【0046】
データ抽出部103は、シミュレーション部121が出力した状態のうち、各エージェントが観測する範囲の状態を抽出し、過去から現在の抽出した履歴情報から敵対物を抽出し、敵対物の過去から現在の状態の時系列を示す軌跡を算出する。前述したように、データ抽出部103は、観測範囲抽出部131と、観測情報データベース132と、履歴抽出部133と、敵対物抽出部134と、を有する。
【0047】
観測範囲抽出部131は、シミュレーション部121が出力した状態のうち、データベース110に格納された観測範囲パラメータ208に基づくエージェントが観測する範囲の状態を抽出し、抽出した状態を出力する。観測情報データベース132は、観測範囲抽出部131が出力した状態を保管するためのデータベースである。観測情報データベース132はデータベース110と同じものであってもよい(つまり、観測情報データベース132及びデータベース110が一体化されていてもよいし、観測情報データベース132及びデータベース110の一方の情報が他方にも格納されていてもよい)。
【0048】
履歴抽出部133は、観測情報データベース132から軌跡を算出するために、データベース110に格納されている履歴パラメータ210を参照して、現在のシミュレーションの試行回数を示すエピソード中のシミュレーションのタイムステップから、必要な時間分の過去のデータを抽出し、履歴データを作成する。
【0049】
履歴データは、軌跡を算出する際に必要な状態における、現在のタイムステップから履歴パラメータ210(履歴パラメータ210は、例えば、ユーザによって指定される)が示す時間分遡った過去までのデータを含む。観測情報データベース132に現在のエピソードにおける、履歴パラメータ210で指定された時間分のデータがない場合は、履歴抽出部133は、観測情報データベース132に含まれる現在のエピソードにおけるすべてのタイムステップのデータを用いた履歴データを作成し、履歴データを出力する。
【0050】
敵対物抽出部134は、履歴抽出部133が出力した履歴データと、敵対物情報リスト205と、に基づいて、エージェントの観測範囲内の敵対物を抽出し、抽出した各敵対物の履歴情報を含む軌跡を作成し、出力する。軌跡は過去から現在までの、敵対物に関して観測された情報を示す。軌跡は、時刻ごとの敵対物の位置や速度の大きさなどの複数種類のパラメータを要素として持ち、同一時刻の情報は同じ要素に組として保管される。
【0051】
乱雑度推定部104は、敵対物抽出部134が出力した軌跡に基づいて、各敵対物の過去から現在までの状態の変化量に基づいて乱雑度(乱雑度1)を推定する。また、乱雑度推定部104は、各敵対物の軌跡を比較して軌跡の差異を算出し、算出した差異に基づいて乱雑度(乱雑度2)を算出する。乱雑度推定部104は、乱雑度1と乱雑度2に基づいて、最終的な乱雑度を算出して出力する。
【0052】
軌跡の変化量は、時刻ごとに算出され、同一時刻での各パラメータの変化量は同じ要素に組として保管される。軌跡の差異量も同様に、時刻ごとに算出され、同一時刻での各パラメータの変化量は同じ要素に組として保管される。
【0053】
軌跡の変化量と差異量は、時刻ごとに要素を持つものでなくてもよいが、時刻ごとに要素を持つ場合、全時刻の変化量の総和などの四則演算値と差異量の総和などの四則演算値を算出することが可能である。
【0054】
乱雑度推定部104は、出力した乱雑度を、観測情報データベース132における現在のタイムステップの乱雑度(ジレンマ)として追記する。なお、乱雑度推定部104は、出力した乱雑度そのものをジレンマに決定してもよいし、出力した乱雑度に基づくジレンマ(例えば、乱雑度からジレンマを算出する所定の関数(例えば、乱雑度が高いほど高いジレンマが出力される関数)に乱雑度を代入することにより)を算出してもよい。乱雑度推定部104は、シミュレーション部121及び施策計画部122にも、算出した乱雑度を出力する。
【0055】
<パラメータの詳細例>
図4Aは、エージェント情報リスト204のデータ構成例を示す図である。
図4Bは、敵対物情報リスト205のデータ構成例を示す図である。
図4Cは、観測範囲パラメータ208のデータ構成例を示す図である。
図4Dは、履歴パラメータ210のデータ構成例を示す図である。
【0056】
エージェント情報リスト204には、例えば、エージェントを識別するエージェントID、エージェントの種類などの属性情報、及びエージェントの施策計画を立案する方法(施策計画方法)などの情報が含まれる。エージェントの一例である巡視船が、敵対物の一例である不審船を撃退する例においては、
図4Aの例のようにエージェント情報リスト204には、例えば、エージェントの属性情報として、各船の種類、最高速度、及び攻撃力などの情報が含まれる。
【0057】
敵対物情報リスト205には、例えば、エージェント情報リスト204と同様に、敵対物を識別する敵対物ID、敵対物の種類などの属性情報、及び施策計画方法等の情報が含まれる。
図4Bの例においても、
図4Aのエージェント情報リスト204の例と同様に、敵対物情報リスト302には、例えば、敵対物の属性情報として、各不審船の種類、最高速度、及び攻撃力などの情報が含まれる。
【0058】
観測範囲パラメータ208には、例えば、エージェントによる観測範囲を示す観測範囲パラメータ(エージェント)2081及び敵対物による観測範囲を示す観測範囲パラメータ(敵対物)2082が含まれる。観測範囲パラメータ(エージェント)2081には、エージェントID、エージェントによる観測範囲(エージェント)、及びエージェントによる観測範囲の形状又は方向を示す観測範囲方向(エージェント)が含まれる。また、観測範囲パラメータ(敵対物)2082には、敵対物ID、敵対物による観測範囲(敵対物)、及び敵対物による観測範囲の形状又は方向を示す観測範囲方向(敵対物)が含まれる。
【0059】
エージェントは、当該エージェントからの観測範囲方向(エージェント)が示す形状又は方向の、当該エージェントからの観測範囲(エージェント)が示す距離が示す範囲を観測可能である。例えば
図4Cの例では、エージェントIDが「01」のエージェントは、当該エージェントを中心とし、半径が10である円の内部を観測可能である。なお、観測範囲方向(エージェント)は、円以外にも、例えば、半円、長方形、又は三角形などによっても定義可能である。また、観測範囲の中心(始点)についてもユーザが自由に指定可能である(例えば、長方形が観測範囲方向(エージェント)に指定されている場合、長方形の中心(例えば重心)ではなく、例えば下辺の中点なども観測範囲方向(エージェント)の中心(始点)に指定することができる)。上記した内容は、敵対物が観測可能な範囲についても同様である。
【0060】
なお、複数のエージェントが観測情報を共有可能(つまり他のエージェントの観測範囲も観測可能)であってもよく、この場合、観測範囲パラメータ208には、観測情報を共有可能なエージェントの組み合わせが記述されていてもよい。
【0061】
履歴パラメータ210には、軌跡の算出対象となるパラメータ(属性情報)に対して、どれだけの時間を遡って履歴を用いて軌跡を算出するかを示す履歴時間が含まれる。履歴時間は0又は正の値(以下、簡単のため0又は正整数とする)であり、現在のタイムステップから履歴時間が示す時間を遡った過去までの情報が観測情報データベース132から取得され、取得された情報から履歴データが作成される(つまり、現在のタイムステップから履歴時間が示す時間を遡った過去までの履歴を用いた軌跡及び乱雑度が算出される)。
【0062】
例えば、
図4Dの履歴パラメータ210の例における「速度」の履歴時間は「20」であるため、「速度」については現在のタイムステップから「20」遡った時間までの履歴が取得される。例えば、
図4Dの履歴パラメータ210の例における「種類」の履歴時間は0であるため、「種類」については現在のタイムステップの履歴のみが取得される。
【0063】
図4Dの履歴パラメータ210の例における「位置」のように複数の履歴時間が定義されている場合、複数の履歴を用いて乱雑度が推定される。
図4Dの履歴パラメータ210の例における「位置」は、履歴時間として「20」と「0」が定義されているため、現在のタイムステップから20タイムステップ遡った時間までの位置の履歴を用いた軌跡と、現在のタイムステップのみの位置の履歴を用いた軌跡と、それぞれに対する乱雑度が乱雑度推定部104によって推定される。なお、複数の履歴時間が定義されているパラメータに対して、ユーザが複数の履歴時間から一部(例えば1つ)の履歴時間を選択して、当該パラメータに対して当該選択した履歴時間についてのみ履歴が取得されてもよい。
【0064】
なお、最終的な乱雑度は履歴パラメータ210に格納されている各パラメータの履歴時間のデータをそれぞれ用いて算出された乱雑度に対して、例えば、総和などの四則演算が実行されることによって決定される。
【0065】
履歴データは、履歴パラメータ210内の最大の(履歴時間÷シミュレーションタイムステップ)の数の組を持つように作成される。なお、パラメータによっては、履歴時間の違いや観測範囲次第では値が取得されないタイムステップもある。例えば、あるタイムステップにおいて値が取得されていないパラメータに対しては、NAN(Not A Number)や空欄などが入力され、NANや空欄などは乱雑度推定部104による乱雑度推定の計算において0として扱われ、当該タイムステップにおける乱雑度は当該パラメータによる影響を受けない。
【0066】
また、乱雑度推定部104は、あるパラメータについての敵対物の軌跡の差異量を算出する場合は、NANや空欄のデータを使用せずに、比較対象の敵対物のうち、当該パラメータの履歴時間が最も短い軌跡に合わせて、当該履歴時間の範囲内だけで差異量を算出する。ただし、観測範囲外の状態が推測可能である場合は、その推定状態を用いて軌跡の差異及び軌跡の変化量を算出してもよい。
【0067】
<敵対物観測範囲の例>
図5は、観測された敵対物の一例を示す説明図である。
図5の例では、簡単のため、シミュレーションタイムステップの値が1であり、エージェント情報リスト204にはエージェントが1つのみ定義されているものとする。
【0068】
状態401は、現在時刻tからNタイムステップ遡った時刻(即ち時刻t-N)におけるシミュレーションで出力された状態を示す。状態401において、黒丸で示したエージェント421の観測範囲411の内部には、敵対物E1、敵対物E2、及び敵対物E4が位置し、観測範囲411の外部には敵対物E3及び敵対物E5が位置する。
【0069】
なお、
図5において敵対物に付された矢印は、当該時刻における敵対物の速度ベクトルを示し、
図5における敵対物の形状は敵対物の種類を示すものとする。また、観測範囲411は、観測範囲パラメータ208における当該エージェント421の観測範囲(エージェント)及び範囲方向(エージェント)によって定められる。
【0070】
状態402は、現在時刻tにおけるシミュレーションで出力された状態を示す。状態402において、エージェント421の観測範囲411の内部には、敵対物E1、敵対物E2、敵対物E4、及び敵対物E5が位置し、観測範囲411の外部には敵対物E3が位置する。現在時刻tでは、時刻t-Nには観測範囲411の内部にいなかった敵対物E5が観測範囲411の内部に入っている。つまり、敵対物E5は時刻t-Nから時刻tの間に観測範囲411の内部に侵入したものである。このように、時間変化によって敵対物が移動するため、観測範囲411に含まれる敵対物及び観測範囲411に含まれない敵対物が時間変化によって変化する。
【0071】
<軌跡(速度ベクトル)の例>
図6は、エージェント421の観測範囲411内に含まれた敵対物の速度ベクトルの軌跡の例を示す説明図である。速度ベクトルは、敵対物の速度の大きさと速度の方向とを示し、速度ベクトルの軌跡は乱雑度を算出するために利用される軌跡の一例である。
図6の例は、
図5の例において、N=3であり、履歴パラメータ210が示す速度ベクトルの履歴時間が3である例である。なお、軌跡は速度ベクトルに加えて又は代えて、敵対物の種類や位置などの情報を含んでもよい。
【0072】
軌跡511は敵対物E1の軌跡、軌跡512は敵対物E2の軌跡、軌跡514は敵対物E4の軌跡、軌跡513は敵対物E5の軌跡を示す。
図6の各軌跡に含まれる速度ベクトルは、より左に位置するほどより古い時刻に対応し、最も右に位置する速度ベクトルは現在時刻に対応する速度ベクトルである。軌跡514において、左から右へと時刻が進むため、速度ベクトルは連結されていない(2つ目以降の時刻に対応する各速度ベクトルの始点が直前の速度ベクトルの終点と連結されていない)が、速度ベクトルを連結して表してもよい。各軌跡において、速度ベクトルが連結されていても、速度ベクトルが連結されていなくても、計算結果には影響はしない。
【0073】
敵対物E5の軌跡513に含まれる速度ベクトルの数が、敵対物E1、E2、E4それぞれの軌跡である軌跡511、軌跡512、軌跡514それぞれに含まれる速度ベクトルの数より1つ少ない。これは時刻t-Nにおいてエージェント421の観測範囲411に敵対物E5が含まれていなかったためである(つまり時刻t-Nにおいて敵対物E5が観測されていなかった)。このように、軌跡の情報の一部が不足することがある。
【0074】
<軌跡の比較>
図7A、
図7B、及び
図7Cは、敵対物の軌跡と、乱雑度と、の関係の一例を説明するための図である。
図7A、
図7B、及び
図7Cを用いて、2つの敵対物が異なる速度ベクトルの動きをしたときにおける、各敵対物の軌跡の変化量に基づく乱雑度1と、敵対物間の軌跡の差異に基づく乱雑度2と、の変化を説明する。
【0075】
1つの敵対物のパラメータの軌跡のある時刻における変化量は、当該敵対物の当該時刻のタイムステップの状態におけるパラメータの値と、当該敵対物の当該時刻からNステップ前(例えば、Nは1以上の所定の自然数)の状態におけるパラメータの値と、の差で表現されてもよいし、当該差の絶対値で表現されてもよい。なお、全ての敵対物に対してNが同じ値であってもよいし、一部又は全ての敵対物に対してNが異なる値であってもよい。
【0076】
2つの敵対物のパラメータの軌跡の差異量は、同一の時刻における当該2つの敵対物の当該パラメータの差で表現されてもよいし、当該差の絶対値で表現されてもよい。また、2つの敵対物のパラメータの軌跡の差異量は、ある時刻とNステップ前(例えば、Nは1以上の所定の自然数)の時刻の状態における、当該2つの敵対物の当該パラメータの差で表現されてもよいし、当該差の絶対値で評価されてもよい。また、これらの時刻や時刻の組み合わせは敵対物ごとに異なってもよい。
【0077】
図7A、
図7B、及び
図7Cの例における軌跡に対する変化量と、軌跡の差異の量と、は絶対値で評価されているものとする。また、
図7A、
図7B、及び
図7Cの例における軌跡の変化量は1ステップ前の状態との絶対値の差であり、軌跡の差異量は同時刻の状態における絶対値の差であるとする。
【0078】
図7Aのケース1において、エージェント412の観測範囲601に含まれる敵対物E1と敵対物E2は、タイムステップごとに速度ベクトルの向きを変え、エージェント412に向かって進行する。敵対物E1と敵対物E2それぞれの速度ベクトルの軌跡は各ステップにおいて変化するため、軌跡の変化量の絶対値は0より大きい。一方、敵対物E1と敵対物E2ともに同じ軌跡であるため、敵対物E1と敵対物E2の間の軌跡の差異はなく、速度ベクトルの軌跡間の差異に基づく、エージェント412に及ぼす乱雑度2は0である。
【0079】
図7Bのケース2において、エージェント412の観測範囲602に含まれる敵対物E1と敵対物E2は、エージェント412に向かって進行する途中で交差する。敵対物E1と敵対物E2は常に直進しているため、敵対物E1と敵対物E2それぞれの速度ベクトルの軌跡の変化がない。従って、敵対物E1及び敵対物E2それぞれの軌跡の変化量に対する速度ベクトルの乱雑度1は0である。一方、敵対物E1と敵対物E2間の軌跡は異なっており、敵対物E1及び敵対物E2の軌跡の差分の量の絶対値は0より大きいため、速読ベクトルの乱雑度2は0より大きい。
【0080】
図7Cのケース3のエージェント412の観測範囲603では、敵対物E1と敵対物E2の速度ベクトルの向きは各ステップで変化し、さらに敵対物E1及び敵対物E2はエージェント412に向かって進行する。敵対物E1と敵対物E2の速度ベクトルの軌跡は、各ステップで変化しており、軌跡の変化量は正の値である。また、敵対物E1と敵対物E2の軌跡は異なっており、軌跡の差分は正の値である。
【0081】
図7Cのケース3では、各敵対物の軌跡の変化量の絶対値に基づく速度ベクトルの乱雑度1と、敵対物の軌跡間の差異の絶対値による速度ベクトルの乱雑度2と、はいずれも0より大きい。また、各パラメータに対する乱雑度の重みである重みパラメータ個別211と重みパラメータ全体212と、乱雑度1と乱雑度2の乱雑度重みパラメータ213の設定にも依存するが、
図7Cのケース3では、
図7Aのケース1の例と
図7Bのケース2の例よりも、速度ベクトルの乱雑度が大きくなる傾向がある。
【0082】
図7A~
図7Cの例では速度ベクトルのみ軌跡について記載されているが、他のパラメータの軌跡を用いても同様に乱雑度を算出できる。敵対物の位置の軌跡が用いられる場合、各時刻の各敵対物の位置情報の変化量に基づく乱雑度1と、敵対物間の位置の差異に基づく乱雑度2と、を算出できる。エージェントの観測範囲内の敵対物が近ければ乱雑度が小さくなり、敵対物間の距離が遠かったり、敵対物がエージェントに接近する方向が異なったりするように敵対物が配置されている場合は乱雑度が大きくなる。
【0083】
重みパラメータ個別211と、重みパラメータ全体212により、軌跡の変化量に基づく乱雑度1と軌跡の差異に基づく乱雑度2は変化する。また、乱雑度重みパラメータ213により、速度ベクトルの乱雑度や位置の乱雑度の比などを変更することが可能である。
【0084】
<乱雑度の重みパラメータ>
図8Aは、重みパラメータ個別211のデータ構成例を示す図である。
図8Bは、重みパラメータ全体212のデータ構成例を示す図である。
図8Cは、乱雑度重みパラメータ213のデータ構成例を示す図である。
【0085】
重みパラメータ個別211は、例えば、各パラメータに対する、重み(個別)と、割引率(個別)と、を含む。重み(個別)は、乱雑度推定部104が乱雑度1を算出する際に用いられ、各敵対物の各パラメータの軌跡の変化量を合算する際のパラメータごとの重みを示す。割引率(個別)は、乱雑度推定部104が乱雑度1を算出する際に用いられ、各敵対物の各パラメータの軌跡の変化量を算出する際の、過去の情報の比重を定めるためのパラメータごとの割引率を示す。
【0086】
履歴パラメータ210において複数の履歴時間を有するパラメータについては、当該複数の履歴時間それぞれに対して異なる重み(個別)と割引率(個別)が定義されていてもよい。
図4Dの履歴パラメータ210の例においては位置が複数の履歴時間(20及び0)を有しているため、
図8Aの重みパラメータ個別211の例では、位置の履歴時間20に対応する重み(個別)0.2及び割引率(個別)1.1と、位置の履歴時間0に対応する重み(個別)1,0及び割引率(個別)0.95と、が定義されている。履歴パラメータ210において1つの履歴時間のみを有するパラメータについては、重みパラメータ個別211において1組の重み(個別)及び割引率(個別)が定義されている。
【0087】
ここで、あるパラメータに対する割引率(個別)をγとし、γは0以上の実数値であり、割引率(個別)γを用いて、軌跡の当該パラメータの変化量は、例えば、以下のように算出される。
【0088】
(当該パラメータの変化量)=(現在時刻tにおける当該パラメータの変化量)+(現在時刻t-1の変化量)×γ+(現在時刻t-1の変化量)×γ2+・・・
【0089】
上記した式によれば、割引率(個別)γが1より小さい場合は過去の変化量の比重は小さくなる。割引率(個別)γが1よりも大きい場合は過去の変化量の比重は大きくなる。割引率(個別)γが0である場合は、現在時刻tの変化量のみが考慮される。
【0090】
上記のパラメータの変化量は各時刻の割引率(個別)が適用された変化量の和によって算出されているが、引き算などの他の四則演算が用いられてパラメータの変化量が算出されてもよい。なお、引き算が用いられることと、負の割引率(個別)γが用いられて和が算出されることと、は同義である。
【0091】
なお、乱雑度1は、割引率(個別)が適用されて算出された各パラメータの変化量と、各パラメータに対応する重み(個別)a1、a2、・・・と、を用いて、例えば、以下のように算出される。
【0092】
(乱雑度1)=a1×(パラメータ1の変化量)+a2×(パラメータ2の変化量)+・・・+aN×(パラメータNの変化量)
【0093】
例えば、パラメータ1が速度、パラメータ2が位置、種類がパラメータNであるとすると、
図8Aによれば、速度の重み(個別)a
1は0.5、位置の重み(個別)a
2=0.2 or 1.0、種類の重み(個別)a
N=1.1である。なお、上記した式では総和を用いて乱雑度1が算出されているが、加算以外の四則演算が用いられてもよい。
【0094】
重みパラメータ全体212は、例えば、各パラメータに対する、重み(全体)と、割引率(全体)と、を含む。重み(全体)は、乱雑度推定部104が乱雑度2を算出する際に用いられ、敵対物の組み合わせのパラメータの軌跡間の差異を算出する際のパラメータごとの重みを示す。割引率(全体)は、乱雑度推定部104が乱雑度2を算出する際に用いられ、敵対物の組み合わせのパラメータの軌跡間の差異を算出する際の、過去の情報の比重を定めるためのパラメータごとの割引率を示す。
【0095】
重み(個別)及び割引率(個別)と同様に、履歴パラメータ210において複数の履歴時間を有するパラメータについては、当該複数の履歴時間それぞれに対して異なる重み(全体)と割引率(全体)が定義されていてもよい。また、重み(個別)及び割引率(個別)と同様に、履歴パラメータ210において1つの履歴時間のみを有するパラメータについては、重みパラメータ個別211において1組の重み(全体)及び割引率(全体)が定義されている。
【0096】
ここで、あるパラメータに対する割引率(全体)をγ’とし、γ’は0以上の実数値であり、割引率(全体)γ’を用いて、軌跡間の当該パラメータの差異量は、例えば、以下のように算出される。
【0097】
(当該パラメータの軌跡間の差異量)=(現在時刻tの軌跡間の差異量)+(現在時刻t-1の軌跡間の差異量)×γ’+(現在時刻t-1の軌跡間の差異量)×γ’2+・・・
【0098】
上記した式によれば、割引率(全体)γ’が1より小さい場合は過去の差異量の比重は小さくなる。割引率(全体)γ’が1よりも大きい場合は過去の差異量の比重は大きくなる。割引率(全体)γ’が0である場合は、現在時刻tの差異量のみが考慮される。
【0099】
上記のパラメータの軌跡間の差異量は各時刻の割引率(全体)が適用された差異量の和によって算出されているが、引き算などの他の四則演算が用いられてパラメータの軌跡間の差異量が算出されてもよい。なお、引き算が用いられることと、負の割引率(全体)γ’が用いられて和が算出されることと、は同義である。
【0100】
なお、乱雑度2は、割引率(全体)が適用されて算出された各パラメータの軌跡間の差異量と、各パラメータに対応する重み(全体)a’1、a’2、・・・と、を用いて、例えば、以下のように算出される。
【0101】
(乱雑度2)=a’1×(パラメータ1の軌跡間の差異量)+a’2×(パラメータ2の軌跡間の差異量)+・・・+a’N×(パラメータNの軌跡間の差異量)
【0102】
例えば、パラメータ1が速度、パラメータ2が位置、種類がパラメータNであるとすると、
図8Bによれば、速度の重み(全体)a’
1は1.0、位置の重み(個別)a’
2=0.8 or 0.5、種類の重み(個別)a’
N=0.3である。なお、上記した式では総和を用いて乱雑度2が算出されているが、加算以外の四則演算が用いられてもよい。
【0103】
乱雑度重みパラメータ213は、軌跡の変化量に基づく乱雑度1と、軌跡間の差異量による乱雑度2と、を統合した乱雑度(単に乱雑度とも呼ぶ)を算出する際に用いられる重みを示す。個別の重みをb1、全体の重みb2とすると、例えば、以下の式によって、乱雑度が算出される。
【0104】
(乱雑度)=b1×(乱雑度1)+b2×(乱雑度2)
【0105】
なお、上記した式では総和を用いて乱雑度が算出されているが、加算以外の四則演算が用いられてもよい。
【0106】
<施策学習部102による処理>
図9は、施策学習部102による処理の一例を示すフローチャートである。施策学習部102に含まれる施策計画部122は、シミュレーション回数と、シミュレーション合計時間と、シミュレーションタイムステップと、を補助記憶装置802から取得する(S901)。
【0107】
シミュレーション部121と施策計画部122は、エージェント情報リスト204と、敵対物情報リスト205と、を補助記憶装置802から取得する(S902)。
【0108】
施策計画部122は、施策を立案するための施策パラメータ207を取得し、エージェント及び敵対物の施策と、シミュレーション試行回数と、を初期化する(S903)。エージェント情報リスト204に複数のエージェントが定義されている場合は、施策計画部122はマルチエージェントの施策を計画するため、複数の施策(各エージェントの施策)を初期化する。また、敵対物情報リスト205に複数の敵対物が定義されている場合は、施策計画部122は、各敵対物の施策を初期化する。なお、敵対物の施策は、所定のルールに基づいて決定されるものとして、シミュレーション部121に当該所定のルールに基づいて敵対物の施策を決定するためのプログラムが格納されていてもよい。
【0109】
シミュレーション部121は、シミュレーションパラメータ200を取得し、取得したシミュレーションパラメータ200に基づいて、シミュレーションの状況設定をシミュレーション開始時間の状態に初期化する(S904)。さらに、ステップS904において、シミュレーション部121は取得したエージェント情報リスト204と敵対物情報リスト205に基づいて、シミュレーション開始時間における各エージェント及び各敵対物のシミュレーションの状態を設定し、シミュレーションステップ数を初期化し、さらにシミュレーション試行回数に1を加える。
【0110】
施策計画部122は、取得した施策パラメータ207に従って、各エージェントと各敵対物の施策を立案し、シミュレーション部121は立案された各施策を受け取り、当該タイムステップの状態における各エージェントと各敵対物のスコアを算出し、シミュレーションのタイムステップを1つ進め、状態を当該1つ進んだタイムステップの状態に遷移させる(S905)。スコアは強化学習などで使用される報酬関数のような、状態に対する評価を行う関数などを用いて算出される。
【0111】
観測範囲抽出部131は、シミュレーション部121から出力された各エージェントと各敵対物の状態を受け取り、各エージェントの観測範囲パラメータ208が示す観測範囲の観測状態を出力し、観測情報データベース132に保管する(S906)。
【0112】
敵対物抽出部134は、各敵対物の軌跡を作成する(S907)。具体的には、例えば、履歴抽出部133は、履歴パラメータ210が示す各パラメータの履歴時間を取得する。履歴抽出部133は、観測範囲抽出部131から出力され観測情報データベース132に保管されている各エージェントの観測範囲の状態から、各敵対物の各パラメータについて、現在時刻(現シミュレーションタイムステップの時刻)から当該パラメータに対応する履歴時間遡った時間までの履歴データを作成する。敵対物抽出部134は、敵対物情報リスト205に含まれる各敵対物の各パラメータの履歴データを抽出して、抽出した履歴データから各敵対物の各パラメータの軌跡を作成する。
【0113】
乱雑度推定部104は、各敵対物の軌跡の情報に基づいて乱雑度を算出する(S908)。シミュレーション部121は、現シミュレーションタイムステップで、エージェント情報リスト204から選択されていないエージェントを指定する(S909)。
【0114】
施策学習部102は、ステップS909で指定されたエージェントに対し、乱雑度推定部104が算出した乱雑度と、観測範囲抽出部131が抽出した現在のタイムステップの観測状態と、シミュレーション部121が出力したスコアと、を入力し、施策パラメータ207を更新することで施策を学習する(S910)。具体的には、例えば、施策学習部102は、エージェントのスコアが高くなるようエージェントの施策パラメータ207を更新することで施策を学習する。なお、例えば、エージェントのスコアは、自身の行動の結果そのものを反映する(例えば、エージェントである巡視船が敵対物である不審船を撃退するほどに高い値になる)のみならず、当該エージェントに及ぼされる乱雑度が低くなると値が上昇するような、かつ/又は敵対物のスコアが低くなると値が上昇するような、関数によって定義されていてもよい。この場合、施策学習部102は、エージェントのスコアが高くなるようエージェントの施策パラメータ207を更新することで施策を学習することにより、エージェントに及ぼされる乱雑度が低くなるように、かつ/又は敵対物のスコアが低くなるように、エージェントの施策パラメータ207を更新することとなる。
【0115】
施策学習部102は、現在のシミュレーションタイムステップで、エージェント情報リスト204に含まれる全エージェントについて、ステップS910における施策パラメータ207の更新が実行されたかを判定する(S911)。施策学習部102は、現在のシミュレーションタイムステップで、ステップS910における施策パラメータ207の更新が実行されていないエージェントがあると判定した場合(S911:NO)、ステップS909に戻る。
【0116】
施策学習部102は、現在のシミュレーションタイムステップで、エージェント情報リスト204に含まれる全エージェントについて、ステップS910における施策パラメータ207の更新が実行されたと判定した場合(S911:YES)、シミュレーションの終了条件が満たされたかを判定することで、シミュレーションが終了したか判定をする(S912)。シミュレーションの終了条件は、例えば、シミュレーション合計時間にシミュレーションタイムステップが到達すること、及びシミュレーション終了条件214が示す所定の条件を達成すること、のいずれか一方を満たすことであってもよいし、少なくとも一方を満たすことであってもよいし、双方を満たすことであってもよい。例えば、エージェントが巡視船であり、敵対物が不審船である場合には、全ての不審船を撃退すること等は、当該所定の条件の一例である。
【0117】
施策学習部102は、シミュレーションが終了していないと判定した場合(S912:NO)、更新された施策パラメータ207を用いて施策を立案してシミュレーションを実行するステップS905に戻る。施策学習部102は、シミュレーションが終了したと判定した場合(S912:YES)、シミュレーションの試行回数が、シミュレーション回数情報が示すシミュレーション試行回数に到達したかを判定する(S913)。
【0118】
施策学習部102は、シミュレーションの試行回数が、シミュレーション試行回数に到達していないと判定した場合(S913:NO)、ステップS904に戻る。施策学習部102は、シミュレーションの試行回数が、シミュレーション試行回数に到達したと判定した場合(S913:YES)、
図9の処理を終了する。
【0119】
なお、
図9の例では、簡単のため、エージェントのみの施策を学習し、敵対物がエージェントに及ぼす乱雑度を算出しているが、
図9と同様の方法で、敵対物についての施策も学習してもよいし、エージェントが敵対物に及ぼす乱雑度も算出してもよい。
【0120】
具体的には、例えば、観測範囲抽出部131は、ステップS906で敵対物それぞれの観測範囲の状態を抽出する。また、例えば、履歴抽出部133は、ステップS907において、敵対物それぞれの観測範囲の状態の履歴に基づいてエージェントの各パラメータの履歴データを作成し、敵対物抽出部134は、各エージェントの各パラメータの軌跡を算出する。また、例えば、乱雑度推定部104は、ステップS908において、各エージェントの軌跡の情報をもとに、エージェントが敵対物に及ぼす乱雑度を算出する。また、例えば、ステップS909~S911では施策学習部102は、各敵対物に対して、乱雑度を用いて施策パラメータ207を更新することで施策を学習する。
【0121】
<観測範囲抽出部による処理>
図10は、観測範囲抽出部131による処理の一例を示すフローチャートである。
図10では、
図9のステップS906の一部の処理の具体例を示す。観測範囲抽出部131は、シミュレーション部121から全エージェントの次のタイムステップの状態を取得する(S1001)。
【0122】
観測範囲抽出部131は、エージェント情報リスト204に含まれるエージェントであって、現シミュレーションタイムステップで選択されていないエージェントを1つ選択する(S1003)。観測範囲抽出部131は、選択したエージェントに対応する観測範囲を観測範囲パラメータ208から特定し、当該選択したエージェントの観測範囲の状態(観測範囲に含まれる敵対物のパラメータ)を抽出する。なお、観測範囲の設定方法として、
図5で説明した方法が用いられてもよいし、他の方法が用いられてもよい。
【0123】
観測範囲抽出部131は、現タイムステップでエージェント情報リスト204に含まれる全てのエージェントが選択されたかを判定する(S1004)。観測範囲抽出部131は、現タイムステップでエージェント情報リスト204に含まれる全てのエージェントが選択されたと判定した場合(S1004:YES)、
図10の処理を終了する。観測範囲抽出部131は、現タイムステップでエージェント情報リスト204に含まれるエージェントのうち選択されていないエージェントがあると判定した場合(S1004:NO)、ステップS1002に戻る。
【0124】
なお、ステップS1001の処理はステップS1002の処理の後に実行されてもよい、つまりステップS1002で選択したエージェントの状態をステップS1001で順次取得してもよい。
【0125】
<履歴抽出部133による処理>
図11は、履歴抽出部133による処理の一例を示すフローチャートである。
図11は、ステップS907の一部の処理の具体例を示す。履歴抽出部133は、エージェント情報リスト204に含まれるエージェントのうち、現シミュレーションタイムステップで選択されていないエージェントを1つ選択する(S1101)。
【0126】
履歴抽出部133は、観測情報データベース132を参照して、現在の(最新の)タイムステップから、履歴パラメータ210が示すパラメータの各履歴時間分だけ過去の時間までの、選択されたエージェントによる観測範囲の状態のデータ(観測範囲に含まれる敵対物の各パラメータの値)を抽出する(S1102)。
【0127】
履歴抽出部133は、現在の(最新の)タイムステップから、履歴パラメータ210が示すパラメータの各履歴時間分だけ過去の時間までの期間において、選択されたエージェントの観測範囲外に位置する敵対物の状態を推定可能である場合、観測範囲外の敵対物の状態を推定する(S1103)。履歴抽出部133は、ステップS1103で推定した状態を、例えば、選択したエージェントが観測した状態として扱う。
【0128】
履歴抽出部133は、例えば、あるタイムステップtにおいてある敵対物が、選択されたエージェントの観測範囲に位置し、1つ次のタイムステップt+1において当該敵対物が、当該選択されたエージェントの観測範囲外に位置する場合、タイムステップt+1における当該敵対物のパラメータをタイムステップtの状態から推定する。具体的には、例えば、推定対象のパラメータが速度ベクトルや種類である場合には、履歴抽出部133は、タイムステップt+1における当該敵対物のパラメータは、タイムステップtにおける当該敵対物の当該パラメータと等しいと推定する。また、例えば、推定対象のパラメータが位置である場合には、履歴抽出部133は、タイムステップt+1における当該敵対物の位置は、タイムステップtにおける当該敵対物の位置からタイムステップtにおける速度ベクトルが示す速度と方向で移動した位置であると推定する。また、例えば、履歴抽出部133は、機械学習等の手法を用いて、観測範囲外の敵対物の状態を推定してもよい。
【0129】
また、同様に、履歴抽出部133は、例えば、あるタイムステップtにおいてある敵対物が、選択されたエージェントの観測範囲外に位置し、1つ次のタイムステップt+1において当該敵対物が、当該選択されたエージェントの観測範囲に位置する場合、タイムステップtにおける当該敵対物のパラメータをタイムステップt+1の状態から推定する。
【0130】
なお、ステップS1103において、履歴パラメータ210が示す履歴時間に応じて、パラメータごとに時間の長さが異なるデータの時系列が得られる。また、1つの観測された状態に対しても、履歴パラメータ210の履歴時間が異なる場合もある。
【0131】
履歴抽出部133は、取得した各タイムステップの状態を時間の順序の昇順又は降順でソートし、1つのリストを生成する(S1104)。履歴抽出部133は、2次元配列や、スカラー、1次元ベクトルなどの様々な情報の組を各リストのIDとともにリストに格納する。なお、時刻ごとにリストのIDが異なるものとする。履歴抽出部133は、例えば、エージェントごとにリストを作成する。作成されたリストは、例えば、補助記憶装置802に格納される。
【0132】
なお、このリストには、履歴時間が互いに異なるパラメータが格納されるため、パラメータによっては履歴データにおいて一部の時刻の値が欠損するが、当該欠損している値としてNANや空欄などが格納されればよい。従って、ステップS1104で生成されるリストは履歴パラメータ210内の履歴時間のうち最大のタイムステップ数分のIDが生成される。
【0133】
履歴抽出部133は、現タイムステップにおいて、エージェント情報リスト204に含まれる全てのエージェントを選択したかを判定する(S1105)。履歴抽出部133は、現タイムステップにおいて、エージェント情報リスト204に含まれる全てのエージェントを選択したと判定した場合(S1105;YES)、
図11の処理を終了する。履歴抽出部133は、現タイムステップにおいて、エージェント情報リスト204に含まれるエージェントのうち未選択のエージェントがあると判定した場合(S1105:NO)、ステップS1101に戻る。
【0134】
<敵対物抽出部134による処理>
図12は、敵対物抽出部134による処理の一例を示すフローチャートである。
図12は、ステップS907の一部の処理の具体例を示す。
【0135】
敵対物抽出部134は、エージェント情報リスト204に含まれるエージェントのうち、現シミュレーションタイムステップで未選択のエージェントを1つ選択する(S1201)。敵対物抽出部134は、履歴抽出部133が取得した過去から現在のタイムステップ分の、ステップS1201で選択したエージェントによる観測情報(ステップS1103で履歴抽出部133が推定した観測範囲外の情報も含む)を含むリストである履歴データリストを取得する(S1202)。
【0136】
敵対物抽出部134は、ステップS1202で取得した、過去を含む観測状態のリストである履歴データリストにおいて、敵対物情報リスト205に含まれる敵対物ごとに、状態の時系列変化を抽出し、抽出した態の遷移情報である時系列データを軌跡として算出する(S1203)。
【0137】
敵対物抽出部134は、現タイムステップにおいて、エージェント情報リスト204に含まれる全てのエージェントが選択されたかを判定する(S1204)。敵対物抽出部134は、現タイムステップにおいて、エージェント情報リスト204に含まれる全てのエージェントが選択されたと判定した場合(S1204:YES)、
図12の処理を終了する。敵対物抽出部134は、現タイムステップにおいて、エージェント情報リスト204に含まれるエージェントのうち未選択のエージェントがあると判定した場合(S1204:NO)、ステップS1201に戻る。
【0138】
<乱雑度推定部104による処理>
図13は、乱雑度推定部104による処理の一例を示すフローチャートである。
図13は、ステップS908の処理の具体例を示す。
【0139】
乱雑度推定部104は、エージェント情報リスト204に含まれるエージェントのうち、現シミュレーションタイムステップで選択されていないエージェントを1つ選択する(S1301)。乱雑度推定部104は、敵対物抽出部124が、選択したエージェントの観測情報(ステップS1103で履歴抽出部133が推定した観測範囲外の情報も含む)から抽出した各敵対物の軌跡情報を取得する(S1302)。
【0140】
乱雑度推定部104は、ステップS1302で取得した各敵対物の軌跡の各パラメータの変化量に基づいて、各敵対物について選択中のエージェントに及ぼす乱雑度を算出し、さらに選択中のエージェントの観測範囲内の全敵対物の当該乱雑度を合算することで、当該エージェントが全敵対物から及ぼされる乱雑度1を算出する(S1303)。
【0141】
乱雑度推定部104は、前述したように、各敵対物についての当該乱雑度を加算することで当該合算処理を実行してもよいし、当該合算処理において引算などの別の四則演算を使用してもよい。また、乱雑度推定部104は、前述したように、当該合算処理において、各パラメータに対応するする重み(個別)を適用してもよいし、各パラメータの時刻に応じて割引率(個別)を適用してもよい。
【0142】
乱雑度推定部104は、敵対物のペアごとの軌跡間の各タイムステップにおける差を算出し、算出した差を合算することで、選択中にエージェントに敵対物が及ぼす乱雑度2を算出する(S1304)。
【0143】
乱雑度推定部104は、前述したように、算出した差を加算することで、当該差の合算処理を実行してもよいし、当該差の合算処理において引算などの別の四則演算を使用してもよい。また、乱雑度推定部104は、前述したように、算出した差の合算処理において、各パラメータに対応するする重み(全体)を適用してもよいし、各パラメータの時刻に応じて割引率(全体)を適用してもよい。
【0144】
乱雑度推定部104は、乱雑度重みパラメータ213が示す個別の重みを掛けた乱雑度1と、乱雑度重みパラメータ213が示す全体の重みを掛けた乱雑度2と、を合算する(S1305)。なお、乱雑度推定部104は、当該合算処理において加算以外の四則演算を用いてもよい。
【0145】
乱雑度推定部104は、現タイムステップにおいて、エージェント情報リスト204に含まれる全てのエージェントを選択したかを判定する(S1306)。乱雑度推定部104は、現タイムステップにおいて、エージェント情報リスト204に含まれる全てのエージェントを選択したと判定した場合(S1306:YES)、
図13の処理を終了する。乱雑度推定部104は、現タイムステップにおいて、エージェント情報リスト204に含まれるエージェントのうち未選択のエージェントがあると判定した場合(S1306:NO)、ステップS1301に戻る。
【0146】
<乱雑度1の算出処理>
図14は、乱雑度1の算出処理の一例を示すフローチャートである。
図14は、ステップS1301で選択中のエージェントに対するステップS1303の処理の具体例を示す。
【0147】
乱雑度推定部104は、選択中のエージェントの観測情報(ステップS1103で履歴抽出部133が推定した観測範囲外の情報も含む)に対応する各敵対物の軌跡を取得する(S1401)。乱雑度推定部104は、乱雑度1と軌跡の変化量を(例えば0に)初期化する(S1402)。乱雑度推定部104は、ステップS1401で軌跡が取得できた敵対物のうち軌跡の変化量を算出していない敵対物を1つ選択する(S1403)。
【0148】
乱雑度推定部104は、各パラメータについて選択した敵対物の軌跡の過去から1タイムステップごとの軌跡に含まれる当該パラメータの変化量を算出する。さらに、乱雑度推定部104は、タイムステップごとにリストのIDを付与し、各時刻における各パラメータの変化量を格納したリストを作成する(S1404)。1つのリストのIDには、当該タイムステップでの乱雑度1の算出に使用されるパラメータの値が組として対応する。また、各パラメータの履歴時間に応じて、1つのパラメータが複数のリストのIDに対応することもある。なお、軌跡の変化量は絶対値を用いて算出されてもよいし、正又は負の値をとる差として算出されてもよい。
【0149】
乱雑度推定部104は、重みパラメータ個別211内の割引率(個別)を変化量のリストにおける時刻に応じて変化量に掛けた上で(例えば、N個前のタイムステップの変化量には割引率のN乗を掛ける)、リストに含まれる軌跡の変化量を合算する(S1405)。当該合算処理は、例えば四則演算を用いて行われ、加算が行われてもよいし他の計算でも行われてもよい。さらに、ステップS1405において、乱雑度推定部104は、パラメータごとに算出された軌跡の変化量に、対応する重みパラメータ個別211内の重み(個別)を掛けた上で、各パラメータの軌跡の変化量を合算する。当該合算処理は、例えば四則演算を用いて行われ、加算が行われてもよいし他の計算でも行われてもよい。
【0150】
乱雑度推定部104は、ステップS1405で算出した軌跡の変化量を乱雑度1に加算する(S1406)。乱雑度推定部104は、選択中のエージェントについて軌跡情報がある全ての敵対物を選択したかを判定する(S1407)。乱雑度推定部104は、選択中のエージェントについて軌跡情報がある全ての敵対物を選択したと判定した場合(S1407:YES)、
図14の処理を終了する。乱雑度推定部104は、選択中のエージェントについて軌跡情報がある敵対物のうち未選択の敵対物があると判定した場合(S1407:NO)、ステップS1403に戻る。
【0151】
ステップS1403~ステップS1407が、選択中のエージェントについての各敵対物について実行されることにより、選択中のエージェントについての全ての敵対物の差異量が乱雑度1として合算される。
【0152】
<乱雑度2の算出処理>
図15は、乱雑度2の算出処理の一例を示すフローチャートである。
図15は、ステップS1301で選択中のエージェントに対するステップS1304の処理の具体例を示す。
【0153】
乱雑度推定部104は、選択中のエージェントの観測情報(ステップS1103で履歴抽出部133が推定した観測範囲外の情報も含む)に対応する各敵対物の軌跡を取得する(S1501)。乱雑度推定部104は、乱雑度2と軌跡間の差異量を(例えば0に)初期化する(S1502)。
【0154】
乱雑度推定部104は、選択中のエージェントの観測情報に対応する敵対物のうち、敵対物1として未選択の敵対物を1つ選択し、選択した敵対物を敵対物1とラベル付けする(S1503)。乱雑度推定部104は、敵対物1の軌跡に対し軌跡間の差異を算出していない敵対物を1つ選択し、当該選択した敵対物を敵対物2とラベル付けする(S1504)。
【0155】
乱雑度推定部104は、敵対物1と敵対物2の軌跡の各パラメータに対して差異を過去から現在まで算出し、各タイムステップに対応するリストのIDを生成し、各時刻での軌跡のパラメータの差異量を格納したリストを作成する(S1504)。
1つのリストのIDには、当該タイムステップでの乱雑度2の算出に使用されるパラメータの値が組として対応する。また、各パラメータの履歴時間に応じて、1つのパラメータが複数のリストのIDに対応することもある。なお、軌跡の差異量は絶対値を用いて算出されてもよいし、正又は負の値をとる差として算出されてもよい。
【0156】
乱雑度推定部104は、重みパラメータ全体212内の割引率(全体)を変化量のリストの各時刻に相当するIDの組にかけ、リストにある軌跡の差異量を合算する。ここで、合算は四則演算であり、加算でも他の算出方法でも良い。
【0157】
乱雑度推定部104は、重みパラメータ個別211内の割引率(全体)を差異量のリストにおける時刻に応じて差異量に掛けた上で(例えば、N個前のタイムステップの差異量には割引率のN乗を掛ける)、リストに含まれる軌跡の差異量を合算する(S1506)。当該合算処理は、例えば四則演算を用いて行われ、加算が行われてもよいし他の計算でも行われてもよい。
【0158】
乱雑度推定部104は、選択中の敵対物1に対して、選択中のエージェントについて軌跡のある全ての敵対物との間の軌跡の差異を算出したかを判定する(S1507)。乱雑度推定部104は、選択中のエージェントについて軌跡のある敵対物のうち、選択中の敵対物1との間の軌跡の差異を算出していない敵対物があると判定した場合(S1507:NO)、ステップS1504に戻る。
【0159】
乱雑度推定部104は、選択中の敵対物1に対して、選択中のエージェントについて軌跡のある全ての敵対物との間の軌跡の差異を算出したと判定した場合(S1507:YES)、直前のステップS1506で算出した軌跡の差異量を乱雑度2に加算する(S1508)。
【0160】
乱雑度推定部104は、選択中のエージェントに対して軌跡情報がある全ての敵対物が敵対物1として選択されたかを判定する(S1509)。乱雑度推定部104は、選択中のエージェントに対して軌跡情報が敵対物のうち敵対物1として選択されていない敵対物があると判定した場合(S1509:NO)、ステップS1503に戻る。
【0161】
乱雑度推定部104は、選択中のエージェントに対して軌跡情報がある全ての敵対物が敵対物1として選択されたと判定した場合(S1509:YES)、ステップS1508で算出された乱雑度2はダブルカウントされているため、乱雑度2を2で割って出力し、
図15の処理を終了する。
【0162】
なお、乱雑度推定部104は、敵対物1と敵対物2の組み合わせを重複しないように生成し、当該組み合わせごとにステップS1505、ステップS1506、及びステップS1508の処理を実行すれば、乱雑度2をダブルカウントすることがないため、ステップS1510の処理を省略することができる。
【0163】
以上説明したように、本実施例によれば、ジレンマ推定装置100は、敵対物がエージェントに及ぼすジレンマの連続変化を観測でき、観測したジレンマを考慮した施策を立案することができる。
【0164】
特に、乱雑度1によって各敵対物が個々にエージェントに及ぼすジレンマを推定することができ、乱雑度2によって複数の敵対物の組み合わせがエージェントに及ぼすジレンマを推定することができる。従って、本実施例のジレンマ推定装置100は、乱雑度1と乱雑度2とを統合したジレンマを算出することにより、個々の敵対物によるジレンマ、及び複数の敵対物の組み合わせによるジレンマの双方を考慮することができる。なお、本実施例では、乱雑度1と乱雑度2との双方を用いてジレンマ(統合した乱雑度)が算出される例を説明したが、乱雑度1又は乱雑度2との一方のみを用いて(つまり他方を算出及び考慮することなく)ジレンマが算出されてもよい。
本実施例では、エージェントは巡視船であり、敵対物は不審船である。不審船が領海侵入を試みており、エージェントは不審船による領海侵入を防ぐ必要があり、不審船から脅威を受けている。敵対物が領海に侵入した場合は、エージェントのスコアが大きく下がるものとする。
データ1631には、例えば、現在までのシミュレーションの試行回数を示すエピソード、現在までのタイムステップ、エージェントのパラメータ(位置、速度方向、及び速度の大きさ等)、エージェントが観測した敵対物のパラメータ、及び乱雑度推定部104が推定したジレンマなどの状態と、が格納されている(一部図示を省略している)。
履歴抽出部133が、履歴データを抽出する際は、各パラメータについて、現在のエピソードの現在のタイムステップから当該パラメータに対応する(履歴パラメータ210が示す)履歴時間分のステップ分の当該パラメータの値を取得する。
軌跡1641、軌跡1642、及び軌跡1643は、それぞれ、敵対物E1、敵対物E2、及び敵対物E3の速度ベクトルの軌跡を示す。また、軌跡1651、軌跡1652、及び軌跡1653は、それぞれ、エージェント1611、エージェント1612、及びエージェント1613の速度ベクトルの軌跡を示す。
なお、敵対物の位置の軌跡の算出においては、敵対物の位置そのものが用いられてもよいし、エージェントから敵対物までの距離が用いられてもよいし、エージェントと敵対物を結んだ直線と所定の基準線(例えば水平方向又は鉛直方向)との角度が示す方向が用いられてもよい。また、位置や速度などの情報は絶対的な値であってもよいし、対象のエージェントに対する相対的な値であってもよいし、特定の座標からの相対的な値であってもよい。
なお、敵対物の位置の軌跡を用いて乱雑度2が算出される場合、複数の敵対物の位置が隣接していると、敵対物間の軌跡の差異に基づく乱雑度2は小さくなる。敵対物とエージェントとの距離を使用して算出された軌跡が用いられる場合、方向の違いによる軌跡の差異が考慮されないため、別途敵対物との方向を示す軌跡を考慮して、乱雑度2を算出してもよい。位置の軌跡は、速度の軌跡と類似する傾向を示すため、位置の軌跡の変化又は速度の軌跡の変化を軽視又は無視するよう、重みパラメータ個別211を設定されていてもよい。
また、敵対物の種類の軌跡が算出されてもよい。前述したように、エージェント1611の観測範囲1602に含まれる敵対物のうち、敵対物E1と敵対物E2が同一の種類の船であり、敵対物E3は異なる種類の船である。例えば、敵対物E1と敵対物E2が偽装漁船であり、敵対物E3が駆逐艦である。
敵対物の種類の軌跡は、各時刻で1602内にいる敵対物の種類の変化を算出しても良いが、種類については変化しない場合がある。このような場合、乱雑度1を算出する際に、履歴パラメータ210の履歴時間を0とすることで、現在のステップの艦種を考慮した乱雑度1を算出することができる。また、履歴時間を0とすることで、乱雑度2の軌跡の差異では、種類が異なると1,種類が同じで0とし、艦種の種類数で乱雑度2を見積もってもよい。
なお、上記した以外のパラメータを使用して乱雑度が算出されてもよい。例えば、船の武力などのパラメータが観測できる場合は、各敵対物の武力の軌跡に基づいて、乱雑度1及び乱雑度2が算出されてもよい。
本実施例によれば、巡視船による不審船威圧シミュレーションにおける巡視船のジレンマを算出することができるため、巡視船に及ぼすジレンマを下げる、例えば、巡視船のスコアが上昇する(不審船による領海侵入を抑制する)ための施策パラメータ学習を効果的に行うことができる。