(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-12-04
(45)【発行日】2023-12-12
(54)【発明の名称】制御装置、制御システム、及びプログラム
(51)【国際特許分類】
G06Q 10/00 20230101AFI20231205BHJP
【FI】
G06Q10/00
(21)【出願番号】P 2021554479
(86)(22)【出願日】2019-11-06
(86)【国際出願番号】 JP2019043537
(87)【国際公開番号】W WO2021090413
(87)【国際公開日】2021-05-14
【審査請求日】2022-04-01
(73)【特許権者】
【識別番号】000004226
【氏名又は名称】日本電信電話株式会社
(74)【代理人】
【識別番号】100107766
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100124844
【氏名又は名称】石原 隆治
(72)【発明者】
【氏名】清水 仁
(72)【発明者】
【氏名】岩田 具治
【審査官】田川 泰宏
(56)【参考文献】
【文献】特開2019-082809(JP,A)
【文献】特開2017-162385(JP,A)
【文献】国際公開第2018/110305(WO,A1)
【文献】CHU, Tianshu et al.,Multi-Agent Deep Reinforcement Learning for Large-Scale Traffic Signal Control,IEEE Transactions Intelligent Transaction Systems,IEEE,2019年03月15日,p.1-10
【文献】水上 直紀,報酬が疎な環境に適した深層強化学習法,情報処理学会 論文誌(ジャーナル),日本,情報処理学会,2019年03月15日,第60巻,第3号,p.956-966
【文献】佐藤 聖,人工知能アルゴリズム大百科,Interface,日本,CQ出版株式会社,2019年02月01日,第45巻,第2号,p.30~59
(58)【調査した分野】(Int.Cl.,DB名)
G06Q 10/00-99/00
(57)【特許請求の範囲】
【請求項1】
A2Cにおけるエージェントの制御ステップt毎に、シミュレータ上
で出発地から目的地までの人流に関する交通状況を観測した状態s
tを用いて、前記人流を制御するための行動a
tを方策πに従って選択する制御手段と、
前記方策πの下で前記状態s
tにおいて前記行動a
tを選択することの価値を表す行動価値関数と、前記方策πの下で前記状態s
tの価値を表す状態価値関数とで表されるアドバンテージ関数を実現するニューラルネットワークのパラメータを学習する学習手段と、
を有
し、
前記行動a
t
は、前記目的地に入るために設置された複数のゲートの開閉パターンを表す制御策であり、
前記行動a
t
により前記複数のゲートの開閉を制御した場合における移動体数を、前記複数のゲートの全てが常に開いているとした場合における移動体数で正規化した値を報酬r
t+1
として、
前記行動価値関数は、割引された前記報酬r
t+1
のkステップ先までの和と割引された前記状態価値関数との和で表される、ことを特徴とする制御装置。
【請求項2】
前記パラメータを学習するための損失関数は、前記状態価値関数に関する損失関数と、前記行動価値関数に関する損失関数と、前記学習の初期での乱雑性を考慮した項との和で表され、
前記学習手段は、
各制御ステップtで前記損失関数によって計算された損失を用いて、誤差逆伝播法により前記パラメータを学習する、ことを特徴とする請求項
1に記載の制御装置。
【請求項3】
前記制御手段は、
更に、制御ステップt毎に、実環境
上の人流に関する交通状況を観測したs
tと、前記学習手段により学習されたパラメータとを用いて、前記方策πに従って前記行動a
tを選択する、ことを特徴とする請求項1
又は2に記載の制御装置。
【請求項4】
A2Cにおけるエージェントの制御ステップt毎に、シミュレータ上
で出発地から目的地までの人流に関する交通状況を観測した状態s
tを用いて、前記人流を制御するための行動a
tを方策πに従って選択する制御手段と、
前記方策πの下で前記状態s
tにおいて前記行動a
tを選択することの価値を表す行動価値関数と、前記方策πの下で前記状態s
tの価値を表す状態価値関数とで表されるアドバンテージ関数を実現するニューラルネットワークのパラメータを学習する学習手段と、
を有
し、
前記行動a
t
は、前記目的地に入るために設置された複数のゲートの開閉パターンを表す制御策であり、
前記行動a
t
により前記複数のゲートの開閉を制御した場合における移動体数を、前記複数のゲートの全てが常に開いているとした場合における移動体数で正規化した値を報酬r
t+1
として、
前記行動価値関数は、割引された前記報酬r
t+1
のkステップ先までの和と割引された前記状態価値関数との和で表される、ことを特徴とする制御システム。
【請求項5】
コンピュータを、請求項1乃至
3の何れか一項に記載の制御装置における各手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、制御装置、制御システム、及びプログラムに関する。
【背景技術】
【0002】
交通・人流分野では、機械学習の手法を用いて、シミュレータ上で移動体(例えば、車両や人等)の最適な制御策を決定することが従来から行われている。例えば、人流シミュレータ上で最適な人流誘導を行うためのパラメータを得ることができる技術が知られている(例えば、特許文献1参照)。また、例えば、交通シミュレータ上で最適な交通信号制御を行うためのパラメータを得ることができる技術が知られている(例えば、特許文献2参照)。更に、シミュレータ上の交通状況に応じて、交通信号機や車両等の最適な制御策を強化学習の手法によって決定することができる技術が知られている(例えば、特許文献3参照)。
【先行技術文献】
【特許文献】
【0003】
【文献】特開2018-147075号公報
【文献】特開2019-82934号公報
【文献】特開2019-82809号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、例えば、特許文献1及び2に記載されている技術は交通状況が所与の場合には有効である一方で、交通状況が未知の場合には適用できなかった。また、例えば、特許文献3に記載されている技術では、強化学習で制御策を決定する際のモデルや報酬が人流に対しては適切ではなく、人流に対する制御策の精度が低い場合があった。
【0005】
本発明の実施形態は、上記の点に鑑みてなされたもので、交通状況に応じて、人流に対する最適な制御策を得ることを目的とする。
【課題を解決するための手段】
【0006】
上記目的を達成するため、本実施形態に係る制御装置は、A2Cにおけるエージェントの制御ステップt毎に、シミュレータ上の人流に関する交通状況を観測した状態stを用いて、前記人流を制御するための行動atを方策πに従って選択する制御手段と、前記方策πの下で前記状態stにおいて前記行動atを選択することの価値を表す行動価値関数と、前記方策πの下で前記状態stの価値を表す状態価値関数とで表されるアドバンテージ関数を実現するニューラルネットワークのパラメータを学習する学習手段と、を有することを特徴とする。
【発明の効果】
【0007】
交通状況に応じて、人流に対する最適な制御策を得ることができる。
【図面の簡単な説明】
【0008】
【
図1】本実施形態に係る制御システムの全体構成の一例を示す図である。
【
図2】本実施形態に係る制御装置のハードウェア構成の一例を示す図である。
【
図3】本実施形態に係る行動価値関数及び状態価値関数を実現するニューラルネットワークの一例を示す図である。
【
図4】本実施形態に係る学習処理の一例を示すフローチャートである。
【
図5】シミュレータと学習との関係の一例を説明するための図である。
【
図6】本実施形態に係るシミュレーション処理の一例を示すフローチャートである。
【
図7】本実施形態に係るシミュレータ上での制御処理の一例を示すフローチャートである。
【
図8】本実施形態に係る実制御処理の一例を示すフローチャートである。
【
図11】移動体数と旅行時間との関係の一例を示す図である。
【発明を実施するための形態】
【0009】
以下、本発明の実施形態について説明する。本実施形態では、人流を対象として、シミュレータ上で様々な交通状況における制御策を強化学習により学習することで、実制御時(つまり、実際の実環境での制御時)の交通状況に応じた最適な制御策を得ることが可能な制御装置10を含む制御システム1について説明する。
【0010】
ここで、制御策とは、人流を制御するための手段のことであり、例えば、目的地の入口までの経路のうち一部の道路の通行を規制したり、目的地への入口を開閉したりすること等がある。また、最適な制御策とは、人流誘導を評価するための所定の評価値(例えば、目的地の入口までの旅行時間や各道路上の人数等)を最適化する制御策のことである。なお、以降では、人流を構成する人の各々を移動体と表す。ただし、移動体は人に限られず、人と同様に移動する対象であれば任意の対象を移動体とすることができる。
【0011】
<全体構成>
まず、本実施形態に係る制御システム1の全体構成について、
図1を参照しながら説明する。
図1は、本実施形態に係る制御システム1の全体構成の一例を示す図である。
【0012】
図1に示すように、本実施形態に係る制御システム1には、制御装置10と、1以上の外部センサ20と、指示装置30とが含まれる。また、制御装置10と、各外部センサ20及び指示装置30とは任意の通信ネットワークを介して通信可能に接続される。
【0013】
外部センサ20は、道路等に設置され、実際の交通状況をセンシングしてセンサ情報を生成するセンシング機器である。なお、センサ情報としては、例えば、道路等を撮影した画像情報等が挙げられる。
【0014】
指示装置30は、制御装置10からの制御情報に基づいて、人流を制御するための通行規制等を指示する装置である。このような指示としては、例えば、目的地の入口までの経路のうち特定の道路の通行を規制する指示、目的地の入口の一部を開閉する指示等が挙げられる。なお、指示装置30は、交通整理や入口の開閉等を行う人が所持する端末等に当該指示を行ってもよいし、交通信号機や入口の開閉を制御する装置等に当該指示を行ってもよい。
【0015】
制御装置10は、実制御の前に、シミュレータ上で様々な交通状況における制御策を強化学習により学習する。また、制御装置10は、実制御時に、外部センサ20から取得したセンサ情報に対応する交通状況に応じて制御策を選択し、この選択した制御策に基づく制御情報を指示装置30に送信する。これにより、実制御時に人流が制御される。
【0016】
ここで、本実施形態では、シミュレータ上の交通状況をエージェントが観測する状態s、制御策をエージェントが選択及び実行する行動aとして、学習時には、制御策を出力する関数(この関数は方策πと呼ばれる。)を学習し、実制御時には、学習済みの方策πにより交通状況に応じた制御策を選択することを目的とする。また、人流に対する最適な制御策を学習するために、本実施形態では、深層強化学習のアルゴリズムの1つであるA2C(Advantage Actor-Critic)を用いると共に、報酬rとして、制御策が選択及び実行されなかった場合の移動体数で道路上の移動体数を正規化した値を用いる。
【0017】
ところで、様々な方策πのうち、最適な制御策を出力する最適方策π*は、現在から将来にわたって得られる累積報酬の期待値を最大化する方策のことである。この最適方策π*は、現在から将来にわたって得られる累積報酬の期待値を表す価値関数のうち、その期待値を最大化する行動を出力する関数で表すことができる。また、価値関数はニューラルネットワークで近似できることが知られている。
【0018】
そこで、本実施形態では、シミュレータ上で価値関数のパラメータ(つまり、価値関数を近似するニューラルネットワークのパラメータ)を学習することで、最適な制御策を出力する最適方策π*を得るものとする。
【0019】
このために、本実施形態に係る制御装置10は、シミュレーション部101と、学習部102と、制御部103と、シミュレーション設定情報記憶部104と、価値関数パラメータ記憶部105とを有する。
【0020】
シミュレーション設定情報記憶部104は、シミュレーション設定情報を記憶する。シミュレーション設定情報とは、シミュレーション部101がシミュレーション(人流シミュレーション)を行うために必要な設定情報のことである。シミュレーション設定情報には、例えば、道路を表すリンクと交差点や分岐点等を表すノードとで構成される道路ネットワークを示す情報、移動体の総数、各移動体の出発地及び目的地、各移動体の出現時刻、各移動体の最大速度等が含まれる。
【0021】
価値関数パラメータ記憶部105は、価値関数パラメータを記憶する。ここで、価値関数には行動価値関数Qπ(s,a)と状態価値関数Vπ(s)とがあり、価値関数パラメータ記憶部105は、価値関数パラメータとして、行動価値関数Qπ(s,a)のパラメータと、状態価値関数Vπ(s)のパラメータとを記憶する。行動価値関数Qπ(s,a)のパラメータとは、当該行動価値関数Qπ(s,a)を実現するニューラルネットワークのパラメータのことである。同様に、状態価値関数Vπ(s)のパラメータとは、当該状態価値関数Vπ(s)を実現するニューラルネットワークのパラメータのことである。なお、行動価値関数Qπ(s,a)は、方策πの下で、状態sにおいて行動aを選択することの価値を表す。一方、状態価値関数Vπ(s)は、方策πの下で、状態sの価値を表す。
【0022】
シミュレーション部101は、シミュレーション設定情報記憶部104に記憶されているシミュレーション設定情報を用いて、シミュレーション(人流シミュレーション)を実行する。
【0023】
学習部102は、シミュレーション部101によるシミュレーション結果を用いて、価値関数パラメータ記憶部105に記憶されている価値関数パラメータを学習する。
【0024】
制御部103は、学習時にはシミュレータ上の交通状況に応じた行動a(つまり、制御策)を選択及び実行する。このとき、制御部103は、学習が完了していない価値関数パラメータが設定された価値関数で表される方策πに従って行動aを選択及び実行する。
【0025】
また、制御部103は、実制御時には実環境の交通状況に応じた行動aを選択及び実行する。このとき、制御部103は、学習済みの価値関数パラメータが設定された価値関数で表される方策πに従って行動aを選択及び実行する。
【0026】
なお、
図1に示す制御システム1の全体構成は一例であって、他の構成であってもよい。例えば、学習時の制御装置10と実制御時の制御装置10とが異なる装置で実現されていてもよい。また、複数台の指示装置30が制御システム1に含まれていてもよい。
【0027】
<ハードウェア構成>
次に、本実施形態に係る制御装置10のハードウェア構成について、
図2を参照しながら説明する。
図2は、本実施形態に係る制御装置10のハードウェア構成の一例を示す図である。
【0028】
図2に示すように、本実施形態に係る制御装置10は、入力装置201と、表示装置202と、外部I/F203と、通信I/F204と、プロセッサ205と、メモリ装置206とを有する。これら各ハードウェアは、それぞれがバス207を介して通信可能に接続されている。
【0029】
入力装置201は、例えば、キーボードやマウス、タッチパネル等である。表示装置202は、例えば、ディスプレイ等である。なお、制御装置10は、入力装置201及び表示装置202のうちの少なくとも一方を有していなくてもよい。
【0030】
外部I/F203は、外部装置とのインタフェースである。外部装置には、記録媒体203a等がある。制御装置10は、外部I/F203を介して、記録媒体203aの読み取りや書き込み等を行うことができる。記録媒体203aには、例えば、制御装置10が有する各機能部(シミュレーション部101、学習部102及び制御部103等)を実現する1以上のプログラムが格納されていてもよい。
【0031】
なお、記録媒体203aには、例えば、CD(Compact Disc)、DVD(Digital Versatile Disk)、SDメモリカード(Secure Digital memory card)、USB(Universal Serial Bus)メモリカード等がある。
【0032】
通信I/F204は、制御装置10を通信ネットワークに接続するためのインタフェースである。制御装置10は、通信I/F204を介して、外部センサ20からセンサ情報を取得したり、指示装置30に対して制御情報を送信したりすることができる。なお、制御装置10が有する各機能部を実現する1以上のプログラムは、通信I/F204を介して、所定のサーバ装置等から取得(ダウンロード)されてもよい。
【0033】
プロセッサ205は、例えば、CPU(Central Processing Unit)やGPU(Graphics Processing Unit)等の各種演算装置である。制御装置10が有する各機能部は、メモリ装置206等に格納されている1以上のプログラムがプロセッサ205に実行させる処理により実現される。
【0034】
メモリ装置206は、例えば、HDD(Hard Disk Drive)やSSD(Solid State Drive)、RAM(Random Access Memory)、ROM(Read Only Memory)、フラッシュメモリ等の各種記憶装置である。シミュレーション設定情報記憶部104や価値関数パラメータ記憶部105は、例えば、メモリ装置206を用いて実現可能である。なお、シミュレーション設定情報記憶部104や価値関数パラメータ記憶部105は、例えば、制御装置10と通信ネットワークを介して接続される記憶装置やデータベースサーバ等により実現されていてもよい。
【0035】
本実施形態に係る制御装置10は、
図2に示すハードウェア構成を有することにより、後述する学習処理及び実制御処理を実現することができる。なお、
図2に示すハードウェア構成は一例であって、制御装置10は、他のハードウェア構成を有していてもよい。例えば、制御装置10は、複数のプロセッサ205を有していてもよいし、複数のメモリ装置206を有していてもよい。
【0036】
<実施例の設定>
ここで、本実施形態の一実施例を設定する。
【0037】
≪シミュレーションの設定≫
人流を制御する実環境に合致するように、本実施形態では、シミュレーション環境をシミュレーション設定情報により次のように設定する。
【0038】
まず、道路ネットワークには314本の道路で構成されているものとする。また、移動体の出発地(例えば、駅の出口等)は6箇所、目的地(例えば、イベント会場等)は1箇所とし、各移動体の各々は、予め設定されたシミュレーション時刻(出現時刻)に、6箇所の出発地のうち、予め設定されたいずれかの出発地から目的地に向かって移動を開始するものとする。このとき、各移動体は、シミュレーション時刻毎に、交通状況に応じて算出された速度で、最短経路で現在地から目的地の入口まで移動するものとする。以降では、シミュレーション時刻をτ=0,1,・・・,τ´で表す。なお、τ´はシミュレーションの終了時刻である。
【0039】
また、目的地には、この目的地に入るための入口(ゲート)が6箇所あり、少なくとも5つ以上のゲートが開いているものとする。そして、本実施形態は、予め設定されたインターバルΔ毎に、このゲートの開閉をエージェントによって制御することで、人流を制御するものとする(つまり、制御策は6箇所のゲートの開閉パターンを表す。)。以降では、エージェントがゲートの開閉を制御する周期(制御ステップ。以降、単に「ステップ」とも表す。)をtで表す。また、以降では、τ=0,Δ,2×Δ,・・・,T×Δ(ただし、Tは、T×Δ≦τ´を満たす最大の自然数)のときにエージェントがゲートの開閉を制御するものとして、τ=0,Δ,2×Δ,・・・,T×Δをそれぞれt=0,1,2,・・・,Tと表す。
【0040】
なお、ゲートは6箇所あり、少なくとも5つ以上のゲートが開いているものとすることから、ゲートの開閉パターンは7種類である。
【0041】
≪強化学習における各種設定≫
本実施形態では、強化学習における状態sや報酬r、各種関数等を次のように設定する。
【0042】
まず、ステップtにおける状態stは、過去4ステップにおける各道路上に存在する移動体数であるものとする。したがって、状態stは314×4次元のデータで表される。
【0043】
また、ステップtにおける報酬rtは全移動体の旅行時間(つまり、出発地から目的地の入口までの移動時間)の和の最小化を目標に決定する。そこで、報酬rが取り得る値の範囲を[-1,1]として、ステップtにおける報酬rtを以下の式(1)のように設定する
【0044】
【数1】
ただし、N
open(t)=0かつN
s(t)>0の場合はr
t=-1とし、N
open(t)=0かつN
s(t)=0の場合はr
t=0とする。
【0045】
ここで、Nopen(t)は、全てのゲートが常に開いているとした場合、ステップtにおいて各道路上に存在する移動体数の和である。また、Ns(t)は、ステップtにおいて各道路上に存在する移動体数の和である。
【0046】
なお、上記の式(1)の(Nopen(t)-Ns(t))/Nopen(t)は、制御策が選択及び実行されず、全てのゲートが常に開いているとした場合に各道路上に存在する移動体数の和で、ステップtにおける各道路上に存在する移動体数の和を正規化したものである。
【0047】
また、A2Cに用いられるAdvantage関数を行動価値関数Qπと状態価値関数Vπとの差として定義すると共に、行動価値関数Qπ及び状態価値関数Vπの両方を計算することを避けるために行動価値関数Qπは割引報酬と割引された状態関数Vπとの和を利用する。すなわち、Advantage関数Aπを以下の式(2)と設定する。
【0048】
【数2】
ここで、kは、Advanced stepである。なお、上記の式(2)の中括弧内が割引報酬と割引された状態関数V
πとの和であり、行動価値関数Q
πに該当する。
【0049】
上記の式(2)によりkステップ先までまとめてAdvantage関数の推定値Aπ(s)が更新される。
【0050】
また、価値関数を実現するニューラルネットワークのパラメータを学習(更新)するための損失関数を以下の式(3)と設定する。
【0051】
【数3】
ここで、π
θは、価値関数を実現するニューラルネットワークのパラメータがθであるときの方策である。また、上記の式(3)の第2項のEは行動についての期待値を表す。なお、上記の式(3)の第1項はA2CにおけるActorとCriticの価値関数を整合させる(つまり、行動価値関数Q
πと状態価値関数V
πを整合させる)ための損失関数を表し、第2項はAdvantage関数A
πを最大化するための損失関数を表す。また、第3項は学習初期での乱雑性を考慮した項(この項の導入により局所解に陥ってしまう事態を回避することが可能になる。)である。
【0052】
また、行動価値関数Q
π及び状態価値関数V
πを実現するニューラルネットワークは、
図3に示すニューラルネットワークであるものとする。すなわち、314×4次元の状態sを入力する入力層と、100次元の第1中間層と、100次元の第2中間層と、ゲートの開閉パターンを出力する7次元の第1出力層と、状態価値関数V
π(s)の推定値を出力する1次元の第2出力層とで構成されるニューラルネットワークで行動価値関数Q
π及び状態価値関数V
πが実現されているものとする。
【0053】
ここで、入力層と第1中間層と第2中間層と第1出力層とで行動価値関数Qπが実現され、入力層と第1中間層と第2中間層と第2出力層とで状態価値関数Vπが実現されている。言い換えれば、行動価値関数Qπ及び状態価値関数Vπは、それぞれ一部を共有するニューラルネットワークにより実現されている。
【0054】
なお、例えば、7種類のゲートの開閉パターンのそれぞれを表す行動をa=1~a=7とした場合、第1出力層から出力される7次元のデータは、(Qπ(s=st,a=1),Qπ(s=st,a=2),・・・,Qπ(s=st,a=7))となる。
【0055】
<学習処理>
次に、シミュレータ上で価値関数パラメータθを学習するための学習処理について、
図4を参照しながら説明する。
図4は、本実施形態に係る学習処理の一例を示すフローチャートである。
【0056】
まず、シミュレーション部101は、シミュレーション設定情報記憶部104に記憶されているシミュレーション設定情報を入力する(ステップS101)。なお、シミュレーション設定情報は、例えば、ユーザ等の操作によって予め作成され、シミュレーション設定情報記憶部104に記憶される。
【0057】
次に、学習部102は、価値関数パラメータ記憶部105に記憶されている価値関数パラメータθを初期化する(ステップS102)。
【0058】
続いて、シミュレーション設定情報記憶部104に記憶されているシミュレーション設定情報を用いて、シミュレーション時刻τ=0からτ=τ´までシミュレーション部101がシミュレーションを実行すると共に、ステップt毎に、制御部103がシミュレータ上の交通状況に応じた行動a(つまり、制御策)を選択及び実行する(ステップS103)。ここで、制御部103は、
図5に示すように、ステップt毎に、当該ステップtにおける行動a
tをエージェントにより選択及び実行すると共に、ステップt+1における状態s
t+1を観測し、報酬r
t+1を計算する。このステップS103においてシミュレーション部101が実行するシミュレーション処理と制御部103が実行する制御処理の詳細については後述する。なお、以降では、シミュレーション時刻τ=0からτ=τ´までのシミュレーションを1エピソードとする。
【0059】
次に、学習部102は、上記のステップS102におけるシミュレーション結果(1エピソードのシミュレーション結果)を用いて、価値関数パラメータ記憶部105に記憶されている価値関数パラメータθを学習する(ステップS104)。すなわち、学習部102は、例えば、当該エピソードの各ステップt(つまり、t=0,1,2,・・・,T)における損失(誤差)を上記の式(3)に示す損失関数により計算し、これらの誤差を用いた誤差逆伝播法により価値関数パラメータθを更新する。これにより、Aπが更新(すなわち、Qπ及びVπが同時に更新)される。
【0060】
次に、学習部102は、学習の終了条件を満たすか否かを判定する(ステップS105)。そして、終了条件を満たしていないと判定した場合、学習部102は、上記のステップS103に戻る。これにより、終了条件を満たすまで上記のステップS103~ステップS104が繰り返し実行され、価値関数パラメータθが学習される。学習の終了条件としては、例えば、上記のステップS103~ステップS104が所定の回数繰り返し実行されたこと(つまり、エピソードが所定の回数実行されたこと)等が挙げられる。
【0061】
なお、例えば、1エピソードを2時間、インターバルを10分間として、ゲートを開閉する場合、1エピソードにおけるゲートの開閉パターンの組み合わせは712通りになる。このため、最適な開閉パターンの組み合わせを網羅的・貪欲的に探索することは時間コスト的に困難であるが、本実施形態によれば、現実的な時間コスト(数時間~数十時間程度)で最適な開閉パターンを得るための価値関数パラメータを学習することが可能となる。
【0062】
≪シミュレーション処理≫
ここで、上記のステップS103におけるシミュレーション処理について、
図6を参照しながら説明する。
図6は、本実施形態に係るシミュレーション処理の一例を示すフローチャートである。なお、以降のステップS201~ステップS211はシミュレーション時刻τ毎に繰り返し実行される。そこで、以降では、或るシミュレーション時刻τのときのシミュレーション処理について説明する。
【0063】
まず、シミュレーション部101は、現在のシミュレーション時刻τにおける制御策(つまり、ゲートの開閉パターン)を入力する(ステップS201)。
【0064】
次に、シミュレーション部101は、出現時刻になった移動体の移動を開始させる(ステップS202)。また、シミュレーション部101は、現在のシミュレーション時刻τに応じて、上記のステップS202で移動を開始させた移動体の移動速度を更新する(ステップS203)。
【0065】
続いて、シミュレーション部101は、上記のステップS201で入力した制御策に応じて通行規制を更新する(ステップS204)。すなわち、シミュレーション部101は、上記のステップS201で入力した制御策に応じて目的地のゲート(6箇所)を開閉すると共に、特定の道路を通行禁止したり、特定の道路を通行可能にしたりする。なお、通行禁止にする道路としては、例えば、閉じられたゲートに向かうための道路等が挙げられる。同様に、通行許可にする道路としては、例えば、開かれたゲートに向かうための道路等が挙げられる。
【0066】
次に、シミュレーション部101は、上記のステップS204で更新された通行規制に合わせて道路ネットワークの各分岐点での遷移決定基準を更新する(ステップS205)。すなわち、シミュレーション部101は、通行禁止となった道路に移動体が遷移しないようにすると共に、通行許可となった道路に移動体が遷移可能なように遷移決定基準を更新する。ここで、遷移決定基準とは、移動体が当該分岐点に到達した場合に、この分岐点で分岐する複数の道路のうちのいずれの道路に進むかを決定するための基準である。この基準はいずれか1つ道路に分岐するような確定的な基準であってもよいし、分岐先の各道路への分岐確率で表された確率的な基準であってもよい。
【0067】
次に、シミュレーション部101は、各移動体の現在地と速度とに応じて、各移動体の位置(現在地)を更新する(ステップS206)。なお、上述したように、各移動体は、最短経路で現在地から目的地の入口(6箇所のゲートのうちのいずれか1つのゲート)まで向かうものとする。
【0068】
次に、シミュレーション部101は、上記のステップS206の更新の結果、目的地の入口(いずれか1つのゲート)に到着した移動体を退場させる(ステップS207)。
【0069】
次に、シミュレーション部101は、上記のステップS206の更新の結果、分岐点に到達した移動体の遷移方向(つまり、この分岐点から分岐する複数の道路のうちのいずれの道路に進むか)を決定する(ステップS208)。
【0070】
次に、シミュレーション部101は、シミュレーション時刻τを1つ進める(ステップS209)。これにより、シミュレーション時刻τが、τ+1に更新される。
【0071】
次に、シミュレーション部101は、シミュレーションの終了時刻τ´を経過したか否かを判定する(ステップS210)。すなわち、シミュレーション部101は、τ+1>τ´となったか否かを判定する。シミュレーションの終了時刻τ´を経過したと判定した場合、シミュレーション部101は、シミュレーション処理を終了する。
【0072】
一方で、シミュレーションの終了時刻τ´を経過していないと判定した場合、シミュレーション部101は、交通状況(つまり、314本の道路上にそれぞれ存在する移動体の数)をエージェントに出力する(ステップS211)。
【0073】
≪シミュレータ上での制御処理≫
次に、上記のステップS103におけるシミュレータ上での制御処理について、
図7を参照しながら説明する。
図7は、本実施形態に係るシミュレータ上での制御処理の一例を示すフローチャートである。なお、以降のステップS301~ステップS305は制御ステップt毎に繰り返し実行される。そこで、以降では、或るステップtのときのシミュレータ上での制御処理について説明する。
【0074】
まず、制御部103は、ステップtにおける状態(つまり、過去4ステップにおける交通状況)stを観測する(ステップS301)。
【0075】
次に、制御部103は、上記のステップS301で観測した状態stを用いて、方策πθに従って行動atを選択する(ステップS302)。なお、θは価値関数パラメータである。
【0076】
ここで、制御部103は、例えば、行動価値関数Q
πを実現するニューラルネットワーク(つまり、
図3に示すニューラルネットワークの入力層と第1中間層と第2中間層と第1出力層とで構成されるニューラルネットワーク)の出力結果をSoftmax関数により確率分布に変換し、この確率分布に従って行動a
tを選択すればよい。より具体的には、制御部103は、第1出力層の出力結果(Q
π(s=s
t,a=1),Q
π(s=s
t,a=2),・・・,Q
π(s=s
t,a=7))をSoftmax関数により確率分布(p
t
1,p
t
2,・・・,p
t
7)に変換し、この確率分布に従って行動a
tを選択すればよい。なお、例えば、7種類のゲートの開閉パターンのそれぞれを表す行動をa
t=1~a
t=7とした場合、p
t
1~p
t
7は、それぞれa
t=1~a
t=7を選択する確率である。
【0077】
次に、制御部103は、上記のステップS302で選択された行動atに対応する制御策(ゲートの開閉パターン)をシミュレーション部101に送信する(ステップS303)。なお、これは、上記のステップS302で選択された行動atを実行することを意味する。
【0078】
続いて、制御部103は、ステップt+1における状態st+1を観測する(ステップS304)。
【0079】
そして、制御部103は、上記の式(1)によりステップt+1における報酬r+1を計算する(ステップS305)。
【0080】
以上のように、本実施形態に係る制御装置10は、強化学習のアルゴリズムとしてA2C、報酬rとして制御策が選択及び実行されなかった場合の移動体数で道路上の移動体数を正規化した値を用いて、シミュレータ上の交通状況を観測して価値関数パラメータを学習する。これにより、本実施形態に係る制御装置10は、交通状況に応じて、人流を制御するための最適な制御策を学習することができる。
【0081】
<実制御処理>
次に、上記の学習処理で学習された価値関数パラメータθを用いた最適方策π
θ
*により実制御を行う実制御処理について、
図8を参照しながら説明する。
図8は、本実施形態に係る実制御処理の一例を示すフローチャートである。なお、以降のステップS401~ステップS403は制御ステップt毎に繰り返し実行される。そこで、以降では、或るステップtのときの実制御処理について説明する。
【0082】
まず、制御部103は、外部センサから取得したセンサ情報に対応する状態(つまり、過去4ステップにおける実環境の交通状況)stを観測する(ステップS401)。
【0083】
次に、制御部103は、上記のステップS401で観測した状態stを用いて、方策πθに従って行動atを選択する(ステップS402)。なお、θは学習済みの価値関数パラメータである。
【0084】
そして、制御部103は、上記のステップS402で選択された行動atに対応する制御策(ゲートの開閉パターン)を実現する制御情報を指示装置30に送信する(ステップS403)。これにより、制御情報を受信した指示装置30によってゲートを開閉するための指示や通行規制を行うための指示が行われ、実環境の交通状況に応じて人流を制御することができる。
【0085】
<評価>
次に、本実施形態の手法の評価について説明する。本評価では、以下の設定の下で一般的なPC(パーソナルコンピュータ)を用いて、本実施形態の手法と他の制御手法との比較を行った。なお、他の制御手法としては、Open all gatesとRandom greedyとを採用した。Open all gatesは常に全てのゲートを開く場合(つまり、常に全てのゲートを開き、制御を行わなかった場合)のことであり、Random greedyは現在最も良い方策の一部をランダムに変更して更に良い方策を探索して制御を行う方法のことである。Random greedyではシナリオ毎に探索し、解(制御策)を得る必要がある。一方で、本実施形態では、学習済みのモデル(つまり、学習済みのパラメータが設定された価値評価関数)を利用して解(制御策)を得るため、一度学習を終えると、シナリオ毎に探索する必要はない。なお、シナリオとは、シミュレーション設定情報が表すシミュレーション環境のことである。
【0086】
・移動体数:N=8,0000
・シミュレーション時間(シミュレーションの終了時刻τ´):20,000[s]
・インターバル:Δ=600[s]
・シミュレーション設定情報:人の流入パターンが異なる8つのシナリオを準備
・学習率:0.001
・Advanced step:34(シミュレーションが完了するまで)
・Worker数:16
なお、上記以外の各種設定は、<実施例の設定>で述べた通りであるものとする。Worker数とは或る制御ステップで並列に実行可能なエージェント数である。この場合、16個のエージェントがそれぞれ選択した行動aとそのときの報酬rを全て学習に用いる。
【0087】
このとき、本実施形態の手法における総報酬の最大値、平均値及び最小値の推移を
図9に示す。
図9に示すように、本実施形態の手法では、最大値、平均値及び最小値のいずれも、エピソード数がおよそ75回目以降で高い報酬を得るように行動が選択されていることがわかる。
【0088】
また、本実施形態の手法と他の制御手法の旅行時間の推移を
図10に示す。
図10に示すように、Random greedyはOpen all gatesと比較して最大で約39.8%ほど旅行時間が改善されており、本実施形態の手法はOpen all gatesと比較して最大で約47.5%ほど旅行時間が改善されている。このため、本実施形態の手法は他の制御手法と比較して、旅行時間をより最適化する行動が選択されていることがわかる。
【0089】
また、本実施形態の手法と他の制御手法の移動体数と旅行時間との関係を
図11に示す。
図11に示すように、特にN≧50,000である場合に、本実施形態の手法は他の制御手法と比較して、旅行時間が改善されていることがわかる。また、N<50,000である場合には、混雑がほとんど発生していないため、Open all gatesとほぼ同等の旅行時間となっていることがわかる。
【0090】
次に、本実施形態の手法と他の制御手法のロバスト性について説明する。以下の表1は、上記の8つのシナリオとは異なるシナリオにおける各方式の旅行時間を示している。
【0091】
【表1】
上記の表1に示すように、本実施形態の手法では、上記の8つのシナリオとは異なるシナリオでも、旅行時間が1,098[s]であり、高いロバスト性を有していることがわかる。
【0092】
本発明は、具体的に開示された上記の実施形態に限定されるものではなく、請求の範囲の記載から逸脱することなく、種々の変形や変更、既知の技術との組み合わせ等が可能である。
【符号の説明】
【0093】
1 制御システム
10 制御装置
20 外部センサ
30 指示装置
101 シミュレーション部
102 学習部
103 制御部
104 シミュレーション設定情報記憶部
105 価値関数パラメータ記憶部