(57)【要約】スタートノードがノード間の繋がり具合を示す結合状態情報をネットワークから取得する。結合状態情報に基づいて構築された計算モデルに従ってシミュレーションを実行することにより、スタートノードは、振動或いは信号を最初にそのノードに伝達した第１着リンクをノード毎に求める。ターゲットノードからスタートノードに向かい、途中の各ノードの第１着リンクを辿ってなる経路を選択する。
2012067210.tif 000002
【特許請求の範囲】
【請求項１】
ネットワーク内での伝達過程に関するシミュレーションを行なおうとしている振動或いは信号の発生源であり、前記ネットワークの一ノードであるスタートノードが、前記ネットワーク内のノード間の繋がり具合を示すネットワークの結合状態情報を、前記ネットワークから取得するネットワーク情報取得手段と、
前記結合状態情報に基づいて構築された計算モデルに従って、前記スタートノードの演算装置が前記シミュレーションを実行することにより、前記ネットワーク内の一のノードに接続されたｎ本（ｎは自然数）のリンクを、そのノードに先に前記振動或いは信号を伝達したリンクから順に第１着リンク、第２着リンク、・・・、第ｎ着リンクと呼ぶとき、少なくとも第１着リンクを前記ネットワーク内の各ノードについて求めるネットワーク状態分析手段と、
前記スタートノード以外の前記ネットワーク内の一ノードであるターゲットノードから前記スタートノードに向かい、途中の各ノードの第１着リンクを辿ってなる経路を、前記スタートノードと前記ターゲットノードとの間の所望の経路として前記スタートノードが選択するネットワーク経路選択手段と
を備えることを特徴とする経路選択装置。
【請求項２】
前記計算モデルは、前記結合状態情報に基づいて定められた方程式に従って振動し、ノード間のリンクを介して互いに振動を伝達する振動子として、前記ネットワークの各ノードを見立てた計算モデルであり、
前記スタートノードを振動の発生源として運動する振動子として計算モデル化し、
前記振動子それぞれの物理的位相をシミュレートすることにより、前記スタートノードの振動子から他の振動子への振動の伝達をシミュレートする
ことを特徴とする請求項１に記載の経路選択装置。
【請求項３】
前記振動子を非線形振動子として計算モデル化し、
前記スタートノードの振動子の周波数の初期値は、当該他のノードの振動子の初期値よりも高い周波数を有し、
前記スタートノードの振動子から当該他の振動子への振動の伝達を、周波数の引き込み現象による前記スタートノードの振動子との周波数の一致に基づいて検出する
ことを特徴とする請求項２に記載の経路選択装置。
【請求項４】
ノードの振幅の変化に基づいてそのノードへの位相の伝達を検出することを特徴とする請求項２に記載の経路選択装置。
【請求項５】
リンクに沿った一の方向への振動の伝達を検出するため、ノードに対応しない仮想的な振動子の運動を前記シミュレーションに含めることを特徴とする請求項２に記載の経路選択装置。
【請求項６】
ネットワーク内のすべてのリンクをそのリンクに関する物理量に応じて定められる数の区間に分割し、前記区間のひとつと単位時間とを相関させて、ネットワーク内の信号の伝搬状態をシミュレートする計算モデルであることを特徴とすることを特徴とする請求項１に記載の経路選択装置。
【請求項７】
前記計算モデルは、一のリンクに関する単位時間当たりの物理量である単位物理量を示す値の整数倍として、各リンクの物理量を近似し、前記単位時間が経過する毎に前記物理量が前記単位物理量刻みに離散的に変化するとして、前記信号の移動をモデル化し、
対応するリンクに信号が入った時刻からカウントを開始し、単位時間経過毎にカウントを１ずつ進め、対応するリンクの物理量に対応する値を上限としてカウントするカウンタを、ネットワークの各リンクに対応させて設ける
ことを特徴とする請求項６に記載の経路選択装置。
【請求項８】
前記リンクの物理量は当該リンクの距離であり、前記単位物理量はスタートノードを発生源とする信号が単位時間にリンク内を移動する距離であることを特徴とする請求項７に記載の経路選択装置。
【請求項９】
前記リンクの距離として、そのリンクの伝送速度の逆数に比例した係数をかけた値を用いることを特徴とする請求項８に記載の経路選択装置。
【請求項１０】
ネットワークの各リンクに対応させて、リンクに沿った一の方向に対応するカウンタと、当該他の方向に対応するカウンタの動作を前記シミュレーションに含めることを特徴とする請求項６乃至９のいずれかに記載の経路選択装置。
【請求項１１】
ネットワーク内での伝達過程に関するシミュレーションを行なおうとしている振動或いは信号の発生源であり、前記ネットワークの一ノードであるスタートノードが、前記ネットワーク内のノード間の繋がり具合を示すネットワークの結合状態情報を、前記ネットワークから取得するネットワーク情報取得手段、
前記結合状態情報に基づいて構築された計算モデルに従って、前記スタートノードの演算装置が前記シミュレーションを実行することにより、前記ネットワーク内の一のノードに接続されたｎ本（ｎは自然数）のリンクを、そのノードに先に前記振動或いは信号を伝達したリンクから順に第１着リンク、第２着リンク、・・・、第ｎ着リンクと呼ぶとき、少なくとも第１着リンクを前記ネットワーク内の各ノードについて求めるネットワーク状態分析手段、及び、
前記スタートノード以外の前記ネットワーク内の一ノードであるターゲットノードから前記スタートノードに向かい、途中の各ノードの第１着リンクを辿ってなる経路を、前記スタートノードと前記ターゲットノードとの間の所望の経路として前記スタートノードが選択するネットワーク経路選択手段
としてコンピュータを機能させるためのプログラム。
【請求項１２】
前記計算モデルは、前記結合状態情報に基づいて定められた方程式に従って振動し、ノード間のリンクを介して互いに振動を伝達する振動子として、前記ネットワークの各ノードを見立てた計算モデルであり、
前記スタートノードを振動の発生源として運動する振動子として計算モデル化し、
前記振動子それぞれの物理的位相をシミュレートすることにより、前記スタートノードの振動子から他の振動子への振動の伝達をシミュレートする
ことを特徴とする請求項１１に記載のプログラム。
【請求項１３】
前記振動子を非線形振動子として計算モデル化し、
前記スタートノードの振動子の周波数の初期値は、当該他のノードの振動子の初期値よりも高い周波数を有し、
前記スタートノードの振動子から当該他の振動子への振動の伝達を、周波数の引き込み現象による前記スタートノードの振動子との周波数の一致に基づいて検出する
ことを特徴とする請求項１２に記載のプログラム。
【請求項１４】
ノードの振幅の変化に基づいてそのノードへの位相の伝達を検出することを特徴とする請求項１２に記載のプログラム。
【請求項１５】
リンクに沿った一の方向への振動の伝達を検出するため、ノードに対応しない仮想的な振動子の運動を前記シミュレーションに含めることを特徴とする請求項１２に記載のプログラム。
【請求項１６】
ネットワーク内のすべてのリンクをそのリンクに関する物理量に応じて定められる数の区間に分割し、前記区間のひとつと単位時間とを相関させて、ネットワーク内の信号の伝搬状態をシミュレートする計算モデルであることを特徴とする請求項１１に記載のプログラム。
【請求項１７】
前記計算モデルは、一のリンクに関する単位時間当たりの物理量である単位物理量を示す値の整数倍として、各リンクの物理量を近似し、前記単位時間が経過する毎に前記物理量が前記単位物理量刻みに離散的に変化するとして、前記信号の移動をモデル化し、
対応するリンクに信号が入った時刻からカウントを開始し、単位時間経過毎にカウントを１ずつ進め、対応するリンクの物理量に対応する値を上限としてカウントするカウンタを、ネットワークの各リンクに対応させて設ける
ことを特徴とする請求項１６に記載のプログラム。
【請求項１８】
前記リンクの物理量は当該リンクの距離であり、前記単位物理量はスタートノードを発生源とする信号が単位時間にリンク内を移動する距離であることを特徴とする請求項１７に記載のプログラム。
【請求項１９】
前記リンクの距離として、そのリンクの伝送速度の逆数に比例した係数をかけた値を用いることを特徴とする請求項１８に記載のプログラム。
【請求項２０】
ネットワークの各リンクに対応させて、リンクに沿った一の方向に対応するカウンタと、当該他の方向に対応するカウンタの動作を前記シミュレーションに含めることを特徴とする請求項１６乃至１９のいずれかに記載のプログラム。
【請求項２１】
請求項１乃至請求項１０のいずれかに記載の経路選択装置、及び、請求項１１乃至請求項２０のいずれかに記載のプログラムを格納した記録媒体を備え、前記プログラムに従って動作するコンピュータのいずれかをノードとし、複数のノードを備えるネットワークシステム。
【請求項２２】
前記ノードはそれぞれ、当該他のノードに情報を伝達しようとする度毎に、当該ノードを前記スタートノードとして前記スタートノードと前記ターゲットノードとの間の所望の経路を求めることを特徴とする請求項２１に記載のネットワークシステム。
【請求項２３】
ネットワーク内での伝達過程に関するシミュレーションを行なおうとしている振動或いは信号の発生源であり、前記ネットワークの一ノードであるスタートノードが、前記ネットワーク内のノード間の繋がり具合を示すネットワークの結合状態情報を、前記ネットワークから取得する段階と、
前記結合状態情報に基づいて構築された計算モデルに従って、前記スタートノードの演算装置が前記シミュレーションを実行することにより、前記ネットワーク内の一のノードに接続されたｎ本（ｎは自然数）のリンクを、そのノードに先に前記振動或いは信号を伝達したリンクから順に第１着リンク、第２着リンク、・・・、第ｎ着リンクと呼ぶとき、少なくとも第１着リンクを前記ネットワーク内の各ノードについて求める段階と、
前記スタートノード以外の前記ネットワーク内の一ノードであるターゲットノードから前記スタートノードに向かい、途中の各ノードの第１着リンクを辿ってなる経路を、前記スタートノードと前記ターゲットノードとの間の所望の経路として前記スタートノードが選択する段階と
を含むことを特徴とする経路選択方法。
【請求項２４】
前記ネットワークのノードのいずれかが、当該他のノードに情報を伝達しようとする度毎に、その伝達元となるノードを前記スタートノードとして請求項２３に記載の経路選択方法を実行することを特徴とする経路選択方法。
【請求項２５】
前記計算モデルは、前記結合状態情報に基づいて定められた方程式に従って振動し、ノード間のリンクを介して互いに振動を伝達する振動子として、前記ネットワークの各ノードを見立てた計算モデルであり、
前記スタートノードを振動の発生源として運動する振動子として計算モデル化し、
前記振動子それぞれの物理的位相をシミュレートすることにより、前記スタートノードの振動子から他の振動子への振動の伝達をシミュレートする
ことを特徴とする請求項２３及び請求項２４のいずれかに記載の経路選択方法。
【請求項２６】
前記振動子を非線形振動子として計算モデル化し、
前記スタートノードの振動子の周波数の初期値は、当該他のノードの振動子の初期値よりも高い周波数を有し、
前記スタートノードの振動子から当該他の振動子への振動の伝達を、周波数の引き込み現象による前記スタートノードの振動子との周波数の一致に基づいて検出する
ことを特徴とする請求項２５に記載の経路選択方法。
【請求項２７】
ノードの振幅の変化に基づいてそのノードへの位相の伝達を検出することを特徴とする請求項２５に記載の経路選択方法。
【請求項２８】
リンクに沿った一の方向への振動の伝達を検出するため、ノードに対応しない仮想的な振動子の運動を前記シミュレーションに含めることを特徴とする請求項２５に記載の経路選択方法。
【請求項２９】
ネットワーク内のすべてのリンクをそのリンクに関する物理量に応じて定められる数の区間に分割し、前記区間のひとつと単位時間とを相関させて、ネットワーク内の信号の伝搬状態をシミュレートする計算モデルであることを特徴とすることを特徴とする請求項２３及び請求項２４のいずれかに記載の経路選択方法。
【請求項３０】
前記計算モデルは、一のリンクに関する単位時間当たりの物理量である単位物理量を示す値の整数倍として、各リンクの物理量を近似し、前記単位時間が経過する毎に前記物理量が前記単位物理量刻みに離散的に変化するとして、前記信号の移動をモデル化し、
対応するリンクに信号が入った時刻からカウントを開始し、単位時間経過毎にカウントを１ずつ進め、対応するリンクの物理量に対応する値を上限としてカウントするカウンタを、ネットワークの各リンクに対応させて設ける
ことを特徴とする請求項２９に記載の経路選択方法。
【請求項３１】
前記リンクの物理量は当該リンクの距離であり、前記単位物理量はスタートノードを発生源とする信号が単位時間にリンク内を移動する距離であることを特徴とする請求項３０に記載の経路選択方法。
【請求項３２】
前記リンクの距離として、そのリンクの伝送速度の逆数に比例した係数をかけた値を用いることを特徴とする請求項３１に記載の経路選択方法。
【請求項３３】
ネットワークの各リンクに対応させて、リンクに沿った一の方向に対応するカウンタと、当該他の方向に対応するカウンタの動作を前記シミュレーションに含めることを特徴とする請求項２９乃至３２のいずれかに記載の経路選択方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報ネットワーク、交通ネットワーク等の複数ノードと複数リンクからなるネットワークにおける経路選択方法に関し、特に、モデル化したネットワークにおける経路毎の所要時間のシミュレーション、及び所要時間に関する。
【背景技術】
【０００２】
従来、ネットワークの経路選択の問題は、２点間を結ぶ最短経路探索として検討されてきた。ここでいうネットワークの種類としては、車などの交通に関わる交通ネットワーク、情報通信に関わる情報ネットワークが代表的なものである。
最短経路探索として最も有名な方法は、ダイクストラ（Ｄｉｊｋｓｔｒａ）法である。このダイクストラ法は、計算理論の観点からはほぼ最適なアルゴリズムであるが、現実問題に適用する場合には、遠い点を結ぶ最短経路を求めるときに、例えば地図情報（地図データ）の多くの部分にアクセスする必要があり、現実的な時間で解くことができない問題を有している。ダイクストラ法のアルゴリズムのイメージは、スタートノード（出発地）から徐々に近隣のノードへの最短経路を求めていき、それがターゲットノード（目的地）に到着し、その他の経路が最短経路である可能性がなくなったところで計算を終了するというものである。
この問題を解決するために、いくつかのアプローチが取られてきている。
最も単純に計算時間を減らす方法として、ダイクストラ法を始点終点両方から行い探索範囲を狭める方法がある。また、目的地までの距離の直線距離が短くなる方向を優先して探索するＡ＊アルゴリズムと呼ばれるものもある。これらはダイクストラ法に比べれば、計算時間は減るのだが、やはり大規模データになってくると膨大な計算時間がかかるという問題を有している。
その他に、ある離れた地域間を移動する際には、ある種の決まったルートを通るという仮定をおき、途中の探索を省くというヒューリスティックなものがある。この亜種としては、道路を高速道路・主要道といった遠距離の移動に使う道からなるネットワークと、それ以外の道からなるネットワークというように階層化し、まず現在地・目的地から最寄りの主要道までの最短経路を求めた後に、主要道上での最短経路問題を解くというものもある。これらは、最適化を諦めた手法であると考えることもできる。
近年は、例えば地図情報（地図データ）にある種の前処理を行い、後で最短経路を求める際に短時間で解けるようにする、というアプローチがとられ始めている。これらの手法で有名なものはビットベクトル法とハイウェイ階層化法である。
ビットベクトル法は、地図をいくつかのエリアに分割し、各ノードとエリアの組に対して、そのノードに接続するリンクの中で、その頂点からエリア内のノードへの最短経路が使う利用リンクを予め選び出しておく。最短経路探索時には、所望のノードから目的地を含むエリアに向かう方向の利用リンクのみを探索することで探索を省略する。問題点としては、前処理には時間がかかることと、利用リンクを覚えておくなどのメモリの増大を招くことがある。
ハイウェイ階層化法は、遠距離用のリンクを見極めておき、スタートノードからｋ個のリンクを通って遠距離用のリンクに到達し、遠距離用のリンクを降りると、ターゲットノードまでｋ個のリンクを通って到達するようにする。逆に言えば、上記条件にあう遠距離用のリンクを求めておくという手法である。この手法の利点は、各ノードから２ｋ＋１リンク以内にあるノードに対してのみ最短経路を求めることで前処理が終わることであり、それゆえに前処理時間が他の手法と比べて短いことである。問題点としては、ネットワークに遠距離用のリンクがあるかどうか保証はないことがある。
以上が最短経路探索の技術のアウトラインであるが、交通ネットワークのように、ある程度、ノードとリンクが安定であるようなネットワークでは、それなりに機能し、成果も上がっている。しかしながら、ノードとリンクの関係がダイナミックに変わってしまう情報ネットワークの場合、上記のアルゴリズムを簡単に適応することは難しい。例えば、前処理などは、情報ネットワークの場合、現実的に実施することはできない。前処理は、ある程度安定な（時間変化が少ない）ネットワークという前提が必要だからである。
情報ネットワークを対象とする最短経路探索の手法としては、従来以下のようなものが用いられている。
一般的に大規模な情報ネットワークで使用されている最短経路探索は、ＯＳＰＦ（Ｏｐｅｎ  Ｓｈｏｒｔｅｓｔ  Ｐａｔｈ  Ｆｉｒｓｔ）と呼ばれる経路制御プロトコルである。このプロトコルではダイクストラアルゴリズムが使用されている。このＯＳＰＦの特徴は、従来の距離ベクトル型経路制御プロトコルが、自身の持つ経路表全体の複製をルータ間で交換するのに対して、ルータ間でリンク状態のみを交換し、最短経路の計算は個々のルータが行う点にある。これにより、ＯＳＰＦは、従来の距離ベクトル型アルゴリズムに比べ、ルータ間で交換するデータ量が非常に小さく、データ交換量がネットワークシステムの規模に拠らず小さくできる、という利点を持っている。
実際の運用では、ＯＳＰＦが動作するルータの集合であるＡＳ（Ａｕｔｏｎｏｍｏｕｓ  Ｓｙｓｔｅｍ  自律システム）を複数のエリアに分割し、あるエリアに所属する全てのルータが同一のリンク状態データベースを持つようにし、個々のルータがそのリンク状態データベースに基づいて自身から全ての宛先への最短経路を計算することで、経路選択を行っている。
しかしながら、このＯＳＰＦはルータの少ない計算資源で、最短経路計算を行うため、計算資源の制約から、エリアを限定する、最短経路計算を頻繁に行えないという問題を有していた。情報ネットワークの場合、交通ネットワークに比べ、ネットワークの状況がダイナミックに変わるため、本来はできるだけリアルタイムに最短経路計算が必要なわけであるが、そのような理想的な状態にはなかなかなっていない。
また、ノードとリンクの関係が時間的に安定であるか否かに関係なく、最短経路計算は、各経路の長さを計算、比較して、最短の経路を求めるという点では共通している。
本発明に関連する技術が記載された文献として特開２００９−１４１４２５及び特開２０１０−０４１４２９（以下それぞれ順に特許文献１、２と記す）を挙げる。これら特許文献に記載の技術は、いずれも、実際のネットワークに探索用のパケットを発信し、そのパケットの様子を見て、経路を選択する技術である。このような方法によれば、経路全体のネットワークの状態を知るためにはネットワークの規模に応じた数のパケットを実際にネットワークに送出し、その後の様子を観察する必要がある。このため、大規模ネットワークにこうした技術を適用して経路を選択するのは困難であると考えられる。
【発明の開示】
【発明が解決しようとする課題】
【０００３】
以上見てきたように、従来の最短経路検索アルゴリズムは計算時間がかかる、あるいは計算リソースを膨大に消費するという問題を抱えている。このため、ルータのような計算資源が限られた機器では特に、リアルタイムに最短経路を検索し、経路を選択することができなかった。これは、ダイナミックにネットワークの状態が変わる情報ネットワークではとりわけ重要な問題で、情報伝達の遅延により、ユーザーが満足のいくネットワークレスポンスを供給できないという問題を生じさせている。
近年、情報ネットワークは増大の一途である。これは最短経路検索がさらに難しくなることを意味しており、このままでは年々ユーザーの利便性が損なわれることが予見される。本発明は、そのような状況を鑑みて考案されたものであり、従来の最短経路探索の計算時間、計算リソースを大幅に減じる技術を提供するものである。
【課題を解決するための手段】
【０００４】
上述の課題を解決するため、本発明は、その一態様として、ネットワーク内での伝達過程に関するシミュレーションを行なおうとしている振動或いは信号の発生源であり、ネットワークの一ノードであるスタートノードが、ネットワーク内のノード間の繋がり具合を示すネットワークの結合状態情報を、ネットワークから取得するネットワーク情報取得手段と、結合状態情報に基づいて構築された計算モデルに従って、スタートノードの演算装置がシミュレーションを実行することにより、ネットワーク内の一のノードに接続されたｎ本（ｎは自然数）のリンクを、そのノードに先に振動或いは信号を伝達したリンクから順に第１着リンク、第２着リンク、・・・、第ｎ着リンクと呼ぶとき、少なくとも第１着リンクをネットワーク内の各ノードについて求めるネットワーク状態分析手段と、スタートノード以外のネットワーク内の一ノードであるターゲットノードからスタートノードに向かい、途中の各ノードの第１着リンクを辿ってなる経路を、スタートノードとターゲットノードとの間の所望の経路としてスタートノードが選択するネットワーク経路選択手段とを備えることを特徴とする経路選択装置を提供する。
また、本発明は、他の一態様として、ネットワーク内での伝達過程に関するシミュレーションを行なおうとしている振動或いは信号の発生源であり、ネットワークの一ノードであるスタートノードが、ネットワーク内のノード間の繋がり具合を示すネットワークの結合状態情報を、ネットワークから取得するネットワーク情報取得手段、結合状態情報に基づいて構築された計算モデルに従って、スタートノードの演算装置がシミュレーションを実行することにより、ネットワーク内の一のノードに接続されたｎ本（ｎは自然数）のリンクを、そのノードに先に振動或いは信号を伝達したリンクから順に第１着リンク、第２着リンク、・・・、第ｎ着リンクと呼ぶとき、少なくとも第１着リンクをネットワーク内の各ノードについて求めるネットワーク状態分析手段、及び、スタートノード以外のネットワーク内の一ノードであるターゲットノードからスタートノードに向かい、途中の各ノードの第１着リンクを辿ってなる経路を、スタートノードとターゲットノードとの間の所望の経路としてスタートノードが選択するネットワーク経路選択手段としてコンピュータを機能させるためのプログラムを提供する。
また、本発明は、他の一態様として、ネットワーク内での伝達過程に関するシミュレーションを行なおうとしている振動或いは信号の発生源であり、ネットワークの一ノードであるスタートノードが、ネットワーク内のノード間の繋がり具合を示すネットワークの結合状態情報を、ネットワークから取得する段階と、結合状態情報に基づいて構築された計算モデルに従って、スタートノードの演算装置がシミュレーションを実行することにより、ネットワーク内の一のノードに接続されたｎ本（ｎは自然数）のリンクを、そのノードに先に振動或いは信号を伝達したリンクから順に第１着リンク、第２着リンク、・・・、第ｎ着リンクと呼ぶとき、少なくとも第１着リンクをネットワーク内の各ノードについて求める段階と、スタートノード以外のネットワーク内の一ノードであるターゲットノードからスタートノードに向かい、途中の各ノードの第１着リンクを辿ってなる経路を、スタートノードとターゲットノードとの間の所望の経路としてスタートノードが選択する段階とを含むことを特徴とする経路選択方法を提供する。
【発明の効果】
【０００５】
本発明によれば、必要なリソースが少なく、計算速度が速い経路選択方法及び装置を提供することができる。また、これにより、大自由度（ノードやリンクの数が膨大）のネットワークにおける経路選択を行なうことができる。また、経路選択方法を高い頻度で実行できるようになるので、ダイナミックに状況が変わるようなネットワークであっても適切な経路選択を実行することができるようになる。
【図面の簡単な説明】
【０００６】
図１は本発明の一実施の形態である経路選択方法について説明するための図であり、振動子に見立てた複数のノードが直列に接続されたネットワークを示す図である。
図２は直列に繋いだ５つのノードＮｏｄｅ１、Ｎｏｄｅ２、・・・、Ｎｏｄｅ５からなるネットワークにおいて、Ｎｏｄｅ１にて発生した振動の位相が他のノードに伝達する過程を説明するための図である。
図３は図中矢印の左側はネットワーク概略図の一例であり、図中矢印の右側はそのネットワーク概略図と各ノードの第１着リンクから得られるツリー構造である。
図４はノードに位相が伝達されたことを検出する方法について説明するための図であり、（ａ）はそのノードの振幅に基づいて検出する方法について説明するための図であり、（ｂ）はそのノードの周期に基づいて検出する方法について説明するための図である。
図５は第１の実施の形態の経路選択方法の変形であり、リンクに振動を伝達したノードを特定するための位相検出用の仮想的な振動子を設ける経路選択方法について説明するための図である。
図６は５つのノードからなるネットワークに設けた位相検出用振動子による、リンクの往路と復路での振動のずれの検出について説明するための図である。
図７は図６のＮｏｄｅ１、Ｎｏｄｅ２、…、Ｎｏｄｅ５の振動を示すグラフである。
図８は図６のＬｉｎｋ１、Ｌｉｎｋ２、…、Ｌｉｎｋ５の往路用の位相検出用振動子の振動を示すグラフである。
図９は図６のＬｉｎｋ１、Ｌｉｎｋ２、…、Ｌｉｎｋ５の復路用の位相検出用振動子の振動を示すグラフである。
図１０は実施例１及び２の経路選択装置について説明するためのブロック図である。
図１１は実施例１及び２の経路選択装置を用いて最短経路検索を行なったネットワークについて説明するための図である。
図１２はダイクストラ法を用いた従来の経路選択装置と、実施例１の経路選択装置により、図１１のネットワークに対して行なった最短経路検索の計算時間とＮｏｄｅ数の関係を示すグラフである。
図１３はダイクストラ法を用いた従来の経路選択装置と、実施例２の経路選択装置により、図１１のネットワークに対して行なった最短経路検索の計算時間とＮｏｄｅ数の関係を示すグラフである。
図１４はスタートノードから情報を発信してからその情報がターゲットノードに到着するまでの間に、既に求めた最短経路上のノードにおいて障害が発生したときに、障害ノード情報を取得したノードが新たな最短経路を求めることにより、本発明のネットワークが自律的に障害を回避する様子を説明するための図である。
【発明を実施するための最良の形態】
【０００７】
本発明の経路選択方法では、ネットワーク内の各経路の長さを比較して最短の経路を求めるものではなく、各経路の長さを直接的に計算する必要はない。本発明の経路選択方法は、ネットワーク内のスタートノードを振動子或いは信号発生源と見立て、スタートノードから他のノードへの振動／信号の伝達過程を計算機上でシミュレーションし、そのノードに振動／信号を最初に伝達したリンクを求める。
本発明のネットワークシステムではネットワークの各ノードが経路選択を行なう。また、経路選択に先立って、各ノードは、ネットワークの全体像に関する情報をネットワークからある程度正確に取得してあるという前提で機能する。この前提は上述したＯＳＰＦと同じ前提である。ネットワークの全体像情報は、具体的には、ネットワークのトポロジー（構造）情報と、ネットワークの結合状態情報を含む。以下、それぞれ単に全体像情報、トポロジー情報、結合状態情報とも呼ぶものとする。ネットワークの結合状態情報とは、ネットワークの結合状態、或いは、それぞれのノードの繋がり具合を示す情報であり、例えば、あるノード間のリンクの距離、あるノード間のリンクを流れる情報流の上限（容量）、あるノード間のリンクを流れる情報流の速度である。本実施の形態では、結合状態情報としてノード間の距離を用いるものを中心に説明するが、ネットワークの結合状態に関する物理量全般を用いることができることは当業者には容易に理解できるだろう。また、ここでの説明は、情報ネットワークを想定して説明するが、交通ネットワーク等の他のネットワークでも同じことである。
ここである程度と書いたのは、ネットワークが大きくなればなるほど、遠いノード間で最新の情報を共有することが難しくなるため、ある時刻でネットワークの全体像を正確に知っていることは難しいからである。また、情報ネットワークのように、時々刻々とリンクの状況（繋がり具合）が変化する場合、やはり正確なネットワークの全体像を知っていることは難しいからである。本発明によれば、ネットワークの全体像情報が必ずしも完全ではなくとも有効な経路探索を行うことができる。その理由については口述する。
（第１の実施の形態）
本発明の第１の実施の形態である経路選択方法についてネットワークシステム１に基づいて説明する。これは本願発明の最も基本的な形態である。ネットワークシステム１はＮ個（Ｎは自然数）のノード１、ノード２、・・・、ノードＮを順に直列に接続したネットワークである。ノード１、ノード２、・・・、ノードＮはそれぞれ演算処理装置を備える機器であり、具体的にはインターネットアクセスプロバイダのアクセスサーバやルータ等の機器である。これらネットワークのノードそれぞれが以下に説明するような経路選択法を実行する。
先に記載したように、各ノードはネットワークの全体像をある程度正確に知っており、その上で、図１に示すような計算モデルを構築し、経路計算を行う。本実施の形態では、ノード間の距離を結合状態情報として用いるので、最短経路の経路計算の例となる。結合状態情報を情報流の流れやすさの逆数などにすれば、最速情報伝達経路の経路計算となる。図１は、説明を簡略化するために、複数ノードが１直線に並んでいるネットワークの場合に本願発明を適用した図となっている。各ノードは隣のノードとリンク１本のみで繋がっている。各ノードに対応する位置に非線形振動子が設置されている。
本実施の形態では、非線形振動子としてファン・デル・ポール振動子を想定し、各ノードを繋ぐリンクの距離を振動の拡散係数Ｄで置き換えている。振動子は、ファン・デル・ポール振動子に限らず、いろいろな振動子で代用できる。結合状態情報は拡散係数Ｄと所定の関係を有し、本実施の形態ではリンクの距離（長さ）を拡散係数Ｄに何らかの関数で変換する必要がある。本実施の形態では、熱力学からの類推の元、振動子の振動の拡散を拡散方程式で表す。振動子の振動の拡散を表す方程式は、振動の拡散を記述可能であれば他の方程式でも良い。結果として、図１の非線形振動子のネットワークは以下の方程式で記述できる。
2012067210.tif 000003
ここで、Ｄの添え字のｉｊはｉ番目のノードとｊ番目のノード間であることを示している。Ｄｉｊがついた項は、振動子ｉと振動子ｊの間の関係を表す。ε、αは振動の特徴を決定するパラメータである。上記方程式において、ｘは振動子の振幅であり、ｙは物理的にはばねの影響を表す項で、ばねを意味し、ｒは振動子の位置である。ｔは時刻である。こうした数１のような、振動の拡散を記述可能な方程式に従って、ネットワークのノード１、ノード２、…、ノードＮに対応する振動子１、振動子２、…、振動子Ｎが運動すると考えて、全振動子の運動をシミュレーションする。出発点のノードに対応する振動子の初期値を変更すると振動をはじめる。出発点以外のノードに対応する振動子の運動もそれぞれ上記方程式に支配されているので、出発点ノードの振動子での振動は、Ｄｉｊの項で表される振動の伝達状態により、他の振動子に次々と伝達されていく。その際、ノードに最初に振動を伝達するリンクをノード毎に判定し、これらの判定結果に基づいて、スタートノードから各ノードに至る最短経路を求める。
上記説明したような計算モデルを設定し、その後、スタートノード（計算を行う自分自身に相当するノード）の非線形振動子にある外力または初期値を設定すると、その非線形振動子が振動を始める。ε、αを適当に設定しておけば、その振動は外力、初期値によらず、リミットサイクルという一定の振動に収斂する。
スタートノードで生じた振動は、拡散係数Ｄのリンクを通して、周辺のノードに伝達され、やがて、スタートノード周辺の非線形振動子も振動を始める。周辺の非線形振動子が振動を始める時刻は、スタートノードの振動の位相が到達した時刻に等しいため、スタートノードから近いノードほど振動を開始する時刻が早くなる。
図２に直列に繋いだ５つのノードＮｏｄｅ１、Ｎｏｄｅ２、・・・、Ｎｏｄｅ５のＮｏｄｅ１にて発生した振動の位相が伝達する様子を示す。時刻０においてＮｏｄｅ２〜５は振動していない。スタートノードであるＮｏｄｅ１の振動が、Ｎｏｄｅ２、Ｎｏｄｅ３と次々に伝達している様子がわかる。
図２では、スタートノード以外は最初振動していない例を示したが、非線形振動子の場合、高い周波数の振動に低い周波数の振動が収斂するという引き込みという現象が存在する。このため、スタートノードを最も高い周波数で振動させ、他のノードをスタートノードより低い周波数で振動させておくと、スタートノードの位相が到達すると、他のノードの周波数が次々とスタートノードの高い周波数に収斂する。この周波数の伝達を位相伝達の検出に使用することもできる。線形振動子ではこの便利な引き込みという現象が起きないので、位相伝達の検出のバリエーションが減るが、単純な振動の伝達（図２のようなケース）であるならば、線形振動子でも問題ない。
説明の簡略化のため、図１では１次元の直線ネットワークを用いて説明したので、上記現象でネットワークの経路選択ができるのかイメージしにくいが、上記現象を利用すれば、ネットワークの経路選択が可能となる。
ひとつのノードに複数のリンクが接続されている場合でも、位相の伝達は最も早く位相が伝わる経路、つまり最短経路を通って伝達される。したがって、あるノードに注目した場合、そのノードに最も早く位相を伝達したリンクが、そのノードへの最短経路を形成すると考えればよい。ここで、あるノードにｍ個（ｍは自然数）のリンクが接続されているとき、そのノードに位相を１番目、２番目、・・・、ｍ番目に伝達したリンクを順に第１着リンク、第２着リンク、・・・第ｍ着リンクと呼ぶものとする。ノードに接続されたあるリンクを介して位相が伝達され、第１着リンクが決定した時点で、そのノードの第２着以下のリンクは最短経路を形成する資格を失う。このため、最短経路検索だけを行うのであれば、第１着リンクのみを記録し、他のリンクは無視してもよい。
スタートノードからそのノードへの最短経路を求めるには、そのノードの第１着リンクから順に途中の各ノードの第１着リンクを経てスタートノードに戻るような経路を求める。同様にしてネットワーク内のスタートノード以外の各ノードからスタートノードに戻る経路を求める。これにより、スタートノードを頂点として、他のノードへの最短経路がツリー状に示されるのである。これを用いれば、所望のターゲットノードへ情報を伝達するには、自分はどのリンクに情報を伝達すれば良いかがわかる。
図３左側のネットワーク概略図は、各ノードにおける第１着リンクを太線で示し、第２着以下のリンクを細線で示した例である。このようなネットワーク概略図から第１着リンクのみを抽出すると図３右側のツリー構造を得ることができる。例えば、図中左側のネットワーク概略図の出発点、スタートノードであるノードＮ１からノードＮ７に至る最短経路は、図中右側のツリー構造によるとノードＮ１、Ｎ２、Ｎ５、Ｎ６、Ｎ７であることが分かる。
最短経路だけでなく、２番目、３番目にあるノードに到達するリンクを調べたければ、あるノードに最も早く位相を伝達したリンクだけを記録するのではなく、各リンクに対して、位相を伝達した時刻を記憶し、リンク間で伝達時刻を比較することによりリンクの着順を判定すればよい。
ノードに位相が伝達されたことを検出する方法は幾つか考えられるので、図４に典型的なものを２つまとめて示しておく。
一つ目はそのノードに対応する振動子のシミュレーションの振幅変化を検出するものである。ある振動子から位相が伝達されると、振動していなかった振動子が振動を開始する。これを利用して、そのノードに対応する振動子である程度の振幅が検出されたら、その振動子、即ちノードに位相が伝達されたと判断する方法である。図４（ａ）に示すように、位相伝達検出用スライスレベルを定め、そのノードに対応する振動子の運動を、例えば数１等の方程式に従ってシミュレーションする。シミュレーションした振動子の振幅が位相伝達検出用スライスレベルを超えた時点でそのノードに位相が伝達されたと判定する。
２つ目は振動の周期を検出するものである。ある周波数で振動する振動子から振動が伝達された振動子は、伝達元の振動子と同じ周期で振動するようになる。これを利用して、数１等の方程式に従ってシミュレーションした振動子の周期をモニターし、スタートノードの振動子の周期に相当する周期用スライスレベルと同じになったとき、スタートノードの振動子からそのノードの振動子に位相が伝達されたと判定する。
上記に位相の検出方法を示したが、ひとつのノードに幾つかのリンクが結合している場合、どのリンクから位相が到達したかを判断するのはやや面倒になるときがある。というのは、各リンクからの位相伝達の差が微妙で、上記の検出方法で検出される前に、複数のリンクから位相が実際は伝達されてしまうような場合、どちらのノードからの位相が早く伝達したかを確認するには、リンク内の振動の様子、一つ前のノードの振動の様子などを分析するアルゴリズムを使用しなければならないからである。
そこで、本願発明者は、図５に示すような改良型の経路選択方法も考案した。説明の簡略化のため、図１と同様、１次元の直線ネットワークを用いて説明している。図１との相違は、各リンクにどちらのノードから位相が伝達されたかを検出する位相検出用の振動子を仮想的に設置した点である。既に説明したように、各ノードに対応する振動子は、数１のような振動の拡散を記述可能な方程式に従って運動するものとしてシミュレーションするが、位相検出用振動子の運動についても同じ方程式に従うものとする。拡散係数Ｄについても同様である。
便宜上、この２つの振動子を往路、復路と呼ぶことにする。本実施の形態では、この位相検出用の振動子も、ファン・デル・ポール振動子で形成している。この位相検出用の振動子は、各リンクに往路用・復路用の２つのものが設置され、振動子の反対側に位置するノードの振動のみを伝達させ、自身に振動が伝わった時刻に、振動子の反対側に位置するノードから振動が伝わったと判断する。このようにすることで、明確に往路側と復路側の振動の伝達が切り分けられ、どちら側からより早く位相が伝わったかを判断することができる。
図５を参照すると、ネットワーク内で互いに隣接する２つのノードがあり、これらのノードに対応する振動子として振動子１、振動子２がある。振動子１と振動子２の間はリンクにて接続されている。リンクの振動子１側の端部付近に、ネットワーク内のノードに対応しない仮想的な振動子として、位相検出用振動子（復路）を仮想的に設置する。同様に、リンクの振動子２側の端部付近に位相検出用振動子（往路）を仮想的に設置する。位相検出用振動子（復路）には、振動子２からの振動のみを伝達させ、振動子１からの振動は伝達させない。また、位相検出用振動子（往路）には、振動子１からの振動のみを伝達させ、振動子２からの振動は伝達させない。
ここで、５つのノードＮｏｄｅ１、Ｎｏｄｅ２、…、Ｎｏｄｅ５が図６のように接続されたネットワークを考える。図中の丸数字は対応するリンクを示すリンク番号であり、例えば、Ｎｏｄｅ１とＮｏｄｅ２の間のリンクはリンク番号１を有するものとする。図６にはＬｉｎｋ１、Ｌｉｎｋ２、…、Ｌｉｎｋ５が存在する。リンク番号の横に記載したＤの値は、そのリンクにおけるノードの繋がり具合を示す値であり、上記の数１における拡散係数Ｄに相当する。Ｌｉｎｋ１、２、…、５にはそれぞれ、往路及び復路の位相検出用振動子（不図示）が設置されているものとする。このとき、Ｎｏｄｅ１〜５に対応する振動子、Ｌｉｎｋ１〜５における位相検出用振動子（往路）、及び、Ｌｉｎｋ１〜５における位相検出用振動子（復路）の振動をシミュレートした結果を図７〜９に示す。特に、図８と図９とを比較することにより、往路と復路の振動が微妙にずれていることがわかり、それにより、最短経路はどの経路かが明確にわかるようになっている。
本実施の形態は、計算の並列化が容易なため、ＧＰＧＰＵなどの並列計算が得意なハードウェアとの相性が良い。また、後述する第２の実施の形態とは異なり、ノード間の距離を連続的な値として扱うことができる。
（第２の実施の形態）
次に、本発明の第２の実施の形態である経路選択方法について説明する。第１の実施の形態では、ノードを振動子と見立て、リンクを振動の伝達媒体と見立てて、物理的な位相をノード間で伝達するときの各ノードの運動を計算機上でシミュレーションした。これに対して、本実施の形態では、ネットワーク内のすべてのリンクをそのリンクに関する物理量（例えばそのリンクの距離、伝送速度など）に応じて定められる個数の区間に分割し、分割した区間のひとつと単位時間とを相関させることにより、ネットワーク内の信号の伝搬状態、即ち、スタートノードが発信した信号が他のノードに伝搬していく過程をシミュレートするような計算モデルを構築する。ネットワーク（或いはリンク）の結合状態を示す物理量の単位量を単位時間に関連づけて定めた上で、そのリンクの物理量が単位時間毎に離散的に変化させることにより、リンクにおける信号の伝搬状態をシミュレーションするようなモデルを構築した。例えば、ネットワークの結合状態を示す物理量としてリンクの距離を用いる場合、リンクの一端から他端までの間のどこまで信号が伝達しているのかを、単位時間における信号の移動距離、即ち、単位距離の整数倍で表したものが、リンクにおける信号の伝達状態となる。ここでは、リンクの物理量としてリンクの距離を用いる場合を考える。スタートノードから発信された信号がリンク内を移動し、他のノードそれぞれに到達するまでの間のリンク内における信号の移動を仮想的にシミュレーションする。信号はリンク内を一定速度で伝達されるものとし、信号があるリンクからノードに入力されると、信号は入力時のリンクを含む全てのリンクから分岐して出力されるものとする。また、ここではネットワーク内のどのリンクも等しい伝送速度を有するとする。
第１の実施形態と同様に、各ノードは、経路選択に先立って、ネットワークの全体像情報、即ち、ネットワークのトポロジー情報と結合状態情報をネットワークから取得する。ここでは結合状態情報としてノード間の距離つまりリンクの距離を取得するものとして説明する。
単位時間に信号がリンク内を伝達される距離を単位距離と呼ぶものとする。単位距離は最大でもネットワーク内で最短のリンクの距離であり、必要な精度に応じて定める。より小さい単位距離を用いると計算精度は上がるが計算負荷は大きくなる。ネットワーク内のリンク間の距離の比を全て整数で表すことができる場合は、これら整数の最大公約数を単位距離として用いることとすれば、高い計算精度と低い計算負荷を両立することができる。
当然ながら、信号が２単位距離のリンクを通過するには２単位時間を要し、３単位距離のリンクを通過するには３単位時間を要することになる。このように、ネットワーク内の全リンクを単位距離の整数倍で近似すると、信号は、ネットワークのどのリンクであっても単位時間の整数倍で通過し、あるリンクに信号が入った時刻から経過した単位時間は、そのままそのリンク内での信号の現在位置を示すことになる。
そこで、リンクの一端にあるノードに信号が入ると起動してその時刻からカウントを開始し、単位時間経過毎にカウントを１ずつ進め、対応するリンクの距離を単位距離の整数倍で近似した整数値と等しい値を上限としてカウントするカウンタを、ネットワークの各リンクに対応させて設ける。このようなカウンタにおいて、カウンタの値が上限に達することは、対応するリンクの一端のノードから入った信号が、そのリンクの他端のノードに到着することを意味する。このようなカウンタをネットワーク内のリンク毎に設け、単位時間毎に、ネットワーク内で現在起動中の全カウンタの値を１ずつ進めることにより、スタートノードから発信した信号がネットワークの他ノードに伝達していく過程をシミュレートする。
第１の実施の形態において妥当な結果を得るためには、１周期を数千程度のオーダーの単位時間に分割し、単位時間が経過する度毎に、その時刻について数１のような方程式を解く演算処理が発生する。あるリンクの一端から他端に振動が伝達される過程をシミュレートするとき、仮に１００周期分の振動をするのであれば、その間に数十万程度の単位時間が経過することになり、従って上述の演算処理を数十万回程度実行することになる。また、この演算処理は差分計算等の科学演算を含む演算処理であり、浮動小数点演算である。このため、シミュレーションに必要な計算負荷の全体を比較すると、第１の実施の形態はダイクストラ法ベースの手法に比べてそれほど有利ではないが、第１の実施の形態の手法は並列化が容易なため、並列計算を行なうことによりダイクストラ法ベースの手法よりも短時間で処理を実行することができる。尚、一般にダイクストラ法ベースの手法は並列化が難しい。
このような第１の実施の形態に対して第２の実施の形態は単位時間を長くし、必要な計算負荷を下げることができる。例えば、本実施の形態では、必要な計算精度や、ネットワーク内のリンクの距離のばらつき具合にもよるが、ネットワーク内で最短のリンクの距離を単位距離とすることも可能であり、この場合、最短リンクの信号通過のシミュレーションで経過する単位時間は１である。また、第２の実施の形態において、単位時間が経過する毎に実行すべき処理は、基本的にはリンク毎にカウンタが起動しているか否か判定し、起動中のカウンタの値を１ずつ加算する処理である。この処理は差分計算等の科学計算の演算処理と比較して負荷が小さい。つまり、第２の実施の形態では、実行すべき演算処理の回数が少なく、かつ、各回で実行すべき演算処理の負荷が小さい。
第１の実施形態では、ノードに振動を伝達したリンクを特定するため、図５のような位相検出用振動子を設けた。信号の伝達方向を特定するため、本実施の形態では、リンク毎に往路用カウンタと復路用カウンタの２つのカウンタを設けることとしてもよい。一般にひとつのリンクの両端にはそれぞれノードが接続されている。往路用カウンタはそのうちの一方のノードを担当ノードとし、復路用カウンタは他方のノードを担当ノードとする。往路用カウンタの担当ノードが信号の伝達を検出すると、往路用カウンタはこれに応じてカウントを開始する。復路用カウンタも同様にしてカウントを開始する。
次に、本実施の形態にて行なうシミュレーション処理について説明する。この処理ではスタートノードから発信された信号がネットワーク内のリンクを移動する過程をシミュレーションする。
スタートノードから信号を発信するのと同時に、スタートノードを担当ノードとするカウンタを起動する。スタートノードに複数のリンクが接続されているのであれば、それらリンクに対応する複数のカウンタ全てを起動する。以後、スタートノードから信号を発信した時刻をｔ＝０とし、１、２、…、ｎ単位時間経過後の時刻をそれぞれｔ＝１、２、…ｎと表すとする。
１単位時間経過毎に、起動中の全カウンタの値を１だけ進める。ｔ＝１においてスタートノードを担当ノードとするカウンタの値はどれも１になっており、スタートノードに接続されたリンクの、スタートノードから１単位距離離れた位置を信号が進んでいることを示している。
スタートノードに接続されたリンクのひとつが２単位距離であるとすると、ｔ＝２でそのリンクのカウンタはカウントを完了する。このようにカウンタがカウントを完了したということは、そのリンクに接続された２つのノードのうち、一方のノードで発信或いは入力された信号が、他方のノードに到着したことを意味する。このように信号がノードに到着するのと同時に、そのリンク、そのノード及び時刻を互いに関連づけて記録し、そのノードを担当ノードとするカウンタを起動する。スタートノードでのカウンタの起動と同様、そのノードを担当ノードとするカウンタが複数ある場合は全てのカウンタを起動する。
このようにして起動したカウンタを、以後１単位時間経過毎に、既に起動中のカウンタと共に１ずつカウントアップしていく。起動中のカウンタいずれかでのカウントが完了して信号がノードに到着すると、そのノードを担当ノードとする全カウンタを起動する、といった動作を繰り返していく。カウント完了時に信号が到着したノードを担当ノードとするカウンタが存在しない場合は新しいカウンタを起動しない。
このようなシミュレーションの結果、ネットワーク内の各ノードについて、ノード、そのノードに信号を伝達させたリンク、及び、その到着時刻が関連づけて記録する。最短経路のみを求める場合には各ノードの第１着リンクのみを記録すればよい点では第１の実施の形態と同様であり、この場合、既知のネットワークのトポロジーと各リンクの第１着リンクに基づいて、図３と同様のツリー構造を生成することができる。
本実施の形態では、計算ステップ（時刻）とリンクの距離とを、単位時間と単位距離として相関させるため、各リンクの距離を連続に表現することは苦手で、ある程度離散的な値として近似する必要がでてくるが、物理的な位相を計算しないため、現在の直列処理を得意とするＣＰＵであっても、計算時間を大幅に減らすことができる。これは本実施の形態の大きなメリットである。第１の実施の形態と同様に計算の並列化が容易なため、ＧＰＧＰＵを用いて計算することは更に好ましい。
上述の説明ではネットワーク内のどのリンクも等しい伝送速度を有するとしたが、異なる伝送速度のリンクが混在する場合であっても本実施の形態を用いることができる。例えば、距離を２とし、伝送速度を１とするようなリンクＬ１と、距離を４とし、伝送速度を２とするようなリンクＬ２とを考えると、リンクＬ２の距離はリンクＬ１の倍だが、リンクＬ２の伝送速度もリンクＬ１の倍のため、リンクＬ１とリンクＬ２を信号が通過する際の所要時間はどちらも等しいと考えられる。これを考慮して、各リンクに対してそのリンクの伝送速度の逆数に比例した係数をかけたものを実質距離と呼ぶものとすると、単位距離を定める前に各リンクの実質距離を求めて、実質距離に基づいて単位距離を定めることとすればよい。このようにして求めた単位距離を実質単位距離と呼ぶものとする。リンクの実質距離を実質単位距離の整数倍で近似した値をそのリンクのカウンタの上限値とする。このようにすれば、伝送速度が異なるリンクが混在するネットワークであっても本実施の形態を適用することができる。
上述の説明においては、カウンタは単位時間毎に１ずつカウント値を加算するが、減算することとしてもよい。即ち、ネットワーク内の各リンクにそのリンクの距離に比例するカウンタ値を予めセットしておき、そのリンクの一端のノードへの信号到達に応じてカウンタを起動する。起動されたカウンタは１単位時間経過する毎にカウント値を１ずつ減算する。カウント値がゼロになるとそのリンクの他端のノードに信号が到達したと考えるのである。
また、今回、仮想的な位相伝達情報を伝えるのにカウンタを用いたが、位相が物理的に伝わるのと相関がとれる「位相が伝わったという情報」を使用するなら、本願発明と同様のことが実施できる。
【実施例１】
【０００８】
次に本発明の実施例１である経路選択装置１０について図１０を参照して説明する。経路選択装置１０はネットワーク情報取得部１１、ネットワーク状態分析部１２、伝搬方向識別部１３、ネットワーク経路選択部１４を備える。経路選択装置１０及び各部１１〜１４は、記憶装置に格納したプログラムに従って動作するコンピュータとして実現され、より具体的には例えばインターネットアクセスプロバイダのサーバや、ルータの一部を構成する。
ネットワーク情報取得部１１は、ネットワークインタフェース装置を備え、ネットワークの全体像情報、即ち、ネットワークのトポロジー情報と、ネットワークの結合状態情報をネットワークから取得する。
本願発明を最も特徴付けるのは、ネットワーク状態分析部１２である。ネットワーク状態分析部１２はその内部に更に伝播方向識別部１３を持つ場合があり、本実施例では、伝播方向識別部１３が搭載されている場合を示している。
ネットワーク状態分析部１２の役目は、ネットワーク情報取得部１１が獲得したネットワークの結合状態に関する情報から、ネットワーク経路選択部１４が経路選択を実施できるまでの情報に加工することにある。ネットワーク状態分析部１２で行う処理こそが、第１の実施の形態において述べた経路選択方法によって経路選択処理を実行する装置である。つまり、振動の拡散を記述可能な方程式に従って運動し、ノードの繋がり具合を示す物理量に応じて振動を伝達するリンクにて互いに接続された振動子をノードとするネットワークにおいて、スタートノードに対応する振動子での振動が他の振動子に伝達される過程をシミュレートすることにより、各ノードの第１着リンクを求め、予め用意した（例えば図３右側のネットワーク概略図のような）ネットワークのトポロジーと、各ノードの第１着リンクから（例えば図３右側のような）ツリー構造を求める処理を実行する。スタートノードは当該経路選択装置１０を備えるサーバ、ルータ等である。本実施例では、非線形振動子の位相伝達を用いた。非線形振動子はファン・デル・ポール振動子を用いた。
伝播方向識別部１３は、第図５及び６を参照して説明したように、各リンクに設置される往路用、復路用の仮想リンクの状況をモニターする部位である。ネットワーク状態分析部１２は、伝播方向識別部１３による仮想リンクのモニター情報を用いて、図３に示したようなツリー構造を作成していく。本実施例では、最短経路探索を行った例を示すが、本願発明は発明の効果のところで述べたように、各リンクからの位相伝達時刻を記憶しておけば、様々な経路選択に応用できる。
ネットワーク経路選択部１４は、ネットワーク状態分析部１２が求めたツリー構造に基づいて、当該経路選択装置１０を備えるサーバ、ルータ等、スタートノードとなるノード装置から、外部のプログラムや入力装置から指定された、ターゲットノードとなるノード装置に至る最短経路を選択し、出力する。
図１１に本実施例で最短経路検索を行ったネットワークの例を示す。ノード数をＮとして、立方体型のネットワークを構築、使用した。また、本実施例ではリンクの距離（拡散係数Ｄ）はすべて同じとした。
本実施例では、複数の非線形振動子の物理的位相を計算する例であるので、通常の単一のＣＰＵでは計算が遅くなってしまう。そこで、本実施例では、ＧＰＧＰＵを用いて、並列計算を行った。ＧＰＧＰＵ（Ｇｅｎｅｒａｌ  Ｐｕｒｐｏｓｅ  Ｇｒａｐｈｉｃ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）とは、汎用目的で使用できるグラフィック用のプロセッサで、超並列計算を安価なボードで実現できる近年注目されているプロセッサである。なぜＧＰＧＰＵが注目されているかと言うと、ＣＰＵ単体の計算性能はすでに頭打ちであり、単純な処理を超並列で行うしかトータルの計算性能を上げる術がなくなってきたからである。本願発明のように、ひとつひとつの処理（各非線形振動子の計算）は独立して行えるような並列計算に適したアルゴリズムは、ＧＰＧＰＵなどの力を借りて今後主流になると思われる。従来用いられてきたダイクストラ法などのアルゴリズムは並列計算に適していない。
上記の条件で、本実施例を実施したところ、任意のスタートノードから他の全ノードまでの最短経路検索を行ったところ、妥当なツリー構造の出力を得ることができた。
図１２にダイクストラ法と本実施例の計算速度の結果をノード数の依存性として示す。計算速度は、１０００ノードのときの本実施例の計算時間で規格化して算出している。本実施例は従来のダイクストラ法よりもノードの数が大きくなるにつれ、速い計算結果が得られている。このことから本願発明が非常に有効な経路選択方法であることがわかった。
【実施例２】
【０００９】
本発明の実施例２の経路選択装置について説明する。本実施例は第２の実施の形態に対応する。本実施例の経路選択装置も実施例１の経路選択装置と同様の構成を有するので、図１０を参照して説明する。
本実施例では、ネットワーク状態分析部１２は、非線形振動子の位相伝達を計算するのではなく、第２の実施の形態に相当するシミュレーションを行なう。即ち、スタートノードから信号を発信した時刻を起点として、単位時間毎のリンク上での信号の位置を計算することにより、各ノードの第１着リンク等を求める。
第１の実施の形態ではシミュレーションに必要な計算を並列化しやすいため、実施例１ではＧＰＧＰＵを用いてシミュレーションを実行したが、第２の実施の形態では、計算の並列化が容易なだけではなく、シミュレーションに要する演算負荷が低いために並列化されていないＣＰＵであっても計算速度が向上する。この効果をより明らかにするため、一般的なＣＰＵを用いた結果をグラフにして示す。尚、第２の実施の形態も並列化が容易な点では変わりなく、計算処理を並列化してＧＰＧＰＵで実装すれば更なる高速化を実現することができる。
使用したネットワークは実施例１と同じ図１１に示したような立方体型のネットワークである。また、リンクの距離はすべて同じとして、１時刻後に隣接ノードに情報が到達するという条件とした。このような条件で本実施例を実施し、任意のスタートノードから他の全ノードまでの最短経路検索を行ったところ、妥当なツリー構造の出力を得ることができた。
図１３にダイクストラ法と本実施例の計算速度の結果をノード数の依存性として示す。計算速度は、１０００ノードのときの本実施例の計算時間で規格化して算出している。本実施例は従来のダイクストラ法よりも速い計算結果が得られている。
本発明の方式は、ネットワークの全体像をある程度正確に知っているという前提で動作することは、第１及び第２の実施の形態の説明において述べた。そのときにネットワークの全体像を正確に知っている必要がないのかという疑問がでることを予期した。このような疑問に応えるため、以下に述べるような簡単なシミュレーションを行った。図１４を参照して説明する。
このシミュレーションでは、スタートノードからターゲットノードに向かって情報を伝達する際に、本実施例の経路選択装置１０を用いてターゲットノードまでの最短経路を選択し、その最短経路に沿って情報を発信する。経路選択装置１０が最短経路を求める際に用いたネットワークの全体像情報では、ネットワーク内に障害が発生中のノードは存在していないものとする。このときに求めた最短経路を構成するリンクを図中に太線で示す。
スタートノードから情報を発信した後、その情報がターゲットノードに到着するまでの間に、図１４に示すように、先に求めた最短経路上のノードにおいて障害が発生したものとする。このときネットワークの各ノードに対して障害ノード情報を通知する必要が生じる。障害ノード情報は最終的には全ノードに対して伝達され、全てのノードにおけるネットワークの全体像情報が更新されるが、障害発生後すぐの間は、障害が発生したノード周辺のノードでのみ、ネットワークの全体像情報を更新することができ、遠方のノードでは更新することができない。
一方、スタートノードが発信した情報を受け取ったノードは、そのノードがその時点までに取得しているネットワークの全体像情報に基づいて求めた、ターゲットノードへの最短経路に従って情報を転送していく。
このような前提でシミュレーションを行ったところ、スタートノードが情報を発信した時点では知られていなかった障害を、途中のノードが検知し、以後は更新されたネットワークの全体像情報に基づいて求めた最短経路に従って情報を伝達することが確認出来た。このように、本発明によれば、ネットワークが自律的に障害を回避して、ターゲットノードに情報を伝達することができる。
このような効果を得ることができるのは、本発明の経路選択方法によれば非常に高速に経路選択を実行可能であり、このため、従来は頻繁に実行できなかった経路選択計算を各ノードが情報を送信する度毎に実行することができるからである。また、このように本発明の経路選択方法に基づく経路選択処理を、ネットワークの各ノードにおいて、そのノードが情報を送信する度毎に行なうこととすれば、自律的に障害を回避するネットワークを提供することが可能となる。このように、本発明の経路選択方法は、単に動作が高速であることに留まらない非常に有効な経路選択方法である。
以上、本発明を実施の形態及び実施例に即して説明したが、本発明はこれに限定されるものではなく、本発明の技術的な意味を変えることなく様々な変形が可能である。
例えば、上述の実施形態及び実施例は、ネットワークとして情報ネットワークを挙げて説明したが、本発明はネットワークの種類を問うものではなく、例えば交通ネットワークにおける経路選択に対しても本発明を適用することができる。
また、上述の説明では最短経路検索を行なう場合を中心にして説明したが、２番目に短い経路、３番目に短い経路というように様々な経路選択の要請を満足する処理も可能である。
また、上述の説明では、ネットワークの結合状態情報としてリンクの距離を用いたため、選択される経路は最短経路となったが、ネットワークの結合状態情報はリンクの距離に限定されるものではない。例えば、リンクを流れる情報流の速度、容量などを結合状態情報として、所望の経路選択を実施することが可能である。
また、第１の実施の形態及び実施例１では、ノードを非線形振動子と見立てたが、例えばソリトンを使用して位相を伝達することとしてもよい。
この出願は、２０１０年１１月１９日に出願された日本出願特願第２０１０−２５９３４５号を基礎とする優先権を主張し、その開示のすべてをここに取り込むものである。
【図１】
2012067210.tif 000004
【図２】
2012067210.tif 000005
【図３】
2012067210.tif 000006
【図４】
2012067210.tif 000007
【図５】
2012067210.tif 000008
【図６】
2012067210.tif 000009
【図７】
2012067210.tif 000010
【図８】
2012067210.tif 000011
【図９】
2012067210.tif 000012
【図１０】
2012067210.tif 000013
【図１１】
2012067210.tif 000014
【図１２】
2012067210.tif 000015
【図１３】
2012067210.tif 000016
【図１４】
2012067210.tif 000017
【国際調査報告】
2012067210.tif 000018
2012067210.tif 000019
2012067210.tif 000020
2012067210.tif 000021