JP2022171190A - 経路検出装置およびプログラム - Google Patents
経路検出装置およびプログラム Download PDFInfo
- Publication number
- JP2022171190A JP2022171190A JP2021077691A JP2021077691A JP2022171190A JP 2022171190 A JP2022171190 A JP 2022171190A JP 2021077691 A JP2021077691 A JP 2021077691A JP 2021077691 A JP2021077691 A JP 2021077691A JP 2022171190 A JP2022171190 A JP 2022171190A
- Authority
- JP
- Japan
- Prior art keywords
- strongly connected
- qubo
- subgraph
- connected components
- detection device
- 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
- 238000001514 detection method Methods 0.000 title claims abstract description 107
- 239000011159 matrix material Substances 0.000 claims abstract description 49
- 238000000034 method Methods 0.000 claims description 26
- 238000012545 processing Methods 0.000 claims description 16
- 230000010365 information processing Effects 0.000 claims description 4
- 238000012804 iterative process Methods 0.000 claims 2
- 230000006870 function Effects 0.000 description 27
- 238000004364 calculation method Methods 0.000 description 7
- 238000010586 diagram Methods 0.000 description 7
- 238000004891 communication Methods 0.000 description 4
- 125000004122 cyclic group Chemical group 0.000 description 2
- 230000007423 decrease Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000007796 conventional method Methods 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000003252 repetitive effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/11—Complex mathematical operations for solving equations, e.g. nonlinear equations, general mathematical optimization problems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/16—Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N99/00—Subject matter not provided for in other groups of this subclass
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Computational Mathematics (AREA)
- Pure & Applied Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Databases & Information Systems (AREA)
- Algebra (AREA)
- Computing Systems (AREA)
- Operations Research (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Stored Programmes (AREA)
- Complex Calculations (AREA)
Abstract
【課題】有向グラフに含まれる特定の種類の単純閉路を検出する。【解決手段】経路検出装置は、強連結成分検出部と、問題生成部と、解取得部と、単純閉路検出部とを備える。強連結成分検出部は、有向グラフに含まれる強連結成分を検出する。問題生成部は、強連結成分について、QUBO問題を生成する。解取得部は、強連結成分について、QUBO問題の解を取得する。単純閉路検出部は、強連結成分について、部分グラフに含まれる単純閉路を検出する。QUBO問題における目的関数に含まれる複数の決定変数は、強連結成分に含まれる複数のノードまたは複数のエッジに対応する。部分グラフは、強連結成分における、解に基づき選択される2以上のノードまたは2以上のエッジを含む一部分であえる。目的関数に含まれるQUBO行列は、部分グラフが予め設定された条件を満たす場合に、目的関数が最小となるように設定される。【選択図】図6
Description
本発明の実施形態は、経路検出装置およびプログラムに関する。
有向グラフに含まれる閉路を検出する技術が知られている。有向グラフに含まれる閉路を検出する技術は、例えば、企業間取引において監査すべき対象である循環取引の検出に用いることができる。例えば、企業をノード、支払関係をエッジとした有向グラフを生成し、生成した有向グラフに含まれる単純閉路を検出することによって、企業間の循環取引を検出することができる。
有向グラフに含まれる閉路を検出する従来の技術として、単純閉路検出アルゴリズムが知られている。従来の単純閉路検出アルゴリズムは、有向グラフに含まれる強連結成分を検出し、検出した強連結成分に対して深さ優先探索をすることにより単純閉路を検出する。
しかし、従来の単純閉路検出アルゴリズムは、有向グラフに含まれるノードの個数をN、エッジの個数をE、単純閉路の個数をCとした場合、O1×((N+E)×(C+1))の計算時間およびO2×(N+E)の計算空間が必要であった。従って、従来の単純閉路検出アルゴリズムは、大規模な有向グラフから単純閉路を検出することは現実的ではなかった。
鈴鹿順美, "グラフ理論を用いた循環取引の検知", 情報センサー Vol.160 December 2020,P8-11, [2021年4月26日検索],インターネット<URL,https://www.eyjapan.jp/library/issue/info-sensor/2020-12-02.html>
Johnson, D. B., "Finding all the elementary circuits of a directed graph", SIAM Journal on Computing, 4(1), P77-84, 1975
Tarjan, R., "Depth-first search and linear graph algorithms", SIAM journal on computing, 1(2), P146-160, 1972
本発明が解決しようとする課題は、有向グラフに含まれる特定の種類の単純閉路を、少ない計算時間および少ない計算空間により検出することができる経路検出装置およびプログラムを提供することにある。
実施形態に係る経路検出装置は、有向グラフに含まれる単純閉路を検出する。前記経路検出装置は、強連結成分検出部と、問題生成部と、解取得部と、単純閉路検出部と、出力部と、を備える。前記強連結成分検出部は、前記有向グラフに含まれる1または複数の強連結成分を検出する。前記問題生成部は、前記1または複数の強連結成分のそれぞれについて、QUBO問題を生成する。前記解取得部は、前記1または複数の強連結成分のそれぞれについて、前記QUBO問題の解を取得する。前記単純閉路検出部は、前記1または複数の強連結成分のそれぞれについて、部分グラフに含まれる前記単純閉路を検出する。前記出力部は、検出した前記単純閉路を特定する情報を出力する。前記QUBO問題における目的関数に含まれる複数の決定変数は、前記1または複数の強連結成分のうちの対象の強連結成分に含まれる複数のノードまたは複数のエッジに対応する。前記部分グラフは、前記対象の強連結成分における、前記解に基づき選択される2以上のノードまたは2以上のエッジを含む一部分であえる。前記目的関数に含まれるQUBO行列は、前記部分グラフが予め設定された条件を満たす場合に、前記目的関数が最小となるように設定される。
以下、図面を参照しながら実施形態に係る経路検出装置10について説明する。
(第1実施形態)
図1は、第1実施形態に係る経路検出装置10の機能構成を示す図である。
図1は、第1実施形態に係る経路検出装置10の機能構成を示す図である。
経路検出装置10は、有向グラフに含まれる特定の種類の単純閉路を、少ない計算時間および少ない計算空間により検出する。第1実施形態において、経路検出装置10は、有向グラフに含まれる複数の単純閉路の全てうちの、確率的に、エッジ数の少ない単純閉路の個数を除き、エッジ数の多い単純閉路を検出する。経路検出装置10は、プロセッサ、コンピュータまたはサーバ等がプログラムを実行することにより実現される。
経路検出装置10は、QUBOソルバー22と、グラフ取得部24と、強連結成分検出部26と、問題生成部28と、解取得部30と、部分グラフ生成部32と、単純閉路検出部34と、繰返制御部36と、出力部38とを備える。
QUBOソルバー22は、QUBO(Quadratic unconstrained binary optimization)問題の解を算出する。QUBOソルバー22は、QUBO問題を受け取り、受け取ったQUBO問題の解を出力する。QUBOソルバー22は、最適解を出力してもよいし、近似解を出力してもよい。QUBOソルバー22は、イジング問題の解を算出するソルバーであってもよい。QUBOソルバー22は、例えば、経路検出装置10を実現するプロセッサまたはコンピュータがQUBO問題の求解プログラムを実行することにより実現される。また、QUBOソルバー22は、サーバ等により提供されてもよい。この場合、QUBOソルバー22は、経路検出装置10の外部に実現されてもよい。QUBOソルバー22が経路検出装置10の外部に実現される場合、経路検出装置10は、ネットワークを介してQUBOソルバー22に対してQUBO問題を与えて、解をQUBOソルバー22からネットワークを介して取得する。
グラフ取得部24は、単純閉路を検出する対象である有向グラフを取得する。有向グラフについては、図2を参照してさらなる詳細を後述する。
強連結成分検出部26は、取得した有向グラフに含まれる1または複数の強連結成分を検出する。強連結成分については、図3を参照してさらなる詳細を後述する。
問題生成部28は、検出した1または複数の強連結成分のそれぞれについて、QUBO問題を生成する。QUBO問題における目的関数に含まれる複数の決定変数は、1または複数の強連結成分のうちの対象の強連結成分に含まれる複数のノードまたは複数のエッジに対応する。第1実施形態において、QUBO問題における複数の決定変数は、対象の強連結成分に含まれる複数のエッジに一対一で対応する。
QUBO問題における目的関数に含まれるQUBO行列は、部分グラフが予め設定された条件を満たす場合に、目的関数が最小となるように設定される。部分グラフは、対象の強連結成分における、QUBO問題の解に基づき選択される2以上のノードまたは2以上のエッジを含む一部分である。第1実施形態において、QUBO行列は、部分グラフに含まれる2以上のノードのそれぞれにおける入力次数(in-degree)と出力次数(out-degree)との加算値が第1設定値となる場合に、目的関数が最小となるように設定される。
解取得部30は、1または複数の強連結成分のそれぞれについて、生成されたQUBO問題をQUBOソルバー22に与えて、QUBO問題の求解を要求する。そして、解取得部30は、1または複数の強連結成分のそれぞれについて、生成されたQUBO問題の解を、QUBOソルバー22から取得する。
部分グラフ生成部32は、1または複数の強連結成分のそれぞれについて、QUBO問題の解に基づき選択される部分グラフを生成する。より具体的には、部分グラフ生成部32は、対象の強連結成分における、QUBO問題の解が1となる決定変数に対応する2以上のノードまたは2以上のエッジを含む一部分を、部分グラフとして検出する。本実施形態においては、部分グラフ生成部32は、対象の強連結成分における、QUBO問題の解が1となる決定変数に対応する2以上のエッジを含む一部分を、部分グラフとして検出する。
単純閉路検出部34は、1または複数の強連結成分のそれぞれについて、部分グラフに含まれる単純閉路を検出する。単純閉路については、図4および図5を参照してさらなる詳細を後述する。
繰返制御部36は、1または複数の強連結成分のそれぞれ毎に、問題生成部28によるQUBO問題の生成、解取得部30によるQUBO問題の解の取得、部分グラフ生成部32による部分グラフの生成を、部分グラフに含まれるエッジの個数が予め設定された閾値以下となるまで繰り返させる。
繰返制御部36は、2回目以降のQUBO問題の生成処理において、直前の処理で用いたQUBO行列を変更した新たなQUBO行列を用いて、新たなQUBO問題を生成させる。そして、繰返制御部36は、部分グラフに含まれるエッジの個数が閾値以下である場合、繰返処理を終了して、単純閉路検出部34に部分グラフに含まれる単純閉路を検出させる。従って、繰返制御部36は、1または複数の強連結成分のそれぞれ毎に、エッジ数が閾値以下とされた部分グラフに含まれる単純閉路を検出することができる。これにより、繰返制御部36は、単純経路を検出するための計算時間および計算空間を少なくすることができる。
出力部38は、1または複数の強連結成分の全てについて検出した単純閉路を、有向グラフに含まれる単純閉路として出力する。出力部38は、検出した単純閉路を表示手段に表示することによりユーザに提示してもよい。また、出力部38は、検出した単純閉路をネットワークを介して外部の装置に送信してもよい。
図2は、有向グラフの一例を示す図である。有向グラフは、複数のノード間の接続関係を、向きを有するエッジを用いて表したグラフである。エッジの入力側のノードを元ノードと呼び、エッジの出力側のノードを出力先ノードと呼ぶ。
例示した有向グラフは、A,B,C,DおよびEの5個のノードを含む。また、例示した有向グラフは、6個のエッジを含む。6個のエッジは、AからBに向かうエッジ(A→B)と、BからCに向かうエッジ(B→C)と、CからAに向かうエッジ(C→A)と、BからDに向かうエッジ(B→D)と、DからAに向かうエッジ(D→A)と、DからEに向かうエッジ(D→E)とを含む。
図3は、強連結成分の一例を示す図である。強連結成分は、有向グラフの一部分のグラフであって、任意の2つのノードの間に双方向に行き来が可能な経路を含む極大なグラフである。
図3に示すように、例示した有向グラフに含まれる強連結成分は、A、B、CおよびDを含むグラフである。A、B、CおよびDを含むグラフは、A、B、CおよびDのうちの任意の2つのノードを選択した場合、双方向に行き来が可能な経路が存在する。さらに、A、B、CおよびDを含むグラフは、他のどのノードを加えても強連結成分とはならない。従って、A、B、CおよびDを含むグラフは、例示した有向グラフの一部分であって、任意の2つのノードの間に双方向に行き来が可能な経路を含む極大なグラフである。
図4は、単純閉路の第1例を示す図である。図5は、単純閉路の第2例を示す図である。閉路は、ある任意のノードから開始し、開始したノードに戻る経路である。単純閉路は、閉路のうちの、重複するノードが存在しない、すなわち、同一のノードが2個以上含まれない経路である。
図4に示すように、例示した有向グラフに含まれる単純閉路の一つは、A→B→C→Aの経路である。また、図5に示すように、例示した有向グラフに含まれる単純閉路の一つは、A→B→D→Aの経路である。
図6は、第1実施形態に係る経路検出装置10の処理の流れを示すフローチャートである。経路検出装置10は、図6に示す流れで処理を実行する。
まず、S11において、グラフ取得部24は、単純閉路を検出する対象である有向グラフを取得する。
例えば、グラフ取得部24は、表1に示すような、有向グラフに含まれる複数のエッジのそれぞれについて、元ノードと、出力先ノードとが記述された情報を取得する。なお、グラフ取得部24は、このような記述に限らず他の方法で記述された有向グラフを取得してもよい。
続いて、S12において、強連結成分検出部26は、取得した有向グラフを解析して、取得した有向グラフに含まれる1または複数の強連結成分を検出する。強連結成分検出部26は、一例として、非特許文献3に示されているTarjan’s algorithmを用いて、有向グラフから強連結成分を検出することができる。
続いて、経路検出装置10は、1または複数の強連結成分のそれぞれについて、S14からS20までの処理を実行する(S13とS21との間のループ処理)。
S14において、問題生成部28は、S14からS20までの処理を実行する対象の強連結成分について、QUBO問題を生成する。第1実施形態において、QUBO問題における目的関数に含まれる複数の決定変数は、対象の強連結成分に含まれる複数のエッジに一対一で対応する。
続いて、S15において、解取得部30は、対象の強連結成分について、生成されたQUBO問題をQUBOソルバー22に与えて、QUBO問題の求解を要求する。そして、解取得部30は、対象の強連結成分について、生成されたQUBO問題の解を、QUBOソルバー22から取得する。
続いて、S16において、部分グラフ生成部32は、対象の強連結成分について、QUBO問題の解に基づき選択される部分グラフを生成する。より具体的には、部分グラフ生成部32は、対象の強連結成分における、QUBO問題の解が1となる決定変数に対応する2以上のノードまたは2以上のエッジを含む一部分を、部分グラフとして検出する。第1実施形態においては、部分グラフ生成部32は、対象の強連結成分における、QUBO問題の解が1となる決定変数に対応する2以上のエッジを含み、解が0となる決定変数に対応するエッジを含まない一部分を、部分グラフとして検出する。
Eは、対象の強連結成分に含まれるエッジの個数である。iおよびjは、1以上E以下の整数であり、エッジのインデックスを表す。xiは、E個のエッジのうちのi番目のエッジに対応する決定変数である。xjは、E個のエッジのうちのj番目のエッジに対応する決定変数である。
Qi,jは、QUBO行列に含まれるi番目のエッジに対応する決定変数とj番目のエッジに対応する決定変数との組に乗算される係数である。
第1実施形態において、QUBO行列は、E×Eの正方行列である。第1実施形態において、QUBO行列は、部分グラフに含まれる2以上のノードのそれぞれにおける入力次数と出力次数との加算値が第1設定値となる場合に、目的関数が最小となるように設定される。入力次数は、ノードへと入るエッジの個数である。出力次数は、ノードから出るエッジの個数である。
Qα
i,jは、i番目のエッジに対応する決定変数とj番目のエッジに対応する決定変数との組に乗算される係数の第1項である。Qsource
i,jは、i番目のエッジに対応する決定変数とj番目のエッジに対応する決定変数との組に乗算される係数の第2項である。Qdestination
i,jは、i番目のエッジに対応する決定変数とj番目のエッジに対応する決定変数との組に乗算される係数の第3項である。
sourceiは、i番目のエッジの元ノードを表す。sourcejは、j番目のエッジの元ノードを表す。destinationiは、i番目のエッジの出力先ノードを表す。destinationjは、j番目のエッジの出力先ノードを表す。
そして、αは、正の実数である。例えば、αは、初期値がユーザ等により設定される。
係数の第1項であるQα
i,jは、QUBO行列の対角成分の係数に-4αを加算し、対角成分以外の係数に0を加算することを表す。係数の第2項であるQsource
i,jは、元エッジが共通する2つのエッジの組に対応する係数に+1を加算し、元エッジが共通しない2つのエッジの組に対応する係数に0を加算することを表す。係数の第3項であるQdestination
i,jは、出力先エッジが共通する2つのエッジの組に対応する係数に+1を加算し、出力先エッジが共通しない2つのエッジの組に対応する係数に0を加算することを表す。
式(2)に従って算出されたQUBO行列を含む目的関数は、部分グラフに含まれる2以上のノードのそれぞれにおける入力次数と出力次数との加算値が2×αとなるように、N個の決定変数の値が選択された場合に、最小値となる。すなわち、式(2)に従って算出されたQUBO行列を含む目的関数を用いたQUBO問題は、部分グラフに含まれる2以上のノードのそれぞれにおける入力次数と出力次数との加算値が2×αとなる近傍において、大域的最小値を返す。なお、2×αは、第1設定値に相当する値である。
従って、式(2)に従って算出されたQUBO行列を含む目的関数を用いたQUBO問題は、対象の強連結成分のうちの、入力次数と出力次数との加算値が2×αより大きいノードからエッジを除き、入力次数と出力次数との加算値が2×α以下のノードのエッジを残すような、解を返すことができる。このため、式(2)に従って算出されたQUBO行列を含む目的関数を用いたQUBO問題は、多重エッジおよび多重経路を高い確率で除いた部分グラフを選択する解を返すことができる。
なお、QUBO行列は、式(2)に示す行列に限らず他の行列であってもよい。例えば、QUBO行列は、式(2)に示す行列に係数が乗算された行列であってもよい。また、QUBO行列における係数の第1項であるQα
i,jは、QUBO行列の対角成分の係数に-4αを加算するのではなく、-1×A×αを加算してもよい。なお、Aは、正の整数である。
S16に続いて、S17において、繰返制御部36は、生成した部分グラフのエッジ数を検出する。続いて、S18において、繰返制御部36は、対象の強連結成分について、生成した部分グラフに含まれるエッジの個数が予め設定された閾値以下であるか否かを判断する。繰返制御部36は、生成した部分グラフに含まれるエッジの個数が閾値より多い場合(S18のNo)、処理をS19に進める。
S19において、繰返制御部36は、QUBO行列の算出に用いるαを所定量減少させる。繰返制御部36は、S19を終えると、処理をS14に戻す。そして、問題生成部28は、S14から処理を繰り返す。
部分グラフに含まれるエッジの個数は、ノードにおける入力次数と出力次数との加算値の、部分グラフの全体の合計に比例する。このため、部分グラフに含まれるエッジの個数は、αの増加に従って、単調増加する。従って、繰返制御部36は、αを変更して、QUBO問題の生成および部分グラフの生成を繰り返すことにより、部分グラフに含まれるエッジの個数を目的値に制御することができる。例えば、繰返制御部36は、二分探索により部分グラフに含まれるエッジの個数を目的値に制御することができる。
繰返制御部36は、部分グラフに含まれるエッジの個数が閾値以下である場合(S18のYes)、処理をS20に進める。
S20において、単純閉路検出部34は、対象の強連結成分のそれぞれについて、部分グラフに含まれる単純閉路を検出する。例えば、単純閉路検出部34は、深さ優先探索処理により、部分グラフから単純閉路を検出する。例えば、単純閉路検出部34は、非特許文献2に記載されたJohnson’s algorithmを用いて、部分グラフに含まれる単純閉路を検出することができる。
S21において、経路検出装置10は、1または複数の強連結成分の全てについて、S14からS20までの処理を実行したか否かを判断する。経路検出装置10は、1または複数の強連結成分の全てについては実行が完了していない場合には、未実行の強連結成分について、S14からS20までの処理を実行する。経路検出装置10は、1または複数の強連結成分の全てについて、S14からS20までの処理を完了した場合には、処理をS22に進める。
S22において、出力部38は、1または複数の強連結成分の全てについて検出した単純閉路を、出力する。経路検出装置10は、S22を終了すると、本フローを終了する。
以上のような第1実施形態に係る経路検出装置10は、有向グラフに含まれる1または複数の強連結成分のそれぞれについて、入力次数と出力次数との加算値が多いノードからエッジを除き、入力次数と出力次数との加算値が少ないノードからエッジを除かないように、部分ノードを検出する。これにより、経路検出装置10は、有向グラフから、多重エッジおよび多重経路を高い確率で除いた部分グラフを検出することができる。
そして、経路検出装置10は、このような部分グラフから単純閉路を検出する。従って、経路検出装置10は、有向グラフに含まれるエッジ数の多い単純閉路を、少ない計算時間および少ない計算空間で検出することができる。
(第2実施形態)
つぎに、第2実施形態に係る経路検出装置10を説明する。第2実施形態に係る経路検出装置10は、有向グラフに含まれる特定の種類の単純閉路を、少ない計算時間および少ない計算空間により検出する。本実施形態において、経路検出装置10は、有向グラフに含まれる複数の単純閉路の全てうちの、確率的に、エッジ数の多い単純閉路の個数を除き、エッジ数の少ない単純閉路を検出する。
つぎに、第2実施形態に係る経路検出装置10を説明する。第2実施形態に係る経路検出装置10は、有向グラフに含まれる特定の種類の単純閉路を、少ない計算時間および少ない計算空間により検出する。本実施形態において、経路検出装置10は、有向グラフに含まれる複数の単純閉路の全てうちの、確率的に、エッジ数の多い単純閉路の個数を除き、エッジ数の少ない単純閉路を検出する。
なお、第2実施形態に係る経路検出装置10は、第1実施形態と同一のブロック構成を有し、それぞれが略同一の機能を有する。第2実施形態において、第1実施形態と同一または対応する係数、変数、機能ブロックおよびステップについて、同一の記号または符号を付けて適宜説明を省略し、相違点を中心に説明をする。
図7は、第2実施形態に係る経路検出装置10の処理の流れを示すフローチャートである。第2実施形態に係る経路検出装置10は、図7に示す流れで処理を実行する。
第2実施形態に係る経路検出装置10の処理は、図6に示す第1実施形態の処理と比較して、S14に代えてS31となり、S16に代えてS32となり、S19に代えてS33となっている点において異なる。
まず、S11において、グラフ取得部24は、有向グラフを取得する。続いて、S12において、強連結成分検出部26は、取得した有向グラフに含まれる1または複数の強連結成分を検出する。
続いて、経路検出装置10は、1または複数の強連結成分のそれぞれについて、S31からS20までの処理を実行する(S13とS21との間のループ処理)。
S31において、問題生成部28は、対象の強連結成分について、QUBO問題を生成する。第2実施形態において、QUBO問題における目的関数に含まれる複数の決定変数は、対象の強連結成分に含まれる複数のノードに一対一で対応する。
続いて、S15において、解取得部30は、対象の強連結成分について、生成されたQUBO問題をQUBOソルバー22に与えて、QUBO問題の求解を要求する。そして、解取得部30は、対象の強連結成分について、生成されたQUBO問題の解を、QUBOソルバー22から取得する。
続いて、S32において、部分グラフ生成部32は、対象の強連結成分について、QUBO問題の解に基づき選択される部分グラフを生成する。第2実施形態においては、部分グラフ生成部32は、対象の強連結成分における、QUBO問題の解が1となる決定変数に対応する2以上のノードを含み、解が0となる決定変数に対応するノードを含まない一部分を、部分グラフとして検出する。
Nは、対象の強連結成分に含まれるノードの個数である。iおよびjは、1以上N以下の整数であり、ノードのインデックスを表す。
xiは、N個のノードのうちのi番目のノードに対応する決定変数である。xjは、N個のノードのうちのj番目のノードに対応する決定変数である。
Qi,jは、QUBO行列に含まれるi番目のノードに対応する決定変数とj番目のノードに対応する決定変数との組に乗算される係数である。
第2実施形態において、QUBO行列は、N×Nの正方行列である。第2実施形態において、QUBO行列は、部分グラフに含まれる2以上のノードのそれぞれにおける接続されていないノードの個数が第2設定値となる場合に、目的関数が最小値となるように設定される。
Qi,jは、i番目のノードに対応する決定変数とj番目のノードに対応する決定変数との組に乗算される係数である。Edgesは、対象の強連結成分に含まれる複数のエッジの集合を表す。(i,j)は、i番目のノードから出てj番目のノードに入るエッジを表す。
従って、式(4)により表されるQi,jは、同一のノードの組に対応する係数は、-1となる。異なるノードの組に対応する係数は、エッジにより接続される場合には、0とされ、エッジにより接続されていない場合には、1/(1+β)とされる。βは、正の実数であり、第2設定値に対応する。例えば、βは、初期値がユーザ等により設定される。
式(4)に従って算出されたQUBO行列を含む目的関数は、部分グラフに含まれる2以上のノードのそれぞれにおける接続していないノードの個数がβとなるように、N個の決定変数の値が選択された場合に、最小値となる。すなわち、式(4)に従って算出されたQUBO行列を含む目的関数を用いたQUBO問題は、部分グラフに含まれる2以上のノードのそれぞれにおける接続していないノードの個数がβとなる近傍において、大域的最小値を返す。
従って、式(4)に従って算出されたQUBO行列を含む目的関数を用いたQUBO問題は、対象の強連結成分のうちの、接続していないノードの個数がβより多いノードを除き、接続していないノードの個数がβ以下のノードを残すような、解を返すことができる。このため、式(4)に従って算出されたQUBO行列を含む目的関数を用いたQUBO問題は、エッジ数の多い単純閉路を除き、エッジ数の少ない単純閉路を残した相互に密に接続された2以上のノードを含む部分グラフを選択する解を返すことができる。
なお、QUBO行列は、式(4)に示す行列に限らず他の行列であってもよい。例えば、QUBO行列は、式(4)に示す行列に係数が乗算された行列であってもよい。また、QUBO行列における、エッジにより接続される異なるノードの組に対応する係数は、1/(B+β)であってもよい。なお、Bは、正の整数である。
S32に続いて、S17において、繰返制御部36は、部分グラフのエッジ数を検出する。続いて、S18において、繰返制御部36は、対象の強連結成分について、生成した部分グラフに含まれるエッジの個数が予め設定された閾値以下であるか否かを判断する。繰返制御部36は、生成した部分グラフに含まれるエッジの個数が閾値より多い場合(S18のNo)、処理をS33に進める。
S33において、繰返制御部36は、QUBO行列の算出に用いるβを所定量減少させる。繰返制御部36は、S33を終えると、処理をS31に戻す。そして、問題生成部28は、S31から処理を繰り返す。
部分グラフに含まれるエッジの個数は、ノードにおける接続されていないノードの個数の、部分グラフの全体の合計が多い程、多くなる。このため、部分グラフに含まれるエッジの個数は、βに比例する。従って、繰返制御部36は、βを変更して、QUBO問題の生成および部分グラフの生成を繰り返すことにより、部分グラフに含まれるエッジの個数を目的値に制御することができる。例えば、繰返制御部36は、二分探索により部分グラフに含まれるエッジの個数を目的値に制御することができる。
繰返制御部36は、部分グラフに含まれるエッジの個数が閾値以下である場合(S18のYes)、処理をS20に進める。
S20において、単純閉路検出部34は、対象の強連結成分のそれぞれについて、部分グラフに含まれる単純閉路を検出する。
S21において、経路検出装置10は、1または複数の強連結成分の全てについて、S31からS20までの処理を実行したか否かを判断する。経路検出装置10は、1または複数の強連結成分の全てについては実行が完了していない場合には、未実行の強連結成分について、S31からS20までの処理を実行する。経路検出装置10は、1または複数の強連結成分の全てについて、S31からS20までの処理を完了した場合には、処理をS22に進める。
S22において、出力部38は、1または複数の強連結成分の全てについて検出した単純閉路を、出力する。経路検出装置10は、S22を終了すると、本フローを終了する。
以上のような第2実施形態に係る経路検出装置10は、有向グラフに含まれる1または複数の強連結成分のそれぞれについて、接続していないノードの個数が多いノードを除き、接続していないノードの個数が少ないノードを除かないように、部分ノードを検出する。これにより、経路検出装置10は、有向グラフから、エッジ数の多い単純閉路を高い確率で除いた部分グラフを検出することができる。
そして、経路検出装置10は、このような部分グラフから単純閉路を検出する。従って、経路検出装置10は、有向グラフに含まれるエッジ数の少ない単純閉路を、少ない計算時間および少ない計算空間で検出することができる。
(ハードウェア構成)
図8は、経路検出装置10のハードウェアブロック図である。経路検出装置10は、一例として、図8に示すような一般のコンピュータ(情報処理装置)と同様のハードウェア構成により実現される。経路検出装置10は、図8に示すような1つのコンピュータまたはサーバにより実現されてもよいし、協働して動作する複数のコンピュータまたはサーバにより実現されてもよい。また、経路検出装置10は、一部に専用のハードウェア回路を備える構成であってもよい。
図8は、経路検出装置10のハードウェアブロック図である。経路検出装置10は、一例として、図8に示すような一般のコンピュータ(情報処理装置)と同様のハードウェア構成により実現される。経路検出装置10は、図8に示すような1つのコンピュータまたはサーバにより実現されてもよいし、協働して動作する複数のコンピュータまたはサーバにより実現されてもよい。また、経路検出装置10は、一部に専用のハードウェア回路を備える構成であってもよい。
経路検出装置10は、メモリ204と、1または複数のハードウェアプロセッサ206と、記憶装置208と、操作装置210と、表示装置212と、通信装置214とを備える。各部は、バスにより接続される。
メモリ204は、例えば、ROM222と、RAM224とを含む。ROM222は、経路検出装置10の制御に用いられるプログラムおよび各種設定情報等を書き換え不可能に記憶する。RAM224は、SDRAM(Synchronous Dynamic Random Access Memory)等の揮発性の記憶媒体である。RAM224は、1または複数のハードウェアプロセッサ206の作業領域として機能する。
1または複数のハードウェアプロセッサ206は、メモリ204(ROM222およびRAM224)にバスを介して接続される。1または複数のハードウェアプロセッサ206のそれぞれは、例えば、CPU(Central Processing Unit)であってもよいし、演算用のハードウェア回路であってもよい。
1または複数のハードウェアプロセッサ206は、RAM224の所定領域を作業領域としてROM222または記憶装置208に予め記憶された各種プログラムとの協働により各種処理を実行し、経路検出装置10を構成する各部の動作を統括的に制御する。また、1または複数のハードウェアプロセッサ206は、ROM222または記憶装置208に予め記憶されたプログラムとの協働により、操作装置210、表示装置212および通信装置214等を制御する。
記憶装置208は、フラッシュメモリ等の半導体による記憶媒体、磁気的または光学的に記録可能な記憶媒体等の書き換え可能な記録装置である。記憶装置208は、経路検出装置10の制御に用いられるプログラムおよび各種設定情報等を記憶する。
操作装置210は、マウスおよびキーボード等の入力デバイスである。操作装置210は、ユーザから操作入力された情報を受け付け、受け付けた情報を1または複数のハードウェアプロセッサ206に出力する。
表示装置212は、情報をユーザに表示する。表示装置212は、1または複数のハードウェアプロセッサ206から情報等を受け取り、受け取った情報を表示する。なお、通信装置214または記憶装置208等に情報を出力する場合、経路検出装置10は、表示装置212を備えなくてもよい。通信装置214は、外部の機器と通信して、ネットワーク等を介して情報を送受信する。
本実施形態の経路検出装置10で実行されるプログラムは、インストール可能な形式または実行可能な形式のファイルでCD-ROM、フレキシブルディスク(FD)、CD-R、DVD(Digital Versatile Disk)等のコンピュータで読み取り可能な記録媒体に記録されて提供される。
また、本実施形態の経路検出装置10で実行されるプログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成してもよい。また、本実施形態の経路検出装置10で実行されるプログラムをインターネット等のネットワーク経由で提供または配布するように構成してもよい。また、本実施形態の経路検出装置10で実行されるプログラムを、ROM等に予め組み込んで提供するように構成してもよい。
情報処理装置を経路検出装置10として機能させるためのプログラムは、例えば、グラフ取得モジュール、強連結成分検出モジュール、問題生成モジュール、解取得モジュール、部分グラフ生成モジュール、単純閉路検出モジュール、繰返制御モジュール、および、出力モジュールを含むモジュール構成となっている。さらに、プログラムは、QUBOソルバーモジュールを含んでもよい。このプログラムは、1または複数のハードウェアプロセッサ206により実行されることにより各モジュールがメモリ204のRAM224にロードされ、1または複数のハードウェアプロセッサ206を、グラフ取得部24、強連結成分検出部26、問題生成部28、解取得部30、部分グラフ生成部32、単純閉路検出部34、繰返制御部36および出力部38として機能させる。さらに、このプログラムは、1または複数のハードウェアプロセッサ206を、QUBOソルバー22として機能させてもよい。なお、これらの構成は、一部または全部がハードウェアにより構成されていてもよい。
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、請求の範囲に記載された発明とその均等の範囲に含まれる。
10 経路検出装置
22 QUBOソルバー
24 グラフ取得部
26 強連結成分検出部
28 問題生成部
30 解取得部
32 部分グラフ生成部
34 単純閉路検出部
36 繰返制御部
38 出力部
22 QUBOソルバー
24 グラフ取得部
26 強連結成分検出部
28 問題生成部
30 解取得部
32 部分グラフ生成部
34 単純閉路検出部
36 繰返制御部
38 出力部
Claims (10)
- 有向グラフに含まれる単純閉路を検出する経路検出装置であって、
前記有向グラフに含まれる1または複数の強連結成分を検出する強連結成分検出部と、
前記1または複数の強連結成分のそれぞれについて、QUBO問題を生成する問題生成部と、
前記1または複数の強連結成分のそれぞれについて、前記QUBO問題の解を取得する解取得部と、
前記1または複数の強連結成分のそれぞれについて、部分グラフに含まれる前記単純閉路を検出する単純閉路検出部と、
検出した前記単純閉路を特定する情報を出力する出力部と、
を備え、
前記QUBO問題における目的関数に含まれる複数の決定変数は、前記1または複数の強連結成分のうちの対象の強連結成分に含まれる複数のノードまたは複数のエッジに対応し、
前記部分グラフは、前記対象の強連結成分における、前記解に基づき選択される2以上のノードまたは2以上のエッジを含む一部分であり、
前記目的関数に含まれるQUBO行列は、前記部分グラフが予め設定された条件を満たす場合に、前記目的関数が最小となるように設定される
経路検出装置。 - 前記複数の決定変数は、前記対象の強連結成分に含まれる前記複数のエッジに対応し、
前記QUBO行列は、前記部分グラフに含まれる2以上のノードのそれぞれにおける入力次数と出力次数との加算値が第1設定値となる場合に、前記目的関数が最小となるように、設定される
請求項1に記載の経路検出装置。 - Qi,jは、下記式(2)により表され、
Qsource i,jは、i番目のエッジに対応する決定変数とj番目のエッジに対応する決定変数との組に乗算される係数の第2項であり、
Qdestination i,jは、i番目のエッジに対応する決定変数とj番目のエッジに対応する決定変数との組に乗算される係数の第3項であり、
αは、正の実数であり、
sourceiは、i番目のエッジの元ノードを表し、
sourcejは、j番目のエッジの出力先ノードを表し、
destinationiは、i番目のエッジの元ノードを表し、
destinationjは、j番目のエッジの出力先ノードを表す
請求項3に記載の経路検出装置。 - 前記1または複数の強連結成分のそれぞれ毎に、前記QUBO問題の生成および前記QUBO問題の解の取得を繰り返させる繰返制御部をさらに備え、
前記繰返制御部は、
2回目以降の前記QUBO問題の生成処理において、直前の処理で用いたαから所定量減少させた新たなαを用いて、新たな前記QUBO問題を生成させ、
前記部分グラフに含まれるエッジの個数が閾値以下である場合、繰返処理を終了して、前記部分グラフに含まれる前記単純閉路を検出させる
請求項4に記載の経路検出装置。 - 前記複数の決定変数は、前記対象の強連結成分に含まれる前記複数のノードに対応し、
前記QUBO行列は、前記部分グラフに含まれる2以上のノードのそれぞれにおける接続されていないノードの個数が第2設定値となる場合に、前記目的関数が最小値となるように、設定される
請求項1に記載の経路検出装置。 - 前記1または複数の強連結成分のそれぞれ毎に、前記QUBO問題の生成および前記QUBO問題の解の取得を繰り返させる繰返制御部をさらに備え、
前記繰返制御部は、
2回目以降の前記QUBO問題の生成処理において、直前の処理で用いたβから所定量減少させた新たなβを用いて、新たな前記QUBO問題を生成させ、
前記部分グラフに含まれるエッジの個数が閾値以下である場合、繰返処理を終了して、前記部分グラフに含まれる前記単純閉路を検出させる
請求項8に記載の経路検出装置。 - 情報処理装置を、有向グラフに含まれる単純閉路を検出す経路検出装置として機能させるためのプログラムであって、
前記情報処理装置を、
前記有向グラフに含まれる1または複数の強連結成分を検出する強連結成分検出部と、
前記1または複数の強連結成分のそれぞれについて、QUBO問題を生成する問題生成部と、
前記1または複数の強連結成分のそれぞれについて、前記QUBO問題の解を取得する解取得部と、
前記1または複数の強連結成分のそれぞれについて、部分グラフに含まれる前記単純閉路を検出する単純閉路検出部と、
検出した前記単純閉路を特定する情報を出力する出力部と、
して機能させ、
前記QUBO問題における目的関数に含まれる複数の決定変数は、前記1または複数の強連結成分のうちの対象の強連結成分に含まれる複数のノードまたは複数のエッジに対応し、
前記部分グラフは、前記対象の強連結成分における、前記解に基づき選択される2以上のノードまたは2以上のエッジを含む一部分であり、
前記目的関数に含まれるQUBO行列は、前記部分グラフが予め設定された条件を満たす場合に、前記目的関数が最小となるように設定される
プログラム。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2021077691A JP2022171190A (ja) | 2021-04-30 | 2021-04-30 | 経路検出装置およびプログラム |
CA3216729A CA3216729A1 (en) | 2021-04-30 | 2022-04-14 | Path detection device and program |
PCT/JP2022/017779 WO2022230675A1 (ja) | 2021-04-30 | 2022-04-14 | 経路検出装置およびプログラム |
US18/494,019 US20240054176A1 (en) | 2021-04-30 | 2023-10-25 | Path detection device and computer program product |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2021077691A JP2022171190A (ja) | 2021-04-30 | 2021-04-30 | 経路検出装置およびプログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2022171190A true JP2022171190A (ja) | 2022-11-11 |
Family
ID=83847505
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2021077691A Pending JP2022171190A (ja) | 2021-04-30 | 2021-04-30 | 経路検出装置およびプログラム |
Country Status (4)
Country | Link |
---|---|
US (1) | US20240054176A1 (ja) |
JP (1) | JP2022171190A (ja) |
CA (1) | CA3216729A1 (ja) |
WO (1) | WO2022230675A1 (ja) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20220068034A (ko) | 2020-11-18 | 2022-05-25 | 삼성전자주식회사 | 카메라 모듈 및 카메라 모듈을 포함하는 전자 장치 |
WO2024184963A1 (ja) * | 2023-03-03 | 2024-09-12 | 日本電信電話株式会社 | Qubo行列変換装置、qubo行列変換方法、プログラム |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004220227A (ja) * | 2003-01-14 | 2004-08-05 | Nec Corp | 遺伝子ネットワーク経路探索装置及び方法並びにプログラム |
US20140143110A1 (en) * | 2012-11-20 | 2014-05-22 | Sap Ag | Circular Transaction Path Detection |
US11132422B2 (en) * | 2019-06-20 | 2021-09-28 | Fujitsu Limited | Automating solving NP problems in annealer systems |
JP7314014B2 (ja) * | 2019-10-08 | 2023-07-25 | 株式会社東芝 | 探索装置、探索方法、プログラム、探索システムおよび裁定取引システム |
-
2021
- 2021-04-30 JP JP2021077691A patent/JP2022171190A/ja active Pending
-
2022
- 2022-04-14 CA CA3216729A patent/CA3216729A1/en active Pending
- 2022-04-14 WO PCT/JP2022/017779 patent/WO2022230675A1/ja active Application Filing
-
2023
- 2023-10-25 US US18/494,019 patent/US20240054176A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
US20240054176A1 (en) | 2024-02-15 |
CA3216729A1 (en) | 2022-11-03 |
WO2022230675A1 (ja) | 2022-11-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2022230675A1 (ja) | 経路検出装置およびプログラム | |
JP6751235B2 (ja) | 機械学習プログラム、機械学習方法、および機械学習装置 | |
GB2560410A (en) | Loop and library fusion | |
Nation et al. | Suppressing quantum circuit errors due to system variability | |
Vaz et al. | Representation of the non-dominated set in biobjective discrete optimization | |
US20210264309A1 (en) | Methods and apparatuses for resource-optimized fermionic local simulation on quantum computer for quantum chemistry | |
Acharya et al. | A lightweight approach to detect malicious/unexpected changes in the error rates of NISQ computers | |
Alevras et al. | GPU computing for accelerating the numerical Path Integration approach | |
Maiti et al. | Scheduling precedence-constrained jobs on related machines with communication delay | |
Patel et al. | Charter: Identifying the most-critical gate operations in quantum circuits via amplified gate reversibility | |
Nguyen et al. | Quantum circuit transformations with a multi-level intermediate representation compiler | |
Sottile et al. | Static analysis techniques for semiautomatic synthesis of message passing software skeletons | |
Salm et al. | How to Select Quantum Compilers and Quantum Computers Before Compilation. | |
JP2012043437A (ja) | 画像処理方法及び画像処理装置 | |
Aminu et al. | Non-linear programs with max-linear constraints: A heuristic approach | |
Waring et al. | Noise Aware Utility Optimization of NISQ Devices | |
Omer et al. | Automatic management of cyclic dependency among web services | |
Hasan et al. | QuantoTrace: Quantum Error Correction as a Service for Robust Quantum Computing | |
Mankodi et al. | Evaluation of neural network models for performance prediction of scientific applications | |
JP2022072149A (ja) | 機械学習プログラム、装置、及び方法 | |
Abbas et al. | Challenges and opportunities in quantum optimization | |
Khurana et al. | Change impact analysis and its regression test effort estimation | |
Hruz et al. | Parallelism in simulation and modeling of scale-free complex networks | |
US20240160979A1 (en) | Circuit cutting for quantum simulation with resource usage prediction | |
Avramidis et al. | Efficiency improvements for pricing American options with a stochastic mesh: Parallel implementation |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20231115 |