[本実施の形態の概要]
本実施の形態では、例えばGPS(Global Positioning System)端末及び無線通信機を車両に搭載する複数のプローブ車両を用意する。そして、複数のプローブ車両は、走行中、一定の時間間隔(例えば数十秒から数分間)又は一定の走行距離(数百メートル間隔乃至数キロメートル間隔)毎に、GPS端末により走行位置を計測し、無線通信機によって走行位置データを以下で述べるプローブ道路交通情報システムに送信する。なお、送信間隔が短いほど、以下で述べる処理の精度は向上し、極端な場合にはリアルタイムで送信するようなことも考えられるが、プローブ車両の数、通信コストや無線通信負荷の問題からして、ある程度の間隔毎に走行位置データを送信するのが現実的である。そうすると、走行位置データに含まれる計測位置間をプローブ車両がどのような経路で走行したかについては一義的には決まらない場合が生じ(得)るということになる。
これに対してプローブ道路交通情報システムでは、複数のプローブ車両の走行位置データを受信して蓄積する。そして、蓄積された走行位置データを、既存の道路地図ネットワークにおける道路リンク(以下では、単にリンクと述べる場合もある)に投影して、各道路リンクについてプローブ車両が走行した頻度を計数する。そして、道路リンクの長さで頻度を除することによって正規化し、正規化された頻度の値を当該道路リンクを走行する蓋然性(又は利用しやすさ)を表すデータとして用いて、同一プローブ車両の2つの走行位置間の経路として最も可能性の高い経路を求める。これが、経路同定の結果となる。
さらに、経路が同定されれば、経路上の各リンクについて所要走行時間を算出することができ、さらにリンク毎の平均走行時間も算出できる。このようにすれば、どこで渋滞が発生しているのか、どこが空いている道なのかを特定することも可能となる。
[本実施の形態の具体的な構成]
図1に本実施の形態におけるシステム概要を示す。プローブ道路交通情報システム100は、上で述べたようにGPS端末及び無線通信機を有する複数のプローブ車両から無線を含む通信網を介して走行位置情報を受信するプローブ車両位置収集部101と、プローブ車両位置収集部101によって取得された走行位置情報を格納する走行位置情報格納部102と、複数のノードと当該ノード間のリンクによって表される道路地図ネットワークのデータを格納する道路地図ネットワーク情報格納部105と、走行位置情報格納部102と道路地図ネットワーク情報格納部105とに格納されているデータを用いて道路リンク毎に走行頻度を計算する道路リンク別走行頻度算出部103と、道路リンク別走行頻度算出部103の処理結果を格納する道路リンク別走行頻度情報格納部104と、道路リンク別走行頻度情報格納部104と道路地図ネットワーク情報格納部105とに格納されているデータを用いて道路リンク毎に正規化走行頻度を算出する正規化走行頻度算出部106と、正規化走行頻度算出部106の処理結果を格納する正規化走行頻度情報格納部107と、走行位置情報格納部102と正規化走行頻度情報格納部107と道路地図ネットワーク情報格納部105とに格納されているデータを用いて車両毎に走行経路を同定するための経路計算を実施する車両別走行経路算出部109と、車両別走行経路算出部109の処理結果を格納する車両別走行リンク情報格納部110と、車両別走行リンク情報格納部110と道路地図ネットワーク情報格納部105とに格納されているデータを用いて道路リンク毎に平均走行時間を算出する道路リンク別平均走行時間算出部111と、道路リンク別平均走行時間算出部111の処理結果を格納する道路交通情報DB112と、道路地図ネットワーク情報格納部105と道路交通情報DB112や車両別走行リンク情報格納部110に格納されているデータを用いて出力データを生成して出力する出力部113と、道路リンク別走行頻度算出部103及び車両別走行経路算出部109に対して必要な入力データをユーザから受け取り出力する入力部108とを有する。
道路地図ネットワークは、図2に模式的に示すように、例えば交差点(交差点でない位置にノードが設けられる場合もある)に対応する複数のノードn1001乃至n1005を、道路に対応する道路リンク1000乃至1007で接続するようなネットワークである。本実施の形態では、一方通行でない場合には基本的には互いに逆方向の2本のリンクで、ノード間を接続するものとする。但し、場合によっては双方向で通行できる場合でも1本のリンクで繋がれている場合もある。
このような道路ネットワークを表現するためのデータとして、道路地図ネットワーク情報格納部105には、図3に示すようなデータが格納される。図3の例では、道路リンク番号に対応付けられて、道路種別と、リンク距離(リンク長)と、位置(例えば始点位置−終点位置)とが登録されるようになっている。なお、位置については、始点ノード番号及び終点ノード番号で特定しておき、ノード番号と位置の関係を保持する別のテーブルを用いて具体的な位置を特定するようにしても良い。
次に、図4乃至図19を用いて、プローブ道路交通情報システム100の動作について説明する。
上でも述べたが、プローブ車両は、走行位置情報を、所定時間間隔又は所定走行距離毎に、無線を含む通信網を介してプローブ道路交通情報システム100に送信する。この走行位置情報は、例えば、車両種別、車両ID、取得日時、車両位置、移動方向、移動速度、状態(例えばタクシーであれば顧客が乗車中であるか否か、トラックであれば顧客の荷物を積載中であるか否かなど。)などのデータを含む。
プローブ道路交通情報システム100のプローブ車両位置収集部101は、全てのプローブ車両から走行位置情報を随時受信し、走行位置情報格納部102に格納する(図4:ステップS1)。なお、このステップは、説明の便宜上最初に行う処理として説明しているが、実際はこれ以降に述べる処理とは別スレッドで随時実施される。
例えば、図5に示すようなデータが、走行位置情報格納部102に格納される。図5の例では、車両種別、車両ID、日時、位置、移動方向、速度及び状態が登録されるようになっている。本実施の形態において以下の処理で用いられないデータもあるが、そのようなデータは本実施の形態以外の処理において用いられる場合もある。
そして、入力部108は、正規化走行頻度算出及び平均走行時間算出のためのデータ抽出範囲の指定をユーザに対して促し、ユーザからの入力を受け付ける(ステップS3)。
正規化走行頻度は、以下で述べる正規化走行頻度算出部106で算出され且つ各リンクをプローブ車両が通過する可能性を表す数値(単位距離(単位長さ)あたりの走行頻度)である。そして、正規化走行頻度算出のためのデータ抽出範囲については、どのようなプローブ車両が通過する可能性をどのような時間/地域のデータをベースに算出するかを指定するために入力する。例えば、タクシーを含む一般車両が通過する可能性を直近1ヶ月間東京23区内の範囲で算出するといった指定を行う。
また、平均走行時間は、プローブ車両が各道路リンクをどの程度の時間で通過しているかを表す数値である。平均走行時間算出のためのデータ抽出範囲は、どのようなプローブ車両がどのような時間/地域について走行した結果をベースに平均走行時間を算出するかを指定するために入力する。例えば、タクシーを含む一般車両が直近30分間東京23区内の範囲を走行した結果で平均走行時間を算出するといった指定を行う。
正規化走行頻度を基に平均走行時間を算出するので、正規化走行頻度算出のためのデータ抽出範囲と、平均走行時間算出のためのデータ抽出範囲とは、ある程度の関連性を有するものとなる。すなわち、同様の地域についてデータ抽出範囲を指定する必要があり、時間についても、例えば前者が金曜日の14時から15時というようなデータ抽出範囲であれば、後者は過去6ヶ月において平日の14時から15時というようなデータ抽出範囲とする。
なお、ある程度ルールを決めてしまえば、平均走行時間算出のためのデータ抽出範囲のみを入力するようにして、当該データ抽出範囲から自動的に正規化走行頻度算出のためのデータ抽出範囲を特定するようにしても良い。
また、これとは別に、天気のデータをも収集しておき、データ抽出範囲についても天気を指定するようにしても良い。
さらに、例えば30分毎に30分時間だけがシフトするが他の条件については同一のデータ抽出範囲について定期的に処理する場合には、平均走行時間算出のためのデータ抽出範囲についても自動的に生成するような構成を採用するようにしても良い。
入力部108は、正規化走行頻度算出のためのデータ抽出範囲のデータについては道路リンク別走行頻度算出部103に出力する。平均走行時間算出のためのデータ抽出範囲のデータについては車両別走行経路算出部109に出力する。
次に、道路リンク別走行頻度算出部103は、正規化走行頻度算出のためのデータ抽出範囲に応じて、走行位置情報格納部102から該当する走行位置情報を抽出し、例えばメインメモリなどの記憶装置に格納する(ステップS5)。また、車両別走行経路算出部109も、平均走行時間算出のためのデータ抽出範囲に応じて、走行位置情報格納部102から該当する走行位置情報を抽出し、例えばメインメモリなどの記憶装置に格納する(ステップS7)。
そして、道路リンク別走行頻度算出部103等は、正規化走行頻度情報生成処理を実施する(ステップS9)。この正規化走行頻度情報生成処理については、図6乃至図9を用いて説明する。
まず、道路リンク別走行頻度算出部103は、正規化走行頻度算出のためのデータ抽出範囲に含まれる未処理の走行位置レコードを1つ特定する(図6:ステップS21)。そして、周知のマップマッチングにより、道路地図ネットワーク情報格納部105に登録されている道路リンクのうち、特定された走行位置レコードの走行位置が対応付けられるリンクを特定し、当該リンクのカウントを1インクリメントする(ステップS23)。GPSによる位置情報は必ずしも正確ではなく、走行位置が道路地図ネットワーク情報格納部105に登録されているいずれかの道路リンク上に常に載るわけではない。従って、道路リンクから離れていた場合、走行位置をどの道路リンクに対応付けるのかというのは、従来のカーナビゲーションシステムにおいても問題となっていた。このような問題を解決するためマップマッチングという手法が以前より用いられており、本実施の形態でもステップS23で用いる。簡単に述べれば、走行位置から候補リンクに垂線を下ろした際に最も短い垂線が下ろされたリンクを選択するものである。但し、走行規制など他の補助的なデータを用いてリンクを選択する技術も存在しており、そのような技術を本ステップで用いるようにしても良い。
また、ステップS23のカウント結果は、例えば道路リンク別走行頻度情報格納部104に格納される。この道路リンク別走行頻度情報格納部104に格納されるデータの一例を図7に示す。図7の例では、道路リンク番号毎に、走行頻度のカウンタが設けられている。ステップS23で1つのリンクが特定されると、該当するリンク番号のカウンタの値が1インクリメントされる。
ステップS23の処理結果を模式的に示すと図8のようなものになる。すなわち、各リンク(ノードである丸印の間の線)には、測定された走行位置に相当する点(矩形)がマッピングされており、各リンクにマッピングされた走行位置の数が、そのリンクの走行頻度ということになる。なお、図8の星マークは、以下で述べる車両別走行経路算出処理の対象となる、特定車両の計測位置の2点(始点及び終点)を示している。この2点間の経路を同定することになる。
そして、道路リンク別走行頻度算出部103は、正規化走行頻度算出のためのデータ抽出範囲に含まれる走行位置レコードを全て処理したか判断する(ステップS25)。未処理の走行位置レコードが存在する場合にはステップS21に戻る。
一方、正規化走行頻度算出のためのデータ抽出範囲に含まれる走行位置レコードを全て処理した場合には、正規化走行頻度算出部106の処理に移行する。
すなわち、正規化走行頻度算出部106は、道路リンク別走行頻度情報格納部104における未処理のリンクを1つ特定する(ステップS27)。そして、該当レコードにおける頻度を、道路リンク番号に対応付けて道路地図ネットワーク情報格納部105に格納されているリンク距離で除することによって正規化走行頻度(すなわち、単位距離あたりの走行頻度)を算出し、正規化走行頻度情報格納部107に格納する(ステップS29)。例えば、図9に示すようなデータが正規化走行頻度情報格納部107に格納される。図9の例では、道路リンク番号に対応付けて、正規化走行頻度が登録されるようになっている。なお、本実施の形態では単純に、走行頻度をリンク距離で除することによって正規化走行頻度を算出することとしているが、さらに他の情報を用いて正規化走行頻度を調整するようにしても良い。例えば、道路地図ネットワーク情報格納部105には、リンク毎に道路種別が登録されている。道路種別には、一般道、幹線、細街路のような種別が含まれ、例えば幹線の方が走行する可能性が高いものとして、例えば1以上の所定の係数を、正規化走行頻度に乗ずるようにしても良い。また、実際に速く走行できるリンクの方が利用可能性が高いので、過去の平均走行速度(例えば道路交通情報DB112に格納されているデータ)の高低により調整しても良い。
そして、正規化走行頻度算出部106は、道路リンク別走行頻度情報格納部104に登録されている全てのリンクについて処理したか判断する(ステップS31)。未処理のリンクが存在する場合にはステップS27に戻る。一方、全てのリンクについて処理した場合には、元の処理に戻る。
このような処理を実施することによって、各道路リンクについて比較可能な、プローブ車両が走行する可能性を表す評価値が算出されたことになる。
図4の処理の説明に戻って、車両別走行経路算出部109は、車両別走行経路算出処理を実施する(ステップS11)。この車両別走行経路算出処理については、図10乃至図14を用いて説明する。なお、ステップS11が終了すると処理は端子Aを介して図15の処理に移行する。
車両別走行経路算出部109は、平均走行時間算出のためのデータ抽出範囲に含まれる走行位置レコードを、車両毎且つ時間順にソートする(図10:ステップS41)。本実施の形態では、各車両について連続する2走行位置間の経路を同定する。しかしながら、データ抽出範囲で指定された時間内において、同一車両につき3以上の走行位置が特定される場合がある。以下の処理は、同一車両について、連続する2つの走行位置を1つずつずらしながら、それぞれの2走行位置間の経路を同定する。図11に模式的に示すように、AからCの順番で走行位置が得られた場合には、A及びBを第1セットとして最初に経路同定を実施し、次に、B及びCを第2セットとして次に経路同定を実施する。
従って、車両別走行経路算出部109は、走行位置レコードのソート結果において未処理の車両を1つ特定する(ステップS43)。そして、特定された車両についての走行位置レコードのうち未処理の連続レコードを時刻順に特定する(ステップS45)。そして、特定された車両の特定された走行位置レコード及び道路地図ネットワーク情報格納部105に格納されているデータを用いて、走行経路算出処理を実施する(ステップS47)。図8の例では、星印で示した始点から終点までの経路を算出する。本実施の形態では、図8で示した各リンクにおける正規化走行頻度の値に基づき、最も使用した可能性が高いと推定される経路上のリンクを特定する。走行経路算出処理の処理の詳細については後に詳述する。
ここでは2つの手法について、その概要を説明しておく。
[第1の走行経路算出処理]
図12には、着目車両が、第1の時刻t0から第2の時刻t1の間に差し掛かっている地域付近の道路ネットワークを示している。着目車両が、時刻t0に点C0(本実施の形態では、実際の測定位置ではなく、道路ネットワークにマッピングされているので「地点」とは呼ばず、「点」と呼ぶことにする)を通過し、時刻t1に点C1を通過した(又は通過しつつある)ものとする。点C0と点C1の間の経路は、測定されていないので不明であり、以下のような考え方で経路同定を行う。
なお、図12において、道路ネットワークにはノードA00乃至A22が含まれており、リンクB00-01乃至B21-22も含まれている。リンク番号の付与の仕方は、例えば[発ノードのシリアル番号]−[着ノードのシリアル番号」となっている。また、図12には示されていないが、リンクBx-yの正規化走行頻度を、「bx-y」と表すものとする。
また、ノード間のリンクには上でも述べたように向きがあり、いずれかを「上り」とする場合には、逆方向を「下り」として特定できる。但し、図12の例では、「上り」及び「下り」のいずれかのみを示している。ここでは、議論を単純化するため、図12の矢印の向き(場所により、上り又は下りに対応)にのみ移動可能という前提で考える。
そして、本実施の形態では、ノードAij上にいる(又はノードAijを通過しつつある)場合に、その先は「ノードAijを起点とするリンク」が到達している隣接ノードにしか移動できないものとする。例えば、ノードA11にいるとすると、その先はノードA12又はノードA21にしか移動できないものとする。すなわち、ノードA01及びA10へは移動できないものとする。
さらに、同じ仮定の下、(ノードA11から)ノードA12へ移動する可能性(場合によっては移動確率とも呼ぶ)P11-12は、「b11-12/(b11-12+b11-21)」であるものとする。すなわち、移動可能性のあるリンクB11-12及びB11-21の正規化走行頻度の総和に対するリンクB11-12についての正規化走行頻度の比率である。さらに、ノードA21へ移動する可能性P11-21は、「b11-21/(b11-12+b11-21)」であるものとする。すなわち、移動可能性のあるリンクB11-12及びB11-21の正規化走行頻度の総和に対するリンクB11-21についての正規化走行頻度の比率である。なお、ノード列で経路を特定しても良いが、以下で述べるように処理プロセスの最後の方でリンクに関わる値としてのリンクの平均走行速度を算出するので、リンク列で表している。但し、ノード列とリンク列とは道路地図ネットワーク情報格納部105のデータを用いれば容易に変換可能である。
なお、着目ノードA11から隣接ノードに繋がるリンクのいずれにおいても上で述べた正規化走行頻度bの値が0である場合には、A11から先への移動は不可能となるため、これ以上の探索は行わない。
同様に、C0からC1までの多くの(又は全ての)リンクの正規化走行頻度bが0であり、bが0でないリンクのみを辿ってC0からC1に到達することが不可能である場合には、(本方式による)これらの点の間の経路同定は不可能であり、同定処理を終了するものとする。
そうすると、経路「リンクBi0j0-i1j1(添字はi0j0−i1j1を表す。以下同様とする。),Bi1j1-i2j2,...,Bi(n-1)j(n-1)-injn」上を移動する場合における経路選択可能性Pi0j0-i1j1-...-injnは、「可能性Pi0j0-i1j1・Pi1j1-i2j2・..・Pi(n-1)j(n-1)-injn」で計算される。
例えば図12で示した範囲を車両が走行する可能性のある範囲(この範囲については予め定められた妥当な範囲に設定する)であるとすると、図12に示されているリンクであって上で述べたような引き返しやループを行わないという条件を満たすように選択した、点C0からC1までの連続リンク列で特定される複数の経路について、それぞれ経路選択可能性を算出する。そして最も経路選択可能性が大きな値となった経路を、本実施の形態における経路同定で特定された経路とする。
なお、具体的には、進行方向に点C0に隣接するノードA00から、進行方向とは逆方向に点C1に隣接するノードA22までの経路を見つけ出した後に、点C0が載っているリンクと、点C1が載っているリンクとを連結することによって、全体の経路が特定される。
このようにすれば、同じような時間などの条件において同じような種類のプローブ車両が通っていた可能性の最も高い経路を特定することができるようになる。
なお、上で述べた移動可能性Pの式については、各リンクについてそのリンクを走行する車両の平均速度がほぼ一定であるとみなした場合の式である。そもそも走行位置情報と共に、走行速度情報が採取でき、且つそのリンク毎の平均を求めることができる等の条件が成立し、且つリンク毎の車両の平均速度を考慮して、より正確に移動可能性Pの値を求める場合には、以下のような式を用いるものとする。(vi-jは、リンクBi-jの平均速度である。)リンク毎の車両の平均速度については、例えば、道路交通情報DB112に格納されている過去のデータを用いればよい。
P11-12=(b11-12・v11-12)/(b11-12・v11-12+b11-21・v11-21)
P11-21=(b11-21・v11-21)/(b11-12・v11-12+b11-21・v11-21)
[第2の走行経路算出処理]
図13には、着目車両が、第1の時刻t1から第2の時刻t2の間に差し掛かっている地域付近の道路ネットワークを示している。着目車両が、時刻t1に点C1を通過し、時刻t2に点C2を通過した(又は通過しつつある)ものとする。点C1と点C2の間の経路は、測定されていないので不明であり、以下のような考え方で経路同定を行う。
なお、図13において、道路ネットワークにはノードA1乃至A11が含まれており、リンクB1-2乃至B11-10も含まれている。リンク番号の付与の仕方は、例えば[発ノードのシリアル番号]−[着ノードのシリアル番号」となっている。また、図13には示されていないが、リンクBx-yの正規化走行頻度を、「bx-y」と表すものとする。
図12とは異なり、ノード間に双方向のリンクが設定されている場合も考慮されている。
また、ノード間のリンクには上でも述べたように向きがあり、いずれかを「上り」とする場合には、逆方向を「下り」として特定できる。
そして、本実施の形態では、ノードAi上にいる(又はノードAiを通過しつつある)場合に、その先は「ノードAiを起点とするリンク」が到達している隣接リンクにしか移動できないものとする。例えば、図13におけるノードA5にいるとすると、その先はノードA2、A4、A6又はノードA9にしか移動できないものとする。
さらに、同じ仮定の下、ノードA5からノードA2、A4、A6及びA9へ移動する可能性(場合によっては移動確率とも呼ぶ)P5-2、P5-4、P5-6、P5-9は、それぞれ以下のように表される。
P5-2=b5-2/(b5-2+b5-4+b5-6+b5-9)
P5-4=b5-4/(b5-2+b5-4+b5-6+b5-9)
P5-6=b5-6/(b5-2+b5-4+b5-6+b5-9)
P5-9=b5-9/(b5-2+b5-4+b5-6+b5-9)
すなわち、移動可能性のあるリンクの正規化走行頻度の総和に対する注目リンクについての正規化走行頻度の比率である。
そうすると、経路「ノードAi1,Ai2,...,Ain」上を移動する場合における経路選択可能性Pi1-i2-...-inは、「可能性Pi1-i2・Pi2-i3・..・Pi(n-1)-in」で計算される。この経路選択可能性Pi1-i2-...-inが最大となる経路を、注目車両が実際に通過した経路とみなす。なお、ノード列で経路を特定しているが、リンク列で特定するようにしても良い。
また、例えばノードA5から隣接ノードに繋がるリンクのいずれにおいても、正規化走行頻度b5-jが0である場合又は0に近いほど小さい場合には、A5から先への移動は可能性が0ということで、それ以上経路同定を継続しない。
また、C1からC2までのリンクの正規化走行頻度が0又は0に近いほど小さく、現実的な経路長の範囲で経路同定を行うことができない状態、或いはそう見做せる状態であれば、(本方式による)経路同定処理を中止する。同様な考え方に基づき、C1からC2までのリンクの大部分の正規化走行頻度が0又は0に近いほど小さい場合に、(本方式による)経路同定処理を中止することもできる。
そして、既に通過しているノードを再度通過するような探索や、ループを構成するような探索については行わないものとする。但し、このような条件を満たしていれば、A1、A2、A5と移動してきて、さらにA4、A8、A9、A10というように、一見すると遠回りとなるような経路も考慮するものとする。
より具体的に経路選択可能性Pi1-i2-...-inが最大となる経路は、以下に述べる事項に従って得られる。
(a)図13の各道路リンクBi-jに対して、属性値Qi-j=1/Pi-jを算出する。第1の走行経路算出処理の移動可能性の逆数を属性値として用いるものである。
(b)点C1から点C2までの経路のうち、自明である点C1からノードA1まで、ノードA11から点C2までを除き、ノードA1からA11までの経路を探索する。
(c)この際、Qi1-i2-...-in=Qi1-i2・Qi2-i3・..・Qi(n-1)-inが最小となるような経路を特定する。
(d)そのため、F(ij)を、出発ノードAi1(i1=1)からAijに至る経路のうちQi1-i2-...-ijが最小の値を取る経路におけるQi1-i2-...-ijの値であるとする。なお、F(i1)=F(1)=1であるとする。
(e)そして、Ai1(=A1)からはじめて、
F(i’
1),F(i’
2),...,F(i’
m)(ここでi’
1=i
1)を、この順に、A
in(=A
11)まで計算してゆく。(i’
m=i
nである。i’
mは初めから知ることはできない。F(i’
1),F(i’
2),...,F(i’
n)を順に求めてゆき、i
nに一致するi’
mに到達した時点で、i’
mを知ることができる。)ここでF(i’
1)≦F(i’
2)≦...≦F(i’
n)である。
F(i’1),F(i’2),...,F(i’n)は、詳細には、次のように求めてゆく。まずF(i’1)(すなわちF(i1))は、上記のようにF(i1)=F(1)=1であることから1である。(すなわちF(i’1)=F(i1)=1である。)次にF(i’2)を求めるが、この段階では、ノードAi'1(i’1は式(1)のi’jに対応)に隣接するノード(すなわち1つのリンクを介してAi'1につながるノード)の中で、式(1)のF(i’k)の値が最小となるようなノードAi'k(「式(1)のF(i’k)の値が最小となるようなi’k」に対応する(そのようなi’kを添字として持つ)ノードAi'k)を選び、それをAi'2とする。この時、Ai'1からAi'2に至る経路のうち、Qi'1-i'2が最小となる経路におけるQi'1-i'2の値がF(i’2)である。(ここに述べたことから分かるように、Ai'2とF(i’2)は、相互に対応するものと捉えることができる。)次にF(i’3)を求めるが、この段階では、既に到達したノード(ここではAi'1、Ai'2(i’1、i’2は、式(1)のi’jに対応))のいずれかに隣接するノード(但し未到達のノード)の中で、式(1)のF(i’k)の値が最小となるようなノードAi'k(「式(1)のF(i’k)の値が最小となるようなi’k」に対応するノードAi’k)を選び、それをAi'3とする。この時、Ai'1からAi'3に至る経路のうち、Qi'1-...-i'3が最小となる経路におけるQi'1-...-i'3の値がF(i’3)である。(Ai'3とF(i’3)は、相互に対応するものと捉えることができる。)
以下、順次、既に到達したノードのいずれかに隣接するノード(但し未到達のノード)の中で、式(1)のF(i’k)の値が最小となるようなノードAi'k(「式(1)のF(i’k)の値が最小となるようなi’k」に対応するノードAi'k)を求めてゆき、それに対応するF(i’k)を求めてゆく。以上のことは、最終到達ノード(すなわちAin)に到達するまで続ける。
(f)その結果、Qi1-i2-...-in(i1=1,in=11)が最小になる経路を特定する。Qi1-i2-...-inの添字i1,i2,...,inの値は、(e)で最終的に求めたQi'1-...i'mの添字i’1,...,i’mを参照して知る。「i1,i2,...,in」と「i’1,...,i’m」において、(左から数えて)同じ位置にあるものの値同士は等しい。
(g)この経路の前に点C1からノードA1の経路を、後にノードA11から点C2までの経路を連結すれば、点C1から求めるべき点C2までの経路同定の結果となる。
以上のような処理を実施する場合においても、過去のプローブ車両の走行実績から今回のプローブ車両も採用した可能性が高い経路を同定することができるようになる。
なお、上で述べた移動可能性Pの式については、各リンクについてそのリンクを走行する車両の平均速度が一定であるとみなした場合の式である。そもそも、走行位置情報と共に、走行速度情報が採取でき、且つそのリンク毎の平均を求めることができる等の条件が成立して、リンク毎の車両の平均速度を考慮できる場合には、以下のような式を用いるものとする。リンク毎の車両の平均速度については、例えば、道路交通情報DB112に格納されている過去のデータを用いればよい。なお、リンクBi-jの平均速度をvi-jとすると、例えばP5-2、P5-4、P5-6、P5-9は以下のように表される。
P5-2=(b5-2・v5-2)/(b5-2・v5-2+b5-4・v5-4+b5-6・v5-6+b5-9・v5-9)
P5-4=(b5-4・v5-4)/(b5-2・v5-2+b5-4・v5-4+b5-6・v5-6+b5-9・v5-9)
P5-6=(b5-6・v5-6)/(b5-2・v5-2+b5-4・v5-4+b5-6・v5-6+b5-9・v5-9)
P5-9=(b5-9・v5-9)/(b5-2・v5-2+b5-4・v5-4+b5-6・v5-6+b5-9・v5-9)
この処理の結果、例えば図14に示すような車両別走行リンクテーブルが、車両別走行リンク情報格納部110に格納されるようになる。図14の例では、車両IDと、処理に係る2走行位置レコードのうち時間的に先の走行位置レコードに含まれる時刻である発時刻と、処理に係る2走行位置レコードのうち時間的に後の走行位置レコードに含まれる時刻である着時刻と、経路同定で特定されたリンク列(リンク1乃至3...)とが登録されるようになっている。なお、リンク列のうち最初と最後のリンクについては、注目している車両はそれらのリンク個々において全ての区間は走行していない可能性がある。また、同一車両についてのレコードが複数登録されている場合もある。
図10の説明に戻って、車両別走行経路算出部109は、特定された車両の走行位置レコードを全て処理したか判断する(ステップS49)。特定された車両について未処理の走行位置レコードのペアが存在する場合にはステップS45に戻る。
一方、特定された車両について全ての走行位置レコードを処理した場合には、車両別走行経路算出部109は、平均走行時間算出のためのデータ抽出範囲に含まれる走行位置レコードに係る全ての車両について処理したか判断する(ステップS51)。未処理の車両が残っている場合にはステップS43に戻る。一方、全ての車両について処理した場合には、元の処理に戻る。元の処理に戻ると端子Aを介して図15の処理に移行する。
図15の処理の説明に移行して、道路リンク別平均走行時間算出部111は、車両及び道路リンク別走行時間算出処理を実施する(ステップS61)。この車両及び道路リンク別走行時間算出処理については、図16及び図17を用いて説明する。
道路リンク別平均走行時間算出部111は、図14に示したような車両別走行リンクテーブルにおいて、未処理のレコードを1つ特定する(ステップS71)。そして、特定されたレコードに登録されている各リンクの距離(=長さ)を道路地図ネットワーク情報格納部105から読み出し、当該各リンクの距離に応じて発時刻から着時刻までの時間を各リンクに割り振り、各リンクに対応付けて時間を道路交通情報DB112に登録する(ステップS73)。(そもそも、走行位置情報と共に、走行速度情報が採取でき、且つそのリンク毎の平均を求めることができる等の条件が成立する場合は、発時刻から着時刻までの時間を各リンクに割り振る際、リンク毎にリンク長を平均速度で除した値を求め、その比に従って割り振っても良い。)上でも述べたように、注目車両は、両端のリンクについては、それらのリンクの全てを走行しているわけではない。従って、両端のリンクの影響を除去するか、又は無視する。
具体的には、前者であれば、例えばマップマッチングで走行位置の対応付けを行った際に、対応付けされたリンク上のどの位置で対応付けられたかを保持しておく。そして、経路同定がなされた後に、始点から進行方向で当該始点に隣接するノードまでの距離と、終点から当該終点に進行方向とは逆方向で隣接するノードまでの距離と、両端リンク以外の各リンクの距離とで、発時刻から着時刻までの時間を按分する。但し、始点から当該始点に隣接するノードまでの距離のための時間と、終点から当該終点に隣接するノードまでの距離のための時間とは、以下の処理では用いない。また、後者であれば、両端リンク以外の各リンクの距離で、発時刻から着時刻までの時間を按分する。多少各リンクに割り振られる時間が長くなるが、処理は簡単で高速であり、以下の処理で平均化するので精度的に問題ない場合もある。
このような処理を実施することにより、図17に示すようなデータが道路交通情報DB112に格納される。図17の例では、リンクIDに対応付けられて所要時間が登録されている。
そして、道路リンク別平均走行時間算出部111は、車両別走行リンクテーブルにおける全てのレコードについて処理したか判断する(ステップS75)。未処理のレコードが存在する場合にはステップS71に戻る。一方、全てのレコードを処理した場合には、元の処理に戻る。
このような処理を実施することによって、各車両が走行した各リンクについて要した走行時間を特定することができるようになる。
図15の処理の説明に戻って、道路リンク別平均走行時間算出部111は、道路交通情報DB112に登録されているテーブル(図17)を用いてリンク別平均走行時間算出処理を実施する(ステップS63)。リンク別平均走行時間算出処理については、図18及び図19を用いて説明する。
まず、道路リンク別平均走行時間算出部111は、道路交通情報DB112に登録されているテーブル(図17)において、リンクIDでレコードをソートする(ステップS81)。そして、未処理のリンクIDを1つ特定する(ステップS83)。そして、特定されたリンクIDについての全てのレコードを、上で述べたテーブルから抽出する(ステップS85)。その後、抽出レコード数をカウントすると共に、時間の総和を算出し、当該時間の総和を抽出レコード数で除することによって、処理に係るリンクについての平均走行時間を算出し、道路交通情報DB112に登録する(ステップS87)。
例えば、図19に示すようなデータが道路交通情報DB112に登録される。図19の例では、リンクIDに対応付けて平均走行時間が登録されている。このように平均走行時間が得られれば、この数値の大小によってスムーズに流れているリンクや、渋滞が発生しているようなリンクを容易に特定できるようになる。
そして、道路リンク別平均走行時間算出部111は、図17のようなテーブルにおいて全てのリンクIDについて処理したか判断する(ステップS89)。未処理のリンクIDが存在している場合にはステップS83に戻る。一方、全てのリンクIDを処理した場合には、元の処理に戻る。
このような処理を実施することによって、道路状況を把握するための基本的なデータを得ることができる。
図15の処理の説明に戻って、出力部113は、道路交通情報DB112に格納されている各リンクについての平均走行時間を、表示装置や印刷装置などの出力装置に出力する(ステップS65)。図19のようなテーブルをそのまま出力しても良いが、例えば道路地図ネットワーク情報格納部105から道路ネットワークのデータを読み出して、道路ネットワークを表示すると共に、例えば各リンクに関連付けて平均走行時間を表示するようにしても良い。さらに、平均走行時間のランク付けを行って、道路ネットワークにおいてランク付けに応じてリンクの色分けを行って表示するようにしても良い。
なお、出力部113は、例えばプローブ車両以外の車両にデータを配信するような処理部であってもよい。さらにWebサーバのようにアクセスに応じてデータを送信するようにしても良い。
[第1の走行経路算出処理の詳細]
上では概略のみを示したが、ここで処理フローを図20及び図21を用いて説明しておく。まず、車両別走行経路算出部109は、道路地図ネットワーク情報格納部105に格納されているデータに基づき、始点C0から進行方向で隣接するノードA00と、終点C1から進行方向とは逆方向で隣接するノードA22とを特定する(図20:ステップS101)。そして、道路地図ネットワーク情報格納部105に格納されているデータに基づき、A00からA22までの第1経路探索処理を実施する(ステップS103)。この第1経路探索処理については、図21を用いて説明する。
第1の走行経路算出処理においては、図12に示したように、一定の範囲に探索範囲を限定すると共に、引き返したり、迂回したり、ループしたりするような経路を除外した形で、全経路を特定するような探索方法を採用している。
具体的には、まず、車両別走行経路算出部109は、A00からA22までの全経路を探索する(図21:ステップS111)。図12の例では、(1)A00、A01、A02、A12、A22、(2)A00、A01、A11、A12、A22、(3)A00、A01、A11、A21、A22、(4)A00、A10、A11、A12、A22、(5)A00、A10、A11、A21、A22、(6)A00、A10、A20、A21、A22というように6通りの経路が探索される。
そして、車両別走行経路算出部109は、全ての経路について移動可能性P00-・・・-22を算出し、当該値が最大となる経路を選択する(ステップS113)。6通りの経路のうちいずれか1つを選択する。そして元の処理に戻る。
図20の説明に戻って、車両別走行経路算出部109は、始点C0からA00までの経路と、A22から終点C1までの経路とをステップS103における経路探索結果に連結して、経路同定結果を車両別走行リンク情報格納部110に格納する(ステップS105)。
このような処理を実施することによって、処理に係る車両が走行した可能性の最も高い経路が同定されたことになる。
[第2の走行経路算出処理の詳細]
第2の走行経路算出処理についても、ここで処理フローを図22乃至図25を用いて説明しておく。
まず、車両別走行経路算出部109は、道路地図ネットワーク情報格納部105に格納されているデータに基づき、始点C1から進行方向で隣接するノードA1と、終点C2から進行方向とは逆方向で隣接するノードA11とを特定する(ステップS121)。そして、道路地図ネットワーク情報格納部105に格納されているデータに基づき、ノードA1からA11までの第2経路探索処理を実施する(ステップS123)。第2経路探索処理については、図23乃至図25を用いて説明する。
車両別走行経路算出部109は、探索回数のカウンタであるkを1に初期化し(図23:ステップS131)、遷移先ノードAikの添え字ikに開始ノードA1に対応する「1」をセットする(ステップS133)。さらに、遷移先ノードAik=A1とセットする(ステップS135)。このデータについては、車両別走行リンク情報格納部110の探索テーブルに格納する。
そして、車両別走行経路算出部109は、遷移先ノードAikが終了ノードA11であるかどうか判断する(ステップS137)。このように、遷移先ノードAikが終了ノードA11に到達した場合には、そこで探索を終了する。
上で述べたように、図13の例で例えばノードA5からノードA2への(リンクB5-2を通った)移動可能性P5-2は以下のとおりである。
P5-2=b5-2/(b5-2+b5-4+b5-6+b5-9)
このように移動可能性Pは、0以上1以下の値になる。そして属性値Q5-2は、1/P5-2であるので、属性値Q5-2は必ず1以上の実数となる。(但しP5-2が0の時Q5-2は∞となる。)従って、遷移先ノードにおける総合の評価値を表す(1)式の値は必ず増加する(または等しい値のままである)。ステップS137で示すような探索終了条件を用いれば、(1)式の値ができるだけ小さな値になる(留る)ようなノード(経路)を順次求めて行くことによって、ノードA1からノードA11迄の、(1)式が最小の値となるような経路を求めることができる。
多くの場合、そして少なくともこの例の場合、最初に実行する際にはステップS137の条件を満たすことはないので、遷移先ノードAikが終了ノードA11ではないと判断され、車両別走行経路算出部109は、kを1インクリメントし(ステップS139)、(1)式によってik及びAikを決定し、例えば車両別走行リンク情報格納部110の探索テーブルに格納する(ステップS141)。そして、ステップS137に戻る。
このようにステップS137乃至S141をステップS137の条件を満たすようになるまで繰り返す。車両別走行リンク情報格納部110の探索テーブルは、例えば図25に示すようなテーブルである。すなわち、kと、ikと、遷移先ノードAikと、遷移先ノードAikに到達する直前のノード(探索元のノード)Mikとが登録されるようになっている。
ここでは図13と同じ道路ネットワークを今回の探索を説明するために図24に示す。図24においてノード付近に示された括弧付きの数字は、図25の探索テーブルのkの値と一致している。k=1の場合には、上で述べたように、ik=1でAik=A1となる(図25の第1行)。k=2となると、(新たな探索の起点となり得る)探索元ノードは、探索テーブルにおける遷移先ノードAikの列に既に登録されているノードA1であり(この場合、既に登録されているのはA1のみである)、このノードから(1)式によって得られる。すなわち、F(1)=1と遷移の属性値Q(「遷移に対応するリンク」の属性値Q)との積が最も小さくなるようなノードを探索する。k=2の段階では、遷移先の候補となるのはA2とA4であるが、ここではA2の方がその遷移の属性値Qが小さいので採用され、i2=2、Ai2=A2と特定され、図25の探索テーブルの2行目に登録される。なお、Mi2は探索元ノードA1である。また、F(2)については、F(2)=F(1)*Q1-2である。F(4)についてはこの段階ではF(4)=F(1)*Q1-4である。F(2)及びF(4)の値については以下の処理で用いるので保持しておく。また、(図25の探索テーブルに(少なくともこの段階で)登録されていない)A4については、A4が遷移先候補として取上げられたということ(事実)、及びA4の探索元が(この段階で)A1であることを、以下の処理のための情報として、保持しておく。
k=3となると、(新たな探索の起点となり得る)探索元ノードは、ノードA1及びノードA2となる。これらのノードから(1)式を用いて次の遷移先ノードを探索する。すなわち、F(1)=1と遷移の属性値Qとの積及びF(2)と遷移の属性値Qとの積のうち値が最も小さくなるようなノードを探索する。k=3の段階では、遷移先ノードの候補は、A3、A4、A5である。そうすると、F(4)、F(5)=F(2)*Q2-5、F(3)=F(2)*Q2-3の三者を比較することになるが、(この例では)F(4)が最小であるとして、ノードA4が選択される。(F(5)、F(3)は、ここで新たに算出するが、F(4)はk=2の場合迄の処理で算出済みのものを用いる。)従って、探索テーブルの3行目には、ik=4、Aik=A4、Mik=A1が登録される。F(4)、F(5)、F(3)の値については保持しておく。また、A3、A5については、A3、A5が遷移先候補として取上げられたということ、及びA3、A5の探索元が(この段階で)A2であることを、以下の処理のための情報として保持しておく。
k=4となると、(新たな探索の起点となり得る)探索元ノードは、ノードA2及びノードA4となる。ノードA1は全ての可能な遷移先ノードについて探索テーブルのAikの列に登録されてしまったので(新たな探索の起点となり得る)探索元ノードから外れる。これらのノードから(1)式によって得られるノード、すなわち、F(2)と遷移の属性値Qとの積及びF(4)と遷移の属性値Qとの積のうち値が最も小さくなるようなノードを探索する。k=4の段階では、遷移先ノードの候補は、A3、A5、A8である。そうすると、ノードA2経由のF(5)(=F(2)*Q2-5)、ノードA4経由のF(5)=F(4)*Q4-5、F(3)、F(8)=F(4)*Q4-8とを比較して、ノードA2経由のF(5)が最小であるとして、ノードA5が選択される。(「A4経由のF(5)」、F(8)は、ここで新たに算出するが、「A2経由のF(5)」、F(3)は、k=3の場合迄の処理で算出済みのものを用いる。)従って、探索テーブルの4行目には、ik=5、Aik=A5、Mik=A2が登録される。F(3)、F(4)、ノードA2経由のF(5)、F(8)の値については保持しておく。(F(5)については、このA2経由の値が、この段階で(更新を最大に施した)最新のものであると考える。)
k=5となると、(新たな探索の起点となり得る)探索元ノードは、ノードA2、ノードA4及びノードA5となる。これらのノードから(1)式を用いて次の遷移先ノードを探索する。すなわち、F(2)と遷移の属性値Qとの積、F(4)と遷移の属性値Qとの積及びF(5)と遷移の属性値Qとの積のうち値が最も小さくなるようなノードを探索する。k=5の段階では、遷移先ノードの候補は、A3、A6、A8、A9である。そうすると、F(3)、F(6)=F(5)*Q5-6、F(9)=F(5)*Q5-9、F(8)とを比較することになるが、ノードA2経由のF(3)が最小であるとして、ノードA3が選択される。(F(6)、F(9)は、ここで新たに算出するが、F(3)、F(8)は、k=4の場合迄の処理で算出済みのものを用いる。)従って、探索テーブルの5行目には、ik=3、Aik=A3、Mik=A2が登録される。F(3)、ノードA2経由のF(5)、ノードA5経由のF(6)、F(8)、F(9)の値については保持しておく。また、A6、A9については、A6、A9が遷移先候補として取上げられたということ、及びA6、A9の探索元が(この段階で)A5であることを以下の処理のための情報として保持しておく。
k=6となると、(新たな探索の起点となり得る)探索元ノードは、ノードA4、ノードA5、ノードA3となる。ノードA2は全ての可能な遷移先ノードについて探索テーブルのAikの列に登録されてしまったので探索元ノードから外れる。これらのノードから(1)式を用いて次の遷移先ノードを探索する。すなわち、F(4)と遷移の属性値Qとの積、F(5)と遷移の属性値Qの積及びF(3)と遷移の属性値Qの積のうち値が最も小さくなるようなノードを探索する。k=6の段階では、遷移先ノードの候補は、A7、A6、A8、A9である。そうすると、F(7)=F(3)*Q3-7、F(6)、F(9)、F(8)とを比較して、ノードA5経由のF(9)が最小であるとして、ノードA9が選択される。F(7)は、ここで新たに算出するが、F(6)、F(9)、F(8)は、k=5の場合迄の処理で算出済みのものを用いる。従って、探索テーブルの6行目には、ik=9、Aik=A9、Mik=A5が登録される。ノードA5経由のF(6)、F(7)、ノードA4経由のF(8)、ノードA5経由のF(9)の値については保持しておく。また、A7については、A7が遷移先候補として取上げられたということ、及びA7の探索元が(この段階で)A3であることを、以下の処理のための情報として、保持しておく。
k=7となると、(新たな探索の起点となり得る)探索元ノードは、ノードA3、ノードA4、ノードA5、ノードA9となる。これらのノードから(1)式を用いて次の遷移先ノードを探索する。すなわち、F(3)と遷移の属性値Qとの積、F(4)と遷移の属性値Qとの積、F(5)と遷移の属性値Qの積及びF(9)と遷移の属性値Qの積のうち値が最も小さくなるようなノードを探索する。k=7の段階では、遷移先ノードの候補は、A7、A6、ノードA4経由のA8、ノードA9経由のA8、ノードA9経由のA4、A10である。そうすると、F(7)、F(6)、F(10)=F(9)*Q9-10、F(8)(=F(4)*Q4-8)と、F(8)=F(9)*Q9-8を比較して、ノードA9経由のF(10)が最小であるとして、ノードA10が選択される。(F(10)、「A9経由のF(8)」は、ここで新たに算出するが、F(7)、F(6)、「A4経由のF(8)」は、k=6の場合迄の処理で算出済みのものを用いる。)従って、探索テーブルの7行目には、ik=10、Aik=A10、Mik=A9が登録される。ノードA5経由のF(6)、ノードA4経由のF(8)、ノードA9経由のF(8)、ノードA9経由のF(4)、F(7)、F(10)の値については保持しておく。また、A10については、A10が遷移先候補として取上げられたということ、及びA10の探索元が(この段階で)A9であることを、以下の処理のための情報として、保持しておく。
k=8となると、(新たな探索の起点となり得る)探索元ノードは、ノードA3、ノードA4、ノードA5、ノードA10、ノードA9となる。これらのノードから(1)式を用いて次の遷移先ノードを探索する。すなわち、F(3)と遷移の属性値Qとの積、F(4)と遷移の属性値Qとの積、F(5)と遷移の属性値Qとの積、F(9)と遷移の属性値Qの積及びF(10)と遷移の属性値Qの積のうち値が最も小さくなるようなノードを探索する。k=8の段階では、遷移先ノードの候補は、A7、ノードA5経由のA6、ノードA4経由のA8、ノードA9経由のA8、ノードA10経由のノードA6、A11である。そうすると、F(7)、ノードA5経由のF(6)(=F(5)*Q5-6)、ノードA10経由のF(6)=F(10)*Q10-6、F(11)=F(10)*Q10-11、ノードA4経由のF(8)、ノードA9経由のF(4)、ノードA9経由のF(8)を比較して、ノードA9経由のF(8)が最小であるとして、ノードA8が選択される。(「A10経由のF(6)」、F(11)は、ここで新たに算出するが、F(7)、「A5経由のF(6)」、「A4経由のF(8)」、「A9経由のF(8)」は、k=7の場合迄の処理で算出済みのものを用いる。)従って、探索テーブルの8行目には、ik=8、Aik=A8、Mik=A9が登録される。ノードA5経由のF(6)、ノードA4経由のF(8)、ノードA9経由のF(8)、F(7)、ノードA9経由のF(4)、ノードA10経由のF(6)、F(11)の値については保持しておく。また、A11については、A11が遷移先候補として取上げられたということ、及びA11の探索元が(この段階で)A10であることを、以下の処理のための情報として、保持しておく。
k=9となると、(新たな探索の起点となり得る)探索元ノードは、ノードA3、ノードA5、ノードA10となる。これらのノードから(1)式を用いて次の遷移先ノードを探索する。すなわち、F(3)と遷移の属性値Qとの積、F(4)と遷移の属性値Qとの積、F(5)と遷移の属性値Qとの積、F(9)と遷移の属性値Qの積、F(8)と遷移の属性値Qの積及びF(10)と遷移の属性値Qの積のうち値が最も小さくなるようなノードを探索する。k=9の段階では、遷移先ノードの候補は、A7、ノードA10経由又はノードA5経由のA6、ノードA4経由のA8、ノードA9経由又はノードA8経由のA4、A11である。そうすると、F(7)、ノードA5経由のF(6)、ノードA10経由のF(6)、F(11)、F(8)と、ノードA9経由のF(4)、ノードA8経由のF(4)=F(8)*Q8-4を比較して、ノードA3経由のF(7)が最小であるとして、ノードA7が選択される。「A8経由のF(4)」は、ここで新たに算出するが、F(7)、「A5経由のF(6)」、「A10経由のF(6)」、F(11)、F(8)、「A9経由のF(4)」は、k=8の場合迄の処理で算出済みのものを用いる。従って、探索テーブルの9行目には、ik=7、Aik=A7、Mik=A3が登録される。ノードA5経由のF(6)、ノードA10経由のF(6)、ノードA4経由のF(8)、ノードA8経由のF(4)、ノードA9経由のF(4)、F(7)、ノードA10経由のF(11)の値については保持しておく。
k=10となると、(新たな探索の起点となり得る)探索元ノードは、ノードA4、ノードA5、ノードA10、ノードA9、ノードA8、A7となる。ノードA3については、遷移先ノードが全てAikに登録されたので探索元ノードから外れる。これらのノードから(1)式を用いて次の遷移先ノードを探索する。すなわち、F(4)と遷移の属性値Qとの積、F(5)と遷移の属性値Qとの積、F(9)と遷移の属性値Qの積、F(8)と遷移の属性値Qの積、F(10)と遷移の属性値Qの積及びF(7)と遷移の属性値Qとの積のうち値が最も小さくなるようなノードを探索する。k=10の段階では、遷移先ノードの候補は、ノードA10経由、ノードA7経由又はノードA5経由のA6、ノードA4経由のA8、ノードA9経由又はノードA8経由のA4、ノードA7経由又はノードA10経由のA11である。そうすると、ノードA5経由のF(6)(=F(5)*Q5-6)、ノードA7経由のF(6)=F(7)*Q7-6、ノードA10経由のF(6)(=F(10)*Q10-6)、ノードA10経由のF(11)(=F(10)*Q10-11)、ノードA4経由のF(8)、ノードA9経由のF(4)、ノードA8経由のF(4)、ノードA7経由のF(11)=F(7)*Q7-11を比較して、ノードA10経由のF(11)が最小であるとして、ノードA11が選択される。「A7経由のF(6)」、「A7経由のF(11)」は、ここで新たに算出するが、「A5経由のF(6)」、「A10経由のF(6)」、「A10経由のF(11)」、「A4経由のF(8)」、「A9経由のF(4)」、「A8経由のF(4)」は、k=9の場合迄の処理で算出済みのものを用いる。従って、探索テーブルの10行目には、ik=11、Aik=A11、Mik=A10が登録される。
このようにk=10になると、Aik=A11となってステップS137の条件を満たすことになる。ステップS137の条件を満たしたと判断されると、車両別走行経路算出部109は、探索テーブルにおいて、Aikの列のA11から直前ノードMikを辿ってA1までノード列を特定し、逆順でA1からA11まで並べ替えて目的の経路を特定する(ステップS143)。以下の処理では、リンク列が必要となるので、道路地図ネットワーク情報格納部105に格納されているデータに基づき、リンク列に変換する。そして元の処理に戻る。
図25の探索テーブルの例では、10行目のMik=A10から、Aikの列にA10が出現する行を探索すると、7行目であることが分かる。この7行目のMik=A9から、Aikの列にA9が出現する行を探索すると、6行目であることが分かる。この6行目のMik=A5から、Aikの列にA5が出現する行を探索すると、4行目であることが分かる。この4行目のMik=A2から、Aikの列にA2が出現する行を探索すると、2行目であることが分かる。この2行目のMik=A1から、開始ノードまで辿ることができたことになる。従って、A11、A10、A9、A5、A2、A1というノード列から、A1、A2、A5、A9、A10、A11が求めるべき経路(図24の太一点鎖線)である。
なお、ノードA6については、遷移先ノードとして特定されることがなかった。これは、上で述べたように属性値Qの特性からしてQ6-11がどのような値であってもこのノードA6を経由すると必ず(1)式の値は他の経路の場合より大きくなるためである。
このような処理を実施することによって、(1)式を用いて次の遷移先ノードを探索されるノード、すなわち、探索元ノードまでの累積属性値と、その探索元ノードから候補ノードまでの属性値Qとの積が最も小さくなるような候補ノードが遷移先ノードとして選択され、走行可能性が最も高い経路が特定されるようになる。
図22の説明に戻って、車両別走行経路算出部109は、始点C1からA1までの経路と、A11から終点C2までの経路とをステップS123における経路探索結果に連結して経路同定結果を、車両別走行リンク情報格納部110に格納する(ステップS125)。
以上本技術の実施の形態を説明したが、本技術はこれに限定されるものではない。例えば、図1に示したプローブ道路交通情報システム100の機能ブロック図は一例であって、必ずしも実際のプログラムモジュール構成と一致しない場合もある。
さらに、処理フローについても処理結果が変わらない限りにおいて処理順番を入れ替えたり、並列に実行したりするようにしても良い。
さらに、上で述べた機能を全て1台のコンピュータで実施しなければならないわけではなく、複数台のコンピュータで実現するようにしても良い。
なお、上で述べたプローブ道路交通情報システム100は、コンピュータ装置であって、図26に示すように、メモリ2501とCPU2503とハードディスク・ドライブ(HDD)2505と表示装置2509に接続される表示制御部2507とリムーバブル・ディスク2511用のドライブ装置2513と入力装置2515とネットワークに接続するための通信制御部2517とがバス2519で接続されている。オペレーティング・システム(OS:Operating System)及び本実施例における処理を実施するためのアプリケーション・プログラムは、HDD2505に格納されており、CPU2503により実行される際にはHDD2505からメモリ2501に読み出される。必要に応じてCPU2503は、表示制御部2507、通信制御部2517、ドライブ装置2513を制御して、必要な動作を行わせる。また、処理途中のデータについては、メモリ2501に格納され、必要があればHDD2505に格納される。本技術の実施例では、上で述べた処理を実施するためのアプリケーション・プログラムはコンピュータ読み取り可能なリムーバブル・ディスク2511に格納されて頒布され、ドライブ装置2513からHDD2505にインストールされる。インターネットなどのネットワーク及び通信制御部2517を経由して、HDD2505にインストールされる場合もある。このようなコンピュータ装置は、上で述べたCPU2503、メモリ2501などのハードウエアとOS及び必要なアプリケーション・プログラムとが有機的に協働することにより、上で述べたような各種機能を実現する。
以上本実施の形態をまとめると以下のようになる。
本車両走行位置データ処理方法は、計測時刻と車両位置とを含む車両走行位置データ・レコードを格納する走行位置情報格納部から、計測時刻と車両位置との少なくともいずれかに関連する条件を満たす車両走行位置データ・レコードを読み出すステップと、読み出された車両走行位置データ・レコードの各々について、複数のノードと当該ノード間を接続する複数のリンクとで表される道路ネットワークにおけるノード及びリンクの位置データ及びリンクの長さデータを格納する道路地図ネットワーク情報格納部に格納されている複数のリンクのうち車両走行位置データ・レコードの車両位置に対して所定の条件を満たす1つのリンクを特定し、当該リンクについての頻度カウンタの値をインクリメントするステップと、複数のリンクの各々について、頻度カウンタの値を道路地図ネットワーク情報格納部に格納されている当該リンクの長さで除することによって、正規化走行頻度の値を算出し、正規化走行頻度データ格納部に格納するステップと、正規化走行頻度データ格納部に格納されている各リンクの正規化走行頻度の値に基づき、走行位置情報格納部に格納されている、経路同定対象車両及び時間についての2つの車両走行位置データ・レコードで特定される2地点間の当該経路同定対象車両の走行経路を推定し、推定結果を車両別走行リンク情報格納部に格納する経路推定ステップとを含む。
このように過去の走行実績から算出される各リンクの正規化走行頻度に基づき、各リンクについて車両走行の蓋然性が分かるようになるので、2地点間で最も蓋然性が高いリンクの組み合わせである走行経路が特定できる。すなわち、走行中の車両で計測される走行位置を離散的にしか得られない場合であっても、当該計測された走行位置間の過去の走行経路を同定することができる。
また、本車両走行位置データ処理方法は、2つの車両走行位置データ・レコードで特定される2地点間の走行時間を、車両別走行リンク情報格納部に格納されている走行経路に含まれる各経路上リンクに、道路地図ネットワーク情報格納部に格納されている経路上リンクの長さデータ(又は長さデータを平均速度データで除した値)を基に振り分け、経路上リンクの識別子に対応付けて振り分けられた走行時間を時間推定結果格納部に格納するステップをさらに含むようにしても良い。同定された走行経路に含まれる各経路上リンクについて、特定の時間における所要走行時間を得ることができるようになる。これにより例えば渋滞の発生などを認識することができるようになる。
さらに、本車両走行位置データ処理方法は、時間推定結果格納部に格納されている経路上リンクの識別子毎に、対応する走行時間の平均値を算出し、時間推定結果格納部に格納するステップをさらに含むようにしても良い。このように各経路上リンクについて、所要走行時間の平均値を算出することにより、各道路について走行状態の概要を把握することができるようになる。
また、移動元ノードから複数の移動先候補ノードへの候補リンクの各々について、候補リンクの正規化走行頻度の値の総和に対する当該候補リンクの正規化走行頻度の値の比率を当該候補リンクが採用される可能性を表す評価値とする場合もある。このような場合には、上で述べた経路推定ステップにおいて、2地点のうちの始点に最も近いノードである始点ノードから2地点のうち終点に最も近いノードである終点ノードまで、移動元ノードと複数の移動先候補ノードとの全ての組み合わせについて順次評価値を算出して、当該評価値を各候補経路に沿って乗算し、終点ノードに達した候補経路のうち、評価値の総乗算値が最大となる候補経路を特定するようにしてもよい。最短経路探索のダイクストラ法などとは異なり、始点ノードから終点ノードへ候補リンクを辿る際に、正規化走行頻度から得られ且つ候補リンクが採用される可能性(確率とも呼ぶ)を乗算することによって、より採用される可能性の高い候補リンク群を含む走行経路を特定することができるようになる。
さらに、移動元ノードから複数の移動先候補ノードへの候補リンクの各々について、当該候補リンクの正規化走行頻度の値に対する全ての候補リンクの正規化走行頻度の値の和の比率を当該候補リンクの評価値とする場合もある。このような場合には、上で述べた経路推定ステップにおいて、2地点のうちの始点に最も近いノードである始点ノードから2地点のうち終点に最も近いノードである終点ノードまで、移動元ノードと複数の移動先候補ノードとの全ての組み合わせについて順次評価値を算出して、当該評価値を各候補経路に沿って乗算し、終点ノードに達した候補経路のうち、評価値の総乗算値が最小となる候補経路を特定するようにしてもよい。このように、上で述べた候補リンクが採用される可能性を表す評価値の逆数で走行経路を特定することもできるようになる。
また、移動元ノードから複数の移動先候補ノードへの候補リンクの各々について、候補リンクの正規化走行頻度の値と当該候補リンクの平均走行速度との積の総和に対する当該候補リンクの正規化走行頻度の値と当該候補リンクの平均走行速度との積の比率を当該候補リンクが採用される可能性を表す評価値とする場合もある。さらに、移動元ノードから複数の移動先候補ノードへの候補リンクの各々について、当該候補リンクの正規化走行頻度の値と当該候補リンクの平均走行速度との積に対する候補リンクの正規化走行頻度の値と当該候補リンクの平均走行速度との積の総和の比率を当該候補リンクの評価値として規定する場合もある。このように、各リンクについて平均走行速度にばらつきがある場合には、このような評価値を採用することによって、平均走行速度の高低を評価値に適切に反映させることができるようになる。
なお、上で述べたような処理をハードウエアに実施させるためのプログラムを作成することができ、当該プログラムは、例えばフレキシブル・ディスク、CD−ROM、光磁気ディスク、半導体メモリ、ハードディスク等のコンピュータ読み取り可能な記憶媒体又は記憶装置に格納される。なお、処理途中のデータについては、コンピュータのメモリ等の記憶装置に一時保管される。
以上の実施例を含む実施形態に関し、さらに以下の付記を開示する。
(付記1)
計測時刻と車両位置とを含む車両走行位置データ・レコードを格納する走行位置情報格納部から、前記計測時刻と前記車両位置との少なくともいずれかに関連する条件を満たす車両走行位置データ・レコードを読み出すステップと、
読み出された前記車両走行位置データ・レコードの各々について、複数のノードと当該ノード間を接続する複数のリンクとで表される道路ネットワークにおける前記ノード及びリンクの位置データ及び前記リンクの長さデータを格納する道路地図ネットワーク情報格納部に格納されている前記複数のリンクのうち前記車両走行位置データ・レコードの前記車両位置に対して所定の条件を満たす1つのリンクを特定し、当該リンクについての頻度カウンタの値をインクリメントするステップと、
前記複数のリンクの各々について、前記頻度カウンタの値を前記道路地図ネットワーク情報格納部に格納されている当該リンクの長さで除することによって、正規化走行頻度の値を算出し、正規化走行頻度データ格納部に格納するステップと、
前記正規化走行頻度データ格納部に格納されている各前記リンクの前記正規化走行頻度の値に基づき、前記走行位置情報格納部に格納されている、経路同定対象車両及び時間についての2つの前記車両走行位置データ・レコードで特定される2地点間の当該経路同定対象車両の走行経路を推定し、推定結果を車両別走行リンク情報格納部に格納する経路推定ステップと、
を含み、コンピュータに実行される車両走行位置データ処理方法。(1、図4)
(付記2)
2つの前記車両走行位置データ・レコードで特定される2地点間の走行時間を、前記車両別走行リンク情報格納部に格納されている前記走行経路に含まれる各経路上リンクに、前記道路地図ネットワーク情報格納部に格納されている前記経路上リンクの長さデータ(又は長さデータを平均速度データで除した値)を基に振り分け、前記経路上リンクの識別子に対応付けて振り分けられた走行時間を時間推定結果格納部に格納するステップ
をさらに含む付記1記載の車両走行位置データ処理方法。(2,図16)
(付記3)
前記時間推定結果格納部に格納されている前記経路上リンクの識別子毎に、対応する前記走行時間の平均値を算出し、前記時間推定結果格納部に格納するステップ、
をさらに含む付記2記載の車両走行位置データ処理方法。(3,図18)
(付記4)
移動元ノードから複数の移動先候補ノードへの候補リンクの各々について、前記候補リンクの前記正規化走行頻度の値の総和に対する当該候補リンクの前記正規化走行頻度の値の比率を当該候補リンクが採用される可能性を表す評価値とし、
前記経路推定ステップにおいて、
前記2地点のうちの始点に最も近いノードである始点ノードから前記2地点のうち終点に最も近いノードである終点ノードまで、前記移動元ノードと前記複数の移動先候補ノードとの全ての組み合わせについて順次前記評価値を算出して、当該評価値を各候補経路に沿って乗算し、
前記終点ノードに達した前記候補経路のうち、前記評価値の総乗算値が最大となる候補経路を特定する
付記1乃至3のいずれか1つ記載の車両走行位置データ処理方法。(4)
(付記5)
移動元ノードから複数の移動先候補ノードへの候補リンクの各々について、当該候補リンクの前記正規化走行頻度の値に対する全ての前記候補リンクの前記正規化走行頻度の値の和の比率を当該候補リンクの評価値とし、
前記経路推定ステップにおいて、
前記2地点のうちの始点に最も近いノードである始点ノードから前記2地点のうち終点に最も近いノードである終点ノードまで、前記移動元ノードと前記複数の移動先候補ノードとの全ての組み合わせについて順次前記評価値を算出して、当該評価値を各候補経路に沿って乗算し、
前記終点ノードに達した前記候補経路のうち、前記評価値の総乗算値が最小となる候補経路を特定する
付記1乃至3のいずれか1つ記載の車両走行位置データ処理方法。(5)
(付記6)
移動元ノードから複数の移動先候補ノードへの候補リンクの各々について、前記候補リンクの前記正規化走行頻度の値と当該候補リンクの平均走行速度との積の総和に対する当該候補リンクの前記正規化走行頻度の値と当該候補リンクの平均走行速度との積の比率を当該候補リンクが採用される可能性を表す評価値とし、
前記経路推定ステップにおいて、
前記2地点のうちの始点に最も近いノードである始点ノードから前記2地点のうち終点に最も近いノードである終点ノードまで、前記移動元ノードと前記複数の移動先候補ノードとの全ての組み合わせについて順次前記評価値を算出して、当該評価値を各候補経路に沿って乗算し、
前記終点ノードに達した前記候補経路のうち、前記評価値の総乗算値が最大となる候補経路を特定する
付記1乃至3のいずれか1つ記載の車両走行位置データ処理方法。(6)
(付記7)
移動元ノードから複数の移動先候補ノードへの候補リンクの各々について、当該候補リンクの前記正規化走行頻度の値と当該候補リンクの平均走行速度との積に対する前記候補リンクの前記正規化走行頻度の値と当該候補リンクの平均走行速度との積の総和の比率を当該候補リンクの評価値とし、
前記経路推定ステップにおいて、
前記2地点のうちの始点に最も近いノードである始点ノードから前記2地点のうち終点に最も近いノードである終点ノードまで、前記移動元ノードと前記複数の移動先候補ノードとの全ての組み合わせについて順次前記評価値を算出して、当該評価値を各候補経路に沿って乗算し、
前記終点ノードに達した前記候補経路のうち、前記評価値の総乗算値が最小となる候補経路を特定する
付記1乃至3のいずれか1つ記載の車両走行位置データ処理方法。(7)
(付記8)
付記1乃至7のいずれか1つ記載の車両走行データ処理方法をコンピュータに実行させるためのプログラム。(8)
(付記9)
計測時刻と車両位置とを含む車両走行位置データ・レコードを格納する走行位置情報格納部から、前記計測時刻と前記車両位置との少なくともいずれかに関連する条件を満たす車両走行位置データ・レコードを読み出す手段と、
読み出された前記車両走行位置データ・レコードの各々について、複数のノードと当該ノード間を接続する複数のリンクとで表される道路ネットワークにおける前記ノード及びリンクの位置データ及び前記リンクの長さデータを格納する道路地図ネットワーク情報格納部に格納されている前記複数のリンクのうち前記車両走行位置データ・レコードの前記車両位置に対して所定の条件を満たす1つのリンクを特定し、当該リンクについての頻度カウンタの値をインクリメントする手段と、
前記複数のリンクの各々について、前記頻度カウンタの値を前記道路地図ネットワーク情報格納部に格納されている当該リンクの長さで除することによって、正規化走行頻度の値を算出し、正規化走行頻度データ格納部に格納する手段と、
前記正規化走行頻度データ格納部に格納されている各前記リンクの前記正規化走行頻度の値に基づき、前記走行位置情報格納部に格納されている、経路同定対象車両及び時間についての2つの前記車両走行位置データ・レコードで特定される2地点間の当該経路同定対象車両の走行経路を推定し、推定結果を車両別走行リンク情報格納部に格納する経路推定手段と、
を有する車両走行位置データ処理装置。(9)