(57)【要約】  本発明の計算装置１が行う経路計算順決定方法は、複数のノードからなるネットワークについて、起点ノードが同じで終点ノードが異なる各ノード間の計算済みの最短経路を複数のノードとその複数のノードの各ノード間の経路で表す最短経路群情報と、複数のノードのトポロジを表すトポロジ情報と、を記憶し、複数のノードのうち起点ノードと異なる特定ノードのそれぞれを、最短経路群情報が表す各ノード間の計算済みの最短経路においてその特定ノードよりも下流に存在するノードの数が多い順に選択し、特定ノードが選択されるごとに、その選択された特定ノードを起点とし複数のノードのうちの他の各ノードを終点とする各ノード間の最短経路を、他のノード間の計算済みの最短経路とトポロジ情報とを用いて計算する。
2010058785.tif 000002
【特許請求の範囲】
【請求項１】
複数のノードからなるネットワークについて、ノード間の計算済みの最短経路を用いて他のノード間の最短経路を計算する計算装置が行う経路計算順決定方法であって、
前記計算装置は、起点ノードが同じで終点ノードが異なる各ノード間の計算済みの最短経路を複数のノードと当該複数のノードの各ノード間の経路によって表す最短経路群情報と、前記複数のノードのトポロジを表すトポロジ情報と、を記憶する記憶手段と、計算手段と、を備えており、
前記計算手段が、前記複数のノードのうち前記起点ノードと異なる特定ノードのそれぞれを、前記最短経路群情報が表す各ノード間の計算済みの最短経路において当該特定ノードよりも下流に存在するノードの数が多い順に選択し、前記特定ノードが選択されるごとに、当該選択された特定ノードを起点とし前記複数のノードのうちの他の各ノードを終点とする各ノード間の最短経路を、他のノード間の計算済みの最短経路と、前記トポロジ情報と、を用いて計算する計算ステップを
含むことを特徴とする経路計算順決定方法。
【請求項２】
請求項１に記載の経路計算順決定方法において、
前記計算ステップは、
前記計算手段が、前記最短経路群情報が表す各ノード間の計算済みの最短経路において前記起点ノードよりも１ホップ下流に位置するすべてのノードを、前記特定ノードに属する計算起点ノードとして検索する検索ステップと、
前記計算手段が、前記計算起点ノードのうち、前記各ノード間の計算済みの最短経路において当該計算起点ノードよりも下流に存在するノードの数が最も多い特定計算起点ノードを、選択する選択ステップと、
前記計算手段が、前記特定計算起点ノードを起点とし前記複数のノードのうちの他の各ノードを終点とする各ノード間の最短経路を、他のノード間の計算済みの最短経路と、前記トポロジ情報と、を用いて計算する最短経路計算ステップと、
前記計算手段が、すべての前記特定ノードについて、当該特定ノードを起点とし前記複数のノードのうちの他の各ノードを終点とする各ノード間の最短経路の計算が終了するまで、前記最短経路群情報が表す各ノード間の計算済みの最短経路において前記特定計算起点ノードよりも１ホップ下流に位置するすべてのノードを検索し、当該検索されたノードを前記計算起点ノードとして追加し、その後、前記検索ステップと前記選択ステップと前記最短経路計算ステップとを行う、一連の動作を繰り返す繰り返しステップと、
を含むことを特徴とする経路計算順決定方法。
【請求項３】
複数のノードからなるネットワークについて、起点ノードが同じで終点ノードが異なる各ノード間の計算済みの最短経路を複数のノードと当該複数のノードの各ノード間の経路によって表す最短経路群情報と、前記複数のノードのトポロジを表すトポロジ情報と、を記憶したコンピュータに、
前記複数のノードのうち前記起点ノードと異なる特定ノードのそれぞれを、前記最短経路群情報が表す各ノード間の計算済みの最短経路において当該特定ノードよりも下流に存在するノードの数が多い順に選択し、前記特定ノードが選択されるごとに、当該選択された特定ノードを起点とし前記複数のノードのうちの他の各ノードを終点とする各ノード間の最短経路を、他のノード間の計算済みの最短経路と、前記トポロジ情報と、を用いて計算する計算手順を
実行させるためのプログラム。
【請求項４】
請求項３に記載のプログラムにおいて、
前記計算手順は、
前記最短経路群情報が表す各ノード間の計算済みの最短経路において前記起点ノードよりも１ホップ下流に位置するすべてのノードを、前記特定ノードに属する計算起点ノードとして検索する検索手順と、
前記計算起点ノードのうち、前記各ノード間の計算済みの最短経路において当該計算起点ノードよりも下流に存在するノードの数が最も多い特定計算起点ノードを、選択する選択手順と、
前記特定計算起点ノードを起点とし前記複数のノードのうちの他の各ノードを終点とする各ノード間の最短経路を、他のノード間の計算済みの最短経路と、前記トポロジ情報と、を用いて計算する最短経路計算手順と、
すべての前記特定ノードについて、当該特定ノードを起点とし前記複数のノードのうちの他の各ノードを終点とする各ノード間の最短経路の計算が終了するまで、前記最短経路群情報が表す各ノード間の計算済みの最短経路において前記特定計算起点ノードよりも１ホップ下流に位置するすべてのノードを検索し、当該検索されたノードを前記計算起点ノードとして追加し、その後、前記検索手順と前記選択手順と前記最短経路計算手順とを行う、一連の動作を繰り返す繰り返し手順と、
を含むことを特徴とするプログラム。
【請求項５】
複数のノードからなるネットワークについて、ノード間の計算済みの最短経路を用いて他のノード間の最短経路を計算する計算装置であって、
起点ノードが同じで終点ノードが異なる各ノード間の計算済みの最短経路を複数のノードと当該複数のノードの各ノード間の経路によって表す最短経路群情報と、前記複数のノードのトポロジを表すトポロジ情報と、を記憶する記憶手段と、
前記複数のノードのうち前記起点ノードと異なる特定ノードのそれぞれを、前記最短経路群情報が表す各ノード間の計算済みの最短経路において当該特定ノードよりも下流に存在するノードの数が多い順に選択し、前記特定ノードが選択されるごとに、当該選択された特定ノードを起点とし前記複数のノードのうちの他の各ノードを終点とする各ノード間の最短経路を、他のノード間の計算済みの最短経路と、前記トポロジ情報と、を用いて計算する計算手段と、
を含むことを特徴とする計算装置。
【請求項６】
請求項５に記載の計算装置において、
前記計算手段は、
前記最短経路群情報が表す各ノード間の計算済みの最短経路において前記起点ノードよりも１ホップ下流に位置するすべてのノードを、前記特定ノードに属する計算起点ノードとして検索する検索処理と、
前記計算起点ノードのうち、前記各ノード間の計算済みの最短経路において当該計算起点ノードよりも下流に存在するノードの数が最も多い特定計算起点ノードを、選択する選択処理と、
前記特定計算起点ノードを起点とし前記複数のノードのうちの他の各ノードを終点とする各ノード間の最短経路を、他のノード間の計算済みの最短経路と、前記トポロジ情報と、を用いて計算する最短経路計算処理と、
すべての前記特定ノードについて、当該特定ノードを起点とし前記複数のノードのうちの他の各ノードを終点とする各ノード間の最短経路の計算が終了するまで、前記最短経路群情報が表す各ノード間の計算済みの最短経路において前記特定計算起点ノードよりも１ホップ下流に位置するすべてのノードを検索し、当該検索されたノードを前記計算起点ノードとして追加し、その後、前記検索処理と前記選択処理と前記最短経路計算処理とを行う、一連の動作を繰り返す繰り返し処理と、
を実行することを特徴とする計算装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、経路計算順決定方法、プログラムおよび計算装置に関し、特には、ノード間の計算済みの最短経路を用いて他のノード間の最短経路を計算する際の経路計算順を決定する経路計算順決定方法、プログラムおよび計算装置に関する。
【背景技術】
【０００２】
ネットワーク内のノードやノード間を結ぶ道（パス）やネットワークリンクの敷設状況（トポロジ）に変化が生じ、データが、それまで通れなかった箇所を通れるようになる、もしくは、逆にそれまで通れた箇所を通れなくなるという場合がある。【０００３】
出発地（起点ノード）から目的地（終点ノード）までの最短経路を常に把握する必要がある場合、パスのトポロジの変化に伴い、変化後のトポロジにおける出発地（起点ノード）から目的地（終点ノード）までの最短経路を再計算する必要がある。【０００４】
従来の最短経路計算装置は、変化後のトポロジを表したトポロジ情報を使用することで、各ノード間を結ぶ最短経路を全て再計算している。非特許文献１には、トポロジ情報を使用することで各ノード間の最短経路を計算する方法が記載されている。
【非特許文献１】E. W. Dijkstra、「A Note on Two Problems in Connexion with Graphs」、1959年6月11日、Numerische Mathematik 1, p269-271
【発明の開示】
【発明が解決しようとする課題】
【０００５】
あるノード間を結ぶ最短経路が既に計算されている場合、この計算済みのノード間の最短経路と、これから計算する他のノード間の最短経路と、の間で共通する部分（以下「共通部分」と称する）が存在することがある。【０００６】
共通部分がある場合、この共通部分を、これから計算するノード間の最短経路の計算結果の一部として採用することが可能である。【０００７】
特に、計算済みのノード間の最短経路に、これから計算する起点から終点までの最短経路を示す部分（以下「部分経路」と称する）が含まれている場合、この部分経路は、これから計算する最短経路となる。【０００８】
計算済みの各ノード間の最短経路からなる最短経路群が、部分経路を多く含むほど、この計算済みの最短経路群の情報を使うことで、これから計算するノード間の最短経路の計算時間をより短縮することが可能になる。【０００９】
従来、この点、つまり、計算済みの各ノード間の最短経路からなる最短経路群が、部分経路を多く含むほど、計算済みの最短経路群の情報を使うことで、これから計算するノード間の最短経路の計算時間をより短縮できるという点に着目して、ノード間の最短経路の計算時間の短縮を図るものは存在しない。【００１０】
本発明の目的は、ノード間の最短経路の計算時間を短縮できるようにノード間の最短経路の計算順を決定する経路計算順決定方法、プログラムおよび計算装置を提供することである。
【課題を解決するための手段】
【００１１】
本発明の経路計算順決定方法は、複数のノードからなるネットワークについて、ノード間の計算済みの最短経路を用いて他のノード間の最短経路を計算する計算装置が行う経路計算順決定方法であって、前記計算装置は、起点ノードが同じで終点ノードが異なる各ノード間の計算済みの最短経路を複数のノードと当該複数のノードの各ノード間の経路によって表す最短経路群情報と、前記複数のノードのトポロジを表すトポロジ情報と、を記憶する記憶手段と、計算手段と、を備えており、前記計算手段が、前記複数のノードのうち前記起点ノードと異なる特定ノードのそれぞれを、前記最短経路群情報が表す各ノード間の計算済みの最短経路において当該特定ノードよりも下流に存在するノードの数が多い順に選択し、前記特定ノードが選択されるごとに、当該選択された特定ノードを起点とし前記複数のノードのうちの他の各ノードを終点とする各ノード間の最短経路を、他のノード間の計算済みの最短経路と、前記トポロジ情報と、を用いて計算する計算ステップを含む。【００１２】
本発明のプログラムは、複数のノードからなるネットワークについて、起点ノードが同じで終点ノードが異なる各ノード間の計算済みの最短経路を複数のノードと当該複数のノードの各ノード間の経路によって表す最短経路群情報と、前記複数のノードのトポロジを表すトポロジ情報と、を記憶したコンピュータに、前記複数のノードのうち前記起点ノードと異なる特定ノードのそれぞれを、前記最短経路群情報が表す各ノード間の計算済みの最短経路において当該特定ノードよりも下流に存在するノードの数が多い順に選択し、前記特定ノードが選択されるごとに、当該選択された特定ノードを起点とし前記複数のノードのうちの他の各ノードを終点とする各ノード間の最短経路を、他のノード間の計算済みの最短経路と、前記トポロジ情報と、を用いて計算する計算手順を実行させる。【００１３】
本発明の計算装置は、複数のノードからなるネットワークについて、ノード間の計算済みの最短経路を用いて他のノード間の最短経路を計算する計算装置であって、起点ノードが同じで終点ノードが異なる各ノード間の計算済みの最短経路を複数のノードと当該複数のノードの各ノード間の経路によって表す最短経路群情報と、前記複数のノードのトポロジを表すトポロジ情報と、を記憶する記憶手段と、前記複数のノードのうち前記起点ノードと異なる特定ノードのそれぞれを、前記最短経路群情報が表す各ノード間の計算済みの最短経路において当該特定ノードよりも下流に存在するノードの数が多い順に選択し、前記特定ノードが選択されるごとに、当該選択された特定ノードを起点とし前記複数のノードのうちの他の各ノードを終点とする各ノード間の最短経路を、他のノード間の計算済みの最短経路と、前記トポロジ情報と、を用いて計算する計算手段と、を含む。【００１４】
前記計算手段は、前記最短経路群情報が表す各ノード間の計算済みの最短経路において前記起点ノードよりも１ホップ下流に位置するすべてのノードを、前記特定ノードに属する計算起点ノードとして検索する検索処理と、前記計算起点ノードのうち、前記各ノード間の計算済みの最短経路において当該計算起点ノードよりも下流に存在するノードの数が最も多い特定計算起点ノードを、選択する選択処理と、前記特定計算起点ノードを起点とし前記複数のノードのうちの他の各ノードを終点とする各ノード間の最短経路を、他のノード間の計算済みの最短経路と、前記トポロジ情報と、を用いて計算する最短経路計算処理と、すべての前記特定ノードについて、当該特定ノードを起点とし前記複数のノードのうちの他の各ノードを終点とする各ノード間の最短経路の計算が終了するまで、前記最短経路群情報が表す各ノード間の計算済みの最短経路において前記特定計算起点ノードよりも１ホップ下流に位置するすべてのノードを検索し、当該検索されたノードを前記計算起点ノードとして追加し、その後、前記検索処理と前記選択処理と前記最短経路計算処理とを行う、一連の動作を繰り返す繰り返し処理と、を実行することが望ましい。
【発明の効果】
【００１５】
本発明によれば、他の各ノード間の最短経路の計算に転用できる経路数が多い順に、各ノード間の最短経路を計算することができる。これにより、全最短経路の計算時間を短縮することが可能になる。
【図面の簡単な説明】
【００１６】
【図１】本発明の一実施形態の計算装置１の構成を示したブロック図である。
【図２】最短経路群の経路ツリーの一例を示した説明図である。
【図３】計算装置１の動作を説明するためのフローチャートである。
【図４】計算装置１の動作を説明するための説明図である。
【図５】計算装置１の動作を説明するための説明図である。
【図６】計算装置１の動作を説明するための説明図である。
【図７】計算装置１の動作を説明するための説明図である。
【図８】計算装置１の動作を説明するための説明図である。
【図９】計算装置１の動作を説明するための説明図である。
【符号の説明】
【００１７】
１      計算装置
２      外部インタフェース
３      記憶媒体
４      プロセッサ
４ａ    経路計算部
４ｂ    情報管理部
【発明を実施するための最良の形態】
【００１８】
以下、本発明の実施の形態について図面を参照して説明する。【００１９】
図１は、本発明の一実施形態の計算装置１を示したブロック図である。【００２０】
計算装置１は、外部インタフェース２と、記憶媒体３と、プロセッサ４と、を含む。【００２１】
外部インタフェース２は、他の装置（不図示）に各ノード間の最短経路の計算結果を送信したり、他の装置からトポロジに関する情報（以下「トポロジ情報」と称する）を受信したりする。【００２２】
記憶媒体３は、記憶手段の一例であり、コンピュータにて読み取り可能な記録媒体である。【００２３】
記憶媒体３は、例えば、起点ノードが同じで終点ノードが異なる各ノード間の計算済みの最短経路を表す最短経路群情報と、トポロジ情報と、を記憶する。【００２４】
最短経路群情報は、起点ノードが同じで終点ノードが異なる各ノード間の計算済みの最短経路を、複数のノードとその複数のノードの各ノード間の経路によって表す。【００２５】
本実施形態では、最短経路群情報は、起点ノードが同じで終点ノードが異なる各ノード間の計算済みの最短経路群を、経路ツリーの形で表す。各最短経路は、起点から終点までツリーに沿って到達するときに通過するノードおよびそのノード間のリンクで表される。なお、ネットワークのトポロジについては図示を省略しているが、近隣のノード同士の間にパスが設けられているものとする。【００２６】
以下では、所定ノードから１ホップ上流のノードと所定ノードの間、および、所定ノードから１ホップ下流のノードと所定ノードの間を矢印でつなぎ、矢印の向く方向で上流→下流を示す。【００２７】
起点が同じ最短経路群として、図２に示したようなツリーが存在したとすると、ノードｓからノードｂまでの最短経路は、ツリーに沿ってノードｓからノードｂまでに行くまでに通過するノードであるノードｓ、ａおよびｂを用いて、ｓ→ａ→ｂのように表される。同様に、ノードｓから各ノードａ、ｃ、ｄまでの経路は、ｓ→ａ、ｓ→ａ→ｃ、ｓ→ｄとなる。ツリー内では、起点をツリーの頂点におき、終点に近いノードが下（下流）にくるように配置する。【００２８】
以下では、あるノードから見たとき、同一経路上に存在し、かつ、そのノードより起点側に位置するノードを上流のノード、終点側に位置するノードを下流のノードと呼ぶ。【００２９】
トポロジ情報は、最短経路群情報に示された複数のノードのトポロジを表す。【００３０】
プロセッサ４は、計算手段の一例である。プロセッサ４は、経路計算部４ａと、情報管理部４ｂと、を含む。【００３１】
なお、記憶媒体３に、プロセッサ４の動作を規定するプログラムが記録されている場合、プロセッサ４は、そのプログラムを記憶媒体３から読み取り実行することによって、情報管理部４ｂおよび経路計算部４ａとして機能する。【００３２】
経路計算部４ａは、記憶媒体３から、最短経路群情報とトポロジ情報とを読み込む。【００３３】
経路計算部４ａは、最短経路群情報が表す複数のノードのうち起点ノードと異なる特定ノードのそれぞれを、最短経路群情報が表す各ノード間の計算済みの最短経路について、特定ノードよりも下流（終点ノード側）に存在するノードの数が多い順に選択する。【００３４】
経路計算部４ａは、特定ノードが選択されるごとに、その選択された特定ノードを起点とし最短経路群情報が表す複数のノードのうちの他の各ノードを終点とする各ノード間の最短経路を、他のノード間の計算済みの最短経路と、トポロジ情報と、を用いて計算する。【００３５】
本実施形態では、経路計算部４ａは、検索処理と、選択処理と、最短経路計算処理と、繰り返し処理と、を実行する。【００３６】
検索処理では、経路計算部４ａは、最短経路群情報が表す各ノード間の計算済みの最短経路において起点ノードよりも１ホップ下流に位置するすべてのノードを、特定ノードに属する計算起点ノードとして検索する。【００３７】
選択処理では、経路計算部４ａは、計算起点ノードのうち、最短経路群情報が表す各ノード間の計算済みの最短経路においてその計算起点ノードよりも下流に存在するノードの数が最も多い計算起点ノードを、特定計算起点ノードとして選択する。【００３８】
最短経路計算処理では、経路計算部４ａは、選択された特定計算起点ノードを起点とし最短経路群情報が表す複数のノードのうちの他の各ノードを終点とする各ノード間の最短経路を、他のノード間の計算済みの最短経路と、トポロジ情報と、を用いて計算する。【００３９】
繰り返し処理では、経路計算部４ａは、最短経路群情報にて表されるすべての特定ノードについて、その特定ノードを起点とし最短経路群情報が表す複数のノードのうちの他の各ノードを終点とする各ノード間の最短経路の計算が終了するまで、最短経路群情報が表す各ノード間の計算済みの最短経路において特定計算起点ノードよりも１ホップ下流に位置するすべてのノードを検索し、その検索されたノードを計算起点ノードとして追加し、その後、検索処理と選択処理と最短経路計算処理とを行うという、一連の動作を繰り返す。【００４０】
情報管理部４ｂは、計算された経路情報やトポロジ情報の更新や取得を行う。【００４１】
次に、動作を説明する。【００４２】
図３は、計算装置１の動作を説明するためのフローチャートである。【００４３】
なお、本実施形態では、計算装置１は、起点が同じで終点が異なる各ノード間の最短経路を一回のプロセスで計算し、その後、起点のノードを他のノードに変えていくことで、全最短経路を計算する場合における、最短経路の計算順を決める。【００４４】
まず、経路計算部４ａが、記憶媒体３から最短経路群情報およびトポロジ情報を読み取って、起点が同じノードである計算済みの最短経路群（経路ツリー）およびトポロジ情報を用意（入力）する（ステップ３０１）。最短経路群は、最短経路群情報によって、図２で示したようなツリー構造で表されているものとする。【００４５】
続いて、経路計算部４ａは、ツリー構造で表された最短経路群において、起点より１ホップ下流に位置するノード（計算起点ノード）を検索する。そして、経路計算部４ａは、検索したノード（計算起点ノード）ごとに、最短経路群情報にて示された各ノード間の計算済みの最短経路において、そのノード（計算起点ノード）の下流に位置するノードの数を数え（カウントし）、そのノード数を、検索したノード（計算起点ノード）と対応づける（ステップ３０２）。【００４６】
続いて、経路計算部４ａは、検索したノード（計算起点ノード）を示す情報（例えば、ノードＩＤ（IDentification））を、そのノードに対応づけされた下流のノード数が多い順にソートする（ステップ３０３）。【００４７】
続いて、経路計算部４ａは、検索したノード（計算起点ノード）の中から、下流のノード数が最も多いノード（特定計算起点ノード）を選択する。そして、経路計算部４ａは、その選択されたノード（特定計算起点ノード）を起点としツリー構造内の他の各ノードを終点とする各ノード間の最短経路を、他のノード間の計算済みの最短経路（例えば、最短経路群情報）と、トポロジ情報と、を用いて、次のプロセスで計算する（ステップ３０４）。【００４８】
続いて、経路計算部４ａは、最短経路群情報にて示された複数のノードのうち、起点ノードと異なるすべてのノードについて、そのノードを起点とし他の各ノードを終点とする各ノード間の最短経路の計算が終了したかを判断する（ステップ３０５）。【００４９】
最短経路群情報にて示された複数のノードのうち、起点ノードと異なるすべてのノードについて、そのノードを起点とし他の各ノードを終点とする各ノード間の最短経路の計算が終了していない場合（ステップＳ３０５でＮｏ）、経路計算部４ａは、最短経路群情報にて示された各ノード間の計算済みの最短経路において、特定計算起点ノードよりも１ホップ下流に位置するすべてのノードを検索して、その検索されたノードを計算起点ノードとして追加する。続いて、経路計算部４ａは、追加された計算起点ノードごとに、最短経路群情報にて示された各ノード間の計算済みの最短経路において、その計算起点ノードの下流に位置するノードの数を数え、そのノード数を、検索したノード（計算起点ノード）と対応づける（ステップ３０６）。【００５０】
続いて、経路計算部４ａは、ステップ３０３の処理に戻る。【００５１】
一方、最短経路群情報にて示された複数のノードのうち、起点ノードと異なるすべてのノードについて、そのノードを起点とし他の各ノードを終点とする各ノード間の最短経路の計算が終了した場合（ステップＳ３０５でＹｅｓ）、経路計算部４ａは、計算処理を終了する。【００５２】
次に、図４〜図９を使って、各ステップを説明する。【００５３】
以降の説明でも、ツリー構造を用いて経路を表す。図４に示すようなツリー構造の場合、ノードＳからノードＥを結ぶ経路は、Ｓ→Ｃ→Ｄ→Ｅとなる。【００５４】
まず、図５を用いて、ステップ３０１、３０２および３０３を説明する。【００５５】
図５に示すようにノードＳを起点とし他の複数のノードのそれぞれを終点とする複数の最短経路が計算されたとすると、経路計算部４ａは、起点であるノードＳの１ホップ下流のノードである、ノードＡ、Ｂ、Ｃに着目する。【００５６】
そして、経路計算部４ａは、ノードＡの下流に位置するノード数と、ノードＢの下流に位置するノード数と、ノードＣの下流に位置するノード数と、を数える。図５では、ノードＡの下流に３つのノードが、ノードＢの下流に２つのノードが、ノードＣの下流に５つのノードが存在している。【００５７】
次に、経路計算部４ａは、ノードＡとその下流のノード数とを対応づけた情報（例えば、ノードＡ：下流のノード数３）を作成する。同様に、経路計算部４ａは、ノードＢとその下流のノード数とを対応づけた情報、および、ノードＣとその下流のノード数とを対応づけた情報を作成する。【００５８】
経路計算部４ａは、これらの情報の中から下流のノード数の最も多いノードの情報を取り出せるような形で、これらの情報を管理する。管理の例としては、それぞれの情報をヒープに入れて管理する方法が考えられる。【００５９】
次に、図６および図７を用いてステップ３０４を説明する。【００６０】
経路計算部４ａは、ステップ３０３で管理された情報から、下流のノード数の最も多い情報を取り出す。図６の例では、ノードＣの下流にいるノードの数が最も多いため、経路計算部４ａは、ノードＣに関する情報を取り出す。【００６１】
続いて、経路計算部４ａは、図７に示すように、ノードＣを起点とする最短経路を計算する。【００６２】
このとき、経路計算部４ａは、各ノード間の計算済みの最短経路においてノードＣの上流にいるノード（この場合、ノードＳ）を起点とする最短経路の計算結果を利用して、ノードＣを起点とする最短経路を計算する。【００６３】
例えば、経路計算部４ａは、ノードＣを起点とし他のノードを終点とする最短経路のうち、図５においてノードＣが起点になっているツリー部分（ノードＣの配下ツリー部分）については、ノードＳを起点とする最短経路の計算結果のうち、ノードＣが起点になっているツリー部分をそのまま利用する。【００６４】
なお、本実施形態では、ノードＣを起点とし他のノードを終点とする最短経路のうち、ノードＳを起点とする最短経路の計算結果に含まれないものについては、トポロジ情報を用いて、経路計算アルゴリズムにしたがって計算する。【００６５】
経路計算部４ａは、ノードＣを起点とし他のノードを終点とする最短経路の計算結果を保持し、この計算結果を、続いて行われる他のノードを起点とする最短経路の計算に利用する。【００６６】
ノードＣを起点とし他のノードを終点とする最短経路の計算が終了すると、経路計算部４ａは、図８に示すように、ノードＣの１つ下流のノードに着目する。そして、経路計算部４ａは、それぞれのノードの下流のノードの数を数える。経路計算部４ａは、下流のノード数を含む前述の情報を作成すると、これらの情報を、図９に示すように、先に作ったノードＡ、Ｂの情報と一緒に、下流のノード数が最も多いものを取り出せるような形で管理する。経路計算部４ａは、以上の処理を、全最短経路が計算されるまで繰り返す。【００６７】
このため、経路計算部４ａが最短経路の計算を行うたびに、続いて行われる他のノードを起点とする最短経路の計算に利用される最短経路の計算結果は増えていく。【００６８】
本実施形態では、プロセッサ４は、特定ノードのそれぞれを、最短経路群情報が表す各ノード間の計算済みの最短経路において特定ノードよりも下流に存在するノードの数が多い順に選択し、特定ノードが選択されるごとに、選択された特定ノードを起点とし他の各ノードを終点とする各ノード間の最短経路を、他のノード間の計算済みの最短経路と、トポロジ情報と、を用いて計算する。【００６９】
このため、プロセッサ４は、他の各ノード間の最短経路の計算に転用できる経路数が多い順に、各ノード間の最短経路を計算することになる。【００７０】
よって、本実施形態によれば、すでに計算されている最短経路の情報を利用して別の最短経路を計算する際の計算時間を短縮することが可能になる。【００７１】
なお、ノード数を比較する際、下流のノードの数が同じノードが存在した場合、経路計算部４ａは、それらのノードを、所定の順番（例えば、ノードＩＤがアルファベットで示される場合、ノードＩＤのアルファベット順）で選択する。図９の例では、下流のノードの数が最多の４つで同じであるノードＤとノードＥのうち、ノードＩＤのアルファベット順が先であるノードＤを選択する。【００７２】
以上説明した実施形態において、図示した構成は単なる一例であって、本発明はその構成に限定されるものではない。
【図１】
2010058785.tif 000003
【図２】
2010058785.tif 000004
【図３】
2010058785.tif 000005
【図４】
2010058785.tif 000006
【図５】
2010058785.tif 000007
【図６】
2010058785.tif 000008
【図７】
2010058785.tif 000009
【図８】
2010058785.tif 000010
【図９】
2010058785.tif 000011
【国際調査報告】
2010058785.tif 000012
2010058785.tif 000013
2010058785.tif 000014