JP6512050B2 - 探索方法、探索プログラム及び探索装置 - Google Patents
探索方法、探索プログラム及び探索装置 Download PDFInfo
- Publication number
- JP6512050B2 JP6512050B2 JP2015188352A JP2015188352A JP6512050B2 JP 6512050 B2 JP6512050 B2 JP 6512050B2 JP 2015188352 A JP2015188352 A JP 2015188352A JP 2015188352 A JP2015188352 A JP 2015188352A JP 6512050 B2 JP6512050 B2 JP 6512050B2
- Authority
- JP
- Japan
- Prior art keywords
- search
- route
- methods
- node
- path
- 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.)
- Expired - Fee Related
Links
- 238000000034 method Methods 0.000 title claims description 387
- 230000008569 process Effects 0.000 claims description 76
- 238000000605 extraction Methods 0.000 description 31
- 238000012545 processing Methods 0.000 description 31
- 238000013500 data storage Methods 0.000 description 28
- 238000004364 calculation method Methods 0.000 description 21
- 238000001514 detection method Methods 0.000 description 21
- 238000012913 prioritisation Methods 0.000 description 6
- 235000008694 Humulus lupulus Nutrition 0.000 description 5
- 238000004891 communication Methods 0.000 description 4
- 230000001360 synchronised effect Effects 0.000 description 4
- 230000006870 function Effects 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- FLDSMVTWEZKONL-AWEZNQCLSA-N 5,5-dimethyl-N-[(3S)-5-methyl-4-oxo-2,3-dihydro-1,5-benzoxazepin-3-yl]-1,4,7,8-tetrahydrooxepino[4,5-c]pyrazole-3-carboxamide Chemical compound CC1(CC2=C(NN=C2C(=O)N[C@@H]2C(N(C3=C(OC2)C=CC=C3)C)=O)CCO1)C FLDSMVTWEZKONL-AWEZNQCLSA-N 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000002347 injection Methods 0.000 description 1
- 239000007924 injection Substances 0.000 description 1
- 238000011835 investigation Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Stored Programmes (AREA)
Description
(はじめに)
はじめに、呼出し関係のグラフ構造のデータ化の一例について、図1を参照して説明する。図1に示すソースコードを解析すると、TranceiverのクラスのTranceiver.transmit()のメソッドが、Transformer.encode()のメソッド、Protocol.makeHeader()のメソッド、Tranceiver.send()のメソッドの3つのメソッドを呼び出している。そのうちTranceiver.send()のメソッドは、Tranceiver.transmit()と同じクラス(Tranceiver)のメソッドである。Transformer.encode()のメソッド及びProtocol.makeHeader()のメソッドは、Tranceiver.transmit()と異なるクラスのメソッドである。
まず、本実施形態に係る探索方法を実行する探索装置1の構成の一例について、図4を参照しながら説明する。図4は、一実施形態にかかる探索装置1の機能構成の一例を示す。本実施形態に係る探索装置1は、呼出し関係にある複数の節点のうち経路探索の複数の起点節点を結ぶ経路を節点毎に並行して経路探索を行う。探索装置1は、記録装置とCPU(プロセッサ)を含むコンピュータや他のデジタル処理装置であり得る。ただし、探索装置1の構成は、これに限らず、例えば、CPUを含み、インターネットやLAN(Local Area Network)等を介して記録装置へのアクセスが可能な装置であってもよい。
以下では、本実施形態にかかる探索装置1が実行する探索処理のうちの経路抽出処理について図8を参照して説明する。その後、探索装置1が実行する探索処理のうちの辺探索指示処理(図9)、グラフ辺探索処理(図11)、経路出力処理(図12)、中間地点選出処理(図13)、クラス類似度の算出処理(図14)、優先探索節点選出処理(図16)の各処理が説明される。
図9の辺探索指示処理が開始され、グラフ辺探索部111は、指定された起点節点sを起点集合Zに要素として追加する(ステップS201)。起点集合Zには、その時点で起点となっている節点が格納される。この時点では、起点集合Zには起点節点s1,s2が格納されていてもよい。例えば、図10に示す呼出し関係のグラフ構造の経路抽出対象Q.b及びV.iのメソッドが起点節点s1,s2の一例である。後述する中間地点の節点(例えば、図10のV.i、U.fのメソッド)が選定された場合、起点集合Zには起点節点s1,s2とともに、これらの中間地点の節点が格納される。起点集合Zに格納された中間地点は起点節点の一つとして経路探索の起点となる。
ステップS115、S116にて実行される経路出力処理について図12を参照して説明する。本出力処理の開始に当たって経路出力したい到着節点(ゴールとする節点)をgとし、方向“fwd”、“bwd”の一要素に探索方向dがあるとする。ここで、ゴールの節点gからの最良の戻り道は先行及び後続節点(prev・next)格納部114に格納されている。
(中間地点選出処理)
次に、中間地点選出処理について図13を参照して説明する。図13の中間地点選出処理では、中間地点節点選出部15が、呼出し関係のグラフ構造に含まれる起点節点間の中間地点の節点となるメソッドを選出する。
ステップS502にて実行されるクラス類似度の算出処理について図14を参照して説明する。まず、クラス類似度計算部14は、メソッド保持関係グラフデータ格納部132を参照して、リレーションタイプ132eが“has”、かつソースタイプ132bが“class”、かつソース名132aが“C”である行のディスティネーション名132cを集合Mに格納する(ステップS701)。本処理の入力値として集合CにクラスVが設定されている場合、図6に示すメソッド保持関係グラフデータ格納部132を参照すると、集合Mにはメソッドg、h、i、j、k、lが格納される。
(グラフ辺探索処理)
次に、グラフ辺探索処理について図11を参照して説明する。本処理は、図9の辺探索指示処理のステップS202、S203にて実行される。なお、“fwd”又は“bwd”のいずれかの方向が方向指示変数dirに予め保存されている。また、以下では呼出し関係のグラフ構造の節点の集合を節点集合Vとする。
優先探索節点選出処理について、図16を参照しながら説明する。優先探索節点選出部16は、図5に一例を示す呼出し関係グラフデータ格納部131を参照する。優先探索節点選出部16は、呼出し関係グラフデータ格納部131からリレーションタイプ131e=“call”、かつソースタイプ131b=“method”、かつディスティネーションタイプ=“method”、かつソース名131a=mである行のディスティネーション名131cを集合Nに格納する(ステップS601)。
1.経路抽出対象の起点節点となる2つのメソッドのほかに中間地点節点のメソッドを複数個(P個)用意し、P+2個のメソッド(に対応するグラフの節点)を起点に経路探索を並列に行う。有向辺を順方向(呼出し先に向かう方向fwd)に経路探索するだけでなく、逆方向(呼出し元に向かう方向bwd)にも経路探索する。起点以外の節点にたどり着くまで探索し、最後に経路探索の結果を結合する。
2.1において小さな数のP個の中間地点節点に絞って探索を始め、数ステップ実行後も対象2メソッド(節点)が経路でつながらなければ徐々に中間地点節点を増やして経路探索を行う。
3.2において探索を始める中間地点節点の優先順位付けに、節点に対応する(メソッドを保持する)クラスの(メソッド名リストに関する)類似度が低いことを用いる。
4.1において経路探索を進める辺が複数ある場合に先に調査する辺を決める優先順位付けとして、経路優先度を算出する。経路優先度の算出は、節点に対応するクラス類似度が高いことを用いる。経路優先度に基づき先に調査する辺を決めることで、呼出し関係にある複数のメソッドのうち経路探索の起点となる離れた2メソッド間の呼出し関係の経路抽出に要する時間を削減できる。
Dijkstra法[1] Dijkstra, E.W.(1959).A note on two problems in connexion with graphs. In Numerische Mathematik, 1 (1959), S. 269 〜 271.
A*法[2] Peter E. Hart; Nils J. Nilsson; Bertram Raphael(July 1968). "A Formal Basis for the Heuristic Determination of Minimal Cost Paths". IEEE Transactions on Systems Science and Cybernetics 4 (2): 100‐107. doi:10.1109/TSSC.1968.300136. ISSN0536-1567.
最後に、本実施形態に係る探索装置1のハードウェア構成について、図19を参照して説明する。図19は、本実施形態に係る探索装置1のハードウェア構成の一例を示す。探索装置1は、入力装置101、表示装置102、外部I/F103、RAM(Random Access Memory)104、ROM(Read Only
Memory)105、CPU(Central Processing Unit)106、通信I/F107、及びHDD(Hard Disk Drive)108などを備え、それぞれがバスBで相互に接続されている。
memory)等がある。
(付記1)
呼出し関係にある複数のメソッドのうち経路探索の起点となる複数のメソッドを結ぶ経路を前記起点となるメソッド毎に並行して経路探索を行う処理をコンピュータが実行する探索方法であって、
前記起点となる前記複数のメソッドからnホップ目の経路探索対象となる経路が複数ある場合、メソッドに対応するクラスを記憶する記憶部を参照して、前記経路で接続された2つのメソッドに対応する経路優先度を算出し、
前記経路優先度に基づき、前記経路探索対象となる複数の経路のうちから経路探索を行う経路を特定し、
特定した前記経路に基づき前記経路探索の起点となる複数のメソッドの経路探索を行う、
探索方法。
(付記2)
経路探索の起点となる中間地点のメソッドを特定し、前記複数のメソッド及び前記中間地点のメソッドを結ぶ経路を、前記中間地点のメソッドを含む前記経路探索の起点となる複数のメソッドのそれぞれから並行して経路探索を行う、
付記1に記載の探索方法。
(付記3)
前記複数のメソッド及び前記中間地点のメソッドに対応するクラス類似度に基づき、経路探索の起点となる前記中間地点のメソッドを増やす、
付記2に記載の探索方法。
(付記4)
複数の前記中間地点のメソッドが特定される場合、前記クラス類似度に基づき、前記複数の中間地点のメソッドの優先度を特定し、
特定した前記複数の中間地点のメソッドの優先度に従い、特定した前記複数の中間地点のメソッドのうちから前記経路探索の起点となる中間地点のメソッドを特定し、
特定した前記中間地点のメソッドを含む前記経路探索の起点となる複数のメソッドのそれぞれから並行して経路探索を行う、
付記3に記載の探索方法。
(付記5)
呼出し関係にある複数のメソッドのうち経路探索の起点となる複数のメソッドを結ぶ経路を前記起点のメソッド毎に並行して経路探索を行う処理をコンピュータに実行させる探索プログラムであって、
前記起点となる前記複数のメソッドからnホップ目の経路探索対象となる経路が複数ある場合、メソッドに対応するクラスを記憶する記憶部を参照して、前記経路で接続された2つのメソッドに対応する経路優先度を算出し、
前記経路優先度に基づき、前記経路探索対象となる複数の経路のうちから経路探索を行う経路を特定し、
特定した前記経路に基づき前記経路探索の起点となる複数のメソッドの経路探索を行う、
探索プログラム。
(付記6)
経路探索の起点となる中間地点のメソッドを特定し、前記複数のメソッド及び前記中間地点のメソッドを結ぶ経路を、前記中間地点のメソッドを含む前記経路探索の起点となる複数のメソッドのそれぞれから並行して経路探索を行う、
付記5に記載の探索プログラム。
(付記7)
前記複数のメソッド及び前記中間地点のメソッドに対応するクラス類似度に基づき、経路探索の起点となる前記中間地点のメソッドを増やす、
付記6に記載の探索プログラム。
(付記8)
複数の前記中間地点のメソッドが特定される場合、前記クラス類似度に基づき、前記複数の中間地点のメソッドの優先度を特定し、
特定した前記複数の中間地点のメソッドの優先度に従い、特定した前記複数の中間地点のメソッドのうちから前記経路探索の起点となる中間地点のメソッドを特定し、
特定した前記中間地点のメソッドを含む前記経路探索の起点となる複数のメソッドのそれぞれから並行して経路探索を行う、
付記7に記載の探索プログラム。
(付記9)
呼出し関係にある複数のメソッドのうち経路探索の起点となる複数のメソッドを結ぶ経路を前記起点のメソッド毎に並行して経路探索を行う探索装置であって、
前記起点となる前記複数のメソッドからnホップ目の経路探索対象となる経路が複数ある場合、メソッドに対応するクラスを記憶する記憶部を参照して、前記経路で接続された2つのメソッドに対応する経路優先度を算出する優先探索節点選出部と、
前記経路優先度に基づき、前記経路探索対象となる複数の経路のうちから経路探索を行う経路を特定し、特定した前記経路に基づき前記経路探索の起点となる複数のメソッドの経路探索を行う探索部と、
を有する探索装置。
(付記10)
経路探索の起点となる中間地点のメソッドを特定する中間地点節点選出部を有し、
前記探索部は、前記複数のメソッド及び前記中間地点のメソッドを結ぶ経路を、前記中間地点のメソッドを含む前記経路探索の起点となる複数のメソッドのそれぞれから並行して経路探索を行う、
付記9に記載の探索装置。
(付記11)
前記中間地点節点選出部は、前記複数のメソッド及び前記中間地点のメソッドに対応するクラス類似度に基づき、経路探索の起点となる前記中間地点のメソッドを増やす、
付記10に記載の探索装置。
(付記12)
前記中間地点節点選出部は、複数の前記中間地点のメソッドが特定される場合、前記クラス類似度に基づき、前記複数の中間地点のメソッドの優先度を特定し、特定した前記複数の中間地点のメソッドの優先度に従い、特定した前記複数の中間地点のメソッドのうちから前記経路探索の起点となる中間地点のメソッドを特定し、
前記探索部は、特定した前記中間地点のメソッドを含む前記経路探索の起点となる複数のメソッドのそれぞれから並行して経路探索を行う、
付記11に記載の探索装置。
10:探索指示部
11:グラフ探索部
12:起点集合格納部
13:記憶部
14:クラス類似度計算部
15:中間地点節点選出部
16:優先探索節点選出部
111:グラフ辺探索部
112:要訪問節点集合格納部
113:訪問済節点集合格納部
114:先行及び後続節点格納部
131:呼出し関係グラフデータ格納部
132:メソッド保持関係グラフデータ格納部
Claims (6)
- 呼出し関係にある複数のメソッドのうち経路探索の起点となる複数のメソッドを結ぶ経路を前記起点となるメソッド毎に並行して経路探索を行う処理をコンピュータが実行する探索方法であって、
前記起点となる前記複数のメソッドからnホップ目の経路探索対象となる経路が複数ある場合、メソッドに対応するクラスを記憶する記憶部を参照して、前記経路で接続された2つのメソッドに対応する経路優先度を算出し、
前記経路優先度に基づき、前記経路探索対象となる複数の経路のうちから経路探索を行う経路を特定し、
特定した前記経路に基づき前記経路探索の起点となる複数のメソッドの経路探索を行う、
探索方法。 - 経路探索の起点となる中間地点のメソッドを特定し、前記複数のメソッド及び前記中間地点のメソッドを結ぶ経路を、前記中間地点のメソッドを含む前記経路探索の起点となる複数のメソッドのそれぞれから並行して経路探索を行う、
請求項1に記載の探索方法。 - 前記複数のメソッド及び前記中間地点のメソッドに対応するクラス類似度に基づき、経路探索の起点となる前記中間地点のメソッドを増やす、
請求項2に記載の探索方法。 - 複数の前記中間地点のメソッドが特定される場合、前記クラス類似度に基づき、前記複数の中間地点のメソッドの優先度を特定し、
特定した前記複数の中間地点のメソッドの優先度に従い、特定した前記複数の中間地点のメソッドのうちから前記経路探索の起点となる中間地点のメソッドを特定し、
特定した前記中間地点のメソッドを含む前記経路探索の起点となる複数のメソッドのそれぞれから並行して経路探索を行う、
請求項3に記載の探索方法。 - 呼出し関係にある複数のメソッドのうち経路探索の起点となる複数のメソッドを結ぶ経路を前記起点のメソッド毎に並行して経路探索を行う処理をコンピュータに実行させる探索プログラムであって、
前記起点となる前記複数のメソッドからnホップ目の経路探索対象となる経路が複数ある場合、メソッドに対応するクラスを記憶する記憶部を参照して、前記経路で接続された2つのメソッドに対応する経路優先度を算出し、
前記経路優先度に基づき、前記経路探索対象となる複数の経路のうちから経路探索を行う経路を特定し、
特定した前記経路に基づき前記経路探索の起点となる複数のメソッドの経路探索を行う、
探索プログラム。 - 呼出し関係にある複数のメソッドのうち経路探索の起点となる複数のメソッドを結ぶ経路を前記起点のメソッド毎に並行して経路探索を行う探索装置であって、
前記起点となる前記複数のメソッドからnホップ目の経路探索対象となる経路が複数ある場合、メソッドに対応するクラスを記憶する記憶部を参照して、前記経路で接続された2つのメソッドに対応する経路優先度を算出する優先探索節点選出部と、
前記経路優先度に基づき、前記経路探索対象となる複数の経路のうちから経路探索を行う経路を特定し、特定した前記経路に基づき前記経路探索の起点となる複数のメソッドの経路探索を行う探索部と、
を有する探索装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2015188352A JP6512050B2 (ja) | 2015-09-25 | 2015-09-25 | 探索方法、探索プログラム及び探索装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2015188352A JP6512050B2 (ja) | 2015-09-25 | 2015-09-25 | 探索方法、探索プログラム及び探索装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2017062710A JP2017062710A (ja) | 2017-03-30 |
JP6512050B2 true JP6512050B2 (ja) | 2019-05-15 |
Family
ID=58428931
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2015188352A Expired - Fee Related JP6512050B2 (ja) | 2015-09-25 | 2015-09-25 | 探索方法、探索プログラム及び探索装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP6512050B2 (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20230222010A1 (en) * | 2022-01-10 | 2023-07-13 | Nvidia Corporation | Application programming interface to indicate execution of graph nodes |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2003233768A (ja) * | 2002-02-12 | 2003-08-22 | Univ Tokyo | 複数経路探索のためのデュアルダイキストラ法 |
JP2013218637A (ja) * | 2012-04-12 | 2013-10-24 | Nippon Telegr & Teleph Corp <Ntt> | 探索範囲限定装置及び方法及びプログラム |
-
2015
- 2015-09-25 JP JP2015188352A patent/JP6512050B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2017062710A (ja) | 2017-03-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7394129B2 (ja) | ナレッジグラフのパーティション分割 | |
US9581454B2 (en) | Route information processing apparatus and route information processing method | |
CN111460311A (zh) | 基于字典树的搜索处理方法、装置、设备和存储介质 | |
US10108401B2 (en) | Dynamic suggestion of next task based on task navigation information | |
JP6719748B2 (ja) | 探索システム、探索方法および物性データベース管理装置 | |
US20200265044A1 (en) | Path searching method, storage medium and path searching apparatus | |
US20110072352A1 (en) | Method and application tool for dynamically navigating a user customizable representation of a network device configuration | |
JP6352958B2 (ja) | グラフインデックス探索装置及びグラフインデックス探索装置の動作方法 | |
JP2018531379A6 (ja) | 経路照会方法、装置、デバイス及び不揮発性コンピューター記憶媒体 | |
JP2018531379A (ja) | 経路照会方法、装置、デバイス及び不揮発性コンピューター記憶媒体 | |
CN110909015A (zh) | 微服务的拆分方法、装置、设备及存储介质 | |
Sharpe et al. | Identifying mechanistically distinct pathways in kinetic transition networks | |
Farach-Colton et al. | Tight approximations of degeneracy in large graphs | |
JPWO2010058785A1 (ja) | 経路計算順決定方法、プログラムおよび計算装置 | |
JP6512050B2 (ja) | 探索方法、探索プログラム及び探索装置 | |
KR20210031094A (ko) | 트리 기반 이상치 탐지 장치 및 방법, 컴퓨터 프로그램 | |
JP4491480B2 (ja) | インデクス構築方法、文書検索装置及びインデクス構築プログラム | |
CN103324644B (zh) | 一种查询结果多样化方法及装置 | |
KR101914784B1 (ko) | 쿼드 트리에 기반한 스카이라인 질의 방법 | |
KR20190050575A (ko) | 무인 항공기의 비행경로 탐색 방법 | |
US20170122760A1 (en) | Apparatus and method for online generation of an optimum route-graph | |
JP2016100002A (ja) | 組み合わせ計算によるイベント駆動ソフトウェアのイベント・シーケンス構築 | |
CN115510290A (zh) | 一种数字孪生环境下的快速检索方法及终端 | |
JP2019148859A (ja) | フローダイアグラムを用いたモデル開発環境におけるデザインパターンの発見を支援する装置および方法 | |
CN114279457A (zh) | 路径规划方法、装置、设备及可读存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20180608 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20190228 |
|
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: 20190312 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20190325 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6512050 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |