3.11 == : 等価比較演算子

書式

$zdd1$ == $zdd2$ $\rightarrow $ $zdd3$

説明

$zdd1$の項と$zdd2$の項について、一致する項(重みとアイテム集合が同じ項)を選択し、そのアイテム集合を返す。 アイテム集合のみを返し、重みは1となることに注意する。 重みも含めて選択したい場合は、iif関数と組み合わせることで実現可能である。

本パッケージで扱える比較演算子(関数)は以下の通り。

また、式全体の等価判定にはsame?(==) もしくはdiff?を使う。

例1: 基本例

> require 'zdd'
> a=ZDD::itemset("a")
> b=ZDD::itemset("b")
> c=ZDD::itemset("c")
> x=3*a + 2*b + 2*c
> y=2*a + 2*b + 4*c
> x.show
 3 a + 2 b + 2 c
> y.show
 2 a + 2 b + 4 c
# (x,yが上記の通り定義されていたとする)

# xとyを比較し、同じ重みを持つアイテム集合を選択する。
> (x==y).show
 b

# xとyを比較し、y以上の重みを持つアイテム集合を選択する。
> (x>=y).show
 a + b

# xとyを比較し、異なる重みを持つアイテム集合を選択する。
> (x.ne?(y)).show
 a + c

# zdd1にあってzdd2にない(もしくはその逆)アイテム集合の重みは0と考えればよい。
> z=2*a + 2*b
> z.show
 2 a + 2 b

# アイテム集合cはzにないので項0cを考えればよい。
> (x>z).show
 a + c
> (x.ne?(z)).show
 a + c
> (x==z).show
 b

関連

==, $<$, $<=$, $>$, $>=$, ne? : 各種比較演算

iif : アイテム比較による選択

same? : 式の等価比較

diff? : 式の不等価比較