特開2020-204938(P2020-204938A)IP Force 特許公報掲載プロジェクト 2015.5.11 β版

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

▶ 日本電信電話株式会社の特許一覧
特開2020-204938集合族簡約化装置、集合族簡約化方法、及び集合族簡約化プログラム
<>
  • 特開2020204938-集合族簡約化装置、集合族簡約化方法、及び集合族簡約化プログラム 図000021
  • 特開2020204938-集合族簡約化装置、集合族簡約化方法、及び集合族簡約化プログラム 図000022
  • 特開2020204938-集合族簡約化装置、集合族簡約化方法、及び集合族簡約化プログラム 図000023
  • 特開2020204938-集合族簡約化装置、集合族簡約化方法、及び集合族簡約化プログラム 図000024
  • 特開2020204938-集合族簡約化装置、集合族簡約化方法、及び集合族簡約化プログラム 図000025
  • 特開2020204938-集合族簡約化装置、集合族簡約化方法、及び集合族簡約化プログラム 図000026
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】特開2020-204938(P2020-204938A)
(43)【公開日】2020年12月24日
(54)【発明の名称】集合族簡約化装置、集合族簡約化方法、及び集合族簡約化プログラム
(51)【国際特許分類】
   G06F 16/174 20190101AFI20201127BHJP
   G06F 16/28 20190101ALI20201127BHJP
   G06F 16/26 20190101ALI20201127BHJP
【FI】
   G06F16/174
   G06F16/28
   G06F16/26
【審査請求】未請求
【請求項の数】7
【出願形態】OL
【全頁数】15
(21)【出願番号】特願2019-112655(P2019-112655)
(22)【出願日】2019年6月18日
(71)【出願人】
【識別番号】000004226
【氏名又は名称】日本電信電話株式会社
(71)【出願人】
【識別番号】504132272
【氏名又は名称】国立大学法人京都大学
(74)【代理人】
【識別番号】110001519
【氏名又は名称】特許業務法人太陽国際特許事務所
(72)【発明者】
【氏名】西野 正彬
(72)【発明者】
【氏名】湊 真一
(57)【要約】
【課題】集合族に関する各種演算を高速に行うためのグラフを効率的に構築することができる。
【解決手段】要約書
決定節点nを参照する要素節点の各々のペアi,jのそれぞれについて、終端ZSDDの要素又は決定ZSDDである場合に、参照関係にある節点に対応する値を与え、終端ZSDDの定数である場合に、所定の値を与えるようにペアi,jを初期化し、要素節点の各々について、vtreeにおける子孫から親まで順番に、所定の条件において、ペアのiが節点vの左の子節点、ペアのjが節点vの右の子節点に相当する場合に、決定節点nを省略するように、ZSDDを簡約化したCZSDD(Chain−reducedZSDD)を生成する。
【選択図】図4
【特許請求の範囲】
【請求項1】
台集合Eに含まれる各要素に対応する節点を葉節点として表現した完全二分木であるvtreeと、前記台集合Eの集合族を表す有向非巡回グラフであって、前記vtreeの前記葉節点ではない節点vに対応する決定節点と、前記台集合Eを部分集合X、Yへ分割したときの、前記台集合Eに含まれる要素若しくは定数である記号を表す終端ZSDD又は前記決定節点への矢印を表す決定ZSDDであるプライム及びサブのペアを表す要素節点とを含むZSDD(Zero−suppressed Sentential Decision Diagram)とを受け付け、
前記vtreeの前記節点vに対応する前記ZSDDの前記決定節点をnとし、前記プライムと前記サブとの値のペアをペアi,jとした場合に、決定節点nを参照する前記要素節点の各々のペアi,jのそれぞれについて、前記終端ZSDDの前記要素又は前記決定ZSDDである場合に、参照関係にある前記節点vに対応する値を与え、前記終端ZSDDの前記定数である場合に、所定の値を与えるように前記ペアi,jを初期化し、
前記決定節点nを参照する前記要素節点の各々について、前記vtreeにおける子孫から親まで順番に、所定の条件において、前記ペアのiが前記節点vの左の子節点、前記ペアのjが前記節点vの右の子節点に相当する場合に、前記決定節点nを省略するように、前記ZSDDを簡約化したCZSDD(Chain−reducedZSDD)を生成する簡約化部、
を含む集合族簡約化装置。
【請求項2】
前記簡約化部は、前記所定の条件は、前記決定節点nが、前記ZSDDに含まれうる、集合族を項分岐によって表現した項分岐型グラフへの引数と、前記要素を含みうる集合とにより表される場合とする請求項1に記載の集合族簡約化装置。
【請求項3】
前記項分岐型グラフへの引数をα又はβとし、前記要素をXとし、要素Xを含みうる集合を{±X}とした場合に、
前記所定の条件は、前記決定節点nが{±X,β}である場合、及び前記決定節点nが{α,±X}を含む場合の少なくとも一方とする請求項2に記載の集合族簡約化装置。
【請求項4】
台集合Eに含まれる各要素に対応する節点を葉節点として表現した完全二分木であるvtreeと、前記台集合Eの集合族を表す有向非巡回グラフであって、前記vtreeの前記葉節点ではない節点vに対応する決定節点と、前記台集合Eを部分集合X、Yへ分割したときの、前記台集合Eに含まれる要素若しくは定数である記号を表す終端ZSDD又は前記決定節点への矢印を表す決定ZSDDであるプライム及びサブのペアを表す要素節点とを含むZSDD(Zero−suppressed Sentential Decision Diagram)とを受け付け、
前記vtreeの前記節点vに対応する前記ZSDDの前記決定節点をnとし、前記プライムと前記サブとの値のペアをペアi,jとした場合に、決定節点nを参照する前記要素節点の各々のペアi,jのそれぞれについて、前記終端ZSDDの前記要素又は前記決定ZSDDである場合に、参照関係にある前記節点vに対応する値を与え、前記終端ZSDDの前記定数である場合に、所定の値を与えるように前記ペアi,jを初期化し、
前記決定節点nを参照する前記要素節点の各々について、前記vtreeにおける子孫から親まで順番に、所定の条件において、前記ペアのiが前記節点vの左の子節点、前記ペアのjが前記節点vの右の子節点に相当する場合に、前記決定節点nを省略するように、前記ZSDDを簡約化したCZSDD(Chain−reducedZSDD)を生成する、
ことを含む処理をコンピュータが実行することを特徴とする集合族簡約化方法。
【請求項5】
前記所定の条件は、前記決定節点nが、前記ZSDDに含まれうる、集合族を項分岐によって表現した項分岐型グラフへの引数と、前記要素を含みうる集合とにより表される場合とする請求項4に記載の集合族簡約化方法。
【請求項6】
前記項分岐型グラフへの引数をα又はβとし、前記要素をXとし、要素Xを含みうる集合を{±X}とした場合に、
前記所定の条件は、前記決定節点nが{±X,β}である場合、及び前記決定節点nが{α,±X}を含む場合の少なくとも一方とする請求項5に記載の集合族簡約化方法。
【請求項7】
台集合Eに含まれる各要素に対応する節点を葉節点として表現した完全二分木であるvtreeと、前記台集合Eの集合族を表す有向非巡回グラフであって、前記vtreeの前記葉節点ではない節点vに対応する決定節点と、前記台集合Eを部分集合X、Yへ分割したときの、前記台集合Eに含まれる要素若しくは定数である記号を表す終端ZSDD又は前記決定節点への矢印を表す決定ZSDDであるプライム及びサブのペアを表す要素節点とを含むZSDD(Zero−suppressed Sentential Decision Diagram)とを受け付け、
前記vtreeの前記節点vに対応する前記ZSDDの前記決定節点をnとし、前記プライムと前記サブとの値のペアをペアi,jとした場合に、決定節点nを参照する前記要素節点の各々のペアi,jのそれぞれについて、前記終端ZSDDの前記要素又は前記決定ZSDDである場合に、参照関係にある前記節点vに対応する値を与え、前記終端ZSDDの前記定数である場合に、所定の値を与えるように前記ペアi,jを初期化し、
前記決定節点nを参照する前記要素節点の各々について、前記vtreeにおける子孫から親まで順番に、所定の条件において、前記ペアのiが前記節点vの左の子節点、前記ペアのjが前記節点vの右の子節点に相当する場合に、前記決定節点nを省略するように、前記ZSDDを簡約化したCZSDD(Chain−reducedZSDD)を生成する、
ことをコンピュータに実行させる集合族簡約化プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
開示の技術は、集合族簡約化装置、集合族簡約化方法、及び集合族簡約化プログラムに関する。
【背景技術】
【0002】
集合Sが与えられたとき、Sの部分集合を要素とするような集合は集合族とよばれる。様々な問題は、集合族を対象とした計算問題に帰着して解くことができる。たとえば、グラフG=(V,E)が与えられたとき、グラフのマッチングとはEの部分集合のうち、端点を共有するものが存在しないもののことをいう。そのため、マッチングの集合はEを台集合とした集合族として表現することが可能である。マッチングのうち最大のものを選択する問題は最大マッチング問題とよばれ、多くの応用問題が最大マッチング問題に帰着して解かれている。最大マッチング問題は、可能なマッチングの集合が集合族として表現されているのであれば、集合族の中から最大のものを選択する問題として解くことができる。そのほかにも、例えばn入力の論理回路の出力を真とするような入力変数の組合せの集合も集合族として表現できる。真となる入力の組合せを一つ見つける問題は集合族の要素を一つ見つける問題として定式化できる。あるいは出力を真とする可能なすべての組合せの個数を調べる問題は、集合族の濃度(cardinarity)を調べる問題として定式化できる。
このような、集合族に関連する様々な課題を解くための方法の一つとして、集合族を計算機上で効率的に表現した上で問題を解くための方法が知られている。ゼロサプレス型項分岐決定グラフ(Zero−suppressed Sentential Decision Diagrams,ZSDD)(非特許文献1)はそのような表現方法の一種である。ZSDDは、有向グラフとして集合族を表現することで、計算機のメモリを節約した、簡潔な形で集合族を表現することができる。さらに、ZSDDとして集合族を表現すると、ZSDDの大きさ(有向グラフの辺の数)に比例する時間で、集合族の濃度を数えたり、集合族に含まれる要素を一つ取り出したりといった演算が実行可能である。
ZSDDの他にも、集合族を簡潔に表現できる決定グラフの変種が存在する。項分岐型決定グラフ(Sentential Decision Diagrams,SDD)(非特許文献2)はそのような決定グラフの一種であり。ZSDDと同様に集合族を簡潔に表現して様々な演算を実行することが可能である。
【先行技術文献】
【非特許文献】
【0003】
【非特許文献1】Masaaki Nishino, Norihito Yasuda, Shin-ichi Minato and Masaaki Nagata, "Zero-suppressed Sentential Decision Diagrams", In Proceedings of the 30th AAAI Conference on Articial Intelligence, pp 1058-1066, 2016.
【非特許文献2】Adnan Darwiche. SDD: A New Canonical Representation of Propositional Knowledge Bases. In Proceedings of the Twenty-Second International Joint Conference on Articial Intelligence (IJCAI), pages 819-826, 2011
【発明の概要】
【発明が解決しようとする課題】
【0004】
ZSDDの大きさは、表現する対象の集合族に依存する。対象によってはZSDDのほうが簡潔に表現できるが、一方でSDDのほうが簡潔に表現できる対象も存在する。表現の大きさは計算機が必要とするメモリの量や演算の効率性に大きく影響するため、ZSDDとSDDとで簡潔な表現を選択することが望まれる。しかし、どちらのほうが小さく表現できるかは実際に表現してみないとわからないため、適切な表現を事前に選ばなければならないという課題があった。
【0005】
開示の技術は、上記の点に鑑みてなされたものであり、集合族に関する各種演算を高速に行うためのグラフを効率的に構築することができる集合族簡約化装置、集合族簡約化方法、及び集合族簡約化プログラムを提供することを目的とする。
【課題を解決するための手段】
【0006】
本開示の第1態様は、集合族簡約化装置であって、台集合Eに含まれる各要素に対応する節点を葉節点として表現した完全二分木であるvtreeと、前記台集合Eの集合族を表す有向非巡回グラフであって、前記vtreeの前記葉節点ではない節点vに対応する決定節点と、前記台集合Eを部分集合X、Yへ分割したときの、前記台集合Eに含まれる要素若しくは定数である記号を表す終端ZSDD又は前記決定節点への矢印を表す決定ZSDDであるプライム及びサブのペアを表す要素節点とを含むZSDD(Zero−suppressed Sentential Decision Diagram)とを受け付け、前記vtreeの前記節点vに対応する前記ZSDDの前記決定節点をnとし、前記プライムと前記サブとの値のペアをペアi,jとした場合に、決定節点nを参照する前記要素節点の各々のペアi,jのそれぞれについて、前記終端ZSDDの前記要素又は前記決定ZSDDである場合に、参照関係にある前記節点vに対応する値を与え、前記終端ZSDDの前記定数である場合に、所定の値を与えるように前記ペアi,jを初期化し、前記決定節点nを参照する前記要素節点の各々について、前記vtreeにおける子孫から親まで順番に、所定の条件において、前記ペアのiが前記節点vの左の子節点、前記ペアのjが前記節点vの右の子節点に相当する場合に、前記決定節点nを省略するように、前記ZSDDを簡約化したCZSDD(Chain−reducedZSDD)を生成する簡約化部、を含む。
【0007】
本開示の本開示の第2態様は、集合族簡約化方法であって、台集合Eに含まれる各要素に対応する節点を葉節点として表現した完全二分木であるvtreeと、前記台集合Eの集合族を表す有向非巡回グラフであって、前記vtreeの前記葉節点ではない節点vに対応する決定節点と、前記台集合Eを部分集合X、Yへ分割したときの、前記台集合Eに含まれる要素若しくは定数である記号を表す終端ZSDD又は前記決定節点への矢印を表す決定ZSDDであるプライム及びサブのペアを表す要素節点とを含むZSDD(Zero−suppressed Sentential Decision Diagram)とを受け付け、前記vtreeの前記節点vに対応する前記ZSDDの前記決定節点をnとし、前記プライムと前記サブとの値のペアをペアi,jとした場合に、決定節点nを参照する前記要素節点の各々のペアi,jのそれぞれについて、前記終端ZSDDの前記要素又は前記決定ZSDDである場合に、参照関係にある前記節点vに対応する値を与え、前記終端ZSDDの前記定数である場合に、所定の値を与えるように前記ペアi,jを初期化し、前記決定節点nを参照する前記要素節点の各々について、前記vtreeにおける子孫から親まで順番に、所定の条件において、前記ペアのiが前記節点vの左の子節点、前記ペアのjが前記節点vの右の子節点に相当する場合に、前記決定節点nを省略するように、前記ZSDDを簡約化したCZSDD(Chain−reducedZSDD)を生成する、ことを含む処理をコンピュータが実行することを特徴とする。
【0008】
本開示の本開示の第3態様は、集合族簡約化プログラムであって、台集合Eに含まれる各要素に対応する節点を葉節点として表現した完全二分木であるvtreeと、前記台集合Eの集合族を表す有向非巡回グラフであって、前記vtreeの前記葉節点ではない節点vに対応する決定節点と、前記台集合Eを部分集合X、Yへ分割したときの、前記台集合Eに含まれる要素若しくは定数である記号を表す終端ZSDD又は前記決定節点への矢印を表す決定ZSDDであるプライム及びサブのペアを表す要素節点とを含むZSDD(Zero−suppressed Sentential Decision Diagram)とを受け付け、前記vtreeの前記節点vに対応する前記ZSDDの前記決定節点をnとし、前記プライムと前記サブとの値のペアをペアi,jとした場合に、決定節点nを参照する前記要素節点の各々のペアi,jのそれぞれについて、前記終端ZSDDの前記要素又は前記決定ZSDDである場合に、参照関係にある前記節点vに対応する値を与え、前記終端ZSDDの前記定数である場合に、所定の値を与えるように前記ペアi,jを初期化し、前記決定節点nを参照する前記要素節点の各々について、前記vtreeにおける子孫から親まで順番に、所定の条件において、前記ペアのiが前記節点vの左の子節点、前記ペアのjが前記節点vの右の子節点に相当する場合に、前記決定節点nを省略するように、前記ZSDDを簡約化したCZSDD(Chain−reducedZSDD)を生成する、ことをコンピュータに実行させる。
【発明の効果】
【0009】
開示の技術によれば、集合族に関する各種演算を高速に行うためのグラフを効率的に構築することができる。
【図面の簡単な説明】
【0010】
図1】vtreeの一例を示す図である。
図2】ZSDDの一例を示す図である。
図3】ZSDDの計算機上での表現の一例を示す図である。
図4】本実施形態の集合族簡約化装置の構成を示すブロック図である。
図5】集合族簡約化装置のハードウェア構成を示すブロック図である。
図6】集合族簡約化装置による集合族簡約化処理の流れを示すフローチャートである。
【発明を実施するための形態】
【0011】
以下、開示の技術の実施形態の一例を、図面を参照しつつ説明する。なお、各図面において同一又は等価な構成要素及び部分には同一の参照符号を付与している。また、図面の寸法比率は、説明の都合上誇張されており、実際の比率とは異なる場合がある。
<本開示の実施形態に係る概要>
【0012】
まず、本開示の実施形態における概要を説明する。
【0013】
本開示の実施形態では、ZSDDをさらに簡約化するための簡約化規則を導入する。新しい規則は特殊な形状の部分グラフが出現したときに、その部分グラフを単一の節点に置き換えることによってZSDDの大きさを削減する。新しい規則を適用して得られたZSDDをChain−reducedZSDD(CZSDD)とよぶ。CZSDDはZSDDよりも常に小さく、かつSDDと比べても定数倍にしか大きくならないという特徴をもつため、常に小さな表現を得る事が可能となる。
【0014】
<本開示の実施形態に係る原理>
【0015】
次に、本開示の実施形態における原理を説明する。
【0016】
まず、集合族を定義する。集合族とは、ある台集合Z={A,B,C,...,}について、その部分集合S⊆Zを要素とするような集合のことである。例えばZ={A,B,C,D}とすると、{{A,B},{B},{B,C},{C,D}}はZを台集合とする集合族である。以下の記号は空集合を表す。
【0017】
【0018】
記号2はZのべき集合、すなわちZの可能な全ての部分集合から構成される集合族を表すとする。また、|Z|で集合の要素数を表す。
【0019】
集合族に対する演算をいくつか定義する。f,gを集合族とすると、f∩g={C|C∈fかつC∈g},f∪g={C|C∈fまたはC∈g},



として、以下の二項演算を定義する。
【0020】
【0021】
次にZSDDについて説明する。ZSDDは集合族を再帰的な(X,Y)−分割によって分割し、その分割の様子をDAGとして表現したものになる。集合X,Yが台集合Zの分割、すなわち以下を満たすとする。
【0022】
すると、Zを台集合とする集合族f(Z)の(X,Y)分割は、以下(1)式で表される。
【0023】
【数1】

・・・(1)
【0024】
ここでp(X)はXを台集合とする集合族、s(Y)はYを台集合とする集合族とする。(X,Y)−分割においては、全てのi,j:1<i<j≦nに対して

であり、かつ

を満たすとする。
【0025】
台集合をZ={A,B,C,D},X={A,B},Y={C,D}としたときの、集合族{{A,B},{B},{B,C},{C,D}}の(X,Y)−分割は以下(2)式となる。
【0026】
【数2】

・・・(2)
【0027】
なお、以下では(X,Y)−分割を{(p,S),...,(p,s)}とも表す。またpをプライム(prime)、sをサブ(sub)とよぶ。(X,Y)−分割は集合族に対して再帰的に行うことができる。すなわち、例えば、上述の(X,Y)−分割におけるp={{A,B}}は、さらに(B,A)−分割によって以下のように分割することができる。
【0028】
【0029】
続いてvtreeを導入する。vtreeは台集合に含まれる各アイテムに対応する節点を葉とするような完全二分木のことである。図1は4つのアイテムA,B,C,Dに対するvtreeの例である。vtreeの中間節点(葉でない節点)vは、その部分木の葉節点からなる変数の集合の分割を表現している。すなわち、vを根とする部分木の葉節点に対応するアイテムの集合を、vの左側の子節点を根とする部分木(vとする)の葉節点に対応するアイテム集合と、vの右側の子節点を根とする部分木(vとする)の葉節点に対応するアイテム集合とに分割する。図1のvtreeの根節点v図1中では単に3と記載されている。以下、同様である)は、A,BとC,Dへの分割に対応し、根の左側の子節点vはBとAへの分割に対応する。vtreeの節点のうち、左側の子節点が葉節点であるような節点を決定vtree節点とよぶ。決定vtree節点ではない節点を分割vtree節点とよぶ。
【0030】
ZSDDはあるvtreeが与えられたときに、そのvtreeにもとづいて集合族を再帰的に分割することによって、DAGとして表現したものである。αをZSDD、αが表す集合族を<α>とすると、以下のようにZSDDは再帰的に定義される。なお、ここでいうαは、後述する簡約化処理のαとは別の対象を指す。
【0031】

【0032】
ここで

を定数ZSDDとよび、X、±XをリテラルZSDDとよぶ。{±X}はXを含みうる集合であり、X又は空集合である。定数ZSDDとリテラルZSDDとをあわせて終端ZSDDとよぶ。一方、ある(X,Y)-分割に対応するZSDDは分解ZSDDとよぶ。図2に集合族{{A,B},{B},{B,C},{C,D}}を表すZSDDを示す。図2中の丸節点は、その節点を根とするDAGが表現する分解ZSDDを表しており、丸節点を決定節点とよぶ。決定節点中の数字は対応するvtreeの節点を表している。決定節点を親節点とする四角い節点の対は要素節点とよばれ、(X,Y)分割{(p,s),...,(p,s)}における、あるプライムとサブのペア(p,s)を表している。
【0033】
対のうち左側の四角がプライムを、右側の四角がサブを表している。プライム、サブはそれぞれ別の終端ZSDDもしくは決定ZSDDであり、終端ZSDDの場合は四角中に対応する終端ZSDDの記号を表記して表し、決定ZSDDの場合は別の決定節点への矢印として表現している。ある決定節点と、その子節点である要素節点群とである(X,Y)分割を表現している。すなわち、各要素節点があるプライムとサブのペア(p,s)に対応している。なお、ZSDDではサブが

となるようなペアは省略する。
【0034】
ZSDD中に対応するような決定節点が存在するとする。
【0035】
【0036】
その場合、前者はαに、後者は

にそれぞれ置き換える。
【0037】
図2のZSDDの計算機上での表現方法を図3に示す。ZSDDは計算機上では、各中間vtree節点に対応する決定ZSDD節点の配列の集合として表現される。図3では中間vtree節点1、3、5のそれぞれについて、要素数1の配列が格納されている様子が表されている。配列の各要素は1つの決定ZSDD節点を、[(p,s),...,(p,s)]としてその子節点である要素の集まりによって表している。p,sは終端ZSDDを表す場合はその終端ZSDDに対応する記号

として、そうでない場合にはp,sが対応する決定ZSDD節点の計算機中でのアドレスを保持する。図3中ではアドレスはvtree節点IDと、そのvtree節点IDに対応する配列中での対象の決定ZSDDのインデックスのペアとして表現される。
【0038】
以下、本実施形態の構成について説明する。
【0039】
図4は、本実施形態の集合族簡約化装置の構成を示すブロック図である。
【0040】
図4に示すように、集合族簡約化装置100は、入力部110と、簡約化部120と、出力部130とを含んで構成されている。
【0041】
図5は、集合族簡約化装置100のハードウェア構成を示すブロック図である。
【0042】
図5に示すように、集合族簡約化装置100は、CPU(Central Processing Unit)11、ROM(Read Only Memory)12、RAM(Random Access Memory)13、ストレージ14、入力部15、表示部16及び通信インタフェース(I/F)17を有する。各構成は、バス19を介して相互に通信可能に接続されている。
【0043】
CPU11は、中央演算処理ユニットであり、各種プログラムを実行したり、各部を制御したりする。すなわち、CPU11は、ROM12又はストレージ14からプログラムを読み出し、RAM13を作業領域としてプログラムを実行する。CPU11は、ROM12又はストレージ14に記憶されているプログラムに従って、上記各構成の制御及び各種の演算処理を行う。本実施形態では、ROM12又はストレージ14には、集合族簡約化プログラムが格納されている。
【0044】
ROM12は、各種プログラム及び各種データを格納する。RAM13は、作業領域として一時的にプログラム又はデータを記憶する。ストレージ14は、HDD(Hard Disk Drive)又はSSD(Solid State Drive)により構成され、オペレーティングシステムを含む各種プログラム、及び各種データを格納する。
【0045】
入力部15は、マウス等のポインティングデバイス、及びキーボードを含み、各種の入力を行うために使用される。
【0046】
表示部16は、例えば、液晶ディスプレイであり、各種の情報を表示する。表示部16は、タッチパネル方式を採用して、入力部15として機能してもよい。
【0047】
通信インタフェース17は、端末等の他の機器と通信するためのインタフェースであり、例えば、イーサネット(登録商標)、FDDI、Wi−Fi(登録商標)等の規格が用いられる。
【0048】
次に、集合族簡約化装置100の各機能構成について説明する。各機能構成は、CPU11がROM12又はストレージ14に記憶された集合族簡約化プログラムを読み出し、RAM13に展開して実行することにより実現される。
【0049】
入力部110は、入力として、vtreeと、ZSDDとを受け付ける。vtreeは、上述したように、台集合Eに含まれる各要素に対応する節点を葉節点として表現した完全二分木である。ZSDDは、上述したように、台集合Eの集合族を表す有向非巡回グラフである。また、vtreeの葉節点ではない節点vに対応する決定節点と、要素節点とを含む。要素節点は、台集合Eを部分集合X、Yへ分割したときの、台集合Eに含まれる要素若しくは定数である記号を表す終端ZSDD又は決定節点への矢印を表す決定ZSDDであるプライム及びサブのペアを表す。
【0050】
簡約化部120は、初期化処理と、簡約化処理とを行って、CZSDD(Chain−reducedZSDD)を生成する。ここで、vtreeの節点vに対応するZSDDの決定節点をnとし、プライムとサブとの値のペアをペアi,jとする。決定節点n毎にZSDDが構成される。初期化処理は、決定節点nを参照する要素節点の各々のペアi,jのそれぞれについて、終端ZSDDの要素又は決定ZSDDである場合に、参照関係にある節点vに対応する値を与え、終端ZSDDの定数である場合に、所定の値を与える。簡約化処理は、決定節点nを参照する要素節点の各々について、vtreeにおける子孫から親まで順番に処理し、ZSDDを簡約化したCZSDDを生成する。ZSDDを簡約化したCZSDDを生成は、所定の条件において、当該決定節点nを参照する要素節点のペアのiが節点vの左の子節点、ペアのjが節点vの右の子節点に相当する場合に、決定節点nを省略するようにして行う。所定の条件は後述する。
【0051】
出力部130は、簡約化部120が生成したCZSDDを外部に出力する。
【0052】
簡約化部120の具体的なアルゴリズムを説明する。
【0053】
アルゴリズムの入力について、ZSDDをZ、vtreeをVと表す。出力について、Zを簡約化して得られるCZSDDをCと表す。アルゴリズムでは、以下の<1>の初期化処理で、要素節点のプライムとサブとのペアi,j、すなわち葉節点であるすべての辺について、参照関係にあるvtreeの節点vを付与する。<2>の簡約化処理で、要素節点の各々について、子孫節点から親節点まで順番に2種類の節点に関する簡約化規則を適用し、CZSDDを生成する。
【0054】
<1>では、Zの決定節点n(分割節点とも呼ぶ)から当該分割節点nの子の要素節点であるプライム及びサブのペアi,jそれぞれの辺に対して、プライム及びサブのそれぞれが参照しているvtreeの節点vに対応する値を付与する。もしプライム又はサブが定数ZSDDである場合は特殊な値を付与する。
【0055】
<2>では、<1>の初期化処理によってペアi,jそれぞれに値が付与されたZSDDの要素節点に対して、以下<2−1>、<2−2>の簡約化規則を、vtreeの子孫から親まで順番に実行する。なお、α,βは、集合族を項分岐によって表現した項分岐型グラフ(SDD)への引数である。つまり、α,βは、別のSDDを参照するためのポインタを表す。
【0056】
<2−1>:vtreeの節点vに対応する決定節点nが{(±X,β)}かつ、±X,βを指す子の要素節点にあたるプライムとサブとのペアi,jのそれぞれの値が、iが節点vの左の子節点、jが節点vの右の子節点に相当する場合に簡約化する。この場合、決定節点nを削除し、決定節点nを指すすべての節点の指す先をβに変更することで簡約化を行う。
【0057】
<2−2>:vtreeの節点vに対応する決定節点nが

であり、かつ、α,±Xを指す子の要素節点にあたるプライムとサブとのペアi,jのそれぞれの値が、iが節点vの左の子節点、jが節点vの右の子節点に相当するならば、決定節点nを削除し、決定節点nを指すすべての節点の指す先をαに変更する。
【0058】
以上のように、簡約化部120における所定の条件は、決定節点nが、引数α又は引数βと、要素を含みうる集合{±X}とにより表される場合となる。<2−1>の条件は、決定節点nが{±X,β}の場合となる。<2−2>の条件は、決定節点nが{α,±X}を含む場合となる。
【0059】
次に、集合族簡約化装置100の作用について説明する。
【0060】
図6は、集合族簡約化装置100による集合族簡約化処理の流れを示すフローチャートである。CPU11がROM12又はストレージ14から集合族簡約化プログラムを読み出して、RAM13に展開して実行することにより、集合族簡約化処理が行なわれる。集合族簡約化装置100の入力部110は、入力として、vtreeと、ZSDDとを受け付けて以下の処理を行う。また、vtreeの節点vに対応するZSDDの決定節点をnとし、プライムとサブとの値のペアをペアi,jとする。
【0061】
ステップS100において、CPU11は、簡約化部120として、決定節点nを参照する要素節点の各々のペアi,jのそれぞれについて、ペアi,jを初期化する。ペアi,jの初期化は、ペアi,jのそれぞれについて、終端ZSDDの要素又は決定ZSDDである場合に、参照関係にある節点vに対応する値を与え、終端ZSDDの定数である場合に、所定の値を与える。本ステップは上記アルゴリズム<1>に相当する。
【0062】
ステップS102において、CPU11は、簡約化部120として、決定節点nを参照する要素節点の各々について、vtreeにおける子孫から親まで順番に処理し、ZSDDを簡約化したCZSDDを生成する。ZSDDを簡約化したCZSDDを生成は、所定の条件において、ペアのiが節点vの左の子節点、ペアのjが節点vの右の子節点に相当する場合に、決定節点nを省略するようにして行う。本ステップは上記アルゴリズム<2>に相当する。
【0063】
ステップS104において、CPU11は、出力部130として、生成したCZSDDを外部に出力し、処理を終了する。
【0064】
以上説明したように本実施形態の集合族簡約化装置100によれば、集合族に関する各種演算を高速に行うためのグラフを効率的に構築することができる。
【0065】
本実施形態を適用することで、集合族を計算機のメモリを利用する量を抑えながら簡潔にグラフとして表現することができる。また、CZSDDを用いればZSDDよりも計算機の使用メモリ量を抑えるだけでなく、集合族を表現するグラフの大きさに比例する処理時間で数え上げ、最適化、及び集合族のメンバシップ判定等の演算の高速化を実現できる。
【0066】
なお、上記各実施形態でCPUがソフトウェア(プログラム)を読み込んで実行した集合族簡約化を、CPU以外の各種のプロセッサが実行してもよい。この場合のプロセッサとしては、FPGA(Field−Programmable Gate Array)等の製造後に回路構成を変更可能なPLD(Programmable Logic Device)、及びASIC(Application Specific Integrated Circuit)等の特定の処理を実行させるために専用に設計された回路構成を有するプロセッサである専用電気回路等が例示される。また、集合族簡約化を、これらの各種のプロセッサのうちの1つで実行してもよいし、同種又は異種の2つ以上のプロセッサの組み合わせ(例えば、複数のFPGA、及びCPUとFPGAとの組み合わせ等)で実行してもよい。また、これらの各種のプロセッサのハードウェア的な構造は、より具体的には、半導体素子等の回路素子を組み合わせた電気回路である。
【0067】
また、上記各実施形態では、集合族簡約化プログラムがストレージ14に予め記憶(インストール)されている態様を説明したが、これに限定されない。プログラムは、CD−ROM(Compact Disk Read Only Memory)、DVD−ROM(Digital Versatile Disk Read Only Memory)、及びUSB(Universal Serial Bus)メモリ等の非一時的(non−transitory)記憶媒体に記憶された形態で提供されてもよい。また、プログラムは、ネットワークを介して外部装置からダウンロードされる形態としてもよい。
【0068】
以上の実施形態に関し、更に以下の付記を開示する。
【0069】
(付記項1)
メモリと、
前記メモリに接続された少なくとも1つのプロセッサと、
を含み、
前記プロセッサは、
台集合Eに含まれる各要素に対応する節点を葉節点として表現した完全二分木であるvtreeと、前記台集合Eの集合族を表す有向非巡回グラフであって、前記vtreeの前記葉節点ではない節点vに対応する決定節点と、前記台集合Eを部分集合X、Yへ分割したときの、前記台集合Eに含まれる要素若しくは定数である記号を表す終端ZSDD又は前記決定節点への矢印を表す決定ZSDDであるプライム及びサブのペアを表す要素節点とを含むZSDD(Zero−suppressed Sentential Decision Diagram)とを受け付け、
前記vtreeの前記節点vに対応する前記ZSDDの前記決定節点をnとし、前記プライムと前記サブとの値のペアをペアi,jとした場合に、決定節点nを参照する前記要素節点の各々のペアi,jのそれぞれについて、前記終端ZSDDの前記要素又は前記決定ZSDDである場合に、参照関係にある前記節点vに対応する値を与え、前記終端ZSDDの前記定数である場合に、所定の値を与えるように前記ペアi,jを初期化し、
前記決定節点nを参照する前記要素節点の各々について、前記vtreeにおける子孫から親まで順番に、所定の条件において、前記ペアのiが前記節点vの左の子節点、前記ペアのjが前記節点vの右の子節点に相当する場合に、前記決定節点nを省略するように、前記ZSDDを簡約化したCZSDD(Chain−reducedZSDD)を生成する、
ように構成されている集合族簡約化装置。
【0070】
(付記項2)
台集合Eに含まれる各要素に対応する節点を葉節点として表現した完全二分木であるvtreeと、前記台集合Eの集合族を表す有向非巡回グラフであって、前記vtreeの前記葉節点ではない節点vに対応する決定節点と、前記台集合Eを部分集合X、Yへ分割したときの、前記台集合Eに含まれる要素若しくは定数である記号を表す終端ZSDD又は前記決定節点への矢印を表す決定ZSDDであるプライム及びサブのペアを表す要素節点とを含むZSDD(Zero−suppressed Sentential Decision Diagram)とを受け付け、
前記vtreeの前記節点vに対応する前記ZSDDの前記決定節点をnとし、前記プライムと前記サブとの値のペアをペアi,jとした場合に、決定節点nを参照する前記要素節点の各々のペアi,jのそれぞれについて、前記終端ZSDDの前記要素又は前記決定ZSDDである場合に、参照関係にある前記節点vに対応する値を与え、前記終端ZSDDの前記定数である場合に、所定の値を与えるように前記ペアi,jを初期化し、
前記決定節点nを参照する前記要素節点の各々について、前記vtreeにおける子孫から親まで順番に、所定の条件において、前記ペアのiが前記節点vの左の子節点、前記ペアのjが前記節点vの右の子節点に相当する場合に、前記決定節点nを省略するように、前記ZSDDを簡約化したCZSDD(Chain−reducedZSDD)を生成する、
ンピュータに実行させる集合族簡約化プログラムを記憶した非一時的記憶媒体。
【符号の説明】
【0071】
100 集合族簡約化装置
110 入力部
120 簡約化部
130 出力部
図1
図2
図3
図4
図5
図6