.meet(
)
Find out the intersection
of itemsets between itemsets
in
and itemsets
in
, and return as ZDD object
.
For example, the intersection of itemset abc and bcd are as follows.
![]() |
Find out the intersection of all combinations on multiple operations across itemsets.
![]() |
![]() |
![]() |
|||
![]() |
![]() |
![]() |
|||
![]() |
![]() |
![]() |
Weight is computed by expanding the same itemset to multiple instances.
In addition, when
is changed to
(exclusive OR operation), it becomes delta function.
![]() |
> require 'zdd'
> a=ZDD::itemset("a")
> b=ZDD::itemset("b")
> c=ZDD::itemset("c")
> f=a+2*a*b+3*b
# Find out the intersection of itemset a with each term in the expression a + 2ab + 3b,
# the result becomes a + 2a + 3 = 3 a + 3.
> f.meet(a).show
3 a + 3
# The intersection with itemset b becomes 1 + 2b + 3b = 5b + 1.
> f.meet(b).show
5 b + 1
# The intersection with itemset ab becomes a + 2ab + 3b.
> f.meet(a*b).show
2 a b + a + 3 b
# Empty itemset is represented by constant number 1, thus the intersection with 1
# with all coefficients becomes 1 + 2 + 3 = 6.
> f.meet(1).show
6
# Find out the interaction of each itemset in abc + 2ab + bc + 1 with each itemset
# in the specified argument 2ab + a as follows (remove space between items)
# abc ∩ 2ab = 2ab
# 2ab ∩ 2ab = 4ab
# bc ∩ 2ab = 2b
# 1 ∩ 2ab = 2
# abc ∩ a = a
# 2ab ∩ a = 2a
# bc ∩ a = 1
# 1 ∩ a = 1
# The result is summarized as 6ab + 3a + 2b + 4.
#
> f=((a*b*c)+2*(a*b)+(b*c)+1)
> g=2*a*b + a
> f.show
a b c + 2 a b + b c + 1
> g.show
2 a b + a
> f.meet(g).show
6 a b + 3 a + 2 b + 4
delta : Delta operation