2.2 利用するアイテムの宣言と定義

利用するアイテム名を宣言するためにZDD::symbolメソッドを利用する。一つのメソッドで一つのアイテムが宣言できる。 アイテム宣言の順序は重要で、その順序がZDDの木構造における根から見た階層レベルに対応する。 宣言の順序により異なる構造のZDDが作成され、そのサイズに大幅に影響を与えることがある。 以下では、"a","b","c","d"の4つのアイテムをその順序で宣言している。 アイテム順序にこだわらないのであれば、symbol関数による宣言をスキップし、次に説明するitemset関数から利用することもできる。

> ZDD::symbol("a")
> ZDD::symbol("b")
> ZDD::symbol("c")
> ZDD::symbol("d")

symbolでは単に利用するアイテムを宣言しただけなので、次に、 それらのアイテムから構成されるアイテム集合の定義、すなわちZDDオブジェクトを作成していく。 ZDD::itemsetメソッドにアイテム名をスペース区切りで列挙することでアイテム集合のZDDオブジェクトを作成することができる。 以下では3つのアイテム"a","b","c"で構成されるアイテム集合a,b,cを表すZDDオブジェクトを rubyの変数aにセットしている。 オブジェクトの内容はshowメソッドにより積和形式で表示される。

> x=ZDD::itemset("a b c")
> x.show
 a b c

以下では、後の節のために1つのアイテムから構成されるアイテム集合を作っておく。 アイテム名とruby変数が同じaであるが、これら2つは全く別ものであることに注意する。

> a=ZDD::itemset("a")
> b=ZDD::itemset("b")
> c=ZDD::itemset("c")
> d=ZDD::itemset("d")
> a.show
 a