JP2016116067A - 情報処理装置、制御方法、及びプログラム - Google Patents
情報処理装置、制御方法、及びプログラム Download PDFInfo
- Publication number
- JP2016116067A JP2016116067A JP2014253141A JP2014253141A JP2016116067A JP 2016116067 A JP2016116067 A JP 2016116067A JP 2014253141 A JP2014253141 A JP 2014253141A JP 2014253141 A JP2014253141 A JP 2014253141A JP 2016116067 A JP2016116067 A JP 2016116067A
- Authority
- JP
- Japan
- Prior art keywords
- node
- route
- evaluation value
- nodes
- value
- 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.)
- Pending
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/12—Shortest path evaluation
- H04L45/124—Shortest path evaluation using a combination of metrics
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/02—Topology update or discovery
- H04L45/021—Ensuring consistency of routing table updates, e.g. by using epoch numbers
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
【課題】並列処理に適した最適経路探索を行う情報処理装置を提供する。【解決手段】複数のノード間に定められた結合関係を示す情報と、結合関係のコストを示す情報と、で構成される経路情報に含まれる複数のノードそれぞれに対して、該ノードと基準ノードとの間のコストを示す評価値を付与し、複数のノード間それぞれにおいて、結合関係と、各ノードに付与された評価値の大小関係と、に基づいて当該ノード間を経路として確定するか否かを判断し、当該ノードと確定された経路で接続されるノードとの間のコストを示す値に基づいて、評価値を更新する評価値更新部と、を含み、更新された評価値に基づく判断部による判断の後に、評価値更新部による評価値更新を実行する処理を繰り返し実行する。【選択図】図4
Description
本発明は、情報処理装置、制御方法、及びプログラムに関する。
複数のノードと、ノード間の結合関係とその結合関係の重みとを関連付けたエッジと、からなる経路グラフにおいて、起点ノードから目標ノードまでの最短経路を探索する技術が知られている。従来は、起点ノードから開始して接続されているノードを順に追っていくことで目標ノードまでの最短経路を探索している。
経路探索において、ノード数の増加や経路グラフの時間変化に伴う経路探索処理の負担を軽減するため、経路探索処理を並列処理により実行することが望ましい。しかし、従来の経路探索方法では、各ノードに接続されているノードの数は一様でないため並列処理を効率的に行えない場合がある。
そこで、本発明の目的の一つは、並列処理に適した最適経路探索を行う情報処理装置を提供することにある。
本発明に係る情報処理装置は、複数のノード間に定められた結合関係を示す情報と、前記結合関係のコストを示す情報と、で構成される経路情報を取得する経路情報取得部と、前記経路情報に含まれる複数のノードそれぞれに対して、前記複数のノードのうち基準となる基準ノードを区別する値を初期値とする、当該ノードと基準ノードとの間のコストを示す評価値を付与する評価値付与部と、前記結合関係を有する複数のノード間それぞれにおいて、当該結合関係と、各ノードに付与された前記評価値の大小関係と、に基づいて当該ノード間を経路として確定するか否かを判断する判断部と、前記複数のノードそれぞれにおいて、当該ノードと前記確定された経路で接続されるノードとの間のコストを示す値に基づいて、前記評価値を更新する評価値更新部と、を含み、前記更新された評価値に基づく前記判断部による判断の後に、前記評価値更新部による評価値更新を実行する処理を繰り返し実行する、ことを特徴とする。
また、上記情報処理装置において、前記複数のノードそれぞれに対して、当該ノードと前記確定された経路で接続されるノードを示すルート値を付与し、前記評価値更新部は、前記評価値を、前記コストを示す値に前記ルート値が示す前記ノードに付与されている前記コストを示す値を加えた値に更新する、こととしてもよい。
また、上記情報処理装置において、前記複数のノードそれぞれにおいて、当該ノードに付与されているルート値を、当該ルート値が示すノードに付与されているルート値に更新するルート値更新部、をさらに含む、こととしてもよい。
また、上記情報処理装置において、前記複数のノードそれぞれに付与されているルート値が前記基準ノードを示すまで、前記評価値更新部による評価値更新を実行する処理を繰り返し実行する、こととしてもよい。
また、上記情報処理装置において、前記判断部は、同じ結合元のノード、または同じ結合先のノード、を有する複数のノード間が経路として確定される条件を満たす場合に、前記更新部により更新される値が最小となるノード間を経路として確定する、こととしてもよい。
また、上記情報処理装置において、前記基準ノードに付与される前記評価値の初期値は、他のノードに付与される前記評価値の初期値より小さい値とする、こととしてもよい。
また、上記情報処理装置において、前記判断部は、前記ノード間における結合元のノードに付与される評価値が、結合先のノードに付与される評価値より大きい場合に、当該ノード間を経路として確定する、こととしてもよい。
また、上記情報処理装置において、前記判断部は、前記ノード間における結合先のノードに付与される評価値が、結合元のノードに付与される評価値より大きい場合に、当該ノード間を経路として確定する、こととしてもよい。
また、上記情報処理装置において、前記処理を繰り返し実行する間に、前記結合関係のコストを示す情報が変化する、こととしてもよい。
また、上記情報処理装置において、前記処理を繰り返し実行する間に、前記基準ノードが変更される、こととしてもよい。
また、上記情報処理装置において、前記経路情報は、複数のノード間に定められた有向の結合関係を示す情報と、前記有向の結合関係のコストを示す情報と、で構成される、こととしてもよい。
また、上記情報処理装置において、前記経路情報は、複数のノード間に定められた無向の結合関係を示す情報と、前記無向の結合関係のコストを示す情報と、で構成される、こととしてもよい。
本発明に係る制御方法は、複数のノード間に定められた結合関係を示す情報と、前記結合関係のコストを示す情報と、で構成される経路情報を取得する経路情報取得ステップと、前記経路情報に含まれる複数のノードそれぞれに対して、前記複数のノードのうち基準となる基準ノードを区別する値を初期値とする、当該ノードと基準ノードとの間のコストを示す評価値を付与する評価値付与ステップと、前記結合関係を有する複数のノード間それぞれにおいて、当該結合関係と、各ノードに付与された前記評価値の大小関係と、に基づいて当該ノード間を経路として確定するか否かを判断する判断ステップと、前記複数のノードそれぞれにおいて、当該ノードと前記確定された経路で接続されるノードとの間のコストを示す値に基づいて、前記評価値を更新する評価値更新ステップと、を含む制御方法であって、前記更新された評価値に基づく前記判断ステップによる判断の後に、前記評価値更新ステップによる評価値更新を実行する処理を繰り返し実行する、ことを特徴とする。
本発明に係るプログラムは、複数のノード間に定められた結合関係を示す情報と、前記結合関係のコストを示す情報と、で構成される経路情報を取得する経路情報取得部、前記経路情報に含まれる複数のノードそれぞれに対して、前記複数のノードのうち基準となる基準ノードを区別する値を初期値とする、当該ノードと基準ノードとの間のコストを示す評価値を付与する評価値付与部、前記結合関係を有する複数のノード間それぞれにおいて、当該結合関係と、各ノードに付与された前記評価値の大小関係と、に基づいて当該ノード間を経路として確定するか否かを判断する判断部、前記複数のノードそれぞれにおいて、当該ノードと前記確定された経路で接続されるノードとの間のコストを示す値に基づいて、前記評価値を更新する評価値更新部、としてコンピュータを機能させるためのプログラムであって、前記更新された評価値に基づく前記判断部による判断の後に、前記評価値更新部による評価値更新を実行する処理を繰り返し実行する、ことを特徴とする。このプログラムは、コンピュータ読み取り可能な情報記憶媒体に格納されてもよい。
以下、本発明の実施の形態について、図面を参照しながら詳細に説明する。図面については、同一又は同等の要素には同一の符号を付し、重複する説明は省略する。
図1は、本実施形態に係る情報処理装置10の構成の一例を示す図である。本実施形態に係る情報処理装置10は、例えば、家庭用ゲーム機やパーソナルコンピュータ等であって、図1に示すように、制御部11、記憶部12、通信部13、操作部14、及び表示部15を含んで構成されている。
制御部11は、例えばCPU5及びGPU6等を含んで構成され、記憶部12に記憶されているプログラムに従って各種の情報処理を実行する。本実施形態において、制御部11が実行する処理の具体例については、後述する。
記憶部12は、RAMやROM等のメモリ素子、ハードディスクなどを含んで構成され、制御部11が実行するプログラムや、各種のデータを記憶する。また、記憶部12は、制御部11のワークメモリとしても動作する。
通信部13は、通信インタフェースであって、通信ネットワークを介して外部から到来するデータを受信し、制御部11に対して出力する。また、制御部11からの指示に従って、通信ネットワークを介して接続される他の情報処理装置に対して各種のデータを送信する。
操作部14は、キーボードやマウス、家庭用ゲーム機のコントローラ等であって、ユーザの操作入力を受け付けて、その内容を示す信号を制御部11に出力する。
表示部15は、液晶ディスプレイ、有機ELディスプレイ等の表示デバイスであって、制御部11の指示に従って、各種の画像を表示する。
なお、情報処理装置10は、DVD−ROMやBlue−ray(登録商標)ディスクなどの光ディスクを読み取る光ディスクドライブ、USB(Universal Serial Bus)ポートなどを含んでいてもよい。
本実施形態に係る情報処理装置10は、複数のノードと、複数のノード間の有向の結合関係を示す情報とによって構成される経路グラフにおける、基準ノードから、または基準ノードまでの最適経路探索処理を実行する。この最適経路探索処理は、主に制御部11のGPU6が実行することとするが、CPU、その他の装置が実行することとしてもよい。GPU6は、CPU5より同時に実行可能な処理単位(スレッド)の数が多いため、並列処理に適している。一方で、同時に実行されるスレッドは、互いに同じ内容の処理であることが要請される。本実施形態では、GPU6を用いて経路探索処理を効率的に実行する構成としている。
以下、図2に例示する経路グラフにおいて、基準ノードに基づく最適経路が探索される場合を例として説明する。図2に例示するように、経路グラフは、複数のノードと、複数のノード間に設定される結合関係を示す情報と、を含んで構成される。本実施形態においては、経路グラフの構成を表現する情報として、経路グラフにおける2ノード間の有向の結合関係を示す情報であるエッジ情報がエッジ情報記憶部に記憶される。まず、経路グラフに含まれる複数のノードにはそれぞれを識別するためのノード識別情報(ノードID)が付与される。図2に例示する経路グラフにおいては、ノードA〜ノードFの6個のノードが含まれる。エッジ情報は、有向の結合関係を有する2つのノードで構成されるノードペアの結合関係と、その結合関係の重みであるコストと、を示す情報である。ノードペアの結合関係は、一方のノードから他方のノードへ向かう経路を示すものであり、図2に例示する経路グラフにおいては矢印で表現されている。なお、図2に示す経路グラフにおいては、ノードペアの結合関係は一方向のみ存在しているが、本発明においてはノードペアの結合関係を両方向にすることも可能である。つまり、A→Bの経路が存在している場合に、更にB→Aの経路を追加することが可能である。この場合、経路グラフは、それぞれにコストが与えられた2方向の結合関係を表現してもよいし、ノード間のコストのみが与えられた無向の結合関係を表現することも可能となる。ノードペアの結合関係のコストは、一方のノードから他方のノードへ向かう経路の通りやすさを示すものであり、コストが大きいほど当該経路は通りにくく、コストが小さいほど当該経路は通りやすい。なお、このような経路グラフの具体的な適用例としては、例えば、複数のノードを地点、エッジ情報は2つのノード間を結ぶ道、結合関係のコストは2地点間の距離に対応させることができる。
図3は、図2に例示する経路グラフの構成を表現するエッジ情報を示す図である。図3に示すように、エッジ情報は、経路グラフに含まれる複数のエッジを識別するエッジIDと、エッジに含まれる2つのノードの有向の結合関係を示す情報と、当該結合関係のコストを示す情報と、が対応付けられている。なお、ノードペアの結合関係が両方向に存在する場合は各方向に対応するエッジ情報が含まれることとする。つまり、エッジ情報には、経路グラフに存在する2つのノード間の経路がすべて含まれることとする。このようなエッジ情報を用いて、図2に例示する経路グラフに含まれる複数のノードのうちいずれか1つのノードを基準とする最適経路を探索する。
図4は、本実施形態に係る情報処理装置10により実現される主な機能の一例を示す機能ブロック図である。図4に示すように、本実施形態において情報処理装置10の制御部11は、機能的には、例えば、経路情報取得部20、基準ノード設定部21、コスト評価値付与部22、スレッド管理部23、経路確定判断部24(24−1〜24−n)、前処理部25、ルート値更新部27及びコスト評価値更新部28を含む更新処理部26(26−1〜26−m)を含んで構成されている。これらの機能は、記憶部12に記憶されたプログラムを制御部11が実行することにより実現されている。このプログラムは、光ディスク、磁気ディスク、磁気テープ、光磁気ディスク、フラッシュメモリ等のコンピュータ可読な情報記憶媒体を介して、あるいは、インターネットなどの通信手段を介して情報処理装置10に供給される。
経路情報取得部20は、最適経路探索の対象となる経路情報を取得する。最適経路探索の対象は、複数のノードと、複数のノード間に設定される有向の結合関係を示す経路グラフとする。経路情報取得部20は、経路情報として、経路グラフの構成を表現するエッジ情報を経取得してエッジ情報記憶部に記憶する。
基準ノード設定部21は、経路情報取得部20が取得した経路情報に含まれる複数のノードの中から経路探索の基準となる基準ノードを設定する。本実施形態では、基準ノードを経路の終点として設定されるノードとするが、経路の起点として設定されるノードであってもよい。
コスト評価値付与部22は、経路情報に含まれる複数のノードそれぞれに、当該ノードと基準ノードとの間のコストを評価する値(コスト評価値)を付与する。コスト評価値の初期値は、基準ノード設定部21が設定した基準ノードと、基準ノード以外のノードと、を区別することができるデータ値とし、例えば、基準ノードの初期値を0、それ以外のノードの初期値を正の値Nとする。ここで、Nは十分に大きい値とし、経路情報に含まれるすべてのエッジのコストの和を超えていればよい。
なお、基準ノード以外のノードの初期値Nはすべて同じ値としてもよいし、それぞれ異なる値としてもよい。それぞれ異なる値を設定する場合に、例えば、各ノードの位置関係が分かっている場合には基準ノードと各ノードとの距離に応じた値を設定することとしてもよい。具体的には、基準ノードと位置関係が近いノードには小さい値を設定し、基準ノードと位置関係が遠いノードには大きい値を設定してもよい。これにより、基準ノードと位置関係が近いノードから経路を確定しやすくなり最適経路探索処理をより高速化することが可能となる。
スレッド管理部23は、同時に実行可能な複数のスレッドで処理させる処理内容と、各スレッドに割り当てる処理対象とを管理する。本実施形態では、スレッド管理部23は、経路確定判断処理が実行される前に、エッジ情報記憶部に記憶されている複数のエッジ情報それぞれを経路確定判断処理の処理対象として各スレッドに割り当てる。また、スレッド管理部23は、割り当てた全てのスレッドにおいて経路確定判断処理が終了するのを待つ同期処理を行う。これにより、複数のエッジ情報それぞれの経路確定判断処理を並列に処理することが可能となる。また、スレッド管理部23は、更新処理が実行される前に、経路情報取得部20が取得した経路情報に含まれる複数のノードそれぞれを更新処理の処理対象として各スレッドに割り当てる。また、スレッド管理部23は、割り当てた全てのスレッドにおいて更新処理のための各処理が終了するのを待つ同期処理を行う。これにより、複数のノードそれぞれの更新処理を並列に処理することが可能となる。
経路確定判断部24は、コスト評価値付与部22が各ノードに設定したコスト評価値と、エッジ情報記憶部に記憶されているエッジ情報とに基づいて、エッジ(結合関係)毎に経路確定の判断を行う。本実施形態では、スレッド管理部23が各スレッドに割り当てたエッジ情報それぞれにおいて経路確定判断部24による経路確定の判断処理が並列に実行される。各スレッドにおいて経路確定判断部24は、エッジ情報に含まれる複数の結合関係それぞれについて、経路として確定するか否かを判断する。ここで、経路として確定するか否かは、結合関係を有する2つのノードの結合関係の向きと、当該2つのノードそれぞれに設定されたコスト評価値と、に応じて判断される。具体的には、結合関係を有する2つのノードのうち結合元のノードを結合元ノード、結合先のノードを結合先ノードとする(例えば、結合関係A←Bの場合は、結合元ノードはノードB、結合先ノードはノードAとなる)。そして、基準ノードに付与されるコスト評価値の初期値を0、それ以外のノードに付与されるコスト評価値の初期値を正の値Nとすると、経路確定判断部24は、(結合先ノードに設定されているコスト評価値)<(結合元ノードに設定されているコスト評価値)の関係が成立する場合に、当該エッジを経路として確定する。このように、2ノード間の結合関係と、ノードに付与されるコスト評価値の大小関係と、に基づいて経路を確定することで循環しない一方向の経路を生成することができる。
経路確定判断部24による判断結果は、ポインタ情報記憶部に記憶される。ポインタ情報記憶部は、経路情報に含まれるノード毎に、ポインタ値、及びコスト評価値を関連付けたポインタ情報を記憶する。ポインタ値は、各ノードを結合元ノードとする経路が確定したか否かを示す値であり、エッジID及び確定経路コストを含んでいる。経路確定判断部24が経路として確定した結合関係の結合元ノードの確定経路コストには、当該結合関係のコストと結合先ノードに設定されたコスト評価値との和が対応付けられ、エッジIDに当該結合関係を示すエッジIDが対応付けられる。一方で、経路確定判断部24が経路として確定しなかった結合関係の結合元ノードにはポインタ値は何も対応付けられない。このように、各ノードのポインタ値に値が対応付けられているか否かにより確定した経路を判断することができる。
上述したように、経路確定判断部24による経路確定判断処理は、(結合先ノードに設定されているコスト評価値)<(結合元ノードに設定されているコスト評価値)の関係が成立するかを判断するものであるので、一方向の結合関係を有する複数のエッジそれぞれにおいて同様のアルゴリズムで実行できることとなり、経路確定判断部24は、各エッジにおける経路確定判断処理を並列に実行することができる。
前処理部25は、各ノードに付与されるコスト評価値及びルート値を更新するための前処理を行う。前処理部25は、ポインタ情報に含まれる各ノードに、ルートID、及びコスト評価値の更新初期値を設定する。ルートIDとは、自ノードから、確定された経路を経由して接続される先の終端のノードを示すものである。コスト評価値の更新初期値は、コスト評価値更新処理のための初期設定値であり、コスト評価値付与部22が各ノードに付与するコスト評価値の初期値とは異なるものとする。コスト評価値の更新初期値は、各ノードに接続される確定した経路のコストを示すものである。具体的には、コスト評価値の更新初期値は、基準ノードには0、ポインタ値が設定されていないノードにはN、ポインタ値が設定されているノードには自ノードに対応付けられているエッジIDのコスト、が設定される。このように、確定した経路の結合元ノードには確定した経路のコストが設定され、確定していない経路の結合元ノードにはNが設定されることで、各ノードから接続される確定経路のコストが示される。また、前処理部25は、ルートIDの更新初期値として、ポインタ値が設定されているノード(確定された経路の結合元ノード)のルートIDには、結合先のノードを示す値(ノードID)を設定し、その他のノードのルートIDには、自身のノードを示す値を設定する。これにより、各ノードから確定経路により接続される先のノードが示される。
更新処理部26は、ルート値更新部27及びコスト評価値更新部28を含み、前処理部25が設定したルートID及びコスト評価値の更新初期値に基づいて、各ノードのルートID及び各ノードのコスト評価値を更新する。本実施形態では、スレッド管理部23が各スレッドに割り当てたノードそれぞれにおいてルート値更新部27によるルート値更新処理、及びコスト評価値更新部28によるコスト評価値更新処理が並列に実行される。具体的には、ルート値更新部27は、ルートIDの初期更新値が示すノードに対応付けられているルートIDのノードIDを取得し、ルートIDワークに一時保存する。また、コスト評価値更新部28は、評価値X(ルートIDの初期更新値が示すノードに対応付けられているコスト評価値)+評価値Y(自ノードに対応付けられているコスト評価値)=更新コスト評価値Z(自ノードの更新コスト評価値)の計算式によって更新コスト評価値を計算し、コスト評価値ワークに一時保存する。そしてスレッド管理部23が割り当てた全スレッドのルートIDワークに保存が終了し、かつスレッド管理部23が割り当てた全スレッドのコスト評価値ワークに保存が終了した後、ルート値更新部27は、ルートIDを、ルートIDワークに保存されているノードIDに更新する。また、コスト評価値更新部28は、コスト評価値を、コスト評価値ワークに保存されている更新コスト評価値に更新する。
以上のように、コスト評価値更新部28によるコスト評価値の更新処理は、(ルートIDに対応付けられているコスト評価値)+(自ノードに対応付けられているコスト評価値)=(自ノードの更新コスト評価値)として計算するものであり、また、ルート値更新部27によるルート値更新処理は、ルートIDを、当該ルートIDが示すノードに対応付けられているルートIDのノードIDに更新するものである。このように、ルートIDとコスト評価値とを付与された各ノードにおいて同様のアルゴリズムで上記処理を実行できることとなる。したがって、更新処理部26コスト評価値更新部28は、各ノードにおける更新処理(ルート値更新処理及びコスト評価値更新処理)を並列に実行することができる。
そして、更新処理部26は、更新したコスト評価値及び更新したルート値に基づいて、更新処理を繰り返すことで、確定経路の結合元ノードのルートIDは確定経路の終端のノードを、その他のノードのルートIDは自ノードを示すようにする。このとき、ノードの数がRであれば最大log2R回の繰り返し処理により、確定経路の結合元ノードのルートIDが確定経路の終端のノードを、その他のノードのルートIDが自ノードを示すように更新することが可能となる。ここで、更新処理部26による処理の繰り返しの具体例を示す。図5は、経路確定判断部24により経路が確定したノードの一例を示す図である。図5に示すように、ノードZを基準ノード(終点ノード)として、ノードZ(コスト評価値0)、ノードX(コスト評価値0.1)、ノードY(コスト評価値0.2)、ノードW(コスト評価値0.1)、ノードV(コスト評価値0.8)、ノードU(コスト評価値0.5)、ノードT(コスト評価値0.3)、ノードS(コスト評価値0.1)の8個のノードが順に接続するような経路が確定したとする。図5に示す確定経路に基づいて、各ノードについて更新処理部26による処理を繰り返し実行した結果を図6に示す。図6に示すように3回の処理で確定経路の結合元ノードに対応付けられるルートIDを確定経路の終端のノード(ここでは、基準ノード)とすることができる。このように、上述したコスト評価値更新処理及びルート値更新処理を行うことで各ノードから1つずつ基準ノードまで辿ることで経路探索するより処理が高速になる。
また、経路確定処理及び更新処理の一連の処理は、フレーム(例えば、1/60秒)毎に繰り返し実行されることとし、更新処理が終了する度に確定した経路はリセットされる。
ここで、本実施形態に係る情報処理装置10が実行する最適経路探索処理の流れの一例を図7に示すフロー図を参照して説明する。ここでは、図2に例示する経路グラフに含まれる複数のノードのうちいずれか1つのノード(基準ノード)を基準とする最適経路探索を実行することとする。
まず、経路情報取得部20は、最適経路探索を実行する対象となる経路グラフの情報を取得する(S1)。ここで、経路情報取得部20は、経路情報として、経路グラフの構成を表現するエッジ情報を取得し、エッジ情報記憶部に記憶する。例えば、経路情報取得部20は、図2に例示する経路グラフの情報として、図3に示すエッジ情報をエッジ情報記憶部に記憶する。
そして、基準ノード設定部21は、経路情報取得部20が取得した経路情報に含まれる複数のノードの中から、基準となる基準ノードを設定する(S2)。ここでは、基準ノード設定部21は、経路の終点となるノードを基準ノードとして設定することとし、例えばノードDを基準ノードとして設定することとする。
次に、コスト評価値付与部22が、経路情報に含まれる複数のノードそれぞれに、当該ノードと基準ノードとの間のコストを評価するためのコスト評価値の初期値を付与する(S3)。ここでは、コスト評価値付与部22は、基準ノードであるノードDに、コスト評価値の初期値として0を設定し、基準ノード以外のノードであるノードA、ノードB、ノードC、ノードE、及びノードFに、コスト評価値の初期値としてNを設定する。コスト評価値付与部22が付与した各ノードのコスト評価値の初期値は、ポインタ情報としてポインタ情報記憶部に記憶される。図8は、各ノードにコスト評価値の初期値が設定されたポインタ情報を示す。
そして、変数fにf=1の初期値が設定され、(S4)経路確定判断処理が実行される(S5)。ここで変数fは、フレームを示す変数であり、1以上の整数値をとるカウンタ変数である。
経路確定判断処理については図9のフロー図を用いて説明する。図9に示すように、まず、スレッド管理部23が、エッジ情報記憶部に記憶されている複数のエッジ情報それぞれを経路確定判断処理の処理対象として各スレッドに割り当てる(S101)。具体的には、スレッド管理部23は、処理対象のエッジ情報をn個のスレッドTt(tは1〜nの整数とする)に割り当てることとする。ここでは、エッジ情報記憶部にE0からE6の7個のエッジ情報が記憶されているので、それぞれT1からT7のスレッドに割り当てられることとする。そして、各スレッドにおいて経路確定判断部24による経路確定判断処理が並列に実行される。
各スレッドにおいて経路確定判断部24は、コスト評価値付与部22が各ノードに設定したコスト評価値の初期値と、エッジ情報とに基づいて、経路確定の判断を行う(S102)。経路確定判断部24は、(結合先ノードに設定されているコスト評価値)<(結合元ノードに設定されているコスト評価値)の関係が成立するか否かを判断する。ここでは、エッジID=1において、結合先ノード(ノードD)に設定されているコスト評価値が0、結合元ノード(ノードB)に設定されているコスト評価値がNとなるので、上記関係が成立する。また、同様にして、エッジID=6においても上記関係が成立する。したがって、経路確定判断部24は、図3に示すエッジ情報のうち、エッジID=1及びエッジID=6を経路として確定する。そして、経路確定判断部24は、確定した経路の結合元ノードにポインタ値を対応付ける。図10は、経路確定後のポインタ情報を示す図である。図10に示すように、経路確定後のポインタ情報は、経路として確定されたエッジID=1の結合元ノードであるノードBと、経路として確定されたエッジID=6の結合元ノードであるノードFと、にポインタ値が対応付けられる。ポインタ値は、確定経路コストとエッジIDとを含み、エッジIDには経路として確定したエッジのIDが対応付けられ、確定経路コストには、確定したエッジのコストと結合先ノードのコスト評価値との和が対応付けられる。例えば、ノードBにおいては、エッジIDには確定した経路であるエッジID=1が対応付けられ、コスト値には、エッジID=1の重み1.0と結合先ノードであるノードDのコスト評価値0との和である1.0が対応付けられる。ここでは、基準ノードに付与されるコスト評価値の初期値を他のノードより小さい値としているため、経路確定判断部24が、結合先ノードのコスト評価値が小さい値となる経路を確定することで、基準ノードを終点とする経路を確定することとなる。
そして、スレッド管理部23が並列処理を実行しているスレッドの同期処理を行い(S103)、リターンする。つまり、スレッド管理部23が割り当てた全てのスレッド(T1〜Tn)において経路確定判断部24による経路確定判断が終了した後にリターンする。
経路確定判断処理により経路が確定すると、前処理部25が、各ノードに付与されるノードID及びコスト評価値を更新するための前処理を行う(S6)。前処理部25は、ポインタ情報に含まれる各ノードに、ルートID及びコスト評価値の更新初期値を設定する。図11は、前処理実行後のポインタ情報を示す図である。図11に示すように、前処理部25は、経路として確定されたエッジID=1の結合元ノードであるノードBに、コスト評価値の更新初期値として、ノードBに対応付けられているエッジID=E1のコスト(1.0)を、ルートIDの更新初期値としてエッジID=E1の結合先ノードであるノードDを、設定する。同様にして、前処理部25は、経路として確定されたエッジID=E6の結合元ノードであるノードFには、コスト評価値の更新初期値として、ノードFに対応付けられているエッジID=6のコスト(1.0)を、ルートIDの更新初期値としてエッジID=E6の結合先ノードであるノードDを、設定する。また、前処理部25は、基準ノードであるノードDには、コスト評価値の更新初期値として0を、ルートIDの更新初期値として自ノードを設定する。そして、それ以外のノード(ノードA、ノードC、ノードE)には、コスト評価値の更新初期値としてNを、ルートIDの更新初期値として自ノードを設定する。
続いて、前処理部25が設定したルートID及びコスト評価値の更新初期値に基づいて、各ノードのルートID及び各ノードのコスト評価値を更新する更新処理が行われる(S7)。
更新処理については、図12のフロー図を用いて説明する。図12に示すように、まず、スレッド管理部23が、ポインタ情報に含まれる複数のノードそれぞれをコスト評価値更新処理及びルート値更新処理の処理対象として各スレッドに割り当てる(S201)。スレッド管理部23は、処理対象のノードをm個のスレッドTt(tは1〜mの整数とする)に割り当てる。ここでは、ポインタ情報にはAからFの6個のノードが含まれているので、それぞれT1からT6のスレッドに割り当てられる。
そして、変数iにi=1の初期値が設定され(S202)、各スレッドにおける更新処理部26による更新値計算処理が並列に実行される(S203)。ここで変数iは、1以上の整数値をとるカウンタ変数である。
コスト評価値更新部28処理S203にて実行される更新処理部26による更新値計算処理では、ルート値更新部27により更新するルート値が取得され、コスト評価値更新部28により更新するコスト評価値が計算される。
具体的には、ルート値更新部27は、ルートIDが示すノードに対応付けられているルートIDのノードIDを取得し、ルートIDワークに一時保存する。また、コスト評価値更新部28は、評価値X(ルートIDが示すノードに対応付けられているコスト評価値)+評価値Y(自ノードに対応付けられているコスト評価値)=更新コスト評価値Z(自ノードの更新コスト評価値)の計算式によって各ノードの更新コスト評価値を計算する。図13は、更新値計算処理後のポインタ情報を示す図である。例えば、図13におけるノードBを例として説明すると、ノードBに対応付けられているルートIDはノードDであり、ノードDに対応付けられているルートIDはノードDである。この場合、ノードBに対応付けられる新しいルートIDは、ノードDのルートIDであるノードDとなり、ルート値更新部27はルートIDワークにノードDを一時保存する。また、図13に示すように、ノードAにおいては、評価値X=N、評価値Y=Nとなるので、更新コスト評価値Z=Nと計算される。また、ノードBにおいては、評価値X=0、評価値Y=1.0となるので、更新コスト評価値Z=1.0と計算される。その他のノードについても上記計算式に基づいて更新コスト評価値Zが計算される。そして、コスト評価値更新部28が計算した更新コスト評価値Zは、コスト評価値ワークに一時保存される。
そして、スレッド管理部23が並列処理を実行しているスレッドの同期処理を行う(S204)。スレッド管理部23は全てのスレッド(ここでは、スレッドT1〜スレッドT6)における更新値計算処理が終了するのを待ち、全てのスレッドにおいて更新値計算処理が終了した後に、更新処理部26に処理S205における処理を行わせる。
更新処理部26は、処理S203にてルートIDワークに保存されたルート値及びコスト評価値ワークに保存されたコスト評価値を用いて、ルートID及びコスト評価値を更新する(S205)。具体的には、ルート値更新部27は、各ノードに対応付けられているルートIDを、ルートIDワークの値で更新し、コスト評価値更新部28は、コスト評価値を、コスト評価値ワークの値で更新する。ここで、各スレッドにおける更新処理部26による更新処理は並列に実行される。
そして、スレッド管理部23が並列処理を実行しているスレッドの同期処理を行う(S206)。スレッド管理部23は全てのスレッドにおける更新処理が終了するのを待ち、全てのスレッドにおいて更新処理が終了した後に処理S207における処理が行われる。
図14は、更新処理後のポインタ情報を示す図である。図14に示すように、全てのノードにおいて、ルートIDがルートIDワークの値に更新され、コスト評価値がコスト評価値ワークの値に更新される。
コスト評価値更新部28処理S206におけるスレッドの同期処理が終了すると、j≧log2(R)が成立するか否かを判断する(S207)。ここで、Rは経路情報取得部20が取得した経路情報に含まれるノードの数であり、図2示す経路情報においてはR=6となる。
処理S207の判断の結果、j≧log2(R)が成立しないと判断された場合は(S207:N)、変数jに1が加算され(S208)、処理S203以降の処理を繰り返す。そして、処理S207の判断の結果、j≧log2(R)が成立すると判断された場合にリターンする。
そして、処理S7における更新処理が終了すると、経路探索の終了判定が実行される(S8)。ここで、終了判定は、処理S7において更新された各ノードのルートIDが基準ノードまたはルートノードを示しているか否かにより判定される。ここでは、基準ノードを終点とする経路探索を実行しているので、各ノードのルートIDが基準ノードを示すまで、経路確定処理、前処理及び更新処理を繰り返し実行する。ここで、ルートノードとは、経路情報に含まれるノードのうち終端となるノードであり、当該ノードを結合元ノードとするエッジ情報が存在しないノードとする。ルートノードは結合元ノードとならないので、基準ノードとの間に経路は存在しない。なお、各ノードのルートIDが基準ノードまたはルートノードを示した後であっても、経路確定処理及びコスト評価値更新処理を繰り返し実行することとしてもよい。経路確定処理及びコスト評価値更新処理を繰り返し実行することで、より最適な経路を探索することができる。
処理S8の終了判定の結果、終了判定なしと判定された場合は(S8:N)、変数fに1が加算され(S9)、処理S5にて確定した経路はリセットされる(S10)。つまり、ポインタ情報に設定されていたポインタ値はすべて消去される。
図14に示す更新処理後のポインタ情報では、ノードC、ノードD、及びノードEにおいて更新されたルートIDが基準ノードまたはルートノードを示していないので、処理S8では終了判定なしと判定されフレーム2における処理S5以降の処理が実行される。
図15に、フレーム2における経路確定判断処理が開始される前のポインタ情報を示す。図15に示すように、フレーム2においては、フレーム1において確定された経路はリセットされるので、各ノードのポインタ値は消去される。また、各ノードのコスト評価値は、前フレーム(フレーム1)で更新されたコスト評価値が設定される。つまり、フレーム2では、前フレームで更新されたコスト評価値に基づいて、経路確定判断処理が実行される。
以下、フレーム2における処理S5以降の処理について説明する。まず、フレーム2における処理S5では、前フレームで更新されたコスト評価値に基づいて、経路確定判断処理が実行される(S5)。経路確定判断処理については図9のフロー図を用いて説明する。図9に示すように、まず、スレッド管理部23は、エッジ情報記憶部に記憶されている複数のエッジ情報それぞれを経路確定判断処理の処理対象として各スレッドに割り当てる(S101)。スレッド管理部23は、処理対象のエッジ情報をn個のスレッドTt(tは1〜nの整数とする)に割り当てることとする。そして、各スレッドにおいて経路確定判断部24による経路確定判断処理が並列に実行される。
各スレッドにおいて経路確定判断部24は、前フレームで更新されたコスト評価値と、エッジ情報と、に基づいて経路確定の判断を行う(S102)。経路確定判断部24は、フレーム1と同様に、(結合先ノードに設定されているコスト評価値)<(結合元ノードに設定されているコスト評価値)の関係が成立するか否かを判断する。ここでは、エッジID=1、エッジID=2、エッジID=5、及びエッジID=6が経路として確定される。そして、経路確定判断部24は、確定した経路の結合元ノードにポインタ値を対応付ける。図16は、フレーム2における経路確定後のポインタ情報を示す図である。図16に示すように、フレーム2における経路確定後のポインタ情報は、経路として確定されたエッジID=1の結合元ノードであるノードBと、エッジID=2の結合元ノードであるノードCと、エッジID=5の結合元ノードであるノードEと、エッジID=6の結合元ノードであるノードFと、にポインタ値が対応付けられる。
そして、スレッド管理部23が並列処理を実行しているスレッドの同期処理を行い(S103)、リターンする。つまり、スレッド管理部23が割り当てた全てのスレッド(T1〜Tn)において経路確定判断部24による経路確定判断が終了した後にリターンする。
経路確定判断処理により経路が確定すると、前処理部25が、フレーム2における各ノードに付与されるノードID及びコスト評価値を更新するための前処理を行う(S6)。前処理部25は、ポインタ情報に含まれる各ノードに、ルートID及びコスト評価値の更新初期値を設定する。図17は、フレーム2における前処理実行後のポインタ情報を示す図である。図17に示すように、基準ノード(ノードD)には、コスト評価値の更新初期値として0、ルートIDの更新初期値として自ノード(ノードD)が設定される。また、ポインタ値に値が設定されていないノード(ノードA)には、コスト評価値の更新初期値としてN、ルートIDの更新初期値として自ノード(ノードA)が設定される。また、ポインタ値に値が設定されているノード(ノードB、ノードC、ノードE、ノードF)には、コスト評価値の更新初期値としてエッジIDが示すエッジのコスト、ルートIDの更新初期値としてエッジIDが示すエッジの結合先ノードが設定される。
続いて、前処理部25が設定したルートID及びコスト評価値の更新初期値に基づいて、各ノードのルートID及び各ノードのコスト評価値を更新する更新処理が行われる(S7)。
更新処理については、図12のフロー図を用いて説明する。図12に示すように、まず、スレッド管理部23が、ポインタ情報に含まれる複数のノードそれぞれをコスト評価値更新処理及びルート値更新処理の処理対象として各スレッドに割り当てる(S201)。スレッド管理部23は、処理対象のノードをm個のスレッドTt(tは1〜mの整数とする)に割り当てる。ここでは、ポインタ情報にはAからFの6個のノードが含まれているので、それぞれT1からT6のスレッドに割り当てられる。
そして、変数iにi=1の初期値が設定され(S202)、各スレッドにおける更新処理部26による更新値計算処理が並列に実行される(S203)。
処理S203にて実行される更新処理部26による更新処理では、ルート値更新部27により更新するルート値が取得され、コスト評価値更新部28により更新するコスト評価値が計算される。具体的には、ルート値更新部27は、ルートIDが示すノードに対応付けられているルートIDのノードIDを取得し、ルートIDワークに一時保存する。また、コスト評価値更新部28コスト評価値更新部28は、評価値X(ルートIDが示すノードに対応付けられているコスト評価値)+評価値Y(自ノードに対応付けられているコスト評価値)=更新コスト評価値Z(自ノードの更新コスト評価値)の計算式によって各ノードのコスト評価値を計算する。
図18は、フレーム2における更新値計算処理後のポインタ情報を示す図である。例えば、図18におけるノードCを例として説明すると、ノードCに対応付けられているルートIDはノードBであり、ノードBに対応付けられているルートIDはノードDである。この場合、ノードCの新しいルートIDは、ノードBに対応付けられているルートIDであるノードDとなり、ルート値更新部27は、ルートIDワークにノードDを一時保存する。また、図18に示すように、ノードAにおいては、評価値X=N、評価値Y=Nとなるので、コスト評価値更新部28は更新コスト評価値Z=Nと計算する。また、ノードBにおいては、評価値X=0、評価値Y=1.0となるので、コスト評価値更新部28は更新コスト評価値Z=1.0と計算する。また、ノードCにおいては、評価値X=1.0、評価値Y=2.0となるので、コスト評価値更新部28は、更新コスト評価値Z=3.0と計算する。その他のノードについても上記計算式に基づいて更新コスト評価値Zが計算される。そして、コスト評価値更新部28が計算した更新コスト評価値Zは、コスト評価値ワークに一時保存される。
そして、スレッド管理部23が並列処理を実行しているスレッドの同期処理を行う(S204)。スレッド管理部23は全てのスレッド(ここでは、スレッドT1〜スレッドT6)における更新値計算処理が終了するのを待ち、全てのスレッドにおいて更新値計算処理が終了した後に、更新処理部26に処理S205における処理を行わせる。
更新処理部26は、処理S203にてルートIDワークに保存されたルート値及びコスト評価値ワークに保存されたコスト評価値を用いて、ルートID及びコスト評価値を更新する(S205)。具体的には、ルート値更新部27は、各ノードに対応付けられているルートIDを、ルートIDワークの値で更新し、コスト評価値更新部28は、コスト評価値を、コスト評価値ワークの値で更新する。ここで、各スレッドにおける更新処理部26による更新処理は並列に実行される。
図19は、フレーム2における更新処理後のポインタ情報を示す図である。図19に示すように、全てのノードにおいて、ルートIDがルートIDワークの値に更新され、コスト評価値がコスト評価値ワークの値に更新される。
処理S206におけるスレッドの同期処理が終了すると、j≧log2(R)が成立するか否かを判断する(S207)。ここで、Rは経路情報取得部20が取得した経路情報に含まれるノードの数であり、図2に示す経路情報においてはR=6となる。
処理S207の判断の結果、j≧log2(R)が成立しないと判断された場合は(S207:N)、変数jに1が加算され(S208)、処理S203以降の処理を繰り返す。そして、処理S207の判断の結果、j≧log2(R)が成立すると判断された場合にリターンする。
そして、処理S7における更新処理が終了すると、経路探索の終了判定が実行される(S8)。
図19に示すフレーム2における更新処理後のポインタ情報では、ノードAのルートIDがノードAを示し、ノードA以外のノードのルートIDが、基準ノードであるノードDを示している。ノードAはルートノードであるので、ルートIDは必ず自ノードを示す。したがって、経路情報に含まれる各ノードのルートIDが基準ノードまたはルートノードを示したことになり、経路探索の終了判定ありと判定される(8:Y)。これにより、各ノードから基準ノードまでの最適経路が探索されたこととなり、経路探索処理は終了する。
最終的に決定した経路は、図19に示すポインタ情報のポインタ値に設定された、エッジID=1、エッジID=2、エッジID=5、及びエッジID=6となる。そして、各ノードから基準ノードまでの経路コストは、各ノードに関連付けられているコスト評価値により示される。このようにして、基準ノードを選択することで、経路グラフに含まれる各ノードから基準ノードまでの最適経路を並列に探索することができる。
ここで、図2に例示する経路グラフでは、結合元ノードと結合先ノードとが1対1の関係の例を示したが、同一ノードからの結合先ノードが複数ある場合について説明する。図20に、複数の結合先ノードを有するノードの一例を示す。図208に示すように、ノードGが結合元ノードであり、ノードH及びノードIが結合先ノードである。ここで、ノードG、ノードH、及びノードIのコスト評価値をそれぞれZg、Zh、及びZiとし、G→Hの結合関係をエッジh(コスト1.0)、G→Iの結合関係をエッジi(コスト2.0)とする。このような結合関係が経路グラフに含まれている場合に、経路確定判断部24が、エッジh及びエッジiの両方を経路として確定しようとすることがある。この場合は、経路確定判断部24は、いずれか一方を経路として選択することとする。つまり、経路確定判断部24は、あるノードからの経路が複数存在する場合には、最適な1つの経路を選択することとし、ポインタ情報に含まれる各ノードに対応するポインタ値には1つの値しか設定されないこととする。具体的には、経路確定判断部24は、エッジhの経路を確定した場合のノードGの確定経路コストと、エッジiの経路を確定した場合のノードGの確定経路コストと、を比較し確定経路コストが小さくなる経路を選択する。エッジhの経路を確定した場合のノードGの確定経路コストWg(h)は、確定経路コストWg(h)=Zh+1.0となり、エッジiの経路を確定した場合のノードGの確定経路コストWg(i)は、確定経路コストWg(i)=Zi+2.0となる。経路確定判断部24は、確定経路コストZg(h)と確定経路コストZg(i)とで値が小さくなるものを経路として選択する。これにより、経路確定判断部24は、同一ノードから複数の経路が存在する場合に最適な経路を選択して確定することができる。
なお、本発明は、上述の実施形態に限定されるものではない。
例えば、経路確定処理、前処理及び更新処理がフレーム毎に繰り返し実行される間に、少なくとも1つのノード間の有向関係の重みが変化してもよい。この場合は、定期的に、エッジ情報記憶部に記憶されているエッジ情報を更新することとする。なお、ノード間の有向関係の重みの時間的変化が緩やかな場合は各ノードのコスト評価値に大きな変化は生じないので、フレームの切り替わりのタイミングでエッジ情報のコストが更新されたとしても、前フレームで更新した評価値を用いた経路探索処理の結果を用いて、コストが更新されたエッジ情報に基づくコスト評価値更新処理を実行することができる。
また、経路確定処理、前処理及び更新処理がフレーム毎に繰り返し実行される間に基準ノードが変更されてもよい。この場合、経路確定判断部24による経路確定判断処理が実行される前に、変更された基準ノードの情報を適用させる。つまり、経路確定判断部24による経路確定判断処理が実行される前の各ノードに付与されている評価値を変更させる。変更前の基準ノードには評価値として0が付与されているはずなのでこれを変更してNを付与し、変更後の基準ノードには評価値として0を付与することとする。それ以外のノードに付与される評価値は、前フレームで更新された評価値を用いることができる。経路確定判断部24は、(結合先ノードに設定されているコスト評価値)<(結合元ノードに設定されているコスト評価値)の関係が成立する場合に経路を確定するので、経路確定処理、前処理及び更新処理がフレーム毎に繰り返し実行されることで最終的に必ず評価値が小さいノードが経路の終点となる。このように、基準ノードが変更されたとしても、最終的に評価値が小さいノードをルートとすることができるので、途中で基準ノードが変更されたとしても最適経路を探索することが可能となる。
また、上述の実施形態では、基準ノードを経路の終点とする例について示したが、基準ノードを経路の起点とする最適経路を探索することとしてもよい。この場合、初期値設定部が初期値として基準ノードに0、その他のノードにNを設定すると、経路確定判断部24は、(結合先ノードに設定されているコスト評価値)>(結合元ノードに設定されているコスト評価値)の関係が成立する場合に、当該結合先ノード及び結合元ノードを含むエッジを経路として確定することとすればよい。そして、ポインタ情報に含まれるポインタ値は、各ノードを結合先ノードとする経路が確定したか否かを示す値とする。経路確定判断部24が経路として確定した結合関係の結合先ノードの確定経路コストに、当該結合関係の重みと結合元ノードに設定された評価値との和が対応付けられ、エッジIDに当該結合関係のエッジIDが対応付けられることとする。そして、ポインタ情報に含まれるルートIDには各ノードを結合先とする確定経路の結合元ノードが対応付けられることとする。上記以外の処理は前述した基準ノードを経路の起点とする場合の処理と同様にすることができる。
5 CPU、6 GPU、10 情報処理装置、11 制御部、12 記憶部、13 通信部、14 操作部、15 表示部、20 経路情報取得部、21 基準ノード設定部、22 コスト評価値付与部、23 スレッド管理部、24 経路確定判断部、25 前処理部、26 更新処理部、27 ルート値更新部、28 コスト評価値更新部。
Claims (14)
- 複数のノード間に定められた結合関係を示す情報と、前記結合関係のコストを示す情報と、で構成される経路情報を取得する経路情報取得部と、
前記経路情報に含まれる複数のノードそれぞれに対して、前記複数のノードのうち基準となる基準ノードを区別する値を初期値とする、当該ノードと基準ノードとの間のコストを示す評価値を付与する評価値付与部と、
前記結合関係を有する複数のノード間それぞれにおいて、当該結合関係と、各ノードに付与された前記評価値の大小関係と、に基づいて当該ノード間を経路として確定するか否かを判断する判断部と、
前記複数のノードそれぞれにおいて、当該ノードと前記確定された経路で接続されるノードとの間のコストを示す値に基づいて、前記評価値を更新する評価値更新部と、
を含み、
前記更新された評価値に基づく前記判断部による判断の後に、前記評価値更新部による評価値更新を実行する処理を繰り返し実行する、
ことを特徴とする情報処理装置。 - 前記複数のノードそれぞれに対して、当該ノードと前記確定された経路で接続されるノードを示すルート値を付与し、前記評価値更新部は、前記評価値を、前記コストを示す値に前記ルート値が示す前記ノードに付与されている前記コストを示す値を加えた値に更新する、
ことを特徴とする請求項1に記載の情報処理装置。 - 前記複数のノードそれぞれにおいて、当該ノードに付与されているルート値を、当該ルート値が示すノードに付与されているルート値に更新するルート値更新部、をさらに含む、
ことを特徴とする請求項2に記載の情報処理装置。 - 前記複数のノードそれぞれに付与されているルート値が前記基準ノードを示すまで、前記評価値更新部による評価値更新を実行する処理を繰り返し実行する、
ことを特徴とする請求項3に記載の情報処理装置。 - 前記判断部は、同じ結合元のノード、または同じ結合先のノード、を有する複数のノード間が経路として確定される条件を満たす場合に、前記更新部により更新される値が最小となるノード間を経路として確定する、
ことを特徴とする請求項1から4のいずれか一項に記載の情報処理装置。 - 前記基準ノードに付与される前記評価値の初期値は、他のノードに付与される前記評価値の初期値より小さい値とする、
ことを特徴とする請求項1から5のいずれか一項に記載の情報処理装置。 - 前記判断部は、前記ノード間における結合元のノードに付与される評価値が、結合先のノードに付与される評価値より大きい場合に、当該ノード間を経路として確定する、
ことを特徴とする請求項6に記載の情報処理装置。 - 前記判断部は、前記ノード間における結合先のノードに付与される評価値が、結合元のノードに付与される評価値より大きい場合に、当該ノード間を経路として確定する、
ことを特徴とする請求項6に記載の情報処理装置。 - 前記処理を繰り返し実行する間に、前記結合関係のコストを示す情報が変化する、
ことを特徴とする請求項1から8のいずれか一項に記載の情報処理装置。 - 前記処理を繰り返し実行する間に、前記基準ノードが変更される、
ことを特徴とする請求項1から9のいずれか一項に記載の情報処理装置。 - 前記経路情報は、複数のノード間に定められた有向の結合関係を示す情報と、前記有向の結合関係のコストを示す情報と、で構成される
ことを特徴とする請求項1から10のいずれか一項に記載の情報処理装置。 - 前記経路情報は、複数のノード間に定められた無向の結合関係を示す情報と、前記無向の結合関係のコストを示す情報と、で構成される
ことを特徴とする請求項1から10のいずれか一項に記載の情報処理装置。 - 複数のノード間に定められた結合関係を示す情報と、前記結合関係のコストを示す情報と、で構成される経路情報を取得する経路情報取得ステップと、
前記経路情報に含まれる複数のノードそれぞれに対して、前記複数のノードのうち基準となる基準ノードを区別する値を初期値とする、当該ノードと基準ノードとの間のコストを示す評価値を付与する評価値付与ステップと、
前記結合関係を有する複数のノード間それぞれにおいて、当該結合関係と、各ノードに付与された前記評価値の大小関係と、に基づいて当該ノード間を経路として確定するか否かを判断する判断ステップと、
前記複数のノードそれぞれにおいて、当該ノードと前記確定された経路で接続されるノードとの間のコストを示す値に基づいて、前記評価値を更新する評価値更新ステップと、
を含む制御方法であって、
前記更新された評価値に基づく前記判断ステップによる判断の後に、前記評価値更新ステップによる評価値更新を実行する処理を繰り返し実行する、
ことを特徴とする制御方法。 - 複数のノード間に定められた結合関係を示す情報と、前記結合関係のコストを示す情報と、で構成される経路情報を取得する経路情報取得部、
前記経路情報に含まれる複数のノードそれぞれに対して、前記複数のノードのうち基準となる基準ノードを区別する値を初期値とする、当該ノードと基準ノードとの間のコストを示す評価値を付与する評価値付与部、
前記結合関係を有する複数のノード間それぞれにおいて、当該結合関係と、各ノードに付与された前記評価値の大小関係と、に基づいて当該ノード間を経路として確定するか否かを判断する判断部、
前記複数のノードそれぞれにおいて、当該ノードと前記確定された経路で接続されるノードとの間のコストを示す値に基づいて、前記評価値を更新する評価値更新部、
としてコンピュータを機能させるためのプログラムであって、
前記更新された評価値に基づく前記判断部による判断の後に、前記評価値更新部による評価値更新を実行する処理を繰り返し実行する、
ことを特徴とするプログラム。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2014253141A JP2016116067A (ja) | 2014-12-15 | 2014-12-15 | 情報処理装置、制御方法、及びプログラム |
US14/947,219 US9887904B2 (en) | 2014-12-15 | 2015-11-20 | Information processing apparatus, control method, and program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2014253141A JP2016116067A (ja) | 2014-12-15 | 2014-12-15 | 情報処理装置、制御方法、及びプログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2016116067A true JP2016116067A (ja) | 2016-06-23 |
Family
ID=56112507
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2014253141A Pending JP2016116067A (ja) | 2014-12-15 | 2014-12-15 | 情報処理装置、制御方法、及びプログラム |
Country Status (2)
Country | Link |
---|---|
US (1) | US9887904B2 (ja) |
JP (1) | JP2016116067A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2019200058A (ja) * | 2018-05-14 | 2019-11-21 | 株式会社ナビタイムジャパン | 情報処理システム、情報処理プログラム、情報処理装置及び情報処理方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3823837B2 (ja) * | 2002-01-31 | 2006-09-20 | 日本電気株式会社 | 光通信ネットワーク及びそれに用いる光通信ネットワーク設計方法 |
WO2007016942A1 (en) * | 2005-08-08 | 2007-02-15 | Pirelli & C. S.P.A | Method for configuring an optical network |
-
2014
- 2014-12-15 JP JP2014253141A patent/JP2016116067A/ja active Pending
-
2015
- 2015-11-20 US US14/947,219 patent/US9887904B2/en active Active
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2019200058A (ja) * | 2018-05-14 | 2019-11-21 | 株式会社ナビタイムジャパン | 情報処理システム、情報処理プログラム、情報処理装置及び情報処理方法 |
JP7198473B2 (ja) | 2018-05-14 | 2023-01-04 | 株式会社ナビタイムジャパン | 情報処理システム、情報処理プログラム、情報処理装置及び情報処理方法 |
Also Published As
Publication number | Publication date |
---|---|
US9887904B2 (en) | 2018-02-06 |
US20160174127A1 (en) | 2016-06-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109432777B (zh) | 路径生成方法及装置、电子设备、存储介质 | |
JP7224700B1 (ja) | 複雑ネットワークノードの重要度評価方法及び装置 | |
CN107529656B (zh) | 一种社交网络社区的划分方法及服务器 | |
CN105652833B (zh) | 基于双向智能搜索的制造企业车间调度优化方法 | |
US20180046953A1 (en) | Line balancing apparatus, line balancing method, and computer-readable recording medium | |
US9262213B1 (en) | Dynamic suggestion of next task based on task navigation information | |
CN106202114B (zh) | 路径导航方法和装置 | |
CA2743466C (en) | Path calculation order deciding method, program and calculating apparatus | |
JP2015161557A5 (ja) | ||
CN108259195B (zh) | 异常事件的影响范围的确定方法及系统 | |
CN111106960B (zh) | 一种虚拟网络的映射方法、映射装置及可读存储介质 | |
WO2010058797A1 (ja) | 経路計算方法、プログラムおよび計算装置 | |
JP2016116067A (ja) | 情報処理装置、制御方法、及びプログラム | |
CN112527943B (zh) | 地图渲染方法、装置、设备和存储介质 | |
CN109802859A (zh) | 一种网络图中的节点推荐方法和服务器 | |
CN113730915A (zh) | 目标路径的确定方法、装置和存储介质及电子设备 | |
CN109697249A (zh) | 搜索目标对象以及发布对象的方法、系统以及存储介质 | |
JP6384125B2 (ja) | 情報処理装置及びプログラム | |
CN111158881B (zh) | 数据处理方法、装置、电子设备和计算机可读存储介质 | |
CN115203988B (zh) | 油藏数值模拟算例的运行方法、装置、设备及存储介质 | |
CN105095239A (zh) | 一种不确定图查询方法及装置 | |
CN113347083A (zh) | 网络路径确定及切换方法、装置、设备、介质及程序产品 | |
JP3189869U (ja) | オペレーションリサーチシステム | |
Kuniavsky et al. | Greediness and equilibrium in congestion games | |
KR102570529B1 (ko) | 가상 부정 엣지 기반 유방향 네트워크 임베딩 방법 및 시스템 |