以下、図面を参照して実施例を説明する。
図1は、本発明の実施例1の信号機制御システムの構成を示すブロック図である。
本実施例の信号機制御システム100は、相互に接続されたプロセッサ110、メモリ120及び補助記憶装置130を有する計算機システムである。
プロセッサ110は、メモリ120に格納されたプログラムを実行することによって、後述する信号機制御システム100の種々の機能を実現する。メモリ120は、いわゆる主記憶装置であり、例えばDRAM(Dynamic Random Access Memory)のような比較的高速の記憶装置によって構成される。本実施例のメモリ120は、プロセッサ110によって実行されるプログラムである制御パラメータ選択プログラム121及び報酬更新プログラム122を格納する。補助記憶装置130は、例えばハードディスクドライブのような比較的大容量の記憶装置であり、プロセッサ110がプログラムに従って実行する処理のために参照されるデータ及び処理の結果として生成されるデータ等を格納する。本実施例の補助記憶装置130は、制御パラメータ131、報酬データ132、パラメータ選択確率133、プローブ交通情報134及び道路ネットワーク135を格納する。なお、必要に応じて補助記憶装置130内のデータの少なくとも一部がメモリ120にコピーされてもよい。
図2は、本発明の実施例1の信号機制御システムが制御する信号機が設置される交差点の説明図である。
図2には、例として、4方向からの四つの道路を接続する十字路型の交差点を俯瞰する平面図を示す。この例に示す道路は右側通行であり、それぞれの道路は交差点に進入する車両が通行可能な三つの車線グループを含む。それぞれの車線は交差点に進入した後の車両の進行方向に対応する。図2に示したi=1〜12は、それぞれの車線グループを識別する車線グループ番号である。例えば、図2の上方を北とすると、北から交差点に接続される道路は、交差点に進入して左折する(すなわち東に進む)車両が通行する車線グループ(i=1)と、直進する(すなわち南に進む)車両が通行する車線グループ(i=6)と、右折する(すなわち西に進む)車両が通行する車線グループ(i=9)と、を含む。他の道路も同様に進行方向に対応する三つの車線グループを含む。本実施例では、それぞれの車線グループを走行する車両に進行又は停止を指示する信号機(交通信号機)が設置される。
なお、図2には、説明を簡単にするために、各車線グループが一つ以上の実際の車線を含む交差点を示す。すなわち、各道路は少なくとも交差点の付近で当該交差点に進入する車両が通行可能な三つ以上の車線を含んでおり、それぞれの車線がいずれかの車線グループに対応し、一つの車線が二つ以上の車線グループに対応することはなく、また、各車線と車線グループとの対応は固定されている。しかし、このような交差点は一例であり、それ以外の種類の交差点、例えば一つの実際の車線が複数の車線グループに対応する交差点、又は、実際の車線と車線グループとの対応が可変の交差点にも本発明を適用することができる。後者の一例は実施例3にて後述する。前者の一例は、片側1車線の道路が接続された交差点であり、このような交差点では、直進、左折又は右折するいずれの車も同じ車線を走行する。また、進行方向が二つのみの三叉路、又は、四つ以上の進行方向が存在する交差点(例えば五叉路)にも本発明を適用することができる。
図3は、本発明の実施例1の信号機制御システムが保持する制御パラメータ131の説明図である。
制御パラメータ131は、各車線グループの車両に向けた信号の出力を制御するためのパラメータの複数のセットからなる。制御パラメータ131の1行に一つのパラメータセットが登録される。一つのパラメータセットは、一つの交差点の各車線グループの車両に向けた信号の出力を制御するためのパラメータを含む。後述するように、制御パラメータ131に含まれる複数のパラメータセットのいずれかが選択され、交差点の信号機に適用される。
図3に例示する制御パラメータ131は、パラメータセット番号1〜10で識別される10個のパラメータセットを含む。各行の各列には、各車線グループ(i=1〜8)の車両に向けた信号の出力を制御するパラメータ、具体的には、信号機が出力する信号の1サイクルにおける、車両の進行を許可する青信号の出力時間(秒)が登録される。この青信号は、特定の方向への進行のみを許可する矢印の信号を含んでもよい。図3には、車両がいつでも右折できる交差点の信号機の制御パラメータの例を示す。このため、i=9〜12の車線グループに対する青信号の出力時間は登録されていない。
図3の例において、パラメータセット番号「1」で識別されるパラメータセット(以下、これを単に「パラメータセット1」とも記載する。他のパラメータセット番号で識別されるパラメータセットについても同様)が適用された場合、交差点に設置された信号機は、西から進入して直進する車両のための車線(i=4)及び東から進入して直進する車両のための車線(i=8)に向けて青信号を20秒間出力し、それ以外の時間は車両の停止を指示する黄信号又は車両の進行を禁止する赤信号を出力する。西から進入して左折する車両のための車線(i=7)及び東から進入して左折する車両のための車線(i=3)に向けて青信号を4秒間出力し、それ以外の時間は黄信号又は赤信号を出力する。北から進入して直進する車両のための車線(i=6)及び南から進入して直進する車両のための車線(i=2)に向けて青信号を7秒間出力し、それ以外の時間は黄信号又は赤信号を出力する。北から進入して左折する車両のための車線(i=1)及び南から進入して左折する車両のための車線(i=5)に向けて青信号を4秒間出力し、それ以外の時間は黄信号又は赤信号を出力する。さらに、ある所定の時間、信号機は全ての車線に向けて赤信号を出力する。
図3には10個のパラメータセットを示すが、実際には制御パラメータ131がさらに多くのパラメータセットを含んでもよい。また、一つの交差点に適用されるパラメータセットとして、例えば1日の中の時間帯、曜日、又は季節等に応じてそれぞれ複数のパラメータセットが用意されてもよい。これによって、例えば交差点の混雑の態様に応じて適切なパラメータセットを使用することができる。
なお、制御パラメータ131に含まれる複数のパラメータセットは、いかなる方法で設定されてもよい。例えば、ユーザが経験に基づいて妥当と考えられる複数のパラメータセットを生成して信号機制御システム100に入力してもよいし、交差点で実測された交通量に基づいて妥当と考えられる複数のパラメータセットを信号機制御システム100が自動的に生成してもよい。後者の一例については後述する(実施例2参照)。
図4は、本発明の実施例1の信号機制御システムによる信号時間の出力イメージの説明図である。
図4の例では、交差点の信号機が各車線グループに出力する1サイクル分の信号が図示される。具体的には、i=4及び8の車線グループに所定の時間(例えば20秒間)青信号が出力される(フェーズ1)。その後、全ての車線グループに所定の時間黄信号又は赤信号が出力される。その後、i=3及び7の車線グループに所定の時間(例えば4秒間)青信号が出力される(フェーズ2)。その後、全ての車線グループに所定の時間黄信号又は赤信号が出力される。その後、i=2及び6の車線グループに所定の時間(例えば7秒間)青信号が出力される(フェーズ3)。その後、全ての車線グループに所定の時間黄信号又は赤信号が出力される。その後、i=1及び5の車線グループに所定の時間(例えば4秒間)青信号が出力される(フェーズ4)。その後、全ての車線グループに所定の時間黄信号又は赤信号が出力される。図示されたそれぞれのフェーズの白抜き部分が青信号時間、網掛け部分が黄信号時間又は赤信号時間である。信号機は、適用されたパラメータセットに従って上記のフェーズを繰り返すことで、所定のパターンの交通信号を出力する。
図3には、各車線グループに対応する青信号時間のみが表示されているが、実際には、各パラメータセットは、各車線グループ向けの青信号の表示時間の間の前後関係を特定する情報と、各車線グループ向けの青信号の表示時間に挟まれた全車線グループ向けの黄信号及び赤信号の表示時間を特定する情報と、をさらに含む。
例えば信号機制御システム100はプロセッサ110に接続された表示装置(図示省略)をさらに有し、表示装置が、制御パラメータ131に基づいて、図4に示すような各車線グループの信号時間のグラフと、それぞれの車線グループの位置関係を示す図と、を表示してもよい。信号機制御システム100のユーザは、これらを参照してパラメータセットに基づく信号機の動作を容易に把握することができる。さらに、ユーザがこれらの図を参照し、入力装置を操作して各車線の信号時間等を入力することによって、新たなパラメータセットを設定することができる。
図5は、本発明の実施例1の信号機制御システムが保持するプローブ交通情報134の説明図である。
プローブ交通情報134は、道路上の実際の交通量を示す情報である。図5の例では、プローブ交通情報134の各行が、各時刻に各リンク(後述)を走行している車両の旅行速度とそのリンクの法定速度とを示す情報を含む。具体的には、プローブ交通情報134は、時刻を示す時刻501、リンクを識別するリンク502、各時刻に各リンクを走行している車両の速度を示す旅行速度503及び当該リンクの法定速度を示す法定速度504を含む。
ここで、旅行速度とは、実際に計測された車両の走行速度である。旅行速度はいかなる方法で計測してもよいが、一例を示せば、各車両から収集された時刻ごとの各車両の位置情報に基づいて算出してもよい。
図6は、本発明の実施例1の信号機制御システムが保持する道路ネットワーク135の説明図である。
道路ネットワーク135は、実際の道路及び交差点の配置を特定する情報として、リンク情報600(図6(A))及びノード情報610(図6(B))を含む。リンクが交差点間を接続する道路の区間に対応し、ノードが交差点に対応する。リンク情報600は、各リンクを識別するリンク601、各リンクの始点及び終点を示す始点ノード602及び終点ノード603、並びに、各リンクの長さを示す長さ604を含む。ノード情報610は、各ノードを識別するノード611及び各ノードに接続される一つ以上のリンクを識別する接続リンク612を含む。
図7は、本発明の実施例1の信号機制御システムが保持する報酬データ132の説明図である。
本実施例において報酬とは、パラメータセットの適切性を評価する指標である。本実施例では、それを適用することによって周囲の道路に発生する渋滞の程度が小さくなるパラメータであるほど適切なパラメータであるとの考え方に基づき、周囲の道路の渋滞の程度が小さいほど報酬が高くなるように、報酬が設定される。すなわち、あるパラメータセットの報酬が高いことは、そのパラメータセットが適用された場合に渋滞が発生しにくいことを示す。渋滞の程度を示す指標として、例えば渋滞の長さ、又は、単位時間に通過する車両の台数等、種々の指標を使用できるが、本実施例では、遅れ時間を使用する。
ここで、遅れ時間とは、交差点(ノード)に接続された道路(リンク)を走行して当該交差点に進入する車両が、当該リンクを法定速度で通過した場合の所要時間と、実測された旅行速度で通過した場合の所要時間との差である。この遅れ時間は、プローブ交通情報134に含まれる各時刻の各リンクにおける旅行速度503、法定速度504及び道路ネットワーク135に含まれる各リンクの長さに基づいて計算することができる。例えば、あるパラメータセットがある交差点に所定の時間にわたって適用された場合、その時間内にいずれかの道路からその交差点に進入したいくつかの車両(望ましくは全車両)の遅れ時間の平均値をその時間における報酬として計算してもよい。
遅れ時間が報酬として使用される場合、遅れ時間が小さいほど報酬が高い(すなわち発生しにくい)。一方、渋滞の長さ(例えば所定の速度以下で走行する車両の列の長さ)が使用される場合、渋滞の長さが短いほど報酬が高く、単位時間当たりの車両の通過台数が使用される場合、台数が多いほど報酬が高い。
後述するように、本実施例では、各パラメータセットが一つの交差点に複数回適用される(図8〜図10等参照)。これまでに適用されたことのあるパラメータセットが再び選択され、交差点に適用された場合、今回の適用時の遅れ時間が反映されるように、これまでの当該パラメータセットの適用時に計算された報酬が更新される。具体的には、例えば各パラメータセットの報酬は、それぞれの回に計測された遅れ時間の平均値であってもよい。例えば、あるパラメータセットがこれまでにN回適用され、それぞれの回に計測された遅れ時間から計算された報酬(すなわちN回の遅れ時間の平均値)がRewordoldである場合において、そのパラメータセットがN+1回目の適用をされ、その時の遅れ時間がRewordmeasuredである場合、そのパラメータセットの報酬は、下記の式(1)によって、N+1回の遅れ時間の平均値であるRewordnewに更新される。
図7には、図2の交差点に図3のパラメータセットが適用された場合の報酬の一例を示す。例えばパラメータセット1の報酬が「65」、パラメータセット10の報酬が「67」であり、パラメータセット7の報酬「30」が最小である。これは、これまでの実績において、パラメータセット7が適用された場合に最も渋滞が発生しにくいこと、言い換えるとパラメータセット7の適切性が最も高いことを示している。報酬として車両の列の長さが使用された場合も同様に報酬の値が小さいほど渋滞が発生しにくいことを示す。一方、報酬として車両の通過台数を使用した場合には、報酬の値が大きいほど渋滞が発生しにくいことを示す。
ここで、パラメータセット6が10回適用された結果の報酬が「45」である場合において、当該パラメータセット6が11回目の適用をされ、その時の遅れ時間(すなわち図2の交差点に接続される各道路の遅れ時間の合計)が100秒であった場合、パラメータセット6の報酬は、上記の式(1)によって「50」に更新される。
次に、本実施例の信号機制御システム100が実行する処理について、フローチャートを参照して説明する。信号機制御システム100は、所定のタイミングで、交差点に対応する複数のパラメータセットの一つを選択してそれを適用し、そのときの報酬を計算して、報酬データを更新する。
図8は、本発明の実施例1の信号機制御システムが実行する処理の第1の例を示すフローチャートである。
信号機制御システム100は、計算を開始すると(ステップ801)、乱数を発生させる(ステップ802)。これによって、0以上1未満の値がランダムに発生する。
次に、信号機制御システム100は、発生した乱数がパラメータ選択確率εより大きいか否かを判定する(ステップ803)。パラメータ選択確率εは、予めユーザによって設定され、必要に応じて変更することができる(ステップ804)。
発生した乱数がパラメータ選択確率εより大きい場合(ステップ803:Yes)、信号機制御システム100は、制御パラメータ131に含まれる複数のパラメータセットの一つをランダムに選択する(ステップ805)。一方、発生した乱数がパラメータ選択確率ε以下である場合(ステップ803:No)、信号機制御システム100は、複数のパラメータセットのうち、報酬が最も高いものを選択する(ステップ806)。言い換えると、信号機制御システム100は、パラメータ選択確率εで複数のパラメータセットのうち報酬が最も高いものを選択し(ステップ806)、残りの確率(すなわち1−ε)で複数のパラメータセットの一つをランダムに選択する(ステップ805)。
次に、信号機制御システム100は、ステップ805又は806で選択されたパラメータセットを交差点の信号機に適用して、それによって信号機が制御されている間の交通量を所定の時間計測し、それに基づいて渋滞の程度を示す指標(例えば遅れ時間)を計算する(ステップ807)。
次に、信号機制御システム100は、計測されたデータに基づいて報酬データ132を更新する(ステップ808)。この更新は、図7を参照して説明した通りである。
その後、処理はステップ802に戻り、それ以降の処理が繰り返される。例えば、ステップ807で1日分の遅れ時間が計測された場合、その計測結果に基づいてステップ808において報酬データ132が更新される。その後、毎日ステップ802〜808が繰り返され、1日ごとに報酬データ132が更新される。
上記のアルゴリズムは、バンディットアルゴリズムのうちε−greedyアルゴリズムとして知られているものである。上記の例において、ステップ803でYesと判定された場合に実行されるステップ805、807及び808は、バンディットアルゴリズムの「探索」に相当する。これは、複数のパラメータセットから最適なものを探すために、いずれかのパラメータセットを選択してそれに基づいて信号機を制御し、その結果に基づいてパラメータセットの適切性を評価する処理である。一方、ステップ803でNoと判定された場合に実行されるステップ806、807及び808は、バンディットアルゴリズムの「活用」に相当する。これは、その時点で最適と思われるパラメータセットを選択してそれに基づいて信号機を制御する処理である。活用の場合もその結果に基づいてパラメータセットの適切性が評価される。評価の結果は報酬として蓄積される。パラメータ選択確率εは、活用の実行の割合を決定するものであり、その値が大きいほど活用が行われやすくなる。上記のように所定の割合で活用を行い、残りの割合で探索を行い、報酬を更新してゆくことによって、それぞれの時点までの探索の成果を享受しながら、より適切なパラメータセットを探すことができる。
なお、ステップ807における所定の時間とは、上記のように1日であってもよいが、1日より長い時間又は短い時間であってもよい。例えば、ステップ807で1週間分の遅れ時間が計測される場合、1週間ごとにステップ802〜803が繰り返され、報酬データ132が更新される。あるいは、ステップ807で、例えば朝の通勤時間帯、昼間の時間帯、夕方の通勤時間帯、夜間から早朝の時間帯、のように1日を複数に区切った時間帯の遅れ時間が計測される場合、その時間帯ごとにステップ802〜803が繰り返され、報酬データ132が更新される。
一つの交差点における交通量(例えば、それぞれの車線における混雑の程度)は、時期(例えば季節、曜日、又は1日の中の時間帯等)によって異なる場合がある。このような場合には、それぞれの時期によって、渋滞を最小化するために最適なパラメータセットが異なると考えられる。このため、信号機制御システム100は、時期ごとに複数のパラメータセットと報酬データ132を用意して、ステップ802〜808を繰り返し実行するときに、それらが実行される時期に対応するパラメータセットと報酬データ132を使用してもよい。あるいは、複数のパラメータセットは時期によらず共通のものを使用し、報酬データ132のみを時期ごとに用意してもよい。その結果、「探索」によってそれぞれの時期に適していると評価されたパラメータセットが、「活用」において使用される。
具体的には、報酬データ132のみが時期ごとに用意される場合、ステップ806において、この処理が実行されている時期に対応する報酬データ132が参照され、ステップ808において、その時期に対応する報酬データ132が更新される。さらにパラメータセットも時期ごとに用意される場合には、ステップ805及び806においてその時期に対応するパラメータセットが参照される。これによって、それぞれの時期に最適な制御パラメータを特定することができる。
図8にはバンディットアルゴリズムのうちε−greedyアルゴリズムの例を示したが、バンディットアルゴリズムとしては他にsoftmaxアルゴリズム及びUCB(Upper Confidence Bound)アルゴリズムが知られている。これらの例について、それぞれ図9及び図10を参照して説明する。
図9は、本発明の実施例1の信号機制御システムが実行する処理の第2の例を示すフローチャートである。
図9のステップ901〜904及び906〜908は、それぞれ図8のステップ801〜804及び806〜807と同様であるため、説明を省略する。
ステップ903において、発生した乱数がパラメータ選択確率εより大きいと判定された場合、信号機制御システム100は、報酬に依存した確率で、複数のパラメータセットの一つを選択する。図9の例では、各パラメータセットの選択確率は、次の式(2)によって計算される。
ここで、Rewardは各パラメータセットの報酬である。ただし、図7に示す遅れ時間に基づく報酬のように、数値が小さいほど報酬が高いと評価される場合には、例えばその数値の逆数のように、報酬の高さに応じて大きくなる数値をRewardとして使用する必要がある。また、Tはユーザが設定する値であり、これが大きいほど各パラメータセットの選択確率が均等に近く(すなわちランダムに近く)なる。また、式(2)の分母は全パラメータセットについての総和である。これによって、ステップ905では、報酬の高さによらずどのパラメータセットも選択される可能性はあるが、報酬が高いパラメータセットほど選択されやすい。その結果、これまでの探索によって適切である可能性が低いと評価されたパラメータセットが選択されにくくなるため、高速に最適なパラメータセットを探索できることが期待される。
図8の場合と同様に、図9の処理においても、時期に対応する報酬データ132及びパラメータセットを使用することができる。例えば、報酬データ132のみが時期ごとに用意される場合、ステップ905及び906において、この処理が実行されている時期に対応する報酬データ132が参照され、ステップ908において、その時期に対応する報酬データ132が更新される。さらにパラメータセットも時期ごとに用意される場合には、ステップ905及び906においてその時期に対応するパラメータセットが参照される。
図10は、本発明の実施例1の信号機制御システムが実行する処理の第3の例を示すフローチャートである。
信号機制御システム100は、計算を開始すると(ステップ1001)、式(3)に示すパラメータ選択確率に基づいて複数のパラメータセットの一つを選択する(ステップ1002)。
ここで、Rewardは、図9の例と同様に、各パラメータセットの報酬である。countは、各パラメータセットがこれまでに選択され、適用された回数である。totalCountは、全パラメータセットのcountの合計値である。式(3)のパラメータ選択確率を用いることによって、報酬が高いパラメータセットほど選択されやすく、かつ、これまでに選択された回数が少ないパラメータセットほど選択されやすくなる。すなわち、二つのパラメータセットがこれまでに選択された回数が同じであれば、それらのうち報酬が高い方が選択されやすい。一方、二つのパラメータセットの報酬が同じであれば、それらのうちこれまでに選択された回数が少ないパラメータセットが選択されやすい。
パラメータセットが選択され、交差点の信号機に適用された結果、発生した渋滞の程度が大きければ、そのパラメータセットには低い報酬が与えられる。しかし、長期的には適切なパラメータセットであっても、何らかの突発的な要因によって大きな渋滞を発生させてしまう場合があり、それによって不当に低い報酬が与えられたために以後の探索において選択されにくくなると、その不当な評価が是正されにくい。しかし、図10のUCBアルゴリズムによれば、選択回数が少ないことに起因する不当な評価が是正されやすい。また、交通量が変動したことによってこれまで最適だったパラメータセットが最適でなくなった場合に、新しい最適なパラメータセットを発見しやすい。
ステップ1003及び1004は、それぞれ図8のステップ807及び808と同様であるため、説明を省略する。なお、図10の処理では、ステップ1002で最も報酬の高いパラメータセットが選択された場合のステップ1003及び1004が「活用」、それ以外のパラメータセットが選択された場合のステップ1003及び1004が「探索」に相当する。
図8の場合と同様に、図10の処理においても、時期に対応する報酬データ132及びパラメータセットを使用することができる。例えば、報酬データ132のみが時期ごとに用意される場合、ステップ1002において、この処理が実行されている時期に対応する報酬データ132が参照され、ステップ1004において、その時期に対応する報酬データ132が更新される。さらにパラメータセットも時期ごとに用意される場合には、ステップ1002においてその時期に対応するパラメータセットが参照される。
以上の処理のうち、図8のステップ802〜807、図9のステップ902〜907、及び図10のステップ1002〜1003は、プロセッサ110が制御パラメータ選択プログラム121に従って実行し、図8のステップ808、図9のステップ908及び図10のステップ1004は、プロセッサ110が報酬更新プログラム122に従って実行する。
以上の本発明の実施例1によれば、交差点の信号機を制御するための制御パラメータのセットを予め複数用意し、バンディットアルゴリズムの探索及び活用を繰り返す。具体的には、それらのパラメータセットの適切性(例えば渋滞の起きにくさ)を示す指標に基づいていずれかのパラメータセットを確率的に選択し(図8のステップ803〜806、図9のステップ903〜906、図10のステップ1002)、それを交差点の信号機に適用して渋滞度を評価し(図8のステップ807、図9のステップ907、図10のステップ1003)、その結果に基づいてパラメータセットの適切性を示す指標を更新する(図8のステップ808、図9のステップ908、図10のステップ1004)。これによって、これまでに行われた探索の成果を活用しながら、ある程度の期間にわたって使用されたときによい結果が得られるパラメータセットを探索することができる。
次に、本発明の実施例2について、図面を参照して説明する。以下に説明する相違点を除き、実施例2のシステムの各部は、図1〜図10に示された実施例1の同一の符号を付された各部と同一の機能を有するため、それらの説明は省略する。
図11は、本発明の実施例2の信号機制御システムの構成を示すブロック図である。
本実施例の信号機制御システム1100は、相互に接続されたプロセッサ110、メモリ1120及び補助記憶装置1130を有する。メモリ1120は、実施例1のメモリ120と同様の主記憶装置であるが、制御パラメータ選択プログラム121及び報酬更新プログラム122に加えて、制御パラメータ生成プログラム1121及び制御パラメータ更新プログラム1122を格納する。補助記憶装置1130は、実施例1の補助記憶装置130と同様の記憶装置であるが、実施例1と同様の制御パラメータ131〜道路ネットワーク135に加えて、交通量計測データ1131を格納する。また、実施例2の制御パラメータ131は、制御パラメータ生成プログラムによって生成される。
図12は、本発明の実施例2の信号機制御システムが保持する交通量計測データ1131の説明図である。
交通量計測データ1131には、交差点の各車線グループから各方向へ進行する車両の数を示すデータが含まれる。例えば、所定の時間(Time interval)ごとに、対象の交差点に東(East)西(West)南(South)北(North)それぞれの方向から接続される道路の、左折(Left)、直進(Straight)及び右折(Right)それぞれに対応する車線グループを通過した車両(Car)の数が計測され、交通量計測データ1131に登録される。車両の種類(Motorcycle type)ごとに数が計測されてもよい。図12の例では、7:30から7:45までの15分間に、東から交差点に接続される道路の左折用の車線グループ(図2の例ではi=3に相当)を走行した車両の数が68台であり、そのうち中型車(Mid−size car)の数は0台、大型車(Large scale vehicles)の数は8台である。
図13は、本発明の実施例2の信号機制御システムが制御パラメータを生成する処理を示すフローチャートである。
図13に示す処理は、プロセッサ110が制御パラメータ生成プログラム1121を実行することによって実現される。信号機制御システム1100は、制御パラメータ生成処理を開始すると(ステップ1301)、交通量計測データ1131及び正規分布に基づいて、交通量を発生させる(ステップ1302)。具体的には、信号機制御システム1100は、図12に示すように計測された各車線グループの交通量を正規分布でモデル化し、その分布に従う交通量(例えば15分当たりに通過する車両の数)を発生させる。後述するように、生成するパラメータセットの数をNとすると、ステップ1302はN回繰り返し実行され、各車線グループについてN個の異なる交通量(すなわち各車線グループの交通量のN個の組合せ)が得られる。それらの交通量の分布は、交通量計測データ1131に基づく各車線グループの交通量の正規分布と同じになる。
次に、信号機制御システム1100は、ステップ1302で発生させた各車線グループの交通量に基づいて、以下の制約条件を満たすように、各車線グループの青信号時間を発生させる(ステップ1303)。以下、制約条件について説明する。
信号機制御システム1100は、最初に、式(4)によって、車線グループiにおける飽和交通流率(saturation flow rate、台数/時間)siを計算する。
ここで、s0は基本飽和交通流率であり、一般的に1900の固定値を用いる。式(4)においてNは車線グループiの車線数を表す。fw〜fRpbは以下に列挙する調整用のファクタである。これらを全て1.0としてもよいが、例えばHighway Capacity Manual 2000: http://www.trb.org/Main/Blurbs/164718.aspxに記載された方法で詳細に算出してもよい。
fW:車線幅に対する調整
fHV:重量車両の交通量に対する調整
fg:車線の傾斜に対する調整
fp:駐車レーンや駐車車両の存在に対する調整
fbb:公用バスの通行やバス停存在に対する調整
fa:場所の特性に対する調整
fLU:車線の使われ方に対する調整
fLT:左折行動に対する調整
fRT:右折行動に対する調整
fLpb:左折行動に対する歩行者の影響の調整
fRpb:右折行動に対する歩行者の影響の調整
上記のsiを用いて、交差点の交通容量cintersectionは式(5)で計算される。
ここで、giは各車線グループiの青信号時間、Cは信号機の1サイクルの時間である。また、飽和交通流量Xiは式(6)で表される。
ここで、qiは車線グループiの交通量を表す。さらに、信号機制御システム1100は、各車線グループiの信号による遅れ時間diを、Websterモデル(Webster F. V.: Traffic Signal Settings, T. R. R. L. Tech. Paper 39, 1958)に基づき、式(7)で計算する。
これらを用いて、信号機制御システム1100は、交差点の信号遅れ時間dintersectionを式(8)で計算する。
各車線の交通容量のバランスを取る必要があるため、信号機制御システム1100は、各車線グループiの交通容量と遅れ時間の条件下で、式(5)に示す交通容量を最大化する青信号時間を設定する。つまり、式(9)で表される最適化問題である。
信号機制御システム1100は、式(9)を、以下の式(10)〜(12)を満たす範囲内で最大化する青信号時間を選択する。
ここで、
は、車線グループiの飽和交通流量Xiの平均値、X0は飽和交通流量の分散の最大値、Xmaxは飽和交通流量の最大値、dmaxは遅れ時間の最大値であり、それぞれ事前に設定される。
信号機制御システム1100は、上記の計算によって選択された青信号時間をパラメータセットとして保持する。
次に、信号機制御システム1100は、必要な数(N個)のパラメータセットが生成されたか否かを判定し(ステップ1305)、生成されていない場合はステップ1302以降の処理を再度実行し、生成された場合は計算を終了する(ステップ1306)。例えば図3に示すように10個のパラメータセットが生成される場合、ステップ1302〜1304が10回繰り返される。
図13の処理によって、実測された交通量に近い複数通りの交通量に最適と考えられる複数のパラメータセットが作成される。これによって、過去に実測された交通量からかけ離れたパラメータセットを予め除外しておくことができるため、効率的に最適なパラメータセットを探索することができる。
図14は、本発明の実施例2の信号機制御システムが制御パラメータの更新の必要性を判断する処理を示すフローチャートである。
図14に示す処理は、プロセッサ110が制御パラメータ更新プログラム1122を実行することによって実現される。信号機制御システム1100は、計算を開始すると(ステップ1401)、その時点の報酬データ132を分析する(ステップ1402)。具体的には、信号機制御システム1100は、報酬データ132に含まれる一つの交差点に対応する複数のパラメータセットの報酬のばらつき(例えば分散)を計算する。
次に、信号機制御システム1100は、報酬の分散が所定の値以上であるか否かを判定する(ステップ1403)。報酬の分散が所定の値以上である(すなわちばらつきが大きい)ことは、生成された複数のパラメータセットの中に、実際の交通量からかけ離れた、著しく不適切なパラメータセットが含まれている可能性があることを示している。このため、信号機制御システム1100は、アラートを発報する(ステップ1404)。一方、報酬の分散が所定の値より小さい場合、信号機制御システム1100は、アラートを発報せずに処理を終了してもよいし、必要があれば、例えば所定の時間経過後にステップ1402に戻ってもよい。
アラートを受けたユーザは、当該交差点に対応するパラメータセットを更新することができる。例えばユーザが手動でパラメータセットを更新してもよいし、図13に示す制御パラメータ生成処理を信号機制御システム1100に実行させてもよい。あるいは、信号機制御システム1100がアラートを検知して制御パラメータ生成処理を実行することによって自動的にパラメータセットを更新してもよい。このとき、ユーザ又は信号機制御システム1100は、報酬の値が特に低いパラメータセットのみを更新してもよい。これによって、実際の交通量からかけ離れたパラメータセットが除外されるため、以後の処理によって効率的に最適なパラメータセットを探索することができる。
なお、実施例1、後述する実施例3又は実施例4の信号機制御システムが制御パラメータ更新プログラム1122を保持し、図14の処理を実行してもよい。
次に、本発明の実施例3について、図面を参照して説明する。以下に説明する相違点を除き、実施例3のシステムの各部は、図1〜図10に示された実施例1の同一の符号を付された各部と同一の機能を有するため、それらの説明は省略する。
図15は、本発明の実施例3の信号機制御システムの構成を示すブロック図である。
本実施例の信号機制御システム1500は、相互に接続されたプロセッサ110、メモリ1520及び補助記憶装置1530を有する。メモリ1520は、実施例1のメモリ120と同様の主記憶装置であるが、制御パラメータ選択プログラム121及び報酬更新プログラム122に加えて、パラメータ選択確率変更プログラム1521を格納する。補助記憶装置1530は、実施例1の補助記憶装置130と同様の記憶装置であるが、制御パラメータ131の代わりに制御パラメータ1531を格納する。
図16は、本発明の実施例3の信号機制御システムが保持する制御パラメータ1531の説明図である。
本実施形態の制御パラメータ1531に含まれる各パラメータセットは、実施例1と同様の、各車線グループの青信号時間に加えて、各車線グループに割り当てられた車線数を含む。これは、交差点に接続される道路の少なくとも一つが、車線グループの数より多い車線を含むときに、それらの車線の車線グループへの割り当て(言い換えると、それぞれの車線を左折、直進及び右折のいずれの進行方向に割り当てるか)を変更できることが前提となる。例えば通過する車両の数が多い進行方向に多くの車線を割り当てることで渋滞の緩和が期待できる。このような各進行方向への車線の割り当ての変更は、例えば、交差点の各車線上の空中に設置された電光掲示板等に表示される進行方向の表示を遠隔操作で変更することなどによって実現できる。
図16(A)は、実施例1と同様の各車線グループの青信号時間を示す。図16(A)にはそれぞれパラメータセット番号1〜4で識別される四つのパラメータセットを示しているが、実際の制御パラメータ1531は図3と同様に10個のパラメータセットを含んでもよいし、さらに多くのパラメータセットを含んでもよい。また、車線グループ番号iは図2に示した通りである。
図16(B)は、各車線グループに割り当てられる車線数を示す。図16(A)と同様に、実際の制御パラメータ1531は実際にはより多くのパラメータセットを含んでもよい。
図16では便宜上二つのテーブルを示しているが、実際には同一のパラメータセット番号に対応する青信号時間と車線数が一つのパラメータセットをなす。例えば、パラメータセット1が適用された場合、北から交差点に接続される道路(図2参照)に含まれる左折用の車線グループi=1には2車線が含まれ、直進用の車線グループi=6にも2車線が含まれ、それぞれの青信号時間は4秒及び7秒である。一方、パラメータセット2が適用された場合、左折用の車線グループi=1に含まれる車線数は1車線に減り、代わりに直進用の車線グループi=6に含まれる車線数が3車線に増える。それぞれの青信号時間は4秒及び10秒である。
本実施例の信号機制御システム1500が制御パラメータ選択プログラム121及び報酬更新プログラム122に基づいて実行する処理は、実施例1の信号機制御システム100が実行するものと同様であるため、説明を省略する。
ただし、本実施例の信号機制御システム1500は、さらにパラメータ選択確率変更プログラム1521に基づいてパラメータ選択確率εを変更することができる。例えば、信号機制御システム1500は、ε−greedyアルゴリズム(図8)によるパラメータ選択を実行する場合、ステップ802〜808のループを繰り返す間に、ステップ804で参照されるパラメータ選択確率εを変更してもよい。
具体的には、例えば、信号機制御システム1500は、パラメータ選択確率εの初期値を比較的小さい値に設定し、しばらくステップ802〜808のループを繰り返した結果、適切なパラメータセットとそうでないパラメータセットとが概ね明らかになった(すなわち報酬の値が収束した)と判定された場合に、パラメータ選択確率εをより大きい値に変更してもよい。パラメータ選択確率εが小さいほど探索が多く行われ、大きいほど活用が多く行われるため、上記のようにパラメータ選択確率εを変更することによって、当初は探索を多く行って早く適切なパラメータセットを発見することができ、εの変更後は報酬が最大のパラメータセットを選択されやすくことで、活用を多く行って探索の成果を享受することができる。
報酬の値が収束したことは、例えば、報酬の高いパラメータセットと報酬の低いパラメータセットとの報酬の差が所定の値より大きくなったことに基づいて判定してもよいし、探索を繰り返したときの報酬の変動が小さくなったことに基づいて判定してもよい。
図9の処理についても同様であり、報酬の値が収束したと判定された場合にパラメータ選択確率εをより大きい値に変更することによって、報酬が最大のパラメータセットが選択されやすくなる。さらに、図10の処理についても、報酬が収束したと判定された場合に、ステップ1002において報酬が高いパラメータセットがより高い頻度で選択されるように選択方法を変更してもよい。
以上の実施例3によれば、進行方向に対する車線の割り当てを変更できる交差点にも本発明を適用することができる。さらに、適切なタイミングでパラメータ選択確率εを変更することによって、適切なパラメータセットの早期の発見と、発見したパラメータセットの十分な活用を実現することができる。
なお、実施例1、実施例2又は後述する実施例4の信号機制御システムがパラメータ選択確率変更プログラム1521を保持し、図16の処理を実行してもよい。
次に、本発明の実施例4について、図面を参照して説明する。以下に説明する相違点を除き、実施例4のシステムの各部は、図1〜図10に示された実施例1の同一の符号を付された各部と同一の機能を有するため、それらの説明は省略する。
図17は、本発明の実施例4の信号機制御システムの構成を示すブロック図である。
本実施例の信号機制御システム1700は、相互に接続されたプロセッサ110、メモリ120、補助記憶装置1730及びネットワークインタフェース(I/F)1740を有する。補助記憶装置1730は、実施例1の補助記憶装置130と同様の記憶装置であるが、制御パラメータ131及び報酬データ132の代わりに制御パラメータ1731及び報酬データ1732を格納する。
ネットワークI/F1740には、ネットワーク1750を介して交通信号1751及び車線制御1752が接続される。交通信号1751は、一つ又は複数の交差点の信号機であり、信号機制御システム1700が選択したパラメータセットに従って制御される。車線制御1752は、各車線の各進行方向への(すなわち各車線グループへの)割り当てを行う制御装置であり、例えば実施例3のように各パラメータセットが各車線グループの車線数を含んでいる場合には、信号機制御システム1700が選択したパラメータセットに従って、交差点に進入する車両に向けた進行方向の表示を制御する。
なお、図1、図11及び図15では省略されているが、実施例1〜3の信号機制御システムも上記と同様にネットワークI/Fを有し、ネットワークを介して交通信号に(実施例3ではさらに車線制御に)接続される。
図18は、本発明の実施例4の信号機制御システムが保持する報酬データ1732の説明図である。
図7に示したように、実施例1〜3の報酬データ132に含まれるそれぞれの報酬の値は、一つの交差点の一つのパラメータセットについて計算されたものである。これに対して、実施例4の報酬データ1732は、複数の交差点の信号機に適用されるパラメータセットの組合せについて計算されたものである。図18(A)には、交差点A〜Dに適用されるパラメータセットの組合せについて計算された報酬の例を示す。
この例において、図18Bに示すように、交差点Aでは、道路1801と道路1803とが交差する。交差点Bでは、道路1802と道路1803とが交差する。交差点Cでは、道路1801と道路1804とが交差する。交差点Dでは、道路1802と道路1804とが交差する。
制御パラメータ1731は、各交差点に適用される複数のパラメータセットを含む。一つの交差点に適用されるパラメータセットは、図3又は図16に示すものと同様であってもよい。複数の交差点に同じパラメータセットが適用されてもよいが、一般には、交差点によって実際の交通量が異なるため、例えば実施例2のような方法を採用した場合、それぞれの交差点に異なるパラメータセットが適用される。本実施例ではパラメータセットの番号は交差点ごとに一意であるため、例えば交差点Aのパラメータセット1と交差点Bのパラメータセット1は、同じであることもあり得るが、通常は異なる。
図18(A)の例では、交差点A〜Dのそれぞれにパラメータセット1が適用された場合の報酬が「90」である。この報酬は、交差点A〜Dの全車線グループを対象として実施例1と同様の方法で計算された値であり、例えば、交差点A〜Dの全車線グループの遅れ時間に基づいて式(1)を計算することによって得られる。報酬データ1732は、同様に全交差点の全パラメータセットの組合せについて計算された報酬の値を保持する。
実施例4の信号機制御システム1700は、制御パラメータ選択プログラム121及び報酬更新プログラム122に従って、報酬データ1732を参照して実施例1の信号機制御システム100と同様の処理を実行することができる(図8〜図10参照)。例えば、信号機制御システム1700は、ステップ806及び906において、最も報酬が高いパラメータセットの組合せを選択し、ステップ805において、ランダムにパラメータセットの組合せを選択し、ステップ905において、報酬に依存した確率でパラメータセットの組合せを選択し、ステップ1002において、報酬と確度に依存した確率でパラメータセットの組合せを選択する。
図18に示すように道路を介して相互に接続された複数の交差点を含む道路ネットワークにおいては、例えば一つの交差点を円滑に通過した車両が別の交差点に流入して渋滞を発生させるなど、ある交差点について最適なパラメータセットが、道路ネットワーク全体の渋滞を緩和させるために最適ではない可能性がある。上記の実施例4によれば、複数の交差点を含む道路ネットワーク全体の報酬に基づいて最適な制御パラメータが探索されるため、道路ネットワーク全体の渋滞を緩和させることができる。
上記の処理は実施例4の実現方法の一例であり、別の方法で実施例4を実現することもできる。例えば、信号機制御システム1700交差点A〜Dの全ての車線グループに、交差点A〜Dからなる交差点グループ内で一意の車線グループ番号を付与し、一つのパラメータセットが全車線グループの青信号時間の組合せを含むように複数のパラメータセットを作成して、各パラメータセットについて報酬を計算することによって、実施例1と同様の処理(図8〜図10)を実行してもよい。
なお、本発明は上記した実施形態に限定されるものではなく、様々な変形例が含まれる。例えば、上記した実施形態は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。
また、ある実施形態の構成の一部を他の実施形態の構成に置き換えることが可能であり、また、ある実施形態の構成に他の実施形態の構成を加えることも可能である。また、各実施形態の構成の一部について、他の構成の追加・削除・置換をすることが可能である。
また、上記の各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等によってハードウェアで実現してもよい。また、上記の各構成、機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによってソフトウェアで実現してもよい。各機能を実現するプログラム、テーブル、ファイル等の情報は、不揮発性半導体メモリ、ハードディスクドライブ、SSD(Solid State Drive)等の記憶デバイス、または、ICカード、SDカード、DVD等の計算機読み取り可能な非一時的データ記憶媒体に格納することができる。
また、制御線及び情報線は説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線及び情報線を示しているとは限らない。実際にはほとんど全ての構成が相互に接続されていると考えてもよい。