有序二叉决策图(OBDD)及其应用
古天龙
2014全国离散数学年会
1
2022-6-12
• (1)布尔表达式及其表示
• (2)有序二叉决策图(OBDD)
• (3)符号模型检验
2014全国离散数学年会
2
2022-6-12
(1)布尔表达式及其表示
布尔代数 → 布尔表达式 → 布尔函数 → 二叉决策图
布尔代数是英国数学家George Boole(乔治布尔)十九世纪提出来的将古典逻
辑推理转化为抽象符号代数计算的技术。布尔代数是计算技术和自动化技术中逻
辑设计的数学基础,因此布尔代数也称为逻辑代数。
布尔代数 对于非空集合B(B中至少包含两个不同元素),以及集合B上的二元运
算“”和“+”、一元运算“”,集合B中的元素a,b,cB,称满足下述条件的
多元组(B, +, , )为一个布尔代数:
交换律 ① ab =ba ; ② a+b = b+a .
分配律 ③ a (b+c) = (ab)+(ac) ; ④ a+(bc) = (a+b)(a+c).
同一律 ⑤ 二元运算“+”存在单位元,称为布尔代数的零元,即存在 0B
,使得任意aB,有a+0 = a ; ⑥ 二元运算“”存在单位元,称为布尔代数的
单位元,即存在1B,使得任意aB,有a1=a .
互补律 对任意aB,存在aB,满足:⑦ aa=0; ⑧ a+a=1.
2014全国离散数学年会
3
2022-6-12
(1)布尔表达式及其表示
在布尔代数B中,元素aB所对应的aB称为元素a的补元,用来表示B中任意元
素的符号称为布尔变量或者变元,而B中确定的元素称为布尔常元或者常量。
二值逻辑系统是最简单的二元素布尔代数B,它是在B = {0, 1}上定义二元运算“”
和“+”、以及一元运算“”的布尔代数(B, +, , ),该布尔代数B也称为(二值)
开关代数,其中,二元运算分别为“与”/“合取”、“或”/“析取”、“非”。
在n重笛卡尔积Bn(B={0,1})上,对于任何(a1, a2, …,an),(b1, b2, …, bn) Bn,这
里ai , bi{0,1}(i = 1,2,…,n),定义如下运算:
(a1, a2, …, an) (b1, b2, …, bn) = (a1b1, a2b2, …, anbn);
(a1, a2, …, an) + (b1, b2, …, bn) = (a1+b1, a2+b2, …,an+bn);
(a1, a2, …, an) = (a1, a2, …, an).
不难证明:(Bn, +, , )是布尔代数,零元为(0, 0, …,0),单位元为(1, 1, …,1),此布
尔代数也称为(n维)矢量开关代数。
2014全国离散数学年会
4
2022-6-12
(1)布尔表达式及其表示
布尔表达式是布尔代数上按照一定规则形成的符号串。它是逻辑演算、逻辑电路
综合等的有效形式化符号描述。
布尔表达式 对于布尔代数(B, +, , ),令x1, x2,, xn是B 上的n个变量,用
“”“+”“”把B的元素和变量连接起来的表达式就是布尔表达式。对于布尔
代数(B, +, , ),布尔表达式定义为由如下规则构成的有限字符串:
① B中任意一个元素是一个布尔表达式;
② B上的任意一个变元是一个布尔表达式;
③ 若x和y是布尔表达式,则xy、x+y和x也是布尔表达式;
④ 只有有限次运用①~③所产生符号串是布尔表达式。
n元布尔表达式 对于布尔代数(B, +, , ),一个含有n个互异变量的布尔表 达式,
称为含有n元的布尔表达式,简称为n元布尔表达式,记为P(x1, x2, …, xn),其中x1,
x2, …, xn为变量。
约定: 一元运算“”的优先级最高、其次是“”、最低的是“+”,这样布尔表
达式中可以省去一些括号。
2014全国离散数学年会
5
2022-6-12
(1)布尔表达式及其表示
表达式的值 对于布尔代数(B, +, , )上的n元布尔表达式P(x1, x2,…, xn),对
变量xi(i=1,2,…, n)在B中取值,并代入布尔表达式P(x1, x2, …, xn),即对
变量赋值,所计算出的结果,称为n元布尔表达式P(x1, x2, …, xn)的值。
例如,对于布尔代数({0, 1}, +, , )上的布尔表达式 (x+y)(x+y)(y+z),如果变量
的一组赋值为x = 1, y = 0, z =1,那么便可求得(1+0)(1+0) (0+1) = 110 = 0.
布尔表达式等价 对于布尔代数(B, +, , )上的n元布尔表达式P(x1, x2,…, xn)
和Q(x1, x2,…, xn) ,如果对于n个变量的任意赋值,这两个表达式的值都相
同,则称这两个布尔表达式等价,记为P(x1, x2,…, xn) = Q(x1, x2,…, xn) 。
我们可以利用布尔代数的一些恒等式(性质),将一个布尔表达式简化成为另外
一个简单的等价形式。
2014全国离散数学年会
6
2022-6-12
(1)布尔表达式及其表示
对于布尔代数(B, +, , )上的任何一个布尔表达式P(x1, x2, …, xn),由于运
算“”、“+”和“”在B上的封闭性,所以对于任何n元组(x1, x2, …, xn) ,
xiB(i=1,2,…,n)的一组赋值就可以得到布尔表达式P(x1, x2, …, xn)对应
的一个值,这个值必属于B。由此可见,我们可以说布尔表达式P(x1,
x2, …, xn)确定了一个由Bn到B的函数。
布尔函数 对于布尔代数(B, +, , ),如果一个从Bn到B的映射能够用(B,
+, , )上的n元布尔表达式来表示,那么这个映射称为布尔函数。
对于布尔代数({0,1}, +, , ),右表所给
出的映射f Bn B,可以用B上的布
尔表达式 f (x, y, z) = x (y+z) 表示,所
以f 是布尔函数。
x y z
0 0 0
0 0 1
0 1 0
0 1 1
f
0
0
0
0
x y z
1 0 0
1 0 1
1 1 0
1 1 1
f
1
0
1
1
2014全国离散数学年会
7
2022-6-12
(1)布尔表达式及其表示
对于布尔代数B,从Bn B的映射不一定都能用B上的布尔表达式来表示
出来。换言之,任意映射f Bn B不一定都是布尔函数。但是,对于布尔
代数({0,1}, +, , ),从{0,1}n到{0,1}的任一映射都可用({0,1}, +, , )上的布
尔表达式来表示出来,反之亦然。
定理 对于布尔代数({0,1}, +, , ),任何一个从{0,1}n到{0,1}的映射都是布
尔函数。
对于从{0,1}n到{0,1}的n元布尔函数f (x1, x2, …, xn),若对其中第i个分量xi 取值1或0,
则可得到{0,1}n1到{0,1}的布尔函数f (x1, …, xi1, 1, xi+1, …,xn)或f (x1, …, xi1, 0,
xi+1, …,xn),称之为输入模式(x1, …, xi1, 1, xi+1, …,xn)或(x1, …, xi1, 0, xi+1, …,xn)下的
布尔函数,并分别记作fxi或fxi 。
类似地,从{0,1} n到{0,1}的布尔函数f (x1, x2, …, xn),若对其中k(kn)个分量取
值则可得到{0,1}nk到{0,1}的布尔函数。例如,输入模式(x1, 0, 1, x4, 1, x6, …, xn)下
的布尔函数为f (x1, 0, 1, x4, 1, x6, …, xn) ,记为fx2 x3 x5 。
布尔函数的函数族 对于从{0,1}n到{0,1}的布尔函数f (x1, x2, …, xn),在不同输入
模式下的布尔函数形成一个布尔函数集合,称为该布尔函数的函数族,并记为 f
(x1, x2, …, xn)。
2014全国离散数学年会
8
2022-6-12