説明

経路決定装置および経路決定方法

【課題】ノードがリンクを介して他の多くのノードと隣接している場合に、最短経路を決定するまでの時間が長くなってしまうのを回避する。
【解決手段】複数のノードを1つずつ始点ノードとして選択する選択部と、選択された始点ノードを、決定済みの最短経路の終点ノードとして認識し、その後、当該始点ノードから、決定済みの最短経路の終点ノードに隣接し、かつ、当該始点ノードからの最短経路が未決定のノードである未決定ノードまでの通信経路を最短経路候補とし、コスト値が最小の最短経路候補を最短経路として決定するとともに、決定した最短経路の終点ノードを、決定済みの最短経路の終点ノードとして新たに認識することを繰り返す決定部とを有し、決定部は、当該始点ノードから、未決定ノードのうち、決定済みの最短経路の終点ノードとの間のリンクに設定されたコスト値が最小である未決定ノードまでの通信経路を最短経路候補とする。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、複数のノードから構成される通信ネットワークにおける2つのノード間の最短経路を決定する経路決定装置および経路決定方法に関する。
【背景技術】
【0002】
隣接するノードとリンクを介して接続された複数のノードで構成される通信ネットワークにおいては、その複数のノードのいずれかである始点ノードから、その複数のノードのうちの始点ノード以外のノードである終点ノードまで複数の通信経路が存在する場合がある。そのため、その複数の通信経路のうち、最も効率的な通信経路である最短経路を決定する必要がある。
【0003】
そこで、リンクにコスト値と呼ばれる重み値を設定し、始点ノードから終点ノードまでの複数の通信経路のそれぞれのコスト値を計算することにより、コスト値が最小となる通信経路を最短経路として決定するのが一般的である。
【0004】
上述したような計算によって最短経路を決定するためのアルゴリズムの1つであるダイクストラ法が例えば、非特許文献1に開示されている。
【0005】
図8は、ダイクストラ法を用いて最短経路を決定する動作を説明するためのフローチャートである。
【0006】
まず、通信ネットワークを構成する複数のノードのうち始点ノードとして選択されていないノードが存在するかどうかが確認される(ステップS101)。
【0007】
ステップS101における確認の結果、始点ノードとして選択されていないノードが存在しない場合、処理が終了する。
【0008】
一方、ステップS101における確認の結果、始点ノードとして選択されていないノードが存在する場合には、始点ノードとして選択されていないノードの1つが始点ノードとして選択される(ステップS102)。なお、始点ノードとして選択されたノードは、決定済みの最短経路の終点ノードとして認識される。
【0009】
次に、決定済みの最短経路の終点ノードに隣接し、かつ、始点ノードからの最短経路が未決定のノードが存在する場合、始点ノードから、そのノードまでの通信経路が最短経路候補とされ、コスト値が計算される(ステップS103)。
【0010】
次に、最短経路候補が存在するかどうかが確認される(ステップS104)。
【0011】
ステップS104における確認の結果、最短経路候補が存在する場合、コスト値が最小の最短経路候補が最短経路として決定され(ステップS105)、ステップS103の動作へ遷移する。
【0012】
一方、ステップS104における確認の結果、最短経路候補が存在しない場合にはステップS101の動作へ遷移する。
【0013】
以降、ステップS101〜S105の動作が繰り返され、通信ネットワークを構成する複数のノードのそれぞれを始点ノードとした場合の最短経路が決定される。
【0014】
図9〜図11は、図8に示したフローチャートに従って最短経路を決定する動作の具体例を説明するための図であり、(a)は通信ネットワークの一例を示す図であり、(b)は最短経路候補の一例を示す図である。ここでは、最短経路が決定されていく動作の具体例を図9〜図11を順番に参照しながら説明する。
【0015】
なお、図9(a)、図10(a)および図11(a)に示す通信ネットワークは同じものである。
【0016】
また、図9(a)、図10(a)および図11(a)において、ノードは円で示されており、その円の中に記載されたアルファベットにより、通信ネットワークを構成する複数のノードのそれぞれが識別されている。以降、例えば円の中にAと記載されたノードのことをノードAという。また、通信経路を< >を用いて表記する。例えばノードAからノードBまでの通信経路の場合、<A→B>と表記する。
【0017】
また、図9(a)、図10(a)および図11(a)において、ノードを示す円と円との間の実線または破線がリンクを示しており、リンクの近傍の数字がそのリンクに設定されたコスト値を示している。
【0018】
まず、上述したステップS101の動作に従い、通信ネットワークを構成するノードA〜Iのうち始点ノードとして選択されていないノードが存在するかどうかが確認される。ここでは、ノードA〜Iのいずれも始点ノードとして選択されていないものとする。
【0019】
従って、上述したステップS102の動作に従い、ノードA〜Iのうちの1つが始点ノードとして選択される。ここでは、ノードAが始点ノードとして選択されるものとする。これにより、ノードAは決定済みの最短経路の終点ノードとして認識される。
【0020】
次に、上述したステップS103の動作に従い、ノードAに隣接し、かつ、ノードAからの最短経路が未決定のノードへの通信経路が最短経路候補とされ、コスト値が計算される。ここでは、ノードAに隣接し、かつ、ノードAからの最短経路が未決定のノードは、ノードB、ノードCおよびノードDである。
【0021】
従って、<A→B>と、<A→C>と、<A→D>との3つが最短経路候補となる。ここまでに最短経路候補となっている通信経路が、図9(b)に示され、また、図9(a)おいて実線で示されている。
【0022】
次に、上述したステップS104の動作に従い、最短経路候補が存在するかどうかが確認される。ここでは、最短経路候補は、図9(b)に示す3つである。つまり、最短経路候補が存在する。従って、上述したステップS105の動作に従い、この3つの最短経路候補うち、コスト値が最小の<A→D>が最短経路として決定する。
【0023】
次に、上述したステップS103の動作へ遷移し、ノードDに隣接し、かつ、ノードAからの最短経路が未決定のノードへの通信経路が最短経路候補とされ、コスト値が計算される。ここでは、ノードDに隣接し、かつ、ノードAからの最短経路が未決定のノードは、ノードE、ノードFおよびノードGである。
【0024】
従って、既に最短経路候補となっている<A→B>と、<A→C>との2つに加え、<A→D→E>と、<A→D→F>と、<A→D→G>との3つが最短経路候補となる。ここまでに最短経路候補となっている通信経路が、図10(b)に示され、また、図10(a)において実線で示されている。なお、<A→D>は最短経路として決定済みであるため最短経路候補からは除外されている。
【0025】
次に、上述したステップS104の動作に従い、最短経路候補が存在するかどうかが確認される。ここでは、最短経路候補は、図10(b)に示す5つである。つまり、最短経路候補が存在する。従って、上述したステップS105の動作に従い、この5つの最短経路候補のうち、コスト値が最小の<A→D→F>が最短経路として決定する。
【0026】
次に、上述したステップS103の動作へ遷移し、ノードFに隣接し、かつ、ノードAからの最短経路が未決定のノードへの通信経路が最短経路候補とされ、コスト値が計算される。ここでは、ノードFに隣接し、かつ、ノードAからの最短経路が未決定のノードは、ノードHおよびノードIである。
【0027】
従って、既に最短経路候補となっている<A→B>と、<A→C>と、<A→D→E>と、<A→D→G>との4つに加え、<A→D→F→H>と、<A→D→F→I>との2つが最短経路候補となる。ここまでに最短経路候補となっている通信経路が、図11(b)に示され、また、図11(a)おいて実線で示されている。なお、<A→D→F>は最短経路として決定済みであるため最短経路候補からは除外されている。
【0028】
次に、上述したステップS104の動作に従い、最短経路候補が存在するかどうかが確認される。ここでは、最短経路候補は、図11(b)に示す6つである。つまり、最短経路候補が存在する。従って、上述したステップS105の動作に従い、この6つの最短経路候補うち、コスト値が最小の<A→C>が最短経路として決定する。
【0029】
ノードAからノードB〜Iのそれぞれまでの最短経路が決定するまで、このような動作が繰り返し行われる。そして、ノードAからノードB〜Iのそれぞれまでの最短経路が決定すると、ノードB〜Iのそれぞれを始点ノードとした場合の最短経路を決定する。そして、ノードA〜Iのすべてのノードを始点ノードとした場合の最短経路が決定すると、最短経路を決定する計算が終了する。
【先行技術文献】
【非特許文献】
【0030】
【非特許文献1】Dijkstra, E. W. (1959). "A note on two problems in connexion with graphs".Numerische Mathematik 1:269-271
【発明の概要】
【発明が解決しようとする課題】
【0031】
上述したダイクストラ法のようなアルゴリズムは、始点ノードから、決定済みの最短経路の終点ノードに隣接し、かつ、その始点ノードからの最短経路が未決定のノードまでの通信経路のすべてを最短経路候補として追加する。そのため、ノードがリンクを介して他の多くのノードと隣接している場合、最短経路候補の数が多くなる。この場合、コスト値が最小となる最短経路候補を決定する際の計算量が大きくなり、最短経路を決定するまでの時間が長くなってしまうという問題点がある。
【0032】
本発明は、ノードがリンクを介して他の多くのノードと隣接している場合に、最短経路を決定するまでの時間が長くなってしまうのを回避することができる経路決定方法および経路決定装置を提供することを目的とする。
【課題を解決するための手段】
【0033】
上記目的を達成するために本発明の経路決定装置は、隣接するノードとコスト値が設定されたリンクを介して接続された複数のノードのそれぞれから、該複数のノードのうち当該ノード以外のノードである終点ノードまでの最短経路を決定する経路決定装置であって、
前記複数のノードのそれぞれを1つずつ始点ノードとして選択する選択部と、
前記選択部にて選択された始点ノードを、決定済みの最短経路の終点ノードとして認識し、その後、当該始点ノードから、前記決定済みの最短経路の終点ノードに隣接し、かつ、当該始点ノードからの最短経路が未決定のノードである未決定ノードまでの通信経路を、最短経路の候補となる最短経路候補とし、該最短経路候補のうち、コスト値が最小の最短経路候補を最短経路として決定するとともに、該決定した最短経路の終点ノードを、前記決定済みの最短経路の終点ノードとして認識しているノードに代えて、前記決定済みの最短経路の終点ノードとして新たに認識することを繰り返す決定部と、を有し、
前記決定部は、当該始点ノードから、前記未決定ノードのうち、前記決定済みの最短経路の終点ノードとの間のリンクに設定されたコスト値が最小である未決定ノードまでの通信経路を前記最短経路候補とする。
【0034】
また、上記目的を達成するために本発明の経路決定方法は、隣接するノードとコスト値が設定されたリンクを介して接続された複数のノードのそれぞれから、該複数のノードのうち当該ノード以外のノードである終点ノードまでの最短経路を決定する経路決定装置における経路決定方法であって、
前記複数のノードのそれぞれを1つずつ始点ノードとして選択する処理と、
前記選択した始点ノードを、決定済みの最短経路の終点ノードとして認識する処理と、
当該始点ノードから、前記決定済みの最短経路の終点ノードに隣接し、かつ、当該始点ノードからの最短経路が未決定のノードである未決定ノードまでの通信経路を、最短経路の候補となる最短経路候補とし、該最短経路候補のうち、コスト値が最小の最短経路候補を最短経路として決定するとともに、該決定した最短経路の終点ノードを、前記決定済みの最短経路の終点ノードとして認識しているノードに代えて、前記決定済みの最短経路の終点ノードとして新たに認識することを繰り返す決定処理と、を有し、
前記決定処理では、当該始点ノードから、前記未決定ノードのうち、前記決定済みの最短経路の終点ノードとの間のリンクに設定されたコスト値が最小である未決定ノードまでの通信経路を前記最短経路候補とする。
【発明の効果】
【0035】
本発明は以上説明したように構成されているので、始点ノードから、決定済みの最短経路の終点ノードに隣接し、かつ、その始点ノードからの最短経路が未決定のノードへの通信経路のすべてを最短経路候補に追加することがなくなる。
【0036】
そのため、最短経路候補の数が抑制され、コスト値が最小となる最短経路を決定する際の計算量を少なくすることができる。
【0037】
従って、ノードがリンクを介して他の多くのノードと隣接している場合に、最短経路を決定するまでの時間が長くなってしまうのを回避することができる。
【図面の簡単な説明】
【0038】
【図1】ダイクストラ法のアルゴリズムの性質を説明するための図である。
【図2】本発明の経路決定装置の実施の一形態の構成を示すブロック図である。
【図3】図2に示した経路決定装置が最短経路を決定する動作を説明するためのフローチャートである。
【図4】図2に示した経路決定装置が最短経路を決定する動作の詳細を説明するためのフローチャートである。
【図5】図3および図4に示したフローチャートに従って、経路決定装置が最短経路を決定する動作の具体例を説明するための図である。
【図6】図3および図4に示したフローチャートに従って、経路決定装置が最短経路を決定する動作の具体例を説明するための図である。
【図7】図3および図4に示したフローチャートに従って、経路決定装置が最短経路を決定する動作の具体例を説明するための図である。
【図8】ダイクストラ法を用いて最短経路を決定する動作を説明するためのフローチャートである。
【図9】図8に示したフローチャートに従って最短経路を決定する動作の具体例を説明するための図であり、(a)は通信ネットワークの一例を示す図であり、(b)は最短経路候補の一例を示す図である。
【図10】図8に示したフローチャートに従って最短経路を決定する動作の具体例を説明するための図であり、(a)は通信ネットワークの一例を示す図であり、(b)は最短経路候補の一例を示す図である。
【図11】図8に示したフローチャートに従って最短経路を決定する動作の具体例を説明するための図であり、(a)は通信ネットワークの一例を示す図であり、(b)は最短経路候補の一例を示す図である。
【発明を実施するための形態】
【0039】
以下に、本発明の実施の形態について図面を参照して説明するが、その前に、上述したダイクストラ法のアルゴリズムの性質について説明する。
【0040】
図1は、ダイクストラ法のアルゴリズムの性質を説明するための図である。なお、ここでは、上述した図9(a)、図10(a)および図11(a)に示した通信ネットワークを構成する複数のノードおよびコスト値に基づいて説明する。
【0041】
図1(a)、図1(b)および図1(d)、図1(e)、図1(f)は、図9〜図11を参照しながら説明した動作において決定した最短経路の終点ノードから、その終点ノードとリンクを介して隣接するノードまでの通信経路を、コスト値が小さな順番に並べたものである。
【0042】
具体的には、図1(a)および図1(d)は、ノードAと、ノードAとリンクを介して隣接するノードとの間の通信経路を、コスト値が小さな順番に並べて記載したものである。また、図1(b)および図1(e)は、ノードDと、ノードDとリンクを介して隣接するノードとの間の通信経路を、コスト値が小さな順番に並べて記載したものである。また、図1(f)は、ノードFと、ノードFとリンクを介して隣接するノードとの間の通信経路を、コスト値が小さな順番に並べて記載したものである。
【0043】
まず、<A→D>が最短経路として決定した場合、図1(a)および図1(b)の図中網掛けされた通信経路は、決定済みの最短経路上のノードへの通信経路となるため、最短経路候補を検討する際の対象から除外される。
【0044】
図1(c)は、<A→D>が最短経路として決定した後の最短経路候補をコスト値が小さな順番に並べたものである。
【0045】
図1(c)に示した最短経路候補のうち、ノードAからノードAに隣接するノードまでの最短経路候補の順番は、図1(a)に示した順番と同じである。すなわち、図1(a)および図1(c)において、<A→C>は<A→B>よりも上位となっている。
【0046】
また、図1(c)に示した最短経路候補のうち、ノードAからノードDを介してノードDに隣接するノードまでの最短経路候補の順番は、ノードDからノードDに隣接するノードまでの通信経路に着目すると、図1(b)に示した順番と同じである。すなわち、図1(b)において<D→F>は<D→G>および<D→E>よりも上位となり、図1(c)において<A→D→F>は<A→D→G>および<A→D→E>よりも上位となっている。また、図1(b)において<D→G>は<D→E>よりも上位となり、図1(c)において<A→D→G>は<A→D→E>よりも上位となっている。
【0047】
次に、<A→D→F>が最短経路として決定した場合、図1(d)、図1(e)および図1(f)の図中網掛けされた通信経路は、決定済みの最短経路上のノードへの通信経路となるため、最短経路候補を検討する際の対象から除外される。
【0048】
図1(g)は、<A→D→F>が最短経路として決定した後の最短経路候補をコスト値が小さな順番に並べたものである。
【0049】
図1(g)に示した最短経路候補のうち、ノードAからノードAに隣接するノードまでの最短経路候補の順番は、図1(d)に示した順番と同じである。また、図1(g)に示した最短経路候補のうち、ノードAからノードDを介してノードDに隣接するノードまでの最短経路候補の順番は、ノードDからノードDに隣接するノードまでの通信経路に着目すると、図1(b)に示した順番と同じである。
【0050】
また、図1(g)に示した最短経路候補のうち、ノードAからノードDとノードFとを介してノードFに隣接するノードまでの最短経路候補の順番は、ノードFからノードFに隣接するノードまでの通信経路に着目すると、図1(f)に示した順番と同じである。すなわち、図1(f)において<F→I>は<F→H>よりも上位となり、図1(g)において<A→D→F→I>は<A→D→F→H>よりも上位となっている。
【0051】
このように、新たに最短経路が決定して最短経路候補が追加されても最短経路候補は、決定済みの最短経路の終点ノード毎に見ると、その終点ノードとその終点ノードに隣接するノードとを接続するリンクに設定されたコスト値が小さな順番に並ぶことになる。すなわち、最短経路は、決定済みの最短経路の終点ノード毎に見ると、その終点ノードとその終点ノードに隣接するノードとを接続するリンクに設定されたコスト値が小さな順番に決定していくことになる。
【0052】
これは、始点ノードから、決定済みの最短経路の終点ノードまでのコスト値が同じであり、その終点ノードと、その終点ノードに隣接し、かつ、始点ノードからの最短経路が未決定のノードとを接続するリンクに設定されたコスト値の差が、最短経路候補のコスト値の差となるためである。
【0053】
従って、最短経路を決定する際には、始点ノードから、決定済みの最短経路の終点ノードに隣接し、かつ、始点ノードからの最短経路が未決定のノードのうち、その終点ノードとの間のリンクに設定されたコスト値が最小であるノードまでの通信経路だけを最短経路候補として追加すればよいことになる。本実施形態では、このようにして最短経路候補を追加していく。
【0054】
図2は、本発明の経路決定装置の実施の一形態の構成を示すブロック図である。
【0055】
本実施形態の経路決定装置は図2に示すように、記憶部11と、選択部12と、決定部13とを備えている。
【0056】
記憶部11は、通信ネットワークを示すネットワーク構成情報を記憶する。なお、ネットワーク構成情報には、通信ネットワークを構成する複数のノードを示す情報と、リンクに設定されたコスト値を示す情報とが含まれている。
【0057】
選択部12は、決定部13から出力された選択指示を受け付ける。なお、選択指示とは、記憶部11に記憶されたネットワーク構成情報が示す通信ネットワークを構成する複数のノードのうちの1つを始点ノードとして選択させるための指示である。なお、以降、記憶部11に記憶されたネットワーク構成情報が示す通信ネットワークを構成する複数のノードのことを単に、複数のノードという。選択部12は、決定部13から出力された選択指示を受け付けると、複数のノードのうち、始点ノードとして選択していないノードが存在するかどうかを確認する。なお、選択部12は、決定部13から出力された選択指示を受け付ける度に、この確認を実行する。確認の結果、複数のノードのうち、始点ノードとして選択していないノードが存在する場合、選択部12は、始点ノードとして選択していないノードの1つを始点ノードとして選択する。そして、選択部12は、選択した始点ノードを示す始点ノード情報を決定部13へ出力する。
【0058】
決定部13は、複数のノードのそれぞれについて、コスト順番情報を生成する。コスト順番情報とは、ノードとそのノードとリンクを介して隣接するノードとの間の通信経路を、コスト値が小さな順番に並べた情報である。次に、決定部13は、選択指示を選択部12へ出力する。その後、決定部13は、選択部12から出力された始点ノード情報を受け付ける。そして、決定部13は、受け付けた始点ノード情報が示す始点ノードから、複数のノードのうちその始点ノード以外のすべてのノードまでの最短経路を決定する。そして、決定部13は、選択指示を選択部12へ出力する。なお、決定部13が最短経路を決定する動作の詳細については後述する。
【0059】
以下に、上記のように構成された経路決定装置10において最短経路を決定する動作について説明する。
【0060】
図3は、図2に示した経路決定装置10が最短経路を決定する動作を説明するためのフローチャートである。
【0061】
まず、決定部13は、複数のノードのそれぞれについて、コスト順番情報を生成する(ステップS1)。
【0062】
そして、決定部13は、選択部12に選択指示を出力する。
【0063】
決定部13から出力された選択指示を受け付けた選択部12は、複数のノードのうち、始点ノードとして選択していないノードが存在するかどうかを確認する(ステップS2)。
【0064】
ステップS2における確認の結果、複数のノードのうち、始点ノードとして選択していないノードが存在しない場合、処理を終了する。
【0065】
一方、ステップS2における確認の結果、複数のノードのうち、始点ノードとして選択していないノードが存在する場合、選択部12は、始点ノードとして選択していないノードの1つを始点ノードとして選択する(ステップS3)。
【0066】
そして、選択部12は、選択した始点ノードを示す始点ノード情報を決定部13へ出力する。
【0067】
選択部12から出力された始点ノード情報を受け付けた決定部13は、受け付けた始点ノード情報が示す始点ノードから、複数のノードのうちその始点ノード以外のすべてのノードまでの最短経路を決定する(ステップS4)。
【0068】
次に、決定部13は、選択指示を選択部12へ出力する。そして、ステップS2の動作へ遷移する。
【0069】
以降、ステップS2〜S4の動作が繰り返され、複数のノードのそれぞれを始点ノードとした場合の最短経路が決定される。
【0070】
次に、上述したステップS4において最短経路を決定する動作の詳細について説明する。
【0071】
図4は、図2に示した経路決定装置10が最短経路を決定する動作の詳細を説明するためのフローチャートである。なお、ここでは、決定済みの最短経路上でその決定済みの最短経路の終点ノードと始点ノード側で隣接するノードのことを、その終点ノードの親ノードと定義する。
【0072】
まず、決定部13は、受け付けた始点ノード情報が示す始点ノードを、決定済みの最短経路の終点ノードとして認識する(ステップS41)。
【0073】
次に、決定部13は、決定済みの最短経路の終点ノードに隣接し、かつ、始点ノードからの最短経路が未決定のノードである未決定ノードが存在するかどうかを確認する(ステップS42)。
【0074】
ステップS42における確認の結果、決定済みの最短経路の終点ノードに隣接し、かつ、始点ノードからの最短経路が未決定のノードが存在する場合、決定部13は、その終点ノードのコスト順番情報に含まれる通信経路のうち、決定済みの最短経路上のノードへの通信経路を除いて最上位となる通信経路に、決定済みの最短経路を加えた通信経路を最短経路候補とし、コスト値を計算する(ステップS43)。
【0075】
次に、決定部13は、決定済みの最短経路の終点ノードの親ノードに隣接し、かつ、始点ノードからの最短経路が未決定のノードが存在するかどうかを確認する(ステップS44)。
【0076】
ステップS44における確認の結果、決定済みの最短経路の終点ノードの親ノードに隣接し、かつ、始点ノードからの最短経路が未決定のノードが存在する場合、決定部13は、その親ノードのコスト順番情報に含まれる通信経路のうち、決定済みの最短経路上のノードへの通信経路を除いて最上位となる通信経路に、決定済みの最短経路のうち始点ノードからその親ノードまでの通信経路を加えた通信経路を最短経路候補とし、コスト値を計算する(ステップS45)。
【0077】
次に、決定部13は、最短経路候補が存在するかどうかを確認する(ステップS46)。
【0078】
ステップS46における確認の結果、最短経路候補が存在する場合、コスト値が最小の最短経路候補を最短経路として決定する(ステップS47)。
【0079】
次に、決定部13は、決定済みの最短経路の終点ノードとして認識しているノードに代えて、ステップS47にて決定した最短経路の終点ノードを、決定済みの最短経路の終点ノードとして新たに認識する(ステップS48)。そして、ステップS42の動作へ遷移する。
【0080】
なお、ステップS42における確認の結果、決定済みの最短経路の終点ノードに隣接し、かつ、始点ノードからの最短経路が未決定のノードが存在しない場合、ステップS44の動作へ遷移する。
【0081】
また、ステップS44における確認の結果、決定済みの最短経路の終点ノードの親ノードに隣接し、かつ、始点ノードからの最短経路が未決定のノードが存在しない場合、ステップS46の動作へ遷移する。
【0082】
また、ステップS46における確認の結果、最短経路候補が存在しない場合、処理を終了する。これは、すなわち、始点ノードから、複数のノードのうち始点ノード以外のすべてのノードまでの最短経路が決定している場合である。この場合、図3を参照しながら説明したステップS2の動作へ遷移することになる。
【0083】
次に、図3および図4に示したフローチャートに従って、経路決定装置10が最短経路を決定する動作の具体例について説明する。
【0084】
図5〜図7は、図3および図4に示したフローチャートに従って、経路決定装置10が最短経路を決定する動作の具体例を説明するための図である。ここでは、経路決定装置10が最短経路を決定していく動作の具体例を図5〜図7を順番に参照しながら説明する。
【0085】
なお、図5(a)、図6(a)および図7(a)は、記憶部11に記憶されたネットワーク構成情報が示す通信ネットワークを示している。なお、この通信ネットワークは、図9(a)、図10(a)および図11(a)に示した通信ネットワークと同じ構成である。
【0086】
また、図5(b)、図6(b)および図7(b)はノードAのコスト順番情報を示しており、図6(c)および図7(c)はノードDのコスト順番情報を示しており、図7(d)はノードFのコスト順番情報を示している。
【0087】
まず、上述したステップS1の動作に従い、決定部13は、ノードA〜Iのそれぞれについてコスト順番情報を生成する。
【0088】
次に、上述したステップS2の動作に従い、選択部12は、ノードA〜Iのうち、始点ノードとして選択していないノードがあるかどうかを確認する。ここでは、ノードA〜Iのいずれも始点ノードとして選択されていないものとする。
【0089】
従って、選択部12は、上述したステップS3の動作に従い、ノードA〜Iのうちの1つを始点ノードとして選択する。ここでは、選択部12は、ノードAを始点ノードとして選択するものとする。
【0090】
次に、上述したステップS41の動作に従い、決定部13は、ノードAを、決定済みの最短経路の終点ノードとして認識する。
【0091】
次に、上述したステップS42の動作に従い、決定部13は、ノードAに隣接し、かつ、ノードAからの最短経路が未決定のノードが存在するかどうかを確認する。ここでは、ノードAに隣接し、かつ、ノードAからの最短経路が未決定のノードは、ノードB、ノードCおよびノードDである。つまり、ノードAに隣接し、かつ、ノードAからの最短経路が未決定のノードが存在する。
【0092】
従って、上述したステップS43の動作に従い、決定部13は、決定済みの最短経路の終点ノードのコスト順番情報に含まれる通信経路のうち、決定済みの最短経路上のノードへの通信経路を除いて最上位となる通信経路に、決定済みの最短経路を加えた通信経路を最短経路候補とし、コスト値を計算する。ここでは、決定済みの最短経路は存在しない。そのため、決定部13は、図5(b)に示したコスト順番情報において最上位である<A→D>を最短経路候補とする。
【0093】
次に、上述したステップS44の動作に従い、決定部13は、決定済みの最短経路の終点ノードの親ノードに隣接し、かつ、始点ノードからの最短経路が未決定のノードが存在するかどうかを確認する。ここでは、決定済みの最短経路の終点ノードはノードAであるが、ノードAは始点ノードでもあるため、親ノードは存在しない。そのため、親ノードに隣接し、かつ、始点ノードからの最短経路が未決定のノードは存在しない。従って、上述したステップS46の動作へ遷移し、決定部13は、最短経路候補が存在するかどうかを確認する。ここまでに最短経路候補となっている通信経路が、図5(c)に示され、また、図5(a)おいて実線で示されている。
【0094】
ここでは、最短経路候補は、図5(c)に示す1つである。つまり、最短経路候補が存在する。従って、上述したステップS47の動作に従い、決定部13は、コスト値が最小の<A→D>を最短経路として決定する。
【0095】
次に、上述したステップS48の動作に従い、決定部13は、決定済みの最短経路の終点ノードとして認識しているノードに代えて、ステップS47にて決定した最短経路の終点ノードを、決定済みの最短経路の終点ノードとして新たに認識する。ここでは、決定部13は、ノードAに代えて、ノードDを決定済みの最短経路の終点ノードとして新たに認識する。
【0096】
そして、上述したステップS42の動作へ遷移し、決定部13は、ノードDに隣接し、かつ、ノードAからの最短経路が未決定のノードが存在するかどうかを確認する。ここでは、ノードDに隣接し、かつ、ノードAからの最短経路が未決定のノードはノードE、ノードFおよびノードGである。つまり、ノードDに隣接し、かつ、ノードAからの最短経路が未決定のノードが存在する。
【0097】
従って、上述したステップS43の動作に従い、決定部13は、決定済みの最短経路の終点ノードのコスト順番情報に含まれる通信経路のうち、決定済みの最短経路上のノードへの通信経路を除いて最上位となる通信経路に、決定済みの最短経路を加えた通信経路を最短経路候補とし、コスト値を計算する。ここでは、決定部13は、図6(c)に示したノードDのコスト順番情報において、決定済みの最短経路上のノードへの通信経路である<D→A>を除いて最上位となる<D→F>に、<A→D>を加えた<A→D→F>を最短経路候補に追加する。
【0098】
次に、上述したステップS44の動作に従い、決定部13は、決定済みの最短経路の終点ノードの親ノードに隣接し、かつ、始点ノードからの最短経路が未決定のノードが存在するかどうかを確認する。ここでは、決定済みの最短経路の終点ノードはノードDである。そして、ノードDの親ノードはノードAである。つまり、決定部13は、ノードAに隣接し、かつ、ノードAからの最短経路が未決定のノードがあるかどうかを確認する。ここでは、ノードAに隣接し、かつ、ノードAからの最短経路が未決定のノードはノードBおよびノードCである。つまり、ノードAに隣接し、かつ、ノードAからの最短経路が未決定のノードが存在する。
【0099】
従って、上述したステップS45の動作に従い、決定部13は、決定済みの最短経路の終点ノードの親ノードのコスト順番情報に含まれる通信経路のうち、決定済みの最短経路上のノードへの通信経路を除いて最上位となる通信経路に、決定済みの最短経路のうち始点ノードからその親ノードまでの通信経路を加えた通信経路を最短経路候補とし、コスト値を計算する。図6(b)に示したノードAのコスト順番情報において、決定済みの最短経路上のノードへの通信経路である<A→D>を除いて最上位となる通信経路は<A→C>である。但し、決定済みの最短経路は<A→D>であるため、決定済みの最短経路のうち始点ノードからその親ノードまでの通信経路は存在しない。従って、決定部13は、<A→C>を最短経路候補として追加する。ここまでに最短経路候補となっている通信経路が、図6(d)に示され、また、図6(a)おいて実線で示されている。
【0100】
次に、上述したステップS46の動作に従い、決定部13は、最短経路候補が存在するかどうかを確認する。ここでは、最短経路候補は、図6(d)に示す2つである。つまり、最短経路候補が存在する。従って、上述したステップS47の動作に従い、決定部13は、この2つの最短経路候補のうちコスト値が最小の<A→D→F>を最短経路として決定する。
【0101】
次に、上述したステップS48の動作に従い、決定部13は、決定済みの最短経路の終点ノードとして認識しているノードに代えて、ステップS47にて決定した最短経路の終点ノードを、決定済みの最短経路の終点ノードとして新たに認識する。ここでは、決定部13は、ノードDに代えて、ノードFを決定済みの最短経路の終点ノードとして新たに認識する。
【0102】
そして、上述したステップS42の動作へ遷移し、決定部13は、ノードFに隣接し、かつ、ノードAからの最短経路が未決定のノードが存在するかどうかを確認する。ここでは、ノードFに隣接し、かつ、ノードAからの最短経路が未決定のノードはノードHおよびノードIである。つまり、ノードFに隣接し、かつ、ノードAからの最短経路が未決定のノードが存在する。
【0103】
従って、上述したステップS43の動作に従い、決定部13は、決定済みの最短経路の終点ノードのコスト順番情報に含まれる通信経路のうち、決定済みの最短経路上のノードへの通信経路を除いて最上位となる通信経路に、決定済みの最短経路を加えた通信経路を最短経路候補とし、コスト値を計算する。ここでは、決定部13は、図7(d)に示したノードFのコスト順番情報において、決定済みの最短経路上のノードへの通信経路である<F→D>を除いて最上位となる<F→I>に、<A→D→F>を加えた<A→D→F→I>を最短経路候補に追加する。
【0104】
次に、上述したステップS44の動作に従い、決定部13は、決定済みの最短経路の終点ノードの親ノードに隣接し、かつ、始点ノードからの最短経路が未決定のノードが存在するかどうかを確認する。ここでは、決定済みの最短経路の終点ノードはノードFである。そして、ノードFの親ノードはノードDである。つまり、決定部13は、ノードDに隣接し、かつ、ノードAからの最短経路が未決定のノードがあるかどうかを確認する。ここでは、ノードDに隣接し、かつ、ノードAからの最短経路が未決定のノードはノードEおよびノードGである。つまり、ノードDに隣接し、かつ、ノードAからの最短経路が未決定のノードが存在する。
【0105】
従って、上述したステップS45の動作に従い、決定部13は、決定済みの最短経路の終点ノードの親ノードのコスト順番情報に含まれる通信経路のうち、決定済みの最短経路上のノードへの通信経路を除いて最上位となる通信経路に、決定済みの最短経路のうち始点ノードからその親ノードまでの通信経路を加えた通信経路を最短経路候補とし、コスト値を計算する。ここでは、決定部13は、図7(c)に示したノードDのコスト順番情報において、決定済みの最短経路上のノードへの通信経路である<D→F>および<D→A>を除いて最上位となる<D→G>に、<A→D>を加えた<A→D→G>を最短経路候補として追加する。
【0106】
次に、上述したステップS46の動作に従い、決定部13は、最短経路候補が存在するかどうかを確認する。
【0107】
ここでは、最短経路候補は、図7(e)に示す3つである。つまり、最短経路候補が存在する。従って、上述したステップS47の動作に従い、決定部13は、この3つ最短経路候補のうちコスト値が最小の<A→C>を最短経路として決定する。
【0108】
次に、上述したステップS48の動作に従い、決定部13は、決定済みの最短経路の終点ノードとして認識しているノードに代えて、ステップS47にて決定した最短経路の終点ノードを、決定済みの最短経路の終点ノードとして新たに認識する。ここでは、決定部13は、ノードFに代えて、ノードCを決定済みの最短経路の終点ノードとして新たに認識する。
【0109】
以降、ノードAからノードB〜Iのそれぞれまでの最短経路が決定するまで、上述したステップS42〜S48の動作が繰り返される。そして、ノードAからノードB〜Iのそれぞれまでの最短経路が決定すると、上述したステップS2の動作へ遷移し、ノードA〜IのうちノードA以外のノードのいずれかが始点ノードとして選択される。
【0110】
このように本実施形態において経路決定装置10は、複数のノードのそれぞれを1つずつ始点ノードとして選択する選択部12と、選択部12にて選択された始点ノードを、決定済みの最短経路の終点ノードとして認識する決定部13を有する。
【0111】
決定部13は、その後、当該始点ノードから、決定済みの最短経路の終点ノードに隣接し、かつ、当該始点ノードからの最短経路が未決定のノードである未決定ノードまでの通信経路を、最短経路の候補となる最短経路候補とし、最短経路候補のうち、コスト値が最小の最短経路候補を最短経路として決定するとともに、決定した最短経路の終点ノードを、決定済みの最短経路の終点ノードとして認識しているノードに代えて、決定済みの最短経路の終点ノードとして新たに認識することを繰り返す。このとき、決定部13は、当該始点ノードから、未決定ノードのうち、決定済みの最短経路の終点ノードとの間のリンクに設定されたコスト値が最小である未決定ノードまでの通信経路を最短経路候補とする。
【0112】
これにより、始点ノードから、決定済みの最短経路の終点ノードに隣接し、かつ、その始点ノードからの最短経路が未決定のノードへの通信経路のすべてを最短経路候補に追加することがなくなる。
【0113】
そのため、最短経路候補の数が抑制され、コスト値が最小となる最短経路を決定する際の計算量を少なくすることができる。
【0114】
上述したダイクストラ法では、始点ノードから、以下の(1)および(2)に示す条件を満たすノードへの通信経路を最短経路候補としている。
【0115】
(1)決定済みの最短経路の終点ノードに隣接
(2)始点ノードからの最短経路が未決定
これに対して本実施形態では、始点ノードから、上記の(1)および(2)に加え、以下の(3)に示す条件を満たすノードへの通信経路を最短経路候補としている。
【0116】
(3)決定済みの最短経路の終点ノートと最小のコスト値で接続
つまり、ダイクストラ法では、最短経路候補として追加される通信経路の数は、決定済みの最短経路の終点ノードとリンクを介して接続するノードの数に応じた数となる。一方、本実施形態では、最短経路候補として追加される通信経路の数は、決定済みの最短経路の終点ノードあたり1つだけとなる。
【0117】
見方を変えると、ダイクストラ法の場合、コスト値が最小の最短経路候補を最短経路として決定する処理において、始点ノードから、決定済みの最短経路の終点ノードに隣接するノードまでの通信経路を、コスト値の小さな順番に並べている。
【0118】
一方、本実施形態では、複数のノードのそれぞれについて、そのノードと、そのノードに隣接するノードとの間の通信経路を、コスト値が小さな順番に予め並べておく。そして、コスト値が最小の最短経路候補を最短経路として決定する処理においては、始点ノードから、決定済みの最短経路の終点ノードに隣接するノードのうち、コスト値が最小のノードまでの通信経路を最短経路候補として追加しているだけである。従って、始点ノードが変わる度に、同じノードに隣接するノードまでの通信経路をコスト値が小さな順番に並べる必要はない。よって、本実施形態では、ダイクストラ法に比べて計算量を削減することができる。
【0119】
従って、ノードがリンクを介して他の多くのノードと隣接している場合に、最短経路を決定するまでの時間が長くなってしまうのを回避することができる。
【符号の説明】
【0120】
10 経路決定装置
11 記憶部
12 選択部
13 決定部

【特許請求の範囲】
【請求項1】
隣接するノードとコスト値が設定されたリンクを介して接続された複数のノードのそれぞれから、該複数のノードのうち当該ノード以外のノードである終点ノードまでの最短経路を決定する経路決定装置であって、
前記複数のノードのそれぞれを1つずつ始点ノードとして選択する選択部と、
前記選択部にて選択された始点ノードを、決定済みの最短経路の終点ノードとして認識し、その後、当該始点ノードから、前記決定済みの最短経路の終点ノードに隣接し、かつ、当該始点ノードからの最短経路が未決定のノードである未決定ノードまでの通信経路を、最短経路の候補となる最短経路候補とし、該最短経路候補のうち、コスト値が最小の最短経路候補を最短経路として決定するとともに、該決定した最短経路の終点ノードを、前記決定済みの最短経路の終点ノードとして認識しているノードに代えて、前記決定済みの最短経路の終点ノードとして新たに認識することを繰り返す決定部と、を有し、
前記決定部は、当該始点ノードから、前記未決定ノードのうち、前記決定済みの最短経路の終点ノードとの間のリンクに設定されたコスト値が最小である未決定ノードまでの通信経路を前記最短経路候補とする経路決定装置。
【請求項2】
請求項1に記載の経路決定装置において、
前記決定部は、前記複数のノードのそれぞれについて、当該ノードに隣接するノードまでの通信経路を、コスト値が小さな順番に並べた情報であるコスト順番情報を予め生成し、前記決定済みの最短経路の終点ノードの前記コスト順番情報において、当該決定済みの最短経路上のノードへの通信経路を除いて最上位となる通信経路に、当該決定済みの最短経路を加えた通信経路と、当該決定済みの最短経路上で当該決定済みの最短経路の終点ノードと当該始点ノード側で隣接するノードである親ノードの前記コスト順番情報において、当該決定済みの最短経路上のノードへの通信経路を除いて最上位となる通信経路に、当該決定済みの最短経路のうち当該始点ノードから前記親ノードまでの通信経路を加えた通信経路とを、前記最短経路候補とする経路決定装置。
【請求項3】
隣接するノードとコスト値が設定されたリンクを介して接続された複数のノードのそれぞれから、該複数のノードのうち当該ノード以外のノードである終点ノードまでの最短経路を決定する経路決定装置における経路決定方法であって、
前記複数のノードのそれぞれを1つずつ始点ノードとして選択する処理と、
前記選択した始点ノードを、決定済みの最短経路の終点ノードとして認識する処理と、
当該始点ノードから、前記決定済みの最短経路の終点ノードに隣接し、かつ、当該始点ノードからの最短経路が未決定のノードである未決定ノードまでの通信経路を、最短経路の候補となる最短経路候補とし、該最短経路候補のうち、コスト値が最小の最短経路候補を最短経路として決定するとともに、該決定した最短経路の終点ノードを、前記決定済みの最短経路の終点ノードとして認識しているノードに代えて、前記決定済みの最短経路の終点ノードとして新たに認識することを繰り返す決定処理と、を有し、
前記決定処理では、当該始点ノードから、前記未決定ノードのうち、前記決定済みの最短経路の終点ノードとの間のリンクに設定されたコスト値が最小である未決定ノードまでの通信経路を前記最短経路候補とする経路決定方法。
【請求項4】
請求項3に記載の経路決定方法において、
前記複数のノードのそれぞれについて、当該ノードに隣接するノードまでの通信経路を、コスト値が小さな順番に並べた情報であるコスト順番情報を予め生成する処理をさらに有し、
前記決定処理では、前記決定済みの最短経路の終点ノードの前記コスト順番情報において、当該決定済みの最短経路上のノードへの通信経路を除いて最上位となる通信経路に、当該決定済みの最短経路を加えた通信経路と、当該決定済みの最短経路上で当該決定済みの最短経路の終点ノードと当該始点ノード側で隣接するノードである親ノードの前記コスト順番情報において、当該決定済みの最短経路上のノードへの通信経路を除いて最上位となる通信経路に、当該決定済みの最短経路のうち当該始点ノードから前記親ノードまでの通信経路を加えた通信経路とを、前記最短経路候補とする経路決定方法。

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図1】
image rotate

【図6】
image rotate

【図7】
image rotate