(57)【要約】  過去の経路の情報が不十分であっても、ある始点と終点の間のコストを予測可能とする技法を提供することを課題とする。  始点と終点とその間のコストの情報を含むデータＤの集合が用意され、各リンクのコストに一意に対応付けられたパラメータfeが初期化されると、該パラメータfeに基づいて前記始点と終点とその間の経路として検索される最小コスト経路及び該最小コスト経路のコストの情報を含むデータＤ’が再計算されるルーチンと、該データＤ’に基づいてパラメータfeが再計算されるルーチンとが、前記パラメータfeが収束するまで反復演算されることによって、各リンクのコストが求められる。
2011074369.tif 000002
【特許請求の範囲】
【請求項１】
複数のノードと、該ノード間を接続するリンクからなるグラフ上で、始点と終点と、該始点と該終点の間のコストを含む複数の訓練データの集合に基づき、コンピュータの処理によって、該リンクに関連付けられたパラメータを用いて該グラフの任意のリンク上のコストを計算する方法であって、
前記グラフの各リンクに割り当てるパラメータの値を初期化するステップであって、該パラメータは、前記コストと所定の一次関数で関連付けられているステップと、
前記グラフ上で、前記訓練データの集合と、前記コストを用いて、前記始点から前記終点に至るすべての経路における最小コスト経路を計算することにより、前記訓練データの集合の値を再計算するステップと、
前記再計算された訓練データの集合の値を含む目的関数の最適化問題を解くことによって、前記グラフの各リンクに割り当てるパラメータの値を再計算するステップと、
再計算の前後での前記パラメータの変化量が所定の閾値以下であることに応答して、前記パラメータを確定するステップを有する、
経路のコストの計算方法。
【請求項２】
前記再計算の前後での前記パラメータの変化量が所定の閾値より大きいことに応答して、前記訓練データの集合の値を再計算するステップに戻るステップをさらに有する、請求項１に記載の方法。
【請求項３】
前記目的関数が、コストの損失関数の項と、周囲のリンクとの状況の食い違いに対するペナルティの項とを含む、請求項１に記載の方法。
【請求項４】
前記目的関数が、下記の数式で定義され、
【数１】
2011074369.tif 000020
ここで、Nは前記訓練データの数、y(n)はn番目のデータのコスト、feは、リンクeに関連付けられた前記パラメータ、ce(f@e)は、前記パラメータをコストに変換する関数てあり、α、βは整数値であり、λは適当に定めた正の数である、
請求項３に記載の方法。
【請求項５】
(α,β) = (1,1)である、請求項４に記載の方法。
【請求項６】
(α,β) = (2,2)である、請求項４に記載の方法。
【請求項７】
複数のノードと、該ノード間を接続するリンクからなるグラフ上で、始点と終点と、該始点と該終点の間のコストを含む複数の訓練データの集合に基づき、コンピュータの処理によって、該リンクに関連付けられたパラメータを用いて該グラフの任意のリンク上のコストを計算するプログラムであって、
前記コンピュータに、
前記グラフの各リンクに割り当てるパラメータの値を初期化するステップであって、該パラメータは、前記コストと所定の一次関数で関連付けられているステップと、、
前記グラフ上で、前記訓練データの集合と、前記コストを用いて、前記始点から前記終点に至るすべての経路における最小コスト経路を計算することにより、前記訓練データの集合の値を再計算するステップと、
前記再計算された訓練データの集合の値を含む目的関数の最適化問題を解くことによって、前記グラフの各リンクに割り当てるパラメータの値を再計算するステップと、
再計算の前後での前記パラメータの変化量が所定の閾値以下であることに応答して、前記パラメータを確定するステップを実行させる、
経路のコストの計算プログラム。
【請求項８】
前記再計算の前後での前記パラメータの変化量が所定の閾値より大きいことに応答して、前記訓練データの集合の値を再計算するステップに戻るステップをさらに有する、請求項７に記載のプログラム。
【請求項９】
前記目的関数が、コストの損失関数の項と、周囲のリンクとの状況の食い違いに対するペナルティの項とを含む、請求項７に記載のプログラム。
【請求項１０】
前記目的関数が、下記の数式で定義され、
【数２】
2011074369.tif 000021
ここで、Nは前記訓練データの数、y(n)はn目のデータのコスト、feは、リンクeに関連付けられた前記パラメータ、ce(f@e)は、前記パラメータをコストに変換する関数てあり、α、βは整数値であり、λは適当に定めた正の数である、
請求項９に記載のプログラム。
【請求項１１】
(α,β) = (1,1)である、請求項１０に記載のプログラム。
【請求項１２】
(α,β) = (2,2)である、請求項１０に記載のプログラム。
【請求項１３】
複数のノードと、該ノード間を接続するリンクからなるグラフ上で、始点と終点と、該始点と該終点の間のコストを含む複数の訓練データの集合に基づき、コンピュータの処理によって、該リンクに関連付けられたパラメータを用いて該グラフの任意のリンク上のコストを計算するシステムであって、
前記グラフの各リンクに割り当てるパラメータの値を初期化する手段であって、該パラメータは、前記コストと所定の一次関数で関連付けられている手段と、、
前記グラフ上で、前記訓練データの集合と、前記コストを用いて、前記始点から前記終点に至るすべての経路における最小コスト経路を計算することにより、前記訓練データの集合の値を再計算する手段と、
前記再計算された訓練データの集合の値を含む目的関数の最適化問題を解くことによって、前記グラフの各リンクに割り当てるパラメータの値を再計算する手段と、
再計算の前後での前記パラメータの変化量が所定の閾値以下であることに応答して、前記パラメータを確定する手段を有する、
経路のコストの計算システム。
【請求項１４】
前記目的関数が、コストの損失関数の項と、周囲のリンクとの状況の食い違いに対するペナルティの項とを含む、請求項１３に記載のシステム。
【請求項１５】
前記目的関数が、下記の数式で定義され、
【数３】
2011074369.tif 000022
ここで、Nは前記訓練データの数、y(n)はn番目のデータのコスト、feは、リンクeに関連付けられた前記パラメータ、ce(f@e)は、前記パラメータをコストに変換する関数てあり、α、βは整数値であり、λは適当に定めた正の数である、
請求項１４に記載のシステム。
【請求項１６】
(α,β) = (1,1)である、請求項１５に記載のシステム。
【請求項１７】
(α,β) = (2,2)である、請求項１５に記載のシステム。
【請求項１８】
複数のノードと、該ノード間を接続するリンクからなるグラフ上で、始点と終点と、該始点と該終点の間のコストと、該始点と該終点の間の経路含む複数の訓練データの集合に基づき、コンピュータの処理によって、該リンクに関連付けられたパラメータを用いて該グラフの任意のリンク上のコストを計算する方法であって、
前記訓練データの集合の値を含む下記の目的関数
【数４】
2011074369.tif 000023
ここで、Nは前記訓練データの数、y(n)はn番目のデータのコスト、feは、リンクeに関連付けられた前記パラメータ、ce(f@e)は、前記パラメータをコストに変換する関数てあり、α、βは整数値であり、λは適当に定めた正の数である、
の最適化問題を解くことによって、前記グラフの各リンクに割り当てるパラメータの値を再計算するステップを有する、
経路のコストの計算方法。
【請求項１９】
(α,β) = (1,1)である、請求項１８に記載の方法。
【請求項２０】
(α,β) = (2,2)である、請求項１８に記載の方法。
【請求項２１】
複数のノードと、該ノード間を接続するリンクからなるグラフ上で、始点と終点と、該始点と該終点の間のコストと、該始点と該終点の間の経路含む複数の訓練データの集合に基づき、コンピュータの処理によって、該リンクに関連付けられたパラメータを用いて該グラフの任意のリンク上のコストを計算するプログラムであって、
前記コンピュータをして、
前記訓練データの集合の値を含む下記の目的関数
【数５】
2011074369.tif 000024
ここで、Nは前記訓練データの数、y(n)はn番目のデータのコスト、feは、リンクeに関連付けられた前記パラメータ、ce(f@e)は、前記パラメータをコストに変換する関数てあり、α、βは整数値であり、λは適当に定めた正の数である、
の最適化問題を解くことによって、前記グラフの各リンクに割り当てるパラメータの値を再計算するステップを実行させる、
経路のコストの計算プログラム。
【請求項２２】
(α,β) = (1,1)である、請求項２１に記載のプログラム。
【請求項２３】
(α,β) = (2,2)である、請求項２１に記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、交通路等の経路において、ある経路に沿った所要時間、消費電力、ＣＯ2排出量などのコストを評価または予測するシステム、方法及びプログラムに関するものである。
【背景技術】
【０００２】
近年、交通量の予測が都市計画上重要な問題となってきている。いわゆる、高度道路交通システム（Intelligent Transportation System）が、特に１９９０年代後半以降、活発に研究されている。【０００３】
その際に１つの課題となるのは、ある経路に沿っての所要時間をシステム的に予測することである。なぜなら、保安上、利便性、その他の理由で、任意の経路間のおおよその所要時間を予測できるようにしておくことが望ましいからである。【０００４】
それに付随して、あるいはそれとは独立に、環境保護に関連して、ある経路に沿っての消費電力、ＣＯ2排出量などのコストを予測したいという要望もある。これらに関して、以下のような従来技術が知られている。【０００５】
特開２００２−３６７０７１号公報は、各渋滞レベルごとの平均速度を決定する際に必要な、各リンク（隣接する交差点を結ぶ道路）、各時刻ごとの渋滞レベルデータおよび該区間の各時刻における旅行時間データを収集、記録し、渋滞レベルの定義から仮定した前記渋滞レベルごとの平均速度を用いて、各リンクの到着時刻およびその時刻における渋滞レベルデータを決定し、決定した各リンクごとの到着時刻における、各リンクの渋滞レベルデータを用いて、各渋滞レベルごとの平均速度を算出し、前記算出した各渋滞レベルごとの平均速度を用いて渋滞レベル長を各渋滞レベル平均速度で割り、これを足し合わせることで、旅行時間を求めることを開示する。【０００６】
特開２００５−２０８７９１号公報は、道路リンク旅行時間推計装置を、過去の道路リンク旅行時間と道路リンク渋滞度との関係を用いて、道路リンク渋滞度から道路リンク旅行時間を算出するためのｎ次の変換関数を求め、前記変換関数の係数を目的変量とし、道路属性情報を説明変量とする重回帰分析を行い、変換関数の係数を道路属性情報から算出するｎ＋１個の重回帰式を求め、道路リンク旅行時間推計の対象となる道路リンクの道路属性情報を前記重回帰式に代入して前記変換関数の係数を算出し、この係数を前記変換関数に適用し、移動を行う時刻の道路リンク渋滞度を当該変換関数に代入して道路リンク旅行時間の推計値を算出することを開示する。【０００７】
特開２００８−２８２１６１公報は、算出された過去のリンク渋滞度と正規化リンク旅行時間との関係を用いて、正規化リンク旅行時間を算出する第１変換式の係数を算出し、第１変換式の各係数を変数とし、重回帰分析及び数量化理論Ｉ類分析の混合モデルによって回帰式を求め、算出された旅行時間推計対象の渋滞度を前記回帰式に適用し、第２変換式の係数を算出し、前記算出された係数を第２変換式に適用し、旅行時間推計対象の正規化リンク旅行時間の推定値を算出し、正規化リンク旅行時間に基づき、当該道路リンク旅行時間の推定値を算出することを開示する。【０００８】
特開２００２−３６７０７１号公報は、確かに旅行時間を与えるが、平均速度が経路（リンク）によらず変わらないと仮定しており、そのような仮定は非現実的なので、十分な予想精度が期待できない。【０００９】
特開２００５−２０８７９１号公報と、その改良である特開２００８−２８２１６１号公報は、個々のリンクの渋滞度に基づき旅行時間を予測するものであるが、現実問題、カバーする全てのリンクの渋滞度が観測可能という仮定は、解決可能な問題を限定的にし、あるいは、場合によって非現実な仮定となってしまう。
【先行技術文献】
【特許文献】
【００１０】
【特許文献１】特開２００２−３６７０７１号公報
【特許文献２】特開２００５−２０８７９１号公報
【特許文献３】特開２００８−２８２１６１号公報
【発明の概要】
【発明が解決しようとする課題】
【００１１】
従って、この発明の目的は、過去の経路の情報が不十分であっても、ある始点と終点の間のコストを予測可能とする技法を提供することにある。【００１２】
この発明の更なる目的は、過去の経路の情報が不十分であっても、ある始点と終点の間の妥当な経路を予測可能とする技法を提供することにある。
【課題を解決するための手段】
【００１３】
この発明によれば、始点と終点と、その間のコストの情報を含むデータＤが用意される。また、訓練データとして、（経路、その経路の費用）の集合が与えられたときに、それを元に、任意リンクeに沿った費用ceを計算するサブルーチンが用意される。【００１４】
ここで、ceは、feの一次関数である。【００１５】
fe = 0は、法定走行など、何らかの既知の走行状態を表し、そのときの費用も既知であるとする。【００１６】
すると、本発明の処理は、基本的にはコンピュータの処理により、以下のステップに従い、実行される。【００１７】
先ず最初のステップでは、ユーザが費用を計算するための始点と終点を、適当なマウスなどのユーザ・インターフェースに従い、入力する。【００１８】
次のステップでは、コンピュータの処理により、すべてのリンクeについて、変数feが0に初期化される。【００１９】
次のステップでは、コンピュータの処理により、データＤに含まれるすべての始点・終点ペアについて、現在の {fe}から、最小費用経路が求められる。その結果、データＤは、（経路、その経路の費用）の集合に変換される。そこで、変換されたＤをＤ'と表す。【００２０】
次のステップでは、コンピュータの処理により、Ｄ'から、上記サブルーチンを用いて、{ fe}が再計算される。【００２１】
ここで、今回計算された{fe}が、前回計算された{fe}と比較され、その変化がある閾値以上であれば、最小費用経路を求めるステップに戻る。このとき、{fe} をベクトルと考えて、maxノルム等の適当なノルムで、f今回 - f前回を評価できる。【００２２】
このようにして求められた{fe}から、aとbの間の最小費用経路を求め、その経路に沿った費用yが求られる。このとき、副産物として、 aとbの間の合理的な経路も出力される。
【発明の効果】
【００２３】
この発明によれば、過去の経路の情報が不十分であっても、ある始点と終点の間の、所要時間などのコストを予測することが可能となる。またその際、ある始点と終点の間の合理的な経路も得られる。
【図面の簡単な説明】
【００２４】
【図１】この発明を実施するためのハードウェア構成の一例のブロック図である。
【図２】この発明を実施するための処理ルーチンを示す機能ブロック図を示す図である。
【図３】経路のデータの例を示す図である。
【図４】メイン・ルーチンの処理のフローチャートを示す図である。
【図５】データＤ計算ルーチンの処理のフローチャートを示す図である。
【図６】fe計算ルーチンの処理のフローチャートを示す図である。
【図７】d(e,e')関数を説明するための図である。
【図８】λ計算ルーチンの処理のフローチャートを示す図である。
【図９】λ計算ルーチンの処理のフローチャートを示す図である。
【発明を実施するための形態】
【００２５】
以下、図面に従って、本発明の実施例を説明する。これらの実施例は、本発明の好適な態様を説明するためのものであり、発明の範囲をここで示すものに限定する意図はないことを理解されたい。また、以下の図を通して、特に断わらない限り、同一符号は、同一の対象を指すものとする。
【００２６】
図１を参照すると、本発明の一実施例に係るシステム構成及び処理を実現するためのコンピュータ・ハードウェアのブロック図が示されている。図１において、システム・バス１０２には、ＣＰＵ１０４と、主記憶（ＲＡＭ）１０６と、ハードディスク・ドライブ（ＨＤＤ）１０８と、キーボード１１０と、マウス１１２と、ディスプレイ１１４が接続されている。ＣＰＵ１０４は、好適には、３２ビットまたは６４ビットのアーキテクチャに基づくものであり、例えば、インテル社のＰｅｎｔｉｕｍ（商標）４、インテル社のＣｏｒｅ（商標）  ２  ＤＵＯ、ＡＭＤ社のＡｔｈｌｏｎ（商標）などを使用することができる。主記憶１０６は、好適には、１ＧＢ以上の容量、より好ましくは、２ＧＢ以上の容量をもつものである。
【００２７】
ハードディスク・ドライブ１０８には、オペレーティング・システムが、格納されている。オペレーティング・システムは、Ｌｉｎｕｘ（商標）、マイクロソフト社のＷｉｎｄｏｗｓ  ７、Ｗｉｎｄｏｗｓ  ＸＰ（商標）、Ｗｉｎｄｏｗｓ（商標）２０００、アップルコンピュータのＭａｃ  ＯＳ（商標）などの、ＣＰＵ１０４に適合する任意のものでよい。
【００２８】
ハードディスク・ドライブ１０８にはさらに、経路とコストの過去履歴のデータＤと、本発明の一実施例に係る処理プログラムが格納されている。過去履歴のデータＤと、処理プログラムについては、後で図２を参照して、より詳細に説明する。ハードディスク・ドライブ１０８には、地図情報のデータとこれを表示するためのプログラムが格納されていてもよいし、あるいは、図示しないが、通信カードと所定のサーバを介してインターネットに接続し、インターネット上で利用可能な地図情報のデータを利用してもよい。
【００２９】
キーボード１１０及びマウス１１２は、オペレーティング・システムが提供するグラフィック・ユーザ・インターフェースに従い、ディスプレイ１１４に表示されたアイコン、タスクバー、ウインドウなどのグラフィック・オブジェクトを操作するために使用される。キーボード１１０及びマウス１１２はまた、ユーザによる始点・終点の入力操作や本発明の実施例に係るプログラムを開始または終了する操作を行うためにも使用される。
【００３０】
ディスプレイ１１４は、これには限定されないが、好適には、１０２４×７６８以上の解像度をもち、３２ビットtrue colorのＬＣＤモニタである。ディスプレイ１１４は、所要時間などのコストを予測する経路を含む地図などを表示するために使用される。
【００３１】
次に、図２を参照して、本発明の機能論理ブロック図の構成を説明する。図２において、データＤ  ２０２は、対象とする経路に沿った過去履歴のデータであり、下記のように、あらわされる。
Ｄ = {((a(n).b(n)),y(n))|n = 1,2,...,N}
ここで、a(n)はn番目の点の始点、b(n)はn番目の点の終点、y(n)は、a(n)からb(n)までにかかったと記録されたコストである。ここで、コストは、所要時間、消費電力、ＣＯ2排出量などいろいな場合が考えられるが、ここでは説明の便宜上、所要時間であるとする。
【００３２】
このような過去履歴データの記録方法は、例えば、自動車の乗って出発始点で、ＧＰＳによりその出発始点の位置a(n)を記録する。次に、目的地の終点まで走行して、ＧＰＳによりその終点の位置b(n)を記録する。また、a(n)からb(n)までにかかった時間y(n)を記録する。このような((a(n).b(n)),y(n))を、n = 1,2,...,Nと記録していくことにより、データＤが蓄積される。あるいは、プローブカーデータを利用する方法もあり、本発明で利用可能なデータは、特定のデータ収集方法に限定されないことを理解されたい。
【００３３】
このとき重要なのは、本発明によれば、始点a(n)から終点b(n)までの途中経路を記録する必要がないことである。さらに、対象としている道路をグラフ構造であらわしたとき、始点a(n)から終点b(n)までの個々のエッジにおける経過時間も記録する必要がない。本発明によれば、このような不十分な情報からでも、任意の始点から終点までの所要時間を予測することができ、さらには副産物として、経路も予測できる。
【００３４】
図３には、対象とする経路３０２における、(始点,終点) = (a(1).b(1))と(a(2).b(2))が例示されている。
【００３５】
ここでの経路は、次のような妥当な前提に基づく。
１．運転手は、理性的な経路選択をする。すなわち、最小費用の経路を通る。
２．渋滞は伝播する。すなわち、特異状態が生じているリンク（エッジ）の近隣のリンクも何らかの影響を受ける。
【００３６】
データＤ  ２０２をハードティスク・ドライブに記録するデータ・フォーマットは、コンピュータ可読であるなら特に限定はないが、例えば、ＣＳＶ、ＸＭＬなどの一般的によく知られたデータ・フォーマットを用いるのが好ましい。
【００３７】
図２において、メイン・ルーチン２０４は、データＤの情報を読み取って、データＤ更新ルーチン２０６、fe計算ルーチン２０８、及び出力ルーチン２１０を適宜呼び出して、所定の処理を行う。
【００３８】
データＤ更新ルーチン２０６は、メイン・ルーチン２０４から渡されたデータＤのデータを受け取って、エッジに関連付けられたコストに対応するパラメータ値である{fe}を用いて、経路情報付きデータＤ' ２１２を作成し、ハードティスク・ドライブ１０８に記録する。{fe}のデータは、経路のエッジの集合をＥとすると、e∈Ｅの全てに亘って用意される。尚、データＤ' ２１２も、データＤ  ２０２と同様に、ＣＳＶ、ＸＭＬなどの一般的によく知られたデータ・フォーマットを用いて記録される。
【００３９】
データＤ'は、次のようにあらわされる。
Ｄ' = {((a(n).b(n)),x(n),C(x(n)))|n = 1,2,...,N}
ここで、x(n)は、道路をグラフ表記したときのリンクの順序付けられた並びであり、経路をあらわす。C(x(n))は、x(n)に沿ったコストの値である。その他の記法の意味は、データＤと共通である。尚、図３には、始点から終点までの経路が、太い線で示されている。このような経路は、後述のステップ４０６で計算される。
【００４０】
fe計算ルーチン２０８は、メイン・ルーチン２０４から渡された{fe}の値と、データＤ' ２１２の値とから、更新された{fe}を計算する。fe計算ルーチン２０８は、計算で使用するパラメータλを計算するために、λ計算ルーチン２１４を呼び出す。
【００４１】
メイン・ルーチン２０４は、fe計算ルーチン２０８によって計算された{fe}の値を受け取って、データＤ更新ルーチン２０６に引き渡す。
【００４２】
データ出力ルーチン２１０は、メイン・ルーチン２０４から適宜呼び出され、ハードティスク・ドライブ１０８に記録されているデータＤ'に基づき、キーボード１１０とマウス１１２によって指定された始点と終点の間の所要時間の予測値と予測される経路を、ディスプレイ１１４に表示する機能をもつ。
【００４３】
尚、図２のメイン・ルーチン２０４、データＤ更新ルーチン２０６、fe計算ルーチン２０８、データ出力ルーチン２１０、及びλ計算ルーチン２１４は、Ｃ、Ｃ＋＋、Ｃ＃、Ｊａｖａ(R)などの、知られているプログラミング言語でコンパイルして実行可能ファイルとして、ハードティスク・ドライブ１０８に保存され、必要に応じて、ユーザの操作に応じて、オペレーティング・システムの作用により主記憶１０６に呼び出され、実行される。
【００４４】
次に図４以下のフローチャートを参照して、図２の機能ブロック図に示したルーチンの処理について説明する。
【００４５】
図４は、メイン・ルーチン２０４の処理を示すフローチャートである。図４において、ステップ４０２では、メイン・ルーチン２０４が、元データＤを読み込む。
【００４６】
ステップ４０４で、メイン・ルーチン２０４は、{fe|e∈Ｅ} の全ての要素を0にする。fe = 0というのは、この実施例の文脈では、法定速度での走行を意味する。従って、fe ≠ 0ということは、法定速度からのずれを意味する。尚、{fe}のデータは、好適には、主記憶１０６の所定の領域に配置されるが、ハードディスク・ドライブ１０８に格納してもよい。
【００４７】
ステップ４０６では、メイン・ルーチン２０４は、データＤ更新ルーチン２０６を呼び出して、feを用いてＤを経路情報付きデータＤ'に変換する処理を行う。データＤ更新ルーチン２０６は、図５のフローチャートを参照して後でより詳細に説明する。
【００４８】
ステップ４０８では、メイン・ルーチン２０４は、fe計算ルーチン２０８を呼び出して、Ｄ'を元に{fe}を再計算する処理を行う。fe計算ルーチン２０８は、図６のフローチャートを参照して後でより詳細に説明する。
【００４９】
ステップ４１０では、メイン・ルーチン２０４は、{fe}は収束したかどうかを判断する。この収束は、メイン・ルーチン２０４が、前回計算された{fe}を保持しておいて、新しく計算された{fe}を{f'e}とすると、{fe}と{f'e}の間の距離を、maxノルムなどの適当なノルムで計算して、その値が所定の閾値より小さいと、収束したとみなす。
【００５０】
まだ収束していないと判断されると、メイン・ルーチン２０４は、新しく計算された{fe}を以って、ステップ４０６に戻り、再びデータＤ更新ルーチン２０６を呼び出す。
【００５１】
ステップ４１０で、メイン・ルーチン２０４が{fe}は収束したと判断すると、処理は完了して、ステップ{fe}が確定する。道路の全てのリンクのfeが与えられることになるので、ダイクストラ法などの任意の方法により、道路３０２の任意の２点間の所要時間と経路を求めることが可能となる。
【００５２】
図５は、データＤ更新ルーチン２０６のの処理を示すフローチャートである。ステップ５０２に示すように、データＤ更新ルーチン２０６は、データＤと{fe}を入力とする。尚、ここでデータＤとあるのは、図４のステップ４０４からステップ４０６に来て、最初にデータＤ更新ルーチン２０６が呼ばれるときで、データＤ更新ルーチン２０６が２回目以降呼ばれるときは、データＤを、データＤ'と読み替えることを理解されたい。
【００５３】
図５のフローチャートは、ステップ５０４に示すように、ステップ５０６とステップ５０８を、全ての始点・終点ペアについて実行する。ここでの始点・終点ペアとは、
データＤ = {((a(n).b(n)),y(n))|n = 1,2,...,N}における、(a(n).b(n))のことである。Nが、過去履歴データとしての始点・終点ペアの数である。すなわち、このデータＤの場合、ステップ５０６とステップ５０８は、N回実行される。
【００５４】
データＤ更新ルーチン２０６は、ステップ５０６で、{fe}を元にして、当該の始点・終点ペアの間の最小費用経路を求める。これは、{fe}を重みとする通常の最短経路探索であり、このために、ダイクストラ法、Ａ＊法、ウォーシャル・フロイド法など、既知の任意の最短経路探索アルゴリズムを利用することができる。
【００５５】
データＤ更新ルーチン２０６は、ステップ５０８で、そのようにして求めた、始点・終点の間の経路x(n)と、その経路のコストC(x(n))を付加して、データＤ'を作成する。
【００５６】
経路xに対して、コストC(x)は、次のように計算される。
【数１】
2011074369.tif 000003
ce(fe)の式の具体的な定義の例は、以下のとおりである。
ce(fe) = le(fe + fe0)
ここで、feは、単位長さあたりのコストの、通常時からのずれであり、これは未知量である。
fe0は、法定走行などの基準状態から概算される、単位長さあたりのコスト（既知量）である。
leは、リンクeの長さであり、既知量である。
【００５７】
こうして、ステップ５０６とステップ５０８を全ての始点・終点ペアについて実行すると、ステップ５１０で、経路情報付きのデータＤ'が、下記のとおり求まる。
Ｄ' = {((a(n).b(n)),x(n),C(x(n)))|n = 1,2,...,N}
【００５８】
次に、図６のフローチャートを参照して、fe計算ルーチン２０８の処理について説明する。図６のステップ６０２では、Ｄ'と類似度行列Sが使用されるが、Ｄ'は既知なので、類似度行列Sについて説明する。リンクeとリンクe'の類似度は、一般に、両者の間の距離 d(e,e') の減少関数として定義される。d(e,e') の定義、および、類似度の定義には任意性があるが、一つの好適な形態は以下のように与えられる。
Se,e' ≡ γ1+d(e,e')
ここで、d(e,e')とは、リンクeからリンクe'に最短距離で到達するために通るリンクの数であり、図７に示す例７０２では、d(e,e') = 2である。太字で示す線が、リンクeとリンクe'の間をつなぐリンクである。
γは、1以下の正の既知量で、例えば、0.5と選ぶ。
また、d(e,e')がある値を超えると、Se,e' = 0とする。例えば、d(e,e') > 3の場合、Se,e' = 0とする。
【００５９】
fe計算ルーチン２０８は、ステップ６０４で、次のようにして、Ｄ'から
Q行列とyNを作る。まず、y(n)の代わりに改めて
【数２】
2011074369.tif 000004
とし、このy~(n)を縦にN個並べたベクトルを、yNとする。すなわち、
yN ≡ [y~(1),y~(2),...,y~(n)]T
【００６０】
次に、道路の長さを表すインジケータベクトルとして、qM ∈ RMという量を次のように定義する。
【数３】
2011074369.tif 000005
そうして、これを並べた行列を次のように定義する。
Q ≡ [ q(1), ... , q(N)] 
【００６１】
fe計算ルーチン２０８は、ステップ６０６で、Sから、行列Lを以下の式によって作る。なお、一般にこの種の行列はグラフ・ラプラシアンと呼ばれる。
【数４】
2011074369.tif 000006
ここでMは、地図上のリンクの総数であり、δijはクロネッカーのデルタである。
【００６２】
次に、fe計算ルーチン２０８は、ステップ６０８で、λ計算ルーチン２１４を呼び出して、λの値を決定する。λ計算ルーチン２１４の詳細は、図８のフローチャートを参照して後で説明するとして、ここでは、λの値が決定されたものとして、ステップ６１０に進む。
【００６３】
ステップ６１０の前提として、次のような目的関数を考慮する。
【数５】
2011074369.tif 000007
この式の左辺で、fは、{fe}を並べたベクトルである。また、この式の右辺の第１項は損失関数であり、第２項は、周囲のリンクと状況の食い違いに対するペナルティにλを掛けたものである。
【００６４】
この目的関数で、好適な(α,β)は、(1,1)または(2,2)である。
【００６５】
(α,β) = (1,1)の場合は、目的関数は、次のようになる。
【数６】
2011074369.tif 000008
これは、線形計画問題を解くことに帰着でき、市販のソルバーを使うことで容易に最適解を求められる。(α,β) = (2,2)の場合と比べた利点は、外れ値に頑強である、という点である。一般に交通データは多くの外れ値（例外的な振る舞いをする経路など）を含むので、この性質は実用上好ましい。
【００６６】
一方、(α,β) = (2,2)の場合は、目的関数は、次のようになる。
【数７】
2011074369.tif 000009
【００６７】
この式は、次のようにして解くことができる。先ず、既に与えているQ、L、yNの定義から、
【数８】
2011074369.tif 000010
【００６８】
従って、次の式が成立する。
【数９】
2011074369.tif 000011
【００６９】
一方、ペナルティ項に関しては、２乗を展開して整理すると、
【数１０】
2011074369.tif 000012
【００７０】
以上から、目的関数は下記のように変形される。
【数１１】
2011074369.tif 000013
【００７１】
これをfで微分して0とおくと、次の式が得られる。
【数１２】
2011074369.tif 000014
これが、ステップ６１０に記述されている式である。この式は、連立一次方程式なので、線形計画問題よりもさらに容易に解ける。連立一次方程式の解き方として、従来よりガウス・ザイデル法などが知られているが、この場合、一般的に左辺が疎行列になるので、共役勾配法または類似の方法を使って解くのが、計算量の観点から、合理的である。
【００７２】
共役勾配法による連立一次方程式の解法は、例えば、「これなら分かる最適化数学」金谷健一著、共立出版、初版の１０１ページに記載されている。
【００７３】
ステップ６１２で、{fe}が求まると、それは、呼び出し側のメイン・ルーチン２０４に返される。
【００７４】
更に、図８のフローチャートを参照して、(α,β) = (2,2)以外の場合に適用されるk重交差検証法に基づくλ計算ルーチン２１４の実施例の処理について説明する。
【００７５】
最初のステップ８０２では、λの値の候補の集合{λ1,...,λp}が用意される。データの性質によりλの最適値は異なるが、通常、λは１のオーダーの数になる。したがって、初期値としてたとえば、{10-2, 10-1, 1, 101, 102} などと与えることができる。
【００７６】
次のステップ８０４では、データＤ'をk等分する。たとえばN=1000個のデータがあり、k=5なら、200個づつのデータに分割する。それぞれのデータをD'1, …, D'k と表し、それぞれに含まれるデータ数をN1, …, Nk と表すことにする。
【００７７】
次いで、ステップ８０６にあるように、i = 1..pについて、λの候補値のそれぞれについて、ステップ８０８で、次の評価関数を計算する。
【数１３】
2011074369.tif 000015
【００７８】
ただし、f[-D's] は、第sデータD'sを抜いたデータを使って求めた解である。
以上の処理により、ステップ８１０で、候補値の中から最適なλの値を選ぶことができる。そのようにして選ばれたλの値は、ステップ８１２で、図６のステップ６０８に戻される。尚、評価値が最小になる区間が例えば、10-1と1の間であると見いだされれば、次に、{0.1, 0.3, 0.6, 0.9} などと与え、再びこのサブルーチンを回すことができる。このようにして任意の細かさでλの最適値を定めることができる。なお、このように、刻まれた範囲から次第に最適な区間に近づく処理は、適宜、完全自動化することもできる。
【００７９】
次に、図９のフローチャートを参照して、(α,β) = (2,2)の場合に適用される、λ計算ルーチン２１４の処理について説明する。図９のステップ９０２では、既述のQ行列、L行列に加えて、λの値の候補の集合
{λ1,...,λp}が用意される。{λ1,...,λp}の値の用意については、図８のフローチャートの処理と同様である。
【００８０】
特に(α,β) = (2,2)の場合、k重交差検定法において、k = N として、いわゆるひとつ抜き交差検定法(leave-one-out validation)という方法を使うと、k回の計算の反復なしに評価関数を求められるので有利である。この時、λ計算ルーチン２１４は、下記の評価関数を最小にするλを求めることに帰着される。
【数１４】
2011074369.tif 000016
ここで、f(-n)は、第nサンプルを抜いたデータを使って求めた解である。
【００８１】
この評価関数は、次のように変形される。
【数１５】
2011074369.tif 000017
【００８２】
但し、IMはM次元の単位行列、diag()は、対角行列を出力する関数である。また、行列Hは、次のように表される。
【数１６】
2011074369.tif 000018
【００８３】
図９のフローチャートに戻って、ステップ９０４は、ステップ９０６とステップ９０８を、i = 1からpまで、全てのλiについて、繰り返す処理である。
【００８４】
ステップ９０６では、上記の行列Hが計算され、ステップ９０８では、
λiについてLLOOCV(λi)が計算され、ステップ９０６とステップ９０８がi = 1からpまで実行された後は、ステップ９１０で、LLOOCV(λ)を最小にするλが選ばれる。そのようにして選ばれたλの値は、ステップ９１２で、図６のステップ６０８に戻される。
【００８５】
図４に戻って、ステップ４１０で、メイン・ルーチン２０４が{fe}は収束したと判断すると、処理は完了して、{fe}が確定する。すると、この時点で、対象とする道路の全てのリンクのfeが与えられている。そこで、ユーザが、ディスプレイ１１４を見ながら、キーボード１１０またはマウス１１２などで、始点と終点を指定する。すると、メイン・ルーチン２０４は、元の地図のデータ上をリンクのコストに対応するパラメータ{fe}を使用して、ダイクストラ法などの任意の方法により、道路３０２の任意の２点間の最短経路xを求める処理を行う。
【００８６】
最短経路xが求まると、既に説明したように、下記の式で、経路から所用時間であるコストが得られる。
【数１７】
2011074369.tif 000019
【００８７】
このように求められた経路とコストは、データ出力ルーチン２１０によって、ディスプレイ１１４上に表示される。
【００８８】
尚、上記の実施例では、走行が１つのリンクに単一のコストが割り当てられる重みつきグラフとして表現される場合について説明したが、本発明はこれには限定されず、例えば、往路と復路で個別に変数feを定義することによって、往路と復路で別コストを想定して解を得ることができる。これは、例えば、坂道の場合に該当する。
【００８９】
また、一方通行などのような有向のリンクを一部含む場合は、そのリンクを逆方向に進む経路は排除すればよい。
【００９０】
また、上記の例では、過去履歴のデータが、経路を全く与えない場合について説明したが、過去履歴のデータが一部でも経路の情報を含む場合は、その実際の経路を通るような経路を選ぶようにすればよい。
【００９１】
また、過去履歴のデータＤであるが、Ｄ（午前中）、Ｄ（昼間）、Ｄ（夕方）、Ｄ（夜）などのように一日の時間帯で層別して個別に費用関数の予測モデルを作るようにしてもよい。
【００９２】
更に、上記実施例で示したΨα,β(f|λ)という目的関数は、訓練データに始点と終点の間の経路が含まれていれば、コストに対応するリンク・パラメータを計算するために使用することができるので、訓練データに経路をも含めておくことにより、図４のフローチャートの前段の４０６のステップとは独立に、この計算プロセス単独で、グラフのリンクのコスト推定処理に使用可能である。
【００９３】
また、本発明は、道路に限らず、経路がグラフ構造で現され、そのリンクに関連してコストを考慮することができる任意の例に適用可能である。
【符号の説明】
【００９４】
１０２  システム・バス
１０４  ＣＰＵ
１０６  主記憶
１０８  ハードディスク・ドライブ
１１０  キーボード
１１２  マウス
１１４  ディスプレイ
２０４  メイン・ルーチン
２０６  データＤ更新ルーチン
２０８  計算ルーチン
２１０  出力ルーチン
１０８  ハードティスク・ドライブ
２１４  計算ルーチン
２１０  データ出力ルーチン
【図１】
2011074369.tif 000025
【図２】
2011074369.tif 000026
【図３】
2011074369.tif 000027
【図４】
2011074369.tif 000028
【図５】
2011074369.tif 000029
【図６】
2011074369.tif 000030
【図７】
2011074369.tif 000031
【図８】
2011074369.tif 000032
【図９】
2011074369.tif 000033
【国際調査報告】
2011074369.tif 000034
2011074369.tif 000035
2011074369.tif 000036