以下、図面を参照して実施の形態を説明する。ただし、以下に示す実施形態はあくまでも例示に過ぎず、実施形態で明示しない種々の変形例や技術の適用を排除する意図はない。すなわち、本実施形態は、その趣旨を逸脱しない範囲で種々変形して実施することができる。
また、各図は、図中に示す構成要素のみを備えるという趣旨ではなく、他の構成要素を含むことができる。以下、図中において、同一の符号を付した部分は特に断らない限り、同一若しくは同様の部分を示す。
〔A〕第1実施形態
〔A−1〕システム構成例
図1は、第1実施形態の経路探索システム100の機能的な構成例を示すブロック図である。図2は、ネットワーク3のトポロジを例示する図である。
図1に示す経路探索システム100は、例示的に、図2に例示するようなネットワーク3に備えられる始点ノードから終点ノードまでの1又は複数の経路を探索する。経路の探索は、経路探索システム100に備えられる経路探索装置1によって実行されてよい。
図2に示すネットワーク3は、例示的に、1つの始点ノード(図2の“始”を参照)と1つの終点ノード(図2の“終”を参照)を備える。また、ネットワーク3は、始点ノードから終点ノードまでの経路において、複数の中間ノードを備えてよい。図2に示す例において、ネットワーク3は、5つの中間ノード#1〜#5(図2の“1”〜“5”を参照)を備えてよい。
以下、「始点ノード」と「終点ノード」と複数の「中間ノード」とをまとめて、単に「ノード」と称する場合がある。また、以下、「中間ノード#1〜#5」を単に「ノード#1〜#5」と称する場合がある。各ノードは、例示的に、互いに通信可能に接続される。中間ノードに付加される番号「#1〜#5」は、「ノードID(識別子)」と称してもよい。
ノードは、例示的に、通信装置や中継装置等の種々の装置である。
始点ノードは、例示的に、データを送信する際に、データの送信元となるノードである。終点ノードは、例示的に、始点ノードから送信されるデータの宛先となるノードである。中間ノードは、例示的に、始点ノードから終点ノードへ送信されるデータが経由するノードである。「データ」は、「信号」や「情報」と称してもよい。
なお、図2に示す始点ノード、終点ノード及び中間ノードは便宜的に定められたものであり、データの送信元と宛先とに応じて、いずれかのノードが始点ノード、終点ノード又は中間ノードと称されてよい。
経路探索システム100は、図1に示すように、例示的に、経路探索装置1及びオペレータ端末2を備える。経路探索装置1とオペレータ端末2とは、通信可能に接続されてよい。
オペレータ端末2は、例示的に、入力装置21及び表示装置22を備える。
入力装置21は、例えば、キーボードやマウス、トラックボールであってよい。オペレータは、入力装置21を介して、オペレータ端末2に対する各種の入力操作を行なってよい。オペレータは、入力装置21を介して、オペレータ端末2に対して、経路探索装置1に経路探索の要求をするための情報(以下、「経路探索要求」と称する場合がある。)を入力してよい。
経路探索要求は、例えば、ネットワーク3のトポロジに関する情報や探索条件、始点ノード及び終点ノードに関する情報、要求帯域を含んでよい。
ネットワーク3のトポロジに関する情報は、ネットワーク3に備える複数のノードに関する情報や各ノード間のリンクに関する情報を含んでよい。
探索条件は、始点ノードから終点ノードまでの経路におけるホップ長(別言すれば、経由するノードの数)の許容値であってよい。探索条件は、始点ノードから終点ノードまでの最短経路(別言すれば、最短ホップ長)に基づいて定められてよい。
始点ノード及び終点ノードに関する情報は、始点ノード及び終点ノードを特定するための情報であってよい。
要求帯域は、始点ノードから終点ノードまでの経路における通信速度(単位は例えばbps)であってよい。
表示装置22は、例えば、液晶ディスプレイやCRT(Cathode Ray Tube)、電子ペーパーディスプレイであってよい。表示装置22は、オペレータ等に対する各種情報を表示してよい。表示装置22は、経路探索要求に応じて経路探索装置1によって探索された1又は複数の経路候補を表示してよい。
なお、入力装置21及び表示装置22は組み合わされてもよく、例えば、タッチパネルでもよい。
経路探索装置1は、例えば、ソフトウェアによってネットワーク3を制御するSDN(Software Defined Networking)マネージャであってよい。経路探索装置1は、図1に示すように、CPU(Central Processing Unit)11、メモリ12、及び、記憶装置13を備えてよい。
記憶装置13は、例示的に、データを読み書き可能に記憶する装置であり、例えば、HDD(Hard Disk Drive)やSSD(Solid State Drive)が用いられてよい。記憶装置13は、ネットワーク3の各ノード間の最短ホップ長に関する情報を記憶してよい。「最短ホップ長に関する情報」は、例示的に、ダイクストラ法を用いて、ネットワーク3の経路探索の開始に先立って生成されてよい。
メモリ12は、例示的に、ROM(Read Only Memory)及びRAM(Random Access Memory)を含む記憶装置である。メモリ12のROMには、BIOS(Basic Input/Output System)等のプログラムが書き込まれてよい。メモリ12のソフトウェアプログラムは、CPU11に適宜に読み込まれて実行されてよい。また、メモリ12のRAMは、一次記録メモリあるいはワーキングメモリとして利用されてよい。
CPU11は、例示的に、種々の制御や演算を行なう処理装置であり、メモリ12に格納されたOS(Operating System)やプログラムを実行することにより、種々の機能を実現する。すなわち、CPU11は、図1に示すように、探索部111、制御部112、決定部113、及び、表示処理部114として機能してよい。
なお、これらの探索部111、制御部112、決定部113、及び、表示処理部114としての機能を実現するためのプログラムは、例えばフレキシブルディスク、CD(CD−ROM、CD−R、CD−RW等)、DVD(DVD−ROM、DVD−RAM、DVD−R、DVD+R、DVD−RW、DVD+RW、HD DVD等)、ブルーレイディスク、磁気ディスク、光ディスク、光磁気ディスク等の、コンピュータ読取可能な記録媒体に記録された形態で提供されてよい。そして、コンピュータ(本実施形態ではCPU11)は上述した記録媒体から図示しない読取装置を介してプログラムを読み取って内部記録装置または外部記録装置に転送し格納して用いてよい。また、プログラムを、例えば磁気ディスク,光ディスク,光磁気ディスク等の記憶装置(記録媒体)に記録しておき、記憶装置から通信経路を介してコンピュータに提供してもよい。
探索部111、制御部112、決定部113、及び、表示処理部114としての機能を実現する際には、内部記憶装置(本実施形態ではメモリ12)に格納されたプログラムがコンピュータ(本実施形態ではCPU11)によって実行されてよい。また、記録媒体に記録されたプログラムをコンピュータが読み取って実行してもよい。
CPU11は、例示的に、経路探索装置1全体の動作を制御する。経路探索装置1全体の動作を制御するための装置は、CPU11に限定されず、例えば、MPU(Micro Processing Unit)やDSP(Digital Signal Processor),ASIC(Application Specific Integrated Circuit),PLD(Programmable Logic Device),FPGA(Field Programmable Gate Array)のいずれか1つであってもよい。また、経路探索装置1全体の動作を制御するための装置は、CPU,MPU,DSP,ASIC,PLD及びFPGAのうちの2種類以上の組み合わせであってもよい。
なお、CPU11の探索部111、制御部112、決定部113、及び、表示処理部114としての機能については、図5〜図7の説明と併せて、後述する。
図3は、探索木による深さ優先探索法を説明する図である。図3においては、図2に示したネットワーク3における始点ノードから終点ノードまでの経路探索について、探索木による深さ優先探索法を用いて説明する。
探索木による深さ優先探索法を用いた経路探索は、図1に示した経路探索装置1によって行なわれてもよい。
最初に、オペレータによって、始点ノードから終点ノードまでの最短ホップ長に基づいた探索範囲が設定される(図3の符号A1参照)。図2に示したネットワーク3において、始点ノードから終点ノードまでの最短ホップ長は、“3”である。そこで、オペレータは、例えば、最短ホップ長“3”にマージンとしてのホップ長“1”を加算した4ホップを、探索範囲として設定してよい。別言すれば、オペレータは、始点ノードから終点ノードまでのホップ長が4ホップ以下となる経路が探索されるように、設定を行なってよい。
次に、図2に示したネットワーク3のトポロジに対応した探索木が例えばメモリ12において展開されてよい(図3の符号A2参照)。探索木は、親ノード(別言すれば、「根ノード」)としての始点ノードを頂点として、葉ノードとしての始点ノード、終点ノード及び中間ノードを含んでよい。
なお、図3の符号A2に示す探索木においては、深さが“3”の位置に存在するノードの一部と、深さが“4”の位置に存在するノードの図示を省略している。ここで、「深さ」は、探索木の頂点に位置する始点ノードの深さを“0”とした場合における、探索木の頂点に位置する始点ノードからのホップ長を示す。
深さ“4”まで探索木の探索が完了すると、探索結果が得られてよい(図3の符号A3参照)。図3においては、4つの経路が探索結果として得られた例を示している。第1の経路は始点ノードから中間ノード#1、#2を経由して終点ノードに到達する経路であり、第2の経路は始点ノードから中間ノード#3、#1、#2を経由して終点ノードに到達する経路である。また、第3の経路は始点ノードから中間ノード#3、#4、#5を経由して終点ノードに到達する経路であり、第4の経路は始点ノードから中間ノード#3、#4、#2を経由して終点ノードに到達する経路である。
次に、探索木による深さ優先探索法を用いた経路探索例を、図4に示すフローチャート(ステップS1〜S5)に従って説明する。
経路探索装置1は、オペレータ端末2から経路探索要求を受信する(ステップS1)。
経路探索装置1は、経路探索要求に基づき、ホップ長条件や始点ノード及び終点ノードに関する情報等の経路探索条件を設定する(ステップS2)。
経路探索装置1は、探索木による深さ優先探索法を用いて、設定されたホップ長条件によるホップ長の範囲において、始点ノードから終点ノードまでの経路候補を全パターン抽出する(ステップS3)。
経路探索装置1は、抽出した経路候補の中から、設定されたメトリック値が最良となる経路を1つ選択する(ステップS4)。
経路探索装置1は、選択した経路を用いてデータの伝送が行なわれるように、ネットワーク3を設定する(ステップS5)。
このように、探索木による深さ優先探索法を用いた経路探索においては、オペレータによって設定されたホップ長範囲を満たす全ての経路候補が抽出される。
しかしながら、深さ優先探索法を大規模なネットワークにおいて適用しようとすると、探索対象の経路数(別言すれば、探索空間)が膨大となり、計算時間が膨大になる可能性がある。
そこで、第1実施形態の経路探索装置1は、例示的に、始点ノードから終点ノードまでの全ての経路のうち、オペレータによって設定されたホップ長範囲を満たさないことが予測される経路の探索を途中で打ち切ってよい。「ホップ長範囲」は、「設定ホップ長」や「探索範囲」と称してもよい。
図1に示したCPU11の探索部111は、例示的に、ネットワーク3のトポロジに対応した探索木において、始点ノードから終点ノードまでの経路の候補を探索する。探索部111は、深さ優先探索法を用いて、経路の候補を探索してよい。
探索部111は、ホップ長条件が満たされる経路について、ノードnから終点ノードへ向かう方向に接続されたノードn+1が存在する場合に、始点ノードからノードn+1を経由する終点ノードまでの経路に対して、経路の候補を探索してもよい。
「n」は、自然数であり、深さ優先探索法によって探索されたノードの順序を示す数である。つまり、ノードnの次に探索されるノードはノードn+1であり、自然数「n」は1つのノードに対して複数回対応づけられてよい。
「ホップ長条件」の一例は、始点ノードからノードnまでのホップ長と、ノードnから終点ノードまでの最短ホップ長との加算値が、設定ホップ長以下であるという条件である。「ホップ長条件」が満たされるかの判定は、例示的に、制御部112によって行なわれてよい。
制御部112は、例示的に、始点ノードからノードnまでのホップ長と、ノードnから終点ノードまでの最短ホップ長との加算値が、設定ホップ長以下であるかを判定する。別言すれば、制御部112は、ホップ長条件が満たされるかを判定してよい。
制御部112は、ホップ長条件が満たされない経路については、ノードnから終点ノードまでの経路を探索候補から除外してよい。
制御部112は、ノードnについてホップ長条件が満たされない場合に、ノードnの親ノードに接続され、経路候補の探索を未実施のノードについて、探索部111に経路探索をさせてよい。
決定部113は、例示的に、ノードn+1が終点ノードである場合に、始点ノードからノードnを経由する終点ノードまでの経路を、経路探索の結果として決定する。
表示処理部114は、例示的に、決定部113によって経路探索の結果として決定された経路を、オペレータ端末2が備える表示装置22に表示させる。
〔A−2〕動作例
図5は、第1実施形態の経路探索装置1における経路探索例を説明する図である。
最初に、始点ノードから終点ノードまでの最短ホップ長に基づいた探索範囲が、オペレータ端末2を介して経路探索装置1に設定されてよい(図5の符号B1参照)。図2に示したネットワーク3において、始点ノードから終点ノードまでの最短ホップ長は、“3”である。そこで、オペレータは、例えば、最短ホップ長“3”にマージンとしてのホップ長“1”を加算した4ホップを、探索範囲として設定してよい。別言すれば、オペレータは、始点ノードから終点ノードまでのホップ長が4ホップ以下となる経路が探索されるように、設定を行なってよい。
制御部112は、ノードnにおいて、探索継続判定を行なってよい(図5の符号B2参照)。
制御部112は、探索継続判定の判定条件の一例であるf(始,n)+g(n,終)>探索範囲が満たされる場合に、次ノードn+1以降の探索を探索候補から除外してよい。別言すれば、探索部111は、f(始,n)+g(n,終)>探索範囲が満たされる場合に、次ノードn+1の探索を行なわなくてよい。f(始,n)は、例示的に、始点ノードからノードnまでにおいて探索済みの経路におけるホップ長(「探索ホップ長」と称してもよい。)を示す。また、g(n,終)は、例示的に、ノードnから終点ノードまでの経路における最短ホップ長を示す。
探索部111は、探索継続判定の条件の一例であるf(始,n)+g(n,終)≦探索範囲が満たされる場合に、次ノードn+1以降の探索を継続して行なってよい。
探索部111は、探索継続判定の結果に従い、ネットワーク3のトポロジに対応した探索木において、始点ノードから終点ノードまでの経路の候補を探索してよい(図5の符号B3参照)。なお、図5においては、深さが“4”の位置に存在し、探索が行なわれたノードの図示を省略している。
図5において、「×」を示したノードは、次ノード以降の探索が行なわれないことを示す。例えば、始点ノードからノード#1、#3を経由する経路において、始点ノードからノード#3までの探索ホップ長f(始,3)=2であり、ノード#3から終点ノードまでの最短ホップ長g(3,終)=3である。よって、f(始,3)+g(3,終)=5となり、探索ホップ長と最短ホップ長との加算値は探索範囲を超える。そこで、ノード#3の葉ノードに相当する各ノードの探索は、探索候補から除外される。
決定部113は、深さ“4”が以下の位置に存在する終点ノードまでの経路を、経路探索の結果として決定してよい(図5の符号B4参照)。
図5においては、4つの経路が探索結果として得られた例を示している。第1の経路は始点ノードから中間ノード#1、#2を経由して終点ノードに到達する経路であり、第2の経路は始点ノードから中間ノード#3、#1、#2を経由して終点ノードに到達する経路である。また、第3の経路は始点ノードから中間ノード#3、#4、#5を経由して終点ノードに到達する経路であり、第4の経路は始点ノードから中間ノード#3、#4、#2を経由して終点ノードに到達する経路である。
表示処理部114は、決定部113によって決定された経路探索の結果を、オペレータ端末2の表示装置22に表示させてよい。
次に、第1実施形態の経路探索装置における経路探索例について、図6において説明するノードの名称を用いて、図7に示すフローチャート(ステップS11〜S22)に従って説明する。
図6に例示するように、親ノードの配下(別言すれば、深さ方向)には、1又は複数の葉ノードが接続されてよい。葉ノードは、探索済みノードと選択ノードと未探索ノードとに分類されてよい。「探索済みノード」は、探索部111による経路探索が完了したノードである。「選択ノード」は、探索部111による経路探索が実行中のノードである。「未探索ノード」は、探索部111による経路探索が未だ行なわれていないノードである。
探索部111は、ネットワーク3の全区間(別言すれば、各ノード間)の最短ホップ長を算出する(図7のステップS11)。算出された全区間の最短ホップ長は、例えば、記憶装置13に格納されてよい。また、全区間の最短ホップ長の算出は、ネットワーク3の構成変更時等の、経路探索の開始前に、予め行なわれていてもよい。
探索部111は、オペレータ端末2を介したオペレータからの経路探索要求を受け付け、経路探索要求に基づいた経路探索条件を設定する(図7のステップS12)。設定された経路探索条件に関する情報は、例えば、記憶装置13に格納されてよい。経路探索条件に関する情報には、例示的に、探索範囲、始点ノードと終点ノードとに関する情報及びメトリック値が含まれてよい。
探索部111は、親ノードを選択ノードに設定する(図7のステップS13)。
探索部111は、葉ノードに未探索ノードがあるかを判定する(図7のステップS14)。
葉ノードに未探索ノードがある場合には(図7のステップS14のYesルート参照)、探索部111は、未探索ノードであり、且つ、ノードIDが最も小さいノードを次の選択ノードに設定する(図7のステップS15)。
決定部113は、現在の選択ノードが終点ノードであるかを判定する(図7のステップS16)。
現在の選択ノードが終点ノードでない場合には(図7のステップS16のNoルート参照)、制御部112は、探索継続判定の判定条件の一例であるf(始,n)+g(n,終)≦探索範囲が満たされるかを判定する(図7のステップS17)。
f(始,n)+g(n,終)≦探索範囲が満たされない場合には(図7のステップS17のNoルート参照)、制御部112は、現在の選択ノードから終点ノードまでの経路を探索候補から除外する。探索部111は、現在の選択ノードを探索済みノードに設定し、選択ノードを親ノードに戻す(別言すれば、設定する)(図7のステップS18)。そして、処理は、図7のステップS13へ戻る。
一方、f(始,n)+g(n,終)≦探索範囲が満たされる場合には(図7のステップS17のYesルート参照)、探索部111は、現在の選択ノードを親ノードに設定する(図7のステップS19)。そして、処理は、図7のステップS13へ戻る。
図7のステップS16において、現在の選択ノードが終点ノードである場合には(図7のステップS16のYesルート参照)、決定部113は、ネットワーク3の全ノードに対する探索が済んでいるかを判定する(図7のステップS20)。
全ノードに対する探索が済んでいる場合には(図7のステップS20のYesルート参照)、決定部113は、探索解(別言すれば、探索した経路)を、例えば記憶装置13が記憶する情報に登録する(図7のステップS21)。探索解が複数ある場合には、決定部113は、メトリック値が最良の探索解を、例えば記憶装置13が記憶する情報に登録してよい。そして、処理は、終了する。
一方、全ノードに対する探索が済んでいない場合には(図7のステップS20のNoルート参照)、探索部111は、選択ノードを親ノードに戻す(別言すれば、設定する)(図7のステップS22)。そして、処理は、図7のステップS13へ戻る。
図7のステップS14において、葉ノードに未探索ノードがない場合には(図7のステップS14のNoルート参照)、処理は図7のステップS22へ移行する。
このように、第1実施形態において、探索部111は、ネットワーク3のトポロジに対応した探索木において、始点ノードから終点ノードまでの経路の候補を探索してよい。また、制御部112は、ホップ長条件を満たさない経路については、ノードnから終点ノードまでの経路を探索候補から除外してよい。「ホップ長条件」の一例とは、始点ノードからノードnまでのホップ長と、ノードnから終点ノードまでの最短ホップ長との加算値が、設定ホップ長以下であるという条件である。
これにより、設定ホップ長を超える可能性がある経路の探索を途中で打ち切る(別言すれば、不要な探索を削減する)ことができ、ある条件を満たすネットワーク3の経路の探索時間を短縮することができる。また、ネットワーク3の構成の拡張及び/又は変更を行なうとノード間の経路が変更される可能性があるが、経路探索時間を短縮することができるため、ネットワーク3の構成の拡張及び/又は変更を容易にすることができる。
探索部111は、ホップ長条件を満たす経路について、ノードnから終点ノードへ向かう方向に接続されたノードn+1が存在する場合に、始点ノードからノードn+1を経由する終点ノードまでの経路の候補を探索してよい。
これにより、設定ホップ長以下となる可能性がある経路の探索を適切に継続することができる。
決定部113は、ノードn+1が終点ノードである場合に、始点ノードからノードnを経由する終点ノードまでの経路を、経路探索の結果として決定する。
これにより、始点ノードから終点ノードまでのホップ長が設定ホップ長以下である適切な経路をネットワーク3内から抽出することができる。具体的には、条件を満たす適切な通信経路を高速に探索し、通信経路を抽出することができる。
探索部111は、探索木における深さ方向に接続されたノードn+1を優先して経路の候補を探索する。
これにより、ネットワーク3内において始点ノードから終点ノードまでのホップ長が設定ホップ長以下となる経路を漏れなく探索することができ、経路探索装置1の信頼性を向上させることができる。
図8及び図9は、第1実施形態における経路探索例の探索時間を比較例の探索時間と比較する図である。
図8においては、583個のノードと754本のリンクとが備えられるネットワーク3において、最短ホップ長が32ホップである始点ノードと終点ノードの組み合わせを3パターン選択し、各パターンの始点ノードから終点ノードまでの経路を探索する場合の探索時間[秒]が例示されている。また、図8においては、設定ホップ長として最短ホップ長又は最短ホップ長に1〜3ホップのいずれかを加算したホップ長が設定され、各設定ホップ長が設定された場合における経路を探索する例が示されている。
図8に例示するように、第1実施形態における経路探索例においては、比較例としての探索木の深さ優先探索法と比較して、10−5〜10−4程度の時間で各パターンの経路を探索することができる。
図9においては、10000個のノードと9999本のリンクとが備えられるネットワーク3において、最短ホップ長が25ホップである始点ノードと終点ノードの組み合わせを3パターン選択し、各パターンの始点ノードから終点ノードまでの経路を探索する場合の探索時間[秒]が例示されている。また、図9においては、設定ホップ長として最短ホップ長又は最短ホップ長に1〜3ホップのいずれかを加算したホップ長が設定され、各設定ホップ長が設定された場合における経路を探索する例が示されている。
図9に例示するように、比較例としての探索木の深さ優先探索法においては、数日計算しても計算が終わらない可能性がある。一方、第1実施形態における経路探索例において、設定ホップ長が最短ホップ長又は最短ホップ長に1ホップを加算したホップ長である場合には、10秒未満で各パターンの経路を探索することができる。また、第1実施形態における経路探索例において、設定ホップ長が最短ホップ長に2又は3ホップを加算したホップ長である場合には、最大でも19秒未満で各パターンの経路を探索することができる。
〔B〕第2実施形態
〔B−1〕システム構成例
第2実施形態において、制御部112は、探索継続判定において、上述した第1実施形態における探索範囲の判定に加えて、メトリック値の判定を行なってよい。「メトリック値」は、「指標」や「コスト値」と称してもよい。
メトリック値としては、上述したホップ長以外に、例えば、遅延時間やリンク負荷が挙げられる。「遅延時間」とは、例示的に、あるノードがデータを受信してから送信するまでにかかる時間である。また、「リンク負荷」とは、例示的に、あるリンクの伝送帯域においてデータの伝送が占める割合である。
オペレータ端末2は、例示的に、オペレータからの入力に基づき、設定メトリック値(「設定コスト値」と称してもよい。)に関する情報を付加した経路探索要求を経路探索装置1へ送信する。設定メトリック値は、オペレータが所望するメトリックの許容値である。例えば、メトリック値として遅延時間が選択される場合には、設定メトリック値には、10ms(ミリ秒)が設定される。また、例えば、メトリック値としてリンク負荷が選択される場合には、設定メトリック値には、40%が設定される。
制御部112は、例示的に、ホップ長とは異なるメトリック値について、始点ノードからノードnまでのメトリック値と、ノードnから終点ノードまでの最短経路におけるメトリック値との和が、基準メトリック値以下であるかを判定する。「基準メトリック値」は、「基準コスト値」と称してもよい。
探索部111は、探索済みの1又は複数の経路において、最良(例えば、最小)のメトリック値を、基準メトリック値として設定してよい。また、探索部111は、設定メトリック値以下となる始点ノードから終点ノードまでの経路におけるメトリック値を、基準メトリック値の初期値として設定してよい。
制御部112は、ホップ長条件が満たされる場合に、メトリック値の判定を行なってよい。「ホップ長条件」は、上述した第1実施形態と同様に、始点ノードからノードnまでのホップ長と、ノードnから終点ノードまでの最短ホップ長との加算値が、設定ホップ長以下であるという条件であってよい。
制御部112は、メトリック値条件が満たされない場合に、ノードnから終点ノードまでの経路を探索候補から除外してよい。「メトリック値条件」の一例は、始点ノードからノードnまでのメトリック値と、ノードnから終点ノードまでの最小のメトリック値との和が、基準メトリック値以下であるという条件である。
探索部111は、ホップ長条件及びメトリック値条件が満たされ、ノードnから終点ノードへ向かう方向に接続されたノードn+1が存在する場合に、始点ノードからノードn+1を経由する終点ノードまでの経路の候補を探索してよい。
決定部113は、探索部111によって探索された始点ノードから終点ノードまでの1又は複数の経路のうち、メトリック値が最良の経路を、ネットワーク3に設定する経路として決定してよい。別言すれば、決定部113は、探索部111によって最後に探索された始点ノードから終点ノードまでの経路を、ネットワーク3に設定する経路として決定してよい。
〔B−2〕動作例
図10は、第2実施形態の経路探索装置1における経路探索例を説明する図である。
制御部112は、ノードnにおいて、探索継続判定を行なってよい(図10の符号C1参照)。
制御部112は、探索継続判定の条件の一例であるf(始,n)+g(n,終)>探索範囲が満たされる場合に、次ノードn+1以降の探索を探索候補から除外してよい。別言すれば、探索部111は、f(始,n)+g(n,終)>探索範囲が満たされる場合に、次ノードn+1の探索を行なわなくてよい。
制御部112は、探索継続判定の条件の一例であるf(始,n)+g(n,終)≦探索範囲が満たされる場合に、メトリック値の判定を行なってよい。
制御部112は、探索継続判定の条件の一例であるm(始,n)+p(n,終)>基準メトリック値が満たされる場合に、次ノードn+1以降の探索を探索候補から除外してよい。別言すれば、探索部111は、m(始,n)+p(n,終)>基準メトリック値が満たされる場合に、次ノードn+1の探索を行なわないでよい。m(始,n)は、例示的に、始点ノードからノードnまでにおいて探索済みの経路におけるメトリック値の和(「探索メトリック値」と称してもよい。)を示す。また、p(n,終)は、例示的に、ノードnから終点ノードまでの最短経路におけるメトリック値の和を示す。
また、制御部112は、探索継続判定の条件の別例であるMax(m(始,n),p(n,終))>基準メトリック値が満たされる場合に、次ノードn+1以降の探索を探索候補から除外してもよい。別言すれば、探索部111は、Max(m(始,n),p(n,終))>基準メトリック値が満たされる場合に、次ノードn+1の探索を行なわなくてよい。Max(m(始,n),p(n,終))は、例示的に、始点ノードからノードnまでにおいて探索済みの経路における1又は複数のメトリック値と、ノードnから終点ノードまでの経路における1又は複数のメトリック値とのうち、最大のメトリック値を示す。
探索部111は、探索継続判定の条件の一例であるm(始,n)+p(n,終)≦探索範囲が満たされる場合に、次ノードn+1以降の探索を継続してよい。
また、探索部111は、探索継続判定の条件の別例であるMax(m(始,n),p(n,終))≦基準メトリック値が満たされる場合に、次ノードn+1以降の探索を継続してもよい。
探索部111は、探索継続判定の結果に従い、ネットワーク3のトポロジに対応した探索木において、始点ノードから終点ノードまでの経路の候補を探索してよい(図10の符号C2参照)。なお、図10においては、深さが“4”及び“5”の位置に存在し、探索が行なわれたノードの図示を省略している。
図10において、「×」を示したノードは、次ノード以降の探索が行なわれないことを示す。
例えば、始点ノードからノード#1、#3を経由する経路において、始点ノードからノード#3までの探索ホップ長f(始,3)=2であり、ノード#3から終点ノードまでの最短ホップ長g(3,終)=3である。よって、f(始,3)+g(3,終)=5となり、探索ホップ長と最短ホップ長との加算値は探索範囲である5ホップ以内となる。
しかしながら、始点ノードからノード#3までの探索メトリック値m(始,3)=5msであり、ノード#3から終点ノードまでの最短経路におけるメトリック値p(3,終)=7msとなる。よって、m(始,3)+p(3,終)=12msとなり、探索メトリック値とノード#3から終点ノードまでの最短経路におけるメトリック値との和は基準メトリック値である10msを超える。
そこで、ホップ長は探索範囲であるが、メトリック値が悪化するため、ノード#3の葉ノードに相当する各ノードの探索は、探索候補から除外される。
以下、第2実施形態の経路探索装置1における経路探索例を、図11及び図12に示すフローチャート(ステップS31〜S45)に従って説明する。なお、図11に、ステップS31〜36及びS42〜S45の処理を示し、図12に、ステップS37〜S41の処理を示す。
探索部111は、ネットワーク3の全区間(別言すれば、各ノード間)の最短ホップ長を算出する(図11のステップS31)。算出された全区間の最短ホップ長は、例えば、記憶装置13が記憶してよい。また、全区間の最短ホップ長の算出は、ネットワーク3の構成変更時等の、経路探索の開始前に、予め行なわれていてもよい。
探索部111は、オペレータ端末2を介したオペレータからの経路探索要求を受け付け、経路探索要求に基づいた経路探索条件を設定する(図11のステップS32)。設定された経路探索条件に関する情報は、例えば、記憶装置13が記憶してよい。経路探索条件に関する情報には、例示的に、探索範囲、始点ノードと終点ノードとに関する情報及びメトリック値が含まれてよい。
探索部111は、始点ノードから終点ノードまでにおける最短経路のメトリック値を算出し、基準メトリック値に設定する(図11のステップS33)。設定された基準メトリック値は、例えば、記憶装置13が記憶してよい。
探索部111は、親ノードを選択ノードに設定する(図11のステップS34)。
探索部111は、葉ノードに未探索ノードがあるかを判定する(図11のステップS35)。
葉ノードに未探索ノードがある場合には(図11のステップS35のYesルート参照)、探索部111は、未探索ノードであり、且つ、ノードIDが最も小さいノードを次の選択ノードに設定する(図11のステップS36)。
決定部113は、現在の選択ノードが終点ノードであるかを判定する(図12のステップS37)。
現在の選択ノードが終点ノードでない場合には(図12のステップS37のNoルート参照)、制御部112は、f(始,n)+g(n,終)≦探索範囲が満たされるかを判定する(図12のステップS38)。
f(始,n)+g(n,終)≦探索範囲が満たされない場合には(図12のステップS38のNoルート参照)、制御部112は、現在の選択ノードから終点ノードまでの経路を探索候補から除外する。探索部111は、現在の選択ノードを探索済みノードに設定し、選択ノードを親ノードに戻す(別言すれば、設定する)(図12のステップS39)。そして、処理は、図11のステップS34へ戻る。
一方、f(始,n)+g(n,終)≦探索範囲が満たされる場合には(図12のステップS38のYesルート参照)、制御部112は、m(始,n)+p(n,終)≦基準メトリック値が満たされるかを判定する(図12のステップS40)。
m(始,n)+p(n,終)≦基準メトリック値が満たされない場合には(図12のステップS40のNoルート参照)、処理は図12のステップS39へ移行する。
一方、m(始,n)+p(n,終)≦基準メトリック値が満たされる場合には(図12のステップS40のYesルート参照)、探索部111は、現在の選択ノードを親ノードに設定する(図12のステップS41)。そして、処理は、図11のステップS34へ戻る。
図12のステップS37において、現在の選択ノードが終点ノードである場合には(図12のステップS37のYesルート参照)、決定部113は、ネットワーク3の全ノードに対する探索が済んでいるかを判定する(図11のステップS42)。
全ノードに対する探索が済んでいる場合には(図11のステップS42のYesルート参照)、決定部113は、探索解(別言すれば、探索した経路)を、例えば記憶装置13が記憶する情報に登録する(図11のステップS43)。探索解が複数ある場合には、決定部113は、メトリック値が最良の探索解を、例えば記憶装置13が記憶する情報に登録してよい。そして、処理は、終了する。
一方、全ノードに対する探索が済んでいない場合には(図11のステップS42のNoルート参照)、決定部113は、得られた経路に対してメトリック値を算出する。また、決定部113は、算出したメトリック値を基準メトリック値に設定する(図11のステップS44)。
探索部111は、選択ノードを親ノードに戻す(別言すれば、設定する)(図11のステップS45)。そして、処理は、図11のステップS34へ戻る。
図11のステップS35において、葉ノードに未探索ノードがない場合には(図11のステップS35のNoルート参照)、処理は図11のステップS45へ移行する。
このように、第2実施形態において、制御部112は、ホップ長条件又はメトリック値条件が満たされない場合に、ノードnから終点ノードまでの経路を探索候補から除外してよい。「ホップ長条件」の一例は、始点ノードからノードnまでのホップ長と、ノードnから終点ノードまでの最短ホップ長との加算値が、設定ホップ長以下であるという条件である。「メトリック値条件」の一例は、始点ノードからノードnまでのメトリック値と、ノードnから終点ノードまでの最短経路におけるメトリック値との和が、基準メトリック値以下であるという条件である。
これにより、ホップ長に加えて、メトリック値を基準とした経路探索要求をオペレータが設定した場合においても、ある条件を満たすネットワーク3の経路の探索時間を短縮する時間を低減することができる。
探索部111は、ホップ長条件及びメトリック値条件が満たされ、ノードnから終点ノードへ向かう方向に接続されたノードn+1が存在する場合に、始点ノードからノードn+1を経由する終点ノードまでの経路の候補を探索してよい。
これにより、ホップ長に加えて、メトリック値を基準とした経路探索要求をオペレータが設定した場合においても、経路の探索を適切に継続することができる。また、基準メトリック値と各経路のメトリック値とを比較しながら探索木の探索を行なうため、最後に探索した終点ノードを含む経路を最良の経路として容易に決定することができる。
〔C〕第3実施形態
〔C−1〕システム構成例
第3実施形態において、制御部112は、探索継続判定において、上述した第1実施形態における探索範囲の判定に加えて、複数のメトリック値の判定を行なってよい。
制御部112は、例示的に、ホップ長についてのホップ長条件と、第1のメトリック値についてのメトリック値条件とが満たされるかを判定する。
「第1のメトリック値」は、「ホップ長」とは異なる指標である。「ホップ長条件」の一例は、始点ノードからノードnまでのホップ長と、ノードnから終点ノードまでの最短ホップ長との加算値が、設定ホップ長以下であるという条件である。「メトリック値条件」の一例は、始点ノードからノードnまでの第1のメトリック値と、ノードnから終点ノードまでの最短経路における第1のメトリック値との第1の和が、第1の基準メトリック値以下であるという条件である。
また、制御部112は、例示的に、同値条件が満たされる場合に、始点ノードからノードnまでの第2のメトリック値と、ノードnから終点ノードまでの最短経路における第2のメトリック値との第2の和が、第2の基準メトリック値以下であるかを判定する。
「第2のメトリック値」は、「ホップ長」及び「第1のメトリック値」とは異なる指標である。「同値条件」の一例は、第1の和が第1の基準メトリック値と等しいという条件である。
制御部112は、第1の和が第1の基準メトリック値を超える場合、又は、第2の和が第2の基準メトリック値を超える場合に、ノードnから終点ノードまでの経路を探索候補から除外してよい。第2のメトリック値についての判定は、第1のメトリック値についての判定がされた後に行なわれてよい。例示的に、第1のメトリック値についての判定は、第2のメトリック値についての判定よりも、優先度が高い。
探索部111は、ホップ長条件が満たされ、第1の和が第1の基準メトリック値未満であり、ノードnから終点ノードへ向かう方向に接続されたノードn+1が存在する場合、始点ノードからノードn+1を経由する終点ノードまでの経路候補を探索してよい。
また、探索部111は、第2の和が第2の基準メトリック値以下であり、ノードnから終点ノードへ向かう方向に接続されたノードn+1が存在する場合に、始点ノードからノードn+1を経由する終点ノードまでの経路の候補を探索してよい。
〔C−2〕動作例
図13は、第3実施形態の経路探索装置1における経路探索例を説明する図である。
制御部112は、ノードnにおいて、探索継続判定を行なってよい(図13の符号D1参照)。
制御部112は、探索継続判定の条件の一例であるf(始,n)+g(n,終)>探索範囲が満たされる場合に、次ノードn+1以降の探索を探索候補から除外する。別言すれば、探索部111は、f(始,n)+g(n,終)>探索範囲が満たされる場合に、次ノードn+1の探索を行なわなくてよい。
制御部112は、探索継続判定の条件の一例であるf(始,n)+g(n,終)≦探索範囲が満たされる場合に、第1のメトリック値の判定を行なってよい。
制御部112は、探索継続判定の条件の一例であるm1(始,n)+p1(n,終)>第1の基準メトリック値が満たされる場合に、次ノードn+1以降の探索を探索候補から除外してよい。別言すれば、探索部111は、m1(始,n)+p1(n,終)>第1の基準メトリック値が満たされる場合に、次ノードn+1の探索を行なわなくてよい。m1(始,n)は、例示的に、始点ノードからノードnまでにおいて探索済みの経路における第1のメトリック値の和(「第1の探索メトリック値」と称してもよい。)を示す。また、p1(n,終)は、例示的に、ノードnから終点ノードまでの最短経路における第1のメトリック値の和を示す。
探索部111は、探索継続判定の条件の一例であるm1(始,n)+p1(n,終)<探索範囲が満たされる場合に、次ノードn+1以降の探索を継続して行なってよい。
制御部112は、探索継続判定の条件の一例であるm1(始,n)+p1(n,終)=探索範囲が満たされる場合に、第2のメトリック値の判定を行なってよい。
また、制御部112は、探索継続判定の条件の別例であるMax1(m1(始,n),p1(n,終))>第1の基準メトリック値に基づいて、第1のメトリック値の判定を行なってもよい。Max1(m1(始,n),p1(n,終))は、例示的に、複数の第1のメトリック値のうち、最大の第1のメトリック値を示す。「複数の第1のメトリック値」の一例は、始点ノードからノードnまでにおいて探索済みの経路における1又は複数の第1のメトリック値と、ノードnから終点ノードまでの経路における1又は複数の第1のメトリック値とを含む。
以下、第2〜第i−1のメトリック値の判定は、第1のメトリック値の判定と同様に行なわれてよい。「i」は、2以上の整数である。ただし、i=2のときは、第2〜第i−1のメトリック値の判定は、行なわれなくてよい。
制御部112は、探索継続判定の条件の一例であるmi−1(始,n)+pi−1(n,終)=探索範囲が満たされる場合に、第iのメトリック値の判定を行なってよい。
制御部112は、探索継続判定の条件の一例であるmi(始,n)+pi(n,終)>第iの基準メトリック値が満たされる場合に、次ノードn+1以降の探索を探索候補から除外してよい。別言すれば、探索部111は、mi(始,n)+pi(n,終)>第iの基準メトリック値が満たされる場合に、次ノードn+1の探索を行なわなくてよい。mi(始,n)は、例示的に、始点ノードからノードnまでにおいて探索済みの経路における第iのメトリック値の和(「第iの探索メトリック値」と称してもよい。)を示す。また、pi(n,終)は、例示的に、ノードnから終点ノードまでの最短経路における第iのメトリック値の和を示す。
探索部111は、探索継続判定の条件の一例であるmi(始,n)+pi(n,終)<探索範囲が満たされる場合に、次ノードn+1以降の探索を継続してよい。
探索部111は、探索継続判定の結果に従い、ネットワーク3のトポロジに対応した探索木において、始点ノードから終点ノードまでの経路の候補を探索してよい(図13の符号D2参照)。なお、図13においては、深さが“4”及び“5”の位置に存在し、探索が行なわれたノードの図示を省略している。
図13において、「×」を示したノードは、次ノード以降の探索が行なわれないことを示す。
例えば、始点ノードからノード#1,#3を経由する経路において、始点ノードからノード#3までの探索ホップ長f(始,3)=2であり、ノード#3から終点ノードまでの最短ホップ長g(3,終)=3である。よって、f(始,3)+g(3,終)=5となり、探索ホップ長と最短ホップ長との加算値は探索範囲である5ホップ以内となる。
また、始点ノードからノード#3までの第1の探索メトリック値m1(始,3)=1msであり、ノード#3から終点ノードまでの最短経路における第1のメトリック値p1(3,終)=2msとなる。よって、m1(始,3)+p1(3,終)=3msとなり、第1の探索メトリック値とノード#3から終点ノードまでの最短経路における第1のメトリック値との和は第1の基準メトリック値である10msを超える。
しかしながら、始点ノードからノード#3までの探索済みの経路における第2のメトリック値の最大値はm2(始,3)=50%であり、ノード#3から終点ノードまでの最短経路における第2のメトリック値の最大値はp2(3,終)=20%である。よって、max(m1(始,3),p1(3,終))=50%となり、始点ノードからノード#3を経由する終点ノードまでの経路の第2のメトリック値の最大値は第2の基準メトリック値である40%を超える。
ホップ長及び第1のメトリック値の経路探索要求は満たされるが、第2のメトリック値が悪化するため、ノード#3の葉ノードに相当する各ノードの探索は、探索候補から除外される。
次に、第3実施形態の経路探索装置における経路探索例を、図14及び図15に示すフローチャート(ステップS51〜S66)に従って説明する。なお、図14に、ステップS51〜S56及びS63〜S66の処理を示し、図15に、ステップS57〜S62の処理を示す。
探索部111は、ネットワーク3の全区間(別言すれば、各ノード間)の最短ホップ長を算出する(図14のステップS51)。算出された全区間の最短ホップ長は、例えば、記憶装置13に格納されてよい。また、全区間の最短ホップ長の算出は、ネットワーク3の構成変更時等の、経路探索の開始前に、予め行なわれていてもよい。
探索部111は、オペレータ端末2を介したオペレータからの経路探索要求を受け付け、経路探索要求に基づいた経路探索条件を設定する(図14のステップS52)。設定された経路探索条件に関する情報は、例えば、記憶装置13に格納されてよい。経路探索条件に関する情報には、例示的に、探索範囲、始点ノードと終点ノードとに関する情報及び優先度が付加された複数のメトリック値が含まれてよい。
探索部111は、始点ノードから終点ノードまでにおける最短経路の第1〜第iのメトリック値を算出し、算出した第1〜第iのメトリック値を第1〜第iの基準メトリック値にそれぞれ設定する(図14のステップS53)。設定された基準値は、例えば、記憶装置13が記憶してよい。
探索部111は、親ノードを選択ノードに設定する(図14のステップS54)。
探索部111は、葉ノードに未探索ノードがあるかを判定する(図14のステップS55)。
葉ノードに未探索ノードがある場合には(図14のステップS55のYesルート参照)、探索部111は、未探索ノードであり、且つ、ノードIDが最も小さいノードを次の選択ノードに設定する(図14のステップS56)。
決定部113は、現在の選択ノードが終点ノードであるかを判定する(図15のステップS57)。
現在の選択ノードが終点ノードでない場合には(図15のステップS57のNoルート参照)、制御部112は、f(始,n)+g(n,終)≦探索範囲が満たされるかを判定する(図15のステップS58)。
f(始,n)+g(n,終)≦探索範囲が満たされない場合には(図15のステップS58のNoルート参照)、制御部112は、現在の選択ノードから終点ノードまでの経路を探索候補から除外する。探索部111は、現在の選択ノードを探索済みノードに設定し、選択ノードを親ノードに戻す(別言すれば、設定する)(図15のステップS59)。そして、処理は、図14のステップS54へ戻る。
一方、f(始,n)+g(n,終)≦探索範囲が満たされる場合には(図15のステップS58のYesルート参照)、制御部112は、m1(始,n)+p1(n,終)≦第1の基準メトリック値が満たされるかを判定する(図15のステップS60)。
m1(始,n)+p1(n,終)≦第1の基準メトリック値が満たされない場合には(図15のステップS60のNoルート参照)、処理は図15のステップS59へ移行する。
一方、m1(始,n)+p1(n,終)≦第1の基準メトリック値が満たされる場合には(図15のステップS60のYesルート参照)、制御部112は、m2(始,n)+p2(n,終)≦第2の基準メトリック値が満たされるかを判定する。
なお、図15のステップS60において、制御部112は、m1(始,n)+p1(n,終)=第1の基準メトリック値が満たされる場合に、m2(始,n)+p2(n,終)≦第2の基準メトリック値が満たされるかを判定してもよい。また、m1(始,n)+p1(n,終)<第1の基準メトリック値が満たされる場合には、処理は図15のステップS62へ移行してもよい。
そして、制御部112は、第1の基準メトリック値についての探索継続判定と同様に、第2〜第i−1の基準メトリック値についての探索継続判定を行なう。
mi−1(始,n)+pi−1(n,終)≦第i−1の基準メトリック値が満たされる場合には、制御部112は、mi(始,n)+pi(n,終)≦第iの基準メトリック値が満たされるかを判定する(図15のステップS61)。
なお、制御部112は、mi−1(始,n)+pi−1(n,終)=第i−1の基準メトリック値が満たされる場合に、mi(始,n)+pi(n,終)≦第iの基準メトリック値が満たされるかを判定してもよい。また、mi−1(始,n)+pi−1(n,終)<第i−1の基準メトリック値が満たされる場合には、処理は図15のステップS62へ移行してもよい。
mi(始,n)+pi(n,終)≦第iの基準メトリック値が満たされない場合には(図15のステップS61のNoルート参照)、処理は図15のステップS59へ移行する。
一方、mi(始,n)+pi(n,終)≦第iの基準メトリック値が満たされる場合には(図15のステップS61のYesルート参照)、探索部111は、現在の選択ノードを親ノードに設定する(図15のステップS62)。そして、処理は、図14のステップS54へ戻る。
図15のステップS57において、現在の選択ノードが終点ノードである場合には(図15のステップS57のYesルート参照)、決定部113は、ネットワーク3の全ノードに対する探索が済んでいるかを判定する(図14のステップS63)。
全ノードに対する探索が済んでいる場合には(図14のステップS63のYesルート参照)、決定部113は、探索解(別言すれば、最後に探索した経路)を、例えば記憶装置13が記憶する情報に登録する(図14のステップS64)。そして、処理は、終了する。
一方、全ノードに対する探索が済んでいない場合には(図14のステップS63のNoルート参照)、決定部113は、得られた経路に対して第1〜第iのメトリック値を算出する。また、決定部113は、算出した第1〜第iのメトリック値を第1〜第iの基準メトリック値にそれぞれ設定する(図14のステップS65)。
探索部111は、選択ノードを親ノードに戻す(別言すれば、設定する)(図14のステップS66)。そして、処理は、図14のステップS54へ戻る。
図14のステップS55において、葉ノードに未探索ノードがない場合には(図14のステップS55のNoルート参照)、処理は図14のステップS66へ移行する。
このように、第3実施形態において、制御部112は、同値条件が満たされる場合に、第2の和が第2の基準メトリック値を超えるかを判定してよい。「同値条件」の一例は、始点ノードからノードnまでの第1のメトリック値と、ノードnから終点ノードまでの最短経路における第1のメトリック値との第1の和が、第1の基準メトリック値と等しいという条件である。「第2の和」の一例は、始点ノードからノードnまでの第2のメトリック値と、ノードnから終点ノードまでの最短経路における第2のメトリック値との和である。
これにより、上述した第1及び第2実施形態と同様の効果を奏することができるとともに、例えば、以下の効果を奏することができる。
ホップ長に加えて、複数のメトリック値を基準とした経路探索要求をオペレータが設定した場合においても、ある条件を満たすネットワーク3の経路の探索時間を短縮することができる。
探索部111は、同値条件が満たされ、第2の和が第2の基準コスト値以下である場合に、始点ノードから第n+1ノードを経由する終点ノードまでの経路の候補を探索する。
これにより、ホップ長に加えて、複数のメトリック値を基準とした経路探索要求をオペレータが設定した場合においても、経路の探索を適切に継続することができる。
〔D〕第4実施形態
〔D−1〕システム構成例
第4実施形態において、表示処理部114(図1を参照)は、探索部111による経路の候補の探索がノードnからノードn+1へ進むに応じて、始点ノードからノードnまでの探索した経路をオペレータ端末2が備える表示装置22に表示させてよい。また、表示処理部114は、経路の探索が探索候補から制御部112によって除外されたことを示す情報を表示装置22に表示させてよい。
〔D−2〕動作例
図16〜図19は、第4実施形態の経路探索装置における探索プロセスの画面表示例を説明する図である。
図16〜図19に示す「探索プロセス」及び「現時点で導出された経路」は、オペレータ端末2が備える表示装置22に表示されてよい。図16〜図19において、「探索プロセス」に表示される探索木において破線で示すノードのオブジェクトは、最後に表示されたノードのオブジェクトであることを示す。
表示処理部114は、探索木の深さ“0”における始点ノードが探索されると、始点ノードを示すオブジェクトを表示装置22に表示させてよい(図16の符号E1参照)。
表示処理部114は、探索木の深さ“1”におけるノード#1が探索されると、ノード#1を示すオブジェクトを、始点ノードの葉ノードに設定し、深さ“1”の位置に表示装置22に表示させてよい(図16の符号E2参照)。
表示処理部114は、探索木の深さ“2”における始点ノード及びノード#3、#2が探索されると、始点ノード及びノード#3、#2を示すオブジェクトを、ノード#1の葉ノードに設定し、表示装置22に表示させてよい(図16の符号E3参照)。
また、表示処理部114は、深さ“3”における始点ノード及びノード#3以降の経路が探索候補から除外されると、始点ノード及びノード#3のオブジェクト上に探索候補から除外されたことを示す「×」を表示装置22に表示させてよい(図16の符号E3参照)。
表示処理部114は、探索木の深さ“3”におけるノード#1,#4及び終点ノードが探索されると、ノード#1、#4及び終点ノードを示すオブジェクトを、ノード#2の葉ノードに設定し、表示装置22に表示させてよい(図17の符号E4参照)。
また、表示処理部114は、深さ“3”におけるノード#1、#4以降の経路が探索候補から除外されると、ノード#1、#4のオブジェクト上に探索候補から除外されたことを示す「×」を表示装置22に表示させてよい(図17の符号E4参照)。
更に、表示処理部114は、始点ノードから終点ノードまでの経路が導出されると、導出された経路を「現時点で導出された経路」として表示装置22に表示させてよい(図17の符号E4参照)。表示処理部114は、導出された経路における1又複数のメトリック値を表示装置22に表示させてもよい。
図17の符号E4においては、始点ノードからノード#1、#2を介して終点ノードに到達する経路が導出され、導出された経路の第1及び第2のメトリック値がそれぞれ50ms及び10%であることを示している。
表示処理部114は、探索木の深さ“1”におけるノード#3が探索されると、ノード#3を示すオブジェクトを、始点ノードの葉ノードに設定し、表示装置22に表示させてよい(図17の符号E5参照)。
表示処理部114は、探索木の深さ“2”におけるノード#1が探索されると、ノード#1を示すオブジェクトを、ノード#3の葉ノードに設定し、表示装置22に表示させてよい(図18の符号E6参照)。
表示処理部114は、探索木の深さ“3”におけるノード#2が探索されると、ノード#2を示すオブジェクトを、ノード#1の葉ノードに設定し、表示装置22に表示させてよい(図18の符号E7参照)。
表示処理部114は、探索木の深さ“4”における終点ノードが探索されると、終点ノードを示すオブジェクトを、ノード#2の葉ノードに設定し、表示装置22に表示させてよい(図19の符号E8参照)。
また、表示処理部114は、始点ノードから終点ノードまでの経路が導出されると、導出された経路を「現時点で導出された経路」として表示装置22に表示させてよい(図19の符号E8参照)。表示処理部114は、導出された経路における1又複数のメトリック値を表示装置22に表示させてもよい。
図19の符号E8においては、始点ノードからノード#3、#1、#2を介して終点ノードに到達する経路が導出され、導出された経路の第1及び第2のメトリック値がそれぞれ150ms及び5%であることを示している。
以降、表示装置22は、探索木における新たなノードが探索されるに応じて、表示装置22に表示させる「探索プロセス」及び/又は「現時点で導出された経路」を更新する。別言すれば、表示処理部114は、探索木における新たなノードが探索されるに応じて、表示装置22の表示状態を段階的に制御する。
次に、第4実施形態の経路探索装置1における探索プロセスの画面表示例を、図20に示すフローチャート(ステップS71〜S75)に従って説明する。
経路探索装置1は、オペレータ端末2から経路探索要求を受信する(図20のステップS71)。
探索部111は、受信した経路探索要求に基づき、設計条件を設定する(図20のステップS72)。設定した設計条件に関する情報は、記憶装置13が記憶してもよい。
表示処理部114は、探索木の探索過程で得られる経路解とホップ長とメトリック値とを表示装置22に表示させることにより、例えばオペレータに対して可視化する(図20のステップS73)。
決定部113は、探索部111による探索木の探索が終了したかを判定する(図20のステップS74)。
探索木の探索が終了していない場合には(図20のステップS74のNoルート参照)、処理は図20のステップS73へ戻る。
一方、探索木の探索が終了した場合には(図20のステップS74のYesルート参照)、決定部113は、選択経路をネットワーク3に設定する(図20のステップS75)。そして、処理は、終了してよい。
このように、第4実施形態において、表示処理部114は、経路の候補の探索がノードnからノードn+1へ進むに応じて、始点ノードからノードnまでの探索した経路を表示装置22に表示させる。また、表示処理部114は、制御部112によって経路の探索が探索候補から除外されたことを示す情報を表示装置22に表示させる。
以上により、オペレータは、表示装置22を介して、経路探索例の進捗状態を把握することができる。
〔E〕その他
開示の技術は上述した各実施形態に限定されるものではなく、各実施形態の趣旨を逸脱しない範囲で種々変形して実施することができる。各実施形態の各構成及び各処理は、必要に応じて取捨選択することができ、あるいは適宜組み合わせてもよい。例えば、上述した第4実施形態は、第1実施形態、第2実施形態、又は第3実施形態と組み合わされてよい。
上述した各実施形態において、経路探索装置1が備えるCPU11は、表示処理部114としての機能を備えることとしたが、これに限定されるものではない。表示処理部114としての機能は、例示的に、経路探索システム100において経路探索装置1とは別の表示制御装置(不図示)に備えられてよい。これにより、上述した各実施形態と同様の効果を奏することができる。
〔F〕付記
(付記1)
ネットワークのトポロジに対応した探索木において、始点ノードから終点ノードまでの経路の候補を探索する探索部と、
前記始点ノードから第nノード(nは自然数)までのホップ長と、前記第nノードから前記終点ノードまでの最短ホップ長との加算値が、設定ホップ長を超える経路については、前記第nノードから前記終点ノードまでの経路を探索候補から除外する制御部と、を備える、経路探索装置。
(付記2)
前記経路の候補の探索は、前記加算値が前記設定ホップ長以下である経路について、前記第nノードから前記終点ノードへ向かう方向に接続された第n+1ノードが存在する場合に、前記始点ノードから前記第n+1ノードを経由する前記終点ノードまでの経路に対して行なわれる、付記1に記載の経路探索装置。
(付記3)
前記第n+1ノードが前記終点ノードである場合に、前記始点ノードから前記第nノードを経由する前記終点ノードまでの経路を、経路探索の結果として決定する決定部を備える、付記2に記載の経路探索装置。
(付記4)
前記経路を探索候補から除外する制御は、前記ホップ長とは異なる第1のコスト値について、前記始点ノードから前記第nノードまでの第1のコスト値と、前記第nノードから前記終点ノードまでの最短経路における第1のコスト値との第1の和が、第1の設定コスト値を超える経路に対して行なわれる、付記2又は3に記載の経路探索装置。
(付記5)
前記経路の候補の探索は、前記加算値が前記設定ホップ長以下であり、前記第1の和が前記第1の基準コスト値以下である場合に、前記始点ノードから前記第n+1ノードを経由する前記終点ノードまでの経路に対して行なわれる、付記4に記載の経路探索装置。
(付記6)
前記経路を探索候補から除外する制御は、前記第1の和が前記第1の基準コスト値と等しい場合に、前記ホップ長及び前記第1のコスト値とは異なる第2のコスト値について、前記始点ノードから前記第nノードまでの第2のコスト値と、前記第nノードから前記終点ノードまでの最短経路における第2のコスト値との第2の和が、第2の基準コスト値を超える経路に対して行なわれる、付記4又は5に記載の経路探索装置。
(付記7)
前記経路の候補の探索は、前記第1の和が前記第1の基準コスト値と等しく、前記第2の和が前記第2の基準コスト値以下である場合に、前記始点ノードから前記第n+1ノードを経由する前記終点ノードまでの経路に対して行なわれる、付記6に記載の経路探索装置。
(付記8)
前記経路の候補の探索が前記第nノードから前記第n+1ノードへ進むに応じて、前記始点ノードから前記第nノードまでの探索した経路を表示装置に表示させる表示処理部を備える、付記2〜7のいずれか1項に記載の経路探索装置。
(付記9)
前記表示処理部は、前記制御部によって前記経路の探索が前記探索候補から除外されたことを示す情報を前記表示装置に表示させる、付記8に記載の経路探索装置。
(付記10)
前記経路の候補の探索は、探索木における深さ方向に接続された前記第n+1ノードを優先して行なわれる、付記2〜9のいずれか1項に記載の経路探索装置。
(付記11)
経路探索装置による経路探索方法であって、
ネットワークのトポロジに対応した探索木において、始点ノードから終点ノードまでの経路の候補を探索し、
前記始点ノードから第nノード(nは自然数)までのホップ長と、前記第nノードから前記終点ノードまでの最短ホップ長との加算値が、設定ホップ長を超える経路については、前記第nノードから前記終点ノードまでの経路を探索候補から除外する、経路探索方法。
(付記12)
前記経路の候補の探索は、前記加算値が前記設定ホップ長以下である経路について、前記第nノードから前記終点ノードへ向かう方向に接続された第n+1ノードが存在する場合に、前記始点ノードから前記第n+1ノードを経由する前記終点ノードまでの経路に対して行なわれる、付記11に記載の経路探索方法。
(付記13)
前記第n+1ノードが前記終点ノードである場合に、前記始点ノードから前記第nノードを経由する前記終点ノードまでの経路を、経路探索の結果として決定する、付記12に記載の経路探索方法。
(付記14)
前記経路を探索候補から除外する制御は、前記ホップ長とは異なる第1のコスト値について、前記始点ノードから前記第nノードまでの第1のコスト値と、前記第nノードから前記終点ノードまでの最短経路における第1のコスト値との第1の和が、第1の基準コスト値を超える経路に対して行なわれる、付記12又は13に記載の経路探索方法。
(付記15)
前記経路の候補の探索は、前記加算値が前記設定ホップ長以下であり、前記第1の和が前記第1の基準コスト値以下である場合に、前記始点ノードから前記第n+1ノードを経由する前記終点ノードまでの経路に対して行なわれる、付記14に記載の経路探索方法。
(付記16)
前記経路を探索候補から除外する制御は、前記第1の和が前記第1の基準コスト値と等しい場合に、前記ホップ長及び前記第1のコスト値とは異なる第2のコスト値について、前記始点ノードから前記第nノードまでの第2のコスト値と、前記第nノードから前記終点ノードまでの最短経路における第2のコスト値との第2の和が、第2の基準コスト値を超える経路に対して行なわれる、付記14又は15に記載の経路探索方法。
(付記17)
前記経路の候補の探索は、前記第1の和が前記第1の基準コスト値と等しく、前記第2の和が前記第2の基準コスト値以下である場合に、前記始点ノードから前記第n+1ノードを経由する前記終点ノードまでの経路に対して行なわれる、付記16に記載の経路探索方法。
(付記18)
前記経路の候補の探索が前記第nノードから前記第n+1ノードへ進むに応じて、前記始点ノードから前記第nノードまでの探索した経路を表示装置に表示させる、付記12〜17のいずれか1項に記載の経路探索方法。
(付記19)
前記経路の探索が前記探索候補から除外されたことを示す情報を前記表示装置に表示させる、付記18に記載の経路探索方法。
(付記20)
前記経路の候補の探索は、探索木における深さ方向に接続された前記第n+1ノードを優先して行なわれる、付記12〜19のいずれか1項に記載の経路探索方法。