JP2016096432A - Multicast route search device and method - Google Patents

Multicast route search device and method Download PDF

Info

Publication number
JP2016096432A
JP2016096432A JP2014231001A JP2014231001A JP2016096432A JP 2016096432 A JP2016096432 A JP 2016096432A JP 2014231001 A JP2014231001 A JP 2014231001A JP 2014231001 A JP2014231001 A JP 2014231001A JP 2016096432 A JP2016096432 A JP 2016096432A
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.)
Granted
Application number
JP2014231001A
Other languages
Japanese (ja)
Other versions
JP6236375B2 (en
Inventor
洋 松浦
Hiroshi Matsuura
洋 松浦
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/en
Publication of JP2016096432A publication Critical patent/JP2016096432A/en
Application granted granted Critical
Publication of JP6236375B2 publication Critical patent/JP6236375B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

PROBLEM TO BE SOLVED: To enable the search of a low-cost multicast route in comparison with a simple application of BBMC algorithm.SOLUTION: Whenever a determination branch is created by a reference agent (0), a multicast route search device determines whether or not a derivation agent (k) is created from the agent (0), where k=1, 2,..., and creates the derivation agent to perform route search if a condition is satisfied. In addition, whenever a determination branch is created by the derivation agent k, the device determines whether or not a derivation agent is created in the same manner, and creates the derivation agent to perform route search if a condition is satisfied. When determination branches are obtained by all the agents eventually, the device selects a multicast route of which the multicast route cost is the minimum as a final tree from the determination branches.SELECTED DRAWING: Figure 1

Description

この発明は、マルチキャスト通信で使用するマルチキャストツリーを生成するためのマルチキャスト経路探索装置および方法に関する。   The present invention relates to a multicast route searching apparatus and method for generating a multicast tree for use in multicast communication.

IP(Internet Protocol)ネットワークでは、マルチキャスト動画ストリーミングに代表される放送型サービスの要求が高まっており、この種のサービスを実施するにはツリーを構成するすべてのリンクコストの合計が最小になるようなマルチキャストツリーを作成する必要がある。   In the IP (Internet Protocol) network, there is an increasing demand for broadcast-type services represented by multicast video streaming. To implement this type of service, the total cost of all the links that make up the tree is minimized. A multicast tree needs to be created.

マルチキャストツリーを生成するアルゴリズムとしては、例えばBBMC(Branch-Based Multi-Cast)アルゴリズムが知られている。BBMCアルゴリズムは、複数のノードとこれら複数のノード間を接続する複数の方向性リンク(リンクの方向によりリンクコストが異なるリンク)とにより構成されるネットワーク上おいて、先ずマルチキャスト始点ノードのみから始まるマルチキャストツリーを定義し、当該マルチキャストツリーからまだ経路が決まっていないマルチキャスト終点ノード集合の1終点ノードに辿り着く最短経路を新ブランチとしてマルチキャストツリーに加え、この処理を最終的にすべてのマルチキャストツリーブランチが決まるまで繰り返すアルゴリズムである(例えば非特許文献1を参照)。   As an algorithm for generating a multicast tree, for example, a BBMC (Branch-Based Multi-Cast) algorithm is known. The BBMC algorithm is a multicast that starts with only a multicast start node on a network composed of a plurality of nodes and a plurality of directional links (links having different link costs depending on the link direction). Define a tree, add the shortest path that reaches one terminal node of the set of multicast terminal nodes whose paths have not yet been determined from the multicast tree to the multicast tree as a new branch, and finally perform this process for all multicast tree branches (For example, see Non-Patent Document 1).

図6は、BBMCアルゴリズムの処理手順と処理内容を示すフローチャートである。先ずステップS100において、アルゴリズムの初期条件として、マルチキャストの終点ノード集合Eと、リンクの始点ノードとしてステップS101で利用される始点ノード集合Vと、ブランチ候補の集合を表すBCL(Branch Candidate リスト)と、最終的なツリーを構成するブランチの集合Rが記憶部に記憶される。このうちBCLおよびRは、初期値として空集合に設定される。また、始点ノード集合Vにはマルチキャスト始点ノードのみが格納される。   FIG. 6 is a flowchart showing the processing procedure and processing contents of the BBMC algorithm. First, in step S100, as an initial condition of the algorithm, a multicast end node set E, a start node set V used in step S101 as a link start node, a BCL (Branch Candidate List) representing a set of branch candidates, A set R of branches constituting the final tree is stored in the storage unit. Of these, BCL and R are set to an empty set as initial values. Further, only the multicast start point node is stored in the start point node set V.

マルチキャストツリーを作成するネットワークの各ノードの属性情報は、図5に示すBBMCルーティングモジュールに示すようにノード情報記憶部202に記憶される。“reached属性”は当該ノードがマルチキャストツリーの構成要素になったかを示すもので、アルゴリズムの最初では始点ノードのみがマルチキャストツリーに含まれるので“yes”に設定され、他ノードはすべて“no”に設定される。“ノードまでの最短ブランチ候補とそのコスト”は、アルゴリズム開始時の初期値として“最短ブランチ候補”=φ、“最短ブランチ候補コスト”=∞に設定される。   The attribute information of each node of the network that creates the multicast tree is stored in the node information storage unit 202 as shown in the BBMC routing module shown in FIG. The “reached attribute” indicates whether the corresponding node has become a component of the multicast tree. At the beginning of the algorithm, only the start node is included in the multicast tree, so it is set to “yes” and all other nodes are set to “no”. Is set. “The shortest branch candidate to the node and its cost” are set to “shortest branch candidate” = φ and “shortest branch candidate cost” = ∞ as initial values at the start of the algorithm.

ステップS101では始点ノード集合V内の各ノードから発するリンクを選択し、当該リンクからブランチ候補を作成する。その際、ブランチ終点がマルチキャストの終点ノード集合Eに記憶されたマルチキャスト終点の場合、つまり直前のステップS103で“yes”と判定された場合には、当該リンクがそのままブランチ候補になる。これに対し、マルチキャスト終点でない場合、つまりステップS103=“no”の場合には、当該リンクを直前のステップS102で選択された最短ブランチ候補の後に繋げた経路がブランチ候補になる。   In step S101, a link originating from each node in the starting point node set V is selected, and a branch candidate is created from the link. At that time, if the branch end point is the multicast end point stored in the multicast end point node set E, that is, if “yes” is determined in the immediately preceding step S103, the link becomes a branch candidate as it is. On the other hand, when the end point is not the multicast end point, that is, when step S103 = "no", a route connecting the link after the shortest branch candidate selected in the immediately preceding step S102 becomes a branch candidate.

アルゴリズムの第1ルーチンでは、リンクがそのまま新規ブランチ候補になる。この新規ブランチ候補の作成処理は、始点ノード集合Vに格納されたノードから発するすべてのリンクについて行われるが、リンクの終点ノードの“reached属性”が“yes”の場合には、そのノードはすでにマルチキャストツリーに含まれることになるので、ブランチ候補にはならない。   In the first routine of the algorithm, the link becomes a new branch candidate as it is. This new branch candidate creation process is performed for all links originating from the node stored in the start node set V. If the “reached attribute” of the link end node is “yes”, the node has already been created. Since it will be included in the multicast tree, it will not be a branch candidate.

これに対し、“reached属性”が“no”の場合で、終点ノード属性の“最短ブランチ候補コスト”に格納されているブランチコストが新規ブランチ候補のブランチコストより大きい場合には、新規ブランチ候補がブランチ候補集合BCLに登録される。新規ブランチ候補がブランチ候補集合BCLに登録される場合、当該新規ブランチ候補の終点ノードの“最短ブランチ候補”が空集合の場合には、ブランチ候補の集合BCLから削除されるブランチ候補はない。しかし、“最短ブランチ候補”が存在する場合には、当該ブランチ候補がブランチ候補の集合BCLから削除される。また、上記新規ブランチ候補が登録されると、“最短ブランチ候補”および“最短ブランチ候補コスト”の値は、新規ブランチ候補とその経路コストの値に置き換えられる。   On the other hand, when the “reached attribute” is “no” and the branch cost stored in the “shortest branch candidate cost” of the end node attribute is larger than the branch cost of the new branch candidate, the new branch candidate is Registered in the branch candidate set BCL. When a new branch candidate is registered in the branch candidate set BCL, if the “shortest branch candidate” of the end node of the new branch candidate is an empty set, there is no branch candidate deleted from the branch candidate set BCL. However, when the “shortest branch candidate” exists, the branch candidate is deleted from the branch candidate set BCL. When the new branch candidate is registered, the values of “shortest branch candidate” and “shortest branch candidate cost” are replaced with the new branch candidate and its path cost value.

“最短ブランチ候補コスト”に格納されているブランチコストが新規ブランチ候補のブランチコスト以下の場合には、新規ブランチ候補はブランチ候補の集合BCLに格納されず、BCLから削除されるブランチ候補も存在しない。また、当該ノードの“最短ブランチ候補”と“最短ブランチ候補コスト”の値は変化しない。   If the branch cost stored in the “shortest branch candidate cost” is less than or equal to the branch cost of the new branch candidate, the new branch candidate is not stored in the branch candidate set BCL, and there is no branch candidate to be deleted from the BCL. . Further, the “shortest branch candidate” and “shortest branch candidate cost” values of the node do not change.

ステップS102では、ブランチ候補の集合BCL内の最短ブランチ候補、つまりBCL内で最もブランチコストが小さいブランチ候補を取り出す。その際、当該最短ブランチ候補の終点ノードの属性中の“当該ノードまでの最短ブランチ候補”を空集合に設定する。また、当該最短ブランチ候補の終点ノードを始点ノード集合V内の既存ノード集合と置き換えてVに格納する。   In step S102, the shortest branch candidate in the branch candidate set BCL, that is, the branch candidate with the lowest branch cost in the BCL is extracted. At that time, “shortest branch candidate to the node” in the attribute of the end point node of the shortest branch candidate is set to an empty set. Further, the end node of the shortest branch candidate is replaced with the existing node set in the start node set V and stored in V.

ステップS103では、ステップS102で選択した最短ブランチ候補の終点ノードが、マルチキャストの終点ノード集合Eにマルチキャスト終点ノードとして存在するかどうかを判断し、存在すればステップS104へ進み、存在しなければステップS101に戻る。   In step S103, it is determined whether the end node of the shortest branch candidate selected in step S102 exists as a multicast end node in the multicast end node set E. If it exists, the process proceeds to step S104. Return to.

ステップS104ではステップS102で選択された最短ブランチ候補を新ブランチとして集合Rに格納するとともに、当該新ブランチの終点ノードを終点ノード集合Eから削除する。   In step S104, the shortest branch candidate selected in step S102 is stored in the set R as a new branch, and the end node of the new branch is deleted from the end node set E.

ステップS105では、終点ノード集合Eが空集合かどうかを判断し、空集合であればすべてのマルチキャスト終点までのブランチが得られたことと同値であるため、アルゴリズムを終了する。これに対し空集合でない場合には、ステップS106へ進む。   In step S105, it is determined whether or not the end node set E is an empty set. If the end node set E is an empty set, it is the same value that branches to all multicast end points have been obtained, so the algorithm ends. On the other hand, if it is not an empty set, the process proceeds to step S106.

ステップS106では、現在新ブランチの終点ノードが格納されている始点ノード集合V内のノード集合を、ステップS104でブランチ集合Rに格納された新ブランチ上の始点を除くすべてのノード集合に置き換える。また、始点ノード集合V内のノード集合に含まれるすべてのノードの“reached属性”を“yes”に設定する。   In step S106, the node set in the start point node set V in which the end node of the new branch is currently stored is replaced with all the node sets except the start point on the new branch stored in the branch set R in step S104. In addition, the “reached attribute” of all nodes included in the node set in the start node set V is set to “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. 2013H. 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で示されている。各ノード間にはリンクがあるが、リンク上の矢印はそのリンクの方向を示し、リンクの横の数はそのリンクコストを示している。   However, the above BBMC algorithm sometimes creates a tree far from the minimum tree cost. An example is shown in FIG. In the figure, a network that is a target for creating a multicast tree with BBMC is indicated by s for the multicast tree start node, e1 to e3 for the end node, and n1 to n4 for the other nodes. There is a link between each node, the arrow on the link indicates the direction of the link, and the number next to the link indicates the link cost.

図7(1)は、BBMCアルゴリズムがステップS101で始点ノード集合Vに設定されたノードsから発するリンクをブランチ候補としてブランチ候補の集合BCLに登録した結果を示している。この場合、ブランチ候補s−n2が最もブランチコストが小さいブランチ候補なので、s−n2が図6に示すステップS102でブランチ候補の集合BCLから取り出されて、始点ノード集合Vがn2に置き換えられる。ステップS103でn2が終点ノードEに属さないため、ステップS101に処理が移る。   FIG. 7A shows the result of the BBMC algorithm registering the link originating from the node s set as the start node set V in step S101 as a branch candidate in the branch candidate set BCL. In this case, since the branch candidate s-n2 has the lowest branch cost, s-n2 is extracted from the branch candidate set BCL in step S102 shown in FIG. 6, and the start node set V is replaced with n2. Since n2 does not belong to the end node E in step S103, the process moves to step 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に戻る。   FIG. 7B shows a process of registering a branch candidate in which BBMC links a link originating from n2 to sn2 in the second step S101 in the branch candidate set BCL. Since s-n2-e2 is the first branch candidate up to e2, it is registered in the branch candidate set BCL. However, since s-n2-n1 has a branch cost “6” and is larger than the branch cost “5” of the shortest branch candidate s-n1 already stored in the node information storage unit 202 of n1, Not registered in the aggregate BCL. Since s-n2-e1 is the first branch candidate up to e1, it is registered in the branch candidate set BCL. As a result, since s-n2-e1 has the lowest branch cost among the set of branch candidates BCL, it is extracted from the set of branch candidates BCL, and e1 is a multicast end node in step S103. n2-e1 is stored in the branch set R. At this time, e1 is deleted from the end node set E, so E = {e2, e3}. However, since it is not yet an empty set, the process proceeds to step S106, and n2 and e1 are stored in the nodes in the start point node set V. As a result, V = {n2, e1}, and the process returns to step 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に格納される。   FIG. 7 (3) shows a process in which the BBMC registers the link originating from the nodes n2 and e1 in the third step S101 as a new branch candidate in the branch candidate set BCL. Since “yes” is selected in step S103 of the previous routine, each link becomes a branch candidate independently. Since n2-e2 has a branch cost lower than that of the branch candidate s-n2-e2 registered in e2, s-n2-e2 is replaced and registered in the branch candidate set BCL. Since n2-n1 has a lower branch cost than the branch candidate s-n1 registered in n1, s-n1 is replaced and registered in the branch candidate set BCL. As a result, since n2-e2 has the smallest branch cost as n2-n1, it is deleted from the branch candidate set BCL, and is stored in the branch set R because e2 is an end point node.

図7(4)は、BBMCが始点ノード集合Vに格納されているe2からのリンクを新ブランチ候補としてBCLに登録する処理を示している。結果として、e2−n4、e2−e3がブランチ候補の集合BCLに登録され、n2−n1が最も小さいブランチコストを持つブランチ候補なので、ブランチ候補の集合BCLから削除される。   FIG. 7 (4) shows processing for registering a link from e2 in which BBMC is stored in the start node set V as a new branch candidate in the BCL. As a result, e2-n4 and e2-e3 are registered in the branch candidate set BCL, and since n2-n1 is the branch candidate having the smallest branch cost, it is deleted from the branch candidate set BCL.

このように探索処理を続けていくと最終的にブランチ集合Rに格納されるブランチはs−n2−e1、n2−e2、e2−e3の3つのブランチとなる。この合計のツリーコストは“12”となり、コストの大きいツリーになってしまう。   If the search process is continued in this way, the branches that are finally stored in the branch set R become three branches s-n2-e1, n2-e2, and e2-e3. The total tree cost is “12”, resulting in a costly tree.

この発明は上記事情に着目してなされたもので、その目的とするところは、BBMCアルゴリズムを単純に適用した場合に比べ、より小さなコストのマルチキャスト経路を探索可能としたマルチキャスト経路探索装置および方法を提供することにある。   The present invention has been made paying attention to the above circumstances, and an object of the present invention is to provide a multicast route search apparatus and method capable of searching for a multicast route with a lower cost compared to a case where the BBMC algorithm is simply applied. It is to provide.

上記目的を達成するためにこの発明は、以下のような各種態様を備える。
(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の派生エージェントによりそれぞれ得られた決定ブランチに基づく各マルチキャスト経路コストを比較し、当該マルチキャスト経路コストが最も小さいマルチキャスト経路を最適経路として選択する手段とを備える。
In order to achieve the above object, the present invention comprises the following various aspects.
(1) Used in a network in which a plurality of nodes can be connected to each other via a communication link, and searches for an optimum route from an arbitrary start node that performs multicast communication to a plurality of multicast end nodes among the plurality of nodes. A multicast route search device, wherein a reference agent searches a plurality of branch candidates on a route from the start point node to the plurality of multicast end point nodes and stores the plurality of branch candidates in a reference branch candidate storage unit, and the reference branch candidate storage unit A path search process in which a branch candidate whose end point reaches one of the plurality of multicast end point nodes and has a minimum branch cost is stored in the reference branch storage unit as a determined branch from the plurality of branch candidates stored in For all multiple multicast endpoint nodes A means to be executed until a decision branch is obtained and each time a decision branch is obtained by the reference agent, a first derivative agent derived from the reference agent is created and stored in the reference branch candidate storage unit at this time All the branch candidates that have been determined are copied to the first branch candidate storage unit of the first derivation agent, and the branches other than the determined branch among the branches stored in the reference branch storage unit are First derivative agent creating means for copying to the first branch storage unit of the derived agent, and the plurality of the branch agents stored in the first branch candidate storage unit by the first derivative agent as a reference. Search for branch candidates on the route to the multicast end node A branch candidate that is stored in the first branch candidate storage unit, and whose end point reaches one of the multicast end point nodes among the branch candidates stored in the first branch candidate storage unit and has the smallest branch cost The decision branch is obtained by the means for executing the route search processing for saving the decision branch in the first branch storage unit until the decision branch is obtained for all of the plurality of multicast end nodes, and the first derived agent. Each time, a second derivation agent that is further derived from the first derivation agent is created, and all the branch candidates stored in the first branch candidate storage unit at this time are stored in the second derivation agent. Are copied to the second branch candidate storage unit and stored in the first branch storage unit. The second derived agent creating means for copying the branch excluding the determined branch among the existing branches to the second branch storage unit of the second derived agent; and The branch candidates stored in the branch candidate storage unit are searched for branch candidates on the route to the plurality of multicast end-point nodes, stored in the second branch candidate storage unit, and the second branch candidates A path search process for storing a branch candidate whose end point reaches one of the plurality of multicast end point nodes from among the branch candidates stored in the storage unit and having the smallest branch cost as a determined branch in the second branch storage unit; , And execute until a decision branch is obtained for all of the multiple multicast end nodes. Means, and means for managing attribute information including agent costs of the first and second derived agents created by the first and second derived agent creating means using a derived agent list, and finally all When the decision branch is obtained for all of the plurality of multicast end nodes by the agent, the multicast path costs based on the decision branch respectively obtained by the reference agent and the first and second derived agents are compared, Means for selecting the multicast route having the lowest multicast route cost as the optimum route.

(2)(1)において、上記第1および第2の派生エージェント作成手段は、上記基準エージェントにより得られた決定ブランチに基づくマルチキャスト経路コストと、新たな派生エージェントにより得られると予測されるマルチキャスト経路コストとのコスト差を算出し、当該算出されたコスト差に基づいて、上記新たな派生エージェントの作成が可能であるか否かを判定する第1の手段を備える。   (2) In (1), the first and second derived agent creation means are configured to determine the multicast route cost based on the decision branch obtained by the reference agent and the multicast route predicted to be obtained by the new derived agent. A first means for calculating a cost difference from the cost and determining whether or not the new derivative agent can be created based on the calculated cost difference is provided.

(3)(2)において、上記第1および第2の派生エージェント作成手段は、上記新たな派生エージェントの作成が可能と判定された場合に、上記派生エージェントリストをもとに、当該派生エージェントリスト内の作成済みの派生エージェント数が予め設定した上限値に達しているか否かを判定し、上限値に達していない場合に上記新たな派生エージェントを作成する第2の手段と、上記派生エージェントリストに登録されている作成済みの派生エージェント数が上限値に達していると判定された場合には、上記派生エージェントリストに登録されている派生エージェントのエージェントコストのうちの最大値と、上記新たな派生エージェントのエージェントコストの予測値とを比較し、上記予測値が上記最大値より小さい場合に、上記新たな派生エージェントを作成して、上記エージェントコストが最大の派生エージェントを上記作成された新たな派生エージェントに置き換える第3の手段を、さらに備える。   (3) In (2), when it is determined that the first and second derived agent creation means can create the new derived agent, the derived agent list is based on the derived agent list. A second means for determining whether or not the number of already created derived agents has reached a preset upper limit, and creating the new derived agent when the upper limit is not reached, and the derived agent list When it is determined that the number of created derivative agents registered in the list has reached the upper limit, the maximum of the agent costs of the derived agents registered in the derived agent list and the new Compared with the estimated agent cost of the derived agent, and if the predicted value is smaller than the maximum value, Create a Do-derived agent, a third means for replacing the derived agents of the agent it costs up to a new derivation agents created above, further comprising.

(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以下の場合に上記新たな派生エージェントを作成可能と判定する。
(4) In (2), the reference agent and the first and second derived agents determine the quasi-shortest branch candidate according to the shortest branch candidate to the node and the branch cost for each node in the course of the route search process. The derivation agent stores the quasi-shortest branch candidate held by the ending node of the decision branch selected immediately before by the derivation source agent in the branch candidate storage unit as a new branch candidate. The first and second derived agent creating means sets the predicted value of the multicast route cost by the new derived agent to | dev_R (k) | and the determination obtained by the reference agent immediately before creating the new derived agent. Multicast route cost based on branch | R (0) | When the number of cast end points is ENDS, the coefficient is W (W ≧ 0), and the evaluation value based on the cost difference is EVA_VALUE 1, the predicted value | dev_R (k) | The branch cost of the quasi-shortest branch candidate held by the terminal node of the decision branch obtained by the derivation source agent immediately before the execution and the minimum branch in the branch candidate stored in the branch candidate storage unit of the derivation source agent The smaller of the costs is calculated by adding to the multicast path cost based on the decision branch excluding the decision branch obtained by the agent of the derivation immediately before creating the new derivation agent, and the evaluation The value EVA_VALUE 1 is
EVA_VALUE 1 = | dev_R (k) | − | R (0) | −W × ENDS
When the calculated evaluation value EVA_VALUE 1 is 0 or less, it is determined that the new derived agent can be created.

(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
により算出する。
(5) In (3), when the third means of the first and second derived agent creation means obtains the estimated value of the agent cost of the new derived agent as AGENT_COST 1 and the new derived agent The expected multicast route cost value is | dev_R (k) |, the multicast route cost based on the decision branch obtained by the reference agent immediately before the creation of the new derived agent is | R (0) | The number of derivation stages of the agent from the above reference agent is DEVS, the coefficient is W1 (W1 ≧ 0), the number of unreachable multicast endpoints at the time when the derived agent is derived is ENDS, and the coefficient is W2 (W2 ≧ 0) The decision value obtained by the derivation source agent immediately before the creation of the derivation agent, using the predicted value | dev_R (k) | Immediately before creating the derivation agent, the smaller of the branch cost of the quasi-shortest branch candidate held by the terminal node and the minimum branch cost of the branch candidate stored in the branch candidate storage unit of the derivation source agent Is added to the multicast path cost based on the decision branch excluding the decision branch obtained by the agent of the derivation, and the agent cost estimate AGENT_COST 1 of the new derivation agent is
AGENT_COST 1 = | dev_R (k) |-| R (0) | + W1 × DEVS−W2 × ENDS
Calculated by

(6)(1)乃至(3)の何れかにおいて、上記第1または第2の派生エージェントにより決定ブランチが得られるごとに、当該第1または第2の派生エージェントにより得られた決定ブランチに基づくマルチキャスト経路コストと、上記基準エージェントにより得られた決定ブランチに基づくマルチキャスト経路コストとのコスト差を算出し、当該算出されたコスト差に基づいて、当該第1または第2の派生エージェントを上記派生エージェントリストから削除する派生エージェント削除手段を、さらに具備する。   (6) In any one of (1) to (3), each time a decision branch is obtained by the first or second derived agent, the decision branch obtained by the first or second derivative agent is used. A cost difference between the multicast path cost and the multicast path cost based on the decision branch obtained by the reference agent is calculated, and based on the calculated cost difference, the first or second derived agent is determined as the derived agent. Derived agent deletion means for deleting from the list is further provided.

(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の派生エージェントを上記派生エージェントリストから削除する。
(7) In (6), the derived agent deleting means sets the multicast route cost by the first or second derived agent to | R (k) |, and the first or second derived agent is reached by this time. The multicast route cost based on the decision branch obtained by the reference agent immediately before creation is | R (0) |, the number of unreachable multicast end points is ENDS, the coefficient is W (W ≧ 0), and the cost difference is When the evaluation value based on EVA_VALUE 2 is the above evaluation value EVA_VALUE 2,
EVA_VALUE 2 = | R (k) |-| R (0) | -W × ENDS
When the calculated evaluation value EVA_VALUE 2 is larger than 0, the first or second derived agent is deleted from the derived agent list.

(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
により算出する。
(8) In any one of (1) to (3), an agent that updates an agent cost of a derived agent registered in the derived agent list every time a decision branch is obtained by the first or second derived agent Cost update means, wherein the agent cost update means determines the multicast path cost of the registered derivative agent at this time as | R (k) | and the determination obtained by the reference agent up to this time The multicast route cost based on the branch is | R (0) |, the number of derivation stages from the reference agent of the relevant agent is DEVS, the coefficient is W1 (W1 ≧ 0), and the unreachable multicast end point when the relevant agent is derived The agent code to be updated is assumed when the number of is ENDS and the coefficient is W2 (W2 ≧ 0). The door AGENT_COST 2
AGENT_COST 2 = | R (k) | − | R (0) | + W1 × DEVS−W2 × ENDS
Calculated by

(1)基準エージェントにより決定ブランチが得られるごとに第1の派生エージェントが作成され、さらにこの第1の派生エージェントにより決定ブランチが得られるごとに第2の派生エージェントが作成される。そして、これらの派生エージェントにより、それぞれ派生元のエージェントから引き継いだブランチ候補およびブランチを基準にしてブランチの探索処理が行われる。すなわち、決定ブランチが得られるごとに段階的に新たな派生エージェントが作成され、これら複数のエージェントによりそれぞれブランチの探索処理が行われる。そして、最終的にすべてのエージェントにより複数のマルチキャスト終点ノードのすべてについて決定ブランチが得られた場合に、当該決定ブランチに基づくマルチキャスト経路コストの中で最もコストが小さいマルチキャスト経路が最適経路として選択される。
このため、基準エージェントによる経路探索で見逃したマルチキャスト経路を第1及び第2の派生エージェントにより見つけることが可能となり、これにより基準エージェントによる経路探索処理のみを用いる場合に比べ、コストの小さいマルチキャスト経路を高い確率で探索することが可能となる。
(1) Each time a decision branch is obtained by the reference agent, a first derivation agent is created, and each time a decision branch is obtained by the first derivation agent, a second derivation agent is created. Then, by these derived agents, branch search processing is performed based on branch candidates and branches inherited from the derivation source agent. That is, each time a decision branch is obtained, a new derived agent is created step by step, and a branch search process is performed by each of the plurality of agents. When a decision branch is finally obtained for all of a plurality of multicast end nodes by all agents, the multicast route having the lowest cost among the multicast route costs based on the decision branch is selected as the optimum route. .
For this reason, it is possible to find the multicast route missed by the route search by the reference agent by the first and second derived agents, thereby reducing the cost of the multicast route compared with the case of using only the route search processing by the reference agent. It becomes possible to search with high probability.

(2)新たな派生エージェントを作成する際に、当該新たな派生エージェントにより得られると予測されるマルチキャスト経路コストと基準エージェントによるマルチキャスト経路コストとのコスト差を考慮して、上記新たな派生エージェントの作成の可否が判定される。このため、基準エージェントよりもコストの小さいマルチキャスト経路を探索できる確率が高い場合にのみ派生エージェントが作成されるため、最小木コストの経路をより高い確率で探索することが可能となる。   (2) When creating a new derived agent, considering the cost difference between the multicast route cost predicted to be obtained by the new derived agent and the multicast route cost by the reference agent, Whether or not creation is possible is determined. For this reason, a derived agent is created only when there is a high probability that a multicast route with a lower cost than the reference agent can be searched, so that a route with the minimum tree cost can be searched with a higher probability.

(3)新たな派生エージェントの作成が可能と判定された場合、派生エージェントリスト内の作成済みの派生エージェント数が上限値に達していない場合に新たな派生エージェントが作成される。一方、作成済みの派生エージェント数が上限値に達している場合には、派生エージェントリストに登録されている派生エージェントのエージェントコストのうちの最大値と、上記新たな派生エージェントのエージェントコストの予測値とが比較され、予測値が最大値より小さい場合に上記新たな派生エージェントが作成されて、派生エージェントリストのエントリが上記エージェントコストの最大の派生エージェントから上記新たな派生エージェントに入れ替えられる。
このため、新たな派生エージェントを作成する際には、派生エージェントリストに基づいて、その上限値の範囲内でエージェントコストのより小さい派生エージェントが作成されることになる。このため、コストがより小さいマルチキャスト経路を探索できる確率が高まる。また、派生エージェント数に上限が設けられるので、派生エージェント数に上限を設けない場合に比べ、経路探索に要する処理負荷を抑制することができる。
(3) When it is determined that a new derived agent can be created, a new derived agent is created when the number of created derived agents in the derived agent list has not reached the upper limit. On the other hand, when the number of created derivative agents has reached the upper limit, the maximum value of the agent costs of the derived agents registered in the derived agent list and the predicted value of the agent cost of the new derived agent are described above. When the predicted value is smaller than the maximum value, the new derived agent is created, and the entry of the derived agent list is replaced with the new derived agent from the derived agent with the largest agent cost.
For this reason, when a new derived agent is created, a derived agent having a smaller agent cost within the range of the upper limit value is created based on the derived agent list. For this reason, the probability that a multicast route with a lower cost can be searched increases. In addition, since the upper limit is set for the number of derived agents, the processing load required for the route search can be suppressed as compared with the case where no upper limit is set for the number of derived agents.

(4)新たな派生エージェントを作成するか否かを判定する際に、基準エージェントによるマルチキャスト経路コスト|R(0)|と、新たな派生エージェントによるマルチキャスト経路コストの予測値|dev_R(k)|とのコスト差だけでなく、まだブランチが辿り着いていないマルチキャスト終端点の数ENDSも考慮して、新たな派生エージェントの作成の可否が判定される。また、新たな派生エージェントによるマルチキャスト経路コストの予測値|dev_R(k)|を算出する際に、該当するノードが保持する準最短ブランチ候補のブランチコストも考慮されるため、予測値|dev_R(k)|をより正確に算出することが可能となる。その結果、新たな派生エージェントの作成の可否をより一層高精度に判定することが可能となる。   (4) When determining whether or not to create a new derived agent, the multicast route cost | R (0) | by the reference agent and the predicted multicast route cost by the new derived agent | dev_R (k) | In addition to the cost difference with the number, the number of multicast termination points ENDS that the branch has not yet reached is also considered, and it is determined whether or not a new derivative agent can be created. In addition, when calculating the predicted value | dev_R (k) | of the multicast route cost by the new derived agent, the branch cost of the quasi-shortest branch candidate held by the corresponding node is also taken into consideration, so the predicted value | dev_R (k ) | Can be calculated more accurately. As a result, whether or not a new derived agent can be created can be determined with higher accuracy.

(5)エージェントコストをもとに新たな第2のエージェントの作成の可否を判定する際に、基準エージェントによるマルチキャスト経路コスト|R(0)|と、新たな派生エージェントによるマルチキャスト経路コストの予測値|dev_R(k)|とのコスト差だけでなく、派生エージェントの基準エージェントからの派生段階数DEVSと、派生時の未到達マルチキャスト終点の数ENDSを考慮して判定が行われる。また、予測値|dev_R(k)|を算出する際には、該当するノードが保持する準最短ブランチ候補のブランチコストも考慮されるため、より正確な予測値を算出することが可能となる。その結果、新たな派生エージェントの作成の可否を判定する際に、より一層精度の高い判定が可能となる。   (5) When determining whether a new second agent can be created based on the agent cost, the multicast route cost | R (0) | by the reference agent and the predicted value of the multicast route cost by the new derivative agent The determination is performed in consideration of not only the cost difference from | dev_R (k) | but also the number of derivation stages DEVS from the reference agent of the derivation agent and the number of unreachable multicast end points ENDS at the time of derivation. In addition, when calculating the predicted value | dev_R (k) |, the branch cost of the quasi-shortest branch candidate held by the corresponding node is also taken into consideration, so that a more accurate predicted value can be calculated. As a result, when determining whether or not a new derived agent can be created, it is possible to determine with higher accuracy.

(6)派生エージェントにより決定ブランチが得られるごとに、当該派生エージェントによるマルチキャスト経路コストと、基準エージェントによるマルチキャスト経路コストのコスト差に基づいた評価値が0より大きい場合には、当該派生エージェントが削除される。このため、基準エージェントにより得られるマルチキャスト経路コストより小さいマルチキャスト経路コストを得る可能性が高い派生エージェントのみを使用して、効果的なマルチキャスト経路探索を行うことができる。   (6) Every time a decision branch is obtained by a derived agent, if the evaluation value based on the cost difference between the multicast route cost by the derived agent and the multicast route cost by the reference agent is greater than 0, the derived agent is deleted Is done. Therefore, an effective multicast route search can be performed using only derived agents that are highly likely to obtain a multicast route cost smaller than the multicast route cost obtained by the reference agent.

(7)上記評価値を算出する際に、まだブランチが辿り着いていないマルチキャスト終点の数ENDSも考慮される。このため、派生エージェントによるマルチキャスト経路コスト|R(k)|と、基準エージェントによるマルチキャスト経路コスト|R(0)|のコスト差のみによりエージェントの削除の可否を判定する場合に比べ、エージェントの削除の可否をより正確に判定することが可能となる。   (7) When calculating the evaluation value, the number of multicast end points ENDS that have not yet reached the branch is also considered. For this reason, agent deletion can be performed compared with the case where the agent deletion permission / inhibition is determined only by the cost difference between the multicast route cost | R (k) | by the derived agent and the multicast route cost | R (0) | It becomes possible to determine the propriety more accurately.

(8)派生エージェントにより決定ブランチが得られるごとに、派生エージェントリストに登録された派生エージェントのエージェントコストが更新される。このため、派生エージェントリストに登録された派生エージェントのエージェントコストを常に最新の状態に維持することができる。しかも、派生エージェントのエージェントコストを算出する際に、当該派生エージェントによるマルチキャスト経路コスト|R(k)|と、当該派生エージェントの作成直前までに基準エージェントにより得られたマルチキャスト経路コスト|R(0)|とのコスト差だけでなく、当該派生エージェントの基準エージェントからの派生段階数DEVSと、派生時の未到達マルチキャスト終点の数ENDSが考慮される。このため、派生エージェントのエージェントコストをより正確に算出することが可能となる。   (8) Every time a decision branch is obtained by a derived agent, the agent cost of the derived agent registered in the derived agent list is updated. Therefore, the agent cost of the derived agent registered in the derived agent list can always be kept up-to-date. In addition, when calculating the agent cost of the derived agent, the multicast route cost | R (k) | by the derived agent and the multicast route cost obtained by the reference agent immediately before the creation of the derived agent | R (0) In addition to the cost difference with |, the number of derivation stages DEVS from the reference agent of the derivation agent and the number of unreachable multicast end points ENDS at the time of derivation are considered. For this reason, the agent cost of the derived agent can be calculated more accurately.

すなわちこの発明によれば、BBMCアルゴリズムを単純に適用した場合に比べ、より小さなコストのマルチキャスト経路を探索可能としたマルチキャスト経路探索装置および方法を提供することができる。   That is, according to the present invention, it is possible to provide a multicast route searching apparatus and method that can search a multicast route with a lower cost as compared with the case where the BBMC algorithm is simply applied.

この発明の一実施形態に係るマルチキャスト経路探索装置の機能構成を示すブロック図。The block diagram which shows the function structure of the multicast route search apparatus which concerns on one Embodiment of this invention. 図1に示したマルチキャスト経路探索装置のルーティングモジュール構成を示す図。The figure which shows the routing module structure of the multicast route search apparatus shown in FIG. 図1に示したマルチキャスト経路探索装置により実行されるマルチキャスト経路探索動作の手順と内容を示すフローチャート。The flowchart which shows the procedure and content of the multicast route search operation | movement performed by the multicast route search apparatus shown in FIG. 図3に示したマルチキャスト経路探索動作の一例を示す図。The figure which shows an example of the multicast route search operation | movement shown in FIG. BBMCアルゴリズムを使用する従来のマルチキャスト経路探索装置のルーティングモジュール構成を示す図。The figure which shows the routing module structure of the conventional multicast route search apparatus which uses a BBMC algorithm. 従来のマルチキャスト経路探索装置により実行されるマルチキャスト経路探索動作の手順と内容を示すフローチャート。The flowchart which shows the procedure and content of the multicast route search operation | movement performed by the conventional multicast route search apparatus. 図6に示したマルチキャスト経路探索動作の一例を示す図。The figure which shows an example of the multicast route search operation | movement shown in FIG.

以下、図面を参照してこの発明に係わる実施形態を説明する。
[一実施形態]
(構成)
図1は、この発明の一実施形態に係るマルチキャスト経路探索装置の機能構成を示すブロック図であり、RSVはマルチキャスト経路探索装置としてのルーティングサーバを示している。また、図2は当該ルーティングサーバRSVのモジュール構成を示す。
Embodiments according to the present invention will be described below with reference to the drawings.
[One Embodiment]
(Constitution)
FIG. 1 is a block diagram showing a functional configuration of a multicast route search apparatus according to an embodiment of the present invention, and RSV indicates a routing server as a multicast route search apparatus. FIG. 2 shows a module configuration of the routing server RSV.

ルーティングサーバRSVは、Multi agent BBMCアルゴリズムを用いて経路探索処理を実行するもので、制御ユニット1と、データベース2と、エージェントメモリ3a0〜3anと、共有メモリ4と、通信インタフェースユニット5を備えている。通信インタフェースユニット5は、制御ユニット1の制御の下でネットワークNWとの間で通信を行う。ネットワークNWはIPネットワークからなり、通信リンクにより相互に接続された複数のノードを含む。   The routing server RSV executes a route search process using the Multi agent BBMC algorithm, and includes a control unit 1, a database 2, agent memories 3a0 to 3an, a shared memory 4, and a communication interface unit 5. . The communication interface unit 5 communicates with the network NW under the control of the control unit 1. The network NW is composed of an IP network and includes a plurality of nodes connected to each other by communication links.

データベース2は、リンク情報記憶部21と、ノード情報記憶部22を備える。リンク情報記憶部21には、上記複数のノード間を接続する各通信リンクを表す情報に対応付けてそのリンクコストが記憶される。ノード情報記憶部22には、上記複数のノードのそれぞれについて、当該ノードに接続される通信リンクを表す情報と、始点ノードから当該ノードまでの最短ブランチ候補とそのコスト、準最短ブランチ候補とそのコスト、“reached属性”(yes /no)が格納される。“reached属性”は、当該ノードがマルチキャストツリーの構成要素になったかを示すもので、経路探索が開始される前の初期状態では始点ノードのみがマルチキャストツリーに含まれるので“yes”に設定され、他ノードはすべて“no”に設定される。   The database 2 includes a link information storage unit 21 and a node information storage unit 22. The link information storage unit 21 stores the link cost in association with information representing each communication link connecting the plurality of nodes. In the node information storage unit 22, for each of the plurality of nodes, information representing a communication link connected to the node, the shortest branch candidate and its cost from the start node to the node, and the quasi-shortest branch candidate and its cost , “Reached attribute” (yes / no) is stored. The “reached attribute” indicates whether the node has become a component of the multicast tree. In the initial state before the route search is started, only the start node is included in the multicast tree, so it is set to “yes”. All other nodes are set to “no”.

なお、データベース2は、ルーティングサーバRSV内に設けずに、当該ルーティングサーバRSVに対し独立して設けられたデータベースサーバやクラウドシステムに設け、これらに対しルーティングサーバRSVからネットワークを介してアクセスして必要な情報をダウンロードするようにしてもよい。   The database 2 is not provided in the routing server RSV, but is provided in a database server or a cloud system provided independently for the routing server RSV, and these are required to be accessed from the routing server RSV via the network. Such information may be downloaded.

エージェントメモリ3a0〜3anには、ブランチ候補記憶部31と、ブランチ記憶部32が設けられる。これらのブランチ候補記憶部31およびブランチ記憶部32は何れもエージェントごとに領域が分けられている。ブランチ候補記憶部31の各領域には、エージェントごとにその経路探索処理により生成されたブランチ候補が格納される。ブランチ記憶部32の各領域には、エージェントごとにその経路探索処理により決定されたブランチが格納される。   In the agent memories 3a0 to 3an, a branch candidate storage unit 31 and a branch storage unit 32 are provided. Each of the branch candidate storage unit 31 and the branch storage unit 32 is divided into areas for each agent. Each area of the branch candidate storage unit 31 stores a branch candidate generated by the route search process for each agent. Each area of the branch storage unit 32 stores a branch determined by the route search process for each agent.

共有メモリ4は、各エージェントが共有するもので、エージェントリスト記憶部41を備えている。エージェントリスト記憶部41には、エージェントコストによってソートされた複数のエージェントへのポインタが記憶される。エージェントリスト記憶部41に格納されるエージェントのポインタの数には上限値が設定されている。   The shared memory 4 is shared by each agent and includes an agent list storage unit 41. The agent list storage unit 41 stores pointers to a plurality of agents sorted by agent cost. An upper limit is set for the number of agent pointers stored in the agent list storage unit 41.

制御ユニット1は、主制御部として中央処理ユニット(CPU;Central Processing Unit)を備え、この実施形態に係るMulti agent BBMCアルゴリズムを実行する上で必要な制御機能として、ネットワークトポロジ管理処理部11と、ブランチ候補処理部12と、最小木作成処理部13と、エージェント処理部14と、最終ツリー決定部15を有している。これらの制御機能は何れも図示しないプログラムメモリに格納されたプログラムを上記CPUに実行させることにより実現される。   The control unit 1 includes a central processing unit (CPU) as a main control unit. As a control function necessary for executing the Multi agent BBMC algorithm according to this embodiment, a network topology management processing unit 11, It has a branch candidate processing unit 12, a minimum tree creation processing unit 13, an agent processing unit 14, and a final tree determination unit 15. All of these control functions are realized by causing the CPU to execute a program stored in a program memory (not shown).

ネットワークトポロジ管理処理部11は、ネットワークNWにおける複数のノードと、これらのノード間を接続する通信リンクを管理するもので、リンクごとにそのリンク情報を上記リンク情報記憶部21で管理すると共に、ノードごとにそのノード情報を上記ノード情報記憶部22で管理する。リンク情報は、ノード間を接続するすべてのリンクについてそれぞれその方向(AZ/ZA)ごとにコスト(cost)を管理する。またノード情報は、上記複数のノードのそれぞれについて、当該ノードまでの最短ブランチ候補とそのコスト、準最短ブランチ候補とそのコスト、“reached属性”(yes/no)をそれぞれ管理する。   The network topology management processing unit 11 manages a plurality of nodes in the network NW and communication links connecting these nodes. The link information storage unit 21 manages the link information for each link, and the node Each node information is managed by the node information storage unit 22. The link information manages the cost for each direction (AZ / ZA) for all the links connecting the nodes. The node information manages, for each of the plurality of nodes, the shortest branch candidate and its cost, the semi-shortest branch candidate and its cost, and “reached attribute” (yes / no) to the node.

最小木作成処理部13は、BBMCアルゴリズムを用いて、エージェントごとに、上記ネットワークトポロジ管理処理部11で管理されているリンク情報およびノード情報を利用して、ノード間の最短ブランチ候補を探索する。また、上記ブランチ候補記憶部31に記憶されたブランチ候補をもとに、マルチキャスト終点ノードに到達したブランチコストが最小のブランチ候補を選択して当該ブランチ候補を決定ブランチとしてブランチ記憶部32に格納する処理を行う。   The minimum tree creation processing unit 13 uses the BBMC algorithm to search for the shortest branch candidate between nodes using the link information and node information managed by the network topology management processing unit 11 for each agent. Further, based on the branch candidates stored in the branch candidate storage unit 31, the branch candidate having the lowest branch cost reaching the multicast end node is selected, and the branch candidate is stored in the branch storage unit 32 as a determined branch. Process.

ブランチ候補処理部12は、上記最小木作成処理部13の指示に従い、当該最小木作成処理部13により探索されたブランチ候補をブランチ候補記憶部31に記憶させると共に、ブランチ候補記憶部31からブランチ候補を読み出して上記最小木作成処理部13へ出力する処理を行う。   The branch candidate processing unit 12 stores the branch candidate searched by the minimum tree creation processing unit 13 in the branch candidate storage unit 31 in accordance with the instruction from the minimum tree creation processing unit 13, and from the branch candidate storage unit 31. Is read out and output to the minimum tree creation processing unit 13.

エージェント処理部14は、エージェントリスト記憶部41を用いて各エージェントを共有管理するもので、各エージェントの最小木作成処理部13が新たなブランチを作成するごとに、当該エージェントをエージェントリスト記憶部41内に保持し続けるかエージェントを削除するかを決定する。また、当該エージェントから新たなエージェントを派生させるか否かを判定する。   The agent processing unit 14 shares and manages each agent using the agent list storage unit 41, and each time the minimum tree creation processing unit 13 of each agent creates a new branch, the agent processing unit 14 stores the agent in the agent list storage unit 41. Decide whether to keep it in or delete the agent. Further, it is determined whether or not a new agent is derived from the agent.

最終ツリー決定部15は、エージェントリスト記憶部41にアクセスして各エージェントの最終的なツリーコストを取得し、最もツリーコストの小さいツリーを選択する処理を行う。   The final tree determination unit 15 accesses the agent list storage unit 41 to acquire the final tree cost of each agent, and performs processing for selecting a tree with the lowest tree cost.

(動作)
次に、以上のように構成されたルーティングサーバRSVにより実行される、Multi agent BBMCアルゴリズムを用いたマルチキャスト経路探索動作を説明する。図3はその処理手順と処理内容を示すフローチャートである。
(Operation)
Next, a multicast route search operation using the Multi agent BBMC algorithm executed by the routing server RSV configured as described above will be described. FIG. 3 is a flowchart showing the processing procedure and processing contents.

ステップS0では、基準エージェントとしてのエージェント(0) がBBMCアルゴリズムを実行する際に利用する種々データの初期化が行われる。すなわち、マルチキャスト終点集合E(0) には、まだ基準エージェント(0) が到達していないマルチキャスト終点ノードが格納されるので、初期値としてはすべてのマルチキャスト終点ノードが格納される。V(0) は基準エージェント(0) がステップS3で扱う始点ノード集合であり、初期値としてマルチキャスト始点ノードが格納される。基準エージェントのブランチ候補記憶部31はブランチ候補リストBCL(0)で表され、基準エージェント(0)が扱う各ノードまでのブランチ候補がブランチコストによりソートされた状態で記憶されるが、初期状態では基準エージェント(0) ではまだブランチ候補が得られていないので空集合に設定される。ブランチ記憶部32に記憶されるブランチ集合R(0) には基準エージェント(0) が決定したブランチが格納されるが、最初は空集合で設定される。   In step S0, various data used when the agent (0) as the reference agent executes the BBMC algorithm is initialized. That is, since the multicast end point node that has not yet reached the reference agent (0) is stored in the multicast end point set E (0), all multicast end point nodes are stored as initial values. V (0) is a set of start nodes handled by the reference agent (0) in step S3, and a multicast start node is stored as an initial value. The branch candidate storage unit 31 of the reference agent is represented by a branch candidate list BCL (0), and the branch candidates up to each node handled by the reference agent (0) are stored in a state sorted by the branch cost. In the reference agent (0), branch candidates are not yet obtained, so the empty set is set. The branch set R (0) stored in the branch storage unit 32 stores the branch determined by the reference agent (0), but is initially set as an empty set.

また、ノード情報記憶部22には、図2に示すように各ノードの“reached属性”が記憶されるが、マルチキャスト始点ノード以外のノードにはまだブランチが行き着いていないので、マルチキャスト始点ノードのみ“yes”が設定され、その他のノードについては“no”が設定される。また、各ノードの“最短ブランチ候補”および“準最短ブランチ候補”はそれぞれ空集合に設定され、かつそれらのブランチコストは“∞”に設定される。基準エージェント(0) 以外の派生エージェントのデータの初期化はステップS0では行われない。   Further, the “reached attribute” of each node is stored in the node information storage unit 22 as shown in FIG. 2, but since no branch has yet arrived at a node other than the multicast start node, only the multicast start node “ “yes” is set, and “no” is set for other nodes. Further, the “shortest branch candidate” and “quasi-shortest branch candidate” of each node are set to empty sets, and their branch costs are set to “∞”. Initialization of the data of derived agents other than the reference agent (0) is not performed in step S0.

さて、以上のようにデータの初期設定が終了すると、ステップS1でk=0 に設定される。ここで、k はエージェントの番号を示す。したがって、ここでは基準エージェント(0)が動作対象として選択される。次にステップS2では、マルチキャスト終点集合E(0)内の終点数|E(0)|が“0”より大きいかどうかを判断する。ここで、|E(0)|=0である場合は、基準エージェント(0) によってすべてのマルチキャスト終点ノードまでのブランチが決定していることを表すので、Multi agent BBMCアルゴリズムを用いたマルチキャスト経路探索処理は終了となる。   When the initial data setting is completed as described above, k = 0 is set in step S1. Where k is the agent number. Accordingly, here, the reference agent (0) is selected as an operation target. Next, in step S2, it is determined whether or not the number of end points | E (0) | in the multicast end point set E (0) is greater than “0”. Here, when | E (0) | = 0, it means that the branch to all multicast end nodes has been determined by the reference agent (0), so multicast route search using the Multi agent BBMC algorithm The process ends.

一方、マルチキャスト終点集合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) に割り当てられたメモリにおいて同様の処理が行われる。   On the other hand, when the end point node remains in the multicast end point set E (0), the process proceeds to step S3. In the following description, agent (k) indicates a reference agent when k = 0, and indicates a derived agent when k ≧ 1. In step S3, a branch candidate is created with a link originating from a node registered in the multicast start point set V (k) of the derived agent (k) as the last hop. Further, a process for updating the branch candidate list BCL (k) is performed as necessary. This process corresponds to the process of step S101 using the BBMC algorithm shown in FIG. That is, when k = 0, the same processing as that described in step S101 in FIG. 6 is performed in the memory allocated to the reference agent (0) by the reference agent (0). When the value of k is 1 or more, the same processing is performed by the derived agent (k) in the memory allocated to the derived agent (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を使用して実行する。   In step S3, a branch candidate having a link originating from a node registered in the multicast start point set V (k) of the derived agent (k) as a final hop is created, and the branch candidate list BCL (k) is updated. Is done. This process corresponds to the process of step S101 in the BBMC algorithm of FIG. That is, when k = 0, the reference agent (0) executes the branch candidate search process described in step S101 shown in FIG. 6 using the memory area 3a0 assigned to the agent (0). When k ≧ 1, the derived agent (k) executes the same processing as the branch candidate search processing described in step S101 of FIG. 6 using the memory areas 3a1 to 3an allocated to the agent (k).

上記対象とされるリンクの終端ノードに対しては、エージェントごとに、当該ノードを終端とする最短ブランチ候補と準最短ブランチ候補が保持されている。最短ブランチ候補は、新規ブランチ候補が既存の最短ブランチ候補のブランチコストより小さければ、新規ブランチ候補に置き換えられる。またそれと共に、ブランチ候補リストBCL(k)内のブランチ候補も新規ブランチ候補に置き換えられる。このとき、準最短ブランチ候補はブランチ候補リストBCL(k)には登録されず、マルチキャスト終点ノードでのみ保持される。この準最短ブランチ候補は、新規ブランチ候補のブランチコストが既存のブランチ候補のブランチコスト以上で、かつ既存の準最短ブランチ候補のブランチコストより小さい場合に、新規ブランチ候補に置き換えられる。   For the end node of the target link, the shortest branch candidate and the quasi-shortest branch candidate terminating at the node are held for each agent. The shortest branch candidate is replaced with a new branch candidate if the new branch candidate is smaller than the branch cost of the existing shortest branch candidate. At the same time, the branch candidates in the branch candidate list BCL (k) are also replaced with new branch candidates. At this time, the quasi-shortest branch candidate is not registered in the branch candidate list BCL (k) and is held only at the multicast end node. This semi-shortest branch candidate is replaced with a new branch candidate when the branch cost of the new branch candidate is equal to or higher than the branch cost of the existing branch candidate and smaller than the branch cost of the existing semi-shortest branch candidate.

ステップS4では、エージェント(k) がブランチ候補リストBCL(k)中の最短ブランチ候補を選択し、始点集合V(k)内のノードを当該選択した最短ブランチ候補の終点に置き換える処理を行う。この処理は、図6に示したステップS102においてBBMCアルゴリズムを用いた処理をエージェント(k) に割り当てられたメモリ環境で実行するものに相当する。   In step S4, the agent (k) selects the shortest branch candidate in the branch candidate list BCL (k) and replaces the node in the starting point set V (k) with the end point of the selected shortest branch candidate. This process corresponds to executing the process using the BBMC algorithm in step S102 shown in FIG. 6 in the memory environment assigned to the agent (k).

ステップS5では、ステップS4で選択された最短ブランチ候補の終点がマルチキャスト終点ノードか否かの判定が行われる。この判定の結果、もしマルチキャスト終点ノードだった場合にはステップS6に進む。これに対し、マルチキャスト終点ノードでなければステップS3に戻る。つまり、ステップS5でYESと判定されるまで、同じエージェント(k) によりマルチキャスト終点ノードに至るブランチを探索する処理が繰り返し実行される。   In step S5, it is determined whether the end point of the shortest branch candidate selected in step S4 is a multicast end node. If the result of this determination is that it is a multicast end node, processing proceeds to step S6. On the other hand, if it is not a multicast end node, the process returns to step S3. In other words, until YES is determined in step S5, the process of searching for a branch reaching the multicast end node is repeatedly executed by the same agent (k).

ステップS6では、直前にステップS4で選択されたブランチ候補を、そのマルチキャスト終点ノードまでの新規の決定ブランチとしてブランチ記憶部32のR(k)に格納すると共に、当該マルチキャスト終点ノードをマルチキャスト終点集合E(k)から削除する処理が行われる。   In step S6, the branch candidate selected immediately before in step S4 is stored in R (k) of the branch storage unit 32 as a new determined branch up to the multicast end node, and the multicast end node is set as the multicast end point set E. Processing to delete from (k) is performed.

ステップS7では、始点ノード集合V(k)を空にした後、ステップS6において新規に作成されたブランチ上の始点を除くすべてのノードを始点ノード集合V(k)に格納する処理が行われる。そして、既にマルチキャストツリーがこれらのノードに辿り着いたことになるので、始点ノード集合V(k)内に格納されたノードの“reached属性”は“yes”に設定される。   In step S7, after the start point node set V (k) is emptied, a process of storing all the nodes on the branch newly created in step S6 in the start point node set V (k) is performed. Since the multicast tree has already arrived at these nodes, the “reached attribute” of the nodes stored in the start node set V (k) is set to “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) の削除は行われない。
In step S8, the agent processing unit 14 determines whether or not to delete the agent (k) as a deletion candidate from the agent list. However, when k = 0, the agent is the reference agent (0) and is excluded from the deletion target. When k ≧ 1, since it is a derived agent, the tree cost of the derived agent (k) | R (k) | (the sum of the branch costs of all branches of R (k)) and the reference agent (0 ) Tree cost | R (0) |, ENDS (the number of multicast endpoints in E (k) at this point), and its coefficient W (W ≧ 0)
EVA_VALUE 2 = | R (k) |-| R (0) | -W × ENDS
Is calculated. When EVA_VALUE 2 ≦ 0, the deletion candidate agent (k) is not deleted.

これに対し、EVA_VALUE 2 >0の場合には、派生エージェント(k) は削除される。その理由は、|R(k)|の値が基準値である|R(0)|よりも十分大きい場合は、この派生エージェント(k) でこれ以上ツリー作成を進めても、最終的にBBMCアルゴリズムで作成する|R(0)|よりも小さなコストのツリーを作成できる可能性が低いからである。   On the other hand, when EVA_VALUE 2> 0, the derived agent (k) is deleted. The reason is that if the value of | R (k) | is sufficiently larger than the reference value | R (0) |, even if the tree creation is further advanced with this derived agent (k), the BBMC This is because it is unlikely that a tree having a smaller cost than | R (0) |

派生エージェント(k) が削除された場合には、当該派生エージェント(k) から派生するエージェントは作成されず、ステップS11に移行する。その理由は、削除されるほどの効率の悪いエージェントのデータを引き継いで新しいエージェントを作成しても、新エージェントでコストの小さいツリーを作成できる可能性が低いからである。   When the derived agent (k) is deleted, an agent derived from the derived agent (k) is not created, and the process proceeds to step S11. The reason is that it is unlikely that even if a new agent is created by taking over the data of an agent that is so inefficient as to be deleted, a new agent can create a low-cost tree.

エージェント(k) が削除されなかった場合にはステップS9に移行する。そして、ステップS9において、先ずエージェント(k) から派生する新エージェントの作成の可否がエージェント処理部14により判定される。但し、その前にエージェント(k) に関する属性情報をエージェントリスト記憶部41に再登録する処理、つまりエージェントリスト記憶部41の更新処理が行われる。その理由は、エージェント(k) は新たなブランチができるたびにそのエージェントコストが変化するため、当該エージェント(k) のエージェントリスト記憶部41における配列位置(エージェントコストが小さい順に配列されている)が変化する可能性があるからである。   If the agent (k) is not deleted, the process proceeds to step S9. In step S9, the agent processing unit 14 first determines whether a new agent derived from the agent (k) can be created. However, before that, the process of re-registering the attribute information regarding the agent (k) in the agent list storage unit 41, that is, the update process of the agent list storage unit 41 is performed. The reason for this is that the agent cost of agent (k) changes each time a new branch is made, so the arrangement position of agent (k) in agent list storage unit 41 (arranged in ascending order of agent cost) changes. Because there is a possibility of doing.

本実施形態では、エージェント(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) の再登録が行われる。
In this embodiment, the multicast route cost at this point of the agent (k) registered agent is obtained by | R (k) |, and the reference agent (0) obtains the agent agent immediately before the creation of the agent. Multicast route cost based on the determined branch is | R (0) |, the number of derivation stages from the reference agent of agent (k) is DEVS, the coefficient is W1 (W1 ≧ 0), and agent (k) is derived Agent cost AGENT_COST 2 of the above agent (k), where ENDS is the number of unreachable multicast endpoints and W2 (W2 ≧ 0)
AGENT_COST 2 = | R (k) |-| R (0) | + W 1 × DEVS−W 2 × ENDS
It is required as follows. Then, based on the calculated agent cost AGENT_COST 2, the registered agent (k) is re-registered in the agent list storage unit 41.

次にステップS9では、エージェント(k) から派生する新規エージェントの作成の可否が以下のように判定される。すなわち、判定のための評価値EVA_VALUE 1が
EVA_VALUE 1 =|dev_R(k)|−|R(0)|−W×ENDS
により算出され、この算出された予測値が“0”より大きい場合には新規エージェントの作成は行われない。これに対し上記算出された予測値が“0”以下の場合には、新規エージェントを作成する可能性があると判定される。
Next, in step S9, whether or not a new agent derived from agent (k) can be created is determined as follows. That is, the evaluation value EVA_VALUE 1 for determination is
EVA_VALUE 1 = | dev_R (k) | − | R (0) | −W × ENDS
If the calculated predicted value is greater than “0”, no new agent is created. On the other hand, when the calculated predicted value is “0” or less, it is determined that there is a possibility of creating a new agent.

ここで、新規エージェントのマルチキャスト経路コストの予測値|dev_R(k)|は以下のように求められる。すなわち、ステップS6で最後に格納されたブランチはR(k)から除かれるため、R(k)内のブランチ数はR(0)内のブランチ数よりも1つ少ない数となる。このため、直前のステップS6で格納されたブランチの終点ノードの“準最短ブランチ”のブランチコストと、ブランチ候補リストBCL(k)内の最小ブランチコストとのうちの小さい値を選択し、この選択された値を|R(k)|からステップS6で格納されたブランチを除いたツリーコストに加えた値を求め、この値を上記|dev_R(k)|とする。   Here, the predicted value | dev_R (k) | of the multicast route cost of the new agent is obtained as follows. That is, since the branch stored last in step S6 is removed from R (k), the number of branches in R (k) is one less than the number of branches in R (0). Therefore, a smaller value is selected from the branch cost of the “quasi-shortest branch” of the branch end node stored in the immediately preceding step S6 and the minimum branch cost in the branch candidate list BCL (k). A value obtained by adding the calculated value to the tree cost obtained by removing the branch stored in step S6 from | R (k) | is determined as the above-mentioned | dev_R (k) |.

また、上記新規エージェントのエージェントコストが“0”以下の場合、つまり新規エージェントを作成する可能性があると判定された場合でも、以下の条件を満たさなければ新規エージェントの作成を行わない。すなわち、エージェントリスト記憶部41に登録されている派生エージェント数が、予め設定された派生エージェントの上限数に達しているか否かを判定し、既に当該上限数に相当する数の派生エージェントがエージェントリスト記憶部41にまだ登録されていなければ、新規エージェントの作成が可能と判断し、ステップS10に移行する。   Even when the agent cost of the new agent is “0” or less, that is, when it is determined that there is a possibility of creating a new agent, the new agent is not created unless the following conditions are satisfied. That is, it is determined whether or not the number of derived agents registered in the agent list storage unit 41 has reached a preset upper limit number of derived agents, and the number of derived agents corresponding to the upper limit number has already been determined in the agent list. If it is not yet registered in the storage unit 41, it is determined that a new agent can be created, and the process proceeds to step S10.

これに対し、エージェントリスト記憶部41に登録された派生エージェント数が上記上限値に達していた場合には、エージェントリスト記憶部41に登録されている派生エージェントのエージェントコストのうちの最大値と、上記新たに作成しようとする派生エージェントのエージェントコストの予測値AGENT_COST 1とを比較する。そして、当該予測値AGENT_COST 1が上記最大値より小さければ、上記新たな派生エージェントを作成し、上記エージェントリスト記憶部41に登録されたエージェントコストが最大の派生エージェントへのポインタを、上記新たに作成された派生エージェントへのポインタに置き換える。   On the other hand, when the number of derived agents registered in the agent list storage unit 41 has reached the upper limit, the maximum value among the agent costs of the derived agents registered in the agent list storage unit 41, The estimated agent cost AGENT_COST 1 of the derived agent to be newly created is compared. If the predicted value AGENT_COST 1 is smaller than the maximum value, the new derivative agent is created, and a pointer to the derivative agent with the largest agent cost registered in the agent list storage unit 41 is created. Replace with a pointer to the derived agent.

なお、上記新たな作成しようとする派生エージェントのエージェントリストの予測値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
により算出される。
Note that the estimated value AGENT_COST 1 in the agent list of the new derived agent to be created is the value of the multicast route cost predicted to be obtained by the new derived agent as | dev_R (k) | The multicast path cost based on the decision branch obtained by the reference agent immediately before the creation of a new derived agent is | R (0) |, the number of derivation stages from the reference agent of the derived agent is DEVS, and the coefficient is W1 (W1 ≧ 0), when the number of unreachable multicast end points at the time when the derived agent is derived is ENDS and its coefficient is W2 (W2 ≧ 0),
AGENT_COST 1 = | dev_R (k) | − | R (0) | + W1 × DEVS−W2 × ENDS
Is calculated by

但し、上記|dev_R(k)|は、派生エージェントの作成直前に派生元のエージェントにより得られた決定ブランチの終端ノードが保持する準最短ブランチ候補のブランチコストと、上記派生元のエージェントのブランチ候補リストBCL(k) に保存されているブランチ候補における最小ブランチコストのうちの小さい方を、当該派生エージェントを作成する直前に上記派生元のエージェントにより得られた決定ブランチを除いた決定ブランチに基づくマルチキャスト経路コストに加算することにより算出される。   Where | dev_R (k) | is the branch cost of the quasi-shortest branch candidate held by the terminal node of the decision branch obtained by the derivation source agent immediately before creation of the derivation agent, and the branch candidate of the derivation source agent Multicast based on the decision branch excluding the decision branch obtained by the derivation agent immediately before creating the derivation agent, with the smaller of the minimum branch costs in the branch candidates stored in the list BCL (k) Calculated by adding to the route cost.

ステップS9において新規エージェントを作成するべきと判断されると、ステップS10によりエージェント(k) から派生した新規エージェントの作成が行われる。その際、直前のステップS6で作成されたブランチをR(k)から削除し、その結果残ったブランチを、エージェント(k) から派生した新規エージェントのブランチ記憶部dev_R(k)にコピーする。また、各ノード情報記憶部22の“reached属性”、“最短ブランチ候補とそのブランチコスト”、“準最短ブランチ候補とそのブランチコスト”をエージェント(k) から新規エージェント用のメモリにコピーする。その際、直前にステップS6で作成されたブランチ上の始点以外のノードの“reached属性”を“no”にリセットし、これらのノードの“最短ブランチ候補とそのブランチコスト”に“準最短ブランチ候補とそのブランチコスト”の値を設定する。その後“準最短ブランチ候補”は空集合、そのブランチコストは“∞”に設定する。最後に、各ノードで“reached属性”が“no”の“最短ブランチ候補”をブランチコストに従いソートしてブランチ候補リストBCLに登録し直す。   If it is determined in step S9 that a new agent should be created, a new agent derived from agent (k) is created in step S10. At this time, the branch created in the immediately preceding step S6 is deleted from R (k), and the remaining branch is copied to the branch storage unit dev_R (k) of the new agent derived from the agent (k). Further, “reached attribute”, “shortest branch candidate and its branch cost”, and “quasi-shortest branch candidate and its branch cost” in each node information storage unit 22 are copied from the agent (k) to the memory for the new agent. At that time, the “reached attribute” of the node other than the start point on the branch created in step S6 immediately before is reset to “no”, and the “shortest branch candidate and its branch cost” of these nodes is set to “quasi-shortest branch candidate”. And the value of its branch cost. Thereafter, the “quasi-shortest branch candidate” is set to an empty set, and its branch cost is set to “∞”. Finally, in each node, “shortest branch candidates” whose “reached attribute” is “no” are sorted according to the branch cost and re-registered in the branch candidate list BCL.

以上のエージェント(k) から新規エージェントへデータを引き継ぐ一連の処理により、直前のステップS6で作成したブランチ以外のすべてのブランチを新規エージェントに引き継ぐだけでなく、エージェント(k) のブランチ候補についても前記“準最短ブランチ候補”とともに、新規エージェントのブランチ候補リストBCLに引き継ぐことが可能になる。   Through the series of processes for transferring data from the agent (k) to the new agent, not only all branches other than the branch created in the previous step S6 are transferred to the new agent, but also the branch candidates of the agent (k) Along with “quasi-shortest branch candidate”, it becomes possible to transfer to the branch candidate list BCL of the new agent.

また、上記新規エージェントは、すべての既存エージェントの最後に配置される。つまり、エージェント(m) が最後のエージェントの場合はエージェント(m+1) として設定される。すなわち、エージェントがステップS11で最後のエージェントであると判断された場合には、すべてのエージェントのR(k)内のブランチ数が同じになるようにする。   The new agent is placed at the end of all existing agents. That is, when agent (m) is the last agent, it is set as agent (m + 1). That is, if it is determined in step S11 that the agent is the last agent, the number of branches in R (k) of all agents is made the same.

ステップS11において、エージェント(k) は自身が最後のエージェントかどうかを判断する。そして、最後のエージェントの場合はステップS1に戻り、基準エージェント(0) に処理を依頼する。これに対しエージェント(k) が最後のエージェントではない場合には、ステップS12でk=k+1とし、派生エージェント(k+1)に処理を依頼する。このアルゴリズムの処理はステップS2で基準エージェント(0) のマルチキャスト終点がなくなるまで繰り返し実行される。各エージェントは必ず1ブランチずつ作成していくので、ステップS2において基準エージェント(0) でマルチキャスト終点がなくなったということは、他のエージェントもマルチキャスト終点がなくなっていることを意味する。すなわち、すべてのエージェントがマルチキャストツリーの生成を終えたことになる。   In step S11, the agent (k) determines whether it is the last agent. In the case of the last agent, the process returns to step S1 to request the reference agent (0) for processing. On the other hand, if the agent (k) is not the last agent, k = k + 1 is set in step S12, and processing is requested to the derived agent (k + 1). The processing of this algorithm is repeatedly executed until there is no multicast endpoint of the reference agent (0) in step S2. Since each agent always creates one branch at a time, the absence of the multicast endpoint at the reference agent (0) in step S2 means that the other agents have no multicast endpoint. That is, all agents have finished generating the multicast tree.

上記ステップS2において、基準エージェントと複数の派生エージェントを含むすべてのエージェントによるマルチキャストツリーの生成が終了したと判定されると、ステップS13に移行する。ステップS13では、すべてのエージェントが作成したマルチキャストツリーの中で最小木を選択し、当該選択した最小木のマルチキャストツリーをMulti agent BBMCアルゴリズムのアウトプットとしてリターンする。   If it is determined in step S2 that the generation of the multicast tree by all the agents including the reference agent and the plurality of derived agents is completed, the process proceeds to step S13. In step S13, the minimum tree is selected from among the multicast trees created by all agents, and the selected multicast tree of the minimum tree is returned as the output of the Multi agent BBMC algorithm.

(動作の具体例)
次に、以上述べた動作の具体例を図4を用いて説明する。なお、図4において前記図7と処理内容が同一の部分(例えば図4(1))については詳しい説明を省略する。
なお、ここではBBMCアルゴリズムを用いてツリー探索を実行する基準エージェント(0) に対して、追加する派生エージェントの上限数を“1”とする。また、EVA_VALUE 1 ,EVA_VALUE 2の中で使われている係数Wと、AGENT_COST 1,AGENT_COST 2の中で使われている係数W1、W2はすべて“2”に設定する。
(Specific example of operation)
Next, a specific example of the operation described above will be described with reference to FIG. In FIG. 4, detailed description of the same processing content as in FIG. 7 (for example, FIG. 4 (1)) is omitted.
Here, the upper limit number of derived agents to be added is set to “1” with respect to the reference agent (0) that performs tree search using the BBMC algorithm. Further, the coefficient W used in EVA_VALUE 1 and EVA_VALUE 2 and the coefficients W 1 and W 2 used in AGENT_COST 1 and AGENT_COST 2 are all set to “2”.

図4(2)に示すように、基準エージェント(0) において最初の決定ブランチ(s−n2−e1)が作成されると、図3のステップS9において当該基準エージェント(0) から新たに派生エージェント(1) を作成するか否かの判定が以下のように行われる。   As shown in FIG. 4 (2), when the first decision branch (s-n2-e1) is created in the reference agent (0), a new derived agent is generated from the reference agent (0) in step S9 in FIG. Whether to create (1) is determined as follows.

すなわち、最初に派生エージェント(1) のEVA_VALUE 1 が
EVA_VALUE 1 =|dev_R(0)|−|R(0)|−|E(0)|
=5−3−2×2
=−2
のように算出される。
That is, first, EVA_VALUE 1 of the derived agent (1)
EVA_VALUE 1 = | dev_R (0) |-| R (0) |-| E (0) |
= 5−3−2 × 2
= -2
It is calculated as follows.

ここで、|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) は有効と判断されて削除されない。   Here, | dev_R (0) | is the shortest branch candidate s-n3 after the branch candidate s-n2-e1 (3) stored in the branch candidate list BCL (0) of the reference agent (0) is removed. Branch cost = 5. At this time, if the multicast end node e1 holds the quasi-shortest branch, the branch cost is the smaller of the branch cost “5” of the sn3. However, since the multicast end node e1 does not hold the quasi-shortest branch at this time, the branch cost “5” of the s-n3 is selected. | R (0) | is the total branch cost of the decision branch in R (0). At this time, s-n2-e1 (3) is the only branch. | E (0) | is the number of multicast end points remaining in E (0) at this time, and is two, e2 and e3. Since the value of EVA_VALUE 1 is the result of the above calculation −2 and is “0” or less, the derived agent (1) is determined to be valid and is not deleted.

次に、新たに作成しようとする派生エージェント(1) のエージェントコストが算出される。このエージェントコストは
AGENT_COST 1 =|dev_R(0)|−|R(0)|+2×DEVS−2×ENDS
=5−3+2×1−2×2
=0
となる。
Next, the agent cost of the derived agent (1) to be newly created is calculated. This agent cost is
AGENT_COST 1 = | dev_R (0) |-| R (0) | + 2 × DEVS-2 × ENDS
= 5−3 + 2 × 1-2 × 2
= 0
It becomes.

ここで、DEVSは当該新たに作成しようとする派生エージェント(1) の上記基準エージェント(0) からの派生段階数であるので、ここでは“1”になる。また、ENDSは当該派生エージェント(1) が最後に派生した時点での未到達マルチキャスト終点の数、つまりE(0)内のノード数であり、“2”となる。冒頭の動作条件で述べたように、基準エージェント(0) 以外の派生エージェントの上限数は“1”としており、まだこの段階では派生エージェントがエージェントリスト記憶部41に存在しないことから、上記派生エージェント(1) が作成され、そのエージェントコスト=0がエージェントリスト記憶部41に登録される。   Here, since DEVS is the number of derivation steps from the reference agent (0) of the newly derived agent (1) to be created, it is “1” here. ENDS is the number of unreachable multicast end points when the derived agent (1) was last derived, that is, the number of nodes in E (0), and is “2”. As described in the operation condition at the beginning, the upper limit number of derived agents other than the reference agent (0) is set to “1”, and since no derived agent exists in the agent list storage unit 41 at this stage, the derived agent is not described above. (1) is created, and its agent cost = 0 is registered in the agent list storage unit 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)と同じブランチ候補がコピーされる。   In addition, with the creation of the derived agent (1), branches except for the decision branch sn2-e1 are taken over from R (0) to R (1). At this stage, R (0) has s- Since only n2-e1 is registered, R (1) becomes empty as shown in FIG. 4 (1 '). If the multicast end node e1 holds a quasi-shortest branch candidate, the quasi-shortest branch candidate becomes the shortest branch candidate up to the multicast end node e1, and this is the branch candidate list BCL ( Candidate for registration in 1). However, at this stage, since the quasi-shortest branch candidate is not yet registered in the multicast end node e1, the branch candidate list BCL (0) of the reference agent (0) is included in the branch candidate list BCL (1) of the derived agent (1). The same branch candidate is copied.

その結果、図4(1′)では派生エージェント(1) のブランチ候補リストBCL(1)の中でブランチコストが最も小さいブランチ候補s−n3が削除され、ノードn3はマルチキャスト終点ノードではないため、ノードn3を経由した1ホップ先までのブランチ候補が図4(2′)で作成される。これらのブランチ候補s−n3−e1、s−n3−e3のブランチコストは何れも“6”であり、マルチキャスト終点ノードe1、e3までのそれぞれ派生エージェント(1) が辿り着いた最初のブランチ候補であるため、ブランチ候補リストBCL(1)に登録される。   As a result, in FIG. 4 (1 ′), the branch candidate s-n3 having the lowest branch cost is deleted from the branch candidate list BCL (1) of the derived agent (1), and the node n3 is not a multicast end node. Branch candidates up to one hop ahead via the node n3 are created in FIG. 4 (2 '). The branch costs of these branch candidates s-n3-e1 and s-n3-e3 are both “6” and are the first branch candidates arrived by the derived agent (1) up to the multicast end nodes e1 and e3. Therefore, it is registered in the branch candidate list 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)に格納される。   As a result of FIG. 4 (2 ′), the branch candidate s-n1 has the lowest branch cost in the branch candidate list BCL (1) of the derived agent (1). Branch candidates up to one hop ahead are considered. At this time, the “shortest branch cost” attribute of the node n2 is inherited by the s-n2 blank cost = 2 previously held by the reference agent (0), and sn1-n2 is the branch cost. It is not registered because it is larger. Since s-n1-n4 is the first branch candidate up to the node n4, it is registered in the branch candidate list BCL (1) as the shortest branch candidate. As a result, three branch candidates with a cost of “6” are registered in BCL (1). In this case, one branch candidate is arbitrarily selected. In the example of FIG. 6 (3 ′), sn3-e1 is selected, and the node e1 is stored in R (1) because it is a multicast end node.

派生エージェント(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) の削除は行われない。
At this point in time when the first branch is determined by the derived agent (1), whether to continue to use or delete the derived agent (1) is determined in step S8 as follows. That is, EVA_VALUE 2 of derived agent (1) is
EVA_VALUE 2 = | R (1) | − | R (0) | −2 | E (1) |
= 6−3−2 × 2
= -1
Therefore, EVA_VALUE 2 becomes “0” or less. For this reason, the derived agent (1) is not deleted.

次に、ステップ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に複数のエージェントが記憶されていれば、これらのエージェントはそのエージェントコストの値が小さい順にソートされる。
Next, in step S9, it is determined whether or not a new agent replacing the derived agent (1) is to be created. In this case, the agent cost of the derived agent (1) is first updated. The agent cost of the derived agent (1) is
AGENT_COST 2 = | R (1) |-| R (0) | + 2 × DEVS-2 × ENDS
= 6−3 + 2 × 1-2 × 2
= 1
It becomes. Therefore, the derived agent (1) is reset in the agent list storage unit 41 as agent cost = 1 again. At this time, if a plurality of agents are stored in the agent list storage unit 41, these agents are sorted in ascending order of their agent cost values.

上記派生エージェント(1) からさらに派生するエージェントをエージェント(2) とすると、当該新たな派生エージェント(2) のエージェントコストは、
AGENT_COST 1 =|dev_R(1)|−|R(0)|+2×DEVS−2×ENDS
=6−3+2×2−2×2
=3
となる。
If the agent further derived from the above derived agent (1) is agent (2), the agent cost of the new derived agent (2) is
AGENT_COST 1 = | dev_R (1) |-| R (0) | + 2 × DEVS-2 × ENDS
= 6−3 + 2 × 2-2 × 2
= 3
It becomes.

ここで、|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) は新規エージェントとして作成されない。   Here, | dev_R (1) | is the shortest branch candidate held in the branch candidate list BCL (1) of the agent (1) and the branch cost of the quasi-shortest branch candidate up to the multicast end point mode e1. The branch cost of n3-e3 (6) is smaller. However, since there is no quasi-shortest branch candidate up to the multicast end node e1, at the present time, | dev_R (1) | is “6”. DEVS is “2” because the derived agent (1) has already been derived once from the reference agent (0). ENDS is “2” because there are currently two multicast end nodes e2 and e3 in E (1). As a result, the agent cost of the new derived agent (2) is higher than that of the source agent (1), and the upper limit of the number of agents in the agent list is “1”, so that the agent (2) is a new agent. Not created.

図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に置き換えられる。   FIG. 4 (4 ′) shows the generation operation of the second branch by the derived agent (1). At this stage, in step S3, the second branch n2-e2 is first created by the reference agent (0) in the same procedure as (3) in FIG. Since the starting node set V (1) stores the nodes n3 and e1 on the first branch sn3-e1 of the derived agent (1), the links originating from these two nodes n3 and e1 are branch candidates. It will be examined whether or not. Since there is a link from the node n3 to the end node e3 and the link cost is “1”, the shortest branch candidate to the multicast end node e3 is replaced with 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)に格納される。   Further, since the multicast end node e3 is a multicast end node, the existing shortest branch candidate s-n3-e3 is held at the multicast end node e3 as a quasi-shortest branch candidate. Furthermore, since there is a link from the multicast end node e1 to the multicast end node e2, and the link cost is “1”, the shortest branch candidate to the multicast end node e2 is replaced with e1-e2. Since the node e2 is a multicast end node, the existing shortest branch candidate s-n2-e2 is held at the multicast end node e2 as a quasi-shortest branch candidate. As a result, since n3-e3 is a branch candidate in the branch candidate list BCL (1) with the lowest branch cost, n3-e3 is determined as the second branch and stored in 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) は削除されず維持される。
Subsequently, in step S8, it is determined whether to continue to use or delete the derived agent (1). In this case, EVA_VALUE 2 of derived agent (1) is
EVA_VALUE 2 = | R (1) | − | R (0) | −2 | E (1) |
= 7−7−2 × 1
= -2
Since EVA_VALUE 2 is equal to or less than “0”, the derived agent (1) is maintained without being deleted.

ここで、|R(0)|は、図7の(3)と同じ結果となり、R(0)にs−n2−e1、n2−e2を保持するので“7”となる。また、エージェント(1) のマルチキャスト終点集合E(1)にはE2のみが保持されるので、|E(1)|=1となる。   Here, | R (0) | has the same result as (3) in FIG. 7 and is “7” because s−n2−e1 and n2−e2 are held in R (0). Also, since only E2 is held in the multicast end point set E (1) of the agent (1), | 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”より大きくなるため作成されない。
Next, in step S9, it is determined whether or not an agent (2) further derived from the derived agent (1) is to be created. However, EVA_VALUE 1 of agent (2) is
EVA_VALUE 1 = | dev_R (1) | − | R (0) | −2 | E (1) |
= 11−7−2 × 1
= 2
Since EVA_VALUE 1 is larger than “0”, it is not created.

ここで、|dev_R(1)|は、マルチキャスト終点ノードe3までの準最短ブランチと、エージェント(1) のブランチ候補リストBCL(1)に保持された最短ブランチe1−e2とのうちのブランチコストの小さい方となるので“5”となり、この値がs−n3−e1(6)に加算されるため、|dev_R(1)|は“11”となる。   Here, | dev_R (1) | is the branch cost of the quasi-shortest branch to the multicast end node e3 and the shortest branch e1-e2 held in the branch candidate list BCL (1) of the agent (1). Since the smaller value is “5” and this value is added to s−n3−e1 (6), | dev_R (1) | becomes “11”.

図4(4′)に示した処理が終了すると、ブランチ候補e3−e2が終点ノードe3から出ているリンクとして存在し、そのリンクコストが“1”であることから、上記ブランチ候補e3−e2は最終ブランチとしてR(1)に格納される。この結果、Multi-agent BBMCアルゴリズムが最終的に生成するマルチキャストツリーコストは“8”となる。このマルチキャストツリーコストは、図7において説明したように、BBMCアルゴリズムを用いて1つのエージェントのみにより経路探索を行った場合のマルチキャストツリーコスト“12”より大幅に小さくなる。   When the process shown in FIG. 4 (4 ′) is completed, the branch candidate e3-e2 exists as a link coming out from the end node e3, and the link cost is “1”. Is stored in R (1) as the final branch. As a result, the multicast tree cost finally generated by the Multi-agent BBMC algorithm is “8”. As described with reference to FIG. 7, this multicast tree cost is significantly smaller than the multicast tree cost “12” when a route search is performed by only one agent using the BBMC algorithm.

(効果)
以上詳述したように本実施形態では、BBMCアルゴリズムを使用した基準エージェント(0) により決定ブランチが作成されるごとに、当該基準エージェント(0) から派生するエージェント(k) (k=1,2,…)を新たに作成するか否かを判定し、所定の条件を満たした場合に順次派生エージェントを作成して、これらの基準エージェント(0) と複数の派生エージェント(k) (k=1,2,…)によりそれぞれ経路探索を行う。そして、これら複数のエージェントにより作成されたマルチキャストツリーのコストを比較して、当該コストが最小のツリーを最終マルチキャストツリーとして選択するようにしている。このため、基準エージェント(0) による経路探索で見逃したツリーを、当該基準エージェント(0) から派生した複数の派生エージェント(k) (k=1,2,…)により探索することが可能となり、これにより基準エージェント(0) による探索処理のみを用いる場合に比べ、よりコストの小さいマルチキャストツリーを探索することが可能となる。
(effect)
As described above in detail, in this embodiment, every time a decision branch is created by the reference agent (0) using the BBMC algorithm, the agent (k) (k = 1, 2) derived from the reference agent (0). , ...) is created, and when a predetermined condition is satisfied, a derived agent is created in order, and these reference agents (0) and a plurality of derived agents (k) (k = 1) , 2,. Then, the costs of the multicast trees created by these multiple agents are compared, and the tree with the smallest cost is selected as the final multicast tree. For this reason, it is possible to search a tree missed in the route search by the reference agent (0) by a plurality of derived agents (k) (k = 1, 2,...) Derived from the reference agent (0). This makes it possible to search for a multicast tree with a lower cost than when only the search processing by the reference agent (0) is used.

また、上記派生エージェント(k) (k=1,2,…)の作成の可否を判定する際に、先ず派生エージェントによるマルチキャスト経路コストの予測値と基準エージェント(0) によるマルチキャスト経路コストのコスト差に基づくEVA_VALUE 1が“0”以下であり、かつエージェントリスト記憶部41に作成済みのエージェントが存在しなければ、上記派生エージェントを作成する。また、当該派生エージェントによるEVA_VALUE 1が“0”以下と判定された場合でも、エージェントリスト記憶部41に登録済みの派生エージェント数が上限値に達している場合は、当該エージェントリスト記憶部が持つエージェントコストの中で最大のエージェントコストよりも当該派生エージェントのエージェントコストが小さい場合に、当該派生エージェントを最大のエージェントコストを持つエージェントと置き換える形でエージェントリスト記憶部41に登録するようにしている。すなわち、エージェントリスト記憶部に登録済のエージェントの何れよりも小コストのマルチキャスツリーを探索する確率が高い場合にのみ、新たな派生エージェントを作成するようにしている。このため、小コストのマルチキャストツリーを探索できる確率をさらに高めることができる。また、派生エージェントの登録数が上限値を超えていない場合にのみ新たな派生エージェントが作成されるので、エージェントの登録数に上限を設けない場合に比べ、経路探索に要する処理負荷を抑制することができる。   Further, when determining whether or not the derived agent (k) (k = 1, 2,...) Can be created, first, the cost difference between the estimated multicast route cost by the derived agent and the multicast route cost by the reference agent (0). If the EVA_VALUE 1 based on is equal to or less than “0” and there is no created agent in the agent list storage unit 41, the derived agent is created. Even when EVA_VALUE 1 by the derived agent is determined to be “0” or less, if the number of derived agents registered in the agent list storage unit 41 reaches the upper limit value, the agent included in the agent list storage unit When the agent cost of the derived agent is smaller than the maximum agent cost among the costs, the derived agent is registered in the agent list storage unit 41 by replacing it with an agent having the maximum agent cost. That is, a new derivative agent is created only when the probability of searching for a multicast tree having a lower cost than any of the agents registered in the agent list storage unit is high. For this reason, it is possible to further increase the probability that a low-cost multicast tree can be searched. In addition, since a new derived agent is created only when the number of registered registered agents does not exceed the upper limit, the processing load required for route search can be reduced compared to when no upper limit is set for the number of registered agents. Can do.

さらに、ある派生エージェントにより決定ブランチが作成されるごとに、当該派生エージェントにより作成された決定ブランチに基づくマルチキャスト経路コストと、基準エージェントにより得られる決定ブランチに基づくマルチキャスト経路コストとのコスト差を基準とした評価値EVA_VALUE 2 を算出し、EVA_VALUE 2 が“0”より大きい場合は、上記作成済みのエージェントを削除するようにしている。このため、作成済みの派生エージェントのうちマルチキャスト経路コストの大きいエージェントによる経路探索処理が際限なく実行される不具合を防止することができ、これにより経路コストの小さいエージェントを用いた効果的な経路探索を行うことができる。   Further, every time a decision branch is created by a derived agent, the cost difference between the multicast route cost based on the decision branch created by the derived agent and the multicast route cost based on the decision branch obtained by the reference agent is used as a reference. The calculated evaluation value EVA_VALUE 2 is calculated, and when the EVA_VALUE 2 is larger than “0”, the created agent is deleted. For this reason, it is possible to prevent a problem that the route search processing by an agent with a large multicast route cost among end agents that have already been created is executed indefinitely, thereby enabling effective route search using an agent with a low route cost. It can be carried out.

さらに、評価値EVA_VALUE 2 を算出する際に、まだブランチが辿り着いていないマルチキャスト終点の数ENDSも考慮して、作成済みの派生エージェントの削除の可否を判定するようにしている。このため、削除対象となるエージェントの削除の可否をより一層高精度に判定することが可能となる。   Furthermore, when calculating the evaluation value EVA_VALUE 2, it is determined whether or not the created derivative agent can be deleted in consideration of the number of multicast end points ENDS that have not yet reached the branch. For this reason, it becomes possible to determine with higher accuracy whether or not the agent to be deleted can be deleted.

さらに、エージェントリスト記憶部41に登録済の派生エージェントのエージェントコストをAGENT_COST 2 として新規ブランチが生成される度に更新し、当該エージェントコストが最も大きい登録済みの派生エージェントを当該エージェントリスト記憶部からの削除対象として選択するようにしている。このため、エージェントコストが高く最小木コストの経路探索に寄与しないエージェントから順に削除することができ、これによりエージェントコストが小さく最小木コストの経路探索に対する貢献度が高いエージェントを優先的に残して経路探索処理を行うことが可能となる。   Further, the agent cost of the derived agent registered in the agent list storage unit 41 is updated every time a new branch is generated with AGENT_COST 2 as the agent cost, and the registered derived agent with the highest agent cost is updated from the agent list storage unit. It is selected as a deletion target. For this reason, it is possible to delete in order from the agent with the highest agent cost that does not contribute to the route search with the minimum tree cost, thereby preferentially leaving the agent with a low agent cost and a high contribution to the route search with the minimum tree cost. Search processing can be performed.

[他の実施形態]
この発明は上記一実施形態に限定されるものではない。例えば、前記一実施形態ではノード群とは別にルーティングサーバRSVを設けた場合を例にとって説明したが、ルーティングサーバの機能をノードの1つまたは複数に持たせるようにしてもよい。
[Other Embodiments]
The present invention is not limited to the above embodiment. For example, in the embodiment, the case where the routing server RSV is provided separately from the node group has been described as an example. However, one or more of the nodes may have the function of the routing server.

その他、ネットワークの構成、マルチキャスト終点ノードの数、ルーティングサーバRSVの構成と最短木作成処理の手順と内容等についても、この発明の要旨を逸脱しない範囲で種々変形して実施可能である。   In addition, the network configuration, the number of multicast end nodes, the configuration of the routing server RSV, the procedure and contents of the shortest tree creation processing, and the like can be variously modified without departing from the scope of the present invention.

要するにこの発明は、上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合せにより種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態に亘る構成要素を適宜組み合せてもよい。   In short, the present invention is not limited to the above-described embodiment as it is, and can be embodied by modifying the constituent elements without departing from the scope of the invention in the implementation stage. Further, various inventions can be formed by appropriately combining a plurality of constituent elements disclosed in the embodiment. For example, some components may be deleted from all the components shown in the embodiment. Furthermore, you may combine suitably the component covering different embodiment.

RSV…ルーティングサーバ、NW…ネットワーク、1…制御ユニット、2…データベース、3a0〜3an…エージェントメモリ、4…共有メモリ、5…通信インタフェースユニット、11…ネットワークトポロジ管理処理部、12…ブランチ候補処理部、13…最小木作成処理部、14…エージェント処理部、15…最終ツリー決定部、21…リンク情報記憶部、22…ノード情報記憶部、31…ブランチ候補記憶部、32…ブランチ記憶部、41…エージェントリスト記憶部。   RSV ... Routing server, NW ... Network, 1 ... Control unit, 2 ... Database, 3a0-3an ... Agent memory, 4 ... Shared memory, 5 ... Communication interface unit, 11 ... Network topology management processing unit, 12 ... Branch candidate processing unit 13 ... Minimum tree creation processing unit, 14 ... Agent processing unit, 15 ... Final tree determination unit, 21 ... Link information storage unit, 22 ... Node information storage unit, 31 ... Branch candidate storage unit, 32 ... Branch storage unit, 41 ... Agent list storage unit.

Claims (9)

複数のノードを通信リンクを介して相互に接続可能としたネットワークで使用され、前記複数のノードのうちマルチキャスト通信を行う任意の始点ノードから複数のマルチキャスト終点ノードまでの最適経路を探索するマルチキャスト経路探索装置であって、
基準エージェントにより、前記始点ノードから前記複数のマルチキャスト終点ノードに至る経路上における複数のブランチ候補を探索して基準ブランチ候補記憶部に保存し、当該基準ブランチ候補記憶部に保存された複数のブランチ候補の中から終点が前記複数のマルチキャスト終点ノードのいずれかに到達しかつブランチコストが最小のブランチ候補を決定ブランチとして基準ブランチ記憶部に保存する経路探索処理を、前記複数のマルチキャスト終点ノードのすべてについて決定ブランチが得られるまで実行する手段と、
前記基準エージェントにより決定ブランチが得られるごとに、当該基準エージェントから派生する第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の派生エージェントによりそれぞれ得られた決定ブランチに基づく各マルチキャスト経路コストを比較し、当該マルチキャスト経路コストが最も小さいマルチキャスト経路を最適経路として選択する手段と
を具備することを特徴とするマルチキャスト経路探索装置。
Multicast route search that is used in a network in which a plurality of nodes can be connected to each other via a communication link, and searches for an optimum route from any start node that performs multicast communication to a plurality of multicast end nodes among the plurality of nodes. A device,
A reference agent searches for a plurality of branch candidates on a route from the start node to the plurality of multicast end nodes, stores the plurality of branch candidates in a reference branch candidate storage unit, and stores a plurality of branch candidates stored in the reference branch candidate storage unit A route search process in which a branch candidate whose end point reaches one of the plurality of multicast end point nodes and whose branch cost is the smallest is stored in the reference branch storage unit as a determined branch for all of the plurality of multicast end point nodes Means to execute until a decision branch is obtained;
Each time a decision branch is obtained by the reference agent, a first derived agent derived from the reference agent is created, and all branch candidates stored in the reference branch candidate storage unit at this time are stored in the first branch agent. A branch that is copied to the first branch candidate storage unit of the derivation agent and that excludes the determined branch from the branches stored in the reference branch storage unit is stored in the first branch storage unit of the first derivation agent. First derivative agent creation means for copying;
The first derivation agent searches the branch candidates on the route to the plurality of multicast end nodes based on the branch candidates stored in the first branch candidate storage unit, and stores the first branch candidate storage A branch candidate whose end point reaches one of the plurality of multicast end-point nodes and has the smallest branch cost among the branch candidates stored in the first branch candidate storage unit is determined as a first branch. Means for executing a route search process to be stored in the branch storage unit until a decision branch is obtained for all of the plurality of multicast end points;
Each time a decision branch is obtained by the first derivation agent, a second derivation agent that is further derived from the first derivation agent is created and stored in the first branch candidate storage unit at this point. All the branch candidates that are present are copied to the second branch candidate storage unit of the second derived agent, and the branches other than the determined branch among the branches stored in the first branch storage unit are Second derivative agent creating means for copying to the second branch storage unit of the derived agent of
The second derivation agent searches the branch candidates on the path to the plurality of multicast end nodes with reference to the branch candidates stored in the second branch candidate storage unit, and stores the second branch candidate storage A branch candidate whose end point reaches one of the plurality of multicast end-point nodes and has the smallest branch cost among the branch candidates stored in the second branch candidate storage unit is determined as a determined branch. Means for executing a route search process to be stored in the branch storage unit until a decision branch is obtained for all of the plurality of multicast end points;
Means for managing attribute information including agent costs of the first and second derived agents created by the first and second derived agent creating means using a derived agent list;
Each multicast path cost based on the decision branch respectively obtained by the reference agent and the first and second derived agents when all agents finally obtain decision branches for all of the plurality of multicast end nodes. And a means for selecting a multicast route having the lowest multicast route cost as the optimum route.
前記第1および第2の派生エージェント作成手段は、
前記基準エージェントにより得られた決定ブランチに基づくマルチキャスト経路コストと、新たな派生エージェントにより得られると予測されるマルチキャスト経路コストとのコスト差を算出し、当該算出されたコスト差に基づいて、前記新たな派生エージェントの作成が可能であるか否かを判定する第1の手段を備えることを特徴とする請求項1記載のマルチキャスト経路探索装置。
The first and second derived agent creation means include:
A cost difference between a multicast route cost based on the decision branch obtained by the reference agent and a multicast route cost predicted to be obtained by a new derived agent is calculated, and the new cost is calculated based on the calculated cost difference. 2. The multicast route searching apparatus according to claim 1, further comprising a first means for determining whether or not a derivative agent can be created.
前記第1および第2の派生エージェント作成手段は、
前記新たな派生エージェントの作成が可能と判定された場合に、前記派生エージェントリストをもとに、当該派生エージェントリスト内の作成済みの派生エージェント数が予め設定した上限値に達しているか否かを判定し、上限値に達していない場合に前記新たな派生エージェントを作成する第2の手段と、
前記派生エージェントリスト内の作成済みの派生エージェント数が上限値に達していると判定された場合には、前記派生エージェントリストに登録されている派生エージェントのエージェントコストのうちの最大値と、前記新たな派生エージェントのエージェントコストの予測値とを比較し、前記予測値が前記最大値より小さい場合に、前記新たな派生エージェントを作成して、前記エージェントコストが最大の派生エージェントを前記作成された新たな派生エージェントに入れ替える第3の手段と
を、さらに備えることを特徴とする請求項2記載のマルチキャスト経路探索装置。
The first and second derived agent creation means include:
If it is determined that the new derived agent can be created, whether or not the number of created derivative agents in the derived agent list reaches a preset upper limit value based on the derived agent list. A second means for determining and creating the new derived agent if the upper limit is not reached;
If it is determined that the number of derived agents already created in the derived agent list has reached the upper limit, the maximum value of the agent costs of the derived agents registered in the derived agent list, and the new A predicted value of the agent cost of the derived agent, and if the predicted value is smaller than the maximum value, the new derived agent is created, and the derived agent with the largest agent cost is created. The multicast route search apparatus according to claim 2, further comprising: a third means for replacing with a different derived agent.
前記基準エージェント、前記第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記載のマルチキャスト経路探索装置。
The reference agent, the first and second derived agents are:
Means for storing a quasi-shortest branch candidate according to the shortest branch candidate up to the node and its branch cost for each node in the course of the route search process;
Means for storing, in the branch candidate storage unit, the quasi-shortest branch candidate held by the end node of the decision branch selected immediately before by the derivation source agent as a new branch candidate,
The first and second derived agent creation means are obtained by the reference agent immediately before creating the new derived agent, with | dev_R (k) | Multicast path cost based on the determined branch is | R (0) |, the number of unreachable multicast end points is ENDS, its coefficient is W (W ≧ 0), and the evaluation value based on the cost difference is EVA_VALUE 1,
The predicted value | dev_R (k) | is used as the branch cost of the quasi-shortest branch candidate held by the terminal node of the decision branch obtained by the derivation agent immediately before creating the new derivation agent, and the derivation source The smaller one of the minimum branch costs of the branch candidates stored in the branch candidate storage unit of the agent is excluded from the decision branch obtained by the derivation source agent immediately before creating the new derivation agent Calculated by adding to the multicast route cost based on the determined branch,
The evaluation value EVA_VALUE 1 is
EVA_VALUE 1 = | dev_R (k) | − | R (0) | −W × ENDS
Calculated by
3. The multicast route searching apparatus according to claim 2, wherein when the calculated evaluation value EVA_VALUE 1 is 0 or less, it is determined that the new derived agent can be created.
前記第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記載のマルチキャスト経路探索装置。
The third means of the first and second derived agent creating means is configured to use AGENT_COST 1 as a predicted value of the agent cost of the new derived agent, and a multicast path cost value predicted to be obtained by the new derived agent. | Dev_R (k) |, the multicast path cost based on the decision branch obtained by the reference agent immediately before creation of the new derived agent | R (0) |, the derived agent from the reference agent When the number of stages is DEVS, the coefficient is W1 (W1 ≧ 0), the number of unreachable multicast end points at the time when the derived agent is derived is ENDS, and the coefficient is W2 (W2 ≧ 0),
The predicted value | dev_R (k) | is used as the branch cost of the quasi-shortest branch candidate held by the terminal node of the decision branch obtained by the derivation source agent immediately before creation of the derivation agent, and the derivation source agent A multicast route based on a decision branch obtained by removing a smaller one of the minimum branch costs of the branch candidates stored in the branch candidate storage unit from a decision branch obtained by the derivation source agent immediately before creating the derivation agent. Calculated by adding to the cost,
Estimate AGENT_COST 1 of the agent cost of the new derived agent
AGENT_COST 1 = | dev_R (k) | − | R (0) | + W1 × DEVS−W2 × ENDS
The multicast route search apparatus according to claim 3, wherein the multicast path search device is calculated by:
前記第1または第2の派生エージェントにより決定ブランチが得られるごとに、当該第1または第2の派生エージェントにより得られた決定ブランチに基づくマルチキャスト経路コストと、前記基準エージェントにより得られた決定ブランチに基づくマルチキャスト経路コストとのコスト差を算出し、当該算出されたコスト差に基づいて、当該第1または第2の派生エージェントを前記派生エージェントリストから削除する派生エージェント削除手段を、さらに具備することを特徴とする請求項1乃至3の何れかに記載のマルチキャスト経路探索装置。   Each time a decision branch is obtained by the first or second derived agent, the multicast path cost based on the decision branch obtained by the first or second derivative agent and the decision branch obtained by the reference agent A derivative agent deleting means for calculating a cost difference from the multicast path cost based on the calculated agent and deleting the first or second derived agent from the derived agent list based on the calculated cost difference; The multicast route search apparatus according to any one of claims 1 to 3, wherein 前記派生エージェント削除手段は、前記第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記載のマルチキャスト経路探索装置。
The derived agent deleting means sets the multicast path cost by the first or second derived agent to | R (k) |, and the reference agent until immediately before creating the first or second derived agent up to this point Multicast path cost based on the determined branch obtained by the above is | R (0) |, the number of unreachable multicast end points is ENDS, its coefficient is W (W ≧ 0), and the evaluation value based on the cost difference is EVA_VALUE 2 and when,
The evaluation value EVA_VALUE 2 is
EVA_VALUE 2 = | R (k) | − | R (0) | −W × ENDS
Calculated by
7. The multicast route search apparatus according to claim 6, wherein when the calculated evaluation value EVA_VALUE 2 is greater than 0, the first or second derived agent is deleted from the derived agent list.
前記第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の何れかに記載のマルチキャスト経路探索装置。
Agent cost updating means for updating an agent cost of a derived agent registered in the derived agent list every time a decision branch is obtained by the first or second derived agent,
The agent cost updating means sets the multicast path cost of the registered derivative agent at this time to | R (k) |, and sets the multicast path cost based on the decision branch obtained by the reference agent up to this time to | R (0) |, the number of derivation stages of the derivation agent from the reference agent is DEVS, the coefficient is W1 (W1 ≧ 0), the number of unreachable multicast endpoints at the time the derivation agent is derived is ENDS, and the coefficient is W2 When (W2 ≧ 0), update agent cost AGENT_COST 2
AGENT_COST 2 = | R (k) | − | R (0) | + W1 × DEVS−W2 × ENDS
The multicast route search apparatus according to claim 1, wherein the multicast path search device is calculated by:
複数のノードを通信リンクを介して相互に接続可能としたネットワークで使用されるマルチキャスト経路探索装置が、前記複数のノードのうちマルチキャスト通信を行う任意の始点ノードから複数のマルチキャスト終点ノードまでの最適経路を探索するマルチキャスト経路探索方法であって、
基準エージェントにより、前記始点ノードから前記複数のマルチキャスト終点ノードに至る経路上における複数のブランチ候補を探索して基準ブランチ候補記憶部に保存し、当該基準ブランチ候補記憶部に保存された複数のブランチ候補の中から終点が前記複数のマルチキャスト終点ノードのいずれかに到達しかつブランチコストが最小のブランチ候補を決定ブランチとして基準ブランチ記憶部に保存する経路探索処理を、前記複数のマルチキャスト終点ノードのすべてについて決定ブランチが得られるまで実行する過程と、
前記基準エージェントにより決定ブランチが得られるごとに、当該基準エージェントから派生する第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の派生エージェントによりそれぞれ得られた決定ブランチに基づく各マルチキャスト経路コストを比較し、当該マルチキャスト経路コストが最も小さいマルチキャスト経路を最適経路として選択する過程と
を具備することを特徴とするマルチキャスト経路探索方法。
A multicast route searching apparatus used in a network in which a plurality of nodes can be connected to each other via a communication link, and an optimum route from any start node to a plurality of multicast end nodes performing multicast communication among the plurality of nodes. A multicast route search method for searching for
A reference agent searches for a plurality of branch candidates on a route from the start node to the plurality of multicast end nodes, stores the plurality of branch candidates in a reference branch candidate storage unit, and stores a plurality of branch candidates stored in the reference branch candidate storage unit A route search process in which a branch candidate whose end point reaches one of the plurality of multicast end point nodes and whose branch cost is the smallest is stored in the reference branch storage unit as a determined branch for all of the plurality of multicast end point nodes A process that runs until a decision branch is obtained;
Each time a decision branch is obtained by the reference agent, a first derived agent derived from the reference agent is created, and all branch candidates stored in the reference branch candidate storage unit at this time are stored in the first branch agent. A branch that is copied to the first branch candidate storage unit of the derivation agent and that excludes the determined branch from the branches stored in the reference branch storage unit is stored in the first branch storage unit of the first derivation agent. Copying process,
The first derivation agent searches the branch candidates on the route to the plurality of multicast end nodes based on the branch candidates stored in the first branch candidate storage unit, and stores the first branch candidate storage A branch candidate whose end point reaches one of the plurality of multicast end-point nodes and has the smallest branch cost among the branch candidates stored in the first branch candidate storage unit is determined as a first branch. A path search process stored in the branch storage unit of the plurality of multicast end nodes until a decision branch is obtained for all of the plurality of multicast end points;
Each time a decision branch is obtained by the first derivation agent, a second derivation agent that is further derived from the first derivation agent is created and stored in the first branch candidate storage unit at this point. All the branch candidates that are present are copied to the second branch candidate storage unit of the second derived agent, and the branches other than the determined branch among the branches stored in the first branch storage unit are Copying to the second branch storage of the derived agent of
The second derivation agent searches the branch candidates on the path to the plurality of multicast end nodes with reference to the branch candidates stored in the second branch candidate storage unit, and stores the second branch candidate storage A branch candidate whose end point reaches one of the plurality of multicast end-point nodes and has the smallest branch cost among the branch candidates stored in the second branch candidate storage unit is determined as a determined branch. A path search process stored in the branch storage unit of the plurality of multicast end nodes until a decision branch is obtained for all of the plurality of multicast end points;
Managing attribute information including agent costs of the created first and second derived agents using a derived agent list;
Each multicast path cost based on the decision branch respectively obtained by the reference agent and the first and second derived agents when all agents finally obtain decision branches for all of the plurality of multicast endpoint nodes And a method of selecting a multicast route having the lowest multicast route cost as the optimum route.
JP2014231001A 2014-11-13 2014-11-13 Multicast route search apparatus and method Active JP6236375B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2014231001A JP6236375B2 (en) 2014-11-13 2014-11-13 Multicast route search apparatus and method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014231001A JP6236375B2 (en) 2014-11-13 2014-11-13 Multicast route search apparatus and method

Publications (2)

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

Family

ID=56072005

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014231001A Active JP6236375B2 (en) 2014-11-13 2014-11-13 Multicast route search apparatus and method

Country Status (1)

Country Link
JP (1) JP6236375B2 (en)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004208289A (en) * 2002-12-11 2004-07-22 Nippon Telegr & Teleph Corp <Ntt> Multicast transfer routing method, multicast transfer routing apparatus and program
US20040218536A1 (en) * 2002-12-11 2004-11-04 Nippon Telegraph And Telephone Corp. Multicast communication path calculation method and multicast communication path calculation apparatus
JP2009260750A (en) * 2008-04-18 2009-11-05 Nippon Telegr & Teleph Corp <Ntt> Routing method and routing apparatus
JP2013219436A (en) * 2012-04-04 2013-10-24 Nippon Telegr & Teleph Corp <Ntt> Multicast route calculation method and apparatus

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004208289A (en) * 2002-12-11 2004-07-22 Nippon Telegr & Teleph Corp <Ntt> Multicast transfer routing method, multicast transfer routing apparatus and program
US20040218536A1 (en) * 2002-12-11 2004-11-04 Nippon Telegraph And Telephone Corp. Multicast communication path calculation method and multicast communication path calculation apparatus
JP2009260750A (en) * 2008-04-18 2009-11-05 Nippon Telegr & Teleph Corp <Ntt> Routing method and routing apparatus
JP2013219436A (en) * 2012-04-04 2013-10-24 Nippon Telegr & Teleph Corp <Ntt> Multicast route calculation method and apparatus

Also Published As

Publication number Publication date
JP6236375B2 (en) 2017-11-22

Similar Documents

Publication Publication Date Title
US9602415B2 (en) Flow based network service insertion
US10404576B2 (en) Constrained shortest path determination in a network
JP6007799B2 (en) Centralized network control system
US9253077B2 (en) Parallel top-K simple shortest paths discovery
KR102217796B1 (en) Determining the route in the communication network
CN108337170B (en) Distributed resource searching method and system
CN102035735A (en) Device and method for providing forwarding and qos information
WO2022012576A1 (en) Path planning method and apparatus, path planning device, and storage medium
JP5391322B2 (en) Route calculation method, program, and calculation device
KR20130087535A (en) Lookahead computation of routing information
CN113810287B (en) Data retrieval and pushing method based on NDN and SDN
US11108854B2 (en) Peer-to-peer network for internet of things resource allocation operation
JP6236375B2 (en) Multicast route search apparatus and method
CN108347377A (en) Data forwarding method and device
US7334048B1 (en) Method and apparatus for fast route table update
CN112217655B (en) Network equipment configuration method and device in SD-WAN system and computer equipment
CN113114567B (en) Message processing method and device, electronic equipment and storage medium
JP5271817B2 (en) Route search method, apparatus and program
JP7302730B2 (en) Route information management device, route information management method and program
CN109039895B (en) OpReduce system-based search system and method for optimizing decoupling design
CN105591773B (en) Method, device and system for concurrent processing of service creation and increment discovery
CN106095947A (en) The semantic query access control method of resourceoriented tree and system
JP2013098647A (en) Routing method in multicast communication
JP5639245B1 (en) Transfer device analysis information providing server, transfer device analysis information providing method, and transfer device analysis information providing program
JP2012142905A (en) Parallel resource search method, device, and program

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