(57)【要約】【課題】  有料道路の経路を自動的に算出する。【解決手段】  経路テーブル２に基づいて有料道路上の全ての経路とその距離と料金とを算出し、対距離料金テーブル３を生成する。また、生成した対距離料金テーブル３を、所定の料金所に設置されたコンピュータ４ａ，４ｂ，４ｃ・・・に、ネットワーク５を介して配信する。所定の料金所とは、車両の走行経路に応じて料金の精算を行う料金所である。例えば有料道路の出口や乗継入口、強制流出入口、本線などに設けられた料金所である。これらの料金所では、車両が走行してきた経路に対する料金を、配信された対距離料金テーブル３に基づいて算出する。車両が走行してきた経路を示す履歴情報は、例えばＥＴＣを搭載した車両から取得可能である。有料道路上の全経路とその距離と距離に応じた料金とを経路テーブル２に基づいて算出するので、膨大な数の経路を漏れなく対距離料金テーブル３に登録することができる。【選択図】      図１
2005182593.tif 000002
【特許請求の範囲】
【請求項１】
有料道路に設定された各経路ポイントとその１つ上流側の経路ポイントとの距離を記憶した経路テーブルに基づいて、有料道路の経路とその距離とを算出する距離算出方法であって、
第１経路ポイントを基準経路ポイントとし、前記第１経路ポイントの１つ上流側の第２経路ポイントと前記第１経路ポイントとの距離を前記経路テーブルから取得し、前記第２経路ポイントから前記第１経路ポイントに至る第１経路の長さとして前記取得した距離を一時的に記憶する第１記憶ステップと、
前記第２経路ポイントを新たな基準経路ポイントとし、前記第２経路ポイントの１つ上流側の第３経路ポイントを前記経路テーブルから検索する検索ステップと、
前記第３経路ポイントが存在する場合、前記第３経路ポイントと前記第２ポイントとの距離を前記経路テーブルから取得し、一時的に記憶している経路長のいずれかに取得した距離を加算し、加算して得られた値を、前記第３経路ポイントから前記第１経路ポイントに至る第２経路の長さとして一時的に記憶する第２記憶ステップと、
前記第３経路ポイントより上流側の経路ポイントそれぞれについて、前記検索ステップ及び前記第２記憶ステップを繰り返すことにより、前記第３経路ポイントより上流側に存在する経路ポイントから前記第１経路ポイントに至る経路とその距離を算出して一時的に記憶する繰り返しステップと、
前記第１記憶ステップ、第２記憶ステップ及び繰り返しステップにおいて一時的に記憶した経路と各経路の距離とを、前記第１経路ポイントに至る全ての経路と各経路の距離として記憶する距離テーブルを生成するテーブル生成ステップと、
を含む距離算出方法。
【請求項２】
有料道路に設定された各経路ポイントとその１つ上流側の経路ポイントとの距離を記憶した経路テーブルに基づいて、有料道路の経路とその距離とを算出する距離算出装置であって、
第１経路ポイントを基準経路ポイントとし、前記第１経路ポイントの１つ上流側の第２経路ポイントと前記第１経路ポイントとの距離を前記経路テーブルから取得し、前記第２経路ポイントから前記第１経路ポイントに至る第１経路の長さとして前記取得した距離を一時的に記憶する第１記憶手段と、
前記第２経路ポイントを新たな基準経路ポイントとし、前記第２経路ポイントの１つ上流側の第３経路ポイントを前記経路テーブルから検索する検索手段と、
前記第３経路ポイントが存在する場合、前記第３経路ポイントと前記第２ポイントとの距離を前記経路テーブルから取得し、一時的に記憶している経路長のいずれかに取得した距離を加算し、加算して得られた値を、前記第３経路ポイントから前記第１経路ポイントに至る第２経路の長さとして一時的に記憶する第２記憶手段と、
前記第３経路ポイントより上流側の経路ポイントそれぞれについて、前記検索ステップ及び前記第２記憶ステップを繰り返すことにより、前記第３経路ポイントより上流側に存在する経路ポイントから前記第１経路ポイントに至る経路とその距離を算出して一時的に記憶する繰り返し手段と、
前記第１記憶手段、第２記憶手段及び繰り返し手段において一時的に記憶した経路と各経路の距離とを、前記第１経路ポイントに至る全ての経路と各経路の距離として記憶する距離テーブルを生成するテーブル生成手段と、
を備える距離算出装置。
【請求項３】
有料道路に設定された各経路ポイントとその１つ上流側の経路ポイントとの距離を記憶した経路テーブルに基づいて、有料道路の経路とその距離とを算出する距離算出装置としてコンピュータを機能させる距離算出プログラムであって、
第１経路ポイントを基準経路ポイントとし、前記第１経路ポイントの１つ上流側の第２経路ポイントと前記第１経路ポイントとの距離を前記経路テーブルから取得し、前記第２経路ポイントから前記第１経路ポイントに至る第１経路の長さとして前記取得した距離を一時的に記憶する第１記憶手段、
前記第２経路ポイントを新たな基準経路ポイントとし、前記第２経路ポイントの１つ上流側の第３経路ポイントを前記経路テーブルから検索する検索手段、
前記第３経路ポイントが存在する場合、前記第３経路ポイントと前記第２ポイントとの距離を前記経路テーブルから取得し、一時的に記憶している経路長のいずれかに取得した距離を加算し、加算して得られた値を、前記第３経路ポイントから前記第１経路ポイントに至る第２経路の長さとして一時的に記憶する第２記憶手段、
前記第３経路ポイントより上流側の経路ポイントそれぞれについて、前記検索ステップ及び前記第２記憶ステップを繰り返すことにより、前記第３経路ポイントより上流側に存在する経路ポイントから前記第１経路ポイントに至る経路とその距離を算出して一時的に記憶する繰り返し手段、及び
前記第１記憶手段、第２記憶手段及び繰り返し手段において一時的に記憶した経路と各経路の距離とを、前記第１経路ポイントに至る全ての経路と各経路の距離として記憶する距離テーブルを生成するテーブル生成手段、
として前記コンピュータを機能させる距離算出プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、有料道路の利用料金を算出する技術に関する。
【背景技術】
【０００２】
高速道路などの有料道路の料金を設定するには、全ての経路を抽出し、それぞれの経路の距離を計算する必要がある。多くの場合、経路は入口と出口との組み合わせで決まる。しかし、入口や出口が多い有料道路では、入口と出口との組み合わせの数が多くなる。その上、有料道路に設けられている分岐やループなどの路線により、同じ入口と出口との組み合わせに対しても、複数の経路が存在する場合もある。従って、有料道路について、全経路の抽出及び各経路の距離計算を手作業で漏れなく行うには、多大な労力を必要とする。そこで、特許文献１には、出口とチェックバリアまたは入口との基準距離及び部分係数距離を記憶した通行距離データテーブルを予め定めておき、このテーブルに基づいて各経路の距離に応じた料金を車種ごとに算出する技術が記載されている。すなわち、特許文献１に記載の技術では、通行距離データテーブル、すなわち高速道路上に存在する全出口、それに対応する全入口やチェックバリアを網羅したテーブルに基づいて、高速道路利用料金を算出している。
【０００３】
ところで、事故や工事等で有料道路中のある区間が通行止めになった場合には、走行中の車両がその区間に入らないよう強制流出処理を行う。特許文献２には、強制流出処理を行う場合に車種ごとの割引を行う技術が記載されている。
【特許文献１】特開2000-113248号公報
【特許文献２】特開平11-232503号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかし、特許文献１に記載の技術では、通行距離データテーブルには、各出口に至るまでの全ての経路パターンが含まれるように作成される。また、路線やインターチェンジが新規に開設された場合、開設される路線やインターチェンジ上の入口・出口に応じて通行距離データテーブルを更新する必要がある。しかも、通行距離データテーブルを手作業で作成しなければならない。言い換えれば、全経路とその距離の算出及びデータの登録を、手作業で行わなければならない。そのため、入口や出口の数が多い有料道路について通行距離データテーブルを作成する場合には、このテーブルに全経路及び各経路の距離を登録する作業が依然として必要である。その上、このテーブルへの経路や距離の登録漏れを生ずるおそれもある。しかも、路線やインターチェンジなどの変更に応じて入口や出口・分岐点に追加や変更が生じた場合、その変更により生じる経路の変更及び距離の変更を、手作業で算出しなければならない。
【０００５】
また、強制流出の必要が生じた場合、柔軟な料金割引を行いたいという要望がある。例えば、強制流出されたある車両は、通行止めの区間の前に有料道路を出て、再度有料道路に入る場合がある。この場合、通行止めの区間を除いた有料道路の使用距離、つまり有料道路を実際に使用した距離に対してのみ課金したいという要望がある。また、有料道路を実際に使用した距離に応じた割引を行いたいという要望もある。さらに、使用者が使用したかったにも関わらず使用できなかった距離、すなわち通行止めの区間の長さに応じ、料金の割引をしたいという要望がある。しかし、特許文献２に記載の技術では、通行止め区間の長さや実際の有料道路の使用距離などに応じた柔軟な割引処理が難しい。
【０００６】
本発明は、有料道路の経路及び各経路長を容易に求めることを目的とする。
また本発明は、有料道路の入口や出口・路線などの変更や追加に応じ、経路及び経路長の再設定を柔軟に行うことを目的とする。
さらに本発明は、強制流出処理を行った場合、通行止めの区間の長さや実際に使用した有料道路の長さに応じ、柔軟な割引処理を行うことを目的とする。
【課題を解決するための手段】
【０００７】
前記課題を解決するために、本発明では、路線に変更が生じ、例えば入口や出口の数が増加した場合でも、新たに開設された入口や出口とその１つ上流側の経路ポイントとを入力するだけで、新たな経路とその距離とを算出する。具体的には、本願第１発明は、有料道路に設定された各経路ポイントとその１つ上流側の経路ポイントとの距離を記憶した経路テーブルに基づいて、有料道路の経路とその距離とを算出する距離算出方法を提供する。この方法は、以下のステップを含む。
・第１経路ポイントを基準経路ポイントとし、前記第１経路ポイントの１つ上流側の第２経路ポイントと前記第１経路ポイントとの距離を前記経路テーブルから取得し、前記第２経路ポイントから前記第１経路ポイントに至る第１経路の長さとして前記取得した距離を一時的に記憶する第１記憶ステップ、
・前記第２経路ポイントを新たな基準経路ポイントとし、前記第２経路ポイントの１つ上流側の第３経路ポイントを前記経路テーブルから検索する検索ステップ、
・前記第３経路ポイントが存在する場合、前記第３経路ポイントと前記第２ポイントとの距離を前記経路テーブルから取得し、一時的に記憶している経路長のいずれかに取得した距離を加算し、加算して得られた値を、前記第３経路ポイントから前記第１経路ポイントに至る第２経路の長さとして一時的に記憶する第２記憶ステップ、
・前記第３経路ポイントより上流側の経路ポイントそれぞれについて、前記検索ステップ及び前記第２記憶ステップを繰り返すことにより、前記第３経路ポイントより上流側に存在する経路ポイントから前記第１経路ポイントに至る経路とその距離を算出して一時的に記憶する繰り返しステップ、
・前記第１記憶ステップ、第２記憶ステップ及び繰り返しステップにおいて一時的に記憶した経路と各経路の距離とを、前記第１経路ポイントに至る全ての経路と各経路の距離として記憶する距離テーブルを生成するテーブル生成ステップ。
この方法では、経路テーブルに基づいて、自動的に全ての経路及びその距離を距離テーブルに登録する。第１経路ポイント（経路の探索元）となる経路ポイントとは、例えば出口、乗り継ぎ入口、強制流出入口、本線上などにある料金所が挙げられる。第２，第３の経路ポイントとは、例えば入口、乗り継ぎ入口などが挙げられる。探索元から上流側に向かって経路ポイントを１つずつ遡り、遡る度に経路の長さを更新する。そして、さらにその上流に経路ポイントがあるかどうかを検索する。これを繰り返し、１つの探索元について存在する全ての経路とその距離とを算出する。同様にして、全ての探索元について、全ての経路とその距離を算出する。
【０００８】
本願第２発明は、有料道路に設定された各経路ポイントとその１つ上流側の経路ポイントとの距離を記憶した経路テーブルに基づいて、有料道路の経路とその距離とを算出する距離算出装置を提供する。この装置は、以下の手段を有する。
・第１経路ポイントを基準経路ポイントとし、前記第１経路ポイントの１つ上流側の第２経路ポイントと前記第１経路ポイントとの距離を前記経路テーブルから取得し、前記第２経路ポイントから前記第１経路ポイントに至る第１経路の長さとして前記取得した距離を一時的に記憶する第１記憶手段、
・前記第２経路ポイントを新たな基準経路ポイントとし、前記第２経路ポイントの１つ上流側の第３経路ポイントを前記経路テーブルから検索する検索手段、
・前記第３経路ポイントが存在する場合、前記第３経路ポイントと前記第２ポイントとの距離を前記経路テーブルから取得し、一時的に記憶している経路長のいずれかに取得した距離を加算し、加算して得られた値を、前記第３経路ポイントから前記第１経路ポイントに至る第２経路の長さとして一時的に記憶する第２記憶手段、
・前記第３経路ポイントより上流側の経路ポイントそれぞれについて、前記検索ステップ及び前記第２記憶ステップを繰り返すことにより、前記第３経路ポイントより上流側に存在する経路ポイントから前記第１経路ポイントに至る経路とその距離を算出して一時的に記憶する繰り返し手段、
・前記第１記憶手段、第２記憶手段及び繰り返し手段において一時的に記憶した経路と各経路の距離とを、前記第１経路ポイントに至る全ての経路と各経路の距離として記憶する距離テーブルを生成するテーブル生成手段。
【０００９】
本願第３発明は、前記第２発明の距離算出装置としてコンピュータを機能させる距離算出プログラムを提供する。
【発明の効果】
【００１０】
入口や出口、分岐、ループなどの数や設定に関わらず、車両が走行しうる全経路及びそれぞれの経路長を、漏れなく算出することができる。入口や出口、分岐、ループなどの数や設定が変化しても、変化後に車両が走行しうる全経路とそれぞれの経路長を漏れなく算出できるので、有料道路の変化に柔軟に対応することができる。
事故・工事などにより、有料道路外に一旦出て再度流入する走行も連続した走行とみなしたい場合に、通行止め区間を考慮に入れた経路を算出する。そのため、通行止めの発生に迅速に対応できる。また、通行止めの区間の長さ、実際に有料道路を使用した長さなどに応じた柔軟な割引サービスを提供することができる。
【発明を実施するための最良の形態】
【００１１】
＜第１実施形態＞
［概要］
図１は、本発明に係る距離算出装置１の概念説明図である。距離算出装置１は、経路テーブル２に基づいて、有料道路上の全ての経路とその距離と料金とを算出し、対距離料金テーブル３を生成する。また、距離算出装置１は、生成した対距離料金テーブル３を、所定の料金所に設置されたコンピュータ４ａ，４ｂ，４ｃ・・・に、ネットワーク５を介して配信する。所定の料金所とは、車両の走行経路に応じて料金の精算を行う料金所である。例えば有料道路の出口や乗継入口、強制流出入口、道路上（以下、本線という）などに設けられた料金所である。これらの料金所では、車両が走行してきた経路に対する料金を、配信された対距離料金テーブル３に基づいて算出する。車両が走行してきた経路を示す履歴情報は、例えばＥＴＣを搭載した車両から取得可能である。有料道路上の全経路とその距離と距離に応じた料金とを経路テーブル２に基づいて算出するので、膨大な数の経路を漏れなく対距離料金テーブル３に登録することができる。
【００１２】
入口や出口の変更、事故や工事による通行止め区間などが生じると、通行止め区間の直前には車両の強制流出出口が、直後には強制流出入口が設定される。これに伴い経路テーブル２が更新され、この更新に基づいて対距離料金テーブル３が更新される。更新された対距離料金テーブル３は、直ちに距離算出装置１から所定の料金所に配信される。従って、有料道路に関する変更を、柔軟かつ即座に対距離料金テーブル３に反映させることができる。
また、対距離料金テーブル３の一部または全部に、有効期限を設定することも可能である。例えば、昼間と夜間とで単価を変更したり、通行止めが解除されるまでの間だけ通行止めにより生じる一時的な経路を有効にすることができる。
【００１３】
経路テーブル２は、有料道路上の全ての料金所について、隣り合う料金所との距離及び各料金所の区分を示す。料金所は、必ずしも料金の支払いが行われる場所だけではなく、有料道路の経路を算出するために有料道路上に設定された全ての地点を言う。料金所の区分の例としては、入口や出口、乗継入口／出口、強制流出入口／出口、本線が挙げられる。
［距離算出装置１］
以下、本発明の第１実施形態に係る距離算出装置１について、具体的に説明する。距離算出装置１は、具体的にはコンピュータ端末で実現され、料金所に設置されたコンピュータ端末４とネットワーク５を介して接続されている。
【００１４】
有料道路の料金は、基本料金と対距離料金とに大別される。すなわち、有料道路の料金は、下式により算出される。
（料金）＝基本料金＋対距離料金
＝基本料金＋距離１×単価１＋距離２×単価２＋・・・
基本料金は、走行距離に関わらず課金される。また、通行止めの区間があるために一旦一般道に出た後で有料道路に戻るときには、基本料金は課金されない。別の有料道路に乗り継ぐ場合も、基本料金は課金されない。
【００１５】
対距離料金は、有料道路の走行距離に比例して課金される。対距離料金の単価は、有料道路や路線毎に異なっていても良いし、季節や日時によって異なっていても良い。さらに、通行止め区間がある場合とない場合とで単価の設定を変えてもよい。以下では、対距離料金を算出するための対距離料金テーブル３を、経路テーブル２に基づいて生成する方法を説明する。
（１）経路テーブル
図２は、有料道路の模式図の一例である。有料道路は第１路線と第２路線とを含む。第１路線の主路線は、上流側から入口Ａ、出口Ｂ、出口Ｃ、入口Ｄ、分岐Ｅ、本線Ｆ、出口Ｇの各料金所を有している。主路線と分岐Ｅで合流する分岐線上には、分岐Ｅの上流側に入口Ｊが設定されている。第１路線においては、料金所Ｃ、Ｄ間が通行止め区間となっている。このとき、出口Ｃから出て入口Ｄから再度入って来る車両に対しては、料金所Ｃは強制流出出口、料金所Ｄは強制流出入口となる。第２路線は、上流側から、入口Ｈ、出口Ｉを有している。第１路線から第２路線へ乗り継ぐ車両に対しては、料金所Ｂは乗継出口、料金所Ｈは乗継入口となる。
【００１６】
図３は、図２に示す有料道路を表す経路テーブル２の一例である。この経路テーブル２は、後述する対距離料金テーブル３を生成するために必要なテーブルである。経路テーブル２は、任意の料金所とその上流側にある隣の料金所との距離及び互いの区分を、有料道路上の全料金所について記憶している。経路テーブル２において、「直前料金所」は「現在料金所」の１つ上流側にある料金所である。例えば、現在料金所が出口Ｂの場合、出口Ｂの１つ上流側の料金所Ａが直前料金所となる。上流側とは、車両の進行方向と逆側をいう。
【００１７】
同一の現在料金所が複数の区分を有している場合、その現在料金所のレコードは複数存在する。例えば現在料金所Ｂについてレコードが２つあるのは、料金所Ｂが単なる出口の場合と乗継出口の場合とがあるからである。同様に、現在料金所Ｃ、現在料金所Ｄについても、区分の種類に応じた複数のレコードがある。
逆に現在料金所の区分は１つしかないが、その直前料金所の区分が複数ある場合、現在料金所のレコードは複数存在する。例えば、現在料金所Ｉについてレコードが２つあるのは、出口Ｉの直前料金所Ｈが入口の場合と乗継入口の場合とがあるためである。
【００１８】
さらに、現在料金所の区分は１つしかないが、その直前料金所が複数ある場合、現在料金所のレコードは複数存在する。例えば現在料金所Ｅについてレコードが３つあるのは、分岐Ｅに対し２つの直前料金所Ｄ、Ｊが存在するためと、直前料金所Ｄが２つの区分を有するためである。
距離に対する単価（単金種別１、単金種別２）が複数種類設定されているのは、この例では通行止め区間の長さに対し、料金を割り引くためである。つまり、単金種別２の距離の単価はマイナスの値をもつ。
【００１９】
（２）対距離料金テーブル
図４は、図３に示す経路テーブル２に基づいて作成される対距離料金テーブル３の一部を示す説明図である。この対距離料金テーブル３は、経路と、その経路の距離と、距離に応じた料金と、を示す。経路とは、「探索元」に至るまでにどの料金所から入り、どの料金所を通過したかである。本実施形態では、探索元となるのは、出口、乗継入口、強制流出入口、本線の料金所である。これらの料金所では、そこに至るまでの走行距離に対して課金する必要があるからである。なお、対距離料金テーブル３上は、分岐Ｅを通過する経路であっても、分岐Ｅを経路上には示していない。経路の距離を算出した後は分岐Ｅをテーブル上に残しておく意味が乏しいからである。
【００２０】
例えば、探索元が料金所Ｇの場合、以下の経路が登録されている。
経路ａ：出口Ｇ←本線Ｆ←入口Ｄ。すなわち入口Ｄから入り、分岐Ｅ・本線Ｆを通過し、出口Ｇに至る経路。
経路ｂ：出口Ｇ←本線Ｆ←入口Ａ。すなわち入口Ａから入り、出口Ｂ・出口Ｃ・入口Ｄ・分岐Ｅ・本線Ｆを通過し、出口Ｇに至る経路。
経路ｃ：出口Ｇ←本線Ｆ←入口Ｊ。すなわち入口Ｊから入り、分岐Ｅから主路線に合流して本線Ｆを通過し、出口Ｇに至る経路。
【００２１】
経路ｄ：出口Ｇ←本線Ｆ←強制流出入口Ｄ←強制流出出口Ｃ←入口Ａ。すなわち入口Ａから入り、出口Ｂを通過し、強制流出出口Ｃで一旦外に出た後、強制流出入口Ｄから再度入り、分岐Ｅ・本線Ｆを通過し、出口Ｇに至る経路。
（３）経路の算出方法
次に、図３に示す経路テーブル２に基づいて図４に示す対距離料金テーブル３を算出する方法を説明する。
（３−１）基本の経路算出方法
（３−１−１）入口・出口だけが設定されている場合の経路の算出方法
最初に、基本となる経路の算出方法について説明する。経路は、ある出口とそれより上流側の全ての入口との組み合わせにより決まる。図５は、基本となる経路算出方法の説明図である。図５（ａ）は、有料道路の入口・出口の位置関係と、車両の進行方向とを示す。この有料道路には、入口と出口しか設定されていない。図５（ｂ）は、同図（ａ）に対応する経路テーブル２である。この経路テーブル２に基づいて、対距離料金テーブル３を作成する場合を説明する。
【００２２】
説明を容易にするために、出口Ｄに至る経路を算出する場合を例に取る（以下、出口Ｄを探索元という）。まず、出口Ｄをキーに経路テーブル２を検索し、入口Ｃを抽出する。経路テーブル２を検索する料金所を、「現在料金所」という。出口Ｄと入口Ｃとの距離は1.0である。従って、入口Ｃから有料道路に入り、出口Ｄから出る経路「出口Ｄ←入口Ｃ」、距離（単金種別１）=1.0が算出される。この例では全ての区間の単価が同じであるが、区間や路線によって単価が異なる場合があるので、単価毎に距離は算出される。
さらに、「現在料金所」を入口Ｃに変更し、入口Ｃをキーに経路テーブル２を検索し、出口Ｂを抽出する。入口Ｃと出口Ｂとの距離は、2.0である。しかし、出口Ｂから有料道路には入れない。そこで、導出中の経路を「出口Ｄ←入口Ｃ←出口Ｂ」、距離＝1.0+2.0=3.0（単金種別１）とし、これを一時的に記憶する。
【００２３】
さらに「現在料金所」を出口Ｂに変更し、上流側の料金所を検索する。出口Ｂにヒットするのは、入口Ａである。従って、入口Ａから有料道路に入り、料金所Ｂ，Ｃを通過して出口Ｄから出る経路「出口Ｄ←入口Ｃ←出口Ｂ←入口Ａ」が算出される。この経路の距離（単金種別１）＝3.0+3.0=6.0である。
同様にして、出口Ｂの上流側にある入口の全てを検索し、出口Ｂに至る経路「出口Ｂ←入口Ａ」、距離（単金種別１）＝3.0を算出する。
全ての経路を算出した後、各経路の距離とその単価とに基づいて、各経路の料金を算出し、対距離料金テーブルに登録する。
【００２４】
（３−１−２）料金所の追加・削除に対応する経路の算出方法
このように経路を算出するので、有料道路に新たに料金所が追加された場合、新たな経路を容易に算出することができる。図６（ａ）は、図５（ａ）に示す有料道路に、入口Ｅと出口Ｆとが新たに追加された有料道路の模式図である。図６（ｂ）は、有料道路の変更に伴い、更新された経路テーブル２を示す。図中、項目「現在料金所」が出口Ｆまたは入口Ｅである２つのレコードが、経路テーブル２に追加されている。距離算出装置１は、経路テーブル２が更新されると、再度新たな経路テーブルに基づいて全ての経路とその距離と料金とを算出する。
【００２５】
逆に料金所が削除された場合、その料金所が探索元となっているレコードを、対距離料金テーブルから削除すればよい。
このように、新たな経路テーブルに基づいて全経路を算出し直すので、対距離料金テーブル３を有料道路の変化に対応させることができる。また、入口や出口などが追加されたときでも、追加または変更された料金所とその料金所の直前の料金所を経路テーブル２に追加することにより、対距離料金テーブル３を更新することができる。従って、手作業により追加された料金所毎に対応する経路を割り出し料金を算出するという煩わしい作業をなくすことができる。更新された対距離料金テーブル３は、課金処理を行う全ての料金所に配信しても良いし、新たに追加された出口Ｆにだけ配信してもよい。
【００２６】
（３−２）分岐を含む経路
（３−２−１）分岐を含む経路の基本的な算出方法
有料道路が分岐を含む場合、分岐を料金所の１つに含めて経路テーブル２を作成する。経路の算出は、出口に対して行う。図７（ａ）は、分岐を含む有料道路の模式図である。同図（ｂ）は、対応する経路テーブル２を示す。説明を容易にするため、出口Ｄに至る経路を算出する場合を例に取り、説明する。
出口Ｄを探索元及び「現在料金所」として経路テーブル２を検索し、分岐Ｃを抽出すると、導出中の経路「出口Ｄ←分岐Ｃ」、距離1.0を一時的に記憶する。
【００２７】
「現在料金所」を分岐Ｃに変更して経路テーブル２を検索し、出口Ｂ及び入口Ｅを抽出する。各抽出結果について、それぞれ経路を算出する。まず、出口Ｂについて説明する。
出口Ｂについて、導出中の経路を「出口Ｄ←分岐Ｃ←出口Ｂ」、距離＝1.0+2.0=3.0とし、一時的に記憶する。さらに、「現在料金所」を出口Ｂに変更して経路テーブル２を検索し、入口Ａを抽出する。導出中の経路を「出口Ｄ←分岐Ｃ←出口Ｂ←入口Ａ」で確定させ、距離＝3.0+3.0=6.0を算出し、両者を対距離料金テーブル３に書き込む。
入口Ｅについては、導出中の経路を「出口Ｄ←分岐Ｃ←入口Ｅ」で確定させ、距離＝3.0+1.0=4.0を算出し、両者を対距離料金テーブル３に書き込む。
【００２８】
（３−２−２）複数の同一の経路がある場合の料金の算出方法
図８（ａ）は、距離が異なる同一経路が存在する有料道路の模式図である。同図（ｂ）は、対応する経路テーブルである。経路「出口Ｄ←分岐Ｃ←分岐Ｂ←入口Ａ」において、分岐Ｂ，Ｃ間には距離が2.0Kmまたは4.0Kmの２つの路線がある。そのため、同一経路であるにもかかわらず、距離が異なる２つの経路が算出される。この場合、この経路の距離を一意に決める必要がある。距離の決定方法としては、a)最小の距離とする、b)両者の距離の平均値をとる、c)最大の距離とする、などが挙げられる。いずれの方法を採用するかは適宜決めることができる。
【００２９】
（３−２−３）有料道路がループ状の部分を含む場合の経路の決定方法
図９（ａ）は、ループ状部分を含む有料道路の模式図である。同図（ｂ）は、対応する経路テーブル２である。ループ状部分に含まれる分岐Ｂ，Ｃは、どちらもが相手の上流側になりうる。そのため、経路テーブル２に基づいて経路を算出する場合に、導出中の経路に既に出現している分岐が検索結果となった場合には、その分岐をさらに導出中の経路には加えず、またその分岐から先の経路探索を行わない。
例えば、出口Ｄを「探索元」及び「現在料金所」として経路テーブル２を検索し、分岐Ｃを抽出する。導出中の経路は、「出口Ｄ←分岐Ｃ」となる。「現在料金所」を分岐Ｃに変更して経路テーブル２を検索し、分岐Ｂを抽出する。導出中の経路は、「出口Ｄ←分岐Ｃ←分岐Ｂ」となる。「現在料金所」を分岐Ｂに変更して経路テーブル２を検索すると、分岐Ｃ及び入口Ａを抽出する。しかし、分岐Ｃは既に導出中の経路に含まれているので、これを無視する。経路算出のアルゴリズムが無限ループに陥ることを防止するためである。そして、導出中の経路を「出口Ｄ←分岐Ｃ←分岐Ｂ←入口Ａ」と確定する。
【００３０】
（３−３）乗継点を含む経路
図１０（ａ）は、乗継点を含む有料道路の模式図を示す。２本の有料道路は、一方に設けられた出口Ｂから他方に設けられた入口Ｆにつながっている。同図（ｂ）は、対応する経路テーブル２である。入口Ｆの１つ上流側の料金所は、出口Ｂである。有料道路が乗継点を含む場合、対距離料金テーブル３は乗継入口にも配信される。基本料金を重複して課金するのを防止するためである。
乗継入口Ｆの上流側の料金所には、出口Ｅだけでなく乗継出口Ｂも該当する。従って、出口Ｇに至る経路を算出する場合には、入口Ｆから出口Ｅを辿ることはもちろん、乗継入口Ｆから乗継出口Ｂを辿って経路を算出する。
【００３１】
（３−４）強制流出を含む経路
図１１（ａ）は、通行止め区間が生じ、強制流出を行う場合の有料道路の模式図である。出口Ｂと入口Ｃとの間が通行止めとなっている。同図（ｂ）は、強制流出が発生した場合の経路テーブル２である。出口Ｄに対し強制流出入口Ｃが、強制流出入口Ｃに対し強制流出出口Ｂが、強制流出出口Ｂに対して入口Ａが、それぞれ登録されている。
強制流出が行われた場合、出口だけでなく強制流出入口Ｃも探索元とするとよい。通行止め区間に対して課金しないためである。また、基本料金を重複して課金しないためである。従って、強制流出が生じた場合には、対距離料金テーブル３は、強制流出入口にも配信される。
【００３２】
経路は例えば次のように算出される。距離算出装置１は、経路テーブル２の更新を監視し、経路テーブル２が更新されると、更新内容に基づいて探索元を決定する。すなわち、強制流出入口Ｃを探索元及び「現在料金所」として経路テーブル２を検索し、強制流出出口Ｂを抽出する。導出中の経路を「強制流出入口Ｃ←強制流出出口Ｂ」、距離2.0（単金種別２）とする。「現在料金所」を強制流出出口Ｂに変更して経路テーブル２を検索し、入口Ａを抽出する。導出中の経路を「強制流出入口Ｃ←強制流出出口Ｂ←入口Ａ」とし、距離＝3.0（単金種別１）、距離＝2.0（単金種別３）として経路と料金とを確定させる。さらに、更新した対距離料金テーブル３を、料金の精算を行う料金所全て、または強制流出入口Ｃ及びこれより下流の精算料金所に配信する。
【００３３】
なお、単金種別２を、通行止めがない場合よりも低い単価、例えばマイナスの値とすることができる。通行止めが生じた場合、実際の走行距離だけを課金の対象とすることに加え、通常よりも割安の料金とするためである。
（３−５）本線上の料金所を含む経路
図１２（ａ）は、有料道路の本線上に料金所が設けられている場合の模式図である。同図（ｂ）は、対応する経路テーブル２である。本線上の料金所は、そこに至るまでの有料道路の使用料金を精算させる意味合いをもつものであるから、本線上の料金所は出口と同様探索元となる。
【００３４】
例えば本線Ｃを探索元及び「現在料金所」として経路テーブル２を検索し、出口Ｂを抽出する。導出中の経路を「本線Ｃ←出口Ｂ」とし、距離を算出する。さらに「現在料金所」を出口Ｂに変更して経路テーブル２を検索し、入口Ａを抽出する。導出中の経路を「本線Ｃ←出口Ｂ←入口Ａ」として距離を更新し、本線Ｃに至る経路を確定する。
［処理の流れ］
距離算出装置１は、次に述べるメインルーチンにより有料道路上の全経路とその距離との算出を行う。メインルーチンは、経路テーブル２が更新された場合にも実行される。また、距離算出装置１は、メインルーチンにより算出された各経路の距離とその単価とに基づいて、各経路の料金の算出を行う。さらに距離算出装置１は、メインルーチンや料金の算出とは独立に、経路テーブル２の更新を監視する処理や、生成または更新した対距離料金テーブル３を料金所に配信する処理を行う（図示せず）。
【００３５】
図１３は、第１実施形態に係る距離算出装置１が行うメインルーチンの処理の流れの一例を示すフローチャートである。メインルーチンは、大別して（ａ）基本ルーチン、（ｂ）分岐処理ルーチン、（ｃ）乗継処理ルーチン、（ｄ）強制流出処理ルーチン、（ｅ）本線処理ルーチン、（ｆ）終了処理ルーチンを含む。以下、メインルーチンについて順次説明する。なお、以下では説明を容易にするため、単価が全て同一の場合を例に取る。
（ａ）基本ルーチン（Ｓ１〜Ｓ６）
基本ルーチンでは、経路テーブル２の現在料金所のうち、区分が出口、乗継入口、強制流出入口または本線のものを、順次探索元とする。探索元の上流側にある料金所を次々に辿り、探索元と入口との組み合わせを全て抽出し、それぞれ組み合わせの距離を算出する。
【００３６】
ステップＳ１：探索元ＩＣ０を経路テーブルから１つ選択し、（現在料金所；その区分）＝（探索元ＩＣ０；その区分）とし、（距離）＝０とする。
ステップＳ２：「現在料金所」ＩＣ０及びその「区分」をキーに経路テーブル２を検索する。すなわち、料金所ＩＣ０の１つ上流側の料金所を検索する。
ステップＳ３〜Ｓ４：キーである「現在料金所」ＩＣ０及びその「区分」に対応する「直前料金所」ＩＣ１がある場合（Ｓ３）、検索した直前料金所ＩＣ１を「現在料金所」とする（Ｓ４）。また、（距離）＝（料金所ＩＣ０，ＩＣ１間の距離DIS1）とする（Ｓ４）。この時点では、導出中の経路はＩＣ０←ＩＣ１となる。料金所ＩＣ０の上流側には料金所がない場合、後述するステップＳ１７に移行する（終了処理ルーチン）。
【００３７】
ステップＳ５〜Ｓ６：検索した料金所ＩＣ１の区分が入口の場合（Ｓ５）、探索元ＩＣ０から料金所ＩＣ１までの経路と距離とを、対距離料金テーブル３に書き込む（Ｓ６）。その後、ステップＳ２に戻り、料金所ＩＣ１の上流側に料金所があるかどうかをさらに探索する。入口ＩＣ１のさらに上流側に別の入口や乗継入口、強制流出入口ＩＣ２があれば、対距離料金テーブル３にはさらに別の経路、例えばＩＣ０←ＩＣ１←ＩＣ２が追加される。その距離は、DIS1＋DIS2となる。ここで、DIS2は、料金所ＩＣ１，ＩＣ２間の距離である。
【００３８】
検索した料金所ＩＣ１が入口ではない場合、料金所ＩＣ１の区分に応じた処理を行うために、後述するステップＳ７以降のルーチンに移行する。
（ｂ）分岐処理ルーチン（Ｓ７〜Ｓ１０）
ステップＳ７：検索した料金所ＩＣ１が入口ではない場合、料金所ＩＣ１が分岐か否かを判断する。
ステップＳ８：検索した料金所ＩＣ１が分岐の場合、導出中の経路にＩＣ１が既に含まれているかどうかを判断する。
【００３９】
ステップＳ９：導出中の経路に料金所ＩＣ１が含まれていれば、再度料金所ＩＣ１を導出中の経路に加えることなく、ステップＳ２に戻る。これは、有料道路がループ状になっている場合に、ループの同一地点に戻ってきたことを意味するからである。ステップＳ２に戻った後、料金所ＩＣ１の上流側にある料金所は探索しない。
ステップＳ１０：導出中の経路に料金所ＩＣ１が含まれていない場合、導出中の経路に料金所ＩＣ１を付け加える。この時点で、導出中の経路は、例えばＩＣ０←ＩＣ１となる。その後、再びステップＳ２に戻り、料金所ＩＣ１の上流側にある料金所ＩＣ２を探索し、導出中の経路を、例えばＩＣ０←ＩＣ１←ＩＣ２とする。
【００４０】
（ｃ）乗継処理ルーチン（Ｓ１１〜Ｓ１２）
ステップＳ１１〜Ｓ１２：検索した料金所ＩＣ１が乗継入口または乗継出口の場合（Ｓ１１）、導出中の経路にＩＣ１を追加する（Ｓ１２）。導出中の経路は、例えばＩＣ０←ＩＣ１となる。その後、ステップＳ２に戻り、料金所ＩＣ１の上流側にある料金所をさらに検索する。検索した料金所ＩＣ１が乗継入口でも乗継出口でもない場合、ステップＳ１３に移行する。
（ｄ）強制流出処理ルーチン（Ｓ１３〜Ｓ１４）
ステップＳ１３〜Ｓ１４：検索した料金所ＩＣ１が強制流出入口または強制流出出口の場合（Ｓ１３）、導出中の経路にＩＣ１を追加する（Ｓ１４）。導出中の経路は、例えばＩＣ０←ＩＣ１となる。その後、ステップＳ２に戻り、料金所ＩＣ１の上流側にある料金所をさらに検索する。検索した料金所ＩＣ１が強制流出入口でも強制流出出口でもない場合、ステップＳ１５に移行する。
【００４１】
（ｅ）本線処理ルーチン（Ｓ１５〜Ｓ１６）
ステップＳ１５〜Ｓ１６：検索した料金所ＩＣ１が本線上の料金所の場合（Ｓ１５）、導出中の経路にＩＣ１を追加する（Ｓ１６）。導出中の経路は、例えばＩＣ０←ＩＣ１となる。その後、ステップＳ２に戻り、料金所ＩＣ１の上流側にある料金所をさらに検索する。検索した料金所ＩＣ１が本線上の料金所ではない場合、ステップＳ２に戻る。
前述の基本ルーチン、分岐処理ルーチン、乗継処理ルーチン、強制流出処理ルーチン、本線処理ルーチンの繰り返しにより、１つの探索元に至る全経路とその距離とが算出される。
【００４２】
（ｆ）終了処理ルーチン（Ｓ１７〜Ｓ１９）
ステップＳ１７：出口、乗継入口、強制流出入口、本線のいずれかに該当する全ての料金所について、その料金所に至る全経路とその距離とを算出するまで、前記ステップＳ１〜Ｓ１６を繰り返す。これにより、有料道路上の全ての経路とその距離とを算出する。
ステップＳ１８：全ての経路を対距離料金テーブル３に抽出後、分岐点の料金所を経路から削除する。残しておいてもかまわないが、経路の距離が算出されている以上、分岐点を記憶しておく必要性に乏しいからである。
【００４３】
ステップＳ１９：さらに、複数の同一経路がある場合、最も距離の短いものを残し、残りを削除する。例えばループ状の部分を含む有料道路では、ループ部分に入る地点と出る地点とが同一でもその間の道のりが複数あれば経路が同一でも距離が異なる場合がある。このような場合には、最も短い距離で課金しても良い。もちろん、平均値をとる、最も高い距離で課金するなど、他の課金方法も適宜必要に応じて採用することができる。
（２）具体例
次に、図３に示す経路テーブル２に基づいて、図４に示す対距離料金テーブル３を作成する具体的な処理の流れを説明する。前述したように、図３の経路テーブル２において、探索元となる料金所は、現在料金所の区分が出口、乗継入口、強制流出入口、本線のいずれかである。説明を容易にするために、料金所Ｇが探索元の場合を例に取り、説明する。
【００４４】
（２−１）経路Ｇ←Ｆ←（E）←Ｄの登録
＃１：「Ｇ：出口」を探索元、距離（単金種別１）＝０とする（Ｓ１）。
＃２：（現在料金所）＝「Ｇ：出口」（Ｓ２）
＃３：（直前の料金所）＝「Ｆ：本線」（Ｓ３）
＃４：（現在料金所）←「Ｆ：本線」、距離（単金種別１）＝0+0.5＝0.5（Ｓ４）
＃５：探索元「Ｇ：出口」、経路１「Ｆ：本線」を一時的に記憶（Ｓ５，７，１１，１３，１５，１６）。
【００４５】
＃６：（現在料金所）＝「Ｆ：本線」（Ｓ２）
＃７：（直前の料金所）＝「Ｅ：分岐」（Ｓ３）
＃８：（現在料金所）←「Ｅ：分岐」、距離（単金種別１）＝0.5+1.5=2.0（Ｓ４）
＃９：「探索元「Ｇ：出口」、経路１「Ｆ：本線」、経路２「Ｅ：分岐」、距離（単金種別１）＝2.0」を一時的に記憶（Ｓ５，７，８，１０）。
＃１０：（現在料金所）＝「Ｅ：分岐」（Ｓ２）
＃１１：（直前の料金所）＝「Ｄ：入口」、「Ｄ：強制流出入口」、または「Ｊ：入口」（Ｓ３）
＃１２：（現在料金所）←「Ｄ：入口」、距離（単金種別１）＝2.0+2.0=4.0（Ｓ４）。（現在料金所）←「Ｄ：強制流出入口」の場合については、後述する＃２３〜＃３５を参照。同様に、（現在料金所）←「Ｊ：入口」の場合については、後述する＃３６〜＃３７を参照。
【００４６】
＃１３：「探索元「Ｇ：出口」、経路１「Ｆ：本線」、経路２「Ｅ：分岐」、経路３「Ｄ：入口」、距離（単金種別１）＝4.0」を、対距離料金テーブル３に書き込み（Ｓ５，６）。（現在料金所）＝「Ｄ：入口」（Ｓ２）。
（２−２）経路Ｇ←Ｆ←（Ｅ）←Ａの登録
＃１４：（現在料金所）＝「Ｄ：入口」（Ｓ２）
＃１５：（直前の料金所）＝「Ｃ：出口」（Ｓ３）
＃１６：（現在料金所）←「Ｃ：出口」、距離（単金種別１）＝4.0+3.0=7.0（Ｓ４）
＃１６：（現在料金所）＝「Ｃ：出口」（Ｓ２）
＃１７：（直前の料金所）＝「Ｂ：出口」（Ｓ３）
＃１８：（現在料金所）←「Ｂ：出口」、距離（単金種別１）＝7.0+2.0=9.0（Ｓ４）
＃１９：（現在料金所）＝「Ｂ：出口」（Ｓ２）
＃２０：（直前の料金所）＝「Ａ：入口」（Ｓ３）
＃２１：（現在料金所）←「Ａ：入口」、距離（単金種別１）＝9.0+1.0=10.0（Ｓ４）
＃２２：「探索元「Ｇ：出口」、経路１「Ｆ：本線」、経路２「Ｅ：分岐」、経路３「Ａ：入口」、距離（単金種別１）＝10.0」を、対距離料金テーブル３に書き込み（Ｓ５，６）。（現在料金所）＝「Ａ：入口」（Ｓ２）。
【００４７】
（２−３）経路Ｇ←Ｆ←（Ｅ）←Ｄ（強制流出入口）←Ｃ（強制流出出口）←Ａの登録
＃２３：前記段階＃１２で記憶していた下記の値を用い、（現在料金所）←「Ｄ：強制流出入口」、距離（単金種別１）＝2.0+2.0=4.0とする（Ｓ４）。
（現在料金所）＝「Ｅ：分岐」（Ｓ２）。
（直前の料金所）＝「Ｄ：強制流出入口」（Ｓ３）。
＃２４：「探索元「Ｇ：出口」、経路１「Ｆ：本線」、経路２「Ｅ：分岐」、経路３「Ｄ：強制流出入口」、距離（単金種別１）＝4.0」を一時的に記憶（Ｓ５，７，１１，１３，１４）。
【００４８】
＃２５：（現在料金所）＝「Ｄ：強制流出入口」（Ｓ２）
＃２６：（直前の料金所）＝「Ｃ：強制流出出口」（Ｓ３）
＃２７：（現在料金所）←「Ｃ：強制流出出口」、距離（単金種別１）＝4.0+0.0=4.0、距離（単金種別２）＝0+3.0=3.0（Ｓ４）
＃２８：「探索元「Ｇ：出口」、経路１「Ｆ：本線」、経路２「Ｄ：強制流出入口」、経路３「Ｃ：強制流出出口」、距離（単金種別１）＝4.0」を一時的に記憶（Ｓ５，７，１１，１３，１４）。
【００４９】
Ｓ２９：（現在料金所）＝「Ｃ：強制流出出口」（Ｓ２）
Ｓ３０：（直前の料金所）＝「Ｂ：出口」（Ｓ３）
Ｓ３１：（現在料金所）←「Ｂ：出口」（Ｓ４）、距離（単金種別１）=4.0+2.0=6.0（Ｓ４）
＃３２：（現在料金所）＝「Ｂ：出口」（Ｓ２）
＃３３：（直前の料金所）＝「Ａ：入口」（Ｓ３）
＃３４：（現在料金所）←「Ａ：入口」、距離（単金種別１）＝6.0+1.0=7.0（Ｓ４）
＃３５：「探索元「Ｇ：出口」、経路１「Ｆ：本線」、経路２「Ｅ：分岐」、経路３「Ｄ：強制流出入口」、経路４「Ｃ：強制流出出口」、経路５「Ａ：入口」、距離（単金種別１）＝7.0、距離（単金種別２）＝3.0」を、対距離料金テーブル３に書き込み（Ｓ５，６）。
【００５０】
（２−４）経路Ｇ←Ｆ←Ｊの登録
＃３６：前記段階＃１２で記憶していた下記の値を用い、（現在料金所）←「Ｊ：入口」、距離（単金種別１）＝2.0+4.0=6.0とする（Ｓ４）。
（現在料金所）＝「Ｅ：分岐」（Ｓ２）。
（直前の料金所）＝「Ｊ：入口」（Ｓ３）。
＃３７：「探索元「Ｇ：出口」、経路１「Ｆ：本線」、経路２「Ｅ：分岐」、経路３「Ｊ：入口」、距離（単金種別１）＝6.0」を、対距離料金テーブル３に書き込み（Ｓ５，６）。
【００５１】
（２−５）分岐点の削除・複数同一経路の削除
＃３８：その後、未探索の現在料金所について、処理を繰り返す（Ｓ２，３，１７、１）。全ての探索元について経路と距離とを演算した後、対距離料金テーブル３から分岐点を削除する（Ｓ１８）。さらに、対距離料金テーブル３に複数の同一の経路がある場合には、距離が一番短い経路のみを残し、残りを削除する（Ｓ１９）。
［効果］
以上のように、本発明を用いれば、経路テーブル２に基づいて、車両が通行する可能性のある全ての経路及びそれらの距離を漏れなく抽出することができる。有料道路の入口や出口、分岐点などに変更が生じた場合にも、例えば経路テーブル２の対象となる現在料金所に対応する直前料金所に変更を加えるだけで、新たな対距離料金テーブル３を演算することができるので、道路の変動に柔軟に対応することができる。
【００５２】
さらに、突然生じる事故や工事により通行不可能な区間が生じた場合でも、通行止め対象となる料金所（入口または出口）の直前料金所を登録または変更するだけでよい。経路テーブル２の変更に伴い、実際に走行した区間だけを課金対象としたり、通行禁止区間の長さに応じて料金を割引するなどの柔軟な割引サービスを提供することができる。
＜その他の実施形態＞
（Ａ）通行止め区間が生じた場合、通行止め区間の有効期限を経路テーブル２に設定しても良い。その場合には、通行止め区間により生じる新たな経路の有効期限を、対距離料金テーブル３に登録することができる。例えば、有効期限を経過すると、該当レコードを対距離料金テーブル３から削除するマクロを、対距離料金テーブル３に埋め込むことが挙げられる。
【００５３】
（Ｂ）上記の方法を実行するためのプログラム及びそのプログラムを記録したコンピュータ読み取り可能な記録媒体は、本発明の範囲に含まれる。ここで記録媒体としては、コンピュータが読み書き可能なフレキシブルディスク、ハードディスク、半導体メモリ、ＣＤ−ＲＯＭ、ＤＶＤ、光磁気ディスク（ＭＯ）、その他のものが挙げられる。
＜付記＞
以下の付記の記載は、実施形態の一部を構成するものではない。
（付記１）
有料道路に設定された各経路ポイントとその１つ上流側の経路ポイントとの距離及び各経路ポイントの属性を記憶した経路テーブルに基づいて、有料道路の経路とその距離とを算出する距離算出方法であって、
１以上の算出予定の経路の下流側末端となる任意の経路ポイントとその属性とを、前記経路テーブルから抽出して探索元とする探索元決定ステップと、
算出予定の第１経路の長さをゼロに設定する距離初期化ステップと、
前記算出予定の第１経路の上流側末端となる経路ポイントを検索するために、前記探索元より上流側にある経路ポイントを前記探索元から上流方向に向かって１つずつ検索する上流側末端検索ステップと、
前記上流側末端検索ステップにおいて経路ポイントを１つ上流側に遡る度に、遡った距離を前記経路テーブルから抽出し、前記算出予定の第１経路の長さに加算する経路長算出ステップと、
前記算出予定の第１経路の上流側末端となる第１上流側末端経路ポイントが見つかった場合、前記第１上流側末端経路ポイントから前記探索元に至る第１経路を確定させ、前記第１経路とその長さとを距離テーブルに登録する経路登録ステップと、
算出予定の第（ｎ＋１）経路（ｎは１，２，３・・・）の長さを前記第ｎ経路の長さに設定し、前記第ｎ上流側末端経路ポイントよりも上流側に位置する経路ポイントであって算出予定の第（ｎ＋１）経路の上流側末端となる経路ポイントを検索するために、前記上流側末端検索ステップと経路長算出ステップと経路登録ステップとを実行することにより、前記探索元に至る全ての経路とその距離とを前記距離テーブルに登録する経路検索繰り返しステップと、
経路の下流側末端となる全ての経路ポイントについて、前記探索元決定ステップ、距離初期化ステップ、上流側末端検索ステップ、経路長算出ステップ、経路登録ステップ、経路検索繰り返しステップを実行することにより、前記有料道路上の全ての経路とその距離とを前記距離テーブルに登録する探索元繰り返しステップと、
を含む距離算出方法。
【００５４】
この方法では、経路テーブルに基づいて、自動的に全ての経路及びその距離を距離テーブルに登録する。経路の探索元となる経路ポイントとは、例えば出口、乗り継ぎ入口、強制流出入口、本線上などにある料金所が挙げられる。経路の上流側末端となる経路ポイントとは、例えば入口、乗り継ぎ入口などが挙げられる。探索元から上流側に向かって経路ポイントを１つずつ遡り、遡った先が上流側末端となるか否かを判断し、ならない場合はさらに遡る。ただし、遡る度に経路の長さを更新する。遡った経路ポイントが上流側末端となる場合、そこで経路を１つ確定させる。そして、さらにその上流に上流側末端経路ポイントがあるかどうかを検索する。これを繰り返し、１つの探索元について存在する全ての経路とその距離とを算出する。同様にして、全ての探索元について、全ての経路とその距離を算出する。
【００５５】
（付記２）
前記経路テーブルは、各経路ポイントとその１つ上流側の経路ポイントとの距離に対する単価をさらに記憶しており、
前記経路テーブルに記憶された単価と算出した経路の長さとに基づいて前記有料道路の全経路の料金を算出し、前記距離テーブルに登録する料金算出ステップをさらに含む、付記１に記載の距離算出方法。
有料道路の全経路それぞれの料金を自動的に算出し、料金テーブルに登録することができる。
【００５６】
（付記３）
前記経路テーブルに含まれる経路ポイントの全部または一部に設置されたコンピュータ端末に対し、前記距離テーブルを配信する配信ステップをさらに含む、付記２に記載の距離算出方法。
距離テーブルを各料金所に配信することにより、各料金所では車両の通行履歴に基づいた課金を行うことができる。
（付記４）
前記経路テーブルの更新を監視する経路テーブル監視ステップと、
前記経路テーブルが更新された場合、更新内容に基づいて前記距離テーブルを更新する更新ステップと、をさらに含み、
前記配信ステップは、更新内容に基づいて距離テーブルの配信先を特定し、更新された距離テーブルを配信する、
付記３に記載の距離算出方法。
【００５７】
例えば、新たな出口が追加された場合、その出口を探索元として新たな経路を検索する。更新された距離テーブルは、少なくとも追加された出口のコンピュータに配信される。また例えば、通行止め区間が生じた場合、強制流出入口を探索元として新たな経路を検索する。更新された距離テーブルは、強制流出入口や経路の下流側末端となっている経路ポイントに配信される。従って、有料道路の変動に応じ、柔軟かつ迅速に距離テーブルを更新することができる。
（付記５）
前記経路テーブルの更新内容は更新内容自体の有効期限を含み、
前記更新ステップは、前記距離テーブルの更新部分に対し、有効期限を設定する、
付記４に記載の距離算出方法。
【００５８】
例えば事故の発生により通行止め区間が生じると、通行止め区間の期限が経路テーブルに設定される。距離テーブルにおいては、通行止め区間の直後の強制流出入口を探索元とする経路が新たに登録される。これらの経路の有効期限は、通行止め区間の期限と同じとなる。突発的な事故や工事の場合には、一時的に経路が生成される場合もある。そのような経路が突発的事情の解消後に残ることを防止できる。
（付記６）
前記探索元決定ステップは、前記経路テーブルの経路ポイントの属性に基づいて探索元を抽出する、付記１〜５のいずれかに記載の距離算出方法。
【００５９】
例えば出口、乗り継ぎ入口、強制流出入口、本線上などにある経路ポイントを、探索元とすることが挙げられる。
（付記７）
前記上流側末端検索ステップは、経路ポイントを１つ遡る度に、遡った経路ポイントの属性に基づいて算出予定の経路の上流側末端となるか否かを判断する、付記１〜６に記載の距離算出方法。
例えば、遡った先の経路ポイントが入口や乗り継ぎ入口であれば、経路の上流側末端と判断して経路を確定させる。
【００６０】
（付記８）
有料道路に設定された各経路ポイントとその１つ上流側の経路ポイントとの距離及び各経路ポイントの属性を記憶した経路テーブルに基づいて、有料道路の経路とその距離とを算出する距離算出装置であって、
１以上の算出予定の経路の下流側末端となる任意の経路ポイントとその属性とを、前記経路テーブルから抽出して探索元とする探索元決定手段と、
算出予定の第１経路の長さをゼロに設定する距離初期化手段と、
前記算出予定の第１経路の上流側末端となる経路ポイントを検索するために、前記探索元より上流側にある経路ポイントを前記探索元から上流方向に向かって１つずつ検索する上流側末端検索手段と、
前記上流側末端検索ステップにおいて経路ポイントを１つ上流側に遡る度に、遡った距離を前記経路テーブルから抽出し、前記算出予定の第１経路の長さに加算する経路長算出手段と、
前記算出予定の第１経路の上流側末端となる第１上流側末端経路ポイントが見つかった場合、前記第１上流側末端経路ポイントから前記探索元に至る第１経路を確定させ、前記第１経路とその長さとを距離テーブルに登録する経路登録手段と、
算出予定の第（ｎ＋１）経路（ｎは１，２，３・・・）の長さを前記第ｎ経路の長さに設定し、前記第ｎ上流側末端経路ポイントよりも上流側に位置する経路ポイントであって算出予定の第（ｎ＋１）経路の上流側末端となる経路ポイントを検索するために、前記上流側末端検索手段と経路長算出手段と経路登録手段とを実行させることにより、前記探索元に至る全ての経路とその距離とを前記距離テーブルに登録する経路検索繰り返し手段と、
経路の下流側末端となる全ての経路ポイントについて、前記探索元決定手段、距離初期化手段、上流側末端検索手段、経路長算出手段、経路登録手段、経路検索繰り返し手段を実行することにより、前記有料道路上の全ての経路とその距離とを前記距離テーブルに登録する探索元繰り返し手段と、
を備える距離算出装置。
【００６１】
（付記９）
有料道路に設定された各経路ポイントとその１つ上流側の経路ポイントとの距離及び各経路ポイントの属性を記憶した経路テーブルに基づいて、有料道路の経路とその距離とを算出する距離算出装置としてコンピュータを機能させる距離算出プログラムであって、
１以上の算出予定の経路の下流側末端となる任意の経路ポイントとその属性とを、前記経路テーブルから抽出して探索元とする探索元決定手段、
算出予定の第１経路の長さをゼロに設定する距離初期化手段、
前記算出予定の第１経路の上流側末端となる経路ポイントを検索するために、前記探索元より上流側にある経路ポイントを前記探索元から上流方向に向かって１つずつ検索する上流側末端検索手段、
前記上流側末端検索ステップにおいて経路ポイントを１つ上流側に遡る度に、遡った距離を前記経路テーブルから抽出し、前記算出予定の第１経路の長さに加算する経路長算出手段、
前記算出予定の第１経路の上流側末端となる第１上流側末端経路ポイントが見つかった場合、前記第１上流側末端経路ポイントから前記探索元に至る第１経路を確定させ、前記第１経路とその長さとを距離テーブルに登録する経路登録手段、
算出予定の第（ｎ＋１）経路（ｎは１，２，３・・・）の長さを前記第ｎ経路の長さに設定し、前記第ｎ上流側末端経路ポイントよりも上流側に位置する経路ポイントであって算出予定の第（ｎ＋１）経路の上流側末端となる経路ポイントを検索するために、前記上流側末端検索手段と経路長算出手段と経路登録手段とを実行させることにより、前記探索元に至る全ての経路とその距離とを前記距離テーブルに登録する経路検索繰り返し手段、及び、
経路の下流側末端となる全ての経路ポイントについて、前記探索元決定手段、距離初期化手段、上流側末端検索手段、経路長算出手段、経路登録手段、経路検索繰り返し手段を実行することにより、前記有料道路上の全ての経路とその距離とを前記距離テーブルに登録する探索元繰り返し手段、
として前記コンピュータを機能させる距離算出プログラム。
【００６２】
（付記１０）
有料道路に設定された各経路ポイントとその１つ上流側の経路ポイントとの距離及び各経路ポイントの属性を記憶した経路テーブルに基づいて、有料道路の経路とその距離とを算出する距離算出プログラムを記録した、コンピュータ読み取り可能な記録媒体であって、
１以上の算出予定の経路の下流側末端となる任意の経路ポイントとその属性とを、前記経路テーブルから抽出して探索元とする探索元決定ステップと、
算出予定の第１経路の長さをゼロに設定する距離初期化ステップと、
前記算出予定の第１経路の上流側末端となる経路ポイントを検索するために、前記探索元より上流側にある経路ポイントを前記探索元から上流方向に向かって１つずつ検索する上流側末端検索ステップと、
前記上流側末端検索ステップにおいて経路ポイントを１つ上流側に遡る度に、遡った距離を前記経路テーブルから抽出し、前記算出予定の第１経路の長さに加算する経路長算出ステップと、
前記算出予定の第１経路の上流側末端となる第１上流側末端経路ポイントが見つかった場合、前記第１上流側末端経路ポイントから前記探索元に至る第１経路を確定させ、前記第１経路とその長さとを距離テーブルに登録する経路登録ステップと、
算出予定の第（ｎ＋１）経路（ｎは１，２，３・・・）の長さを前記第ｎ経路の長さに設定し、前記第ｎ上流側末端経路ポイントよりも上流側に位置する経路ポイントであって算出予定の第（ｎ＋１）経路の上流側末端となる経路ポイントを検索するために、前記上流側末端検索ステップと経路長算出ステップと経路登録ステップとを実行することにより、前記探索元に至る全ての経路とその距離とを前記距離テーブルに登録する経路検索繰り返しステップと、
経路の下流側末端となる全ての経路ポイントについて、前記探索元決定ステップ、距離初期化ステップ、上流側末端検索ステップ、経路長算出ステップ、経路登録ステップ、経路検索繰り返しステップを実行することにより、前記有料道路上の全ての経路とその距離とを前記距離テーブルに登録する探索元繰り返しステップと、
を実行させる距離算出プログラムを記録した、コンピュータ読み取り可能な記録媒体。
【００６３】
（付記１１）
有料道路に設定された各経路ポイントとその１つ上流側の経路ポイントとの距離を記憶した経路テーブルに基づいて、有料道路の経路とその距離とを算出する距離算出方法であって、
第１経路ポイントを基準経路ポイントとし、前記第１経路ポイントの１つ上流側の第２経路ポイントと前記第１経路ポイントとの距離を前記経路テーブルから取得し、前記第２経路ポイントから前記第１経路ポイントに至る第１経路の長さとして前記取得した距離を一時的に記憶する第１記憶ステップと、
前記第２経路ポイントを新たな基準経路ポイントとし、前記第２経路ポイントの１つ上流側の第３経路ポイントを前記経路テーブルから検索する検索ステップと、
前記第３経路ポイントが存在する場合、前記第３経路ポイントと前記第２ポイントとの距離を前記経路テーブルから取得し、一時的に記憶している経路長のいずれかに取得した距離を加算し、加算して得られた値を、前記第３経路ポイントから前記第１経路ポイントに至る第２経路の長さとして一時的に記憶する第２記憶ステップと、
前記第３経路ポイントより上流側の経路ポイントそれぞれについて、前記検索ステップ及び前記第２記憶ステップを繰り返すことにより、前記第３経路ポイントより上流側に存在する経路ポイントから前記第１経路ポイントに至る経路とその距離を算出して一時的に記憶する繰り返しステップと、
前記第１記憶ステップ、第２記憶ステップ及び繰り返しステップにおいて一時的に記憶した経路と各経路の距離とを、前記第１経路ポイントに至る全ての経路と各経路の距離として記憶する距離テーブルを生成するテーブル生成ステップと、
を含む距離算出方法。
【００６４】
（付記１２）
有料道路に設定された各経路ポイントとその１つ上流側の経路ポイントとの距離を記憶した経路テーブルに基づいて、有料道路の経路とその距離とを算出する距離算出装置であって、
第１経路ポイントを基準経路ポイントとし、前記第１経路ポイントの１つ上流側の第２経路ポイントと前記第１経路ポイントとの距離を前記経路テーブルから取得し、前記第２経路ポイントから前記第１経路ポイントに至る第１経路の長さとして前記取得した距離を一時的に記憶する第１記憶手段と、
前記第２経路ポイントを新たな基準経路ポイントとし、前記第２経路ポイントの１つ上流側の第３経路ポイントを前記経路テーブルから検索する検索手段と、
前記第３経路ポイントが存在する場合、前記第３経路ポイントと前記第２ポイントとの距離を前記経路テーブルから取得し、一時的に記憶している経路長のいずれかに取得した距離を加算し、加算して得られた値を、前記第３経路ポイントから前記第１経路ポイントに至る第２経路の長さとして一時的に記憶する第２記憶手段と、
前記第３経路ポイントより上流側の経路ポイントそれぞれについて、前記検索ステップ及び前記第２記憶ステップを繰り返すことにより、前記第３経路ポイントより上流側に存在する経路ポイントから前記第１経路ポイントに至る経路とその距離を算出して一時的に記憶する繰り返し手段と、
前記第１記憶手段、第２記憶手段及び繰り返し手段において一時的に記憶した経路と各経路の距離とを、前記第１経路ポイントに至る全ての経路と各経路の距離として記憶する距離テーブルを生成するテーブル生成手段と、
を備える距離算出装置。
【００６５】
（付記１３）
有料道路に設定された各経路ポイントとその１つ上流側の経路ポイントとの距離を記憶した経路テーブルに基づいて、有料道路の経路とその距離とを算出する距離算出装置としてコンピュータを機能させる距離算出プログラムであって、
第１経路ポイントを基準経路ポイントとし、前記第１経路ポイントの１つ上流側の第２経路ポイントと前記第１経路ポイントとの距離を前記経路テーブルから取得し、前記第２経路ポイントから前記第１経路ポイントに至る第１経路の長さとして前記取得した距離を一時的に記憶する第１記憶手段、
前記第２経路ポイントを新たな基準経路ポイントとし、前記第２経路ポイントの１つ上流側の第３経路ポイントを前記経路テーブルから検索する検索手段、
前記第３経路ポイントが存在する場合、前記第３経路ポイントと前記第２ポイントとの距離を前記経路テーブルから取得し、一時的に記憶している経路長のいずれかに取得した距離を加算し、加算して得られた値を、前記第３経路ポイントから前記第１経路ポイントに至る第２経路の長さとして一時的に記憶する第２記憶手段、
前記第３経路ポイントより上流側の経路ポイントそれぞれについて、前記検索ステップ及び前記第２記憶ステップを繰り返すことにより、前記第３経路ポイントより上流側に存在する経路ポイントから前記第１経路ポイントに至る経路とその距離を算出して一時的に記憶する繰り返し手段、及び
前記第１記憶手段、第２記憶手段及び繰り返し手段において一時的に記憶した経路と各経路の距離とを、前記第１経路ポイントに至る全ての経路と各経路の距離として記憶する距離テーブルを生成するテーブル生成手段、
として前記コンピュータを機能させる距離算出プログラム。
【図面の簡単な説明】
【００６６】
【図１】距離算出装置の概念説明図
【図２】有料道路の模式図の一例を示す説明図。
【図３】図２に示す有料道路を表す経路テーブルの一例の説明図。
【図４】図３に示す経路テーブルに基づいて作成される対距離料金テーブルの一部を示す説明図。
【図５】（ａ）有料道路の入口・出口の位置関係と車両の進行方向とを示す説明図。（ｂ）同図（ａ）に示す有料道路に対応する経路テーブル。
【図６】（ａ）図５（ａ）に示す有料道路に、入口Ｅと出口Ｆとが新たに追加された有料道路の模式図。（ｂ）有料道路の変更に伴い、更新された経路テーブル。
【図７】（ａ）分岐を含む有料道路の模式図。（ｂ）同図（ａ）に対応する経路テーブル
【図８】（ａ）距離が異なる同一経路が存在する有料道路の模式図。（ｂ）同図（ａ）に対応する経路テーブル
【図９】（ａ）ループ状部分を含む有料道路の模式図。（ｂ）同図（ａ）に対応する経路テーブル
【図１０】（ａ）乗継点を含む有料道路の模式図（ｂ）同図（ａ）に対応する経路テーブル
【図１１】（ａ）通行止め区間が生じ、強制流出を行う場合の有料道路の模式図（ｂ）同図（ａ）に対応する経路テーブル
【図１２】（ａ）有料道路の本線上に料金所が設けられている場合の模式図（ｂ）同図（ａ）に対応する経路テーブル
【図１３】距離算出装置が行うメインルーチンの処理の流れの一例を示すフローチャート。
【符号の説明】
【００６７】
１：距離算出装置
２：経路テーブル
３：対距離料金テーブル
【図１】
2005182593.tif 000003
【図２】
2005182593.tif 000004
【図３】
2005182593.tif 000005
【図４】
2005182593.tif 000006
【図５】
2005182593.tif 000007
【図６】
2005182593.tif 000008
【図７】
2005182593.tif 000009
【図８】
2005182593.tif 000010
【図９】
2005182593.tif 000011
【図１０】
2005182593.tif 000012
【図１１】
2005182593.tif 000013
【図１２】
2005182593.tif 000014
【図１３】
2005182593.tif 000015