(57)【要約】【課題】集合族に関する各種演算を高速に行うためのグラフを効率的に構築することができる。【解決手段】要約書  決定節点ｎを参照する要素節点の各々のペアｉ,ｊのそれぞれについて、終端ＺＳＤＤの要素又は決定ＺＳＤＤである場合に、参照関係にある節点に対応する値を与え、終端ＺＳＤＤの定数である場合に、所定の値を与えるようにペアｉ,ｊを初期化し、要素節点の各々について、ｖｔｒｅｅにおける子孫から親まで順番に、所定の条件において、ペアのｉが節点ｖの左の子節点、ペアのｊが節点ｖの右の子節点に相当する場合に、決定節点ｎを省略するように、ＺＳＤＤを簡約化したＣＺＳＤＤ（Ｃｈａｉｎ−ｒｅｄｕｃｅｄＺＳＤＤ）を生成する。【選択図】図４
2020204938.tif 000002
【特許請求の範囲】
【請求項１】
台集合Ｅに含まれる各要素に対応する節点を葉節点として表現した完全二分木であるｖｔｒｅｅと、前記台集合Ｅの集合族を表す有向非巡回グラフであって、前記ｖｔｒｅｅの前記葉節点ではない節点ｖに対応する決定節点と、前記台集合Ｅを部分集合Ｘ、Ｙへ分割したときの、前記台集合Ｅに含まれる要素若しくは定数である記号を表す終端ＺＳＤＤ又は前記決定節点への矢印を表す決定ＺＳＤＤであるプライム及びサブのペアを表す要素節点とを含むＺＳＤＤ（Ｚｅｒｏ−ｓｕｐｐｒｅｓｓｅｄ  Ｓｅｎｔｅｎｔｉａｌ  Ｄｅｃｉｓｉｏｎ  Ｄｉａｇｒａｍ）とを受け付け、
前記ｖｔｒｅｅの前記節点ｖに対応する前記ＺＳＤＤの前記決定節点をｎとし、前記プライムと前記サブとの値のペアをペアｉ,ｊとした場合に、決定節点ｎを参照する前記要素節点の各々のペアｉ,ｊのそれぞれについて、前記終端ＺＳＤＤの前記要素又は前記決定ＺＳＤＤである場合に、参照関係にある前記節点ｖに対応する値を与え、前記終端ＺＳＤＤの前記定数である場合に、所定の値を与えるように前記ペアｉ,ｊを初期化し、
前記決定節点ｎを参照する前記要素節点の各々について、前記ｖｔｒｅｅにおける子孫から親まで順番に、所定の条件において、前記ペアのｉが前記節点ｖの左の子節点、前記ペアのｊが前記節点ｖの右の子節点に相当する場合に、前記決定節点ｎを省略するように、前記ＺＳＤＤを簡約化したＣＺＳＤＤ（Ｃｈａｉｎ−ｒｅｄｕｃｅｄＺＳＤＤ）を生成する簡約化部、
を含む集合族簡約化装置。
【請求項２】
前記簡約化部は、前記所定の条件は、前記決定節点ｎが、前記ＺＳＤＤに含まれうる、集合族を項分岐によって表現した項分岐型グラフへの引数と、前記要素を含みうる集合とにより表される場合とする請求項１に記載の集合族簡約化装置。
【請求項３】
前記項分岐型グラフへの引数をα又はβとし、前記要素をＸとし、要素Ｘを含みうる集合を｛±Ｘ｝とした場合に、
前記所定の条件は、前記決定節点ｎが｛±Ｘ，β｝である場合、及び前記決定節点ｎが｛α，±Ｘ｝を含む場合の少なくとも一方とする請求項２に記載の集合族簡約化装置。
【請求項４】
台集合Ｅに含まれる各要素に対応する節点を葉節点として表現した完全二分木であるｖｔｒｅｅと、前記台集合Ｅの集合族を表す有向非巡回グラフであって、前記ｖｔｒｅｅの前記葉節点ではない節点ｖに対応する決定節点と、前記台集合Ｅを部分集合Ｘ、Ｙへ分割したときの、前記台集合Ｅに含まれる要素若しくは定数である記号を表す終端ＺＳＤＤ又は前記決定節点への矢印を表す決定ＺＳＤＤであるプライム及びサブのペアを表す要素節点とを含むＺＳＤＤ（Ｚｅｒｏ−ｓｕｐｐｒｅｓｓｅｄ  Ｓｅｎｔｅｎｔｉａｌ  Ｄｅｃｉｓｉｏｎ  Ｄｉａｇｒａｍ）とを受け付け、
前記ｖｔｒｅｅの前記節点ｖに対応する前記ＺＳＤＤの前記決定節点をｎとし、前記プライムと前記サブとの値のペアをペアｉ,ｊとした場合に、決定節点ｎを参照する前記要素節点の各々のペアｉ,ｊのそれぞれについて、前記終端ＺＳＤＤの前記要素又は前記決定ＺＳＤＤである場合に、参照関係にある前記節点ｖに対応する値を与え、前記終端ＺＳＤＤの前記定数である場合に、所定の値を与えるように前記ペアｉ,ｊを初期化し、
前記決定節点ｎを参照する前記要素節点の各々について、前記ｖｔｒｅｅにおける子孫から親まで順番に、所定の条件において、前記ペアのｉが前記節点ｖの左の子節点、前記ペアのｊが前記節点ｖの右の子節点に相当する場合に、前記決定節点ｎを省略するように、前記ＺＳＤＤを簡約化したＣＺＳＤＤ（Ｃｈａｉｎ−ｒｅｄｕｃｅｄＺＳＤＤ）を生成する、
ことを含む処理をコンピュータが実行することを特徴とする集合族簡約化方法。
【請求項５】
前記所定の条件は、前記決定節点ｎが、前記ＺＳＤＤに含まれうる、集合族を項分岐によって表現した項分岐型グラフへの引数と、前記要素を含みうる集合とにより表される場合とする請求項４に記載の集合族簡約化方法。
【請求項６】
前記項分岐型グラフへの引数をα又はβとし、前記要素をＸとし、要素Ｘを含みうる集合を｛±Ｘ｝とした場合に、
前記所定の条件は、前記決定節点ｎが｛±Ｘ，β｝である場合、及び前記決定節点ｎが｛α，±Ｘ｝を含む場合の少なくとも一方とする請求項５に記載の集合族簡約化方法。
【請求項７】
台集合Ｅに含まれる各要素に対応する節点を葉節点として表現した完全二分木であるｖｔｒｅｅと、前記台集合Ｅの集合族を表す有向非巡回グラフであって、前記ｖｔｒｅｅの前記葉節点ではない節点ｖに対応する決定節点と、前記台集合Ｅを部分集合Ｘ、Ｙへ分割したときの、前記台集合Ｅに含まれる要素若しくは定数である記号を表す終端ＺＳＤＤ又は前記決定節点への矢印を表す決定ＺＳＤＤであるプライム及びサブのペアを表す要素節点とを含むＺＳＤＤ（Ｚｅｒｏ−ｓｕｐｐｒｅｓｓｅｄ  Ｓｅｎｔｅｎｔｉａｌ  Ｄｅｃｉｓｉｏｎ  Ｄｉａｇｒａｍ）とを受け付け、
前記ｖｔｒｅｅの前記節点ｖに対応する前記ＺＳＤＤの前記決定節点をｎとし、前記プライムと前記サブとの値のペアをペアｉ,ｊとした場合に、決定節点ｎを参照する前記要素節点の各々のペアｉ,ｊのそれぞれについて、前記終端ＺＳＤＤの前記要素又は前記決定ＺＳＤＤである場合に、参照関係にある前記節点ｖに対応する値を与え、前記終端ＺＳＤＤの前記定数である場合に、所定の値を与えるように前記ペアｉ,ｊを初期化し、
前記決定節点ｎを参照する前記要素節点の各々について、前記ｖｔｒｅｅにおける子孫から親まで順番に、所定の条件において、前記ペアのｉが前記節点ｖの左の子節点、前記ペアのｊが前記節点ｖの右の子節点に相当する場合に、前記決定節点ｎを省略するように、前記ＺＳＤＤを簡約化したＣＺＳＤＤ（Ｃｈａｉｎ−ｒｅｄｕｃｅｄＺＳＤＤ）を生成する、
ことをコンピュータに実行させる集合族簡約化プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
開示の技術は、集合族簡約化装置、集合族簡約化方法、及び集合族簡約化プログラムに関する。
【背景技術】
【０００２】
集合Ｓが与えられたとき、Ｓの部分集合を要素とするような集合は集合族とよばれる。様々な問題は、集合族を対象とした計算問題に帰着して解くことができる。たとえば、グラフＧ＝（Ｖ，Ｅ）が与えられたとき、グラフのマッチングとはＥの部分集合のうち、端点を共有するものが存在しないもののことをいう。そのため、マッチングの集合はＥを台集合とした集合族として表現することが可能である。マッチングのうち最大のものを選択する問題は最大マッチング問題とよばれ、多くの応用問題が最大マッチング問題に帰着して解かれている。最大マッチング問題は、可能なマッチングの集合が集合族として表現されているのであれば、集合族の中から最大のものを選択する問題として解くことができる。そのほかにも、例えばｎ入力の論理回路の出力を真とするような入力変数の組合せの集合も集合族として表現できる。真となる入力の組合せを一つ見つける問題は集合族の要素を一つ見つける問題として定式化できる。あるいは出力を真とする可能なすべての組合せの個数を調べる問題は、集合族の濃度（ｃａｒｄｉｎａｒｉｔｙ）を調べる問題として定式化できる。
このような、集合族に関連する様々な課題を解くための方法の一つとして、集合族を計算機上で効率的に表現した上で問題を解くための方法が知られている。ゼロサプレス型項分岐決定グラフ（Ｚｅｒｏ−ｓｕｐｐｒｅｓｓｅｄ  Ｓｅｎｔｅｎｔｉａｌ  Ｄｅｃｉｓｉｏｎ  Ｄｉａｇｒａｍｓ，ＺＳＤＤ）（非特許文献１）はそのような表現方法の一種である。ＺＳＤＤは、有向グラフとして集合族を表現することで、計算機のメモリを節約した、簡潔な形で集合族を表現することができる。さらに、ＺＳＤＤとして集合族を表現すると、ＺＳＤＤの大きさ（有向グラフの辺の数）に比例する時間で、集合族の濃度を数えたり、集合族に含まれる要素を一つ取り出したりといった演算が実行可能である。
ＺＳＤＤの他にも、集合族を簡潔に表現できる決定グラフの変種が存在する。項分岐型決定グラフ（Ｓｅｎｔｅｎｔｉａｌ  Ｄｅｃｉｓｉｏｎ  Ｄｉａｇｒａｍｓ，ＳＤＤ）（非特許文献２）はそのような決定グラフの一種であり。ＺＳＤＤと同様に集合族を簡潔に表現して様々な演算を実行することが可能である。
【先行技術文献】
【非特許文献】
【０００３】
【非特許文献１】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.
【非特許文献２】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
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ＺＳＤＤの大きさは、表現する対象の集合族に依存する。対象によってはＺＳＤＤのほうが簡潔に表現できるが、一方でＳＤＤのほうが簡潔に表現できる対象も存在する。表現の大きさは計算機が必要とするメモリの量や演算の効率性に大きく影響するため、ＺＳＤＤとＳＤＤとで簡潔な表現を選択することが望まれる。しかし、どちらのほうが小さく表現できるかは実際に表現してみないとわからないため、適切な表現を事前に選ばなければならないという課題があった。
【０００５】
開示の技術は、上記の点に鑑みてなされたものであり、集合族に関する各種演算を高速に行うためのグラフを効率的に構築することができる集合族簡約化装置、集合族簡約化方法、及び集合族簡約化プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
本開示の第１態様は、集合族簡約化装置であって、台集合Ｅに含まれる各要素に対応する節点を葉節点として表現した完全二分木であるｖｔｒｅｅと、前記台集合Ｅの集合族を表す有向非巡回グラフであって、前記ｖｔｒｅｅの前記葉節点ではない節点ｖに対応する決定節点と、前記台集合Ｅを部分集合Ｘ、Ｙへ分割したときの、前記台集合Ｅに含まれる要素若しくは定数である記号を表す終端ＺＳＤＤ又は前記決定節点への矢印を表す決定ＺＳＤＤであるプライム及びサブのペアを表す要素節点とを含むＺＳＤＤ（Ｚｅｒｏ−ｓｕｐｐｒｅｓｓｅｄ  Ｓｅｎｔｅｎｔｉａｌ  Ｄｅｃｉｓｉｏｎ  Ｄｉａｇｒａｍ）とを受け付け、前記ｖｔｒｅｅの前記節点ｖに対応する前記ＺＳＤＤの前記決定節点をｎとし、前記プライムと前記サブとの値のペアをペアｉ,ｊとした場合に、決定節点ｎを参照する前記要素節点の各々のペアｉ,ｊのそれぞれについて、前記終端ＺＳＤＤの前記要素又は前記決定ＺＳＤＤである場合に、参照関係にある前記節点ｖに対応する値を与え、前記終端ＺＳＤＤの前記定数である場合に、所定の値を与えるように前記ペアｉ,ｊを初期化し、前記決定節点ｎを参照する前記要素節点の各々について、前記ｖｔｒｅｅにおける子孫から親まで順番に、所定の条件において、前記ペアのｉが前記節点ｖの左の子節点、前記ペアのｊが前記節点ｖの右の子節点に相当する場合に、前記決定節点ｎを省略するように、前記ＺＳＤＤを簡約化したＣＺＳＤＤ（Ｃｈａｉｎ−ｒｅｄｕｃｅｄＺＳＤＤ）を生成する簡約化部、を含む。
【０００７】
本開示の本開示の第２態様は、集合族簡約化方法であって、台集合Ｅに含まれる各要素に対応する節点を葉節点として表現した完全二分木であるｖｔｒｅｅと、前記台集合Ｅの集合族を表す有向非巡回グラフであって、前記ｖｔｒｅｅの前記葉節点ではない節点ｖに対応する決定節点と、前記台集合Ｅを部分集合Ｘ、Ｙへ分割したときの、前記台集合Ｅに含まれる要素若しくは定数である記号を表す終端ＺＳＤＤ又は前記決定節点への矢印を表す決定ＺＳＤＤであるプライム及びサブのペアを表す要素節点とを含むＺＳＤＤ（Ｚｅｒｏ−ｓｕｐｐｒｅｓｓｅｄ  Ｓｅｎｔｅｎｔｉａｌ  Ｄｅｃｉｓｉｏｎ  Ｄｉａｇｒａｍ）とを受け付け、前記ｖｔｒｅｅの前記節点ｖに対応する前記ＺＳＤＤの前記決定節点をｎとし、前記プライムと前記サブとの値のペアをペアｉ,ｊとした場合に、決定節点ｎを参照する前記要素節点の各々のペアｉ,ｊのそれぞれについて、前記終端ＺＳＤＤの前記要素又は前記決定ＺＳＤＤである場合に、参照関係にある前記節点ｖに対応する値を与え、前記終端ＺＳＤＤの前記定数である場合に、所定の値を与えるように前記ペアｉ,ｊを初期化し、前記決定節点ｎを参照する前記要素節点の各々について、前記ｖｔｒｅｅにおける子孫から親まで順番に、所定の条件において、前記ペアのｉが前記節点ｖの左の子節点、前記ペアのｊが前記節点ｖの右の子節点に相当する場合に、前記決定節点ｎを省略するように、前記ＺＳＤＤを簡約化したＣＺＳＤＤ（Ｃｈａｉｎ−ｒｅｄｕｃｅｄＺＳＤＤ）を生成する、ことを含む処理をコンピュータが実行することを特徴とする。
【０００８】
本開示の本開示の第３態様は、集合族簡約化プログラムであって、台集合Ｅに含まれる各要素に対応する節点を葉節点として表現した完全二分木であるｖｔｒｅｅと、前記台集合Ｅの集合族を表す有向非巡回グラフであって、前記ｖｔｒｅｅの前記葉節点ではない節点ｖに対応する決定節点と、前記台集合Ｅを部分集合Ｘ、Ｙへ分割したときの、前記台集合Ｅに含まれる要素若しくは定数である記号を表す終端ＺＳＤＤ又は前記決定節点への矢印を表す決定ＺＳＤＤであるプライム及びサブのペアを表す要素節点とを含むＺＳＤＤ（Ｚｅｒｏ−ｓｕｐｐｒｅｓｓｅｄ  Ｓｅｎｔｅｎｔｉａｌ  Ｄｅｃｉｓｉｏｎ  Ｄｉａｇｒａｍ）とを受け付け、前記ｖｔｒｅｅの前記節点ｖに対応する前記ＺＳＤＤの前記決定節点をｎとし、前記プライムと前記サブとの値のペアをペアｉ,ｊとした場合に、決定節点ｎを参照する前記要素節点の各々のペアｉ,ｊのそれぞれについて、前記終端ＺＳＤＤの前記要素又は前記決定ＺＳＤＤである場合に、参照関係にある前記節点ｖに対応する値を与え、前記終端ＺＳＤＤの前記定数である場合に、所定の値を与えるように前記ペアｉ,ｊを初期化し、前記決定節点ｎを参照する前記要素節点の各々について、前記ｖｔｒｅｅにおける子孫から親まで順番に、所定の条件において、前記ペアのｉが前記節点ｖの左の子節点、前記ペアのｊが前記節点ｖの右の子節点に相当する場合に、前記決定節点ｎを省略するように、前記ＺＳＤＤを簡約化したＣＺＳＤＤ（Ｃｈａｉｎ−ｒｅｄｕｃｅｄＺＳＤＤ）を生成する、ことをコンピュータに実行させる。
【発明の効果】
【０００９】
開示の技術によれば、集合族に関する各種演算を高速に行うためのグラフを効率的に構築することができる。
【図面の簡単な説明】
【００１０】
【図１】ｖｔｒｅｅの一例を示す図である。
【図２】ＺＳＤＤの一例を示す図である。
【図３】ＺＳＤＤの計算機上での表現の一例を示す図である。
【図４】本実施形態の集合族簡約化装置の構成を示すブロック図である。
【図５】集合族簡約化装置のハードウェア構成を示すブロック図である。
【図６】集合族簡約化装置による集合族簡約化処理の流れを示すフローチャートである。
【発明を実施するための形態】
【００１１】
以下、開示の技術の実施形態の一例を、図面を参照しつつ説明する。なお、各図面において同一又は等価な構成要素及び部分には同一の参照符号を付与している。また、図面の寸法比率は、説明の都合上誇張されており、実際の比率とは異なる場合がある。
＜本開示の実施形態に係る概要＞
【００１２】
まず、本開示の実施形態における概要を説明する。
【００１３】
本開示の実施形態では、ＺＳＤＤをさらに簡約化するための簡約化規則を導入する。新しい規則は特殊な形状の部分グラフが出現したときに、その部分グラフを単一の節点に置き換えることによってＺＳＤＤの大きさを削減する。新しい規則を適用して得られたＺＳＤＤをＣｈａｉｎ−ｒｅｄｕｃｅｄＺＳＤＤ（ＣＺＳＤＤ）とよぶ。ＣＺＳＤＤはＺＳＤＤよりも常に小さく、かつＳＤＤと比べても定数倍にしか大きくならないという特徴をもつため、常に小さな表現を得る事が可能となる。
【００１４】
＜本開示の実施形態に係る原理＞
【００１５】
次に、本開示の実施形態における原理を説明する。
【００１６】
まず、集合族を定義する。集合族とは、ある台集合Ｚ＝｛Ａ，Ｂ，Ｃ，．．．，｝について、その部分集合Ｓ⊆Ｚを要素とするような集合のことである。例えばＺ＝｛Ａ，Ｂ，Ｃ，Ｄ｝とすると、｛｛Ａ，Ｂ｝，｛Ｂ｝，｛Ｂ，Ｃ｝，｛Ｃ，Ｄ｝｝はＺを台集合とする集合族である。以下の記号は空集合を表す。
【００１７】
2020204938.tif 000003
【００１８】
記号２ＺはＺのべき集合、すなわちＺの可能な全ての部分集合から構成される集合族を表すとする。また、｜Ｚ｜で集合の要素数を表す。
【００１９】
集合族に対する演算をいくつか定義する。ｆ，ｇを集合族とすると、ｆ∩ｇ＝｛Ｃ｜Ｃ∈ｆかつＣ∈ｇ｝，f∪ｇ＝｛Ｃ｜Ｃ∈ｆまたはＣ∈ｇ｝，
2020204938.tif 000004
，
2020204938.tif 000005
として、以下の二項演算を定義する。
【００２０】
2020204938.tif 000006
【００２１】
次にＺＳＤＤについて説明する。ＺＳＤＤは集合族を再帰的な（Ｘ，Ｙ）−分割によって分割し、その分割の様子をＤＡＧとして表現したものになる。集合Ｘ，Ｙが台集合Ｚの分割、すなわち以下を満たすとする。
2020204938.tif 000007
【００２２】
すると、Ｚを台集合とする集合族ｆ（Ｚ）の（Ｘ，Ｙ）分割は、以下（１）式で表される。
【００２３】
【数１】
2020204938.tif 000008
・・・（１）
【００２４】
ここでｐｉ（Ｘ）はＸを台集合とする集合族、ｓｉ（Ｙ）はＹを台集合とする集合族とする。（Ｘ，Ｙ）−分割においては、全てのｉ，ｊ：１＜ｉ＜ｊ≦ｎに対して
2020204938.tif 000009
であり、かつ
2020204938.tif 000010
を満たすとする。
【００２５】
台集合をＺ＝｛Ａ，Ｂ，Ｃ，Ｄ｝，Ｘ＝｛Ａ，Ｂ｝，Ｙ＝｛Ｃ，Ｄ｝としたときの、集合族｛｛Ａ，Ｂ｝，｛Ｂ｝，｛Ｂ，Ｃ｝，｛Ｃ，Ｄ｝｝の（Ｘ，Ｙ）−分割は以下（２）式となる。
【００２６】
【数２】
2020204938.tif 000011
・・・（２）
【００２７】
なお、以下では（Ｘ，Ｙ）−分割を｛（ｐ１，Ｓ１），．．．，（ｐｎ，ｓｎ）｝とも表す。またｐｉをプライム（ｐｒｉｍｅ）、ｓｉをサブ（ｓｕｂ）とよぶ。（Ｘ，Ｙ）−分割は集合族に対して再帰的に行うことができる。すなわち、例えば、上述の（Ｘ，Ｙ）−分割におけるｐ１＝｛｛Ａ，Ｂ｝｝は、さらに（Ｂ，Ａ）−分割によって以下のように分割することができる。
【００２８】
2020204938.tif 000012
【００２９】
続いてｖｔｒｅｅを導入する。ｖｔｒｅｅは台集合に含まれる各アイテムに対応する節点を葉とするような完全二分木のことである。図１は４つのアイテムＡ，Ｂ，Ｃ，Ｄに対するｖｔｒｅｅの例である。ｖｔｒｅｅの中間節点（葉でない節点）ｖは、その部分木の葉節点からなる変数の集合の分割を表現している。すなわち、ｖを根とする部分木の葉節点に対応するアイテムの集合を、ｖの左側の子節点を根とする部分木（ｖｌとする）の葉節点に対応するアイテム集合と、ｖの右側の子節点を根とする部分木（ｖｒとする）の葉節点に対応するアイテム集合とに分割する。図１のｖｔｒｅｅの根節点ｖ３（図１中では単に３と記載されている。以下、同様である）は、Ａ，ＢとＣ，Ｄへの分割に対応し、根の左側の子節点ｖ１はＢとＡへの分割に対応する。ｖｔｒｅｅの節点のうち、左側の子節点が葉節点であるような節点を決定ｖｔｒｅｅ節点とよぶ。決定ｖｔｒｅｅ節点ではない節点を分割ｖｔｒｅｅ節点とよぶ。
【００３０】
ＺＳＤＤはあるｖｔｒｅｅが与えられたときに、そのｖｔｒｅｅにもとづいて集合族を再帰的に分割することによって、ＤＡＧとして表現したものである。αをＺＳＤＤ、αが表す集合族を<α>とすると、以下のようにＺＳＤＤは再帰的に定義される。なお、ここでいうαは、後述する簡約化処理のαとは別の対象を指す。
【００３１】
2020204938.tif 000013
2020204938.tif 000014
【００３２】
ここで
2020204938.tif 000015
を定数ＺＳＤＤとよび、Ｘ、±ＸをリテラルＺＳＤＤとよぶ。｛±Ｘ｝はＸを含みうる集合であり、Ｘ又は空集合である。定数ＺＳＤＤとリテラルＺＳＤＤとをあわせて終端ＺＳＤＤとよぶ。一方、ある（Ｘ，Ｙ）-分割に対応するＺＳＤＤは分解ＺＳＤＤとよぶ。図２に集合族｛｛Ａ，Ｂ｝，｛Ｂ｝，｛Ｂ，Ｃ｝，｛Ｃ，Ｄ｝｝を表すＺＳＤＤを示す。図２中の丸節点は、その節点を根とするＤＡＧが表現する分解ＺＳＤＤを表しており、丸節点を決定節点とよぶ。決定節点中の数字は対応するｖｔｒｅｅの節点を表している。決定節点を親節点とする四角い節点の対は要素節点とよばれ、（Ｘ，Ｙ）分割｛（ｐ１，ｓ１），．．．，（ｐｎ，ｓｎ）｝における、あるプライムとサブのペア（ｐｉ，ｓｉ）を表している。
【００３３】
対のうち左側の四角がプライムを、右側の四角がサブを表している。プライム、サブはそれぞれ別の終端ＺＳＤＤもしくは決定ＺＳＤＤであり、終端ＺＳＤＤの場合は四角中に対応する終端ＺＳＤＤの記号を表記して表し、決定ＺＳＤＤの場合は別の決定節点への矢印として表現している。ある決定節点と、その子節点である要素節点群とである（Ｘ，Ｙ）分割を表現している。すなわち、各要素節点があるプライムとサブのペア（ｐ，ｓ）に対応している。なお、ＺＳＤＤではサブが
2020204938.tif 000016
となるようなペアは省略する。
【００３４】
ＺＳＤＤ中に対応するような決定節点が存在するとする。
【００３５】
2020204938.tif 000017
【００３６】
その場合、前者はαに、後者は
2020204938.tif 000018
にそれぞれ置き換える。
【００３７】
図２のＺＳＤＤの計算機上での表現方法を図３に示す。ＺＳＤＤは計算機上では、各中間ｖｔｒｅｅ節点に対応する決定ＺＳＤＤ節点の配列の集合として表現される。図３では中間ｖｔｒｅｅ節点１、３、５のそれぞれについて、要素数１の配列が格納されている様子が表されている。配列の各要素は１つの決定ＺＳＤＤ節点を、[（ｐ１，ｓ１），．．．，（ｐｎ，ｓｎ）］としてその子節点である要素の集まりによって表している。ｐｉ，ｓｉは終端ＺＳＤＤを表す場合はその終端ＺＳＤＤに対応する記号
2020204938.tif 000019
として、そうでない場合にはｐｉ，ｓｉが対応する決定ＺＳＤＤ節点の計算機中でのアドレスを保持する。図３中ではアドレスはｖｔｒｅｅ節点ＩＤと、そのｖｔｒｅｅ節点ＩＤに対応する配列中での対象の決定ＺＳＤＤのインデックスのペアとして表現される。
【００３８】
以下、本実施形態の構成について説明する。
【００３９】
図４は、本実施形態の集合族簡約化装置の構成を示すブロック図である。
【００４０】
図４に示すように、集合族簡約化装置１００は、入力部１１０と、簡約化部１２０と、出力部１３０とを含んで構成されている。
【００４１】
図５は、集合族簡約化装置１００のハードウェア構成を示すブロック図である。
【００４２】
図５に示すように、集合族簡約化装置１００は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１１、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）１２、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）１３、ストレージ１４、入力部１５、表示部１６及び通信インタフェース（Ｉ／Ｆ）１７を有する。各構成は、バス１９を介して相互に通信可能に接続されている。
【００４３】
ＣＰＵ１１は、中央演算処理ユニットであり、各種プログラムを実行したり、各部を制御したりする。すなわち、ＣＰＵ１１は、ＲＯＭ１２又はストレージ１４からプログラムを読み出し、ＲＡＭ１３を作業領域としてプログラムを実行する。ＣＰＵ１１は、ＲＯＭ１２又はストレージ１４に記憶されているプログラムに従って、上記各構成の制御及び各種の演算処理を行う。本実施形態では、ＲＯＭ１２又はストレージ１４には、集合族簡約化プログラムが格納されている。
【００４４】
ＲＯＭ１２は、各種プログラム及び各種データを格納する。ＲＡＭ１３は、作業領域として一時的にプログラム又はデータを記憶する。ストレージ１４は、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）又はＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）により構成され、オペレーティングシステムを含む各種プログラム、及び各種データを格納する。
【００４５】
入力部１５は、マウス等のポインティングデバイス、及びキーボードを含み、各種の入力を行うために使用される。
【００４６】
表示部１６は、例えば、液晶ディスプレイであり、各種の情報を表示する。表示部１６は、タッチパネル方式を採用して、入力部１５として機能してもよい。
【００４７】
通信インタフェース１７は、端末等の他の機器と通信するためのインタフェースであり、例えば、イーサネット（登録商標）、ＦＤＤＩ、Ｗｉ−Ｆｉ（登録商標）等の規格が用いられる。
【００４８】
次に、集合族簡約化装置１００の各機能構成について説明する。各機能構成は、ＣＰＵ１１がＲＯＭ１２又はストレージ１４に記憶された集合族簡約化プログラムを読み出し、ＲＡＭ１３に展開して実行することにより実現される。
【００４９】
入力部１１０は、入力として、ｖｔｒｅｅと、ＺＳＤＤとを受け付ける。ｖｔｒｅｅは、上述したように、台集合Ｅに含まれる各要素に対応する節点を葉節点として表現した完全二分木である。ＺＳＤＤは、上述したように、台集合Ｅの集合族を表す有向非巡回グラフである。また、ｖｔｒｅｅの葉節点ではない節点ｖに対応する決定節点と、要素節点とを含む。要素節点は、台集合Ｅを部分集合Ｘ、Ｙへ分割したときの、台集合Ｅに含まれる要素若しくは定数である記号を表す終端ＺＳＤＤ又は決定節点への矢印を表す決定ＺＳＤＤであるプライム及びサブのペアを表す。
【００５０】
簡約化部１２０は、初期化処理と、簡約化処理とを行って、ＣＺＳＤＤ（Ｃｈａｉｎ−ｒｅｄｕｃｅｄＺＳＤＤ）を生成する。ここで、ｖｔｒｅｅの節点ｖに対応するＺＳＤＤの決定節点をｎとし、プライムとサブとの値のペアをペアｉ,ｊとする。決定節点ｎ毎にＺＳＤＤが構成される。初期化処理は、決定節点ｎを参照する要素節点の各々のペアｉ,ｊのそれぞれについて、終端ＺＳＤＤの要素又は決定ＺＳＤＤである場合に、参照関係にある節点ｖに対応する値を与え、終端ＺＳＤＤの定数である場合に、所定の値を与える。簡約化処理は、決定節点ｎを参照する要素節点の各々について、ｖｔｒｅｅにおける子孫から親まで順番に処理し、ＺＳＤＤを簡約化したＣＺＳＤＤを生成する。ＺＳＤＤを簡約化したＣＺＳＤＤを生成は、所定の条件において、当該決定節点ｎを参照する要素節点のペアのｉが節点ｖの左の子節点、ペアのｊが節点ｖの右の子節点に相当する場合に、決定節点ｎを省略するようにして行う。所定の条件は後述する。
【００５１】
出力部１３０は、簡約化部１２０が生成したＣＺＳＤＤを外部に出力する。
【００５２】
簡約化部１２０の具体的なアルゴリズムを説明する。
【００５３】
アルゴリズムの入力について、ＺＳＤＤをＺ、ｖｔｒｅｅをＶと表す。出力について、Ｚを簡約化して得られるＣＺＳＤＤをＣと表す。アルゴリズムでは、以下の＜１＞の初期化処理で、要素節点のプライムとサブとのペアｉ，ｊ、すなわち葉節点であるすべての辺について、参照関係にあるｖｔｒｅｅの節点ｖを付与する。＜２＞の簡約化処理で、要素節点の各々について、子孫節点から親節点まで順番に２種類の節点に関する簡約化規則を適用し、ＣＺＳＤＤを生成する。
【００５４】
＜１＞では、Ｚの決定節点ｎ（分割節点とも呼ぶ）から当該分割節点ｎの子の要素節点であるプライム及びサブのペアｉ，ｊそれぞれの辺に対して、プライム及びサブのそれぞれが参照しているｖｔｒｅｅの節点ｖに対応する値を付与する。もしプライム又はサブが定数ＺＳＤＤである場合は特殊な値を付与する。
【００５５】
＜２＞では、＜１＞の初期化処理によってペアｉ，ｊそれぞれに値が付与されたＺＳＤＤの要素節点に対して、以下＜２−１＞、＜２−２＞の簡約化規則を、ｖｔｒｅｅの子孫から親まで順番に実行する。なお、α，βは、集合族を項分岐によって表現した項分岐型グラフ（ＳＤＤ）への引数である。つまり、α，βは、別のＳＤＤを参照するためのポインタを表す。
【００５６】
＜２−１＞：ｖｔｒｅｅの節点ｖに対応する決定節点ｎが｛（±Ｘ，β）｝かつ、±Ｘ，βを指す子の要素節点にあたるプライムとサブとのペアｉ，ｊのそれぞれの値が、ｉが節点ｖの左の子節点、ｊが節点ｖの右の子節点に相当する場合に簡約化する。この場合、決定節点ｎを削除し、決定節点ｎを指すすべての節点の指す先をβに変更することで簡約化を行う。
【００５７】
＜２−２＞：ｖｔｒｅｅの節点ｖに対応する決定節点ｎが
2020204938.tif 000020
であり、かつ、α，±Ｘを指す子の要素節点にあたるプライムとサブとのペアｉ，ｊのそれぞれの値が、ｉが節点ｖの左の子節点、ｊが節点ｖの右の子節点に相当するならば、決定節点ｎを削除し、決定節点ｎを指すすべての節点の指す先をαに変更する。
【００５８】
以上のように、簡約化部１２０における所定の条件は、決定節点ｎが、引数α又は引数βと、要素を含みうる集合｛±Ｘ｝とにより表される場合となる。＜２−１＞の条件は、決定節点ｎが｛±Ｘ，β｝の場合となる。＜２−２＞の条件は、決定節点ｎが｛α，±Ｘ｝を含む場合となる。
【００５９】
次に、集合族簡約化装置１００の作用について説明する。
【００６０】
図６は、集合族簡約化装置１００による集合族簡約化処理の流れを示すフローチャートである。ＣＰＵ１１がＲＯＭ１２又はストレージ１４から集合族簡約化プログラムを読み出して、ＲＡＭ１３に展開して実行することにより、集合族簡約化処理が行なわれる。集合族簡約化装置１００の入力部１１０は、入力として、ｖｔｒｅｅと、ＺＳＤＤとを受け付けて以下の処理を行う。また、ｖｔｒｅｅの節点ｖに対応するＺＳＤＤの決定節点をｎとし、プライムとサブとの値のペアをペアｉ,ｊとする。
【００６１】
ステップＳ１００において、ＣＰＵ１１は、簡約化部１２０として、決定節点ｎを参照する要素節点の各々のペアｉ,ｊのそれぞれについて、ペアｉ,ｊを初期化する。ペアｉ,ｊの初期化は、ペアｉ,ｊのそれぞれについて、終端ＺＳＤＤの要素又は決定ＺＳＤＤである場合に、参照関係にある節点ｖに対応する値を与え、終端ＺＳＤＤの定数である場合に、所定の値を与える。本ステップは上記アルゴリズム＜１＞に相当する。
【００６２】
ステップＳ１０２において、ＣＰＵ１１は、簡約化部１２０として、決定節点ｎを参照する要素節点の各々について、ｖｔｒｅｅにおける子孫から親まで順番に処理し、ＺＳＤＤを簡約化したＣＺＳＤＤを生成する。ＺＳＤＤを簡約化したＣＺＳＤＤを生成は、所定の条件において、ペアのｉが節点ｖの左の子節点、ペアのｊが節点ｖの右の子節点に相当する場合に、決定節点ｎを省略するようにして行う。本ステップは上記アルゴリズム＜２＞に相当する。
【００６３】
ステップＳ１０４において、ＣＰＵ１１は、出力部１３０として、生成したＣＺＳＤＤを外部に出力し、処理を終了する。
【００６４】
以上説明したように本実施形態の集合族簡約化装置１００によれば、集合族に関する各種演算を高速に行うためのグラフを効率的に構築することができる。
【００６５】
本実施形態を適用することで、集合族を計算機のメモリを利用する量を抑えながら簡潔にグラフとして表現することができる。また、ＣＺＳＤＤを用いればＺＳＤＤよりも計算機の使用メモリ量を抑えるだけでなく、集合族を表現するグラフの大きさに比例する処理時間で数え上げ、最適化、及び集合族のメンバシップ判定等の演算の高速化を実現できる。
【００６６】
なお、上記各実施形態でＣＰＵがソフトウェア（プログラム）を読み込んで実行した集合族簡約化を、ＣＰＵ以外の各種のプロセッサが実行してもよい。この場合のプロセッサとしては、ＦＰＧＡ（Ｆｉｅｌｄ−Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）等の製造後に回路構成を変更可能なＰＬＤ（Ｐｒｏｇｒａｍｍａｂｌｅ  Ｌｏｇｉｃ  Ｄｅｖｉｃｅ）、及びＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）等の特定の処理を実行させるために専用に設計された回路構成を有するプロセッサである専用電気回路等が例示される。また、集合族簡約化を、これらの各種のプロセッサのうちの１つで実行してもよいし、同種又は異種の２つ以上のプロセッサの組み合わせ（例えば、複数のＦＰＧＡ、及びＣＰＵとＦＰＧＡとの組み合わせ等）で実行してもよい。また、これらの各種のプロセッサのハードウェア的な構造は、より具体的には、半導体素子等の回路素子を組み合わせた電気回路である。
【００６７】
また、上記各実施形態では、集合族簡約化プログラムがストレージ１４に予め記憶（インストール）されている態様を説明したが、これに限定されない。プログラムは、ＣＤ−ＲＯＭ（Ｃｏｍｐａｃｔ  Ｄｉｓｋ  Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＤＶＤ−ＲＯＭ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｋ  Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、及びＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）メモリ等の非一時的（ｎｏｎ−ｔｒａｎｓｉｔｏｒｙ）記憶媒体に記憶された形態で提供されてもよい。また、プログラムは、ネットワークを介して外部装置からダウンロードされる形態としてもよい。
【００６８】
以上の実施形態に関し、更に以下の付記を開示する。
【００６９】
（付記項１）
メモリと、
前記メモリに接続された少なくとも１つのプロセッサと、
を含み、
前記プロセッサは、
台集合Ｅに含まれる各要素に対応する節点を葉節点として表現した完全二分木であるｖｔｒｅｅと、前記台集合Ｅの集合族を表す有向非巡回グラフであって、前記ｖｔｒｅｅの前記葉節点ではない節点ｖに対応する決定節点と、前記台集合Ｅを部分集合Ｘ、Ｙへ分割したときの、前記台集合Ｅに含まれる要素若しくは定数である記号を表す終端ＺＳＤＤ又は前記決定節点への矢印を表す決定ＺＳＤＤであるプライム及びサブのペアを表す要素節点とを含むＺＳＤＤ（Ｚｅｒｏ−ｓｕｐｐｒｅｓｓｅｄ  Ｓｅｎｔｅｎｔｉａｌ  Ｄｅｃｉｓｉｏｎ  Ｄｉａｇｒａｍ）とを受け付け、
前記ｖｔｒｅｅの前記節点ｖに対応する前記ＺＳＤＤの前記決定節点をｎとし、前記プライムと前記サブとの値のペアをペアｉ,ｊとした場合に、決定節点ｎを参照する前記要素節点の各々のペアｉ,ｊのそれぞれについて、前記終端ＺＳＤＤの前記要素又は前記決定ＺＳＤＤである場合に、参照関係にある前記節点ｖに対応する値を与え、前記終端ＺＳＤＤの前記定数である場合に、所定の値を与えるように前記ペアｉ,ｊを初期化し、
前記決定節点ｎを参照する前記要素節点の各々について、前記ｖｔｒｅｅにおける子孫から親まで順番に、所定の条件において、前記ペアのｉが前記節点ｖの左の子節点、前記ペアのｊが前記節点ｖの右の子節点に相当する場合に、前記決定節点ｎを省略するように、前記ＺＳＤＤを簡約化したＣＺＳＤＤ（Ｃｈａｉｎ−ｒｅｄｕｃｅｄＺＳＤＤ）を生成する、
ように構成されている集合族簡約化装置。
【００７０】
（付記項２）
台集合Ｅに含まれる各要素に対応する節点を葉節点として表現した完全二分木であるｖｔｒｅｅと、前記台集合Ｅの集合族を表す有向非巡回グラフであって、前記ｖｔｒｅｅの前記葉節点ではない節点ｖに対応する決定節点と、前記台集合Ｅを部分集合Ｘ、Ｙへ分割したときの、前記台集合Ｅに含まれる要素若しくは定数である記号を表す終端ＺＳＤＤ又は前記決定節点への矢印を表す決定ＺＳＤＤであるプライム及びサブのペアを表す要素節点とを含むＺＳＤＤ（Ｚｅｒｏ−ｓｕｐｐｒｅｓｓｅｄ  Ｓｅｎｔｅｎｔｉａｌ  Ｄｅｃｉｓｉｏｎ  Ｄｉａｇｒａｍ）とを受け付け、
前記ｖｔｒｅｅの前記節点ｖに対応する前記ＺＳＤＤの前記決定節点をｎとし、前記プライムと前記サブとの値のペアをペアｉ,ｊとした場合に、決定節点ｎを参照する前記要素節点の各々のペアｉ,ｊのそれぞれについて、前記終端ＺＳＤＤの前記要素又は前記決定ＺＳＤＤである場合に、参照関係にある前記節点ｖに対応する値を与え、前記終端ＺＳＤＤの前記定数である場合に、所定の値を与えるように前記ペアｉ,ｊを初期化し、
前記決定節点ｎを参照する前記要素節点の各々について、前記ｖｔｒｅｅにおける子孫から親まで順番に、所定の条件において、前記ペアのｉが前記節点ｖの左の子節点、前記ペアのｊが前記節点ｖの右の子節点に相当する場合に、前記決定節点ｎを省略するように、前記ＺＳＤＤを簡約化したＣＺＳＤＤ（Ｃｈａｉｎ−ｒｅｄｕｃｅｄＺＳＤＤ）を生成する、
ンピュータに実行させる集合族簡約化プログラムを記憶した非一時的記憶媒体。
【符号の説明】
【００７１】
１００ 集合族簡約化装置
１１０ 入力部
１２０ 簡約化部
１３０ 出力部
【図１】
2020204938.tif 000021
【図２】
2020204938.tif 000022
【図３】
2020204938.tif 000023
【図４】
2020204938.tif 000024
【図５】
2020204938.tif 000025
【図６】
2020204938.tif 000026