3.30 itemset : アイテム集合のZDDオブジェクトの作成

書式

$obj$.itemset($is$) $\rightarrow $ $zdd$

  $is$ : string

説明

$is$で指定されたアイテム集合のZDDオブジェクト$zdd$を生成する。 複数のアイテムは半角スペースで区切る。 重みを指定することはできない。 空文字("")が指定された場合は空のアイテム集合と扱われ、積和表現の定数項1として設定される(zdd.constant(1)と同様)。

symbolメソッドで宣言されていないアイテムは、アイテムオーダ表の最後に追加される。 またアイテムに設定されるコストはデフォルトの0.5となる。 コストについての詳細はsymbolを参照のこと。

例1: 基本例

> require 'zdd'
> a=ZDD::itemset("a b")
> a.show
 a b
> b=ZDD::itemset("b")
> b.show
 b
> c=ZDD::itemset("")
> c.show
 1

# 数字をアイテム名として利用することも可能
> x0=ZDD::itemset("2")
> x0.show
 2

# ただし、表示上重みと区別がつかなくなるので注意が必要。
> (2*x0).show
 2 2

# こんな記号ばかりのアイテム名もOK。
> x1=ZDD::itemset("!#%&'()=~|@[;:]")
> x1.show
 !#%&'()=~|@[;:]

# ただし、rubyで特殊な意味を持つ記号はエスケープする必要がある。
# 以下では、\,$,"の3つの文字をエスケープしている例である。
> x2=ZDD::itemset("\\\$\"")
> x2.show
 \$"

# もちろん日本語も利用可。
> x3=ZDD::itemset("りんご ばなな")
> x3.show
 りんご ばなな

関連

symbol : アイテムの宣言

constant : ZDD定数オブジェクトの生成

cost : アイテム集合のコスト合計