JP6236375B2 - マルチキャスト経路探索装置および方法 - Google Patents

マルチキャスト経路探索装置および方法 Download PDF

Info

Publication number
JP6236375B2
JP6236375B2 JP2014231001A JP2014231001A JP6236375B2 JP 6236375 B2 JP6236375 B2 JP 6236375B2 JP 2014231001 A JP2014231001 A JP 2014231001A JP 2014231001 A JP2014231001 A JP 2014231001A JP 6236375 B2 JP6236375 B2 JP 6236375B2
Authority
JP
Japan
Prior art keywords
agent
branch
multicast
derived
cost
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.)
Active
Application number
JP2014231001A
Other languages
English (en)
Other versions
JP2016096432A (ja
Inventor
洋 松浦
洋 松浦
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.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone Corp
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 Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP2014231001A priority Critical patent/JP6236375B2/ja
Publication of JP2016096432A publication Critical patent/JP2016096432A/ja
Application granted granted Critical
Publication of JP6236375B2 publication Critical patent/JP6236375B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Description

この発明は、マルチキャスト通信で使用するマルチキャストツリーを生成するためのマルチキャスト経路探索装置および方法に関する。
IP(Internet Protocol)ネットワークでは、マルチキャスト動画ストリーミングに代表される放送型サービスの要求が高まっており、この種のサービスを実施するにはツリーを構成するすべてのリンクコストの合計が最小になるようなマルチキャストツリーを作成する必要がある。
マルチキャストツリーを生成するアルゴリズムとしては、例えばBBMC(Branch-Based Multi-Cast)アルゴリズムが知られている。BBMCアルゴリズムは、複数のノードとこれら複数のノード間を接続する複数の方向性リンク(リンクの方向によりリンクコストが異なるリンク)とにより構成されるネットワーク上おいて、先ずマルチキャスト始点ノードのみから始まるマルチキャストツリーを定義し、当該マルチキャストツリーからまだ経路が決まっていないマルチキャスト終点ノード集合の1終点ノードに辿り着く最短経路を新ブランチとしてマルチキャストツリーに加え、この処理を最終的にすべてのマルチキャストツリーブランチが決まるまで繰り返すアルゴリズムである(例えば非特許文献1を参照)。
図6は、BBMCアルゴリズムの処理手順と処理内容を示すフローチャートである。先ずステップS100において、アルゴリズムの初期条件として、マルチキャストの終点ノード集合Eと、リンクの始点ノードとしてステップS101で利用される始点ノード集合Vと、ブランチ候補の集合を表すBCL(Branch Candidate リスト)と、最終的なツリーを構成するブランチの集合Rが記憶部に記憶される。このうちBCLおよびRは、初期値として空集合に設定される。また、始点ノード集合Vにはマルチキャスト始点ノードのみが格納される。
マルチキャストツリーを作成するネットワークの各ノードの属性情報は、図5に示すBBMCルーティングモジュールに示すようにノード情報記憶部202に記憶される。“reached属性”は当該ノードがマルチキャストツリーの構成要素になったかを示すもので、アルゴリズムの最初では始点ノードのみがマルチキャストツリーに含まれるので“yes”に設定され、他ノードはすべて“no”に設定される。“ノードまでの最短ブランチ候補とそのコスト”は、アルゴリズム開始時の初期値として“最短ブランチ候補”=φ、“最短ブランチ候補コスト”=∞に設定される。
ステップS101では始点ノード集合V内の各ノードから発するリンクを選択し、当該リンクからブランチ候補を作成する。その際、ブランチ終点がマルチキャストの終点ノード集合Eに記憶されたマルチキャスト終点の場合、つまり直前のステップS103で“yes”と判定された場合には、当該リンクがそのままブランチ候補になる。これに対し、マルチキャスト終点でない場合、つまりステップS103=“no”の場合には、当該リンクを直前のステップS102で選択された最短ブランチ候補の後に繋げた経路がブランチ候補になる。
アルゴリズムの第1ルーチンでは、リンクがそのまま新規ブランチ候補になる。この新規ブランチ候補の作成処理は、始点ノード集合Vに格納されたノードから発するすべてのリンクについて行われるが、リンクの終点ノードの“reached属性”が“yes”の場合には、そのノードはすでにマルチキャストツリーに含まれることになるので、ブランチ候補にはならない。
これに対し、“reached属性”が“no”の場合で、終点ノード属性の“最短ブランチ候補コスト”に格納されているブランチコストが新規ブランチ候補のブランチコストより大きい場合には、新規ブランチ候補がブランチ候補集合BCLに登録される。新規ブランチ候補がブランチ候補集合BCLに登録される場合、当該新規ブランチ候補の終点ノードの“最短ブランチ候補”が空集合の場合には、ブランチ候補の集合BCLから削除されるブランチ候補はない。しかし、“最短ブランチ候補”が存在する場合には、当該ブランチ候補がブランチ候補の集合BCLから削除される。また、上記新規ブランチ候補が登録されると、“最短ブランチ候補”および“最短ブランチ候補コスト”の値は、新規ブランチ候補とその経路コストの値に置き換えられる。
“最短ブランチ候補コスト”に格納されているブランチコストが新規ブランチ候補のブランチコスト以下の場合には、新規ブランチ候補はブランチ候補の集合BCLに格納されず、BCLから削除されるブランチ候補も存在しない。また、当該ノードの“最短ブランチ候補”と“最短ブランチ候補コスト”の値は変化しない。
ステップS102では、ブランチ候補の集合BCL内の最短ブランチ候補、つまりBCL内で最もブランチコストが小さいブランチ候補を取り出す。その際、当該最短ブランチ候補の終点ノードの属性中の“当該ノードまでの最短ブランチ候補”を空集合に設定する。また、当該最短ブランチ候補の終点ノードを始点ノード集合V内の既存ノード集合と置き換えてVに格納する。
ステップS103では、ステップS102で選択した最短ブランチ候補の終点ノードが、マルチキャストの終点ノード集合Eにマルチキャスト終点ノードとして存在するかどうかを判断し、存在すればステップS104へ進み、存在しなければステップS101に戻る。
ステップS104ではステップS102で選択された最短ブランチ候補を新ブランチとして集合Rに格納するとともに、当該新ブランチの終点ノードを終点ノード集合Eから削除する。
ステップS105では、終点ノード集合Eが空集合かどうかを判断し、空集合であればすべてのマルチキャスト終点までのブランチが得られたことと同値であるため、アルゴリズムを終了する。これに対し空集合でない場合には、ステップS106へ進む。
ステップS106では、現在新ブランチの終点ノードが格納されている始点ノード集合V内のノード集合を、ステップS104でブランチ集合Rに格納された新ブランチ上の始点を除くすべてのノード集合に置き換える。また、始点ノード集合V内のノード集合に含まれるすべてのノードの“reached属性”を“yes”に設定する。
H. Matsuura, "Improvement of Steiner Tree Algorithm: Branch-Based Multi-Cast", IEICE Transaction on Information and Systems, vol. E96-D, no. 12, pp. 2743-2752, Dec. 2013
ところが、上記のBBMCアルゴリズムは、時として最小木コストから程遠いツリーを作成してしまう場合がある。図7にその一例を示す。同図において、BBMCでマルチキャストツリーを作成する対象となるネットワークは、マルチキャストツリー始点ノードがs、終点ノードがe1〜e3、その他のノードがn1〜n4で示されている。各ノード間にはリンクがあるが、リンク上の矢印はそのリンクの方向を示し、リンクの横の数はそのリンクコストを示している。
図7(1)は、BBMCアルゴリズムがステップS101で始点ノード集合Vに設定されたノードsから発するリンクをブランチ候補としてブランチ候補の集合BCLに登録した結果を示している。この場合、ブランチ候補s−n2が最もブランチコストが小さいブランチ候補なので、s−n2が図6に示すステップS102でブランチ候補の集合BCLから取り出されて、始点ノード集合Vがn2に置き換えられる。ステップS103でn2が終点ノードEに属さないため、ステップS101に処理が移る。
図7(2)は、BBMCが2度目のステップS101でn2から発するリンクをs−n2に繋げたブランチ候補をブランチ候補の集合BCLに登録する処理を示している。s−n2−e2はe2までの初のブランチ候補なので、ブランチ候補の集合BCLに登録される。しかし、s−n2−n1はブランチコストが“6”であり、すでにn1のノード情報記憶部202に格納されている最短ブランチ候補s−n1のブランチコスト“5”よりも大きいため、ブランチ候補の集合BCLに登録されない。s−n2−e1はe1までの初のブランチ候補なので、ブランチ候補の集合BCLに登録される。結果として、ブランチ候補の集合BCLの中でs−n2−e1が最もブランチコストが小さいので、ブランチ候補の集合BCLから取り出され、ステップS103でe1がマルチキャスト終点ノードであるため、ステップS104でs−n2−e1がブランチ集合Rに格納される。この時点で終点ノード集合Eからe1が削除されるため、E={e2,e3}となるが、まだ空集合ではないのでステップS106に進み、始点ノード集合V内のノードにn2、e1が格納され、結果としてV={n2,e1}となり、ステップS101に戻る。
図7(3)は、BBMCが3度目のステップS101でノードn2とe1から発するリンクを新ブランチ候補としてブランチ候補の集合BCLに登録する処理を示している。前のルーチンのステップS103で“yes”が選択されているので、各リンクは単独でブランチ候補となる。n2−e2はe2に登録されているブランチ候補s−n2−e2よりもブランチコストが小さいため、s−n2−e2を置き換え、ブランチ候補の集合BCLに登録される。n2−n1はn1に登録されているブランチ候補s−n1よりもブランチコストが小さいため、s−n1を置き換えてブランチ候補の集合BCLに登録される。結果として、n2−e2がn2−n1と同じく最も小さいブランチコストを持つので、ブランチ候補の集合BCLから削除され、e2が終点ノードであるため、ブランチ集合Rに格納される。
図7(4)は、BBMCが始点ノード集合Vに格納されているe2からのリンクを新ブランチ候補としてBCLに登録する処理を示している。結果として、e2−n4、e2−e3がブランチ候補の集合BCLに登録され、n2−n1が最も小さいブランチコストを持つブランチ候補なので、ブランチ候補の集合BCLから削除される。
このように探索処理を続けていくと最終的にブランチ集合Rに格納されるブランチはs−n2−e1、n2−e2、e2−e3の3つのブランチとなる。この合計のツリーコストは“12”となり、コストの大きいツリーになってしまう。
この発明は上記事情に着目してなされたもので、その目的とするところは、BBMCアルゴリズムを単純に適用した場合に比べ、より小さなコストのマルチキャスト経路を探索可能としたマルチキャスト経路探索装置および方法を提供することにある。
上記目的を達成するためにこの発明は、以下のような各種態様を備える。
(1)複数のノードを通信リンクを介して相互に接続可能としたネットワークで使用され、上記複数のノードのうちマルチキャスト通信を行う任意の始点ノードから複数のマルチキャスト終点ノードまでの最適経路を探索するマルチキャスト経路探索装置であって、基準エージェントにより、上記始点ノードから上記複数のマルチキャスト終点ノードに至る経路上における複数のブランチ候補を探索して基準ブランチ候補記憶部に保存し、当該基準ブランチ候補記憶部に保存された複数のブランチ候補の中から終点が上記複数のマルチキャスト終点ノードのいずれかに到達しかつブランチコストが最小のブランチ候補を決定ブランチとして基準ブランチ記憶部に保存する経路探索処理を、上記複数のマルチキャスト終点ノードのすべてについて決定ブランチが得られるまで実行する手段と、上記基準エージェントにより決定ブランチが得られるごとに、当該基準エージェントから派生する第1の派生エージェントを作成すると共に、この時点で上記基準ブランチ候補記憶部に保存されているすべてのブランチ候補を上記第1の派生エージェントの第1のブランチ候補記憶部にコピーし、かつ上記基準ブランチ記憶部に保存されたブランチのうち上記決定ブランチを除いたブランチを上記第1の派生エージェントの第1のブランチ記憶部にコピーする第1の派生エージェント作成手段と、上記第1の派生エージェントにより、上記第1のブランチ候補記憶部に保存されたブランチ候補を基準にして上記複数のマルチキャスト終点ノードに至る経路上におけるブランチ候補を探索して上記第1のブランチ候補記憶部に保存し、当該第1のブランチ候補記憶部に保存されたブランチ候補の中から終点が上記複数のマルチキャスト終点ノードのいずれかに到達しかつブランチコストが最小のブランチ候補を決定ブランチとして第1のブランチ記憶部に保存する経路探索処理を、上記複数のマルチキャスト終点ノードのすべてについて決定ブランチが得られるまで実行する手段と、上記第1の派生エージェントにより決定ブランチが得られるごとに、当該第1の派生エージェントからさらに派生する第2の派生エージェントを作成すると共に、この時点で上記第1のブランチ候補記憶部に保存されているすべてのブランチ候補を上記第2の派生エージェントの第2のブランチ候補記憶部にコピーし、かつ上記第1のブランチ記憶部に保存されたブランチのうち上記決定ブランチを除いたブランチを上記第2の派生エージェントの第2のブランチ記憶部にコピーする第2の派生エージェント作成手段と、上記第2の派生エージェントにより、上記第2のブランチ候補記憶部に保存されたブランチ候補を基準にして上記複数のマルチキャスト終点ノードに至る経路上におけるブランチ候補を探索して上記第2のブランチ候補記憶部に保存し、当該第2のブランチ候補記憶部に保存されたブランチ候補の中から終点が上記複数のマルチキャスト終点ノードのいずれかに到達しかつブランチコストが最小のブランチ候補を決定ブランチとして第2のブランチ記憶部に保存する経路探索処理を、上記複数のマルチキャスト終点ノードのすべてについて決定ブランチが得られるまで実行する手段と、上記第1及び第2の派生エージェント作成手段により作成された第1及び第2の派生エージェントのエージェントコストを含む属性情報を、派生エージェントリストを用いて管理する手段と、最終的にすべてのエージェントにより上記複数のマルチキャスト終点ノードのすべてについて決定ブランチが得られた場合に、上記基準エージェント、第1および第2の派生エージェントによりそれぞれ得られた決定ブランチに基づく各マルチキャスト経路コストを比較し、当該マルチキャスト経路コストが最も小さいマルチキャスト経路を最適経路として選択する手段とを備える。
(2)(1)において、上記第1および第2の派生エージェント作成手段は、上記基準エージェントにより得られた決定ブランチに基づくマルチキャスト経路コストと、新たな派生エージェントにより得られると予測されるマルチキャスト経路コストとのコスト差を算出し、当該算出されたコスト差に基づいて、上記新たな派生エージェントの作成が可能であるか否かを判定する第1の手段を備える。
(3)(2)において、上記第1および第2の派生エージェント作成手段は、上記新たな派生エージェントの作成が可能と判定された場合に、上記派生エージェントリストをもとに、当該派生エージェントリスト内の作成済みの派生エージェント数が予め設定した上限値に達しているか否かを判定し、上限値に達していない場合に上記新たな派生エージェントを作成する第2の手段と、上記派生エージェントリストに登録されている作成済みの派生エージェント数が上限値に達していると判定された場合には、上記派生エージェントリストに登録されている派生エージェントのエージェントコストのうちの最大値と、上記新たな派生エージェントのエージェントコストの予測値とを比較し、上記予測値が上記最大値より小さい場合に、上記新たな派生エージェントを作成して、上記エージェントコストが最大の派生エージェントを上記作成された新たな派生エージェントに置き換える第3の手段を、さらに備える。
(4)(2)において、上記基準エージェント、上記第1および第2の派生エージェントは、経路探索処理の過程においてノードごとに当該ノードまでの最短ブランチ候補に準じる準最短ブランチ候補とそのブランチコストを保存する手段を有し、派生元エージェントが直前に選択した決定ブランチの終点ノードが保持する準最短ブランチ候補を、当該派生エージェントが、新たなブランチ候補としてブランチ候補記憶部に格納するとともに、上記第1及び第2の派生エージェント作成手段が、上記新たな派生エージェントによるマルチキャスト経路コストの予測値を|dev_R(k)|、当該新たな派生エージェントを作成する直前までに上記基準エージェントにより得られた決定ブランチに基づくマルチキャスト経路コストを|R(0)|、未到達マルチキャスト終点の数をENDS、その係数をW(W≧0)、上記コスト差に基づいた評価値をEVA_VALUE 1とするとき、上記予測値|dev_R(k)|を、上記新たな派生エージェントを作成する直前に上記派生元のエージェントにより得られた決定ブランチの終端ノードが保持する準最短ブランチ候補のブランチコストと、上記派生元のエージェントのブランチ候補記憶部に保存されているブランチ候補における最小のブランチコストとのうちの小さい方を、上記新たな派生エージェントを作成する直前に上記派生元のエージェントにより得られた決定ブランチを除いた決定ブランチに基づくマルチキャスト経路コストに加算することにより算出し、上記評価値EVA_VALUE 1 を、
EVA_VALUE 1=|dev_R(k)|−|R(0)|−W×ENDS
により算出し、上記算出された評価値EVA_VALUE 1 が0以下の場合に上記新たな派生エージェントを作成可能と判定する。
(5)(3)において、上記第1及び第2の派生エージェント作成手段の第3の手段は、上記新たな派生エージェントのエージェントコストの予測値をAGENT_COST 1 、当該新たな派生エージェントにより得られると予測されるマルチキャスト経路コストの値を|dev_R(k)|、当該新たな派生エージェントの作成直前までに上記基準エージェントにより得られた決定ブランチに基づくマルチキャスト経路コストを|R(0)|、当該派生エージェントの上記基準エージェントからの派生段階数をDEVS、その係数をW1(W1≧0)、当該派生エージェントが派生した時点の未到達マルチキャスト終点の数をENDS、その係数をW2(W2≧0)とするとき、上記予測値|dev_R(k)|を、当該派生エージェントの作成直前に上記派生元のエージェントにより得られた決定ブランチの終端ノードが保持する準最短ブランチ候補のブランチコストと、上記派生元のエージェントのブランチ候補記憶部に保存されているブランチ候補における最小ブランチコストのうちの小さい方を、当該派生エージェントを作成する直前に上記派生元のエージェントにより得られた決定ブランチを除いた決定ブランチに基づくマルチキャスト経路コストに加算することにより算出し、上記新たな派生エージェントのエージェントコストの予測値AGENT_COST 1 を
AGENT_COST 1 =|dev_R(k)|−|R(0)|+W1×DEVS−W2×ENDS
により算出する。
(6)(1)乃至(3)の何れかにおいて、上記第1または第2の派生エージェントにより決定ブランチが得られるごとに、当該第1または第2の派生エージェントにより得られた決定ブランチに基づくマルチキャスト経路コストと、上記基準エージェントにより得られた決定ブランチに基づくマルチキャスト経路コストとのコスト差を算出し、当該算出されたコスト差に基づいて、当該第1または第2の派生エージェントを上記派生エージェントリストから削除する派生エージェント削除手段を、さらに具備する。
(7)(6)において、上記派生エージェント削除手段は、上記第1または第2の派生エージェントによるマルチキャスト経路コストを|R(k)|、この時点までに上記第1または第2の派生エージェントを作成する直前までに上記基準エージェントにより得られた決定ブランチに基づくマルチキャスト経路コストを|R(0)|、未到達マルチキャスト終点の数をENDS、その係数をW(W≧0)、上記コスト差に基づいた評価値をEVA_VALUE 2 とするとき、上記評価値EVA_VALUE 2 を、
EVA_VALUE 2 =|R(k)|−|R(0)|−W×ENDS
により算出し、上記算出された評価値EVA_VALUE 2 が0より大きい場合に上記第1または第2の派生エージェントを上記派生エージェントリストから削除する。
(8)(1)乃至(3)の何れかにおいて、上記第1または第2の派生エージェントにより決定ブランチが得られるごとに、上記派生エージェントリストに登録された派生エージェントのエージェントコストを更新するエージェントコスト更新手段を、さらに具備し、上記エージェントコスト更新手段は、上記登録された派生エージェントのこの時点でのマルチキャスト経路コストを|R(k)|、この時点までに上記基準エージェントにより得られた決定ブランチに基づくマルチキャスト経路コストを|R(0)|、当該派生エージェントの基準エージェントからの派生段階数をDEVS、その係数をW1(W1≧0)、当該派生エージェントが派生した時点の未到達マルチキャスト終点の数をENDS、その係数をW2(W2≧0)とするときに、更新するエージェントコストAGENT_COST 2 を
AGENT_COST 2 =|R(k)|−|R(0)|+W1×DEVS−W2×ENDS
により算出する。
(1)基準エージェントにより決定ブランチが得られるごとに第1の派生エージェントが作成され、さらにこの第1の派生エージェントにより決定ブランチが得られるごとに第2の派生エージェントが作成される。そして、これらの派生エージェントにより、それぞれ派生元のエージェントから引き継いだブランチ候補およびブランチを基準にしてブランチの探索処理が行われる。すなわち、決定ブランチが得られるごとに段階的に新たな派生エージェントが作成され、これら複数のエージェントによりそれぞれブランチの探索処理が行われる。そして、最終的にすべてのエージェントにより複数のマルチキャスト終点ノードのすべてについて決定ブランチが得られた場合に、当該決定ブランチに基づくマルチキャスト経路コストの中で最もコストが小さいマルチキャスト経路が最適経路として選択される。
このため、基準エージェントによる経路探索で見逃したマルチキャスト経路を第1及び第2の派生エージェントにより見つけることが可能となり、これにより基準エージェントによる経路探索処理のみを用いる場合に比べ、コストの小さいマルチキャスト経路を高い確率で探索することが可能となる。
(2)新たな派生エージェントを作成する際に、当該新たな派生エージェントにより得られると予測されるマルチキャスト経路コストと基準エージェントによるマルチキャスト経路コストとのコスト差を考慮して、上記新たな派生エージェントの作成の可否が判定される。このため、基準エージェントよりもコストの小さいマルチキャスト経路を探索できる確率が高い場合にのみ派生エージェントが作成されるため、最小木コストの経路をより高い確率で探索することが可能となる。
(3)新たな派生エージェントの作成が可能と判定された場合、派生エージェントリスト内の作成済みの派生エージェント数が上限値に達していない場合に新たな派生エージェントが作成される。一方、作成済みの派生エージェント数が上限値に達している場合には、派生エージェントリストに登録されている派生エージェントのエージェントコストのうちの最大値と、上記新たな派生エージェントのエージェントコストの予測値とが比較され、予測値が最大値より小さい場合に上記新たな派生エージェントが作成されて、派生エージェントリストのエントリが上記エージェントコストの最大の派生エージェントから上記新たな派生エージェントに入れ替えられる。
このため、新たな派生エージェントを作成する際には、派生エージェントリストに基づいて、その上限値の範囲内でエージェントコストのより小さい派生エージェントが作成されることになる。このため、コストがより小さいマルチキャスト経路を探索できる確率が高まる。また、派生エージェント数に上限が設けられるので、派生エージェント数に上限を設けない場合に比べ、経路探索に要する処理負荷を抑制することができる。
(4)新たな派生エージェントを作成するか否かを判定する際に、基準エージェントによるマルチキャスト経路コスト|R(0)|と、新たな派生エージェントによるマルチキャスト経路コストの予測値|dev_R(k)|とのコスト差だけでなく、まだブランチが辿り着いていないマルチキャスト終端点の数ENDSも考慮して、新たな派生エージェントの作成の可否が判定される。また、新たな派生エージェントによるマルチキャスト経路コストの予測値|dev_R(k)|を算出する際に、該当するノードが保持する準最短ブランチ候補のブランチコストも考慮されるため、予測値|dev_R(k)|をより正確に算出することが可能となる。その結果、新たな派生エージェントの作成の可否をより一層高精度に判定することが可能となる。
(5)エージェントコストをもとに新たな第2のエージェントの作成の可否を判定する際に、基準エージェントによるマルチキャスト経路コスト|R(0)|と、新たな派生エージェントによるマルチキャスト経路コストの予測値|dev_R(k)|とのコスト差だけでなく、派生エージェントの基準エージェントからの派生段階数DEVSと、派生時の未到達マルチキャスト終点の数ENDSを考慮して判定が行われる。また、予測値|dev_R(k)|を算出する際には、該当するノードが保持する準最短ブランチ候補のブランチコストも考慮されるため、より正確な予測値を算出することが可能となる。その結果、新たな派生エージェントの作成の可否を判定する際に、より一層精度の高い判定が可能となる。
(6)派生エージェントにより決定ブランチが得られるごとに、当該派生エージェントによるマルチキャスト経路コストと、基準エージェントによるマルチキャスト経路コストのコスト差に基づいた評価値が0より大きい場合には、当該派生エージェントが削除される。このため、基準エージェントにより得られるマルチキャスト経路コストより小さいマルチキャスト経路コストを得る可能性が高い派生エージェントのみを使用して、効果的なマルチキャスト経路探索を行うことができる。
(7)上記評価値を算出する際に、まだブランチが辿り着いていないマルチキャスト終点の数ENDSも考慮される。このため、派生エージェントによるマルチキャスト経路コスト|R(k)|と、基準エージェントによるマルチキャスト経路コスト|R(0)|のコスト差のみによりエージェントの削除の可否を判定する場合に比べ、エージェントの削除の可否をより正確に判定することが可能となる。
(8)派生エージェントにより決定ブランチが得られるごとに、派生エージェントリストに登録された派生エージェントのエージェントコストが更新される。このため、派生エージェントリストに登録された派生エージェントのエージェントコストを常に最新の状態に維持することができる。しかも、派生エージェントのエージェントコストを算出する際に、当該派生エージェントによるマルチキャスト経路コスト|R(k)|と、当該派生エージェントの作成直前までに基準エージェントにより得られたマルチキャスト経路コスト|R(0)|とのコスト差だけでなく、当該派生エージェントの基準エージェントからの派生段階数DEVSと、派生時の未到達マルチキャスト終点の数ENDSが考慮される。このため、派生エージェントのエージェントコストをより正確に算出することが可能となる。
すなわちこの発明によれば、BBMCアルゴリズムを単純に適用した場合に比べ、より小さなコストのマルチキャスト経路を探索可能としたマルチキャスト経路探索装置および方法を提供することができる。
この発明の一実施形態に係るマルチキャスト経路探索装置の機能構成を示すブロック図。 図1に示したマルチキャスト経路探索装置のルーティングモジュール構成を示す図。 図1に示したマルチキャスト経路探索装置により実行されるマルチキャスト経路探索動作の手順と内容を示すフローチャート。 図3に示したマルチキャスト経路探索動作の一例を示す図。 BBMCアルゴリズムを使用する従来のマルチキャスト経路探索装置のルーティングモジュール構成を示す図。 従来のマルチキャスト経路探索装置により実行されるマルチキャスト経路探索動作の手順と内容を示すフローチャート。 図6に示したマルチキャスト経路探索動作の一例を示す図。
以下、図面を参照してこの発明に係わる実施形態を説明する。
[一実施形態]
(構成)
図1は、この発明の一実施形態に係るマルチキャスト経路探索装置の機能構成を示すブロック図であり、RSVはマルチキャスト経路探索装置としてのルーティングサーバを示している。また、図2は当該ルーティングサーバRSVのモジュール構成を示す。
ルーティングサーバRSVは、Multi agent BBMCアルゴリズムを用いて経路探索処理を実行するもので、制御ユニット1と、データベース2と、エージェントメモリ3a0〜3anと、共有メモリ4と、通信インタフェースユニット5を備えている。通信インタフェースユニット5は、制御ユニット1の制御の下でネットワークNWとの間で通信を行う。ネットワークNWはIPネットワークからなり、通信リンクにより相互に接続された複数のノードを含む。
データベース2は、リンク情報記憶部21と、ノード情報記憶部22を備える。リンク情報記憶部21には、上記複数のノード間を接続する各通信リンクを表す情報に対応付けてそのリンクコストが記憶される。ノード情報記憶部22には、上記複数のノードのそれぞれについて、当該ノードに接続される通信リンクを表す情報と、始点ノードから当該ノードまでの最短ブランチ候補とそのコスト、準最短ブランチ候補とそのコスト、“reached属性”(yes /no)が格納される。“reached属性”は、当該ノードがマルチキャストツリーの構成要素になったかを示すもので、経路探索が開始される前の初期状態では始点ノードのみがマルチキャストツリーに含まれるので“yes”に設定され、他ノードはすべて“no”に設定される。
なお、データベース2は、ルーティングサーバRSV内に設けずに、当該ルーティングサーバRSVに対し独立して設けられたデータベースサーバやクラウドシステムに設け、これらに対しルーティングサーバRSVからネットワークを介してアクセスして必要な情報をダウンロードするようにしてもよい。
エージェントメモリ3a0〜3anには、ブランチ候補記憶部31と、ブランチ記憶部32が設けられる。これらのブランチ候補記憶部31およびブランチ記憶部32は何れもエージェントごとに領域が分けられている。ブランチ候補記憶部31の各領域には、エージェントごとにその経路探索処理により生成されたブランチ候補が格納される。ブランチ記憶部32の各領域には、エージェントごとにその経路探索処理により決定されたブランチが格納される。
共有メモリ4は、各エージェントが共有するもので、エージェントリスト記憶部41を備えている。エージェントリスト記憶部41には、エージェントコストによってソートされた複数のエージェントへのポインタが記憶される。エージェントリスト記憶部41に格納されるエージェントのポインタの数には上限値が設定されている。
制御ユニット1は、主制御部として中央処理ユニット(CPU;Central Processing Unit)を備え、この実施形態に係るMulti agent BBMCアルゴリズムを実行する上で必要な制御機能として、ネットワークトポロジ管理処理部11と、ブランチ候補処理部12と、最小木作成処理部13と、エージェント処理部14と、最終ツリー決定部15を有している。これらの制御機能は何れも図示しないプログラムメモリに格納されたプログラムを上記CPUに実行させることにより実現される。
ネットワークトポロジ管理処理部11は、ネットワークNWにおける複数のノードと、これらのノード間を接続する通信リンクを管理するもので、リンクごとにそのリンク情報を上記リンク情報記憶部21で管理すると共に、ノードごとにそのノード情報を上記ノード情報記憶部22で管理する。リンク情報は、ノード間を接続するすべてのリンクについてそれぞれその方向(AZ/ZA)ごとにコスト(cost)を管理する。またノード情報は、上記複数のノードのそれぞれについて、当該ノードまでの最短ブランチ候補とそのコスト、準最短ブランチ候補とそのコスト、“reached属性”(yes/no)をそれぞれ管理する。
最小木作成処理部13は、BBMCアルゴリズムを用いて、エージェントごとに、上記ネットワークトポロジ管理処理部11で管理されているリンク情報およびノード情報を利用して、ノード間の最短ブランチ候補を探索する。また、上記ブランチ候補記憶部31に記憶されたブランチ候補をもとに、マルチキャスト終点ノードに到達したブランチコストが最小のブランチ候補を選択して当該ブランチ候補を決定ブランチとしてブランチ記憶部32に格納する処理を行う。
ブランチ候補処理部12は、上記最小木作成処理部13の指示に従い、当該最小木作成処理部13により探索されたブランチ候補をブランチ候補記憶部31に記憶させると共に、ブランチ候補記憶部31からブランチ候補を読み出して上記最小木作成処理部13へ出力する処理を行う。
エージェント処理部14は、エージェントリスト記憶部41を用いて各エージェントを共有管理するもので、各エージェントの最小木作成処理部13が新たなブランチを作成するごとに、当該エージェントをエージェントリスト記憶部41内に保持し続けるかエージェントを削除するかを決定する。また、当該エージェントから新たなエージェントを派生させるか否かを判定する。
最終ツリー決定部15は、エージェントリスト記憶部41にアクセスして各エージェントの最終的なツリーコストを取得し、最もツリーコストの小さいツリーを選択する処理を行う。
(動作)
次に、以上のように構成されたルーティングサーバRSVにより実行される、Multi agent BBMCアルゴリズムを用いたマルチキャスト経路探索動作を説明する。図3はその処理手順と処理内容を示すフローチャートである。
ステップS0では、基準エージェントとしてのエージェント(0) がBBMCアルゴリズムを実行する際に利用する種々データの初期化が行われる。すなわち、マルチキャスト終点集合E(0) には、まだ基準エージェント(0) が到達していないマルチキャスト終点ノードが格納されるので、初期値としてはすべてのマルチキャスト終点ノードが格納される。V(0) は基準エージェント(0) がステップS3で扱う始点ノード集合であり、初期値としてマルチキャスト始点ノードが格納される。基準エージェントのブランチ候補記憶部31はブランチ候補リストBCL(0)で表され、基準エージェント(0)が扱う各ノードまでのブランチ候補がブランチコストによりソートされた状態で記憶されるが、初期状態では基準エージェント(0) ではまだブランチ候補が得られていないので空集合に設定される。ブランチ記憶部32に記憶されるブランチ集合R(0) には基準エージェント(0) が決定したブランチが格納されるが、最初は空集合で設定される。
また、ノード情報記憶部22には、図2に示すように各ノードの“reached属性”が記憶されるが、マルチキャスト始点ノード以外のノードにはまだブランチが行き着いていないので、マルチキャスト始点ノードのみ“yes”が設定され、その他のノードについては“no”が設定される。また、各ノードの“最短ブランチ候補”および“準最短ブランチ候補”はそれぞれ空集合に設定され、かつそれらのブランチコストは“∞”に設定される。基準エージェント(0) 以外の派生エージェントのデータの初期化はステップS0では行われない。
さて、以上のようにデータの初期設定が終了すると、ステップS1でk=0 に設定される。ここで、k はエージェントの番号を示す。したがって、ここでは基準エージェント(0)が動作対象として選択される。次にステップS2では、マルチキャスト終点集合E(0)内の終点数|E(0)|が“0”より大きいかどうかを判断する。ここで、|E(0)|=0である場合は、基準エージェント(0) によってすべてのマルチキャスト終点ノードまでのブランチが決定していることを表すので、Multi agent BBMCアルゴリズムを用いたマルチキャスト経路探索処理は終了となる。
一方、マルチキャスト終点集合E(0)内に終点ノードが残っている場合には、ステップS3に移行する。以降の説明においてエージェント(k) はk=0の場合は基準エージェントを示し、k≧1の場合は派生エージェントを示す。ステップS3では、派生エージェント(k) のマルチキャスト始点集合V(k)に登録されているノードから発しているリンクを最終ホップとするブランチ候補が作成される。また、必要に応じてブランチ候補リストBCL(k)を更新する処理が行われる。この処理は、図6に示したBBMCアルゴリズムを用いたステップS101の処理に相当する。すなわち、k=0の場合は、基準エージェント(0) により当該基準エージェント(0) に割り当てられたメモリにおいて、図6のステップS101で述べた処理と同じ処理が行われる。k の値が1以上の場合には、派生エージェント(k) により当該派生エージェント(k) に割り当てられたメモリにおいて同様の処理が行われる。
ステップS3では、派生エージェント(k) のマルチキャスト始点集合V(k)に登録されているノードから発しているリンクを最終ホップとするブランチ候補を作成し、ブランチ候補リストBCL(k)を更新する処理が行われる。この処理は、図6のBBMCアルゴリズムにおけるステップS101の処理に相当する。すなわち、k=0の場合には、基準エージェント(0) が図6に示したステップS101に記載したブランチ候補探索処理を当該エージェント(0) に割り当てられたメモリ領域3a0を使用して実行し、k≧1の場合には派生エージェント(k) が図6のステップS101に記載したブランチ候補探索処理と同じ処理を当該エージェント(k) に割り当てられたメモリ領域3a1〜3anを使用して実行する。
上記対象とされるリンクの終端ノードに対しては、エージェントごとに、当該ノードを終端とする最短ブランチ候補と準最短ブランチ候補が保持されている。最短ブランチ候補は、新規ブランチ候補が既存の最短ブランチ候補のブランチコストより小さければ、新規ブランチ候補に置き換えられる。またそれと共に、ブランチ候補リストBCL(k)内のブランチ候補も新規ブランチ候補に置き換えられる。このとき、準最短ブランチ候補はブランチ候補リストBCL(k)には登録されず、マルチキャスト終点ノードでのみ保持される。この準最短ブランチ候補は、新規ブランチ候補のブランチコストが既存のブランチ候補のブランチコスト以上で、かつ既存の準最短ブランチ候補のブランチコストより小さい場合に、新規ブランチ候補に置き換えられる。
ステップS4では、エージェント(k) がブランチ候補リストBCL(k)中の最短ブランチ候補を選択し、始点集合V(k)内のノードを当該選択した最短ブランチ候補の終点に置き換える処理を行う。この処理は、図6に示したステップS102においてBBMCアルゴリズムを用いた処理をエージェント(k) に割り当てられたメモリ環境で実行するものに相当する。
ステップS5では、ステップS4で選択された最短ブランチ候補の終点がマルチキャスト終点ノードか否かの判定が行われる。この判定の結果、もしマルチキャスト終点ノードだった場合にはステップS6に進む。これに対し、マルチキャスト終点ノードでなければステップS3に戻る。つまり、ステップS5でYESと判定されるまで、同じエージェント(k) によりマルチキャスト終点ノードに至るブランチを探索する処理が繰り返し実行される。
ステップS6では、直前にステップS4で選択されたブランチ候補を、そのマルチキャスト終点ノードまでの新規の決定ブランチとしてブランチ記憶部32のR(k)に格納すると共に、当該マルチキャスト終点ノードをマルチキャスト終点集合E(k)から削除する処理が行われる。
ステップS7では、始点ノード集合V(k)を空にした後、ステップS6において新規に作成されたブランチ上の始点を除くすべてのノードを始点ノード集合V(k)に格納する処理が行われる。そして、既にマルチキャストツリーがこれらのノードに辿り着いたことになるので、始点ノード集合V(k)内に格納されたノードの“reached属性”は“yes”に設定される。
ステップS8では、エージェント処理部14において、削除候補となるエージェント(k) をエージェントリストから削除するか否かの判定が行われる。ただし、k=0の場合は基準エージェント(0) であるため、削除の対象から除外する。k≧1の場合には、派生エージェントであるため、当該派生エージェント(k) のツリーコスト|R(k)|(R(k)のすべてのブランチのブランチコストの合計)と、基準エージェント(0) のツリーコスト|R(0)|と、ENDS (この時点でのE(k)内のマルチキャスト終点数)と、その係数W(W≧0)とから、
EVA_VALUE 2 =|R(k)|−|R(0)|−W×ENDS
が計算される。そして、EVA_VALUE 2 ≦0の場合には上記削除候補のエージェント(k) の削除は行われない。
これに対し、EVA_VALUE 2 >0の場合には、派生エージェント(k) は削除される。その理由は、|R(k)|の値が基準値である|R(0)|よりも十分大きい場合は、この派生エージェント(k) でこれ以上ツリー作成を進めても、最終的にBBMCアルゴリズムで作成する|R(0)|よりも小さなコストのツリーを作成できる可能性が低いからである。
派生エージェント(k) が削除された場合には、当該派生エージェント(k) から派生するエージェントは作成されず、ステップS11に移行する。その理由は、削除されるほどの効率の悪いエージェントのデータを引き継いで新しいエージェントを作成しても、新エージェントでコストの小さいツリーを作成できる可能性が低いからである。
エージェント(k) が削除されなかった場合にはステップS9に移行する。そして、ステップS9において、先ずエージェント(k) から派生する新エージェントの作成の可否がエージェント処理部14により判定される。但し、その前にエージェント(k) に関する属性情報をエージェントリスト記憶部41に再登録する処理、つまりエージェントリスト記憶部41の更新処理が行われる。その理由は、エージェント(k) は新たなブランチができるたびにそのエージェントコストが変化するため、当該エージェント(k) のエージェントリスト記憶部41における配列位置(エージェントコストが小さい順に配列されている)が変化する可能性があるからである。
本実施形態では、エージェント(k) 登録されている派生エージェントのこの時点でのマルチキャスト経路コストを|R(k)|、この時点までに当該派生エージェントの作成直前までに基準エージェント(0) により得られた決定ブランチに基づくマルチキャスト経路コストを|R(0)|、エージェント(k) の基準エージェントからの派生段階数をDEVS、その係数をW1(W1≧0)、エージェント(k) が派生した時点の未到達マルチキャスト終点の数をENDS、その係数をW2(W2≧0)とするとき、上記エージェント(k) のエージェントコストAGENT_COST 2は、
AGENT_COST 2 =|R(k)|−|R(0)|+W1×DEVS−W2×ENDS
のように求められる。そして、この算出されたエージェントコストAGENT_COST 2の値をもとに上記エージェントリスト記憶部41における登録エージェント(k) の再登録が行われる。
次にステップS9では、エージェント(k) から派生する新規エージェントの作成の可否が以下のように判定される。すなわち、判定のための評価値EVA_VALUE 1が
EVA_VALUE 1 =|dev_R(k)|−|R(0)|−W×ENDS
により算出され、この算出された予測値が“0”より大きい場合には新規エージェントの作成は行われない。これに対し上記算出された予測値が“0”以下の場合には、新規エージェントを作成する可能性があると判定される。
ここで、新規エージェントのマルチキャスト経路コストの予測値|dev_R(k)|は以下のように求められる。すなわち、ステップS6で最後に格納されたブランチはR(k)から除かれるため、R(k)内のブランチ数はR(0)内のブランチ数よりも1つ少ない数となる。このため、直前のステップS6で格納されたブランチの終点ノードの“準最短ブランチ”のブランチコストと、ブランチ候補リストBCL(k)内の最小ブランチコストとのうちの小さい値を選択し、この選択された値を|R(k)|からステップS6で格納されたブランチを除いたツリーコストに加えた値を求め、この値を上記|dev_R(k)|とする。
また、上記新規エージェントのエージェントコストが“0”以下の場合、つまり新規エージェントを作成する可能性があると判定された場合でも、以下の条件を満たさなければ新規エージェントの作成を行わない。すなわち、エージェントリスト記憶部41に登録されている派生エージェント数が、予め設定された派生エージェントの上限数に達しているか否かを判定し、既に当該上限数に相当する数の派生エージェントがエージェントリスト記憶部41にまだ登録されていなければ、新規エージェントの作成が可能と判断し、ステップS10に移行する。
これに対し、エージェントリスト記憶部41に登録された派生エージェント数が上記上限値に達していた場合には、エージェントリスト記憶部41に登録されている派生エージェントのエージェントコストのうちの最大値と、上記新たに作成しようとする派生エージェントのエージェントコストの予測値AGENT_COST 1とを比較する。そして、当該予測値AGENT_COST 1が上記最大値より小さければ、上記新たな派生エージェントを作成し、上記エージェントリスト記憶部41に登録されたエージェントコストが最大の派生エージェントへのポインタを、上記新たに作成された派生エージェントへのポインタに置き換える。
なお、上記新たな作成しようとする派生エージェントのエージェントリストの予測値AGENT_COST 1 は、新たな派生エージェントにより得られると予測されるマルチキャスト経路コストの値を|dev_R(k)|、この時点までに当該新たな派生エージェントの作成直前までに前記基準エージェントにより得られた決定ブランチに基づくマルチキャスト経路コストを|R(0)|、当該派生エージェントの前記基準エージェントからの派生段階数をDEVS、その係数をW1(W1≧0)、当該派生エージェントが派生した時点の未到達マルチキャスト終点の数をENDS、その係数をW2(W2≧0)とするとき、
AGENT_COST 1=|dev_R(k)|−|R(0)|+W1×DEVS−W2×ENDS
により算出される。
但し、上記|dev_R(k)|は、派生エージェントの作成直前に派生元のエージェントにより得られた決定ブランチの終端ノードが保持する準最短ブランチ候補のブランチコストと、上記派生元のエージェントのブランチ候補リストBCL(k) に保存されているブランチ候補における最小ブランチコストのうちの小さい方を、当該派生エージェントを作成する直前に上記派生元のエージェントにより得られた決定ブランチを除いた決定ブランチに基づくマルチキャスト経路コストに加算することにより算出される。
ステップS9において新規エージェントを作成するべきと判断されると、ステップS10によりエージェント(k) から派生した新規エージェントの作成が行われる。その際、直前のステップS6で作成されたブランチをR(k)から削除し、その結果残ったブランチを、エージェント(k) から派生した新規エージェントのブランチ記憶部dev_R(k)にコピーする。また、各ノード情報記憶部22の“reached属性”、“最短ブランチ候補とそのブランチコスト”、“準最短ブランチ候補とそのブランチコスト”をエージェント(k) から新規エージェント用のメモリにコピーする。その際、直前にステップS6で作成されたブランチ上の始点以外のノードの“reached属性”を“no”にリセットし、これらのノードの“最短ブランチ候補とそのブランチコスト”に“準最短ブランチ候補とそのブランチコスト”の値を設定する。その後“準最短ブランチ候補”は空集合、そのブランチコストは“∞”に設定する。最後に、各ノードで“reached属性”が“no”の“最短ブランチ候補”をブランチコストに従いソートしてブランチ候補リストBCLに登録し直す。
以上のエージェント(k) から新規エージェントへデータを引き継ぐ一連の処理により、直前のステップS6で作成したブランチ以外のすべてのブランチを新規エージェントに引き継ぐだけでなく、エージェント(k) のブランチ候補についても前記“準最短ブランチ候補”とともに、新規エージェントのブランチ候補リストBCLに引き継ぐことが可能になる。
また、上記新規エージェントは、すべての既存エージェントの最後に配置される。つまり、エージェント(m) が最後のエージェントの場合はエージェント(m+1) として設定される。すなわち、エージェントがステップS11で最後のエージェントであると判断された場合には、すべてのエージェントのR(k)内のブランチ数が同じになるようにする。
ステップS11において、エージェント(k) は自身が最後のエージェントかどうかを判断する。そして、最後のエージェントの場合はステップS1に戻り、基準エージェント(0) に処理を依頼する。これに対しエージェント(k) が最後のエージェントではない場合には、ステップS12でk=k+1とし、派生エージェント(k+1)に処理を依頼する。このアルゴリズムの処理はステップS2で基準エージェント(0) のマルチキャスト終点がなくなるまで繰り返し実行される。各エージェントは必ず1ブランチずつ作成していくので、ステップS2において基準エージェント(0) でマルチキャスト終点がなくなったということは、他のエージェントもマルチキャスト終点がなくなっていることを意味する。すなわち、すべてのエージェントがマルチキャストツリーの生成を終えたことになる。
上記ステップS2において、基準エージェントと複数の派生エージェントを含むすべてのエージェントによるマルチキャストツリーの生成が終了したと判定されると、ステップS13に移行する。ステップS13では、すべてのエージェントが作成したマルチキャストツリーの中で最小木を選択し、当該選択した最小木のマルチキャストツリーをMulti agent BBMCアルゴリズムのアウトプットとしてリターンする。
(動作の具体例)
次に、以上述べた動作の具体例を図4を用いて説明する。なお、図4において前記図7と処理内容が同一の部分(例えば図4(1))については詳しい説明を省略する。
なお、ここではBBMCアルゴリズムを用いてツリー探索を実行する基準エージェント(0) に対して、追加する派生エージェントの上限数を“1”とする。また、EVA_VALUE 1 ,EVA_VALUE 2の中で使われている係数Wと、AGENT_COST 1,AGENT_COST 2の中で使われている係数W1、W2はすべて“2”に設定する。
図4(2)に示すように、基準エージェント(0) において最初の決定ブランチ(s−n2−e1)が作成されると、図3のステップS9において当該基準エージェント(0) から新たに派生エージェント(1) を作成するか否かの判定が以下のように行われる。
すなわち、最初に派生エージェント(1) のEVA_VALUE 1 が
EVA_VALUE 1 =|dev_R(0)|−|R(0)|−|E(0)|
=5−3−2×2
=−2
のように算出される。
ここで、|dev_R(0)|は、基準エージェント(0) のブランチ候補リストBCL(0)に保存されたブランチ候補s−n2−e1(3)が除かれた後の最短ブランチ候補s−n3のブランチコスト=5としている。またこのとき、もしマルチキャスト終点ノードe1が準最短ブランチを保持していれば、そのブランチコストと上記s−n3のブランチコスト“5”のうちの小さい方となる。しかし、この時点でマルチキャスト終点ノードe1は準最短ブランチを保持しないので、上記s−n3のブランチコスト“5”が選択される。また、|R(0)|はR(0)内の決定ブランチのブランチコストの合計であり、この時点ではs−n2−e1(3)が唯一のブランチである。また|E(0)|はこの時点でE(0)に残っているマルチキャスト終点数となり、e2とe3の2個である。このEVA_VALUE 1 の値が上記計算の結果−2であり、“0”以下であることから派生エージェント(1) は有効と判断されて削除されない。
次に、新たに作成しようとする派生エージェント(1) のエージェントコストが算出される。このエージェントコストは
AGENT_COST 1 =|dev_R(0)|−|R(0)|+2×DEVS−2×ENDS
=5−3+2×1−2×2
=0
となる。
ここで、DEVSは当該新たに作成しようとする派生エージェント(1) の上記基準エージェント(0) からの派生段階数であるので、ここでは“1”になる。また、ENDSは当該派生エージェント(1) が最後に派生した時点での未到達マルチキャスト終点の数、つまりE(0)内のノード数であり、“2”となる。冒頭の動作条件で述べたように、基準エージェント(0) 以外の派生エージェントの上限数は“1”としており、まだこの段階では派生エージェントがエージェントリスト記憶部41に存在しないことから、上記派生エージェント(1) が作成され、そのエージェントコスト=0がエージェントリスト記憶部41に登録される。
また、上記派生エージェント(1) の作成に伴い、決定ブランチs−n2−e1を除いたブランチがR(0)からR(1)に引き継がれるが、この段階ではR(0)にはs−n2−e1しか登録されていないので、R(1)は図4(1′)のように空となる。また、マルチキャスト終点ノードe1が準最短ブランチ候補を保持している場合には、当該準最短ブランチ候補がマルチキャスト終点ノードe1までの最短ブランチ候補になり、これが派生エージェント(1) のブランチ候補リストBCL(1)への登録候補となる。しかし、この段階ではまだマルチキャスト終点ノードe1に準最短ブランチ候補が登録されていないため、派生エージェント(1) のブランチ候補リストBCL(1)には基準エージェント(0) のブランチ候補リストBCL(0)と同じブランチ候補がコピーされる。
その結果、図4(1′)では派生エージェント(1) のブランチ候補リストBCL(1)の中でブランチコストが最も小さいブランチ候補s−n3が削除され、ノードn3はマルチキャスト終点ノードではないため、ノードn3を経由した1ホップ先までのブランチ候補が図4(2′)で作成される。これらのブランチ候補s−n3−e1、s−n3−e3のブランチコストは何れも“6”であり、マルチキャスト終点ノードe1、e3までのそれぞれ派生エージェント(1) が辿り着いた最初のブランチ候補であるため、ブランチ候補リストBCL(1)に登録される。
図4(2′)の結果として、派生エージェント(1) のブランチ候補リストBCL(1)の中でブランチ候補s−n1が最もブランチコストが小さいので、図4(3′)ではノードn1を経由した1ホップ先までのブランチ候補が検討される。その際、ノードn2の“最短ブランチコスト”属性には、基準エージェント(0) が以前に保持していたs−n2のブランコスト=2が引き継がれており、s−n1−n2はそのブランチコストより大きいため登録されない。s−n1−n4はノードn4までの最初のブランチ候補のため、最短ブランチ候補としてブランチ候補リストBCL(1)に登録される。結果として、コストが“6”のブランチ候補がBCL(1)には3つ登録されていることになるが、この場合は任意にその中で一つのブランチ候補が選択される。図6(3′)の例ではs−n3−e1が選択され、ノードe1がマルチキャスト終点ノードのためR(1)に格納される。
派生エージェント(1) により最初のブランチが決定したこの時点で、当該派生エージェント(1) を使い続けるか削除するかがステップS8で以下のように判定される。すなわち、派生エージェント(1) のEVA_VALUE 2 は
EVA_VALUE 2 =|R(1)|−|R(0)|−2|E(1)|
=6−3−2×2
=−1
となり、EVA_VALUE 2 は“0”以下となる。このため、派生エージェント(1) の削除は行われない。
次に、ステップS9において上記派生エージェント(1) にとって代わる新規エージェントを作成するか否かが判定される。この場合、先ず派生エージェント(1) のエージェントコストのアップデートが行われる。派生エージェント(1) のエージェントコストは、
AGENT_COST 2 =|R(1)|−|R(0)|+2×DEVS−2×ENDS
=6−3+2×1−2×2
=1
となる。このため、派生エージェント(1) は再度エージェントリスト記憶部41にエージェントコスト=1として再設定される。なお、このときエージェントリスト記憶部41に複数のエージェントが記憶されていれば、これらのエージェントはそのエージェントコストの値が小さい順にソートされる。
上記派生エージェント(1) からさらに派生するエージェントをエージェント(2) とすると、当該新たな派生エージェント(2) のエージェントコストは、
AGENT_COST 1 =|dev_R(1)|−|R(0)|+2×DEVS−2×ENDS
=6−3+2×2−2×2
=3
となる。
ここで、|dev_R(1)|は、マルチキャスト終点モードe1までの準最短ブランチ候補のブランチコストと、エージェント(1) のブランチ候補リストBCL(1)に保持されている最短ブランチ候補であるs−n3−e3(6)とのうちのブランチコストが小さい方となる。しかし、マルチキャスト終点ノードe1までの準最短ブランチ候補は現時点では存在しないので、|dev_R(1)|は“6”となる。DEVSは派生エージェント(1) がすでに基準エージェント(0) から1回の派生をしたものであるため、“2”となる。ENDSは現時点でE(1)に2つのマルチキャスト終点ノードe2、e3が存在するので、“2”となる。結果として、新たな派生エージェント(2) のエージェントコストは派生元のエージェント(1) よりも大きく、またエージェントリストのエージェント数の上限値も“1”であるため、エージェント(2) は新規エージェントとして作成されない。
図4(4′)は、派生エージェント(1) による2本目のブランチの生成動作を示している。この段階では、ステップS3において基準エージェント(0) により先ず2本目のブランチn2−e2が図7の(3)と同様の手順で作成される。始点ノード集合V(1)には、派生エージェント(1) の最初のブランチs−n3−e1上のノードn3、e1が格納されているので、これら2つのノードn3、e1から発するリンクがブランチ候補となるか否か検討される。ノードn3からは終点ノードe3までのリンクが存在し、そのリンクコストは“1”なので、マルチキャスト終点ノードe3までの最短ブランチ候補はn3−e3に置き換えられる。
また、マルチキャスト終点ノードe3はマルチキャスト終点ノードのため、既存の最短ブランチ候補s−n3−e3は準最短ブランチ候補としてマルチキャスト終点ノードe3で保持される。さらに、マルチキャスト終点ノードe1からはマルチキャスト終点ノードe2までのリンクが存在し、そのリンクコストは“1”なので、マルチキャスト終点ノードe2までの最短ブランチ候補はe1−e2に置き換えられる。ノードe2はマルチキャスト終点ノードのため、既存の最短ブランチ候補s−n2−e2は準最短ブランチ候補としてマルチキャスト終点ノードe2で保持される。その結果、n3−e3が最もブランチコストが小さいブランチ候補リストBCL(1)内のブランチ候補となるため、n3−e3が第2のブランチとして決定され、R(1)に格納される。
続いてステップS8において、派生エージェント(1) を使い続けるか削除するかが判定される。この場合、派生エージェント(1) のEVA_VALUE 2 は、
EVA_VALUE 2 =|R(1)|−|R(0)|−2|E(1)|
=7−7−2×1
=−2
となり、EVA_VALUE 2 は“0”以下となるので、上記派生エージェント(1) は削除されず維持される。
ここで、|R(0)|は、図7の(3)と同じ結果となり、R(0)にs−n2−e1、n2−e2を保持するので“7”となる。また、エージェント(1) のマルチキャスト終点集合E(1)にはE2のみが保持されるので、|E(1)|=1となる。
次に、ステップS9において、派生エージェント(1) からさらに派生するエージェント(2) を作成するか否かが判定される。しかし、エージェント(2) のEVA_VALUE 1 は、
EVA_VALUE 1 =|dev_R(1)|−|R(0)|−2|E(1)|
=11−7−2×1
=2
となり、EVA_VALUE 1 が“0”より大きくなるため作成されない。
ここで、|dev_R(1)|は、マルチキャスト終点ノードe3までの準最短ブランチと、エージェント(1) のブランチ候補リストBCL(1)に保持された最短ブランチe1−e2とのうちのブランチコストの小さい方となるので“5”となり、この値がs−n3−e1(6)に加算されるため、|dev_R(1)|は“11”となる。
図4(4′)に示した処理が終了すると、ブランチ候補e3−e2が終点ノードe3から出ているリンクとして存在し、そのリンクコストが“1”であることから、上記ブランチ候補e3−e2は最終ブランチとしてR(1)に格納される。この結果、Multi-agent BBMCアルゴリズムが最終的に生成するマルチキャストツリーコストは“8”となる。このマルチキャストツリーコストは、図7において説明したように、BBMCアルゴリズムを用いて1つのエージェントのみにより経路探索を行った場合のマルチキャストツリーコスト“12”より大幅に小さくなる。
(効果)
以上詳述したように本実施形態では、BBMCアルゴリズムを使用した基準エージェント(0) により決定ブランチが作成されるごとに、当該基準エージェント(0) から派生するエージェント(k) (k=1,2,…)を新たに作成するか否かを判定し、所定の条件を満たした場合に順次派生エージェントを作成して、これらの基準エージェント(0) と複数の派生エージェント(k) (k=1,2,…)によりそれぞれ経路探索を行う。そして、これら複数のエージェントにより作成されたマルチキャストツリーのコストを比較して、当該コストが最小のツリーを最終マルチキャストツリーとして選択するようにしている。このため、基準エージェント(0) による経路探索で見逃したツリーを、当該基準エージェント(0) から派生した複数の派生エージェント(k) (k=1,2,…)により探索することが可能となり、これにより基準エージェント(0) による探索処理のみを用いる場合に比べ、よりコストの小さいマルチキャストツリーを探索することが可能となる。
また、上記派生エージェント(k) (k=1,2,…)の作成の可否を判定する際に、先ず派生エージェントによるマルチキャスト経路コストの予測値と基準エージェント(0) によるマルチキャスト経路コストのコスト差に基づくEVA_VALUE 1が“0”以下であり、かつエージェントリスト記憶部41に作成済みのエージェントが存在しなければ、上記派生エージェントを作成する。また、当該派生エージェントによるEVA_VALUE 1が“0”以下と判定された場合でも、エージェントリスト記憶部41に登録済みの派生エージェント数が上限値に達している場合は、当該エージェントリスト記憶部が持つエージェントコストの中で最大のエージェントコストよりも当該派生エージェントのエージェントコストが小さい場合に、当該派生エージェントを最大のエージェントコストを持つエージェントと置き換える形でエージェントリスト記憶部41に登録するようにしている。すなわち、エージェントリスト記憶部に登録済のエージェントの何れよりも小コストのマルチキャスツリーを探索する確率が高い場合にのみ、新たな派生エージェントを作成するようにしている。このため、小コストのマルチキャストツリーを探索できる確率をさらに高めることができる。また、派生エージェントの登録数が上限値を超えていない場合にのみ新たな派生エージェントが作成されるので、エージェントの登録数に上限を設けない場合に比べ、経路探索に要する処理負荷を抑制することができる。
さらに、ある派生エージェントにより決定ブランチが作成されるごとに、当該派生エージェントにより作成された決定ブランチに基づくマルチキャスト経路コストと、基準エージェントにより得られる決定ブランチに基づくマルチキャスト経路コストとのコスト差を基準とした評価値EVA_VALUE 2 を算出し、EVA_VALUE 2 が“0”より大きい場合は、上記作成済みのエージェントを削除するようにしている。このため、作成済みの派生エージェントのうちマルチキャスト経路コストの大きいエージェントによる経路探索処理が際限なく実行される不具合を防止することができ、これにより経路コストの小さいエージェントを用いた効果的な経路探索を行うことができる。
さらに、評価値EVA_VALUE 2 を算出する際に、まだブランチが辿り着いていないマルチキャスト終点の数ENDSも考慮して、作成済みの派生エージェントの削除の可否を判定するようにしている。このため、削除対象となるエージェントの削除の可否をより一層高精度に判定することが可能となる。
さらに、エージェントリスト記憶部41に登録済の派生エージェントのエージェントコストをAGENT_COST 2 として新規ブランチが生成される度に更新し、当該エージェントコストが最も大きい登録済みの派生エージェントを当該エージェントリスト記憶部からの削除対象として選択するようにしている。このため、エージェントコストが高く最小木コストの経路探索に寄与しないエージェントから順に削除することができ、これによりエージェントコストが小さく最小木コストの経路探索に対する貢献度が高いエージェントを優先的に残して経路探索処理を行うことが可能となる。
[他の実施形態]
この発明は上記一実施形態に限定されるものではない。例えば、前記一実施形態ではノード群とは別にルーティングサーバRSVを設けた場合を例にとって説明したが、ルーティングサーバの機能をノードの1つまたは複数に持たせるようにしてもよい。
その他、ネットワークの構成、マルチキャスト終点ノードの数、ルーティングサーバRSVの構成と最短木作成処理の手順と内容等についても、この発明の要旨を逸脱しない範囲で種々変形して実施可能である。
要するにこの発明は、上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合せにより種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態に亘る構成要素を適宜組み合せてもよい。
RSV…ルーティングサーバ、NW…ネットワーク、1…制御ユニット、2…データベース、3a0〜3an…エージェントメモリ、4…共有メモリ、5…通信インタフェースユニット、11…ネットワークトポロジ管理処理部、12…ブランチ候補処理部、13…最小木作成処理部、14…エージェント処理部、15…最終ツリー決定部、21…リンク情報記憶部、22…ノード情報記憶部、31…ブランチ候補記憶部、32…ブランチ記憶部、41…エージェントリスト記憶部。

Claims (9)

  1. 複数のノードを通信リンクを介して相互に接続可能としたネットワークで使用され、前記複数のノードのうちマルチキャスト通信を行う任意の始点ノードから複数のマルチキャスト終点ノードまでの最適経路を探索するマルチキャスト経路探索装置であって、
    基準エージェントにより、前記始点ノードから前記複数のマルチキャスト終点ノードに至る経路上における複数のブランチ候補を探索して基準ブランチ候補記憶部に保存し、当該基準ブランチ候補記憶部に保存された複数のブランチ候補の中から終点が前記複数のマルチキャスト終点ノードのいずれかに到達しかつブランチコストが最小のブランチ候補を決定ブランチとして基準ブランチ記憶部に保存する経路探索処理を、前記複数のマルチキャスト終点ノードのすべてについて決定ブランチが得られるまで実行する手段と、
    前記基準エージェントにより決定ブランチが得られるごとに、当該基準エージェントから派生する第1の派生エージェントを作成すると共に、この時点で前記基準ブランチ候補記憶部に保存されているすべてのブランチ候補を前記第1の派生エージェントの第1のブランチ候補記憶部にコピーし、かつ前記基準ブランチ記憶部に保存されたブランチのうち前記決定ブランチを除いたブランチを前記第1の派生エージェントの第1のブランチ記憶部にコピーする第1の派生エージェント作成手段と、
    前記第1の派生エージェントにより、前記第1のブランチ候補記憶部に保存されたブランチ候補を基準にして前記複数のマルチキャスト終点ノードに至る経路上におけるブランチ候補を探索して前記第1のブランチ候補記憶部に保存し、当該第1のブランチ候補記憶部に保存されたブランチ候補の中から終点が前記複数のマルチキャスト終点ノードのいずれかに到達しかつブランチコストが最小のブランチ候補を決定ブランチとして第1のブランチ記憶部に保存する経路探索処理を、前記複数のマルチキャスト終点ノードのすべてについて決定ブランチが得られるまで実行する手段と、
    前記第1の派生エージェントにより決定ブランチが得られるごとに、当該第1の派生エージェントからさらに派生する第2の派生エージェントを作成すると共に、この時点で前記第1のブランチ候補記憶部に保存されているすべてのブランチ候補を前記第2の派生エージェントの第2のブランチ候補記憶部にコピーし、かつ前記第1のブランチ記憶部に保存されたブランチのうち前記決定ブランチを除いたブランチを前記第2の派生エージェントの第2のブランチ記憶部にコピーする第2の派生エージェント作成手段と、
    前記第2の派生エージェントにより、前記第2のブランチ候補記憶部に保存されたブランチ候補を基準にして前記複数のマルチキャスト終点ノードに至る経路上におけるブランチ候補を探索して前記第2のブランチ候補記憶部に保存し、当該第2のブランチ候補記憶部に保存されたブランチ候補の中から終点が前記複数のマルチキャスト終点ノードのいずれかに到達しかつブランチコストが最小のブランチ候補を決定ブランチとして第2のブランチ記憶部に保存する経路探索処理を、前記複数のマルチキャスト終点ノードのすべてについて決定ブランチが得られるまで実行する手段と、
    前記第1及び第2の派生エージェント作成手段により作成された第1及び第2の派生エージェントのエージェントコストを含む属性情報を、派生エージェントリストを用いて管理する手段と、
    最終的にすべてのエージェントにより前記複数のマルチキャスト終点ノードのすべてについて決定ブランチが得られた場合に、前記基準エージェント、第1および第2の派生エージェントによりそれぞれ得られた決定ブランチに基づく各マルチキャスト経路コストを比較し、当該マルチキャスト経路コストが最も小さいマルチキャスト経路を最適経路として選択する手段と
    を具備することを特徴とするマルチキャスト経路探索装置。
  2. 前記第1および第2の派生エージェント作成手段は、
    前記基準エージェントにより得られた決定ブランチに基づくマルチキャスト経路コストと、新たな派生エージェントにより得られると予測されるマルチキャスト経路コストとのコスト差を算出し、当該算出されたコスト差に基づいて、前記新たな派生エージェントの作成が可能であるか否かを判定する第1の手段を備えることを特徴とする請求項1記載のマルチキャスト経路探索装置。
  3. 前記第1および第2の派生エージェント作成手段は、
    前記新たな派生エージェントの作成が可能と判定された場合に、前記派生エージェントリストをもとに、当該派生エージェントリスト内の作成済みの派生エージェント数が予め設定した上限値に達しているか否かを判定し、上限値に達していない場合に前記新たな派生エージェントを作成する第2の手段と、
    前記派生エージェントリスト内の作成済みの派生エージェント数が上限値に達していると判定された場合には、前記派生エージェントリストに登録されている派生エージェントのエージェントコストのうちの最大値と、前記新たな派生エージェントのエージェントコストの予測値とを比較し、前記予測値が前記最大値より小さい場合に、前記新たな派生エージェントを作成して、前記エージェントコストが最大の派生エージェントを前記作成された新たな派生エージェントに入れ替える第3の手段と
    を、さらに備えることを特徴とする請求項2記載のマルチキャスト経路探索装置。
  4. 前記基準エージェント、前記第1および第2の派生エージェントは、
    経路探索処理の過程においてノードごとに当該ノードまでの最短ブランチ候補に準じる準最短ブランチ候補とそのブランチコストを保存する手段と、
    派生元エージェントが直前に選択した決定ブランチの終点ノードが保持する準最短ブランチ候補を、当該派生エージェントが新たなブランチ候補としてブランチ候補記憶部に格納する手段と
    を有し、
    前記第1及び第2の派生エージェント作成手段は、前記新たな派生エージェントによるマルチキャスト経路コストの予測値を|dev_R(k)|、当該新たな派生エージェントを作成する直前までに前記基準エージェントにより得られた決定ブランチに基づくマルチキャスト経路コストを|R(0)|、未到達マルチキャスト終点の数をENDS、その係数をW(W≧0)、前記コスト差に基づいた評価値をEVA_VALUE 1とするとき、
    前記予測値|dev_R(k)|を、前記新たな派生エージェントを作成する直前に前記派生元のエージェントにより得られた決定ブランチの終端ノードが保持する準最短ブランチ候補のブランチコストと、前記派生元のエージェントのブランチ候補記憶部に保存されているブランチ候補における最小のブランチコストとのうちの小さい方を、前記新たな派生エージェントを作成する直前に前記派生元のエージェントにより得られた決定ブランチを除いた決定ブランチに基づくマルチキャスト経路コストに加算することにより算出し、
    前記評価値EVA_VALUE 1を、
    EVA_VALUE 1=|dev_R(k)|−|R(0)|−W×ENDS
    により算出し、
    前記算出された評価値EVA_VALUE 1が0以下の場合に前記新たな派生エージェントを作成可能と判定することを特徴とする請求項2記載のマルチキャスト経路探索装置。
  5. 前記第1及び第2の派生エージェント作成手段の第3の手段は、前記新たな派生エージェントのエージェントコストの予測値をAGENT_COST 1、当該新たな派生エージェントにより得られると予測されるマルチキャスト経路コストの値を|dev_R(k)|、当該新たな派生エージェントの作成直前までに前記基準エージェントにより得られた決定ブランチに基づくマルチキャスト経路コストを|R(0)|、当該派生エージェントの前記基準エージェントからの派生段階数をDEVS、その係数をW1(W1≧0)、当該派生エージェントが派生した時点の未到達マルチキャスト終点の数をENDS、その係数をW2(W2≧0)とするとき、
    前記予測値|dev_R(k)|を、当該派生エージェントの作成直前に前記派生元のエージェントにより得られた決定ブランチの終端ノードが保持する準最短ブランチ候補のブランチコストと、前記派生元のエージェントのブランチ候補記憶部に保存されているブランチ候補における最小ブランチコストのうちの小さい方を、当該派生エージェントを作成する直前に前記派生元のエージェントにより得られた決定ブランチを除いた決定ブランチに基づくマルチキャスト経路コストに加算することにより算出し、
    前記新たな派生エージェントのエージェントコストの予測値AGENT_COST 1 を
    AGENT_COST 1=|dev_R(k)|−|R(0)|+W1×DEVS−W2×ENDS
    により算出することを特徴とする請求項3記載のマルチキャスト経路探索装置。
  6. 前記第1または第2の派生エージェントにより決定ブランチが得られるごとに、当該第1または第2の派生エージェントにより得られた決定ブランチに基づくマルチキャスト経路コストと、前記基準エージェントにより得られた決定ブランチに基づくマルチキャスト経路コストとのコスト差を算出し、当該算出されたコスト差に基づいて、当該第1または第2の派生エージェントを前記派生エージェントリストから削除する派生エージェント削除手段を、さらに具備することを特徴とする請求項1乃至3の何れかに記載のマルチキャスト経路探索装置。
  7. 前記派生エージェント削除手段は、前記第1または第2の派生エージェントによるマルチキャスト経路コストを|R(k)|、この時点までに前記第1または第2の派生エージェントを作成する直前までに前記基準エージェントにより得られた決定ブランチに基づくマルチキャスト経路コストを|R(0)|、未到達マルチキャスト終点の数をENDS、その係数をW(W≧0)、前記コスト差に基づいた評価値をEVA_VALUE 2とするとき、
    前記評価値EVA_VALUE 2を、
    EVA_VALUE 2=|R(k)|−|R(0)|−W×ENDS
    により算出し、
    前記算出された評価値EVA_VALUE 2が0より大きい場合に前記第1または第2の派生エージェントを前記派生エージェントリストから削除することを特徴とする請求項6記載のマルチキャスト経路探索装置。
  8. 前記第1または第2の派生エージェントにより決定ブランチが得られるごとに、前記派生エージェントリストに登録された派生エージェントのエージェントコストを更新するエージェントコスト更新手段を、さらに具備し、
    前記エージェントコスト更新手段は、前記登録された派生エージェントのこの時点でのマルチキャスト経路コストを|R(k)|、この時点までに前記基準エージェントにより得られた決定ブランチに基づくマルチキャスト経路コストを|R(0)|、当該派生エージェントの基準エージェントからの派生段階数をDEVS、その係数をW1(W1≧0)、当該派生エージェントが派生した時点の未到達マルチキャスト終点の数をENDS、その係数をW2(W2≧0)とするときに、更新するエージェントコストAGENT_COST 2を
    AGENT_COST 2=|R(k)|−|R(0)|+W1×DEVS−W2×ENDS
    により算出することを特徴とする請求項1乃至3の何れかに記載のマルチキャスト経路探索装置。
  9. 複数のノードを通信リンクを介して相互に接続可能としたネットワークで使用されるマルチキャスト経路探索装置が、前記複数のノードのうちマルチキャスト通信を行う任意の始点ノードから複数のマルチキャスト終点ノードまでの最適経路を探索するマルチキャスト経路探索方法であって、
    基準エージェントにより、前記始点ノードから前記複数のマルチキャスト終点ノードに至る経路上における複数のブランチ候補を探索して基準ブランチ候補記憶部に保存し、当該基準ブランチ候補記憶部に保存された複数のブランチ候補の中から終点が前記複数のマルチキャスト終点ノードのいずれかに到達しかつブランチコストが最小のブランチ候補を決定ブランチとして基準ブランチ記憶部に保存する経路探索処理を、前記複数のマルチキャスト終点ノードのすべてについて決定ブランチが得られるまで実行する過程と、
    前記基準エージェントにより決定ブランチが得られるごとに、当該基準エージェントから派生する第1の派生エージェントを作成すると共に、この時点で前記基準ブランチ候補記憶部に保存されているすべてのブランチ候補を前記第1の派生エージェントの第1のブランチ候補記憶部にコピーし、かつ前記基準ブランチ記憶部に保存されたブランチのうち前記決定ブランチを除いたブランチを前記第1の派生エージェントの第1のブランチ記憶部にコピーする過程と、
    前記第1の派生エージェントにより、前記第1のブランチ候補記憶部に保存されたブランチ候補を基準にして前記複数のマルチキャスト終点ノードに至る経路上におけるブランチ候補を探索して前記第1のブランチ候補記憶部に保存し、当該第1のブランチ候補記憶部に保存されたブランチ候補の中から終点が前記複数のマルチキャスト終点ノードのいずれかに到達しかつブランチコストが最小のブランチ候補を決定ブランチとして第1のブランチ記憶部に保存する経路探索処理を、前記複数のマルチキャスト終点ノードのすべてについて決定ブランチが得られるまで実行する過程と、
    前記第1の派生エージェントにより決定ブランチが得られるごとに、当該第1の派生エージェントからさらに派生する第2の派生エージェントを作成すると共に、この時点で前記第1のブランチ候補記憶部に保存されているすべてのブランチ候補を前記第2の派生エージェントの第2のブランチ候補記憶部にコピーし、かつ前記第1のブランチ記憶部に保存されたブランチのうち前記決定ブランチを除いたブランチを前記第2の派生エージェントの第2のブランチ記憶部にコピーする過程と、
    前記第2の派生エージェントにより、前記第2のブランチ候補記憶部に保存されたブランチ候補を基準にして前記複数のマルチキャスト終点ノードに至る経路上におけるブランチ候補を探索して前記第2のブランチ候補記憶部に保存し、当該第2のブランチ候補記憶部に保存されたブランチ候補の中から終点が前記複数のマルチキャスト終点ノードのいずれかに到達しかつブランチコストが最小のブランチ候補を決定ブランチとして第2のブランチ記憶部に保存する経路探索処理を、前記複数のマルチキャスト終点ノードのすべてについて決定ブランチが得られるまで実行する過程と、
    前記作成された第1及び第2の派生エージェントのエージェントコストを含む属性情報を、派生エージェントリストを用いて管理する過程と、
    最終的にすべてのエージェントが前記複数のマルチキャスト終点ノードのすべてについて決定ブランチが得られた場合に、前記基準エージェント、第1および第2の派生エージェントによりそれぞれ得られた決定ブランチに基づく各マルチキャスト経路コストを比較し、当該マルチキャスト経路コストが最も小さいマルチキャスト経路を最適経路として選択する過程と
    を具備することを特徴とするマルチキャスト経路探索方法。
JP2014231001A 2014-11-13 2014-11-13 マルチキャスト経路探索装置および方法 Active JP6236375B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2014231001A JP6236375B2 (ja) 2014-11-13 2014-11-13 マルチキャスト経路探索装置および方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014231001A JP6236375B2 (ja) 2014-11-13 2014-11-13 マルチキャスト経路探索装置および方法

Publications (2)

Publication Number Publication Date
JP2016096432A JP2016096432A (ja) 2016-05-26
JP6236375B2 true JP6236375B2 (ja) 2017-11-22

Family

ID=56072005

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014231001A Active JP6236375B2 (ja) 2014-11-13 2014-11-13 マルチキャスト経路探索装置および方法

Country Status (1)

Country Link
JP (1) JP6236375B2 (ja)

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE60320104T2 (de) * 2002-12-11 2009-05-14 Nippon Telegraph & Telephone Co. Verfahren und Vorrichtung zur Berechnung von Mehrfachsendungsleitwegen
JP3755527B2 (ja) * 2002-12-11 2006-03-15 日本電信電話株式会社 マルチキャスト転送経路計算方法及びマルチキャスト転送経路計算装置並びにプログラム
JP4589978B2 (ja) * 2008-04-18 2010-12-01 日本電信電話株式会社 経路設定方法および経路設定装置
JP5756049B2 (ja) * 2012-04-04 2015-07-29 日本電信電話株式会社 マルチキャスト経路計算方法及び装置

Also Published As

Publication number Publication date
JP2016096432A (ja) 2016-05-26

Similar Documents

Publication Publication Date Title
US9602415B2 (en) Flow based network service insertion
US10404576B2 (en) Constrained shortest path determination in a network
JP6007799B2 (ja) 集中管理型網制御システム
CN105532037B (zh) 用于无缝漫游的软件定义网络中的自动隧道
US9253077B2 (en) Parallel top-K simple shortest paths discovery
KR102217796B1 (ko) 통신 네트워크에서의 경로 결정
CN108337170B (zh) 分布式资源查找方法和系统
US9590890B2 (en) Transfer apparatus, server, and route changing method
WO2022012576A1 (zh) 路径规划方法、装置、路径规划设备及存储介质
JP5391322B2 (ja) 経路計算方法、プログラムおよび計算装置
US11108854B2 (en) Peer-to-peer network for internet of things resource allocation operation
JP6236375B2 (ja) マルチキャスト経路探索装置および方法
CN108347377A (zh) 数据转发方法及装置
WO2012080874A1 (en) Managing stale route removal in a routing information base of a network element
US7334048B1 (en) Method and apparatus for fast route table update
CN112217655B (zh) Sd-wan系统中网络设备配置方法、装置和计算机设备
JP5271817B2 (ja) 経路探索方法、装置及びプログラム
CN113114567B (zh) 一种消息处理方法、装置、电子设备及存储介质
JP7302730B2 (ja) 経路情報管理装置、経路情報管理方法及びプログラム
CN109039895B (zh) 基于OpReduce系统的优化解耦设计的搜索系统及方法
CN105591773B (zh) 一种创建业务与增量发现并发处理的方法、装置和系统
KR20130068051A (ko) 식별자 관리 장치 및 그것의 식별자 관리 방법
CN106095947A (zh) 面向资源树的语义查询访问控制方法及系统
JP2013098647A (ja) マルチキャスト通信における経路計算方法
JP6485811B2 (ja) ノード装置および経路表管理方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170105

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20171016

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20171024

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20171030

R150 Certificate of patent or registration of utility model

Ref document number: 6236375

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150