JP7093972B2 - 近似zdd構築方法、近似zdd構築装置及びプログラム - Google Patents

近似zdd構築方法、近似zdd構築装置及びプログラム Download PDF

Info

Publication number
JP7093972B2
JP7093972B2 JP2019106036A JP2019106036A JP7093972B2 JP 7093972 B2 JP7093972 B2 JP 7093972B2 JP 2019106036 A JP2019106036 A JP 2019106036A JP 2019106036 A JP2019106036 A JP 2019106036A JP 7093972 B2 JP7093972 B2 JP 7093972B2
Authority
JP
Japan
Prior art keywords
node
zdd
nodes
pair
approximate
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.)
Active
Application number
JP2019106036A
Other languages
English (en)
Other versions
JP2020201556A (ja
Inventor
健吾 中村
正彬 西野
宜仁 安田
康太郎 松田
周平 伝住
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nippon Telegraph and Telephone Corp
University of Tokyo NUC
Original Assignee
Nippon Telegraph and Telephone Corp
University of Tokyo NUC
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Nippon Telegraph and Telephone Corp, University of Tokyo NUC filed Critical Nippon Telegraph and Telephone Corp
Priority to JP2019106036A priority Critical patent/JP7093972B2/ja
Publication of JP2020201556A publication Critical patent/JP2020201556A/ja
Application granted granted Critical
Publication of JP7093972B2 publication Critical patent/JP7093972B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本発明は、近似ZDD構築方法、近似ZDD構築装置及びプログラムに関する。
組合せ集合とは、或るアイテムの集合に対して、そのアイテムの組合せからなる集合のことである。この組合せ集合の中身の組合せ数(つまり、組合せ集合の各要素が表す組合せの種類数)は、一般に、もとのアイテム数と比べて多くなってしまう場合が多く、組合せ集合の中身の全てを明示的に持つことが難しくなることが多い。そこで、組合せ集合をコンパクトに表現して、なおかつその組合せ集合に対する問い合わせ(この問い合わせは「クエリ」とも称される。)や、他の組合せ集合との合併等の演算を効率的に行うことができるような表現形が提案されている。このような表現形は、例えば、購買データの頻出パターンマイニングや文書要約、通信ネットワークに関する解析、数理最適化等の分野で広く用いられる。
上記の表現形は決定グラフとも呼ばれ、その1つとして、二分決定グラフ(BDD:Binary Decision Diagram)が知られている(例えば、非特許文献1参照)。BDDは組合せ集合を圧縮して表現し、様々なクエリに答えられるため、多く用いられている。また、BDDの1種として、ゼロサプレス型二分決定グラフ(ZDD:Zero-suppressed Binary Decision Diagram)が知られている(例えば、非特許文献2参照)。ZDDは、特に、現実によく現れる疎な組合せ集合をよく圧縮して表現できるため、実際に多く用いられている。なお、疎な組合せ集合とは、組合せ集合の中身(各要素)が表す組合せを構成するアイテムの個数が少ないものが多い組合せ集合や、組合せ集合の中身の個数が全組合せ数に対して大幅に少ないが、もとのアイテム数と比べると大幅に多いような組合せ集合等のことである。
ここで、BDDやZDD等の決定グラフを用いて問題を解くアプローチの効率性は、組合せ集合を表現する決定グラフのサイズ(つまり、決定グラフのノード数)に依存することが知られている。しかしながら、決定グラフは組合せ集合をコンパクトに表現することができるものの、一般に決定グラフのサイズがどの程度になるかは分からず、大きな問題に対しては決定グラフのサイズが大きくなり過ぎることがしばしば起こる。そこで、決定グラフが表現する組合せ集合とよく似た組合せ集合を表現する、より小さな決定グラフを構築する技術(つまり、もとの決定グラフをより小さな決定グラフで近似する技術)が従来から提案されている。例えば、非特許文献3や非特許文献4では、BDDに対してノードの併合や消去等の操作を行って、もとの組み合わせ集合と似た組合せ集合を表現する、より小さなBDDを構築する技術が提案されている、また、例えば、非特許文献5や非特許文献6では、表現したい組合せ集合に関する情報から直接、その組合せ集合に似た組合せ集合を表現する小さなBDDを構築する技術が提案されている。
上記の近似を行った結果、元々の組合せ集合には入っていなかった組合せが、近似後の組合せ集合に入ってしまう場合は偽陽性のエラーと呼ばれる。一方で、元々の組合せ集合には入っていた組合せが、近似後の組合せ集合に入っていない場合は偽陰性のエラーと呼ばれる。偽陽性のエラーと偽陰性のエラーとの両方が近似後の組合せ集合で発生すると応用範囲が大幅に制限されてしまうため、実用上は偽陽性か偽陰性のどちらかのエラーのみを許容するように近似することが重要である。非特許文献3~6で提案されている技術はいずれも偽陽性か偽陰性のどちらかのエラーのみを許容している。なお、偽陰性のエラーのみを許容する近似手法の逆の手順を行うことで偽陽性のエラーのみを許容する近似手法を実現することが可能であるため、非特許文献3~6で提案されている技術はいずれも偽陽性のエラーのみを許容する技術と見做すことができる。
Randal E. Bryant. Graph-based algorithms for Boolean function manipulation. IEEE Transactions on Computers, Vol. C-35, pp. 677-691, 1986. Shin-ichi Minato. Zero-suppressed BDDs for set manipulation in combinatorial problems. In Proceedings of the 30th ACM/IEEE Design Automation Conference (DAC 1993), pp. 272-277, 1993. Kavita Ravi and Fabio Somenzi. High-density reachability analysis. In Proceedings of the 1995 IEEE/ACM International Conference on Computer-Aided Design (ICCAD 1995), pp. 154-158, 1995. Kavita Ravi, Kenneth L. McMillan, Thomas R. Shiple, and Fabio Somenzi. Approximation and decomposition of binary decision diagrams. In Proceedings of the 35th ACM/IEEE Design Automation Conference (DAC 1998), pp. 445-450, 1998. Tarik Hadzic, John N. Hooker, Barry O'Sullivan, and Peter Tiedemann. Approximate compilation of constraints into multivalued decision diagrams. In Proceedings of the 14th International Conference on Principles and Practice of Constraint Programming (CP 2008), pp. 448-462, 2008. David Bergman, Willem-Jan van Hoeve, and John N. Hooker. Manipulating MDD relaxations for combinatorial optimization. In Proceedings of the 8th International Conference on Integration of AI and OR Techniques in Constraint Programming for Combinatorial Optimization Problems (CPAIOR 2011), pp. 20-35, 2011.
しかしながら、上記の非特許文献3や非特許文献4で提案されている技術をZDDに適用しようとした場合、次のような問題があった。すなわち、非特許文献3や非特許文献4では、BDDのノードを消して、代わりに全ての組合せを含む集合(べき集合)を表すノードに付け替える、という操作が行われるが、現実に現れる疎な組合せ集合の中身は全ての組合せよりも大幅に少ない数である場合が多い。このため、非特許文献3や非特許文献4で提案されている技術をZDDに適用しようとした場合、偽陽性のエラーが多く発生し過ぎてしまうことが多い。
また、非特許文献4ではRemapと呼ばれる操作が行われているが、この操作はノードが表す組合せ集合間の包含関係に基づいたものであり、BDDのノード数は減らすことができるものの、この操作をZDDに適用しても、ZDDのノード数は減らすことができない。
なお、非特許文献5や非特許文献6で提案されている技術は、基本的に最適化問題を解くための近似決定グラフを作成することに特化している。このため、最適化問題以外に適用する場合には対象とする組合せ集合に応じて注意深く手法を設計し直す必要がある。
本発明は、上記の点に鑑みてなされたもので、偽陽性のエラーのみを許容し、かつ、その発生数の少ない近似ZDDを構築することを目的とする。
上記目的を達成するため、本発明の実施の形態における近似ZDD構築方法は、ゼロサプレス型二分決定グラフを入力として、前記ゼロサプレス型二分決定グラフにおける同一ラベルのノードが表す組合せ集合間の包含関係に基づいて、マージ可能なノードのペアを探索する探索手順と、マージ可能なノードのペアのマージ操作によって発生する偽陽性のエラー数と前記マージ操作によって削減されるノード数とを組み合わせた所定の指標値を用いて、前記探索手順で探索されたペアの中からマージ対象のペアを選択する選択手順と、前記選択手順で選択されたペアにマージ操作を行って、前記ペアに含まれる第1のノードを第2のノードにマージする操作手順と、をコンピュータが実行することを特徴とする。
偽陽性のエラーのみを許容し、かつ、その発生数の少ない近似ZDDを構築することができる。
ZDDの一例を説明するための図である。 包含関係及びマージ可能なノードのペアの一例を説明するための図である。 本発明の実施の形態における近似ZDD構築装置の機能構成の一例を示す図である。 近似ZDD構築処理の一例を示すフローチャートである。 マージ可能なノードの全てのペアのリストを算出する処理の一例を示すフローチャートである。 ノードのペアがマージ可能か否かを判定する場合の一例を説明するための図である。 ZDDの各ノードのモデルカウントを算出する処理の一例を示すフローチャートである。 ZDDの各ノードにおける先頭ノードからのパスの個数を算出する処理の一例を示すフローチャートである。 Dominator Treeの一例を説明するための図である。 マージ可能な条件の一例を説明するための図である。 ZDDが単調減少な組み合わせ集合を表現する場合に、マージ可能なノードの一部のペアのリストを算出する処理の一例を示すフローチャートである。 ケース1又はケース2に該当するsup(u)の候補を探索する処理の一例を示すフローチャートである。 ケース3に該当とするsup(u)の候補を探索する処理の一例を示すフローチャートである。 本発明の実施の形態における近似ZDD構築装置のハードウェア構成の一例を示す図である。
以下、本発明の実施の形態(以降、「本実施形態」とも表す。)について説明する。本実施形態では、偽陽性のエラーのみを許容し、かつ、その発生数の少ない近似ZDDを構築する場合について説明する。近似ZDDとは、与えられたZDDが表現する組合せ集合に近似する組合せ集合(つまり、与えられたZDDが表現する組合せ集合と似た組合せ集合)を表現し、かつ、与えられたZDDよりもサイズの小さいZDDのことである。なお、ZDDのサイズとは、後述するように、ZDDのノードの個数のことである。
<ZDDの説明>
まず、ZDDについて説明する。本実施形態では、便宜のため、ZDDで表現したい組合せ集合のもととなるアイテムの集合中の各アイテムに、1からcまでの番号を付与するものとする。例えば、アイテムの集合Aとすれば、A={a,a,・・・,a}と表されるものとする。組合せ集合の中身(つまり、組合せ集合の各要素)は、アイテムの集合中の各アイテムの組合せで表される。具体的には、組合せ集合の或る1つの要素は、{a,a}や{a,a,a}、{a,a}等とアイテムの集合中の各アイテムの組合せで表される。なお、組合せには、「アイテム無し」を意味する組合せとして、φも含まれる。
ZDDは、組合せ集合を、ノードと向きのあるエッジとの集まりでできたループのないグラフ(有向非巡回グラフ(DAG:Directed Acyclic Graph))で表現するデータ構造である。ZDDは、
Figure 0007093972000001
(以降、「第1終端ノード」とも表す。)及び終端ノード⊥(以降、「第2終端ノード」とも表す。)と、分岐ノードとの2種類のノードを持ち、各終端ノードから出るエッジは無く、各分岐ノードからは「0-枝」と「1-枝」と呼ばれる2つのエッジが出る。本実施形態では、分岐ノードvに対して、このノードから出る0-枝が指す先のノードを「0-子ノード」と呼び、vで表す。また、同様に、分岐ノードvに対して、このノードから出る1-枝が指す先のノードを「1-子ノード」と呼び、vで表す。
また、各分岐ノードvには、ラベルと呼ばれる整数値l(v)∈{1,・・・,c}が付与されており、このラベルによってアイテムの番号と対応付けられている。なお、終端ノードについては、例えば、ラベルの値をc+1等としておく。
このとき、ZDDは、各分岐ノードの0-枝と1-枝が、必ずラベルが小さい方のノードから大きい方のノードに向かうようにする。すなわち、任意の分岐ノードvに対して、l(v)<l(v)かつl(v)<l(v)が成立するようにする。また、ZDDのサイズはノードの個数として定義する。
以上の準備により、ZDDの各ノードが表す組合せ集合は、次のように再帰的に定義することができる。なお、ZDDのノードvに対して、vが表す組合せ集合を
Figure 0007093972000002
と表す。
・終端ノードについては、
Figure 0007093972000003
とする。すなわち、第1終端ノードが表す組合せ集合を「「アイテム無し」を意味する組合せφのみを含む集合」、第2終端ノードが表す組合せ集合を「組み合わせを1つも含まない集合」とする。
・分岐ノードvについては、
Figure 0007093972000004
とする。
ここで、i=1,・・・,cに対して、第i層Lを、ラベルiを持つノードの集合として定義する。すると、ZDDは、例えば、図1に示すように、ノードが上から層の順番L,・・・,Lで出現するようなグラフとして描ける。図1に示すZDDでは、各終端ノードが四角形、各分岐ノードとそのラベルが円、各0-枝が破線矢印、各1-枝が実線矢印で描かれている。図1に示すZDDは、組合せ集合{φ,{2},{3},{4},{1,3},{1,4},{2,3},{2,4},{3,4},{1,2,3}}を表現している。これは、ラベル1の分岐ノードが表す組合せ集合と同じである。なお、層は「階層」等と称されてもよい。
図1に示すZDDにおいて、ラベル2の左側の分岐ノードは組合せ集合{{3},{4},{2,3}}を表しており、ラベル2の右側の分岐ノードは組合せ集合{φ,{2},{3},{4},{2,3},{2,4},{3,4}}を表している。他の分岐ノードが表す組合せ集合についても、図1に示す通りである。
なお、コンピュータ等の計算機上では、終端ノードは定数長のデータとしてそのまま表現され、各分岐ノードvは、ラベルl(v)、0-子ノードvへのポインタ及び1-子ノードvへのポインタの3つの組で表現される。
<本実施形態で説明する手法の概略>
本実施形態では、同じ層内の各ノードが表す組合せ集合間の包含関係に着目し、マージ可能なノードのペアを見つけてマージすることでノードの数を減らす手法について説明する。この手法を用いることにより、例えば、組合せ集合をべき集合に置き換えるような操作(例えば非特許文献3に記載されている操作)が発生しないため偽陽性のエラーの発生を少なくすることができる。このため、本実施形態では、偽陽性のエラーのみを許容し、かつ、その発生数が少ない近似ZDDを構築することが可能となる。本実施形態では、与えられたZDDに対して、この手法を実現する処理を実行して近似ZDDを構築するコンピュータを「近似ZDD構築装置10」として、この近似ZDD構築装置10について説明する。以降では、近似ZDD構築装置10に与えられるZDDをG、このGの近似ZDDをG´とも表す。
なお、上記の非特許文献4に記載のRemapと呼ばれる操作もノードが表す組合せ集合間の包含関係に注目しているが、Remapでは、或るノードに対してその0-子ノードと1-子ノードとの間の包含関係にしか着目しておらず、同じ層内の任意のノードのペアに対する包含関係はみていない。
また、本実施形態で説明する手法は、対象とする組合せ集合に囚われないため、汎用的に用いることができる。
<包含関係及びマージ可能なノードのペアの説明>
ここで、上記の「包含関係」や「マージ可能なノードのペア」について説明する。例えば、図2(a)に示すZDDでは、ラベル3を持つ2つのノードのうち、左側のノードは組合せ集合{φ,{3}}を表しており、右側のノードは組合せ集合{{3}}を表している。したがって、これらの組合せ集合の間には、{{3}}⊆{φ,{3}}という包含関係がある。
このとき、右側のノードに入るエッジを、左側のノードに入るように付け替えて、右側のノードを消去すると、図2(b)に示すZDD(近似ZDD)が得られる。これにより、偽陽性のエラーは発生し得るが、偽陰性のエラーは発生しない。
このように、同じラベルが付与されている2つのノードu,vに対して、ノードuに入るエッジをノードvに入るように付け替えて、ノードuを消去する操作のことを「マージ」又は「マージ操作」という。そして、ノードuをノードvにマージする場合、ノードuが表す組合せ集合が、ノードvが表す組合せ集合に包含されているとき、偽陽性のエラーは発生し得るものの、マージを行っても偽陰性のエラーは発生しない。
例えば、図2(b)に示すZDDでは、図2(a)に示すZDDに対して、ラベル1のノードと、ラベル2のノードとで偽陽性のエラーが発生しているものの、偽陰性のエラーは発生していない。具体的には、図2(b)に示すZDDでは、図2(a)に示すZDDに対して、ラベル1のノードが表す組合せ集合に組合せφ及び{1}が、ラベル2のノードが表す組合せ集合に組合せφが追加されており、偽陽性のエラーが発生している。
そこで、本実施形態では、同じラベルが付与されている2つのノードu,v(つまり、同じ層の2つのノードu,v)について、ノードuが表す組合せ集合が、ノードvが表す組合せ集合に包含されている場合に、これら2つノードu,vを「マージ可能なノードのペア」と表す。
<近似ZDD構築装置10の機能構成>
次に、本実施形態に係る近似ZDD構築装置10の機能構成について、図3を参照しながら説明する。図3は、本発明の実施の形態における近似ZDD構築装置10の機能構成の一例を示す図である。
図3に示すように、本実施形態に係る近似ZDD構築装置10は、機能部として、入力部101と、前処理部102と、操作部103と、出力部104とを有する。これら各機能部は、例えば、近似ZDD構築装置10にインストールされた1以上のプログラムが、CPU(Central Processing Unit)等に実行させる処理により実現される。
入力部101は、ZDD Gと所定の閾値θとを入力する。閾値θとは、ZDD G´のサイズを表す閾値である。なお、入力部101の入力元は、任意の入力元としてよい。このような入力元としては、HDD(Hard Disk Drive)やSSD(Solid State Drive)等の補助記憶装置、キーボードやマウス等の入力装置、通信ネットワークを介して接続される他の装置等が挙げられる。
前処理部102は、入力部101により入力されたZDD Gの中から、ノード間の包含関係に基づいてマージ可能なノードのペアを複数探索し、これらのペアをリスト化したリストRを算出する。
操作部103は、前処理部102により算出されたリストRを用いてZDD Gのノードをマージする操作を行って、閾値θ未満のサイズのZDD G´(つまり、近似ZDD)を構築する。なお、例えば、閾値θ未満のサイズのZDD G´を構築することができない場合、操作部103は、可能な限り小さいサイズのZDDを構築してG´とすればよい。
出力部104は、操作部103により構築されたZDD G´を出力する。なお、出力部104の出力先は任意の出力先としてよい。このような出力先としては、例えば、補助記憶装置、ディスプレイ等の表示装置、通信ネットワークを介して接続される他の装置等が挙げられる。
[実施例1]
以降では、実施例1として、前処理部102が、与えられたZDD Gの中から、マージ可能なノードの全てのペアを探索する場合について説明する。
<近似ZDD構築処理>
本実施形態に係る近似ZDD構築装置10が実行する近似ZDD構築処理について、図4を参照しながら説明する。図4は、近似ZDD構築処理の一例を示すフローチャートである。
入力部101は、ZDD Gと所定の閾値θとを入力する(ステップS101)。
次に、前処理部102は、上記のステップS101で入力されたZDD Gの中から、ノード間の包含関係に基づいてマージ可能なノードのペアを全て探索し、探索されたペアをリスト化したリストRを算出する(ステップS102)。なお、リストRは、補助記憶装置やRAM(Random Access Memory)等のメモリに格納される。
ここで、ノードuをノードvにマージ可能であるということを(u,v)∈Rと表すことにすると、その必要十分条件は、
Figure 0007093972000005
となる。また、l(u)=l(v)のとき、
Figure 0007093972000006
は、
Figure 0007093972000007
と同値である。すなわち、1つ下の層での包含関係が分かっていれば、それをもとに1つ上の層での包含関係を計算することができる。そこで、いま、ノードuとk∈{1,・・・,c}に対して、zp(u,k)を、ノードuから0-枝のみを辿って行ける、ラベルkのノードとする。もしそのようなノードがなければ、zp(u,k)=nullとする。なお、zp(u,k)はもし存在すれば一意に定まる。
このzp(u,k)を用いると、ZDD Gの中からマージ可能なノードペアを全て探索してリストRを算出する処理(図4のステップS102)の詳細は、図5に示すフローチャートのようになる。図5は、マージ可能なノードの全てのペアのリストを算出する処理の一例を示すフローチャートである。
まず、前処理部102は、第1終端ノードが表す組合せ集合{φ}と第2終端ノードが表す組合せ集合{}との間の包含関係から、
Figure 0007093972000008
とする(ステップS201)。
次に、前処理部102は、iを1ずつ減じながらi=cからi=1まで、ステップS203の処理を繰り返し実行する(ステップS202)。また、ステップS203では、前処理部102は、ZDD Gの第i層L中の全てのノードのペア(u,v)に対して、ステップS204~ステップS205の処理を繰り返し実行する。すなわち、前処理部102は、第c層から第1層まで、下から上の順に各層の全てのノードのペア(u,v)に対して包含関係を探索する。
ステップS204では、前処理部102は、ZDD Gの第i層L中のノードのペア(u,v)に対して、(u,zp(v,l(u)))∈Rかつ(u,zp(v,l(u)))∈Rを満たすか否かを判定する。
ここで、(u,zp(v,l(u)))∈Rとは、例えば、図6に示すように、ノードuが、ノードvから0-枝のみを辿って行ける、ラベルl(u)のノードzp(v,l(u))にマージ可能であることを意味する。同様に、(u,zp(v,l(u)))∈Rとは、例えば、図6に示すように、ノードuが、ノードvから0-枝のみを辿って行ける、ラベルl(u)のノードzp(v,l(u))にマージ可能であることを意味する。なお、図6では、0-枝のみからなるパスを破線の曲線で表している。
他方で、(u,zp(v,l(u)))∈Rという条件は
Figure 0007093972000009
と同値であり、(u,zp(v,l(u)))∈Rという条件は
Figure 0007093972000010
と同値である。
したがって、(u,zp(v,l(u)))∈Rかつ(u,zp(v,l(u)))∈Rという条件を満たす場合、ノードuをノードvにマージ可能であり、(u,v)∈Rとなる。
そこで、上記のステップS204の条件を満たす場合、前処理部102は、R←R∪{(u,v)}とする(ステップS205)。すなわち、この場合、リストRに対して、ノードのペア(u,v)を追加する。一方で、前処理部102は、上記のステップS204の条件を満たさない場合、ステップS205の処理は行わない(つまり、ノードのペア(u,v)をリストRに追加しない。)。なお、リストRはマージ可能なノードのペア(u,v)を要素とする集合であるため、集合Rと称されてもよい。
以上により、ZDD Gの各層のマージ可能な全てのノードのペア(u,v)のリストRが算出される。
図4に戻る。ステップS102に続いて、操作部103は、上記のステップS102で算出されたリストRを用いてZDD Gのノードのマージ操作を行って、閾値θ未満のサイズのZDD G´を構築する(ステップS103)。すなわち、操作部103は、例えば、リストRから1つのペア(u,v)を選択して、このペアのノードuをノードvにマージする、という操作をZDD Gのサイズがθ未満になるまで繰り返すことで、ZDD G´を構築する。なお、リストRの全てのペア(u,v)でノードuをノードvにマージしてもZDD Gのサイズがθ未満にならない場合、操作部103は、可能な限り小さいサイズのZDD(つまり、リストRの全ての(u,v)でノードuをノードvにマージしたZDD)をG´とすればよい。
ここで、上記のステップS103において、リストRからどのペア(u,v)を選択するかは、例えば、そのペアのノードuをノードvにマージすることで発生する偽陽性のエラーの個数E(u,v)と、ノードuを消すことにより減るノードの個数N(u)とを組み合わせた所定の指標値を用いて、その指標値が最も良いペアを選択すればよい。
例えば、ノードのペアの選択及びマージ操作の各繰り返しを表すインデックスをj(j=1,2,・・・)、繰り返しjの開始時点のZDDをGとして、ZDD Gが表現する組合せ集合
Figure 0007093972000011
の中身の組合せの個数を
Figure 0007093972000012
とする。なお、G=Gである。
このとき、各繰り返しjにおいて、指標値
Figure 0007093972000013
を最小にするようなノードのペア(u,v)を選択する、という方法が挙げられる。この指標値H(u,v)を用いることで、偽陽性のエラーの発生数
Figure 0007093972000014
が抑えられ、かつ、マージ操作によって減るノードの個数N(u)が多いようなノードのペア(u,v)を選択することが可能となる。
ここで、上記の指標値H(u,v)に含まれるEGj(u,v)やN(u)等はマージ操作が行われる毎に計算し直す必要があるため、各ペアに対して効率的に計算できることが求められる。
まず、EGj(u,v)については、ZDD Gの一番上のノードr(つまり、Gの先頭ノード)からノードuまでのパスの個数をT(u)として、
Figure 0007093972000015
により求めることができる。ここで、簡単のため、
Figure 0007093972000016
として、Bをモデルカウントとも表す。
各T(u)やB(u)は、動的計画法を用いて、全てのノードuに対して効率的に求めることが可能である。なお、
Figure 0007093972000017
である。
ZDD Gの各ノードuのモデルカウントB(u)を算出する処理は、図7に示すフローチャートのようになる。図7は、ZDDの各ノードのモデルカウントを算出する処理の一例を示すフローチャートである。
まず、操作部103は、第1終端ノードが表す組合せ集合{φ}と第2終端ノードが表す組合せ集合{}から、
Figure 0007093972000018
とする(ステップS301)。
次に、操作部103は、iを1ずつ減じながらi=cからi=1まで、ステップS303の処理を繰り返し実行する(ステップS302)。また、ステップS303では、操作部103は、ZDD Gの第i層L中の全てのノードuに対して、ステップS304の処理を繰り返し実行する。
ステップS304では、操作部103は、ZDD Gの第i層L中のノードuに対して、B(u)←B(u)+B(u)とする。
以上により、ZDD Gの全てのノードuに対して、モデルカウントB(u)を算出することができる。
また、ZDD Gの各ノードuのT(u)を算出する処理は、図8に示すフローチャートのようになる。図8は、ZDDの各ノードにおける先頭ノードからのパスの個数を算出する処理の一例を示すフローチャートである。
まず、操作部103は、ZDD Gの全てのノードuに対して、T(u)←0とする(ステップS401)。
次に、操作部103は、ZDD Gの先頭ノードをrとして、T(r)←1とする(ステップS402)。
次に、操作部103は、iを1ずつ増加させながらi=1からi=cまで、ステップ404の処理を繰り返し実行する(ステップS403)。また、ステップS403では、操作部103は、ZDD Gの第i層L中の全てのノードuに対して、ステップS405の処理を繰り返し実行する。
ステップS405では、操作部103は、T(u)←T(u)+T(u)及びT(u)←T(u)+T(u)とする。
以上により、ZDD Gの全てのノードuに対して、先頭ノードrからノードuまでのパスの個数T(u)を算出することができる。
次に、N(u)については、Dominator Treeと呼ばれるデータ構造を用いて効率的に計算することができる。ZDD Gの先頭ノードをrとした場合、ノードuがノードvのDominatorであるとは、ノードrからノードvまでの任意のパスが必ずノードuを通る、ということである。このとき、各ノード間のDominatorの関係は、Dominator Treeという木構造で記述することができる。
Dominator Treeは、ノードuがノードvのDominatorであるとき、かつそのときに限り、ノードuがノードvの祖先(つまり、木構造を上に辿って行くことで辿り着けるノード)である、という性質を持つ。Dominator Treeは、例えば、以下の参考文献等に記載されているアルゴリズムを用いることで、ZDD Gに対して高速に計算することができる。
[参考文献]
Thomas Lengauer and Robert E. Tarjan. A fast algorithm for finding dominators in a flowgraph. ACM Transactions on Programming Languages and Systems (TOPLAS), Vol. 1, pp.121-141, 1979.
Dominator Treeが計算できれば、N(u)は、Dominator Treeにおけるノードuの子孫ノード(つまり、木構造中でノードuよりも下にあるノード)の個数に対して、ノードu自身の個数1を加えた値として計算することができる。したがって、各N(u)は、Dominator Tree中のボトムアップな計算により、全てのノードuに対して効率的に求めることができる。
例えば、或るZDDと、このZDDに対応するDominator Treeとを図9に示す。図9中の数字は、ZDDの各ノードのノード番号を表す。図9に示す例の場合、ノード番号2のノードは、ノード番号5、ノード番号6及びノード番号8の各ノードのDominatorである。したがって、ノード番号2のノードをマージ操作によって消した場合、ノード番号5、ノード番号6及びノード番号8の3つのノードも同時に消えることになり、N(ノード番号2のノード)=3+1=4と求めることができる。
図4に戻る。ステップS103に続いて、出力部104は、上記のステップS103で構築されたZDD G´(つまり、ZDD Gの近似ZDD)を出力する(ステップS104)。これにより、与えられたZDD Gの近似ZDDであるG´が得られる。
以上のように、実施例1の近似ZDD構築装置10は、与えられたZDDの同一層内の任意のノードペアに対する包含関係に基づいてマージ可能なノードのペアを探索することで、偽陽性のエラーのみを許容し、かつ、その発生数の少ない近似ZDDを構築することができる。
[実施例2]
以降では、実施例2として、与えられたZDD Gが表現する組合せ集合が単調性という性質を有する場合(つまり、組合せ集合が単調減少又は単調増加である場合)について説明する。この場合、前処理部102は、実施例1と異なり、マージ可能なノードの一部のペアを探索することにより、近似ZDD構築処理をより高速に実行することが可能となる。
組合せ集合が単調減少であるとは、組合せ集合中の任意の組合せから任意に1つのアイテムを取り除いても、その組合せが当該組合せ集合に含まれる場合をいう。同様に、組合せ集合が単調増加であるとは、組合せ集合中の任意の組合せに対して、当該組合せ集合のもととなるアイテムの集合から任意に1つのアイテムを加えても、その組合せが当該組合せ集合に含まれる場合をいう。なお、単調性を有する組合せ集合は、例えば、線形な組合せ不等式(具体的には、w+・・・+w≦Tといった形式で表現できる不等式)を表現する場合等、応用上も様々な場面で現れる。
ここで、前処理部102で包含関係のあるノードのペアを全て探索すると、最悪の場合は与えられたZDDのサイズの二乗の数のペアが探索されるため、これらのペアを全て保持するとメモリを圧迫するおそれがある。そこで、実施例2では、それらのペアのうち、マージしてもあまり偽陽性のエラーが発生しないと思われる一部のペアのみをリストRに保持する。これにより、実施例1と比較して、近似ZDD構築処理をより高速に実行することができると共に、メモリの使用量を削減することが可能となる。
以降では、組合せ集合は単調減少であるものとして説明するが、組合せ集合が単調増加である場合についても同様に適用可能である。
なお、実施例2は、主に、実施例1との相違点について説明し、実施例1と同様の構成要素については、その説明を省略するものとする。
<マージ可能な条件>
まず、ZDDの各層に対して、先頭ノードから0-枝のみを辿って到達できるノードを特殊なノードと呼ぶことにする。このとき、単調性により、特殊なノードが表す組合せ集合は、この特殊なノードが属する層の他のどのノードが表す組合せ集合をも含む。すなわち、特殊なノードにはマージ可能なノードが存在しない。
逆に、どの層でも、特殊でないノードは、その層の特殊なノードにマージ可能である。すなわち、特殊でないノードuに対しては、少なくとも1つはマージ可能なノードが存在することになる。
そこで、本実施例では、上の層から順番に、各特殊でないノードuに対して、偽陽性のエラーの発生数が少ないと思われるマージ可能なノードsup(u)とのペア(u,sup(u))を1つ計算していく。なお、偽陽性のエラーの発生数が少ないと思われるマージ可能なノードとは、マージ可能なノードのうち、当該ノードが表す組合せ集合中の組合せの個数が少ないと思われるノードのことである。
ここで、本実施例では、ZDDの各層の特殊でないノードuに対して、図10(a)~図10(c)にそれぞれ示す以下のケース1~ケース3のマージ可能なノードを考える。なお、図10では、0-枝のみからなるパスを破線の曲線で表している。
(ケース1)図10(a)に示すように、u=pとなるノードpに対して、ノードpが他のノードqにマージ可能である場合(つまり、l(p)=l(q)、かつ、ノードpが表す組合せ集合が、ノードqが表す組合せ集合に包含される場合)に、zp(q,l(u))がuと相異なるなら、ノードuはノードzp(q,l(u))にマージ可能である。
(ケース2)図10(b)に示すように、u=pとなるノードpに対して、zp(p,l(u))がuと相異なるなら、ノードuはノードzp(p,l(u))にマージ可能である。
(ケース3)図10(c)に示すように、u=pとなるノードpに対して、ノードpが他のノードqにマージ可能である場合に、zp(q,l(u))がuと相異なるなら、ノードuはノードzp(q,l(u))にマージ可能である。
<近似ZDD構築処理>
以降では、近似ZDD構築装置10が実行する近似ZDD構築処理について説明する。実施例2では、図4のステップS102の処理の詳細のみが実施例1と異なる(つまり、図4のステップS101及びステップS103~ステップS104は実施例2でも同様である。)。そこで、以降では、図4のステップS102の処理の詳細について、図11を参照しながら説明する。図11は、ZDDが単調減少な組み合わせ集合を表現する場合に、マージ可能なノードの一部のペアのリストを算出する処理の一例を示すフローチャートである。なお、図11では、特殊でないノードuに対して、sup(u)の候補となる集合をCで表す。
まず、前処理部102は、R←φとする(ステップS501)。
次に、前処理部102は、iを1ずつ増加させながらi=1からi=cまで、ステップS503の処理を繰り返し実行する(ステップS502)。また、ステップS503では、前処理部102は、ZDD Gの第i層L中の特殊でない全てのノードuに対して、ステップS504~ステップS509の処理を繰り返し実行する。
すなわち、特殊でないノードuに対して、前処理部102は、まず、C←φとする(ステップS504)。次に、前処理部102は、P及びPを以下により定義する(ステップS505)。
・P←{v|vはGのノード,u=v
・P←{v|vはGのノード,u=v
すなわち、0-枝がuを指すノードの集合をP、1-枝がuを指すノードの集合をPとする。
次に、前処理部102は、ケース1又はケース2に該当するsup(u)の候補(つまり、ケース1又はケース2のいずれかに該当するマージ可能なノード)を探索する(ステップS506)。この探索処理の詳細は、図12に示すフローチャートのようになる。図12は、ケース1又はケース2に該当するsup(u)の候補を探索する処理の一例を示すフローチャートである。
前処理部102は、全てのp∈P∪Pに対して、ステップS602の処理と、ステップS603の処理と、ステップS605の処理とを繰り返し実行する(ステップS601)。
ステップS602では、前処理部102は、q←pとする。次に、ステップS603では、前処理部102は、u=zp(q,l(u))である間(つまり、ノードuとノードzp(q,l(u))とが一致している間)、ステップS604の処理を繰り返し実行する。ステップS604では、前処理部102は、q←sup(p)とする。
すなわち、p∈Pである場合は、上記のステップS603の繰り返しによってケース1に該当するノードzp(q,l(u))が探索される。同様に、p∈Pである場合には、上記のステップS603の繰り返しによってケース2に該当するノードzp(p,l(u))が探索される。このとき、pはsup(p)だけでなくsup(sup(p))やsup(sup(sup(p)))等のsupを重ねたノードにもマージ可能であることを用いて、ケース1又はケース2に該当するzp(q,l(u))が探索される(言い換えれば、zp(q,l(u))がuと異なるようなqが探索される。)。
そして、ステップS605では、前処理部102は、上記のステップS603の繰り返しで探索されたzp(q,l(u))をCに追加する。すなわち、前処理部102は、C←C∪{zp(q,l(u))}とする。これにより、ケース1又はケース2に該当するマージ可能なノードが、sup(u)の候補の集合Cに追加される。
図11に戻る。ステップS506に続いて、前処理部102は、ケース3に該当するsup(u)の候補(つまり、ケース3に該当するマージ可能なノード)を探索する(ステップS507)。この探索処理の詳細は、図13に示すフローチャートのようになる。図13は、ケース3に該当とするsup(u)の候補を探索する処理の一例を示すフローチャートである。
前処理部102は、全てのp∈Pに対して、ステップS702の処理と、ステップS703の処理と、ステップS705~ステップS706の処理とを繰り返し実行する(ステップS701)。
ステップS702では、前処理部102は、q←pとする。次に、ステップS703では、前処理部102は、u=zp(q,l(u))かつqが特殊でないノードである間(つまり、ノードuとzp(q,l(u))とが一致しており、かつ、qが特殊でないノードである間)、ステップS704の処理を繰り返し実行する。ステップS704では、前処理部102は、q←sup(p)とする。なお、前処理部102は、u≠zp(q,l(u))又はqが特殊なノードとなった場合に繰り返しを終了する。
次に、ステップS705では、前処理部102は、u≠zp(q,l(u))であるか否かを判定する。そして、u≠zp(q,l(u))であると判定した場合、前処理部102は、zp(q,l(u))をCに追加する。すなわち、前処理部102は、C←C∪{zp(q,l(u))}とする。これにより、ケース3に該当するマージ可能なノードが探索され、sup(u)の候補の集合Cに追加される。
一方で、u=zp(q,l(u))であると判定した場合は、前処理部102は、ステップS706の処理は行わない。この場合は、zp(q,l(u))はケース3のマージ可能なノードに該当しないためである。
図11に戻る。ステップS507に続いて、前処理部102は、偽陽性のエラーの発生数が少ないと思われるマージ可能なノードをCから選択し、それをsup(u)とする(ステップS508)。すなわち、前処理部102は、
Figure 0007093972000019
とする。
次に、前処理部102は、R←R∪{(u,sup(u))}とする(ステップS509)。すなわち、リストRに対して、ノードのペア(u,sup(u))を追加する。
以上のように、実施例2では、ZDD Gが表現する組合せ集合が単調性を有する場合に、マージ可能なペアのリストRとして保持するペアの数を削減することが可能となる。また、これにより、図4のステップS103でリストRからペアを選択する際の計算量(つまり、例えば、各ノードのペアの指標値を計算する際の総計算量)を削減することが可能となり、近似ZDD構築処理をより高速に実行することが可能となる。
<効果及び応用例>
以上のように、本実施形態に係る近似ZDD構築装置10は、与えられたZDDに対して、偽陽性のエラーのみを許容し、かつ、その発生数の少ない近似ZDDを構築することができる。特に、本実施形態に係る近似ZDD構築装置10と従来技術とで同程度のサイズの近似ZDDを出力した場合、本実施形態に係る近似ZDD構築装置10では、従来技術と比較して、近似ZDDの偽陽性のエラーの発生数を数百倍少なくすることができた。
なお、偽陽性のエラーのみを許容するZDDは、一例として、以下のような応用が考えられる。
まず、或る組合せが対象とする組合せ集合に入っているか否かを回答するメンバーシップ問い合わせについて応用可能である。偽陽性のエラーのみを許容するZDDを用いることで、メンバーシップ問い合わせにおいて、本来は含んでいる組合せを含まないと回答してしまうような間違いの発生を防止することができる。偽陽性のエラーのみを許容するZDDが表現する組合せ集合にはもとのZDDが表現する組合せ集合中の全ての組合せが含まれているため、この性質を用いて或る条件を満たす組合せのフィルタリングも可能である。
次に、組合せ最適化問題にも応用可能である。組合せ最適化問題では、その制約を偽陽性のエラーのみを許容するZDDで表現することによって、その最適化問題の目的関数値の上限が得られる。組合せ最適化問題を解く際に、良い目的関数値の上限を効率的に得られることは、解を探索する上で重要である。
最後に、仮にもとの組合せ集合に対するメンバーシップ問い合わせが簡単に正しくできる場合、偽陽性のエラーのみを許容するZDDを用いて、もとの組合せ集合中の組合せのランダムサンプリングが可能である。例えば、もとの組合せ集合が線形組合せ不等式を表現していたり、グラフ中の特定の条件を満たす部分グラフを表現していたりする場合がこの状況に相当し、有効なランダムサンプリング可能となる。
<近似ZDD構築装置10のハードウェア構成>
最後に、本実施形態に係る近似ZDD構築装置10のハードウェア構成について、図14を参照しながら説明する。図14は、本発明の実施の形態における近似ZDD構築装置10のハードウェア構成の一例を示す図である。
図14に示すように、本実施形態に係る近似ZDD構築装置10は、ハードウェアとして、入力装置201と、表示装置202と、外部I/F203と、RAM204と、ROM(Read Only Memory)205と、CPU206と、通信I/F207と、補助記憶装置208とを有する。これら各ハードウェアは、それぞれがバスBを介して通信可能に接続されている。
入力装置201は、例えばキーボードやマウス、タッチパネル等であり、ユーザが各種操作を入力するのに用いられる。表示装置202は、例えばディスプレイ等であり、近似ZDD構築装置10の処理結果を表示する。なお、近似ZDD構築装置10は、入力装置201及び表示装置202の少なくとも一方を有していなくてもよい。
外部I/F203は、外部装置とのインタフェースである。外部装置には、記録媒体203a等がある。近似ZDD構築装置10は、外部I/F203を介して、記録媒体203a等の読み取りや書き込みを行うことができる。記録媒体203aには、近似ZDD構築装置10が有する各機能部(すなわち、入力部101、前処理部102、操作部103及び出力部104等)を実現する1以上のプログラム等が記録されていてもよい。
記録媒体203aには、例えば、フレキシブルディスク、CD(Compact Disc)、DVD(Digital Versatile Disk)、SDメモリカード(Secure Digital memory card)、USB(Universal Serial Bus)メモリカード等がある。
RAM204は、プログラムやデータを一時保持する揮発性の半導体メモリである。ROM205は、電源を切ってもプログラムやデータを保持することができる不揮発性の半導体メモリである。ROM205には、例えば、OS(Operating System)に関する設定情報や通信ネットワークに関する設定情報等が格納されている。
CPU206は、ROM205や補助記憶装置208等からプログラムやデータをRAM204上に読み出して処理を実行する演算装置である。
通信I/F207は、近似ZDD構築装置10を通信ネットワークに接続するためのインタフェースである。近似ZDD構築装置10が有する各機能部を実現する1以上のプログラムは、通信I/F207を介して、所定のサーバ装置等から取得(ダウンロード)されてもよい。
補助記憶装置208は、例えば、HDDやSSD等であり、プログラムやデータを格納している不揮発性の記憶装置である。補助記憶装置208に格納されているプログラムやデータには、例えば、OS、当該OS上で各種機能を実現するアプリケーションプログラム、近似ZDD構築装置10が有する各機能部を実現する1以上のプログラム等がある。
本実施形態に係る近似ZDD構築装置10は、図14に示すハードウェア構成を有することにより、上述した各種処理を実現することができる。なお、図14では、本実施形態に係る近似ZDD構築装置10が1台の装置(コンピュータ)で実現されている場合を示したが、これに限られない。本実施形態に係る近似ZDD構築装置10は、複数台の装置(コンピュータ)で実現されていてもよい。また、1台の装置(コンピュータ)には、複数のCPU206や複数のメモリ(RAM204やROM205、補助記憶装置208等)が含まれていてもよい。
本発明は、具体的に開示された上記の実施形態に限定されるものではなく、特許請求の範囲から逸脱することなく、種々の変形や変更が可能である。
10 近似ZDD構築装置
101 入力部
102 前処理部
103 操作部
104 出力部

Claims (6)

  1. ゼロサプレス型二分決定グラフを入力として、前記ゼロサプレス型二分決定グラフにおける同一ラベルのノードが表す組合せ集合間の包含関係に基づいて、マージ可能なノードのペアを探索する探索手順と、
    マージ可能なノードのペアのマージ操作によって発生する偽陽性のエラー数と前記マージ操作によって削減されるノード数とを組み合わせた所定の指標値を用いて、前記探索手順で探索されたペアの中からマージ対象のペアを選択する選択手順と、
    前記選択手順で選択されたペアにマージ操作を行って、前記ペアに含まれる第1のノードを第2のノードにマージする操作手順と、
    をコンピュータが実行することを特徴とする近似ZDD構築方法。
  2. 前記探索手順は、
    前記ラベル毎に、該ラベルのノードuと同一ラベルのノードvであって、かつ、前記ノードuが表す組合せ集合を含む組合せ集合を表すノードvを探索することで、前記ノードuと前記ノードvとのペア(u,v)を前記マージ可能なノードのペアとして探索する、ことを特徴とする請求項1に記載の近似ZDD構築方法。
  3. 前記探索手順は、
    前記ノードuの0-枝が指すノードuが、該ノードuと同一ラベルのノードzp(u,l(u))であって、かつ、前記ノードvから0-枝のみを辿るパスが指すノードzp(u,l(u))にマージ可能であると共に、前記ノードuの1-枝が指すノードuが、該ノードuと同一ラベルのノードzp(u,l(u))であって、かつ、前記ノードvから0-枝のみを辿るパスが指すノードzp(u,l(u))にマージ可能である場合に、前記ノードuと前記ノードvとのペア(u,v)を前記マージ可能なノードのペアとする、ことを特徴とする請求項2に記載の近似ZDD構築方法。
  4. 前記探索手順は、
    前記ゼロサプレス型二分決定グラフが表現する組合せ集合が単調性を有する場合、ラベル毎に、該ラベルのノードuであって、かつ、前記ゼロサプレス型二分決定グラフの先頭ノードから0-枝のみを辿るパスが指すノード以外のノードuと、前記ノードuが表す組合せ集合を含む組合せ集合を表すノードsup(u)であって、かつ、所定の条件を満たすノードの集合Cの中でノードが表す組合せ集合の個数が最も少ないノードsup(u)とのペア(u,sup(u))を前記マージ可能なノードのペアとして探索する、ことを特徴とする請求項1に記載の近似ZDD構築方法。
  5. ゼロサプレス型二分決定グラフを入力として、前記ゼロサプレス型二分決定グラフにおける同一ラベルのノードが表す組合せ集合間の包含関係に基づいて、マージ可能なノードのペアを探索する探索手段と、
    マージ可能なノードのペアのマージ操作によって発生する偽陽性のエラー数と前記マージ操作によって削減されるノード数とを組み合わせた所定の指標値を用いて、前記探索手段により探索されたペアの中からマージ対象のペアを選択する選択手段と、
    前記選択手段により選択されたペアにマージ操作を行って、前記ペアに含まれる第1のノードを第2のノードにマージする操作手段と、
    を有することを特徴とする近似ZDD構築装置。
  6. コンピュータに、請求項1乃至4の何れか一項に記載の近似ZDD構築方法における各手順を実行させるためのプログラム。
JP2019106036A 2019-06-06 2019-06-06 近似zdd構築方法、近似zdd構築装置及びプログラム Active JP7093972B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2019106036A JP7093972B2 (ja) 2019-06-06 2019-06-06 近似zdd構築方法、近似zdd構築装置及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2019106036A JP7093972B2 (ja) 2019-06-06 2019-06-06 近似zdd構築方法、近似zdd構築装置及びプログラム

Publications (2)

Publication Number Publication Date
JP2020201556A JP2020201556A (ja) 2020-12-17
JP7093972B2 true JP7093972B2 (ja) 2022-07-01

Family

ID=73744042

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019106036A Active JP7093972B2 (ja) 2019-06-06 2019-06-06 近似zdd構築方法、近似zdd構築装置及びプログラム

Country Status (1)

Country Link
JP (1) JP7093972B2 (ja)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020178432A1 (en) 2000-08-17 2002-11-28 Hyungwon Kim Method and system for synthesizing a circuit representation into a new circuit representation having greater unateness
US20030220926A1 (en) 2001-03-21 2003-11-27 Huelsman David L. Rule processing system
JP2013069292A (ja) 2011-09-23 2013-04-18 Fujitsu Ltd 二分決定図の圧縮の分析を使用したセンサの異常の検出
JP2018019192A (ja) 2016-07-27 2018-02-01 日本電信電話株式会社 信頼性評価方法、信頼性評価装置及びプログラム
JP2018085017A (ja) 2016-11-25 2018-05-31 日本電信電話株式会社 計算装置、方法、及びプログラム
WO2018168383A1 (ja) 2017-03-15 2018-09-20 富士フイルム株式会社 最適解判定方法、最適解判定プログラム及び最適解判定装置

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020178432A1 (en) 2000-08-17 2002-11-28 Hyungwon Kim Method and system for synthesizing a circuit representation into a new circuit representation having greater unateness
US20030220926A1 (en) 2001-03-21 2003-11-27 Huelsman David L. Rule processing system
JP2013069292A (ja) 2011-09-23 2013-04-18 Fujitsu Ltd 二分決定図の圧縮の分析を使用したセンサの異常の検出
JP2018019192A (ja) 2016-07-27 2018-02-01 日本電信電話株式会社 信頼性評価方法、信頼性評価装置及びプログラム
JP2018085017A (ja) 2016-11-25 2018-05-31 日本電信電話株式会社 計算装置、方法、及びプログラム
WO2018168383A1 (ja) 2017-03-15 2018-09-20 富士フイルム株式会社 最適解判定方法、最適解判定プログラム及び最適解判定装置

Also Published As

Publication number Publication date
JP2020201556A (ja) 2020-12-17

Similar Documents

Publication Publication Date Title
Bekos et al. Boundary labeling: Models and efficient algorithms for rectangular maps
Fujiwara et al. Fast and exact top-k search for random walk with restart
Nannicini et al. Optimal qubit assignment and routing via integer programming
JP7216654B2 (ja) 可変レベル並列性を用いたデータ処理動作を行うためのシステム及び方法
JP2010530093A (ja) データ可視化
CN114090155B (zh) 机器人流程自动化界面元素定位方法、装置和存储介质
CN107783766A (zh) 对应用程序的文件进行清理的方法和装置
Shen et al. Approximate covering detection among content-based subscriptions using space filling curves
Trivodaliev et al. Exploring function prediction in protein interaction networks via clustering methods
Ahmad 40 Algorithms Every Programmer Should Know: Hone your problem-solving skills by learning different algorithms and their implementation in Python
WO2014020834A1 (ja) 単語潜在トピック推定装置および単語潜在トピック推定方法
JP2017045080A (ja) 業務フロー仕様再生方法
Luo et al. Toward maintenance of hypercores in large-scale dynamic hypergraphs
KR102354343B1 (ko) 블록체인 기반의 지리공간 데이터를 위한 공간 데이터 인덱싱 방법 및 장치
JP7093972B2 (ja) 近似zdd構築方法、近似zdd構築装置及びプログラム
US10229223B2 (en) Mining relevant approximate subgraphs from multigraphs
Berry et al. Amalgamating source trees with different taxonomic levels
US9286349B2 (en) Dynamic search system
JP6549786B2 (ja) データクレンジングシステム、方法、及び、プログラム
JP6878804B2 (ja) 情報処理装置、情報処理方法、及び、プログラム
US20220318048A2 (en) Visual conformance checking of processes
Grinis et al. Normal forms of convex lattice polytopes
Fraigniaud et al. Impact of memory size on graph exploration capability
JP7196903B2 (ja) 推移閉包情報生成装置、推移閉包情報生成方法およびプログラム
Dolgorsuren et al. SP2: Spanner construction for shortest path computation on streaming graph

Legal Events

Date Code Title Description
RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7426

Effective date: 20190610

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20190610

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210818

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20220531

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: 20220607

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220613

R150 Certificate of patent or registration of utility model

Ref document number: 7093972

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150