3.18 density : ZDDの濃度計算

書式

$obj$.density $\rightarrow $ $dens$

  $dens$ : float

説明

濃度とは、登録されている全アイテムから構成可能なアイテム集合の総数に対する$obj$に格納されたアイテム集合の数の割合と定義される。

例1: 基本例

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

# a,b,cの3アイテムを使った全組合せ数は8通り。
# 以下で、fにはそのすべての組合せが格納されているので濃度は1.0となる。
> f=(a+1)*(b+1)*(c+1)
> f.show
 a b c + a b + a c + a + b c + b + c + 1
> puts f.density
1.0

# 以下で、fには1通りの組合せ(a b)が格納されているので濃度は1/8=0.125となる。
> f=a*b
> f.show
 a b

> puts f.density
0.125

# 以下で、fには3通りの組合せ(a b,a,b)が格納されているので濃度は3/8=0.375となる。
> f+=a
> f+=b
> f.show
 a b + a + b
> puts f.density
0.375

関連