(57)【要約】【課題】新規追加ネットワークを構成するノードを起点とする最短経路を、平均的な計算時間を高速にして、計算する方法を提供する。【解決手段】計算部１２ａは、所定ノードの２つのノードの全ての組合せにつき、２つのノード間の経路のコスト最小経路を計算する。計算部１２ｂは、追加リンクと接続する接続ノードを特定し、接続ノード単位で、接続ノードと接続する追加リンクと、計算部１２ａの計算結果のうちの当該接続ノードと終点ノードとの間のコスト最小経路と、を合わせた経路のうち、経路内のリンクに付与されたコストの合計が最小となる経路を、追加ノードと終点ノードとの間のコスト最小経路として算出する。【選択図】図１
2012015588.tif 000002
【特許請求の範囲】
【請求項１】
ｎ（ｎは２以上の整数）個の所定ノードとｍ（ｍはｎよりも小さく１以上の整数）個の所定リンクとを有し前記所定リンクが前記所定ノード間を接続し前記所定リンクに優先度を示すコストが付与された第１ネットワークを表す第１情報を受け付け、その後、１個の追加ノードとｓ（ｓは１以上ｎ以下の整数）個の追加リンクとを有し前記追加リンクが前記追加ノードと前記所定ノードのいずれかを接続し前記追加リンクに前記コストが付与された第２ネットワークを表す第２情報と、前記所定ノードのうち経路計算の対象となる経路の終点ノードを表す第３情報と、を受け付ける受付手段と、
前記第１情報を参照して、前記所定ノードのうちの２つのノードの全ての組合せおよび同一ノードからなる２つのノードの全ての組合せについて、当該２つのノード間の経路のうち当該経路内のリンクに付与されたコストの合計が最小となるコスト最小経路を計算する第１計算手段と、
前記第２情報を参照して、前記所定ノードのうち前記追加リンクと接続する接続ノードを特定し、前記接続ノード単位で、当該接続ノードと接続する追加リンクと、前記第１計算手段の計算結果のうちの当該接続ノードと前記第３情報が表す終点ノードとの間のコスト最小経路と、を合わせた経路のうち、前記経路内のリンクに付与されたコストの合計が最小となる経路を、前記追加ノードと前記終点ノードとの間のコスト最小経路として算出する第２計算手段と、を含む経路計算装置。
【請求項２】
請求項１に記載の経路計算装置において、
前記第２計算手段は、前記第３情報が表す終点ノードが、前記所定ノードのうち前記接続ノード以外のノードである特定ノードである場合、前記接続ノード単位で、前記追加ノードと当該接続ノードとの間のコスト最小経路を算出し、前記接続ノードのうち、前記追加ノードとの間のコスト最小経路が前記第２ネットワーク内のみに存在する接続ノードを、経由ノードとして特定し、前記経由ノード単位で、当該経由ノードと接続する追加リンクと、前記第１計算手段の計算結果のうちの当該経由ノードと前記特定ノードとの間のコスト最小経路と、を合わせた経路を計算し、当該計算された経路のうちのコスト最小経路を、前記追加ノードと前記終点ノードとの間のコスト最小経路として出力する、経路計算装置。
【請求項３】
請求項１または２に記載の経路計算装置と接続され、前記第１ネットワークまたは前記第２ネットワークから受け取ったデータを当該データの宛先に転送する、前記所定ノードまたは前記追加ノードであるデータ転送装置であって、
前記経路計算装置から経路計算結果を受け取り、当該経路計算結果に基づいて、前記データの転送先を設定する設定手段と、
前記設定された転送先に前記データを転送する転送手段と、を含むデータ転送装置。
【請求項４】
経路計算装置での経路計算方法であって、
ｎ（ｎは２以上の整数）個の所定ノードとｍ（ｍはｎよりも小さく１以上の整数）個の所定リンクとを有し前記所定リンクが前記所定ノード間を接続し前記所定リンクに優先度を示すコストが付与された第１ネットワークを表す第１情報を受け付け、その後、１個の追加ノードとｓ（ｓは１以上ｎ以下の整数）個の追加リンクとを有し前記追加リンクが前記追加ノードと前記所定ノードのいずれかを接続し前記追加リンクに前記コストが付与された第２ネットワークを表す第２情報と、前記所定ノードのうち経路計算の対象となる経路の終点ノードを表す第３情報と、を受け付ける受付ステップと、
前記第１情報を参照して、前記所定ノードのうちの２つのノードの全ての組合せおよび同一ノードからなる２つのノードの全ての組合せについて、当該２つのノード間の経路のうち当該経路内のリンクに付与されたコストの合計が最小となるコスト最小経路を計算する第１計算ステップと、
前記第２情報を参照して、前記所定ノードのうち前記追加リンクと接続する接続ノードを特定し、前記接続ノード単位で、当該接続ノードと接続する追加リンクと、前記第１計算ステップでの計算結果のうちの当該接続ノードと前記第３情報が表す終点ノードとの間のコスト最小経路と、を合わせた経路のうち、前記経路内のリンクに付与されたコストの合計が最小となる経路を、前記追加ノードと前記終点ノードとの間のコスト最小経路として算出する第２計算ステップと、を含む経路計算方法。
【請求項５】
請求項４に記載の経路計算方法において、
前記第２計算ステップでは、前記第３情報が表す終点ノードが、前記所定ノードのうち前記接続ノード以外のノードである特定ノードである場合、前記接続ノード単位で、前記追加ノードと当該接続ノードとの間のコスト最小経路を算出し、前記接続ノードのうち、前記追加ノードとの間のコスト最小経路が前記第２ネットワーク内のみに存在する接続ノードを、経由ノードとして特定し、前記経由ノード単位で、当該経由ノードと接続する追加リンクと、前記第１計算ステップでの計算結果のうちの当該経由ノードと前記特定ノードとの間のコスト最小経路と、を合わせた経路を計算し、当該計算された経路のうちのコスト最小経路を、前記追加ノードと前記終点ノードとの間のコスト最小経路として出力する、経路計算方法。
【請求項６】
請求項１または２に記載の経路計算装置と接続され、前記第１ネットワークまたは前記第２ネットワークから受け取ったデータを当該データの宛先に転送する、前記所定ノードまたは前記追加ノードであるデータ転送装置でのデータ転送方法であって、
前記経路計算装置から経路計算結果を受け取り、当該経路計算結果に基づいて、前記データの転送先を設定する設定ステップと、
前記設定された転送先に前記データを転送する転送ステップと、を含むデータ転送方法。
【請求項７】
コンピュータに、
ｎ（ｎは２以上の整数）個の所定ノードとｍ（ｍはｎよりも小さく１以上の整数）個の所定リンクとを有し前記所定リンクが前記所定ノード間を接続し前記所定リンクに優先度を示すコストが付与された第１ネットワークを表す第１情報を受け付け、その後、１個の追加ノードとｓ（ｓは１以上ｎ以下の整数）個の追加リンクとを有し前記追加リンクが前記追加ノードと前記所定ノードのいずれかを接続し前記追加リンクに前記コストが付与された第２ネットワークを表す第２情報と、前記所定ノードのうち経路計算の対象となる経路の終点ノードを表す第３情報と、を受け付ける受付手順と、
前記第１情報を参照して、前記所定ノードのうちの２つのノードの全ての組合せおよび同一ノードからなる２つのノードの全ての組合せについて、当該２つのノード間の経路のうち当該経路内のリンクに付与されたコストの合計が最小となるコスト最小経路を計算する第１計算手順と、
前記第２情報を参照して、前記所定ノードのうち前記追加リンクと接続する接続ノードを特定し、前記接続ノード単位で、当該接続ノードと接続する追加リンクと、前記第１計算手順での計算結果のうちの当該接続ノードと前記第３情報が表す終点ノードとの間のコスト最小経路と、を合わせた経路のうち、前記経路内のリンクに付与されたコストの合計が最小となる経路を、前記追加ノードと前記終点ノードとの間のコスト最小経路として算出する第２計算手順と、を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ノードと、ノード間を接続するリンクと、により構成されるネットワークにおいて、起点ノードから終点ノードまでたどるべき経路を計算する技術に関する。より詳細には、本発明は、新たにリンクとノードが追加されてネットワークのトポロジが変化したときに、それまで使用されていた起点終点間の経路を利用して、トポロジが変化したネットワークでの起点ノードから終点ノードまでのコスト最小経路を再度計算する技術に関する。
【背景技術】
【０００２】
分岐の存在しない通路に相当するリンクと、分岐点に相当するノードと、から構成されるネットワークにおいて、新たにノードとリンクが追加され、それまで通れなかった箇所が通れるようになる場合が存在する。コンピュータネットワークにおいては、ルータやリンクの増設が前述の場合に相当する。
【０００３】
また、ネットワークにおいては、リンクに優先度（コスト）を持たせ、２ノード間の経路として、２ノード間の経路のうち経路内のリンクのコストの和が最も小さくなる経路を計算することが多々ある。通常、通したいリンクのコストは小さい値に設定される。そのようなネットワークで、経路内のリンクのコスト和が最小となる経路を計算することは重要な問題である。経路内のリンクのコスト和が最小となる経路をコスト最小経路という。
【０００４】
出発地（起点）から目的地（終点）までのコスト最小経路を常に維持する必要がある場合、ネットワークにおけるノードとリンクの敷設状況（トポロジ）やリンクのコストの変化に伴い、変化後のネットワークについて２ノード間を結ぶコスト最小経路を再計算する必要がある。
【０００５】
従来のコスト最小経路計算方法では、ネットワーク状況が変化した場合、２ノード間を結ぶコスト最小経路を、変化後のネットワークを示すネットワーク情報（トポロジの情報）のみを用いて、再計算する。
【０００６】
コスト最小経路計算方法の代表例は、非特許文献１に記載されている。なお、非特許文献１に記載された方法は、ダイクストラのアルゴリズムとして知られている。
【０００７】
トポロジが変化するネットワークでの２ノード間の経路うち、トポロジの変化の前後でコスト最小経路に違いが生じない２ノード間の経路が存在することがある。このような状況を、コスト最小経路の再計算をする前に検知すると、トポロジの変化の前後でコスト最小経路に違いが生じない経路の計算を省くことが可能となる。これにより、計算時間の短縮が可能となる。
【０００８】
しかし、このような方法は、ネットワーク状況変化前のコスト最小経路を示す情報が必要となるため、変化後のネットワークを示すネットワーク情報のみを使用する従来の方法では実現が困難である。
【０００９】
この問題を解決する方法として、あるリンクのコストに変化が生じた時に、ネットワーク状況の変化前の最短経路の情報を用いて、変化後の最短経路を計算する方法が、非特許文献２に記載されている。この方法を用いることで、上述のすべてのコスト最短経路を再計算することにより計算時間が長くなるという問題を解決することができる。
【先行技術文献】
【非特許文献】
【００１０】
【非特許文献１】E.W. Dijkstra: A note on two problems in connexion with graphs. In Numerische Mathematik, 1(1959), S. 269-271.
【非特許文献２】B. Xiao, et al. "Dynamic update of shortest path tree in OSPF," IEEE Parallel Architectures Algorithms and Network, pp. 18-23, May 2004.
【発明の概要】
【発明が解決しようとする課題】
【００１１】
非特許文献２に記載の基本的なコスト最小経路の確定動作は、ダイクストラのアルゴリズムと同じである。このアルゴリズムでは、リンクのコストが変わった後のコスト最小経路を、ネットワーク状況変化前のコスト最小経路の情報を用いて計算する。非特許文献２に記載のコスト最小経路の計算方法を、図７を参照して説明する。
【００１２】
図７では、Ｂ→Ｃ、Ｄ→Ｃの経路が既に確定している、つまり、Ｂ→Ｃ、Ｄ→Ｃの経路では、ネットワーク状況変化によってコスト最小経路に変化がなかったとする。以下、この状況でＡ→Ｃのコスト最小経路を求める場合を説明する。
【００１３】
まず、ネットワーク状況変化の影響があった経路の計算を開始する。
【００１４】
この計算により、Ａ→Ｂへの経路が確定すると、Ｂ→Ｃの経路は既に確定しているため、Ａ→Ｂ→ＣをＡ→Ｃの経路（コスト最小経路）の候補とする。ここで、Ｂを通らず、よりコストが小さいＡ→Ｃの経路が存在する可能性があるため、Ａ→Ｂ→ＣをＡ→Ｃの経路の確定経路ではなく候補とする。
【００１５】
経路計算を続けていき、Ａ→Ｄの経路が確定すると、Ｄ→Ｃの経路は既に確定しているため、Ａ→Ｄ→ＣをＡ→Ｃの経路の候補とする。
【００１６】
続いて、Ａ→Ｂ→ＣとＡ→Ｄ→Ｃのコストを比較し、コストが小さい方をＡ→Ｃの経路の候補として残す。ここで、ＢまたはＤを通らず、よりコストが小さいＡ→Ｃの経路が存在する可能性があるため、コストが小さい方をＡ→Ｃの経路の確定経路ではなく候補とする。
【００１７】
同様に、他にＡ→Ｃの経路の候補が見つかるたびに、コストが小さい方をＡ→Ｃの経路の候補として残す。ネットワーク全体の経路計算が終了した時点で、残っているＡ→Ｃの経路の候補がＡ→Ｃの経路として確定する。
【００１８】
このアルゴリズムの場合、Ａ→Ｂ→Ｃ、Ａ→Ｄ→Ｃのように、Ａ→Ｃの経路の候補が何個見つかるか、経路計算を始める前にはわからないため、計算時間の予測が困難である。よって、安定した計算時間を予測することが重要な場合、使いづらいアルゴリズムとなっている。
【００１９】
本発明は、新規にネットワークを追加したときのみに動作環境を絞り、新規追加ネットワークを構成するノードを起点とする最短経路を、平均的な計算時間を高速にして、計算する方法を提供することを目的とする。
【課題を解決するための手段】
【００２０】
本発明の経路計算装置は、ｎ（ｎは２以上の整数）個の所定ノードとｍ（ｍはｎよりも小さく１以上の整数）個の所定リンクとを有し前記所定リンクが前記所定ノード間を接続し前記所定リンクに優先度を示すコストが付与された第１ネットワークを表す第１情報を受け付け、その後、１個の追加ノードとｓ（ｓは１以上ｎ以下の整数）個の追加リンクとを有し前記追加リンクが前記追加ノードと前記所定ノードのいずれかを接続し前記追加リンクに前記コストが付与された第２ネットワークを表す第２情報と、前記所定ノードのうち経路計算の対象となる経路の終点ノードを表す第３情報と、を受け付ける受付手段と、前記第１情報を参照して、前記所定ノードのうちの２つのノードの全ての組合せおよび同一ノードからなる２つのノードの全ての組合せについて、当該２つのノード間の経路のうち当該経路内のリンクに付与されたコストの合計が最小となるコスト最小経路を計算する第１計算手段と、前記第２情報を参照して、前記所定ノードのうち前記追加リンクと接続する接続ノードを特定し、前記接続ノード単位で、当該接続ノードと接続する追加リンクと、前記第１計算手段の計算結果のうちの当該接続ノードと前記第３情報が表す終点ノードとの間のコスト最小経路と、を合わせた経路のうち、前記経路内のリンクに付与されたコストの合計が最小となる経路を、前記追加ノードと前記終点ノードとの間のコスト最小経路として算出する第２計算手段と、を含む。
【００２１】
本発明の経路計算方法は、経路計算装置での経路計算方法であって、ｎ（ｎは２以上の整数）個の所定ノードとｍ（ｍはｎよりも小さく１以上の整数）個の所定リンクとを有し前記所定リンクが前記所定ノード間を接続し前記所定リンクに優先度を示すコストが付与された第１ネットワークを表す第１情報を受け付け、その後、１個の追加ノードとｓ（ｓは１以上ｎ以下の整数）個の追加リンクとを有し前記追加リンクが前記追加ノードと前記所定ノードのいずれかを接続し前記追加リンクに前記コストが付与された第２ネットワークを表す第２情報と、前記所定ノードのうち経路計算の対象となる経路の終点ノードを表す第３情報と、を受け付ける受付ステップと、前記第１情報を参照して、前記所定ノードのうちの２つのノードの全ての組合せおよび同一ノードからなる２つのノードの全ての組合せについて、当該２つのノード間の経路のうち当該経路内のリンクに付与されたコストの合計が最小となるコスト最小経路を計算する第１計算ステップと、前記第２情報を参照して、前記所定ノードのうち前記追加リンクと接続する接続ノードを特定し、前記接続ノード単位で、当該接続ノードと接続する追加リンクと、前記第１計算ステップでの計算結果のうちの当該接続ノードと前記第３情報が表す終点ノードとの間のコスト最小経路と、を合わせた経路のうち、前記経路内のリンクに付与されたコストの合計が最小となる経路を、前記追加ノードと前記終点ノードとの間のコスト最小経路として算出する第２計算ステップと、を含む。
【００２２】
本発明のプログラムは、コンピュータに、ｎ（ｎは２以上の整数）個の所定ノードとｍ（ｍはｎよりも小さく１以上の整数）個の所定リンクとを有し前記所定リンクが前記所定ノード間を接続し前記所定リンクに優先度を示すコストが付与された第１ネットワークを表す第１情報を受け付け、その後、１個の追加ノードとｓ（ｓは１以上ｎ以下の整数）個の追加リンクとを有し前記追加リンクが前記追加ノードと前記所定ノードのいずれかを接続し前記追加リンクに前記コストが付与された第２ネットワークを表す第２情報と、前記所定ノードのうち経路計算の対象となる経路の終点ノードを表す第３情報と、を受け付ける受付手順と、前記第１情報を参照して、前記所定ノードのうちの２つのノードの全ての組合せおよび同一ノードからなる２つのノードの全ての組合せについて、当該２つのノード間の経路のうち当該経路内のリンクに付与されたコストの合計が最小となるコスト最小経路を計算する第１計算手順と、前記第２情報を参照して、前記所定ノードのうち前記追加リンクと接続する接続ノードを特定し、前記接続ノード単位で、当該接続ノードと接続する追加リンクと、前記第１計算手順での計算結果のうちの当該接続ノードと前記第３情報が表す終点ノードとの間のコスト最小経路と、を合わせた経路のうち、前記経路内のリンクに付与されたコストの合計が最小となる経路を、前記追加ノードと前記終点ノードとの間のコスト最小経路として算出する第２計算手順と、を実行させる。
【発明の効果】
【００２３】
本発明によれば、所定ノードのうち追加リンクと接続する接続ノードが特定され、接続ノード単位で、接続ノードと接続する追加リンクと、第１計算手段の計算結果のうちの当該接続ノードと終点ノードとの間のコスト最小経路と、を合わせた経路のうち、経路内のリンクに付与されたコストの合計が最小となる経路が、追加ノードと終点ノードとの間のコスト最小経路として算出される。
【００２４】
このため、追加ノードについてのコスト最小経路を計算する際に、既存ネットワークである第１ネットワークについて第１計算手段にて計算されたコスト最小経路の情報を利用できるため、追加ノードについてのコスト最小経路の計算量を少なくすることが可能になる。
【００２５】
また、起点ノードである追加ノードと終点ノードとのコスト最小経路の候補の最大数が接続ノード数となる。このため、コスト最小経路の計算時間の予測が容易となり、また、平均的な計算時間を短くすることが可能になる。
【図面の簡単な説明】
【００２６】
【図１】本発明の一実施形態の経路計算装置１の機能ブロック図である。
【図２】本実施形態の動作を説明するためのフローチャートである。
【図３】新規追加ネットワークと既存ネットワークとの一例を示した図である。
【図４】追加ノードから接続ノードまでのコスト最小経路の計算結果を示した図である。
【図５】追加ノードから特定ノードまでのコスト最小経路の計算結果を示した図である。
【図６】本発明の一実施形態のデータ転送装置２の機能ブロック図である。
【図７】非特許文献２に記載の技術を説明するための図である。
【発明を実施するための形態】
【００２７】
以下、本発明の実施形態について説明する。
【００２８】
図１は、本発明の一実施形態の経路計算装置１の機能ブロック図である。
【００２９】
経路計算装置１は、ノード間がリンクで接続され、それぞれのリンクには計算の際に使用されるコストと呼ばれる優先度が存在するネットワークについて、ノード間のコスト最小経路を計算する。なお、コストは、数値にて示され、優先度が高いほど小さい値が付与される。
【００３０】
新たに別ネットワーク（新規追加ネットワーク）が、既存ネットワークに追加される場合、経路計算装置１は、新規追加ネットワークの追加が起こる前に、既存ネットワークを構成するノード間のコスト最小経路を予め計算して用意する。
【００３１】
経路計算装置１が使用するコスト最小経路の計算方法としては、ダイクストラのアルゴリズムを用いた方法など、既存のコスト最小経路を計算するアルゴリズムが用いられる。
【００３２】
経路計算装置１が起点から終点までのコスト最小経路を計算する方法としては２種類存在し、それらは、候補となる経路数に違いが生じる。
【００３３】
第１の方法は、経路計算装置１が、経路の起点に隣接（接続）するノード（以下「隣接ノード」または「接続ノード」と称する）ごとに、起点から接続ノードを経由して終点へ通じる経路のコスト最小経路を求め、それらの全てを候補経路とする方法である。第１の方法では、経路計算装置１は、これらの候補経路のうち、コストが最小となる候補経路を、コスト最小経路の計算結果として出力する。
【００３４】
第２の方法は、経路計算装置１が、接続ノードごとに求められる、接続ノードを経由して起点から終点に通じる経路のコスト最小経路のうち、起点と接続ノードとの間のリンクが起点とその接続ノードとの間のコスト最小経路となる経路のみを、候補経路とする方法である。第２の方法では、経路計算装置１は、これらの候補経路のうち、コストが最小となる候補経路を、コスト最小経路の計算結果として出力する。
【００３５】
起点から起点とは隣接しないノードまでのコスト最小経路を計算する場合、候補経路の数の少なさから、第１の方法より第２の方法のほうが高速化を実現できると予想される。よって、本実施形態では、コスト最小経路を計算する手法として、第２の方法が用いられる。なお、コスト最小経路を計算する手法として、第１の方法が用いられてもよい。
【００３６】
図１において、経路計算装置１は、トポロジ情報取得部１１と、経路計算部１２と、インタフェース１３および１４と、を含む。経路計算部１２は、計算部１２ａおよび１２ｂを含む。
【００３７】
トポロジ情報取得部１１は、受付手段の一例である。
【００３８】
トポロジ情報取得部１１は、既存ネットワークを表す既存ネットワーク情報（既存トポロジ情報）を受け付ける。既存ネットワークは、第１ネットワークの一例である。既存ネットワークは、ｎ（ｎは２以上の整数）個の所定ノードと、ｍ（ｍはｎよりも小さく１以上の整数）個の所定リンクと、を有する。所定リンクは、所定ノード間を接続する。所定リンクには、優先度を示すコストが付与されている。
【００３９】
トポロジ情報取得部１１は、既存ネットワーク情報を受け付けた後、新規追加ネットワークを表す新規追加ネットワーク情報（新規追加トポロジ情報）と、所定ノードのうち経路計算の対象となる経路の終点ノードを表す終点ノード情報と、を受け付ける。
【００４０】
新規追加ネットワークは、第２ネットワークの一例である。新規追加ネットワークは、１個の追加ノードと、ｓ（ｓは１以上ｎ以下の整数）個の追加リンクと、を有する。追加リンクは、追加ノードと所定ノードのいずれかを接続する。追加リンクには、コストが付与されている。終点ノード情報は、第３情報の一例である。
【００４１】
本実施形態では、トポロジ情報取得部１１は、既存ネットワーク情報と、新規追加ネットワーク情報と、終点ノード情報とを、例えば、入力部（不図示）または外部装置（不図示）から取得することによって受け付ける。なお、トポロジ情報取得部１１は、例えば、外部装置（外部機能）から出力された既存ネットワーク情報、新規追加ネットワーク情報、および、終点ノード情報を、受け付けてもよい。
【００４２】
経路計算部１２は、トポロジ情報取得部１１が持っている既存ネットワーク情報、新規追加ネットワーク情報および終点ノード情報を利用して経路計算を行う。
【００４３】
計算部１２ａは、第１計算手段の一例である。
【００４４】
計算部１２ａは、既存ネットワーク情報を参照して、所定ノードのうちの２つのノードの全ての組合せおよび所定ノードのうちの同一ノードからなる２つのノードの全ての組合せについて、２つのノード単位で、２つのノード間の経路のうち経路内のリンクに付与されたコストの合計が最小となるコスト最小経路を計算する。
【００４５】
なお、例えば、所定ノードとしてノードａ１、ａ２およびａ３が存在する場合、所定ノードのうちの２つのノードの全ての組合せは、（ａ１、ａ２）と（ａ１、ａ３）と（ａ２、ａ３）の組合せとなり、所定ノードのうちの同一ノードからなる２つのノードの全ての組合せは、（ａ１、ａ１）と（ａ２、ａ２）と（ａ３、ａ３）となる。
【００４６】
なお、所定ノードのうちの同一ノードからなる２つのノードの全ての組合せは、換言すると、所定ノードのうちの１つのノードと当該ノードと同一のノードとからなる２つのノードの組合せにおいて、組合せ内の１つのノードを所定ノードのそれぞれとした場合の全ての組合せとなる。
【００４７】
計算部１２ａは、例えば、ダイクストラのアルゴリズム等の既存のコスト最小経路を計算するアルゴリズムを使用して、全ての組合せについてコスト最小経路を計算する。計算部１２ａは、コスト最小経路の計算結果を保持する。
【００４８】
計算部１２ｂは、第２計算手段の一例である。
【００４９】
計算部１２ｂは、新規追加ネットワーク情報を参照して、所定ノードのうち追加リンクと接続されるノードである接続ノードを特定する。
【００５０】
計算部１２ｂは、接続ノードを特定すると、接続ノード単位で、その接続ノードと接続する追加リンクと、計算部１２ａの計算結果のうちの当該接続ノードと終点ノード情報が表す終点ノードとの間のコスト最小経路と、を合わせた経路のうち、経路内のリンクに付与されたコストの合計が最小となる経路を、追加ノードと終点ノードとの間のコスト最小経路として算出する。計算部１２ｂは、コスト最小経路の計算結果を保持してもよい。
【００５１】
本実施形態では、終点ノード情報が表す終点ノードが接続ノードのいずれかである場合、計算部１２ｂは、以下のような動作を行う。
【００５２】
まず、計算部１２ｂは、接続ノードを特定し、その後、接続ノードごとに、接続ノードと接続する追加リンクと、計算部１２ａの計算結果のうちの当該接続ノードと終点ノード情報が表す終点ノードとの間のコスト最小経路と、を合わせた経路を計算する。
【００５３】
続いて、計算部１２ｂは、計算された経路のうち、経路内のリンクに付与されたコストの合計が最小となる経路を、追加ノードと終点ノード（接続ノード）との間のコスト最小経路として算出する。
【００５４】
また、本実施形態では、終点ノード情報が表す終点ノードが、所定ノードのうち接続ノード以外のノードである特定ノードである場合、計算部１２ｂは、以下のような動作を行う。
【００５５】
まず、計算部１２ｂは、接続ノードごとに、追加ノードと接続ノードとの間のコスト最小経路を算出する。
【００５６】
続いて、計算部１２ｂは、接続ノードのうち、追加ノードとの間のコスト最小経路が新規追加ネットワーク内のみに存在する接続ノードを、経由ノードとして特定する。
【００５７】
続いて、計算部１２ｂは、経由ノードごとに、経由ノードと接続する追加リンクと、計算部１２ａの計算結果のうちの当該経由ノードと特定ノードとの間のコスト最小経路と、を合わせた経路を計算する。
【００５８】
続いて、計算部１２ｂは、計算された経路のうち、経路内のリンクに付与されたコストの合計が最小となる経路を、追加ノードと終点ノード（特定ノード）との間のコスト最小経路として算出する。
【００５９】
ここで、経路計算装置１が有する処理機能を説明する。
【００６０】
計算部１２ａは、トポロジ情報取得部１１が受け付けた既存ネットワーク情報を参照して、既存ネットワークにおける全ての経路のコスト最小経路を計算して計算結果を記録する処理（以下「処理Ｓ１」と称する）を実行可能である。
【００６１】
なお、既存ネットワークにおける全ての経路は、既存ネットワーク内の所定ノードのうちの２つのノードの全ての組合せについての経路と、既存ネットワーク内の同一所定ノードからなる２つのノードの全ての組合せについての経路と、を含む。
【００６２】
また、処理Ｓ１では、起点と終点との間の経路ごとに、その経路のコスト最小経路と、そのコスト最小経路が有するコストとが、計算され、その計算結果が計算部１２ａに記憶される。
【００６３】
計算部１２ｂは、処理Ｓ１で計算された各コスト最小経路から、計算対象の経路の起点と計算対象の終点とを指定することで特定されるノードペア間のコスト最小経路と、そのコスト最小経路が有するコストと、を検索する処理（以下「処理Ｓ２」と称する）を実行可能である。
【００６４】
計算部１２ｂは、追加リンクのみを介して追加ノードと接続する既存ネットワーク内の接続ノードと、追加ノードと接続ノードとの間の追加リンクと、その追加リンクが有するコストとを、１つずつ検索する処理（以下「処理Ｓ３」と称する）を実行可能である。
【００６５】
トポロジ情報取得部１１とインタフェース１３および１４は、入出力処理（以下「処理Ｓ４」と称する）を実行可能である。
【００６６】
経路計算装置１は、コンピュータにて実現されてもよい。この場合、コンピュータは、コンピュータにて読み取り可能なＣＤ−ＲＯＭ（Compact Disk Read Only Memory）のような記録媒体に記録されたプログラムを読込み実行することによって、トポロジ情報取得部１１および経路計算部１２として機能する。記録媒体は、ＣＤ−ＲＯＭに限らず適宜変更可能である。なお、トポロジ情報取得部１１および経路計算部１２は、ロジック回路にて構成されてもよい。
【００６７】
図２は、本実施形態の動作を説明するためのフローチャートである。以下、図２を参照して、本実施形態の動作を説明する。
【００６８】
経路計算装置１は、単一ノード（追加ノード）とリンク（追加リンク）から構成されリンクには優先度を示すコストが割り振られている新規追加ネットワークを、既存ネットワークに追加したときに、新規追加ネットワークを構成する追加ノードを起点とするコスト最小経路を計算する。
【００６９】
経路計算装置１は、新規追加ネットワークを構成する追加ノードを起点とし、起点以外の指定されたノード（既存ネットワーク内のノード）を終点とするコスト最小経路を、以下のように計算する。
【００７０】
計算部１２ａは、トポロジ情報取得部１１が、既存ネットワーク情報を受け付けると（ステップＡ１）、ネットワーク追加前に処理Ｓ１を実行することによって、既存ネットワークを構成するノード間のコスト最小経路を計算し、その計算結果を記録して、処理Ｓ２の検索ができる状態にする（ステップＡ２）。
【００７１】
新規追加ネットワークが既存ネットワークに追加されると、つまり、既存ネットワーク情報が入力された後に、新規追加ネットワーク情報と終点ノード情報とが入力されると（ステップＡ３）、計算部１２ｂは、処理Ｓ３を実行することによって、既存ネットワーク内の接続ノードを１つずつ検索し、接続ノードごとに、追加ノードと接続ノードとの間の追加リンクと、その追加リンクが有するコストと、を検索する（ステップＡ４）。
【００７２】
計算部１２ｂは、ステップＡ４を終了すると、接続ノードごとに、処理Ｓ３にて得られた追加ノードから接続ノードまでのリンクと、その接続ノードを起点とし終点ノード情報に示された終点ノードを終点として処理Ｓ２を実行することによって得られる接続ノードから終点ノードまでのノードペア間のコスト最小経路と、を合わせた経路のうち、コストが最小となる経路を、起点終点間を結ぶコスト最小経路とする。
【００７３】
なお、図２に示した例では、処理Ｓ１実行後の動作が、追加ノードを起点とし接続ノードを終点とするコスト最小経路を計算するステップＳ１０１と、追加ノードを起点とし接続ノード以外のノードである特定ノードを終点とするコスト最小経路を計算するステップＳ１０２にわかれている。
【００７４】
本実施形態では、経路計算装置１は、追加ノードを起点とし接続ノードを終点とするコスト最小経路を計算する際にはステップＳ１０１を実行し、追加ノードを起点とし特定ノードを終点とするコスト最小経路を計算する際にはステップＳ１０１とステップＳ１０２を実行する。
【００７５】
ステップＳ１０１では、計算部１２ｂは、追加ノードから処理Ｓ３で検索された接続ノードまでのコスト最小経路の計算を行う。
【００７６】
本実施形態では、計算部１２ｂは、接続ノードごとに、起点である追加ノードからその接続ノードまでのリンクと、その接続ノードを起点とし計算対象の経路の終点ノードとしての接続ノードを終点として処理Ｓ２を実行することによって得られるコスト最小経路と、を合わせた経路を計算する。計算部１２ｂは、これら計算された経路のうち、コストが最小の経路を、計算対象経路のコスト最小経路とする。計算部１２ｂは、上記コスト最小経路計算を、計算対象の経路の終点ノードとしての接続ノードを他の接続ノードに切り替えることによって、計算対象の経路を切り替えながら、各計算対象の経路のコスト最小経路を算出する（ステップＡ５）。
【００７７】
計算部１２ｂは、終点ノード情報が示す終点ノードが接続ノードである場合（ステップＡ６）、ステップＡ５での計算結果のうち、追加ノードと終点ノードとして指定された接続ノードとの間のコスト最小経路を出力する（ステップＡ７）。
【００７８】
計算部１２ｂは、終点ノード情報が示す終点ノードが特定ノードである場合（ステップＡ６）、ステップＡ５での計算済みのコスト最小経路のうち、起点と終点を接続する追加リンクのみを通過する経路を検索し、検索された経路の終点を経由ノードとして記録し、かつ、経由ノードごとに、追加ノードとその経由ノードとを接続する追加リンクのコストを記録する処理Ｓ５を実行する（ステップＡ８）。
【００７９】
計算部１２ｂは、処理Ｓ５を実行すると、処理Ｓ５で記録された経由ノードを１つずつ検索し、経由ノードごとに、起点となる追加ノードから経由ノードまでのリンクと、その経由ノードを起点とし計算対象の経路の終点ノードを終点とすることで処理Ｓ２を実行することによって得られるコスト最小経路と、を合わせた経路を計算する。計算部１２ｂは、これら計算された経路のうち、コストが最小の経路を、計算対象経路のコスト最小経路とする（ステップＡ９）。
【００８０】
ここで、本実施形態の動作を、計算対象の経路の終点が接続ノードである場合と、計算対象の経路の終点が特定ノードである場合と、に分けて再度説明する。
【００８１】
まず、計算対象の経路が、既存ネットワークの接続ノードを終点とする場合の計算方法について説明する。
【００８２】
この場合、計算部１２ｂは、接続ノードごとに、起点である追加ノードからその接続ノードまでのリンクと、その接続ノードを起点とし計算対象の経路の終点に位置する接続ノードを終点として処理Ｓ２を実行することによって得られるコスト最小経路と、を合わせた経路を計算する。計算部１２ｂは、これら計算された経路のうち、コストが最小の経路を、計算対象経路のコスト最小経路とする。
【００８３】
次に、計算対象の経路が、経路の起点に隣接しないノードつまり特定ノートを終点とする場合の計算方法について説明する。
【００８４】
まず、計算部１２ｂは、起点である追加ノードに隣接する接続ノードごとに、追加ノードから接続ノードまでのコスト最小経路を計算する。この計算方法は前述のステップＡ５のとおりである。
【００８５】
計算終了後、計算部１２ｂは、計算されたコスト最小経路のうち、起点と接続ノードを結ぶ追加リンクのみ通過する経路を検索し、検索された経路の終点を経由ノードとして記録する。
【００８６】
続いて、計算部１２ｂは、経由ノードごとに、起点となる追加ノードから経由ノードまでのリンクと、その経由リンクを起点とし計算対象の経路の終点ノードを終点とすることで処理Ｓ２を実行することによって得られるコスト最小経路と、を合わせた経路を計算する。計算部１２ｂは、これら計算された経路のうち、コストが最小の経路を、計算対象経路のコスト最小経路とする。
【００８７】
次に、一例を挙げて、経路計算装置１の動作を説明する。
【００８８】
今回説明する実施形態は、追加ノードを起点としその他のノードを終点とする経路を全部計算する例である。
【００８９】
図３（Ａ）は、新規追加ネットワークＡと、既存ネットワークＢと、を示した図である。
【００９０】
既存ネットワークＢは、ノード（所定ノード）ａ〜ｆと、リンク（所定リンク）ａ−ｂと、リンク（所定リンク）ａ−ｄと、リンク（所定リンク）ｂ−ｃと、リンク（所定リンク）ｂ−ｅと、リンク（所定リンク）ｃ−ｆと、リンク（所定リンク）ｄ−ｅと、リンク（所定リンク）ｅ−ｆと、から構成される。リンクａ−ｂのコストは「１」である。リンクａ−ｄのコストは「２」である。リンクｂ−ｃのコストは「３」である。リンクｂ−ｅのコストは「２」である。リンクｃ−ｆのコストは「１」である。リンクｄ−ｅのコストは「３」である。リンクｅ−ｆのコストは「１」である。
【００９１】
新規追加ネットワークＡは、ノード（追加ノード）αと、リンク（追加リンク）α−ａと、リンク（追加リンク）α−ｂと、リンク（追加リンク）α−ｃと、から構成される。リンクα−ａのコストは「１」である。リンクα−ｂのコストは「３」である。リンクα−ｃのコストは「１」である。
【００９２】
既存ネットワークＢ内のノードａ〜ｆのうちのノードａ〜ｃが、ノードαと接続される。このため、計算部１２ｂは、処理Ｓ３を実行することによって、ノードａ〜ｃを接続ノードとして特定し記録する。
【００９３】
図３（ａ）〜（ｃ）は、計算部１２ａが処理Ｓ１を実行することによって計算される、既存ネットワークＢを構成するノードを起点とするコスト最小経路のうち、今回の例で使用する、ノードａ、ｂ、ｃを起点とするコスト最小経路群を示した図である。
【００９４】
なお、図３において、リンクの横に示した数字は、そのリンクのコストを示す。本実施形態では、計算対象となるノード間を通る経路のうち、経路に含まれるリンクのコストの総和が最小のコスト最小経路を算出する。
【００９５】
なお、処理Ｓ２において、起点がノードａ、終点がノードｆであるような経路を出力するとき、経路ａ→ｂ→ｅ→ｆとコスト「４」が合わせて出力される。
【００９６】
図４は、追加ノードαを起点とし、ノードαに隣接する接続ノードａ、ｂ、ｃのそれぞれを終点とするコスト最小経路を計算する状況を説明するための図である。
【００９７】
ノードαを起点としたコスト最小経路の計算結果は、図４での太線の矢印で記載される。このうち、ノードαからノードａへのコスト最小経路と、ノードαからノードｃへのコスト最小経路は、新規追加ネットワークＡのみを通過する。よって、前述のように処理Ｓ４を用いてノードａ、ｃが経由ノードとして記録される。
【００９８】
これに対し、ノードαからノードｂへのコスト最小経路は、既存ネットワークＢを構成するリンクａ→ｂ上を通過する。このため、ノードｂは、処理Ｓ４にて経由ノードとして記録されない。
【００９９】
図５は、ノードαから、既存ネットワークＢ内のノードの中から図４でノードαからのコスト最小経路を計算したノードａ、ｂおよびｃを除いたノードｄ〜ｆまでの、コスト最小経路の計算を説明するための図である。
【０１００】
計算方法を以下に示す。
【０１０１】
まず、計算部１２ｂは、経路の起点（ノードα）から処理Ｓ４で記録された経由ノードまでのコスト最小経路と、処理Ｓ４で記録された経由ノードから経路の終点ノードまでのコスト最小経路（このコスト最小経路は、既に処理Ｓ１で計算されている）を合わせた経路を、処理Ｓ４で記録された経由ノードごとに計算する。
【０１０２】
そして、計算部１２ｂは、起点終点が同じ経路のうち、コストが最も小さい経路を、その起点終点間のコスト最小経路とする。
【０１０３】
例として、起点αから終点ｄまでのコスト最小経路を計算するときについて説明する。
【０１０４】
図５を用いた説明において、処理Ｓ４でノードａ、ｃが経由ノードとして記録されている。
【０１０５】
ノードαからノードｄまでのコスト最小経路を計算するための候補経路として、経路α→ａ→ｄと経路α→ｃ→ｆが存在する。
【０１０６】
経由するノードａ、ｃは、処理Ｓ４で経由ノードとして記録されたノードであり、経路の前半部分（ノードαからノードａへの経路と、ノードαからノードｃへの経路）は、処理Ｓ３で検索され、経路の後半部分（ノードａからノードｄまでの経路と、ノードｃからノードｄまでの経路）は、処理Ｓ１で検索されたものである。
【０１０７】
これらの経路のコストは、経路α→ａ→ｄが「３」で、経路α→ｃ→ｄが「６」である。よって、計算部１２ｂは、前者の経路をα→ｄ間のコスト最小経路として特定する。
【０１０８】
その他のノード（ノードｅ、ｆ）についても、図５（ａ）に記載の経路とコストになる。
【０１０９】
これらを全終点ノードに対しおこなうと、ノードαを起点とするコスト最小経路は、図５（ｂ）に示されるような経路となる。
【０１１０】
本実施形態によれば、所定ノードのうち追加リンクと接続する接続ノードが特定され、接続ノード単位で、接続ノードと接続する追加リンクと、計算部１２ａの計算結果のうちの当該接続ノードと終点ノードとの間のコスト最小経路と、を合わせた経路のうち、経路内のリンクに付与されたコストの合計が最小となる経路が、追加ノードと終点ノードとの間のコスト最小経路として算出される。
【０１１１】
このため、追加ノードについてのコスト最小経路を計算する際に、既存ネットワークについて計算部１２ａにて計算されたコスト最小経路の情報を利用できるため、追加ノードについてのコスト最小経路の計算量を少なくすることが可能になる。
【０１１２】
また、起点ノードである追加ノードと終点ノードとのコスト最小経路の候補の最大数が接続ノード数となる。このため、コスト最小経路の計算時間の予測が容易となり、また、非特許文献２に記載の方法に比べて、平均的な計算時間を短くすることが可能になる。
【０１１３】
また、本実施形態では、計算部１２ｃは、終点ノードが特定ノードである場合、接続ノードのうち、追加ノードとの間のコスト最小経路が新規追加ネットワーク内のみに存在する接続ノードを、経由ノードとして特定し、経由ノード単位で、経由ノードと接続する追加リンクと、計算部１２ａの計算結果のうちの経由ノードと特定ノードとの間のコスト最小経路と、を合わせた経路を計算し、計算された経路のうちのコスト最小経路を、追加ノードと終点ノードとの間のコスト最小経路として出力する。
【０１１４】
このため、終点ノードが特定ノードである場合、起点ノードである追加ノードと終点ノードとのコスト最小経路の候補の数が少なくすることが可能になる。このため、平均的な計算時間をさらに短くすることが可能になる。
【０１１５】
また、本実施形態によれば、最悪の計算時間（終点ノードとして、既存ネットワーク内の全てのノードが選択された場合の計算時間）が接続ノード数×既存ネットワーク内のノード数に抑えることができる。また、経路計算装置１をコンピュータ等で実現する際、走査処理が高速な配列を用いて実現できるため、平均的な計算時間も高速になることが期待される。
【０１１６】
図６は、図１に示した経路計算装置１と通信するデータ転送装置２の機能ブロック図である。なお、図６において、図１に示したものと同一機能を有するものには同一符号を付してある。
【０１１７】
データ転送装置２は、例えば、新規追加ネットワーク内の追加ノードまたは既存ネットワーク内の所定ノードであり、図１に示した経路計算装置１から経路計算結果、もしくは、経路計算結果を加工した、データの転送先を表すデータを受け取り、経路計算装置１からの経路計算結果またはデータに従って、新規追加ネットワークまたは既存ネットワークから受け取ったデータを、適切な出力先に転送する。
【０１１８】
データ転送装置２は、経路情報制御部２１と、データ転送部２２と、インタフェース２３および２４と、を含む。
【０１１９】
経路情報制御部２１は、設定手段の一例である。
【０１２０】
経路情報制御部２１は、経路計算装置１内の経路計算部１２により出力された経路情報（経路計算結果）を受け取り、経路情報に基づいて、データの転送先を設定する。本実施形態では、経路情報制御部２１は、経路情報を、データの宛先に対応する次の転送先を示す転送先情報に変換する。経路情報制御部２１は、データ転送部２２が転送先情報を参照できるように、転送先情報を管理する。
【０１２１】
データ転送部２２は、転送手段の一例である。
【０１２２】
データ転送部２２は、経路情報制御部２１が設定した次のデータの転送先情報から、入力データの宛先に対応する次のデータの転送先を検索し、検索結果へとデータを転送する。
【０１２３】
インタフェース２３および２４は、外部の機能部ならびに外部装置とデータの入出力を行う。
【０１２４】
データ転送装置２は、コンピュータにて実現されてもよい。この場合、コンピュータは、コンピュータにて読み取り可能なＣＤ−ＲＯＭのような記録媒体に記録されたプログラムを読込み実行することによって、経路情報制御部２１およびデータ転送部２２として機能する。記録媒体は、ＣＤ−ＲＯＭに限らず適宜変更可能である。なお、経路情報制御部２１およびデータ転送部２２は、ロジック回路にて構成されてもよい。
【０１２５】
なお、経路計算装置１内の経路計算部１２は、データ転送装置２に含まれてもよいし、ネットワークやコネクタなどを介してデータ転送装置２とつながる外部装置に存在してもよい。
【０１２６】
本実施形態では、データ転送装置２は、経路計算装置１にて計算されたコスト最小経路を用いて、データの転送先を設定する。経路計算装置１でのコスト最小経路の計算時間が短いため、データ転送装置２は、的確な転送先を早期に設定することが可能になる。
【０１２７】
以上説明した実施形態において、図示した構成は単なる一例であって、本発明はその構成に限定されるものではない。
【符号の説明】
【０１２８】
１      経路計算装置
１１    トポロジ情報取得部
１２    経路計算部
１２ａ〜１２ｂ  計算部
１３、１４  インタフェース
２      データ転送装置
２１    経路情報制御部
２２    データ転送部
２３〜２４  インタフェース
【図１】
2012015588.tif 000003
【図２】
2012015588.tif 000004
【図３】
2012015588.tif 000005
【図４】
2012015588.tif 000006
【図５】
2012015588.tif 000007
【図６】
2012015588.tif 000008
【図７】
2012015588.tif 000009