符号模型检验(6)ZBDD

ZBDD(Zero-Suppressed Binary Decision Diagram)是一种扩展了OBDD的数据结构,特别适合描述和操作稀疏二进制向量。它通过特定的规则保证了高效性,常用于组合集合的表示。ZBDD的基本操作包括正余因子(Onset)、负余因子(Offset)、元素取反(Change)以及集合的逻辑复合。这些操作在组合集合的运算中扮演重要角色,如并集、交集和差集。博客通过实例详细解释了ZBDD的构造和操作过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

⇑ ⇑ ⇑ ⇑ ⇑ \Uparrow\Uparrow\Uparrow\Uparrow\Uparrow 上方专栏内有更多内容 ⇑ ⇑ ⇑ ⇑ ⇑ \Uparrow\Uparrow\Uparrow\Uparrow\Uparrow

ZBDD

ZBDD是OBDD的一种扩展,能非常高效的描述和操作稀疏二进制向量。常用于描述组合集合。
对于一个集合 U = { a 1 , a 2 , … , a n } U=\{a_1,a_2,\dots,a_n\} U={a1,a2,,an}若不记顺序地取出任意 r r r个元素 ( 0 ≤ r ≤ n ) (0\le r\le n) (0rn),这些元素就构成一种组合。若把 U U U中每个元素 a i a_i ai对应一个二值布尔变量 x i x_i xi,当 a i a_i ai在组合中时 x i = 1 x_i=1 xi=1否则 x i = 0 x_i=0 xi=0。这样一个组合就可以表达为一个布尔向量 x ⃗ = ⟨ x 1 , x 2 , … , x n ⟩ \vec x=\langle x_1,x_2,\dots,x_n \rangle x =x1,x2,,xn。则组合的集合就可以表达为一个布尔函数 f ( x 1 , x 2 , … , x n ) f(x_1,x_2,\dots,x_n) f(x1,x2,,xn)

定义 在有序二叉决策图(OBDD)中,如果内部结点满足:
① 对于结点u, u.high ≠ \neq = 0;
② 对于u.var= v.var的不同结点 u 和v,则u.low ≠ \neq = v.low或者u.high ≠ \neq = v.high或者u.low ≠ \neq =v.low且u.high ≠ \neq =v.high。
则称该OBDD为零抑制二叉决策图(ZBDD—Zero-Supppressed Binary Decision Diagram)。

ZBDD化简中采用了OBDD中的合并规则(规则2)和pD-删除规则:
规则1(pD-删除规则) 对于OBDD中的结点u,如果u.high为终结点0,则删除结点u,并将结点u的父结点直接连接至u.low所对应的结点。

对于组合集合,在ZBDD中,终结点0代表的组合集合为空集;终结点1代表只包含一个元素的组合集合,即所有变元都为0的组合。相比而言,如果用OBDD表示组合集合,则终结点0代表空集,终结点1代表所有可能的组合构成的集合,即幂集。

ZBDD 的构造及基本操作:
1、求正余因子(Onset操作)
2、求负余因子(Offset操作)
3、将组合中的给定元素取反(Change操作)
4、组合集合的逻辑复合(交集、并集、差集操作)

1、求正余因子操作Onset(P,v)
从P中选取所有包含元素v的组合,并从该些组合中删除元素v,得到新的组合,由这些新的组合构成新的组合集合R。

例:已知表示集合{00,01}和{01,10,11}的ZBDD P和Q。由一个2元布尔函数f(a,b)表示组合集合,试求解Onset(P,b)和Onset(Q,b)。
在这里插入图片描述
2、求负余因子操作Offset(P,v)
从P中选取所有不包含元素v的组合,并由这些组合构成新的组合集合R。

例:已知表示集合{00,01}和{01,10,11}的ZBDD P和Q。由一个2元布尔函数f(a,b)表示组合集合,试求解Offset(P,a)、Offset(P,b)、Offset(Q,a))和Offset(Q,b)。
在这里插入图片描述
3、Change(P,v) 对P中的每一个组合进行如下操作:如果组合i包含元素v,那么从该组合中删除元素v,否则,则在该组合中增加元素v。

例:已知表示集合{00,01}和{01,10,11}的ZBDD P和Q。由一个2元布尔函数f(a,b)表示组合集合,试求解Change(P,a), Change(P,b), Change(Q,a)和Change(Q,b).

在这里插入图片描述
4、Union操作:对两个以ZBDD表示的组合集合P和Q进行并集操作,操作所得的结果是由属于P或属于Q的组合构成。
5、Intsec操作:对两个以ZBDD表示的组合集合P和Q进行交集操作,操作所得的结果是由属于P且属于Q的组合构成。
6、Diff操作:对两个以ZBDD表示的组合集合P和Q进行差集操作,操作所得的结果是由包含于P但不包含于Q的组合构成。

例:已知表示集合{00,01}和{01,10,11}的ZBDD P和Q。由一个2元布尔函数f(a,b)表示组合集合,试求解Union(P,Q), Intsec(P,Q), Diff(Q,P)

在这里插入图片描述
ZBDD的构造
例:构造表示组合集合{011,100}的ZBDD。
在这里插入图片描述

例:构造表示组合集合{000,001,010}的ZBDD。
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值