JP2007306442A - ネットワークに含まれるノード間の最短経路を探索するためのシステムおよび方法 - Google Patents

ネットワークに含まれるノード間の最短経路を探索するためのシステムおよび方法 Download PDF

Info

Publication number
JP2007306442A
JP2007306442A JP2006134639A JP2006134639A JP2007306442A JP 2007306442 A JP2007306442 A JP 2007306442A JP 2006134639 A JP2006134639 A JP 2006134639A JP 2006134639 A JP2006134639 A JP 2006134639A JP 2007306442 A JP2007306442 A JP 2007306442A
Authority
JP
Japan
Prior art keywords
node
cost
network
link
nodes
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2006134639A
Other languages
English (en)
Other versions
JP4734539B2 (ja
Inventor
Hiroyuki Ishikawa
浩行 石川
Sho Shimizu
翔 清水
Yutaka Arakawa
豊 荒川
Naoaki Yamanaka
直明 山中
Kosuke Shiba
康祐 斯波
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Keio University
IP Flex Inc
Original Assignee
Keio University
IP Flex Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Keio University, IP Flex Inc filed Critical Keio University
Priority to JP2006134639A priority Critical patent/JP4734539B2/ja
Priority to US11/603,995 priority patent/US20070263544A1/en
Publication of JP2007306442A publication Critical patent/JP2007306442A/ja
Application granted granted Critical
Publication of JP4734539B2 publication Critical patent/JP4734539B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/12Shortest path evaluation

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

【課題】処理時間の短い最短経路探索システムを提供する。
【解決手段】複数のノードにより構成されるネットワークに含まれる始点ノードから他のノードへ至る最短経路をネットワーク行列を用いて探索するためのシステム10を提供する。このシステム10の演算ユニット50は、ネットワーク行列に含まれる探索対象のリンクのコストから最小値を減算する回路64と、減算によりコストがゼロになる探索対象のリンクの先端のノードを到達ノードとする回路65と、継続探索対象のリンクのコストを出力する回路66と、ネットワーク行列に含まれる、始点ノードを基端とするリンクのコストを、探索対象のリンクのコストとして、演算ユニットに初期入力するための回路61と、継続探索対象のリンクのコストと、ネットワーク行列に含まれる到達ノードを基端とするリンクのコストとを探索対象のリンクのコストとして、演算ユニットに再入力するための回路62を有する。
【選択図】図11

Description

本発明は、ネットワークにおける最短経路探索の高速化に関するものである。
インターネットの爆発的な発展と普及とに伴い、仕事および日常生活においてコンピュータネットワークが頻繁に利用されるようになっている。コンピュータネットワークではルーティングプロトコルによって交換される情報に基づいてルーティングテーブルが作成され、そのルーティングテーブルに従いパケットが配送される。代表的なルーティングプロトコルであるOSPF(Open Shortest Path First)では、ダイクストラ法と呼ばれる最短経路探索アルゴリズムを用いて、ルーティングテーブルが作成される。
図1に基づき、ダイクストラ法の具体例について説明する。ダイクストラ法は、ある始点ノードから他の全てのノードまでの最短経路を求めるアルゴリズムである。各ノードは、自分の1つ手前のノード及び距離という2つの情報を持つ。図1ではa、b、cおよびdはノード、ノード間の数値はリンクコストを表す。まず初めに、始点ノードaの距離Daを0、それ以外のノードの距離Db〜Ddを無限大にする。次に,ノードaに隣接する各ノードを順番に調べ、ノードaの距離Da(=0)にノードaからのリンクコストを加えた値を暫定的な距離とする(図1(a))。
次に、暫定的な距離が付されたノード全体の中から距離が最小であるノードcの最短経路が決定する。ここで、ノードdはノードcを経由する場合を暫定的な経路とし、ノードdの暫定的な距離が決まる(図1(b))。
この段階でノードbの距離Dbは4、ノードdの距離Ddは6である。このため、次にノードbの経路が決定する。ここで、ノードdの、ノードbを経由した暫定的な距離が決まる(図1(c))。
この段階で、ノードdの最小の距離Ddはノードcを経由した場合の6に更新され、ノードdまでの最短経路が決まる(図1(d))。このように、あるノードの最短経路が決まったことにより新たな経路が見つかると、最小の値に距離が更新される。すなわち、新たな経路が既知の経路よりも短い場合は、ノードまでの距離が更新される。このように、各ノードは必要に応じて距離を更新し、暫定的な距離が最小であるノードの最短経路が決定する。
n個のノードを含むネットワークにおいてダイクストラ法により最短経路を決定する方法は、一般的に次のようになる。まず、ノード1からnとコストcijのリンク(i、j)の連結グラフG=(V、E)を生成し、ノード1からノード2〜nへの最短経路を決定する。ダイクストラ法では、各ノードが一時距離tDjと確定距離Di(i=1〜n)という情報を持ち、一時距離が最小のノードの最短経路が決定する。アルゴリズムは以下の通りである。
ステップ1
始点ノード1は確定距離D1=0にする点j(=2〜n)に対して一時距離tDj=cij(連結グラフGで(1、J)のリンクがない場合には無限大)とし、最短経路が確定したノードの集合をNとする。この時点ではN=[1]である。
ステップ2
最短経路が確定していないノードの集合tNにおいて、一時距離tDkが最小となるkを見つけ、Dk=tDkとする。複数あるときは最小のノードkをとり、そのノードkを集合Nに加える。集合N=V(tN=0)であればD2からDnを出力して終了する。そうでない場合はステップ3へ進む。
ステップ3
集合tNの全てのノードjに対してtDj=min(tDj、Dk+ckj)とする。その後、ステップ2へ戻る。
特開2004−32569号公報 特開2001−308912号公報
IPネットワークにおけるパケットのルーティングは、通過するルータにおいて、そのルータが保持するルーティングテーブルを参照することで行われる。ルーティングテーブルには、宛先ネットワークアドレスと対応するNHR(Next Hop Router(ネクストホップ))が記録され、各パケットの宛先アドレスと最長一致するネットワークアドレスに対応したNHRへパケットが転送される。それぞれのルータにおいて、以上の動作を繰り返すことで、宛先までパケットが転送される。
最短経路の計算結果を元にルーティングテーブルの作成が行われる。このため、今後、インターネットの更なる普及とともにネットワークの規模が拡大すると、最短経路探索処理の負担が増大し、ボトルネックになると考えられる。モバイルの端末が増加することになると、ルーティングテーブルを頻繁に更新することが要求される。また、今後ユビキタスコンピューティング化が進展し、RFID(Radio Frequency Identification)タグによってあらゆる商品にIPアドレスが与えられることが考えられる。あらゆる物にIPアドレスを割り当てる場合、膨大な数のIPアドレスが必要になり、アドレス空間が32bitである現状のIPv4ではアドレスが不足する。そこで、アドレス不足の解決のために、アドレス空間を128bitに拡張したIPv6が提案されている。したがって、膨大な数のIPアドレスの機器を含むネットワークに対応したルーティング方法が要求されている。
さらに、近年、光ネットワークにおいては、リンクコストとして、リンクの速度だけでなく、波長予約の成功率など複数の要因を考慮することが提案されている。また、リンクコストは、そのリンクを使用しているユーザ数、リンクを経由するデータ種類などの要因により変動するため、それらの要因の変動も考慮してルーティングテーブルは更新されることが望ましい。したがって、経路計算における負荷はさらに増大するものと考えられる。
特許文献1では、ルータとは別個に、最短経路を計算する処理を実行する専用の装置を設けることを提案している。ハードウェアを増加して、ルータにおける経路計算に要する負荷を低減するものである。しかしながら、ネットワークを構成するシステムとして、ルーティングのための経路計算の負荷を低減するというものではない。
ダイクストラ法は単純なアルゴリズムであり、シーケンシャルプロセッサの処理に向いているという点で現在広く用いられている。しかしながら、ダイクストラ法の計算量はノード数nに対してO(n)であり、ノード数の増加にともない計算量が大幅に増加するという問題がある。
特許文献2では、階層化されたQOSPF網における経路計算について記載されている。バックボーンなどを含むエリア内のルーティング情報がエリア境界ルータから縮退されたルーティング情報として提供されるものである。しかしながら、縮退されたルーティング情報により、宛先のノードに対して、どのエリアが通過可能であるかが分かったとしても、1つのエリアに複数のルートが含まれている場合など、条件によっては、最短経路を計算するためには、それらのエリア内の全ノードを用いて再計算する必要がある。ネットワークを階層化してルーティングのための経路計算をすることは、分散処理を可能とし、経路計算の負荷を低減できる方法かもしれない。しかしながら、ダイクストラ法により、全点間の最短経路を計算するためには、さらにn回の計算が必要となりO(n)の計算量となる。したがって、ルーティングのための経路計算の負荷を低減できない。
本発明の一態様は、複数のノードにより構成されるネットワークに含まれる始点ノードから他のノードへ至る最短経路を、ネットワーク行列を用いて探索するための第1のシステムである。ネットワーク行列は、当該ネットワークに含まれる各ノードを基端とし、基端のノードに繋がる他のノードを先端とする各リンク(接続、連結)のコストを含む。
この第1のシステムは、複数の回路を構成するための演算ユニットを有し、複数の回路は、ネットワーク行列に含まれる探索対象のリンクのコストから第1の値を減算することと、減算によりコストがゼロになる探索対象のリンクの先端のノードを到達ノードとすることと、ネットワーク行列に含まれるリンクの内、到達ノードを先端とするリンクのコストを探索対象外の値に変更することと、減算によりコストがゼロにならない探索対象のリンクのコストの減算後の値を、継続探索対象のリンクのコストとすることとを実行するための回路を含む。
さらに、この第1のシステムは、ネットワーク行列に含まれる、始点ノードを基端とするリンクのコストを、探索対象のリンクのコストとして、演算ユニットに初期入力するための手段と、継続探索対象のリンクのコストと、ネットワーク行列に含まれる到達ノードを基端とするリンクのコストとを、探索対象のリンクのコストとして、演算ユニットに再入力するための手段とを有する。初期入力するための手段および再入力するための手段は、演算ユニットに含まれる回路あるいは含まれない回路により実現しても良く、ソフトウェアにより実現しても良い。
この第1のシステムは、減算という並列演算の容易なプロセスにより距離が最小のノードを検出する。したがって、並列処理要素を数多く含む演算ユニットを使用することにより処理時間を短縮できる。演算ユニットは、探索対象のリンクのコストの最小値を検出して第1の値とする回路を含むことが望ましい。第1の値が、探索対象のリンクのコストの最小単位であっても良い。
この第1のシステムは、始点ノードから到達可能な他のノードの全てが到達ノードになるまで演算ユニットへの再入力を繰り返し、始点ノードから他のノードへ至る最短経路を得るための第1の機能をさらに有することが望ましい。演算ユニットが、探索対象のリンクのコストの最小値を検出して第1の値とする回路を含む場合は、第1の機能は、ネットワーク行列に含まれる、始点ノードに対する他のノードの数だけ、演算ユニットへの再入力を繰り返すことにより、最短経路を得ることができる。
第1の機能は、さらに、ネットワーク行列に含まれる全てのノードを始点ノードとして、演算ユニットへの初期入力を繰り返すことにより、ネットワーク行列に含まれる各ノードから他の各ノードへ至る最短経路を得ることができる。
本発明の他の態様は、複数のノードにより構成されるネットワークに含まれる始点ノードから他のノードへ至る最短コストを求める第2のシステムである。この第2のシステムは、第1の機能を備えた第1のシステムと、第1の機能により得られた最短経路と、ネットワーク行列により、始点ノードから他のノードへ至る最短コストを得るための第2の機能とを有する。第2の機能は、さらに、ネットワーク行列に含まれる全てのノードを始点ノードとした最短経路を取得し、ネットワーク行列に含まれる各ノードから他の各ノードへ至る最短コストを得る。ネットワーク行列に含まれる各ノードから他の各ノードへ至る最短コストを得ることにより、他のネットワークと接続するノードから他のノードに至る最短コストを抽出できる。その抽出されたコストを用いて、そのネットワークを通る経路の情報を縮退できる。したがって、最短コストを得ることにより、境界ノードを集めた上位層のネットワーク行列を生成することが可能となる。
すなわち、本発明の他の態様は、第2の機能を備えた第2のシステムと、n個のノードを含む解析対象ネットワークの中の起点ノードから目的地ノードに至る最短経路を得るための第3の機能とを有する第3のシステムである。この第3のシステムでは、演算ユニットは、最大m個のノードについて演算可能であり、第3の機能は、解析対象ネットワークを階層化する機能として、1つのネットワークが最大m個のノードを含む最下層の複数のネットワークに分解することと、下位層の複数のネットワークの少なくとも2つのネットワークを接続するための境界ノードを最大m個含む上位層のネットワークを生成することとを含む。さらに、第3の機能は、階層化されたネットワークを用いて最短経路を探索する機能として、最下層の複数のネットワークの各々についてネットワーク行列を生成することと、第2の機能により、各ノードから他の各ノードへ至る最短コストを得ることと、上位層のネットワークについて、他の境界ノードとの最短コストをリンクのコストとして含む上位層のネットワーク行列を生成することと、上位層のネットワークについて、各々の境界ノードを始点ノードとして、第2の機能により、各境界ノードから他の各境界ノードに至る最短コストを得ることとを含む。
階層化することにより、減算という単純な演算を行うエレメントを含む限られたハードウェア資源により、大規模なネットワークについても最短経路を得ることができる。
第3の機能は、上位層のネットワークに含まれる複数の境界ノードを介して起点ノードから目的地ノードに至る複数の経路の各々について、最下層の複数のネットワークの中の起点ノードを含むネットワークにおける起点ノードから境界ノードに至る最短コスト、上位層のネットワークに含まれる境界ノード間の最短コスト、および最下層の複数のネットワークの中の目的地ノードを含むネットワークにおける境界ノードから目的地ノードまでの最短コストの和を求めることと、最短コストの和が最小の経路を得ることとを、さらに含むことが好ましい。各層において得られたノード間(境界ノード間を含む)の最短コストを用いて、解析対象ネットワークに含まれるノードを目的地ノードとした最短経路を決定できる。
第3のシステムの一例はルータであり、コンピュータネットワークに接続され、パケットを送出するネクストホップを選択する機能を備えたルーティングユニットを有する。選択する機能は、ルーティングテーブルに基づき、ネクストホップを選択することと、ルーティングプロトコルにより、ネクストホップを含むコンピュータネットワークの情報を取得し、解析対象ネットワークとして認識し、第3の機能により、ルーティングテーブルを更新することとを含む。
本発明の他の態様は、回路を再構成可能な演算ユニットを用い、複数のノードにより構成されるネットワークに含まれる始点ノードから他のノードへ至る最短経路を探索する第1のプロセスを有する方法である。この第1のプロセスは、当該ネットワークに含まれる各ノードを基端とし、基端のノードに繋がる他のノードを先端とする各リンクのコストを含むネットワーク行列を取得することと、演算ユニットに複数の回路を構成することとを含む。複数の回路は、ネットワーク行列に含まれる探索対象のリンクのコストから第1の値を減算することと、減算によりコストがゼロになる探索対象のリンクの先端のノードを到達ノードとすることと、ネットワーク行列に含まれるリンクの内、到達ノードを先端とするリンクのコストを探索対象外の値に変更することと、減算によりコストがゼロにならない探索対象のリンクのコストの減算後の値を、継続探索対象のリンクのコストとすることとを実行するための回路を含む。
さらに、第1のプロセスは、ネットワーク行列に含まれる、始点ノードを基端とするリンクのコストを、探索対象のリンクのコストとして、演算ユニットに初期入力することと、継続探索対象のリンクのコストと、ネットワーク行列に含まれる到達ノードを基端とするリンクのコストとを、探索対象のリンクのコストとして、演算ユニットに再入力することとを含む。
また、本発明の他の一態様は、上記の複数の回路が構成された演算ユニットを用い、複数のノードにより構成されるネットワークに含まれる始点ノードから他のノードへ至る最短経路を探索する第1のプロセスを有する方法である。この方法も、当該ネットワークに含まれる各ノードを基端とし、基端のノードに繋がる他のノードを先端とする各リンクのコストを含むネットワーク行列を用いることを含む。
第1のプロセスは、以下のステップを含む。
1−1.回路が構成された演算ユニットに対して、ネットワーク行列に含まれる、始点ノードを基端とするリンクのコストを、探索対象のリンクのコストとして、演算ユニットに初期入力すること。
1−2.継続探索対象のリンクのコストと、ネットワーク行列に含まれる到達ノードを基端とするリンクのコストとを、探索対象のリンクのコストとして、演算ユニットに再入力すること。
第1のプロセスは、以下のステップをさらに含むことが望ましい。
1−3.始点ノードから到達可能な他のノードの全てが到達ノードになるまで演算ユニットへの再入力を繰り返し、始点ノードから他のノードへ至る最短経路を得ること。
演算ユニットは、探索対象のリンクのコストの最小値を検出して第1の値とする回路を含み、第1のプロセスの最短経路を得るステップ1−3では、ネットワーク行列に含まれる、始点ノードに対する他のノードの数だけ、演算ユニットへの再入力を繰り返すことが望ましい。
第1のプロセスは、以下のステップをさらに含むことが望ましい。
1−4.ネットワーク行列に含まれる全てのノードを始点ノードとして、演算ユニットへの初期入力を繰り返し、ネットワーク行列に含まれる各ノードから他の各ノードへ至る最短経路を得ること。
本発明に含まれる方法の一形態は、複数のノードにより構成されるネットワークに含まれる始点ノードから他のノードへ至る最短コストを求める第2のプロセスを有する。第2のプロセスは、以下のステップを含む。
2−1.第1のプロセスにより最短経路を得ること。
2−2.得られた最短経路と、ネットワーク行列より、始点ノードから他のノードへ至る最短コストを得ること。
第2のプロセスは、以下のステップをさらに含むことが望ましい。
2−3.ネットワーク行列に含まれる全てのノードを始点ノードとした最短経路を取得し、ネットワーク行列に含まれる各ノードから他の各ノードへ至る最短コストを得ること。
本発明に含まれる方法の他の形態は、さらに、n個のノードを含む解析対象ネットワークの中の起点ノードから目的地ノードに至る最短経路を得る第3のプロセスを有する。演算ユニットは、最大m個のノードについて演算可能である場合、第3のプロセスは、以下のステップを含む。
3−1.解析対象ネットワークを、1つのネットワークが最大m個のノードを含む最下層の複数のネットワークに分解すること。
3−2.下位層の複数のネットワークの少なくとも2つのネットワークを接続するための境界ノードを最大m個含む上位層のネットワークを生成すること。
3−3.最下層の複数のネットワークの各々についてネットワーク行列を生成すること。
3−4.第2のプロセスにより、各ノードから他の各ノードへ至る最短コストを得ること。
3−5.上位層のネットワークについて、他の境界ノードとの最短コストをリンクのコストとして含む上位層のネットワーク行列を生成すること。
3−6.上位層のネットワークについて、各々の境界ノードを始点ノードとして、第2のプロセスにより、各境界ノードから他の各境界ノードに至る最短コストを得ること。
第3のプロセスは、さらに、以下のステップを含むことが望ましい。
3−7.上位層のネットワークに含まれる複数の境界ノードを介して起点ノードから目的地ノードに至る複数の経路の各々について、最下層の複数のネットワークの中の起点ノードを含むネットワークにおける起点ノードから境界ノードに至る最短コスト、上位層のネットワークに含まれる境界ノード間の最短コスト、および最下層の複数のネットワークの中の目的地ノードを含むネットワークにおける境界ノードから目的地ノードまでの最短コストの和を求めること。
3−8.最短コストの和が最小の経路を得ること。
さらに、本発明に含まれる方法の他の形態は、さらに、コンピュータネットワークに接続され、パケットを送出するネクストホップを選択するプロセスを有する。この選択するプロセスは、以下のステップを含む。
4−1.ルーティングテーブルに基づき、ネクストホップを選択すること。
4−2.ルーティングプロトコルにより、ネクストホップを含むコンピュータネットワークの情報を取得し、解析対象ネットワークとして認識し、第3のプロセスにより、ルーティングテーブルを更新すること。
本発明の他の態様は、複数のノードにより構成されるネットワークに含まれる始点ノードから他のノードへ至る最短経路を探索する方法であって、当該ネットワークに含まれる各ノードを基端とし、基端のノードに繋がる他のノードを先端とする各リンクのコストを含むネットワーク行列を用いることを含み、以下のステップを有する。
a1.ネットワーク行列に含まれる探索対象のリンクのコストから第1の値を減算すること。
a2.減算によりコストがゼロになる探索対象のリンクの先端のノードを到達ノードとすること。
a3.ネットワーク行列に含まれるリンクの内、到達ノードを先端とするリンクのコストを探索対象外の値に変更すること。
a4.減算によりコストがゼロにならない探索対象のリンクのコストの減算後の値を、継続探索対象のリンクのコストとし、この継続探索対象のリンクのコストと、ネットワーク行列に含まれる到達ノードを基端とするリンクのコストとを、探索対象のリンクのコストとし、ステップa1に戻ること。
減算するステップa1においては、探索対象のリンクのコストの最小値を第1の値とすることが望ましい。減算するステップa1においては、探索対象のリンクのコストの最小単位を第1の値としても良い。
図2から図8に、本発明に含まれるアルゴリズムにより、最短経路を探索する様子を示している。図2(a)は、4つのノードA〜Dを含むネットワークNを示している。図2(b)は、ネットワークNの各リンクのコストを含むネットワーク行列MNを示している。インターネットなどのコンピュータネットワークにおいて、ノード間のコスト(リンクコスト)を決定する典型的な要素は、通信速度の逆数である。その他に、光ネットワークにおいては波長予約の成功率、送信対象のデータ種別、QoSにより予約された帯域など複数の要因をリンクコストとして反映することができる。
このネットワーク行列MNは、ネットワークNに含まれる各ノードを基端とし、基端のノードに繋がる他のノードを先端とする各リンクのコストをエレメントとして含む。この例では、ノードAを基端としノードBを先端とするリンク(接続、連結)ABのコスト(リンクコスト)は4、ノードAを基端としノードCを先端とするリンクACのコストは3、ノードBを基端としノードCを先端とするリンクBCのコストは5、ノードBを基端としノードDを先端とするリンクBDのコストは3、ノードCを基端としノードDを先端とするリンクCDのコストは3である。ネットワーク行列MNの他のエレメントは繋がっていないため、そのエレメントのコストは、探索対象にならないように、ここでは無限大に設定している。探索のシステムにより、探索対象でないことを示す値は無限大に限定されない。
また、以下では、ノードAを始点ノードとして、他のノードへ至る最短経路を探索する例を説明する。このため、ノードAを先端とするリンクBA、CAおよびDAは、探索の対象にならないので、それらのコストは予め無限大にセットされている。さらに、リンクAA、BB、CCおよびDDは存在しないので、やはり無限大にセットされている。
図2(c)は、探索が終了したリンクを示す経路行列MRを示している。また、この経路行列MRは、経路探索により到達済みのノードを示し、また、探索対象のリンクの基端を示す機能を含む。したがって、始点ノードであるノードAは、到達していることを示すフラグ「1」が付されている。
このネットワーク行列MNに対して、上記のステップa1〜a4を含むアルゴリズムを適用して、最短経路を探索する例を説明する。まず、図2に示すように、始点ノードであるノードAを基端とするリンクのコストが探索対象のリンクのコストとして選択される。次に、図3(b)に示すように、探索対象のリンクのコストから最小値である「3」が減算され、リンクACのコストがゼロになる(ステップa1)。
減算によりコストがゼロになる探索対象のリンクの先端のノードが到達ノードである。したがって、図3(c)に示すように、経路行列MRのエレメントACに到達済みのフラグ「1」を付す(ステップa2)。
また、ネットワーク行列MNに含まれるリンクの内、到達ノードを先端とするリンクのコストを探索対象外の値に変更する。このため、図4(b)に示すように、到達ノードであるノードCを先端とするリンクAC、BCおよびDCのコストを探索対象外の値である無限大にセットする(ステップa3)。
減算されたリンクのコストの内、到達ノードを示すゼロ以外の減算後の値は継続探索の対象となる。さらに、到達ノードを基端とするリンクのコストが探索対象として加えられる。したがって、この例では、経路行列MRに到達済みのフラグ「1」が付されたノードAおよびノードCを基端とするリンクのコストが、次の探索対象のリンクのコストとなる。
これらのリンクのコストから、最小値の「1」が減算される。その結果、図5(b)に示すように、リンクABのコストがゼロになる。減算によりコストがゼロになる探索対象のリンクの先端のノードが到達ノードである。したがって、図5(c)に示すように、経路行列MRのエレメントABに到達済みのフラグ「1」を付す。
また、ネットワーク行列MNに含まれるリンクの内、到達ノードを先端とするリンクのコストを探索対象外の値に変更する。このため、図6(b)に示すように、到達ノードであるノードBを先端とするリンクAB、CBおよびDBのコストを探索対象外の値である無限大にセットする。
減算されたリンクのコストの内、到達ノードを示すゼロ以外の減算後の値は継続探索の対象となる。さらに、到達ノードを基端とするリンクのコストが探索対象として加えられる。したがって、この例では、経路行列MRにフラグ「1」が付されたノードA、BおよびCを基端とするリンクのコストが、次の探索対象のリンクのコストとなる。
これらのリンクのコストから、最小値の「2」が減算される。その結果、図7(b)に示すように、リンクCDのコストがゼロになる。減算によりコストがゼロになる探索対象のリンクの先端のノードが到達ノードである。したがって、図7(c)に示すように、経路行列MRのエレメントCDに到達済みのフラグ「1」を付す。
また、ネットワーク行列MNに含まれるリンクの内、到達ノードを先端とするリンクのコストを探索対象外の値に変更する。このため、図8(b)に示すように、到達ノードであるノードDを先端とするリンクBDおよびCDのコストを探索対象外の値である無限大にセットする。この結果、ネットワーク行列MNに含まれる全てのリンクのコストが検索対象外となり、始点ノードAから他のノードに至る全ての最短経路が探索されたことになる。
このアルゴリズムでは、探索対象のリンクのコストから、それらのコストの内の最小値を減算する。したがって、少なくとも1つのリンクのコストはゼロになり、一回の減算により、少なくとも1つの到達ノードが探索される。このため、リンクのコストの大小に関わらず、最大で、ネットワークに含まれる始点ノード以外の他のノードの数、すなわち、ネットワークに含まれるノードの数Naに対して(Na−1)回だけ、上記の処理を繰り返すことにより、始点ノードから他のノードに至る全ての最短経路を探索できる。したがって、ループを繰り返す回数は、最大でノードの総数に、ほぼ比例して増加するだけである。また、ノードの数が決まれば、(Na−1)回だけ繰り返すことにより、必ず始点ノードから他のノードに至る全ての最短経路が探索できているので、上述したように、ネットワーク行列の全てのエレメントが無限大であるか否かを確認する必要もない。
一方、探索対象のリンクのコストから、それらのコストの最小単位を減算するアルゴリズムであっても良い。この例では、コストの最小単位は「1」であり、一回のループで、ネットワーク行列のうち、探索対象のリンクのコストから「1」を引く。減算のループを繰り返し、いずれかのコストがゼロになったときに、到達ノードが検索される。このアルゴリズムでは、ループ回数が、コストに依存して増大する。
図9に、経路行列MRから、最短コスト行列MCを求める様子を示している。始点ノードAについて、経路行列MRを取得する(ステップ2−1)。図8(c)で得られた経路行列MRと、図2(b)に示すオリジナルのネットワーク行列MNとより、図9(a)に示すように、最短経路に含まれる各リンクのコストが判明する。したがって、図9(b)に示すように、到達ノードを辿って、始点ノードAから他の各ノードに至る最短コストが求められ、最短コスト行列MCのノードAを基端とする行のエレメントが決まる(ステップ2−2)。ネットワーク行列MNに含まれる全てのノードを始点ノードとして、上記のステップ2−1および2−2を繰り返す。これにより、図9(c)に示すようなネットワーク行列に含まれる全てのノードから他のノードへ至る最短コスト行列MCを得ることができる(ステップ2−3)。
図9(d)は、最短コスト行列MCの一般的な表現を示す。ノードa11〜a14に対して、最短コストx1〜x12が得られる。したがって、最短コスト行列MCにより、ネットワークNに含まれる、あるノードと他のノードとが決まれば、その間の最短コストを抽出することができる。
図10に、異なるネットワークについて、上記のアルゴリズムを適用した結果を示している。図10(a)に示すネットワークNは、ノードA〜Fの6つのノードを含む。図10(b)は、このネットワークNの各リンクのコストを示すネットワーク行列MNであり、始点ノードをノードAに設定している。図10(c)は、上記のアルゴリズムのステップa1〜a4にしたがって求められた、始点ノードAから、他のノードに至る最短経路を示す経路行列MRである。
図11に、上記の最短経路探索アルゴリズムを利用して、ルーティングテーブルを更新する機能を備えたルータの概要を示している。このルータ100は、コンピュータネットワークの一つのノードを構成するデバイスであり、CPU、メモリ、回路を再構成可能なプロセッサなどを含む適当なハードウェア資源と、それらを制御するための適当なソフトウェア資源とを備えている。ルータ100は、有線または無線を含む適当な伝送経路により隣接するルータとの間でデータを交換可能なネットワークインターフェイス101と、このネットワークインターフェイス101を介して送受信するパケットデータ(パケット)を生成および解析する解析ユニット102と、パケットのIPヘッダーの情報に基づき、パケットを送出するネクストホップルータ(ネクストホップ)を選択する機能を備えたルーティングユニット80とを含む。
ルーティングユニット80としての機能は、専用のモジュール、あるいは他の機能と共用のハードウェア資源、例えば、CPUあるいは再構成可能なプロセッサとソフトウェアにより提供される。ルーティングユニット80は、ルーティングテーブル81を参照してパケットを送出するネクストホップを選択する機能82と、動的なルーティングテーブルの更新を可能とする適当なルーティングプロトコル、例えばOSPFにより、近隣のルータを含めたネットワークのルーティングに関する構成を示す情報を取得し、ルーティングテーブル81を更新する機能83とを含む。この更新する機能83は、ルーティングプロトコルにより取得したネットワークの情報を解析対象のネットワークとし、そのネットワークを示すネットワーク行列39を生成して、または、生成できる情報としてルーティング解析を行なうための下層の解析システム30に提供する。OSPFのようなリンクステート型のルーティングアルゴリズムでは、ルータ間でリンク情報をLSA(Link-State Advertisement)で定期的に交換する。したがって、そのネットワークに属する各ノードはネットワーク中のすべてのリンク情報(コスト)を知っている。したがって、ネットワーク行列39には、LSAにより得られたネットワーク内のリンクコスト情報を含めることができる。
解析システム30は、階層化された構成を備えている。上位の階層の機能31は、上位のアプリケーションあるいはシステムより提供された解析対象のネットワークを階層化して、小規模のネットワークに分割する。中間の階層の機能21は、小規模のネットワークのノード間の最短コストを上位の階層に提供し、上位の階層でネットワークの再編成を可能とする。下層の階層の機能11は、小規模のネットワークのノード間の最短経路を探索して、上位の階層に提供し、ノード間の最短コストを算出可能とする。
下層の第1の機能11を含む第1のシステム10は、複数の回路を再構成可能なプロセッサ(演算ユニット)50と、それを制御するための制御ユニット51と、メモリ52とを備えている。メモリ52には、回路を再構成するための回路構成情報54が格納されており、制御ユニット51の構成制御機能53により、適当なタイミングになると、演算ユニット50に経路探索のための回路を再構成する。したがって、経路探索を必要としない間は、演算ユニット50には異なる回路が再構成され、演算ユニット50は他の機能と共用される。
演算ユニット50には、経路探索のためのデータを初期入力するための回路61と、経路探索のためのデータを再入力するための回路62と、最小値を検出するための回路63と、減算のための回路64と、到達ノードを判断するための回路65と、継続探索のためのデータを生成するための回路66とが再構成される。また、制御ユニット51には、適当なプログラムにより、演算ユニット50に構成された、これらの回路を制御するための第1の機能11が実装される。第1の機能11は、初期入力するために始点ノードを選択し、ネットワーク行列MNに含まれる全てのノードを始点ノードとして、演算ユニット50への初期入力を繰り返す機能12と、始点ノードから他の全てのノードに到達するまで演算ユニット50へ再入力を繰り返す機能13とを含む。
図12に、第1のシステム10を実装可能なデータ処理装置の一例を示している。このデータ処理装置15は、本願の出願人に含まれるアイピーフレックス社が提供するDAPDNAである。このデータ処理装置15は、回路を再構成可能な領域50を備えたプロセッシングユニット(PU)である。また、このデータ処理装置15は、チップ状に回路が集積化された集積回路装置でもある。このデータ処理装置15は、再構成可能な領域50と、この再構成可能な領域50を再構成する機能を備えたRISCなどの汎用プロセッサ(以降ではプロセッサ)51と、プロセッサ51のプログラムおよび再構成用のハードウェア情報54を格納したメモリ52を備えている。この集積回路装置15の再構成可能な回路領域50は、複数のエレメントがアレイまたはマトリクス状に2次元に配置されており、マトリクスとも称される。このマトリクスを本例の演算ユニット50として使用できる。マトリクス50は、縦横に2次元に配置された複数のプロセッシングエレメント(PE)55と、それらの間に格子状に配置された配線57と、配線57の接続ポイントで縦横の配線57の接続を自由に切り替えることができるスイッチングユニット56とを備えている。
再構成可能な回路領域50を構成するためのPE55の一例は、ルックアップテーブルなどにより自在に機能を設定可能なものである。この集積回路装置15のマトリクス50には、算術論理演算用のエレメント、遅延用のエレメント、メモリ用のエレメント、データを入力または出力するためにアドレスを発生させるエレメント、データの入力または出力用のエレメントなど、特定の機能あるいは処理に適した内部構成のエレメントが配置されている。ある程度の機能グループに分けたエレメントを配置することにより冗長性が減少し、AC特性および処理速度が向上できる。
DAPDNAのマトリクス50は、具体的には、368個のPE55を備えており、プロセッサ51をプログラム制御することにより、プロセッサ51から、またはメモリ52から、制御バス16を介して、各PE55に対してコンフィグレーションデータが供給される。このコンフィグレーションデータにより、各々のPE55の機能と、配線群57の接続とが制御され、マトリクス50の内部に、種々のデータフロー(データパス)を自由に構成できる。したがって、マトリクス50は、PE55を含む回路構成をプログラムにより変更できる。
集積回路装置15は、マトリクス50と、外部メモリ25などの外界とを接続し、処理対象のデータを入出力するために、入力バッファ18と、出力バッファ19と、アクセス調停ユニットとして機能するバススイッチングユニット(バスインターフェイス、BSU)17とを備えている。バッファ18および19は4つのバッファエレメントをそれぞれ備え、マトリクス50に構成された回路に対して入出力されるデータを管理する機能を備えている。
図13は、PE55の一例である。このPEは、算術演算および論理演算に適した構成の演算用のPEである。PE55は、機能を変更可能な内部データパス領域55bと、その内部データパス領域55bの機能を設定する制御ユニット55aとを備えている。内部データパス部55bは、配線57から所望の入力データを抽出するためのシフト回路SHIFTおよびマスク回路MASKと、入力データdixおよびdiyをクロック信号によりラッチするための入力レジスタ(FF)と、論理演算ユニットALUと、配線57に出力する出力データdoをクロック信号によりラッチするための出力レジスタ(FF)とを備えている。
各PEの制御ユニット55aは、プロセッサ51から制御バス16を介してコンフィグレーションデータを受信し、内部データパス部55bの構成を制御する。したがって、PE55においては、制御ユニット55aにより、シフト回路SHIFT、マスク回路MASK、論理演算ユニットALUの状態が設定され、各種の算術演算および論理演算を行うことができる。また、各々のPE55は、入力データをクロック信号でラッチ(セット)するための入力レジスタと、出力データをクロック信号でラッチ(セット)するための出力レジスタとを備えている。このため、PE55における処理の内容が確定すると、入力されたデータが演算されて出力されるまでのレイテンシが確定する。したがって、複数のPE55を配線57により接続することによりパイプライン化された回路を簡単に構成することができ、スループットの大きな回路を提供できる。
図14に、演算ユニット(マトリクス)50に再構成された回路の概要を示している。経路探索のためのデータを初期入力するための回路61は、4×4のネットワーク行列MNの1行を32ビットで表現し、それを4並列のデータA1〜A4として入力する。図15に示すように、1行32ビットのデータを8ビット×4に分割し、4つの行成分を表す。また、8ビットのうち、先頭の1ビットは最短経路が確定したか否かの確定フラグとして使用する。この確定フラグは、経路行列MRを示す。したがって、4並列のデータA1〜A4は、ネットワーク行列MNの情報と、経路行列MRの情報とを含み、演算ユニット50における経路探索は、これらのデータA1〜A4により制御することができる。また、探索対象外のデータを示す無限大の値は、16進数「7F」で表現される。さらに、確定フラグが付されているノードを基端とするリンク、すなわち、そのノードの行が探索対象となる。
図16に、図2(b)に示した、ノードAを始点ノードした経路探索を行なうためのネットワーク行列MNを、演算ユニット50へ入力する形式に変換する様子を示している。以降では、ノードAを始点ノードとして経路探索を行なうためのデータA1〜A4からなるデータセットをデータAとして示す。したがって、第1の機能11の初期入力を繰り返す機能12は、データAについては、ノードAを示すデータA1の先頭の確定フラグを「1」にセットし、ノードAを始点ノードとして初期入力するための回路61にセットする。このため、初期入力の段階では、データA1〜A4の全てが演算ユニット50に供給されるが、最初に経路探索に使用されるのはデータA1のみとなる。
図14に示した、経路探索のためのデータを再入力するための回路62は、初期入力のための回路61からのデータ(初期データ)と、継続探索のために演算ユニット50の出力からフィードバックされたデータ(再入力データ)とを切り換えて次の回路63に供給する。再入力データは、いずれかのノードを示すデータの先頭の確定フラグが到達ノードとして新たに「1」にセットされており、その到達ノードを基端とするリンクのコストが、新たな探索対象のリンクコストに含まれる。本例であれば、最初にデータA1のみが経路探索に使用され、次の回路63〜66の経路探索のための処理対象となる。次のループではデータA1およびA3が処理対象となり、次のループではデータA1、A2およびA3が処理対象となり、最後にデータA1〜A4が処理対象となる。
最小値を検出するための回路63では、データA1〜A4のうちの処理対象のデータについて、ノックアウト方式で最小値を検出する。減算のための回路64では、データA1〜A4のうちの処理対象のデータについて、検出された最小値を減算する。コストが無限大(「7F」)については演算しない。到達ノードを判断するための回路65においては、コストがゼロになったノードに対応する確定フラグに「1」をセットする。
継続探索のためのデータを生成するための回路66においては、確定フラグに「1」がセットされたノードを先端とするリンク、すなわち、到達フラグの列のリンクコストを全て探索対象外の無限大にセットし、それ以外のリンクについては、減算後のコストを含むデータA1〜A4(新データA1〜A4)を出力する。これらの新データA1〜A4は、再入力回路62に供給され、適当なタイミングで再び、最小値を検出する回路63に供給される。所定の回数だけ処理を繰り返し、全てのリンクコストが無限大になったデータは、メモリ52に回収される。このデータの確定フラグが最短経路を示す経路行列MRとして使用される。初期入力する回路61と、再入力する回路62との機能はソフトウェアで実現することも可能である。例えば、再入力を生成する回路66から出力された回路をいったんメモリ52に格納し、パイプラインを破綻させない適当なタイミングで再入力しても良い。あるいは、再構成可能な演算ユニット50が他の機能とタイムシェアリングして使用されている状況であれば、他の機能の実行を阻害しないタイミングで、経路探索用の回路を再構成し、再入力データを入力することにより経路探索を続けることができる。
演算ユニット50においては、多数の演算エレメントPE55が用意されており、これらにより複数のデータを並列に処理する回路を構成できる。本明細書においては、4×4の行列を利用して説明しているが、現在のDAPDNAは入力データ単位が32ビットであり、32ビットを8ビット×4に分割し、この32ビットデータを16個入力することにより、8×8のネットワーク行列MNに含まれるリンクコストについて並列処理を行う構成を採用した。また、DAPDNAに搭載された各エレメントPEは、上述したように、クロック同期で動き、各PEは入出力にクロック同期でデータをラッチするためのFFが配置されている。したがって、DAPDNAには基本的にパイプライン動作する回路が構成され、上述した経路探索のための処理をパイプライン処理することが可能となる。
ダイクストラ法は、ある時点での計算において、それ以前の計算結果が影響を及ぼすため、DAPDNAのような並列リコンフィギュラブルプロセッサに適したアルゴリズムとはいえない。さらに、ダイクストラ法をデータフローマシン上に実装する場合、ループ間の依存性のため、長いフィードバックループが必要になり処理のスループットが低下する.加えて、リストの探索に時間がかかるため、ダイクストラ法は並列データフローマシンに適した最短経路探索アルゴリズムであるといえない。
ダイクストラ法に対し、本発明に含まれる最短経路検索アルゴリズムは、1回の処理で、全枝について、最小ノード分の距離(コスト)だけ現在位置を進め、到達ノードを判断する。したがって、この最短経路探索アルゴリズムをAMPSA(Advanced-Multi-route Parallel Search Algorithm)と称することにする。本発明に含まれるアルゴリズムは、上述したように、1回の処理で始点から出る全枝について1コスト分だけ現在位置を進め、現在位置が最初に他のノードに達した経路が最短経路である方法であっても良い。このアルゴリズムをMPSA(Multi-route Parallel Search Algorithm)と称することにする。MPSAでは、現在位置がノードに達すると、そのノードから出ている枝についても現在位置を進め、全ノードに対して現在位置が達すると終了となる。
このAMPSAおよびMPSAでは、処理の依存性を抑え、複数の経路について同時に探索が行うアルゴリズムであるため、並列処理が可能である。また、MPSAは行列演算として表現することができる。また、後述するように、本行列計算アルゴリズムは広いネットワークサイズにもスケーラブルである。最小値を減算するタイプの、AMPSAをDAPDNA上で実行した場合、実行クロック数は、始点ノードからもっとも遠いノードまでの経路のコストによらず、格子状メッシュトポロジの場合では、ノード数nに対して、全ノード探索した場合でもO(n)となる。したがって、AMPSAは、ダイクストラ法と比較して、ノード数の増加に対して計算量の増加が極めて小さい。
ダイクストラ法の計算量は、ノード数nに対してO(n)であり、全ノードを検索すると計算量はO(n)となる。このため、ダイクストラ法では、ネットワークの規模が大きくなると、計算量が急速に増大し、多くのCPUパワーとメモリが必要になる。また、最近では、回線容量や波長など複数の情報を考慮して最短経路を求める研究がなされているが、通常の逐次処理型プロセッサでは個別に最短経路を計算する必要があるため、大幅に計算時間が増加する。本発明に含まれるAMPSAおよびMPSAと、並列リコンフィギュラブルプロセッサとの組合せは、上記の問題を解決できるものである。さらに、ルーティングテーブルを数分に一回あるいは、数十分に一回更新するようなスケジュールにおいて、並列リコンフィギュラブルプロセッサは、他のネットワーク処理、例えば、IPアドレスの最長一致検索などにも有効であり、ハードウェア資源の有効活用という点でも適している。
さらに、本発明に含まれるAMPSAおよびMPSAと、同期型の並列プロセッサとの組合せは、パイプライン処理による独立な計算を可能とする。すなわち、AMPSAおよびMPSAでは、同じネットワーク行列でも、始点ノードが異なると、独立した処理が可能であり、DAPDNAではエレメント単位、さらには、1クロックサイクル単位で、データをパイプラインで処理できる。したがって、スループットが大きく、1始点の場合とほぼ同一計算時間で、n始点の最短経路探索を行うことが可能となる。簡単に説明するために、図17は、エレメント単位でパイプライン処理を行った場合を示している。ノードAを始点とするデータセットAに続いて、ノードBを始点とするデータセットB、ノードCを始点とするデータセットC、ノードDを始点とするデータセットDをパイプライン方式で計算できる。さらに、それに続いて、異なるネットワーク行列のノードEを始点とするデータセットEというように、複数のネットワークについて、最短経路探索を行なうことができる。データセットを構成するデータの組合せを変えなければ、データセットA、B、Cといった順番に特に意味はない。始点の異なるデータセットをランダムに演算ユニット50に構成された回路に供給し、経路探索することができる。
さらに具体的には、DAPDNAに8×8のネットワーク行列の最短経路探索を実行すると、回路構成にも依存するが、480クロック程度を消費する。通常、全点間について最短経路を探索すると、「480クロック×ノード数」かかる。しかしながら、パイプライン処理により、結果が連続的に出力されるので、8×8のネットワーク行列の全点間最短経路探索を行う、すなわち、全ノードを始点として、他の全てのノードに達する最短経路を探索するのに、計487(480+8−1)クロックを費やすだけである。さらに、複数のネットワークについてもパイプラインで処理できるので、例えば、3グループのネットワークの全点間最短経路探索を計503(480+8+8+8−1)クロックで終えることができる。
ネットワークのグループ数が増加した場合、入力されるネットワーク行列の数も増加する。もし、最短経路探索回路を通過するために必要な480クロック以上、連続的にネットワーク行列が入力される場合、すべての入力が終わるまで、最初のデータは2周目の探索に移ることができない。このような場合は、メモリに最初のデータを格納して、パイプラインを延長しても良いし、複数の演算ユニットをシリアルに接続してパイプラインを延長しても良い。また、複数の演算ユニットをパラレルに接続して並列度を上げても良い。
図18に、第1のシステム10において、最短経路探索を行なうアルゴリズムをフローチャートにより示している。ステップ71において、探索対象のネットワーク行列MNの始点ノードの行(ライン)を選択する。ステップ72において、探索対象のラインに含まれるリンクコストの最小値を検出する。ステップ73において、探索対象のラインに含まれるリンクコストから最小値を減算する。ステップ74において、リンクコストがゼロになったリンクの先端のノードを到達ノードとする。ステップ75において、到達ノードが先端のリンクのコスト、すなわち、到達ノードの列のコストを探索対象外とする(無限大とする)。ステップ76において、全ノードに到達していれば、始点ノードから、他の全てのノードに対する最短経路の探索が終了する。全ノードに到達していなければ、ステップ77において、探索対象であったリンクコストは減算後の値とし、さらに、到達ノードを基端とするリンク、すなわち、到達ノードのラインを、探索対象に追加して、ステップ72に戻り、それらの探索対象のラインに含まれるリンクコストの最小値を検出する。
このように、第1のシステム10における第1のプロセスは、ステップ71から77を含み、これらの内、少なくともステップ72から75を並列プロセッサにより並列処理することが望ましい。すなわち、最小値検出(ステップ72)から、再探索用のリンクコストの出力(ステップ75)までの処理70を、並列プロセッサを用いて、各リンクコストに対し並列に行うことが可能である。そして、並列プロセッサを用いて、各リンクコストを並列に処理することにより、パイプライン処理が可能となり、大きなスループットを得ることができる。
図11に戻って、第1のシステム10と、中間の階層の機能(第2の機能)21を含む第2のシステム20は、ネットワーク行列MNが与えられると、それに対して、最小コスト行列MCを求めて上位の機能に提供する。最小コスト行列MCの利用方法は種々であるが、その1つは、小規模のネットワークのノード間の最短コストを上位の階層に提供し、上位の階層でネットワークの再編成を可能とすることである。
第2のシステム20は、第1のシステム10に供給するネットワーク行列MNと、第1のシステム10から得られた経路行列MRと、最短コスト行列MCとを格納するためのメモリ25を含む。第2の機能21は、ネットワーク行列MNと、経路行列MRとから、ある始点ノードから他のノードに至る最短コストを計算するための機能22と、ネットワーク行列に含まれる全てのノードを始点ノードとして、上記の処理を繰り返し、全てのノードから他のノードへ至る最短コストをエレメントとして含む最短コスト行列MCを生成する機能23とを含む。最短コスト行列MCの生成方法については、図9を参照して説明した通りである。
図19に、第2のシステム20において、最短コスト行列MCを得るプロセス(第2のプロセス)をフローチャートにより示している。ステップ91において、始点ノードの指定も含めてネットワーク行列MNを第1のシステム10に供給する。第1のシステム10は、第1のプロセスにより、始点ノードから各ノードに至る最短経路を探索し、経路行列MRを生成する。ステップ92において、第2のシステム20は、第1のシステム10から経路行列MRを取得する。ステップ93において、第2のシステム20は、始点ノードから他のノードに至る最短コストを計算する。ステップ94において、ネットワーク行列MNに含まれる全てのノードを始点ノードとした経路行列MRを得るまで、上記の処理を繰り返す。ステップ95において、ネットワーク行列MNに含まれる全てのノードを始点ノードとした経路行列MRを得られると、ネットワーク行列MNに含まれる各ノードから他の各ノードへ至る最短コストを含む最短コスト行列MCを生成する。
なお、図19では、ループを含むフローチャートにより第2のプロセスを示しているが、異なる始点ノードのネットワーク行列MNは、第1のシステム10において独立処理できる。したがって、ステップ91においては、経路行列MRが取得できるのを待たずに、次々と異なるネットワーク行列MNを第1のシステム10に供給し、第1のシステム10においてパイプライン処理ができるようにすることが望ましい。
図11に戻って、第2のシステム20と、上位階層の機能(第3の機能)31を含む第3のシステム30は、ルーティングプロトコル83により収集されたネットワークの情報から生成された解析対象ネットワーク39を、第2のシステム20により最小コスト行列MCが得られる規模のネットワーク(小規模ネットワーク)に分解し、階層化することにより大規模なネットワークの最短経路探索を可能とする。第3の機能31は、大規模ネットワーク39を複数のグループに分け、さらに階層化することにより、大規模ネットワークを小規模ネットワークの組み合わせで表す機能32と、それら小規模ネットワークのネットワーク行列MNを生成する機能33と、第2のシステム20により、それらのネットワーク行列MNをパイプライン処理することで、高速に最短コスト行列MCを求める機能34とを含む。
図20にグループ化と階層化について模式的に示している。まず、nノードから構成されるネットワーク110を最大mノードずつのグループ111A〜111Dに分割する。本例では、DAPDNAで処理することを前提にしており、最大8ノードずつのグループに分解する。これらが最下層のネットワークのグループとなる。
グループ間を接続するノードを境界ノードBnと呼び、全グループ内の境界ノードBnを抽出する。抽出された境界ノードBnの数がmよりも大きい場合は、再度グループ化を行う。これを繰り返すことにより、図20に示すように、グループ化された小規模のネットワークの階層構造で、大きなネットワークを表すことが可能となる。上の階層のグループ112Aおよび112Bは、下の階層のグループの境界ノードBnのみで構成され、下の層が抽象化して表される。そして、境界ノードBnの数がm以下になると、それらにより最上層のグループ113Aが形成され、最終的に、このグループ113Aのネットワーク行列の最短経路を求めることにより、大規模ネットワークの最短経路を求めることができる。
nノードから構成される大規模ネットワークをmノードから構成される小規模ネットワークに分割して処理することは、ネットワークの接続の局所性を利用して、計算量を減らす点でも有用である。すなわち、nノードから構成される大規模ネットワークのネットワーク行列は、n×nのエレメントを含む。しかしながら、1つのノードがn個のノードに接続していることはないので、エレメントのほとんどのコストは、接続されていないことを示す無限大になる。これに対し、小規模ネットワークに分割することにより、局所的なノード同士のリンクが効率的に、ネットワーク行列に反映され、データ量も低減される。したがって、最短経路の探索に要するハードウェアの規模が縮小されると共に、処理時間も短縮できる。
図21に、説明を簡単にするために、8ノードのネットワークA0を4ノードずつのグループA1およびB1に分割し、それらの境界ノードによりグループA2を生成した例を示している。この例では、ネットワークが2階層で表現されている。
ここで、グループA1に属するノードa11を起点ノードとし、グループB1に属するノードb14を目的地ノードとする最短経路を求める場合を考える。図22に示すように、以下のように処理を進めることができる。
S1.最下層のグループA1のネットワーク行列を生成し、第2のシステム20に供給して、グループA1の最短コスト行列A1cを得る(図22(a))。
S2.最下層のグループB1のネットワーク行列を生成し、第2のシステム20に供給して、グループB1の最短コスト行列B1cを得る(図22(b))。
S3.次に、グループA1とグループB1とを接続するための境界ノードa22、a23およびa24を含む上位層のグループA2のネットワーク行列を生成する(図22(c))。グループA2に含まれる境界ノードa23と境界ノードa24間のリンクコストz9(z12)は、先に求めたグループB1の最短コスト行列に含まれるノードb11からノードb12に至る経路の最短コストy1(y4)となる。境界ノードa22と境界ノードa23間のリンクコストz5および境界ノードa22と境界ノードa24間のリンクコストz6は、解析対象であるオリジナルのネットワークA0の情報として与えられている。
S4.このネットワーク行列を第2のシステム20に供給することにより、上位層のグループA2の最短コスト行列A2cを得る(図22(d))。
S5.グループA2の最短コスト行列A2cより、目的地ノードb14を含むグループB1に含まれる境界ノードa23(b11)および境界ノードa24(b12)について、グループA1に含まれる境界ノードa22(a13)までの最短コストw5およびw6を加算するための行列A2c´を生成する(図22(e))。起点ノードa11を含むグループA1の最短コスト行列A1cより、グループA1に含まれる境界ノードa13(a22)から起点ノードa11までの最短コストx2を加算するための行列A1c´を生成する(図22(f))。
S6.グループB1の最短コスト行列B1cに、行列A2c´および行列A1c´を加算する。これにより、境界ノードa22、a23およびa24を介して、起点ノードa13からグループB1に含まれる各ノードまで経路の各々についてのコストを含むコスト行列A0cが生成される(図22(g))。
S7.目的地ノードb14については、境界ノードa23(b11)を経由した経路のコスト(y3+w5+x2)と、境界ノードa24(b12)を経由した経路のコスト(y6+w6+x2)とが比較され、最小のコストの経路が起点ノードa11から目的地ノードb14に至る最短経路として選択される。同様に、ノードb13を目的地ノードとした最短経路も、コスト行列A0cに含まれる境界ノードa23(b11)を経由した経路のコスト(y2+w5+x2)と、境界ノードa24(b12)を経由した経路のコスト(y5+w6+x2)とを比較することにより決定できる。
図23に、第3のシステム30における処理(第3のプロセス)をフローチャートにより示している。先ず、境界ノードによるネットワークを生成する機能32により大規模ネットワークを階層化して小規模ネットワークを生成する。ステップ121において、解析対象ネットワーク39を、1つのネットワークが最大m個のノードを含む最下層の複数のネットワーク(ノードのグループ)に分解する。ステップ122において、最下位層の複数のネットワークの少なくとも2つのネットワークを接続するための境界ノードによる上位層のネットワークを生成する。ステップ123において、その上位層に含まれる境界ノードの全数が最大値m以下であれば、階層化を終了する。ステップ123において、境界ノードの数が最大値mより多ければ、ステップ124において、さらにグループ化し、境界ノードによる上位層のネットワークを生成する。ステップ122から124を繰り返すことにより、下位層の複数のネットワークの少なくとも2つのネットワークを接続するための境界ノードを最大m個含む上位層のネットワークを生成することができる。大規模ネットワークを小規模ネットワークに階層化したデータは、階層化データ38として保存される。
次に、ネットワーク行列を生成する機能33と、最短コスト行列を取得する機能34により、最下位の小規模ネットワークから順番に最短経路を求め、大規模ネットワークの最短経路を求める。まず、ステップ125において、最下層の複数のネットワークの各々についてネットワーク行列MNを生成する。ステップ126において、それぞれのネットワーク行列を第2のシステム20に供給して、最短コスト行列MCを取得する。ステップ127において、最上層の最短コスト行列MCが求められれば、処理対象ネットワーク39について最短コスト行列MCを求める作業は終了する。
したがって、ステップ129において、処理対象ネットワーク39に含まれる各ノードを目的地ノードとして最短経路を求め、ルーティングテーブル81を更新する。各ノードを目的地ノードとして最短経路を求める方法の一つは上述したものである。すなわち、上位層のネットワークに含まれる複数の境界ノードを介して起点ノードから目的地ノードに至る複数の経路の各々について、最下層の複数のネットワークの中の起点ノードを含むネットワークにおける起点ノードから境界ノードに至る最短コスト、上位層のネットワークに含まれる境界ノード間の最短コスト、および最下層の複数のネットワークの中の目的地ノードを含むネットワークにおける境界ノードから目的地ノードまでの最短コストの和を求める。そして、最短コストの和が最小の経路を起点ノードから目的地ノードまでの最短経路として採用する。
一方、上位層のネットワークが存在する場合は、ステップ128において、最短コスト行列MCに含まれる、上位層のネットワークを生成するための境界ノード間のリンクコストを抽出し、上位層のネットワークのネットワーク行列MNを生成する。
ネットワーク行列MNが生成されると、ステップ126において、第2のシステム20に供給し、最短コスト行列MCを取得する。すなわち、上位層のネットワークについて、各々の境界ノードを始点ノードとして、第2のシステム20(第2のプロセス)により、各境界ノードから他の各境界ノードに至る最短コストを得る。
各ノードを目的地ノードとして最短経路を求める他の方法の1つは、ステップ128において、上位層のネットワークのネットワーク行列MNを生成する際に、下位層のネットワークの情報を含める(畳み込む)ことである。例えば、上位層の境界ノード間のリンクコストとして、他の境界ノードとの最短コストに加え、起点ノードに関連する境界ノードは起点ノードに至る最短コストを含め、また、目的地ノードに関連する境界ノードには、目的地ノードに至る最短コストを含めて、目的地ノード毎に異なる上位層のネットワーク行列を生成することが可能である。この方法では、最上層のネットワーク行列の最短コストを求めることにより、あるいは、起点ノードに関連する境界ノードと目的地ノードに関連する境界ノードとが含まれる上位層のネットワーク行列の最短コストを求めることにより、起点ノードから目的地ノードまでの最短経路を決定することが可能となる。
通常のシーケンシャルプロセッサでn始点の最短経路探索を行うと、1始点に要する計算時間のn倍の計算時間が必要になる。一方、本発明に含まれるアルゴリズムによりDAPDNAを用いて計算すると、パイプライン処理が可能なので、始点が1ノードでもnノードでも計算時間はほとんど増加しない。基本的には、nノードの増加は、nクロックの処理時間の増加で処理できる。1グループあたり8ノードとして演算回路を設計した場合、1グループのノード数は計算量にほとんど依存しない。1グループの平均境界ノード数を2とすると、nノードのネットワークのグループ数Sは、図24に示す式で与えられる。1始点の場合に必要な計算クロック数をaとすると、n始点の計算クロック数は、通常の逐次処理型プロセッサではn×aであるのに対し、並列処理プロセッサを用いた提案アルゴリズムでは(a+8S−1)で計算可能である。その差は、図25に示すように顕著であり、本発明に含まれる最短経路の探索方法は、ノードの数が多いほど効果的であることが分かる。
ダイクストラ法の概要を説明するための図。 本発明に含まれる最短経路探索方法を説明するための図であって、図2(a)はノードAを始点ノードとするネットワーク構成、図2(b)はネットワーク行列、図2(c)は経路行列を示す。 図2に続き、図3(a)はノードCに到達した状態のネットワーク、図3(b)はネットワーク行列、図3(c)は経路行列を示す。 図3に続き、図4(a)は次のノードを探索する状態のネットワーク、図4(b)はネットワーク行列、図4(c)は経路行列を示す。 図4に続き、図5(a)はノードBに到達した状態のネットワーク、図5(b)はネットワーク行列、図5(c)は経路行列を示す。 図5に続き、図6(a)は次のノードを探索する状態のネットワーク、図6(b)はネットワーク行列、図6(c)は経路行列を示す。 図6に続き、図7(a)はノードDに到達した状態のネットワーク、図7(b)はネットワーク行列、図7(c)は経路行列を示す。 図7に続き、図8(a)は探索が終了した状態のネットワーク、図8(b)はネットワーク行列、図8(c)は経路行列を示す。 最短コスト行列を求める様子を示す。 異なるネットワークの例であり、図10(a)はネットワーク構成、図10(b)はネットワーク行列、図10(c)は経路行列を示す。 ルータの概略構成を示す。 再構成可能なプロセッサの概略構成を示す。 図12に示すプロセッサに含まれるPEの概略構成を示す。 図12に示すプロセッサに回路が構成された状態を示す。 ネットワーク行列を入力するためのデータフォーマットを示す。 ネットワーク行列を入力するためのデータへ変換する様子を示す。 図12に示すプロセッサにおいてパイプライン処理が行われる様子を示す。 第1のシステムのプロセスを示すフローチャート。 第2のシステムのプロセスを示すフローチャート。 ネットワークを階層化する様子を示す。 説明のために簡易に示した階層構造を示す。 図21に示す階層化したネットワークにおいて、最短経路を求める様子を示す。 第3のシステムのプロセスを示すフローチャート。 階層化により生成されるグループ数を示す。 性能評価を示すグラフ(横軸はノードの数を示し、縦軸は計算時間(サイクル)を示す)。
符号の説明
10 第1のシステム、 20 第2のシステム、 30 第3のシステム
50 演算ユニット
100 ルータ

Claims (24)

  1. 複数のノードにより構成されるネットワークに含まれる始点ノードから他のノードへ至る最短経路を、ネットワーク行列を用いて探索するための第1のシステムであって、
    前記ネットワーク行列は、当該ネットワークに含まれる各ノードを基端とし、基端のノードに繋がる他のノードを先端とする各リンクのコストを含み、
    当該第1のシステムは、複数の回路を構成するための演算ユニットを有し、前記複数の回路は、前記ネットワーク行列に含まれる探索対象のリンクのコストから第1の値を減算することと、
    減算によりコストがゼロになる前記探索対象のリンクの先端のノードを到達ノードとすることと、
    前記ネットワーク行列に含まれるリンクの内、前記到達ノードを先端とするリンクのコストを探索対象外の値に変更することと、
    減算によりコストがゼロにならない前記探索対象のリンクのコストの減算後の値を、継続探索対象のリンクのコストとすることとを実行するための回路を含み、さらに、
    当該第1のシステムは、前記ネットワーク行列に含まれる、前記始点ノードを基端とするリンクのコストを、前記探索対象のリンクのコストとして、前記演算ユニットに初期入力するための手段と、
    前記継続探索対象のリンクのコストと、前記ネットワーク行列に含まれる前記到達ノードを基端とするリンクのコストとを、前記探索対象のリンクのコストとして、前記演算ユニットに再入力するための手段とを有する第1のシステム。
  2. 請求項1において、
    前記演算ユニットは、前記探索対象のリンクのコストの最小値を検出して前記第1の値とする回路を含む、第1のシステム。
  3. 請求項1において、
    前記第1の値が、前記探索対象のリンクのコストの最小単位である、第1のシステム。
  4. 請求項1において、
    前記始点ノードから到達可能な前記他のノードの全てが前記到達ノードになるまで前記演算ユニットへの前記再入力を繰り返し、前記始点ノードから前記他のノードへ至る最短経路を得るための第1の機能をさらに有する第1のシステム。
  5. 請求項4において、
    前記演算ユニットは、前記探索対象のリンクのコストの最小値を検出して前記第1の値とする回路を含み、
    前記第1の機能は、前記ネットワーク行列に含まれる、前記始点ノードに対する前記他のノードの数だけ、前記演算ユニットへの前記再入力を繰り返す、第1のシステム。
  6. 請求項4において、
    前記第1の機能は、さらに、前記ネットワーク行列に含まれる全てのノードを前記始点ノードとして、前記演算ユニットへの前記初期入力を繰り返し、前記ネットワーク行列に含まれる各ノードから他の各ノードへ至る最短経路を得る、第1のシステム。
  7. 複数のノードにより構成されるネットワークに含まれる始点ノードから他のノードへ至る最短コストを求める第2のシステムであって、
    請求項4に記載の第1のシステムと、
    前記第1の機能により得られた最短経路と、前記ネットワーク行列とにより、前記始点ノードから前記他のノードへ至る最短コストを得るための第2の機能とを有する第2のシステム。
  8. 請求項7において、
    前記第2の機能は、さらに、前記ネットワーク行列に含まれる全てのノードを前記始点ノードとした最短経路を取得し、前記ネットワーク行列に含まれる各ノードから他の各ノードへ至る最短コストを得る、第2のシステム。
  9. 請求項7に記載の第2のシステムと、
    n個のノードを含む解析対象ネットワークの中の起点ノードから目的地ノードに至る最短経路を得るための第3の機能とを有し、
    前記演算ユニットは、最大m個のノードについて演算可能であり、
    この第3の機能は、
    前記解析対象ネットワークを、1つのネットワークが最大m個のノードを含む最下層の複数のネットワークに分解することと、
    下位層の複数のネットワークの少なくとも2つのネットワークを接続するための境界ノードを最大m個含む上位層のネットワークを生成することと、
    前記最下層の複数のネットワークの各々について前記ネットワーク行列を生成することと、
    前記第2の機能により、各ノードから他の各ノードへ至る最短コストを得ることと、
    前記上位層のネットワークについて、他の境界ノードとの最短コストをリンクのコストとして含む上位層のネットワーク行列を生成することと、
    前記上位層のネットワークについて、各々の境界ノードを前記始点ノードとして、前記第2の機能により、各境界ノードから他の各境界ノードに至る最短コストを得ることとを含む、第3のシステム。
  10. 請求項9において、
    前記第3の機能は、前記上位層のネットワークに含まれる複数の境界ノードを介して前記起点ノードから前記目的地ノードに至る複数の経路の各々について、前記最下層の複数のネットワークの中の前記起点ノードを含むネットワークにおける前記起点ノードから境界ノードに至る最短コスト、前記上位層のネットワークに含まれる境界ノード間の最短コスト、および前記最下層の複数のネットワークの中の前記目的地ノードを含むネットワークにおける境界ノードから前記目的地ノードまでの最短コストの和を求めることと、
    前記最短コストの和が最小の経路を得ることとを、さらに含む、第3のシステム。
  11. 請求項9において、
    コンピュータネットワークに接続され、パケットを送出するネクストホップを選択する機能を備えたルーティングユニットを有し、
    前記選択する機能は、
    ルーティングテーブルに基づき、前記ネクストホップを選択することと、
    ルーティングプロトコルにより、前記ネクストホップを含むコンピュータネットワークの情報を取得し、前記解析対象ネットワークとして認識し、前記第3の機能により、前記ルーティングテーブルを更新することとを含む、第3のシステム。
  12. 演算ユニットを用い、複数のノードにより構成されるネットワークに含まれる始点ノードから他のノードへ至る最短経路を探索する第1のプロセスを有する方法であって、
    前記第1のプロセスは、
    当該ネットワークに含まれる各ノードを基端とし、基端のノードに繋がる他のノードを先端とする各リンクのコストを含むネットワーク行列を取得することと、
    演算ユニットに複数の回路を構成することとを含み、
    前記複数の回路は、前記ネットワーク行列に含まれる探索対象のリンクのコストから第1の値を減算することと、
    減算によりコストがゼロになる前記探索対象のリンクの先端のノードを到達ノードとすることと、
    前記ネットワーク行列に含まれるリンクの内、前記到達ノードを先端とするリンクのコストを探索対象外の値に変更することと、
    減算によりコストがゼロにならない前記探索対象のリンクのコストの減算後の値を、継続探索対象のリンクのコストとすることとを実行するための回路を含み、
    前記第1のプロセスは、さらに、
    前記ネットワーク行列に含まれる、前記始点ノードを基端とするリンクのコストを、前記探索対象のリンクのコストとして、前記演算ユニットに初期入力することと、
    前記継続探索対象のリンクのコストと、前記ネットワーク行列に含まれる前記到達ノードを基端とするリンクのコストとを、前記探索対象のリンクのコストとして、前記演算ユニットに再入力することとを含む、方法。
  13. 演算ユニットを用い、複数のノードにより構成されるネットワークに含まれる始点ノードから他のノードへ至る最短経路を探索する第1のプロセスを有する方法であって、
    当該ネットワークに含まれる各ノードを基端とし、基端のノードに繋がる他のノードを先端とする各リンクのコストを含むネットワーク行列を用いることを含み、
    演算ユニットは、前記ネットワーク行列に含まれる探索対象のリンクのコストから第1の値を減算することと、
    減算によりコストがゼロになる前記探索対象のリンクの先端のノードを到達ノードとすることと、
    前記ネットワーク行列に含まれるリンクの内、前記到達ノードを先端とするリンクのコストを探索対象外の値に変更することと、
    減算によりコストがゼロにならない前記探索対象のリンクのコストの減算後の値を、継続探索対象のリンクのコストとすることとを実行するための回路を含み、
    前記第1のプロセスは、
    前記ネットワーク行列に含まれる、前記始点ノードを基端とするリンクのコストを、前記探索対象のリンクのコストとして、前記演算ユニットに初期入力することと、
    前記継続探索対象のリンクのコストと、前記ネットワーク行列に含まれる前記到達ノードを基端とするリンクのコストとを、前記探索対象のリンクのコストとして、前記演算ユニットに再入力することとを含む、方法。
  14. 請求項13において、前記第1のプロセスは、
    前記始点ノードから到達可能な前記他のノードの全てが前記到達ノードになるまで前記演算ユニットへの前記再入力を繰り返し、前記始点ノードから前記他のノードへ至る最短経路を得ることをさらに含む、方法。
  15. 請求項14において、
    前記演算ユニットは、前記探索対象のリンクのコストの最小値を検出して前記第1の値とする回路を含み、
    前記第1のプロセスの前記最短経路を得るステップでは、前記ネットワーク行列に含まれる、前記始点ノードに対する前記他のノードの数だけ、前記演算ユニットへの前記再入力を繰り返す、方法。
  16. 請求項13において、前記第1のプロセスは、
    前記ネットワーク行列に含まれる全てのノードを前記始点ノードとして、前記演算ユニットへの前記初期入力を繰り返し、前記ネットワーク行列に含まれる各ノードから他の各ノードへ至る最短経路を得ることをさらに有する、方法。
  17. 請求項14において、
    複数のノードにより構成されるネットワークに含まれる始点ノードから他のノードへ至る最短コストを求める第2のプロセスを有し、
    前記第2のプロセスは、
    前記第1のプロセスにより最短経路を得ることと、
    得られた最短経路と、前記ネットワーク行列とにより、前記始点ノードから前記他のノードへ至る最短コストを得ることとを含む、方法。
  18. 請求項17において、前記第2のプロセスは、
    前記ネットワーク行列に含まれる全てのノードを前記始点ノードとした最短経路を取得し、前記ネットワーク行列に含まれる各ノードから他の各ノードへ至る最短コストを得ることをさらに含む、方法。
  19. 請求項18において、
    n個のノードを含む解析対象ネットワークの中の起点ノードから目的地ノードに至る最短経路を得る第3のプロセスを有し、
    前記演算ユニットは、最大m個のノードについて演算可能であり、
    前記第3のプロセスは、
    前記解析対象ネットワークを、1つのネットワークが最大m個のノードを含む最下層の複数のネットワークに分解することと、
    下位層の複数のネットワークの少なくとも2つのネットワークを接続するための境界ノードを最大m個含む上位層のネットワークを生成することと、
    前記最下層の複数のネットワークの各々について前記ネットワーク行列を生成することと、
    前記第2のプロセスにより、各ノードから他の各ノードへ至る最短コストを得ることと、
    前記上位層のネットワークについて、他の境界ノードとの最短コストをリンクのコストとして含む上位層のネットワーク行列を生成することと、
    前記上位層のネットワークについて、各々の境界ノードを前記始点ノードとして、前記第2のプロセスにより、各境界ノードから他の各境界ノードに至る最短コストを得ることとを含む、方法。
  20. 請求項19において、
    前記第3のプロセスは、
    前記上位層のネットワークに含まれる複数の境界ノードを介して前記起点ノードから前記目的地ノードに至る複数の経路の各々について、前記最下層の複数のネットワークの中の前記起点ノードを含むネットワークにおける前記起点ノードから境界ノードに至る最短コスト、前記上位層のネットワークに含まれる境界ノード間の最短コスト、および前記最下層の複数のネットワークの中の前記目的地ノードを含むネットワークにおける境界ノードから前記目的地ノードまでの最短コストの和を求めることと、
    前記最短コストの和が最小の経路を得ることとを、さらに含む、方法。
  21. 請求項19において、
    コンピュータネットワークに接続され、パケットを送出するネクストホップを選択するプロセスを有する方法であって、
    前記選択するプロセスは、
    ルーティングテーブルに基づき、前記ネクストホップを選択することと、
    ルーティングプロトコルにより、前記ネクストホップを含むコンピュータネットワークの情報を取得し、前記解析対象ネットワークとして認識し、前記第3のプロセスにより、前記ルーティングテーブルを更新することとを含む、方法。
  22. 複数のノードにより構成されるネットワークに含まれる始点ノードから他のノードへ至る最短経路を探索する方法であって、
    当該ネットワークに含まれる各ノードを基端とし、基端のノードに繋がる他のノードを先端とする各リンクのコストを含むネットワーク行列を用いることを含み、
    前記ネットワーク行列に含まれる探索対象のリンクのコストから第1の値を減算することと、
    減算によりコストがゼロになる前記探索対象のリンクの先端のノードを到達ノードとすることと、
    前記ネットワーク行列に含まれるリンクの内、前記到達ノードを先端とするリンクのコストを探索対象外の値に変更することと、
    減算によりコストがゼロにならない前記探索対象のリンクのコストの減算後の値を、継続探索対象のリンクのコストとし、この継続探索対象のリンクのコストと、前記ネットワーク行列に含まれる前記到達ノードを基端とするリンクのコストとを、前記探索対象のリンクのコストとし、前記減算するステップに戻ることとを含む、方法。
  23. 請求項22において、
    前記減算するステップにおいては、前記探索対象のリンクのコストの最小値を前記第1の値とする、方法。
  24. 請求項22において、
    前記減算するステップにおいては、前記探索対象のリンクのコストの最小単位を前記第1の値とする、方法。
JP2006134639A 2006-05-15 2006-05-15 ネットワークに含まれるノード間の最短経路を探索するためのシステムおよび方法 Expired - Fee Related JP4734539B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2006134639A JP4734539B2 (ja) 2006-05-15 2006-05-15 ネットワークに含まれるノード間の最短経路を探索するためのシステムおよび方法
US11/603,995 US20070263544A1 (en) 2006-05-15 2006-11-21 System and method for finding shortest paths between nodes included in a network

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006134639A JP4734539B2 (ja) 2006-05-15 2006-05-15 ネットワークに含まれるノード間の最短経路を探索するためのシステムおよび方法

Publications (2)

Publication Number Publication Date
JP2007306442A true JP2007306442A (ja) 2007-11-22
JP4734539B2 JP4734539B2 (ja) 2011-07-27

Family

ID=38684995

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006134639A Expired - Fee Related JP4734539B2 (ja) 2006-05-15 2006-05-15 ネットワークに含まれるノード間の最短経路を探索するためのシステムおよび方法

Country Status (2)

Country Link
US (1) US20070263544A1 (ja)
JP (1) JP4734539B2 (ja)

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009141425A (ja) * 2007-12-03 2009-06-25 Ip Flex Kk ネットワークに含まれるノード間の経路を探索するためのシステムおよび方法
JP2009281942A (ja) * 2008-05-23 2009-12-03 Sony Computer Entertainment Inc 経路探索装置、経路探索方法及びプログラム
JP2010034792A (ja) * 2008-07-28 2010-02-12 Keio Gijuku ネットワークの電源制御方法及びネットワークの電源制御装置
JP2010257115A (ja) * 2009-04-23 2010-11-11 Toyota Motor Corp 経路探索装置、経路探索方法、及び自律移動体
JP2012222371A (ja) * 2011-04-04 2012-11-12 Mitsubishi Electric Corp ネットワーク管理装置及びネットワーク管理方法及びプログラム
WO2015064683A1 (ja) * 2013-10-30 2015-05-07 日本電気株式会社 経路計算装置、経路計算方法およびプログラム
JP2015204624A (ja) * 2014-04-10 2015-11-16 富士通株式会社 メモリ効率のよいマトリックスに基づく光経路計算
JP2019139576A (ja) * 2018-02-13 2019-08-22 富士通株式会社 最短経路行列生成プログラム、装置、及び方法
JP2019200058A (ja) * 2018-05-14 2019-11-21 株式会社ナビタイムジャパン 情報処理システム、情報処理プログラム、情報処理装置及び情報処理方法
JP2022510569A (ja) * 2018-11-13 2022-01-27 バンティック インコーポレイテッド 分散型コンピューティングのためのメッシュベースのイベントブローカー

Families Citing this family (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2370380B (en) 2000-12-19 2003-12-31 Picochip Designs Ltd Processor architecture
GB2454865B (en) 2007-11-05 2012-06-13 Picochip Designs Ltd Power control
US8228954B2 (en) * 2007-11-13 2012-07-24 Cisco Technology, Inc. Routing operations using sensor data
US7860012B2 (en) * 2007-12-18 2010-12-28 Michael Asher Employing parallel processing for routing calls
US8761022B2 (en) * 2007-12-26 2014-06-24 Rockstar Consortium Us Lp Tie-breaking in shortest path determination
GB2457310B (en) * 2008-02-11 2012-03-21 Picochip Designs Ltd Signal routing in processor arrays
WO2009148021A1 (ja) * 2008-06-03 2009-12-10 株式会社日立製作所 パケット解析装置
JP5125940B2 (ja) * 2008-09-25 2013-01-23 日本電気株式会社 経路計算システム、ネットワークマネージメントシステム、経路計算方法、及び経路計算プログラム
WO2010100517A1 (en) * 2009-03-03 2010-09-10 Telefonaktiebolaget L M Ericsson (Publ) Multicast interworking systems and methods
GB2470037B (en) 2009-05-07 2013-07-10 Picochip Designs Ltd Methods and devices for reducing interference in an uplink
GB2470891B (en) 2009-06-05 2013-11-27 Picochip Designs Ltd A method and device in a communication network
GB2470771B (en) 2009-06-05 2012-07-18 Picochip Designs Ltd A method and device in a communication network
US8879419B2 (en) 2009-07-28 2014-11-04 Centurylink Intellectual Property Llc System and method for registering an IP telephone
GB2474071B (en) 2009-10-05 2013-08-07 Picochip Designs Ltd Femtocell base station
GB2482869B (en) 2010-08-16 2013-11-06 Picochip Designs Ltd Femtocell access control
GB2489919B (en) 2011-04-05 2018-02-14 Intel Corp Filter
GB2489716B (en) 2011-04-05 2015-06-24 Intel Corp Multimode base system
GB2491098B (en) 2011-05-16 2015-05-20 Intel Corp Accessing a base station
US9590856B1 (en) * 2011-07-08 2017-03-07 The Boeing Company Multicast stream mapping
CN103685035B (zh) * 2012-09-26 2018-04-27 深圳市腾讯计算机系统有限公司 路由更新方法、交换机及系统
JP2014103514A (ja) * 2012-11-19 2014-06-05 Toshiba Corp 通信装置、通信システムおよびプログラム
JP6054224B2 (ja) * 2013-03-25 2016-12-27 株式会社東芝 通信装置、通信システム、通信方法およびプログラム
EP3031183B1 (en) * 2013-08-05 2019-01-16 Telefonaktiebolaget LM Ericsson (publ) Method and apparatus for operating routing device and relevant routing device
KR20150034627A (ko) * 2013-09-26 2015-04-03 주식회사 케이티 플로우 테이블을 업데이트하는 방법
US9507932B2 (en) 2014-09-12 2016-11-29 Alcatel Lucent Policy enforcement in a topology abstraction system
US9667499B2 (en) * 2014-09-12 2017-05-30 Alcatel Lucent Sparsification of pairwise cost information
US9893804B1 (en) 2016-09-12 2018-02-13 Fujitsu Limited Credit based approach to optimizing optical transmission
US10014971B2 (en) * 2016-09-12 2018-07-03 Fujitsu Limited Credit based approach to calculating optical paths
US10678793B2 (en) * 2016-11-17 2020-06-09 Sap Se Document store with non-uniform memory access aware high performance query processing
US10248925B2 (en) 2016-12-06 2019-04-02 Walmart Apollo, Llc Systems and methods for compressing shortest path matrices for delivery route optimization
US11226797B2 (en) * 2018-05-24 2022-01-18 Chaldal, Inc. Representation and analysis of workflows using abstract syntax trees
WO2020033559A1 (en) * 2018-08-07 2020-02-13 Walmart Apollo, Llc System and method for structure and attribute based graph partitioning
WO2023206395A1 (zh) * 2022-04-29 2023-11-02 华为技术有限公司 一种网络路径的计算方法及网络设备

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS62168267A (ja) * 1985-09-20 1987-07-24 Hitachi Ltd 最短経路長算出方式
JP2007019852A (ja) * 2005-07-07 2007-01-25 Nippon Telegr & Teleph Corp <Ntt> 階層分散型ルーティング方法とその管理装置

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5754543A (en) * 1996-07-03 1998-05-19 Alcatel Data Networks, Inc. Connectivity matrix-based multi-cost routing
US6999423B2 (en) * 2001-11-27 2006-02-14 L-3 Communications Corp. Link order replacement optimization

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS62168267A (ja) * 1985-09-20 1987-07-24 Hitachi Ltd 最短経路長算出方式
JP2007019852A (ja) * 2005-07-07 2007-01-25 Nippon Telegr & Teleph Corp <Ntt> 階層分散型ルーティング方法とその管理装置

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009141425A (ja) * 2007-12-03 2009-06-25 Ip Flex Kk ネットワークに含まれるノード間の経路を探索するためのシステムおよび方法
JP2009281942A (ja) * 2008-05-23 2009-12-03 Sony Computer Entertainment Inc 経路探索装置、経路探索方法及びプログラム
JP2010034792A (ja) * 2008-07-28 2010-02-12 Keio Gijuku ネットワークの電源制御方法及びネットワークの電源制御装置
JP2010257115A (ja) * 2009-04-23 2010-11-11 Toyota Motor Corp 経路探索装置、経路探索方法、及び自律移動体
JP2012222371A (ja) * 2011-04-04 2012-11-12 Mitsubishi Electric Corp ネットワーク管理装置及びネットワーク管理方法及びプログラム
WO2015064683A1 (ja) * 2013-10-30 2015-05-07 日本電気株式会社 経路計算装置、経路計算方法およびプログラム
JP2015204624A (ja) * 2014-04-10 2015-11-16 富士通株式会社 メモリ効率のよいマトリックスに基づく光経路計算
JP2019139576A (ja) * 2018-02-13 2019-08-22 富士通株式会社 最短経路行列生成プログラム、装置、及び方法
JP2019200058A (ja) * 2018-05-14 2019-11-21 株式会社ナビタイムジャパン 情報処理システム、情報処理プログラム、情報処理装置及び情報処理方法
JP7198473B2 (ja) 2018-05-14 2023-01-04 株式会社ナビタイムジャパン 情報処理システム、情報処理プログラム、情報処理装置及び情報処理方法
JP2022510569A (ja) * 2018-11-13 2022-01-27 バンティック インコーポレイテッド 分散型コンピューティングのためのメッシュベースのイベントブローカー
US11829801B2 (en) 2018-11-13 2023-11-28 Vantiq, Inc. Mesh agents for distributed computing
JP7483703B2 (ja) 2018-11-13 2024-05-15 バンティック インコーポレイテッド 分散型コンピューティングのためのメッシュベースのイベントブローカー

Also Published As

Publication number Publication date
US20070263544A1 (en) 2007-11-15
JP4734539B2 (ja) 2011-07-27

Similar Documents

Publication Publication Date Title
JP4734539B2 (ja) ネットワークに含まれるノード間の最短経路を探索するためのシステムおよび方法
US8601423B1 (en) Asymmetric mesh NoC topologies
US8042087B2 (en) Method to design network-on-chip (NOC)-based communication systems
KR101652490B1 (ko) 자동 noc 토폴로지 생성
JP2013504272A (ja) 複数の等コストパスから選択するための方法および装置
US20230327976A1 (en) Deadlock-free multipath routing for direct interconnect networks
Zhou et al. Application-specific 3D network-on-chip design using simulated allocation
US20180197110A1 (en) Metrics to Train Machine Learning Predictor for NoC Construction
Rahmati et al. Power-efficient deterministic and adaptive routing in torus networks-on-chip
JP4894013B2 (ja) ネットワークに含まれるノード間の経路を探索するためのシステムおよび方法
KR102594944B1 (ko) 교착상태없는 변환을 위한 네트워크 온칩의 합성을 위한 시스템 및 방법
CN115208770B (zh) 用于实现网络规划的方法、设备和计算机可读介质
Kurokawa et al. Xy based fault-tolerant routing with the passage of faulty nodes
Truong et al. Distributed shortcut networks: Low-latency low-degree non-random topologies targeting the diameter and cable length trade-off
JP2010193224A (ja) ネットワーク設計装置、ネットワーク設計方法、およびプログラム
Inam et al. Shortest path routing algorithm for hierarchical interconnection network-on-chip
GB2537085A (en) Determining bandwidth requirements for network services
Mukherjee et al. Low Power Low Latency Floorplan‐aware Path Synthesis in Application-Specific Network-on-Chip Design
Ababei Efficient congestion-oriented custom network-on-chip topology synthesis
Alja'Afreh et al. Incorporating MPLS for Better SoC Utilization and Traffic Engineering
Shimizu et al. A prototype of a dynamically reconfigurable processor based off-loading engine for accelerating the shortest path calculation with GNU Zebra
JP5001996B2 (ja) 経路計算装置、経路計算方法およびプログラム
Kullu et al. Mapping application‐specific topology to mesh topology with reconfigurable switches
Lin et al. Routing Algorithms for Irregular Mesh-Based Network-on-Chip
Azampanah et al. Traffic-aware selection strategy for application-specific 3D NoC

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090427

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090428

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20100303

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20100303

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100427

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20101202

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20101215

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110214

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20110228

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110324

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140513

Year of fee payment: 3

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees