IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 日本電信電話株式会社の特許一覧 ▶ 学校法人早稲田大学の特許一覧

<>
  • 特許-処理装置、処理方法及び処理プログラム 図1
  • 特許-処理装置、処理方法及び処理プログラム 図2
  • 特許-処理装置、処理方法及び処理プログラム 図3
  • 特許-処理装置、処理方法及び処理プログラム 図4
  • 特許-処理装置、処理方法及び処理プログラム 図5
  • 特許-処理装置、処理方法及び処理プログラム 図6
  • 特許-処理装置、処理方法及び処理プログラム 図7
  • 特許-処理装置、処理方法及び処理プログラム 図8
  • 特許-処理装置、処理方法及び処理プログラム 図9
  • 特許-処理装置、処理方法及び処理プログラム 図10
  • 特許-処理装置、処理方法及び処理プログラム 図11
  • 特許-処理装置、処理方法及び処理プログラム 図12
  • 特許-処理装置、処理方法及び処理プログラム 図13
  • 特許-処理装置、処理方法及び処理プログラム 図14
  • 特許-処理装置、処理方法及び処理プログラム 図15
  • 特許-処理装置、処理方法及び処理プログラム 図16
  • 特許-処理装置、処理方法及び処理プログラム 図17
  • 特許-処理装置、処理方法及び処理プログラム 図18
  • 特許-処理装置、処理方法及び処理プログラム 図19
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-05-25
(45)【発行日】2023-06-02
(54)【発明の名称】処理装置、処理方法及び処理プログラム
(51)【国際特許分類】
   G06N 99/00 20190101AFI20230526BHJP
   G06N 10/00 20220101ALI20230526BHJP
【FI】
G06N99/00 180
G06N10/00
【請求項の数】 8
(21)【出願番号】P 2019199416
(22)【出願日】2019-10-31
(65)【公開番号】P2020149664
(43)【公開日】2020-09-17
【審査請求日】2022-03-16
(31)【優先権主張番号】P 2019043211
(32)【優先日】2019-03-08
(33)【優先権主張国・地域又は機関】JP
【新規性喪失の例外の表示】特許法第30条第2項適用 第227回システム・アーキテクチャ・第187回システムとLSIの設計技術・第50回組込みシステム合同研究発表会(ETNET2019) ・https://ipsj.ixsq.nii.ac.jp/ej/?action=pages_view_main&active_action=repository_view_main_item_detail&item_id=195246&item_no=1&page_id=13&block_id=8 ・https://www.ipsj.or.jp/kenkyukai/event/arc227sldm187emb50.html ウェブサイト掲載日 2019年3月10日 Adiabatic Quantum Computing Conference 2019予稿集 発行日 2019年6月24日 ICCE Berlin 2019 2019 IEEE 9th International Conference on Consumer Electronics ・https://edas.info/p25749 ・http://www.icce-berlin.org/download/Venue_Guide.pdf ウェブサイト掲載日 2019年9月8日
(73)【特許権者】
【識別番号】000004226
【氏名又は名称】日本電信電話株式会社
(73)【特許権者】
【識別番号】899000068
【氏名又は名称】学校法人早稲田大学
(74)【代理人】
【識別番号】110002147
【氏名又は名称】弁理士法人酒井国際特許事務所
(72)【発明者】
【氏名】巴 徳瑪
(72)【発明者】
【氏名】内山 寛之
(72)【発明者】
【氏名】八木 哲志
(72)【発明者】
【氏名】新井 淳也
(72)【発明者】
【氏名】吉村 夏一
(72)【発明者】
【氏名】多和田 雅師
(72)【発明者】
【氏名】田中 宗
(72)【発明者】
【氏名】戸川 望
【審査官】松平 英
(56)【参考文献】
【文献】Andrew Lucas,Ising formulations of many NP problems,[online],2014年02月12日,pp.1-15,[検索日:2023年2月3日],インターネット<https://jonghoon.blog/raft/assets/notes/TSP_papers/Lucas_IsingFormulation.pdf>
【文献】加藤 裕平 他,WEB検索による知識文の獲得と意味グラフ照合推論による質問応答システム,第67回(平成17年)全国大会講演論文集(2) 人工知能と認知科学,日本,社団法人情報処理学会,2005年,pp.2-11~2-12
【文献】和田 貴久 他,構造類似性を基にしたグラフクラスタリング手法の検討,FIT2006 第5回情報科学技術フォーラム 一般講演論文集 第2分冊,日本,社団法人電子情報通信学会,2006年,pp.73-74
【文献】山本 浩司 他,データ依存回路による隣接判定方式の評価,電子情報通信学会2003年総合大会講演論文集 情報・システム1,日本,社団法人電子情報通信学会,2003年,p.64
(58)【調査した分野】(Int.Cl.,DB名)
G06N 3/00-3/12
7/08-99/00
(57)【特許請求の範囲】
【請求項1】
二つのグラフの類似性もしくは同型性を判定する処理装置であって、
二つのグラフの入力を受け付けるグラフ入力部と、
前記二つのグラフに基づいて、前記二つのグラフから構成される部分グラフの類似性判定問題もしくは同型性判定問題を解く場合に用いる目的関数を作成する問題変換部と、
を有し、
前記目的関数は、前記二つのグラフの一方の頂点集合から他方のグラフの頂点集合への写像が単射となる場合に最も値が小さくなるよう定義された第1の関数と、前記二つのグラフの一方における頂点の接続関係と他方のグラフの対応する頂点間の接続関係の一致度が高いほど値が小さくなるよう定義された第2の関数と、の重みづけ和に基づく関数であることを特徴とする処理装置。
【請求項2】
前記目的関数が下限値を取る解が存在する場合には、前記二つのグラフの一方のグラフが他方の部分グラフとして含まれると判定し、前記目的関数が下限値を取る解が存在しない場合には、前記二つのグラフの一方のグラフが他方の部分グラフとして含まれないと判定する判定部
をさらに有することを特徴とする請求項1に記載の処理装置。
【請求項3】
前記目的関数の解に対応する目的関数の値が小さいほど類似度が高くなるように、前記二つのグラフの類似度を計算する計算部
をさらに有することを特徴とする請求項1に記載の処理装置。
【請求項4】
前記目的関数は、0または1を取る変数xに関するQUBOの目的関数であることを特徴とする請求項1~3のいずれか一つに記載の処理装置。
【請求項5】
前記目的関数は、-1または1を取る変数sに関するイジングハミルトニアンであることを特徴とする請求項1~3のいずれか一つに記載の処理装置。
【請求項6】
前記目的関数の第1の関数の重みは、前記目的関数の第2の関数の重みよりも大きく設定されることを特徴とする請求項4または請求項5に記載の処理装置。
【請求項7】
二つのグラフの類似性もしくは同型性を判定する処理装置が実行する処理方法であって、
二つのグラフの入力を受け付けるステップと、
前記二つのグラフに基づいて、前記二つのグラフから構成される部分グラフの類似性もしくは同型性判定問題を解く場合に用いる目的関数を生成するステップと、
を含み、
前記目的関数は、前記二つのグラフの一方の頂点集合から他方のグラフの頂点集合への写像が単射となる場合に最も値が小さくなるよう定義された第1の関数と、前記二つのグラフの一方における頂点の接続関係と他方のグラフの対応する頂点間の接続関係の一致度が高いほど値が小さくなるよう定義された第2の関数と、の重みづけ和に基づく関数であることを特徴とする処理方法。
【請求項8】
コンピュータを、請求項1~6のいずれか一つに記載の処理装置として機能させるための処理プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、処理装置、処理方法及び処理プログラムに関する。
【背景技術】
【0002】
グラフ同型判定問題を量子アニーリングマシンやイジングマシンを用いて解くためのQUBOへの変換やイジング問題への変換が知られている(非特許文献1~4参照)。
【先行技術文献】
【非特許文献】
【0003】
【文献】J.R.Ullmann, “An Algorithm for Subgraph Isomorphism”,J.ACM, Vol.23, No.1, pp.31-42(1976).
【文献】A. Lucas, “Ising formulations of many NP problems”, frontiers in Physics(2014), [online],[平成31年3月4日検索],インターネット<URL:https://www.frontiersin.org/articles/10.3389/fphy.2014.00005/full>
【文献】D-Wave Systems Inc, “The D-Wave 2000QTM Quantum Computer Technology Overview”,[online],[平成31年2月4日検索],インターネット<URL:https://www.dwavesys.com/sites/default/files/D-Wave 2000Q Tech Collateral_1029F.pdf.>
【文献】Takahiro Inagaki et al., “A coherent Ising machine for 2000-node optimization problems”, Science, vol. 354, Issue 6312, pp. 603-606(2016).
【発明の概要】
【発明が解決しようとする課題】
【0004】
ここで、グラフ同型問題からさらに発展させた誘導部分グラフ同型判定問題および部分グラフ同型判定問題の解法は、大きなグラフ構造を持つ回路から与えられた不正回路を検出するといった用途や、化学構造式で示される物質中に特定の化学結合に類似する化学結合が存在するか否かの判定、パターン認識等に応用が可能である。しかしながら、誘導部分グラフ同型判定問題及び部分グラフ同型判定問題では、グラフのどの部分に他方のグラフが含まれるかは不明であるため、グラフ同型問題よりもさらに困難な問題である。また、このような実問題への応用では、2つのグラフが同型であるか否かではなく、2つのグラフが類似するか否かを判定したいという要望もある。
【0005】
本発明は、上記に鑑みてなされたものであって、量子アニーリングマシンやイジングマシンを用いて、二つのグラフの類似性もしくは同型性を判定することを可能にする処理装置、処理方法及び処理プログラムを提供することを目的とする。
【課題を解決するための手段】
【0006】
上述した課題を解決し、目的を達成するために、本発明に係る処理装置は、二つのグラフの類似性もしくは同型性を判定する処理装置であって、二つのグラフの入力を受け付けるグラフ入力部と、二つのグラフに基づいて、二つのグラフから構成される部分グラフの類似性判定問題もしくは同型性判定問題を解く場合に用いる目的関数を作成する問題変換部と、有することを特徴とする。
【0007】
また、本発明に係る処理方法は、二つのグラフの類似性もしくは同型性を判定する処理装置が実行する処理方法であって、二つのグラフの入力を受け付けるステップと、二つのグラフに基づいて、二つのグラフから構成される部分グラフの類似性もしくは同型性判定問題を解く場合に用いる目的関数を生成するステップと、を含んだことを特徴とする。
【発明の効果】
【0008】
本発明によれば、量子アニーリングマシンやイジングマシンを用いて、二つのグラフの類似性もしくは同型性を判定することを可能にする。
【図面の簡単な説明】
【0009】
図1図1は、実施の形態1に係る処理装置の概略構成を示す図である。
図2図2は、図1に示すグラフ入力部による入力処理の処理手順を示すフローチャートである。
図3図3は、図1に示す問題変換部による問題変換処理の処理手順を示すフローチャートである。
図4図4は、図1に示す判定部による判定処理の処理手順を示すフローチャートである。
図5図5は、実施の形態2に係る処理装置の概略構成を示す図である。
図6図6は、図5に示す判定部による判定処理の処理手順を示すフローチャートである。
図7図7は、処理対象のグラフの一例を示す図である。
図8図8は、処理対象のグラフの一例を示す図である。
図9図9は、処理対象のグラフの一例を示す図である。
図10図10は、処理対象のグラフの一例を示す図である。
図11図11は、実施の形態3に係る処理装置の概略構成を示す図である。
図12図12は、図11に示す判定部による判定処理の処理手順を示すフローチャートである。
図13図13は、処理対象のグラフの一例を示す図である。
図14図14は、処理対象のグラフの一例を示す図である。
図15図15は、図13に示すグラフに類似するグラフの一例を示す図である。
図16図16は、処理対象のグラフの一例を示す図である。
図17図17は、処理対象のグラフの一例を示す図である。
図18図18は、図16に示すグラフに類似するグラフの一例を示す図である。
図19図19は、プログラムが実行されることにより、処理装置が実現されるコンピュータの一例を示す図である。
【発明を実施するための形態】
【0010】
以下、図面を参照して、本発明の一実施形態を詳細に説明する。なお、この実施の形態により本発明が限定されるものではない。また、図面の記載において、同一部分には同一の符号を付して示している。
【0011】
[従来の数理的背景]
グラフ同型判定問題の量子アニーリングマシンまたはイジングマシンによる解法を説明する。
【0012】
グラフ同型判定問題は、グラフG=(V,E)と、グラフG=(V,E)が与えられたときに、GとGとが同型か否かを判定する問題である。ただし、VとVは頂点の集合、EとEはエッジの集合である。GとGとが同型であるとは、∀u,v∈V,uv∈E⇔f(u)f(v)∈Eを満たすような全単射写像f:V→Vが存在することと定義される。
【0013】
グラフ同型判定問題は、計算量が現時点で明確に示されていないものの、困難な問題であるとして知られている。このため、量子アニーリングマシン(非特許文献3参照)やイジングマシン(非特許文献4参照)を用いて高速に解くための手法が提案されている(非特許文献2参照)。量子アニーリングマシンやイジングマシンは、QUBO(Quadratic Unconstrained Binary Optimization)と呼ばれる問題と、Ising Hamiltonian(イジングハミルトニアン)の最小化を行うイジング問題とを短時間で解くことができる。また同時に、可能な計算がこれらの最適化問題を解くことに限られる。したがって、これらの計算機を使用するためには、問題を適切に最適化問題へと変換する必要がある。なお、QUBOとイジングハミルトニアンの最小化問題とは、変数変換を行なうことによって相互に変換可能であるため、ここでは、グラフ同型判定問題をQUBOに変換する手法を述べる。
【0014】
QUBOは、正整数n、行列Q∈Rn×n、ベクトルx∈{0,1}に対して(1)式のように2次多項式を最小化する問題である。
【0015】
【数1】
【0016】
ijをQのi行j列の要素、xをベクトルxの第i要素とすると、(2)式のように表すことができる。
【0017】
【数2】
【0018】
つまりqij+qjiの値で係数が決まるので、Qとしては、i>jについて、qij=0であるような行列、すなわち、上三角行列のみを考えてもよい。
【0019】
QUBOで、i∈Vとv∈Vとを対応付ける写像f:V→Vを得るため、グラフ同型判定問題においては、次の(3),(4)式のように二値ベクトルxを定義する。ただし、n=|V|(=|V|)とする。
【0020】
【数3】
【0021】
【数4】
【0022】
さらに、GとGとがグラフ同型であることを最小化問題として表現するため、グラフ同型の制約条件を4つに分解し、それぞれについて次の(5)式~(8)式のように最小化すべき値(制約項)H,H,H,Hを定める。
【0023】
【数5】
【0024】
【数6】
【0025】
【数7】
【0026】
【数8】
【0027】
とHとは、写像f:V→Vが全単射であることを表現する。すなわち、Hは、各i∈Vにおいて、ただ一つの変数xivが1をとり、それ以外では0を取るときに最小値を取る制約である。Hは、各v∈Vにおいて、ただ一つの変数xivが1をとり、それ以外では0を取るときに最小値を取る制約である。
【0028】
とHとは、頂点の接続関係が一致していることを表現する。すなわち、Hは、グラフGで接続していない頂点が、グラフGで接続することを禁止する制約である。Hは、グラフGで接続していない頂点が、グラフGで接続することを禁止する制約である。
【0029】
実際に、量子アニーリングマシンやイジングマシンが最小化可能であるのは、(1)式が示すように1つの式の値に限られる。そこで上記の制約項にスカラー値による重み付けを行いつつ和をとった以下のような(9)式を、QUBOの目的関数とする。
【0030】
【数9】
【0031】
ここで、α,β,γ,δ∈Rは、ハイパーパラメータであり、量子アニーリングマシンやイジングマシンで解くにあたり、正の値を設定する。
【0032】
グラフ同型の制約を全て満たすようなxivの値の割り当てにおいて、またその時に限り、H=H=H=H=0となる。したがって、GとGがグラフ同型であるならば、Hの下限値(基底状態)は0である。つまり、Hを目的関数とするQUBOを解くことによって、H=0となるベクトルxを得られた場合には、同型であり、そうでない場合には、同型でない、としてグラフ同型判定問題を解くことができる。
【0033】
[実施の形態1]
このように、従来、グラフ同型判定問題を量子アニーリングマシンやイジングマシンを用いて解を得るためのQUBOへの変換やイジングハミルトニアンへの変換は、既に知られている。これに対し、本実施の形態1では、誘導部分グラフ同型判定問題及び部分グラフ同型判定問題への変換を提案する。
【0034】
とGとが誘導部分グラフ同型であるとは、∀u,v∈V,uv∈E⇔f(u)f(v)∈Eを満たすような単射写像fが存在することである。また、GとGとが部分グラフ同型であるとは、∀u,v∈V,uv∈E⇒f(u)f(v)∈Eを満たすような単射写像fが存在することである。これらの定義は、Gの一部がGと同型であることを示す。Gのどの部分にGが含まれるかは不明であるため、これらは、グラフ同型問題に比べてさらに困難な問題である。
【0035】
まず、実施の形態1では、誘導部分グラフ同型判定問題を処理する処理装置について説明する。図1は、実施の形態1に係る処理装置の概略構成を示す図である。図1に示す処理装置10は、二つのグラフが与えられたとき、一方が他方の誘導部分グラフとして含まれるか否かを判定する誘導部分グラフ同型判定問題を解くための処理装置である。処理装置10は、グラフ入力部11、問題変換部12及び判定部13を有する。なお、処理装置10は、例えば、ROM(Read Only Memory)、RAM(Random Access Memory)、CPU(Central Processing Unit)等を含むコンピュータ等に所定のプログラムが読み込まれて、CPUが所定のプログラムを実行することで実現される。
【0036】
グラフ入力部11は、二つのグラフの入力を受け付ける。図2は、図1に示すグラフ入力部11による入力処理の処理手順を示すフローチャートである。図2に示すように、グラフ入力部11は、グラフGとグラフGとの入力を受け付けると(ステップS1)、グラフGとグラフGとをメモリ上に格納する(ステップS2)。
【0037】
問題変換部12は、二つのグラフに基づいて、二つのグラフから構成される誘導部分グラフ同型判定問題を解く場合に用いるQUBOの目的関数を作成する。または、問題変換部12は、二つのグラフから構成される誘導部分グラフ同型判定問題を解く場合に用いるイジングハミルトニアンを作成する。例えば、問題変換部12は、二つのグラフに基づいて作成したQUBOの目的関数を変数変換し、イジングハミルトニアンを作成する。問題変換部12は、入力されたグラフG,Gを、QUBO、または、イジングハミルトニアンに変換して出力する。
【0038】
図3は、図1に示す問題変換部12による問題変換処理の処理手順を示すフローチャートである。問題変換部12は、グラフ入力部11が入力を受け付けたグラフGとグラフG、及び、変換後の問題種別(QUBOまたはイジング問題を選択)を入力とする(ステップS11)。ここで、G=(V,E),G=(V,E)の頂点数は、等しくなく、|V|=n<m=|V|とする。なお、以降において、目的関数は、QUBOの目的関数とイジングハミルトニアンとの双方を包含するものとする。
【0039】
そして、問題変換部12は、グラフGとGから、QUBOの目的関数H´を、以降の処理を行って作成する(ステップS12)。
【0040】
まず、問題変換部12では、制約項H´,H´,H,Hを以下の(10)式~(13)式のように定義する。
【0041】
【数10】
【0042】
【数11】
【0043】
【数12】
【0044】
【数13】
【0045】
そして、問題変換部12では、上記のH´,H´,H,Hを用いて、(14)式のようにH´を定義する。
【0046】
【数14】
【0047】
´とH´とは、二つグラフの一方の頂点集合から他方のグラフの頂点集合への写像が単射となる場合に最も値が小さくなるよう定義された第1の関数である。すなわち、H´とH´とは、二つのグラフの頂点の一致性を評価する関数である。HとHとは、二つグラフの一方における頂点の接続関係と他方のグラフの対応する頂点間の接続関係の一致度が高いほど値が小さくなるよう定義された第2の関数である。すなわち、HとHとは、二つのグラフの辺の接続の一致性を評価する関数である。目的関数であるH´は、第1の関数と第2の関数との重み付け和である。なお、α,β,γ,δ∈Rは、ハイパーパラメータであり、量子アニーリングマシンやイジングマシンで解くにあたり、正の値を設定する。例えば、α,β,γ,δは、α=1,β=1,γ=3,δ=3である。HとHとが写像fが全単射であることを表現するのに対し、H´とH´とは、fが単射であることを表現する。
【0048】
|V|=mとなったことから、総和の添え字vの範囲が1からmまでとなっている。さらに、H´では、括弧内の定数部分が1から1/2へ変更されている。これは、各v∈Vに対して対応付けられるi∈Vが1つだけ存在するか、または、1つも存在しないことを強制するための制約である。つまり、これは、(15)式に示す和が0または1であることを強制するための制約である。
【0049】
【数15】
【0050】
(11)式の括弧内の定数部分を1/2とすることによって(15)式に示す和が、0か、1のときに、最小の値を取ることが保証される。なお、H,Hに関しては、グラフ同型判定問題から変更はない。
【0051】
誘導部分グラフ同型の制約を全て満たすようなxivの値の割り当てにおいて、また、その時に限り、H´=H=H=0、H´=βm/4となる。したがって、GとGが誘導部分グラフ同型であるならば、H´の下限値(基底状態)は、βm/4である。つまり、H´を目的関数とするQUBOを解くことによって、H´=βm/4となるベクトルxを得られた場合には、同型であり、そうでない場合には、同型でない、として誘導部分グラフ同型判定問題を解くことができる。
【0052】
そして、問題変換部12は、変換後の問題種別がQUBOであるか否かを判定する(ステップS13)。問題変換部12は、変換後の問題種別がQUBOであると判定した場合(ステップS13:Yes)、QUBOの目的関数としてH´を出力する。
【0053】
一方、問題変換部12は、変換後の問題種別がQUBOではなくイジング問題であると判定した場合(ステップS13:No)、QUBOの目的関数を変数変換し、イジングハミルトニアンを作成し(ステップS14)、イジングハミルトニアンを出力する。
【0054】
ステップS14の処理について説明する。問題変換部12は、H´を(16)式のように変換する。
【0055】
【数16】
【0056】
問題変換部12は、H´に含まれるすべての変数xに対して、(16)式の右辺を代入して、変数xを変数sの式として変換した式をイジングハミルトニアンとする。そして、問題変換部12は、変換後の問題種別がイジング問題である場合、このイジングハミルトニアンを出力する。
【0057】
判定部13は、問題変換部12から出力されたQUBOの目的関数H´またはイジングハミルトニアンを基に、二つのグラフの一方のグラフが他方の誘導部分グラフとして含まれるか否かを判定する。
【0058】
図4は、図1に示す判定部13による判定処理の処理手順を示すフローチャートである。まず、判定部13は、変換後の問題種別がQUBOであるかを判定する(ステップS21)。
【0059】
判定部13が、変換後の問題種別がQUBOであると判定した場合について説明する(ステップS21:Yes)。この場合、判定部13は、問題変換部12からQUBOの目的関数H´が入力されるため、H´を目的関数とするQUBOを解く(ステップS22)。そして、判定部13は、QUBOの目的関数が下限値を取る解が存在するか否かを判定する(ステップS23)。
【0060】
判定部13は、QUBOの目的関数が下限値を取る解が存在すると判定した場合には(ステップS23:Yes)、GがGの誘導部分グラフとして含まれると判定する(ステップS24)。言い換えると、判定部13は、二つのグラフの一方のグラフが他方の誘導部分グラフとして含まれると判定する。
【0061】
これに対し、判定部13は、QUBOの目的関数が下限値を取る解が存在しないと判定した場合には(ステップS23:No)、GがGの誘導部分グラフとして含まれないと判定する(ステップS25)。言い換えると、判定部13は、二つのグラフの一方のグラフが他方の誘導部分グラフとして含まれないと判定する。
【0062】
また、判定部13が、変換後の問題種別がイジング問題であると判定した場合について説明する(ステップS21:No)。この場合、判定部13は、問題変換部12からイジングハミルトニアンが入力されるため、イジング問題を解く(ステップS26)。そして、判定部13は、イジングハミルトニアンが下限値を取る解が存在するか否かを判定する(ステップS27)。
【0063】
判定部13は、イジングハミルトニアンが下限値を取る解が存在すると判定した場合には(ステップS27:Yes)、GがGの誘導部分グラフとして含まれると判定する(ステップS28)。言い換えると、判定部13は、二つのグラフの一方のグラフが他方の誘導部分グラフとして含まれると判定する。これに対し、判定部13は、イジングハミルトニアンが下限値を取る解が存在しないと判定した場合には(ステップS27:No)、GがGの誘導部分グラフとして含まれないと判定する(ステップS29)。言い換えると、判定部13は、二つのグラフの一方のグラフが他方の誘導部分グラフとして含まれないと判定する。
【0064】
[実施の形態1の効果]
このような処理を行うことによって、実施の形態1では、二つのグラフから構成される誘導部分グラフ同型判定問題を解くためのQUBOの目的関数を作成する。また、このような処理を行うことによって、実施の形態1では、二つのグラフから構成される誘導部分グラフ同型判定問題を解く場合に用いるイジングハミルトニアンを作成する。実施の形態1では、これらに基づくQUBOまたはイジング問題を解くことによって、二つのグラフが与えられたとき、一方が他方の誘導部分グラフとして含まれるか否かを判定することができる。
【0065】
また、本実施の形態1では、部分グラフ同型判定問題をQUBOの目的関数またはイジングハミルトニアンに変換することによって、量子アニーリングマシンまたはイジングマシンを用いて、誘導部分グラフ同型判定問題を高速に解くことが可能となる。
【0066】
この実施の形態1に示す誘導部分グラフ同型判定問題の解法は、大きなグラフ構造を持つ回路からの与えられた不正回路の検出、化学構造式で示される化学物質中に特定の化学結合が存在するか否かの判定、シーン解析といったパターン認識等に応用が可能である。
【0067】
[実施の形態2]
次に、実施の形態2について説明する。実施の形態2では、部分グラフ同型判定問題を処理する処理装置について説明する。図5は、実施の形態2に係る処理装置の概略構成を示す図である。図5に示す処理装置20は、二つのグラフが与えられたとき、一方が他方の部分グラフとして含まれるか否かを判定する部分グラフ同型判定問題を解くための処理装置である。処理装置20は、グラフ入力部11、問題変換部22及び判定部23を有する。なお、処理装置20は、例えば、ROM、RAM、CPU等を含むコンピュータ等に所定のプログラムが読み込まれて、CPUが所定のプログラムを実行することで実現される。
【0068】
問題変換部22は、二つのグラフに基づいて、二つのグラフから構成される部分グラフ同型判定問題を解くためのQUBOの目的関数を作成する。または、問題変換部22は、二つのグラフから構成される部分グラフ同型判定問題を解く場合に用いるイジングハミルトニアンを作成する。例えば、問題変換部22は、二つのグラフに基づいて作成したQUBOの目的関数を変数変換し、イジングハミルトニアンを作成する。問題変換部22は、入力されたグラフG,Gとを、QUBO、または、イジングハミルトニアンに変換して出力する。
【0069】
問題変換部22は、図3に示す処理手順にしたがって、部分グラフ同型判定問題への変換を行なう。ここで、問題変換部22は、問題変換部12と異なり、QUBOにおける目的関数を、(17)式のように定義する。
【0070】
【数17】
【0071】
制約項H´,H´,Hの定義は、実施の形態1における誘導部分グラフ同型判定問題と同一である。
【0072】
グラフ同型問題及び誘導部分グラフ同型判定問題では、制約項Hによって、Gで接続していない頂点がGで接続することを禁止していた。これに対し、部分グラフ同型問題においては、Gで接続していない頂点がGで接続されていても同型と定義する。このため、処理装置20は、制約項Hを除外することによって、部分グラフ同型判定問題
を解くことができる。
【0073】
判定部23は、問題変換部22から出力されたQUBOの目的関数H″またはイジングハミルトニアンを基に、二つのグラフの一方のグラフが他方の部分グラフとして含まれるか否かを判定する。
【0074】
部分グラフ同型の制約を全て満たすようなxivの値の割り当てにおいて、また、その時に限り、H´=H=0、H´=m/4となる。したがって、GとGが部分グラフ同型であるならば、H″の下限値(基底状態)は、βm/4である。つまり、H″を目的関数とするQUBOを解くことによって、H″=βm/4となるベクトルxを得られた場合には、同型であり、そうでない場合には、同型でない、として部分グラフ同型判定問題を解くことができる。さらに、判定部23は、(1)式にQを代入した最小化問題を解く。その結果、xQx=βm/4となったならば、同型、そうでなければ同型でないと判定する。
【0075】
図6は、図5に示す判定部23による判定処理の処理手順を示すフローチャートである。図6に示すステップS31は、図4に示すステップS21と同じ処理である。
【0076】
判定部23が、変換後の問題種別がQUBOであると判定した場合について説明する(ステップS31:Yes)。この場合、判定部23は、問題変換部22からQUBOの目的関数H″が入力されると、H″を目的関数とするQUBOを解く(ステップS32)。図6に示すステップS33は、図4に示すステップS23と同じ処理である。
【0077】
判定部23は、QUBOの目的関数が下限値を取る解が存在すると判定した場合には(ステップS33:Yes)、GがGの部分グラフとして含まれると判定する(ステップS34)。言い換えると、判定部23は、二つのグラフの一方のグラフが他方の部分グラフとして含まれると判定する。
【0078】
これに対し、判定部23は、QUBOの目的関数が下限値を取る解が存在しないと判定した場合には(ステップS33:No)、GがGの部分グラフとして含まれないと判定する(ステップS35)。言い換えると、判定部23は、二つのグラフの一方のグラフが他方の部分グラフとして含まれないと判定する。
【0079】
また、判定部23が、変換後の問題種別がイジング問題であると判定した場合について説明する(ステップS31:No)。図6に示すステップS36,S37は、図4に示すステップS26,S27である。
【0080】
判定部23は、イジングハミルトニアンが下限値を取る解が存在すると判定した場合には(ステップS37:Yes)、GがGの部分グラフとして含まれると判定する(ステップS38)。言い換えると、判定部33は、二つのグラフの一方のグラフが他方の部分グラフとして含まれると判定する。これに対し、判定部23は、イジングハミルトニアンが下限値を取る解が存在しないと判定した場合には(ステップS37:No)、GがGの部分グラフとして含まれないと判定する(ステップS39)。言い換えると、判定部23は、二つのグラフの一方のグラフが他方の部分グラフとして含まれないと判定する。
【0081】
[実施の形態2の効果]
このような処理を行うことによって、実施の形態2では、二つのグラフから構成される部分グラフ同型判定問題を解くためのQUBOの目的関数を作成する。また、このような処理を行うことによって、実施の形態2では、二つのグラフから構成される部分グラフ同型判定問題を解く場合に、QUBOの目的関数を変数変換しイジングハミルトニアンを作成する。実施の形態2では、このQUBOの目的関数またはイジングハミルトニアンを解くことによって、二つのグラフが与えられたとき、一方が他方の部分グラフとして含まれるか否かを判定することができ、実施の形態1と同様の効果を奏する。
【0082】
[実施例1]
次に、実施の形態1を適用した実施例1について説明する。実施例1では、処理装置10が、実際に与えられたグラフG,GからQUBOを生成する流れについて説明する。図7及び図8は、処理対象のグラフの一例を示す図である。例えば、グラフGとして、図7に示すグラフを考える。また、グラフGとして、図8に示すグラフを考える。
【0083】
このとき、G,Gから得られる各制約は、xi,u =xi,uであることに気をつけると、以下の(18)式及び(19)式となる。
【0084】
【数18】
【0085】
【数19】
【0086】
については、Gがエッジを持たない頂点に対して、Gがエッジを持つ頂点となるような変換を考えるため、特に数式の展開は行わない。Hについても同様とする。
【0087】
QUBOに変換するため、xi,vに関する二次多項式を(1)式の形で表現する係数行列Qを考える。i∈[1,4],v∈[1,9]より、変数xi,vは、4×9=36個ある。したがって、Qは、36×36行列となる。紙面の都合上、(20)式のようにブロック化を行う。
【0088】
【数20】
【0089】
各ブロックQijは、要素quv ij∈Rを用いて、(21)式のように定義される。
【0090】
【数21】
【0091】
さらに、二値ベクトルx∈{0,1}36を、(22)式のように決める。
【0092】
【数22】
【0093】
このとき、QUBOの目的関数は、(23)式のように書ける。
【0094】
【数23】
【0095】
(23)式に示すxQxと、H´とが等価な式となるように、quv ijの値を定める。まず、定義より、Qは、上三角行列としてもよいため、(24)式と置くことができる。
【0096】
【数24】
【0097】
´より、(25)式と置くことができる。
【0098】
【数25】
【0099】
´とHより、(26)式と置くことができる。
【0100】
【数26】
【0101】
´とHより、(27)式と置くことができる。
【0102】
【数27】
【0103】
以上より、H´からQを得ることができたため、Qを問題変換部12の出力とする。
【0104】
さらに、判定部13では、(1)式にQを代入した最小化問題を解く。その結果、xQx=βm/4となったならば、同型、そうでなければ同型でないと判定する。
【0105】
[実施例2]
次に、実施の形態2を適用した実施例2について説明する。実施例2では、処理装置20が、実際に与えられたグラフG,GからQUBOを生成する流れについて説明する。図9及び図10は、処理対象のグラフの一例を示す図である。例えば、グラフGとして、図9に示すグラフを考える。また、グラフGとして、図10に示すグラフを考える。
【0106】
実施例1と同様に定義した行列Q∈R36×36と、ベクトルx∈{0,1}36について、xQx=H″となるように、要素quv ijの値を考える。
【0107】
まず、定義より、Qは、上三角行列としてもよいため、(28)式と置くことができる。
【0108】
【数28】
【0109】
´より、(29)式と置くことができる。
【0110】
【数29】
【0111】
´とHより、(30)式と置くことができる。
【0112】
【数30】
【0113】
´より、(31)式と置くことができる。
【0114】
【数31】
【0115】
以上より、H″からQを得ることができたため、Qを問題変換部22の出力とする。さらに、判定部23では、(1)式にQを代入した最小化問題を解いて、判定処理を行う。
【0116】
[実施の形態3]
次に、実施の形態3について説明する。実施の形態1では、誘導部分グラフ同型判定問題を量子アニーリングマシンやイジングマシンを用いて解を得るための目的関数への変換を行ない、二つのグラフが厳密に同型であるか否かを判定した。ここで、実際には、同型ではないが類似するグラフを発見したい場合がある。例えば、一方のグラフと比較して他方のグラフに、エッジに過不足がある場合などを発見したい場合である。そこで、実施の形態3では、同形ではない二つのグラフの類似度を測定し、類似度に基づく判定処理を行う処理装置について説明する。本実施の形態3では、類似するグラフは、頂点数が同じであり、エッジの数が異なる二つのグラフと定義する。エッジ数の差が少ない程類似度は高いと表現する。
【0117】
図11は、実施の形態3に係る処理装置の概略構成を示す図である。図11に示す処理装置30は、二つのグラフの類似性を測定する処理装置である。処理装置30は、二つのグラフが与えられたとき、二つのグラフの類似度を計算する。処理装置30は、二つのグラフの類似度を基に、一方のグラフと類似するグラフが、他方の誘導部分グラフとして含まれるか否かを判定する。処理装置30は、図1に示す処理装置10と比して、問題変換部12及び判定部13に代えて、問題変換部32及び判定部33を有する。なお、処理装置30は、例えば、ROM、RAM、CPU等を含むコンピュータ等に所定のプログラムが読み込まれて、CPUが所定のプログラムを実行することで実現される。
【0118】
問題変換部32は、二つのグラフの類似度を計算するためのQUBOの目的関数を作成する。または、問題変換部32は、二つのグラフの類似度を計算するために用いるイジングハミルトニアンを作成する。例えば、問題変換部32は、二つのグラフに基づいて作成したQUBOの目的関数を変数変換し、イジングハミルトニアンを作成する。問題変換部32は、入力されたグラフG,Gとを、QUBO、または、イジングハミルトニアンに変換して出力する。
【0119】
問題変換部22は、図3に示す処理手順にしたがって問題変換を行なう。ここで、問題変換部32は、QUBOにおける目的関数H´を実施の形態1と同じ(14)式のように定義する。そして、問題変換部32は、H´,H´,H,Hのハイパーパラメータα,β,γ,δ∈Rを以下の(32)式のように設定する。
【0120】
【数32】
【0121】
(32)式に示すように、問題変換部32は、ハイパーパラメータα,βをγ,δのK倍に設定する。Kは、大きい正の実数であり、Pは、ペナルティ係数である。Pとして、通常は正の整数が設定される。このように、処理装置30が使用する目的関数H´は、第1の関数の重みが、目的関数H´の第2の関数の重みよりも大きく設定される。なお、目的関数H´の第1の関数の重みは、目的関数H´の第2の関数の重みより優位に大きければよい。
【0122】
判定部33は、問題変換部22から出力されたQUBOの目的関数H´またはイジングハミルトニアンを基に、二つのグラフの類似度を計算する。判定部23は、目的関数H´またはイジングハミルトニアンの値(解)を、二つのグラフに対する類似度の指標として用い、二つのグラフが類似するか否かを判定する。具体的には、判定部33は、量子アニーリングやイジングマシンを用いてエネルギーを最小化することで解を得る。そして、判定部33は、得られたエネルギーさの大きさで類似度を表現する。得られたエネルギーが小さいほど、類似度は高い。
【0123】
したがって、判定部33は、目的関数の値に下限値を取る解がなかったとしても、求めた目的関数の値から類似性を判定する。判定部33は、目的関数の解が小さいほど類似度が大きくなるような関数を使って、求めた解から類似度を算出する。判定部33は、目的関数の解に対応する目的関数の値が小さいほど類似度が高くなるように、二つのグラフの類似度を計算する。さらに、判定部33は、その結果から、二つのグラフがどの程度類似するかに対する判定を行ってもよい。
【0124】
例えば、判定部33は、類似度として計算した目的関数の解(基底状態)が、βm/4+Pi(i∈{0,1,2,3,・・・})である場合、二つのグラフは頂点制約項を満足し、一方のグラフは、他方のグラフに対しi本の余分なエッジまたは不足したエッジを持つグラフ、すなわち、他方のグラフに類似するグラフを誘導部分グラフとして含むと判定する。判定部33は、目的関数の解(基底状態)が、βm/4+Pi(i∈{0,1,2,3,・・・})である場合、二つのグラフは、類似すると判定する。
【0125】
これに対し、判定部33は、目的関数の解(基底状態)が、βm/4+Piでない場合には、二つのグラフは頂点制約項を満足しないため、類似しないと判定する。すなわち、判定部33は、一方のグラフは、他方のグラフに類似するグラフを誘導部分グラフとして含まず、類似しないと判定する。なお、判定部33は、類似判定まで行わず、類似度を出力するだけでもよい。
【0126】
図12は、図11に示す判定部33による判定処理の処理手順を示すフローチャートである。図12に示すステップS41、ステップS42、ステップS46は、図4に示すステップS21、ステップS22、ステップS26と同じ処理である。
【0127】
変換後の問題種別がQUBOである場合、判定部33は、目的関数の解(基底状態)がβm/4+Piの形で表現可能であるか否かを判定する(ステップS43)。目的関数の解がβm/4+Piの形で表現可能である場合(ステップS43:Yes)、グラフGに類似するグラフが、グラフGの誘導部分グラフとして含まれると判定する(ステップS44)。これに対し、判定部33は、目的関数の解がβm/4+Piの形で表現可能でない場合(ステップS43:No)、判定部33は、グラフGとグラフGとは類似しないと判定する(ステップS45)。
【0128】
変換後の問題種別がイジング問題である場合、判定部33は、目的関数の解(基底状態)がβm/4+Piの形で表現可能であるか否かを判定する(ステップS47)。目的関数の解がβm/4+Piの形で表現可能である場合(ステップS47:Yes)、グラフGに類似するグラフが、グラフGの誘導部分グラフとして含まれると判定する(ステップS48)。これに対し、判定部33は、目的関数の解がβm/4+Piの形で表現可能でない場合(ステップS47:No)、判定部33は、グラフGとグラフGとは類似しないと判定する(ステップS49)。
【0129】
[実施の形態3の効果]
´とH´とは、グラフGとグラフGとの頂点数が一致していることを表現し、HとHとは、グラフGとグラフGとは頂点接続関係が一致していることを表現する。すなわち、HはグラフグラフGで接続していない頂点が、グラフGで接続することを禁止する制約である。HはグラフGで接続していない頂点が、グラフGで接続することを禁止する制約である。
【0130】
実施の形態3では、制約項H´および制約項H´の重みを制約項Hおよび制約項Hの重みよりも優位に大きくすることで、頂点数の制約を強くし、頂点接続関係の制約を相対的に緩めることができる。そして、実施の形態3では、量子アニーリングマシンやイジングマシンを用いて得られた目的関数H´の値を、同形ではない問題の判断と同形ではない二つのグラフの類似度として用いる。これによって、実施の形態3では、二つのグラフは同形ではない問題と同形ではない二つのグラフの類似度を測定することが可能となる。
【0131】
[実施例3]
次に、実施の形態3を適用した実施例3について説明する。図13及び図14は、処理対象のグラフの一例を示す図である。図15は、図13に示すグラフに類似するグラフの一例を示す図である。例えば、グラフGとして、図13に示すグラフを考える。また、グラフGとして、図14に示すグラフを考える。
【0132】
実施例3では、K=10,P=12とし,α,β,γ,δは(32)式に従うとして、H´=αH´+βH´+γH+δHを目的関数とする。そして、処理装置30は、量子アニーリングやイジングマシンを用いて、H´を最小化する。このとき得られる基底状態の値は、H´=282である。この値はβm/4+Pi(ただしi=1)に等しい。
【0133】
この場合、i=1であるため、グラフGとGは同型でない。しかし、エッジが1本多い、または少ない類似部分が存在することが分かる。具体的な例としては、グラフGの頂点1,4(グラフGの頂点8,5)を接続する辺が1本少ない部分グラフ(図15に示すグラフ)がグラフGに含まれるので、確かに類似部分が存在する。
【0134】
[実施例4]
そして、実施の形態3を適用した実施例4について説明する。図16及び図17は、処理対象のグラフの一例を示す図である。図18は、図16に示すグラフに類似するグラフの一例を示す図である。例えば、グラフGとして、図16に示すグラフを考える。また、グラフGとして、図17に示すグラフを考える。
【0135】
実施例4では、K=10,P=12とし,α,β,γ,δは(32)式に従うとして、H´=αH´+βH´+γH+δHを目的関数とする。そして、処理装置30は、量子アニーリングやイジングマシンを用いて、H´を最小化する。このとき得られる基底状態の値は、H´=282である。この値はβm/4+Pi(ただしi=1)に等しい。
【0136】
この場合、i=1であるため、グラフGとGは同型でない。しかし、エッジが1本多い、または少ない類似部分が存在することが分かる。具体的な例としては、グラフGの頂点2,4(グラフGの頂点4,5)を接続する辺が1本多い部分グラフ(図18に示すグラフ)がグラフGに含まれるので、確かに類似部分が存在する。
【0137】
なお、処理装置30は、二つのグラフが与えられたとき、一方のグラフと類似するグラフが、他方の部分グラフとして含まれるか否かを判定する場合には、QUBOにおける目的関数として、(17)式に示すH″を求める。この際、H´,H´,Hのハイパーパラメータα,β,δのうち、α,βを、δのK倍に設定し、制約項H´,H´をHのK倍に設定すればよい。そして、処理装置30は、量子アニーリングマシンやイジングマシンを用いて得られた目的関数H″の値を、二つのグラフの類似度として用いる。
【0138】
[システム構成等]
図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部又は一部を、各種の負荷や使用状況等に応じて、任意の単位で機能的又は物理的に分散・統合して構成することができる。さらに、各装置にて行なわれる各処理機能は、その全部又は任意の一部が、CPU及び当該CPUにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
【0139】
また、本実施形態において説明した各処理のうち、自動的に行われるものとして説明した処理の全部又は一部を手動的に行なうこともでき、あるいは、手動的に行なわれるものとして説明した処理の全部又は一部を公知の方法で自動的に行なうこともできる。この他、上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
【0140】
[プログラム]
図19は、プログラムが実行されることにより、処理装置10,20,30が実現されるコンピュータの一例を示す図である。コンピュータ1000は、例えば、メモリ1010、CPU1020を有する。また、コンピュータ1000は、ハードディスクドライブインタフェース1030、ディスクドライブインタフェース1040、シリアルポートインタフェース1050、ビデオアダプタ1060、ネットワークインタフェース1070を有する。これらの各部は、バス1080によって接続される。
【0141】
メモリ1010は、ROM1011及びRAM1012を含む。ROM1011は、例えば、BIOS(Basic Input Output System)等のブートプログラムを記憶する。ハードディスクドライブインタフェース1030は、ハードディスクドライブ1090に接続される。ディスクドライブインタフェース1040は、ディスクドライブ1100に接続される。例えば磁気ディスクや光ディスク等の着脱可能な記憶媒体が、ディスクドライブ1100に挿入される。シリアルポートインタフェース1050は、例えばマウス1110、キーボード1120に接続される。ビデオアダプタ1060は、例えばディスプレイ1130に接続される。
【0142】
ハードディスクドライブ1090は、例えば、OS(Operating System)1091、アプリケーションプログラム1092、プログラムモジュール1093、プログラムデータ1094を記憶する。すなわち、処理装置10,20,30の各処理を規定するプログラムは、コンピュータにより実行可能なコードが記述されたプログラムモジュール1093として実装される。プログラムモジュール1093は、例えばハードディスクドライブ1090に記憶される。例えば、処理装置10,20,30における機能構成と同様の処理を実行するためのプログラムモジュール1093が、ハードディスクドライブ1090に記憶される。なお、ハードディスクドライブ1090は、SSD(Solid State Drive)により代替されてもよい。
【0143】
また、上述した実施形態の処理で用いられる設定データは、プログラムデータ1094として、例えばメモリ1010やハードディスクドライブ1090に記憶される。そして、CPU1020が、メモリ1010やハードディスクドライブ1090に記憶されたプログラムモジュール1093やプログラムデータ1094を必要に応じてRAM1012に読み出して実行する。
【0144】
なお、プログラムモジュール1093やプログラムデータ1094は、ハードディスクドライブ1090に記憶される場合に限らず、例えば着脱可能な記憶媒体に記憶され、ディスクドライブ1100等を介してCPU1020によって読み出されてもよい。あるいは、プログラムモジュール1093及びプログラムデータ1094は、ネットワーク(LAN、WAN(Wide Area Network)等)を介して接続された他のコンピュータに記憶されてもよい。そして、プログラムモジュール1093及びプログラムデータ1094は、他のコンピュータから、ネットワークインタフェース1070を介してCPU1020によって読み出されてもよい。
【0145】
以上、本発明者によってなされた発明を適用した実施形態について説明したが、本実施形態による本発明の開示の一部をなす記述及び図面により本発明は限定されることはない。すなわち、本実施形態に基づいて当業者等によりなされる他の実施形態、実施例及び運用技術等は全て本発明の範疇に含まれる。
【符号の説明】
【0146】
10,20,30 処理装置
11 グラフ入力部
12,22,32 問題変換部
13,23,33 判定部
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18
図19