开关电路与布尔代数Word下载.docx
《开关电路与布尔代数Word下载.docx》由会员分享,可在线阅读,更多相关《开关电路与布尔代数Word下载.docx(14页珍藏版)》请在冰豆网上搜索。
电路A电路BA串联B
通不通不通
不通通不通
电路AA的反演
通不通
不通通
我们已很习惯数学中常用的符号化方法.只要把上面各表中的状态“通”、“不通”用简单符号表示,就能大大简化.我们借用数字“1”表示“通”,借用数字“0”表示“不通”.当然在这里“1”,“0”已失去原来的数字意义,只是代表“通”,“不通”.我们再进一步符号化,而将用“+”表示“并联”,用“·
”表示“串联”,用“-”表示“反演”,这样A+B就是“A并联B”,A·
B就是
“A串联B”,
就是“A的反演”,于是我们就有:
ABA+B
111
101
011
000
ABA·
B
111
100
010
A
10
01
现在来看看经过这些符号化后,我们能得什么.任何一个电路,例如A(如图),可表成一个“代数”式:
当然每一个类似上面这样由一些小写字母(表示开关)经“+”,“·
”,“-”,以及适当的括号连接起来的式子也给出一个电路来.
欲知电路A的效应,例如当a=1(开关a处于“通”状态),b=0,c=1,d=1时A的状态是什么,只把这些值代入上面的式子,按照上表提供的规则进行计算一下便得,这就是:
((1·
0)+(1·
1))+1=(0+1)+0=1+0=1,
即此时A的状态是“通”.
在本节最后,我们提出下面一个具体问题:
设计一个使三个人控制一个电灯的电路.也就是说,设计一个由三个开关a,b,c组成的电路A=f(a,b,c)使得任一开关状态的改变都使电路A=f(a,b,c)的状态改变,即实现下表效应的电路A
abcA=f(a,b,c)
0000
0011
0101
0110
1001
1010
1100
1111
这是电路设计最基本最重要的问题:
实现我们所要求效应的电路.我们将在下一节完全解决这一问题.
三布尔(Boole)代数
1.布尔代数
在上一节开关电路的介绍之后,在数学中引入下面定义就是水到渠成的事了:
定义1 设集合B={0,1}.在集合B上规定三个运算,分别记作“+”(加),“·
”(乘),“-”(非),如下:
+:
0+0=0
0+1=1
1+0=1
1+1=1
·
:
0·
0=0
0·
1=0
1·
1=1
-:
=1
=0
集合B连同这三个运算一起{B={0,1},+,·
-}称之为布尔代数.
把新定义的布尔代数和我们熟悉的整数系相对比.这里的B={0,1}相当于整数集Z={0,±
1,±
2,⋯},B的加法“+”(“·
”)可和Z的加(乘)法对比.B中还有运算“-”,这是Z中没有的.这一简单对比使我们想到数的加法,乘法适合交换律,结合律,还有乘法对加法的分配律,而这些算律在我们进行计算时提供很大方便.现在来
看一看,这些算律对布尔代数是否成立.
和初中代数中用字母a,b,c,⋯,代数任意数一样,我们对布尔代数B也引入变元a,b,c,⋯,但这里该提醒的是:
B上的变元只能代表B中的元素,即0或1.
今证布尔代数中加法,乘法适合交换律和结合律,即证在B中有:
a+b=b+a, a·
b=b·
a
(a+b)+c=a+(b+c),
(1)
(a·
b)·
c=a·
(b·
c)
在数学证明之前,我们看一下(a·
c)在开关电路中说明什么.(a·
c可解释为开关电路Ⅰ,而a·
c)可解释为开关电路Ⅱ.
一眼就看出,这两个电路是等效的,这说明(a·
c).你可以把这个说明看成B中乘法适合结合律的“物理证明”,也可以把这个电路背景的说明看成是物理上强烈支持这个数学结果,因而仍需要一个数学证明.下面给出(a·
c)的数学证明,这就是验算,当a,b,c取B={0,1}中任意值时,(a·
c都等于a·
c),这可从下表中看出
abc(a·
ca·
000(0·
0)·
0=0·
0=00·
(0·
0)=0·
001(0·
1=0·
1=00·
1)=0·
010(0·
1)·
(1·
011·
·
100·
101·
110·
111(1·
1=1·
1=11·
1)=1·
这里我们严格地按照定义1中的规定进行讨论的,在数学上定义1是我们对布尔代数B进行讨论的唯一依据.类似地可以给出
(1)中其它三个等式的数学证明(以及“物理证明”).
把布尔代数与数系相对比,数系还提示我们:
应该考虑考虑乘法对加法的分配律是否在布尔代数B中也成立,有趣的是,不但在B中a·
(b+c)=a·
b+a·
c成立,并且也有加法对乘法的分配律,a+(b·
c)=(a+b)·
(a+c),它们的数学证明以及“物理证明”我们类似可以一样地完成.
把布尔代数与开关电路相联系,物理也会给我们一些启示,那样一些等式在布尔代数B中可能是对的,例如,两个开关a并联和由一个开关a作成的电路是等效的,这提示我们a+a=a在B中该是对的,类似地a·
a=a在B中也该是对的.
下面定理汇集了布尔代数中常用的基本等式:
定理1 在布尔代数B={{0,1},+,·
-}中下列等式成立;
1)a+b=b+a(加法交换律),
a·
a(乘法交换律);
2)(a+b)+c=a+(b+c)(加法结合律),
c)(乘法结合律);
3)a·
(b+c)=a·
c(乘法对加法的分配律),
a+(b·
(a+c)(加法对乘法的分配律)
4)a+0=a, a·
1=a,
a+1=1, a·
0=0;
5)a+a=a(加法的幂等律),
a=a(乘法的幂等律);
6)
;
7)
;
8)
,
证明 6)的证明:
当a=0时,
,而当a=1时,
.故当a取任意值时,都有
.6)得证
7)
的证明如下表
ab
00
=1+1=1
01
=1+0=1
10
=0+1=1
11
=0+0=0
其它的证明类似都可完成.
这里很多定律,特别是5),和数的运算规则很不一样,但在布尔代数中却是成立的.
2.布尔多项式
把布尔代数B上的一些变元以及0和1用布尔代数B的三个运算逐次运算(合理联结)起来的式子,就叫做布尔多项式.例如
等等都是布尔多项式,但,例如
却不是布尔多项式,因为它不是合理联结起来的,对它我们无法逐次进行运算.
下面我们来说明什么时候两个布尔多项式是相等的,我们规定:
两个布尔多项式相等,当且仅当其中变元取定任意值时,这两个布尔多项式的值相等.也就是说,我们是从“函数观点”来看待他们相等,而不管它们形式上是否一样,例如布尔多项式
和
是相等的.
我们知道,在中学讨论数系上的多项式时有两个问题,一是化简(去括号、合并同类项等),二是标准形式.先来说多项式的化简,化简时每一步只能根据定理1中的各种算律,不能有一点马虎.为了方便,我们约定“先乘后加”,“略去乘号”,并将随时随地使用结合律、交换律.根据幂等律,永远可用a代替aa,因而化简后,可使乘积中同一因子只出现一次,类似地,化简时可用a代替a+a,因而在求和时可认定每一加项只出现一次,根据定理1中4),布尔多项式在化简后没有“常数项”,因为若“常数项”是0,则可略去;
若它是1,则整个布尔多项式就等于1了,所以除布尔多项式本身是0或1外,可认定它们没有“常数项”,类似地,我们可认定每一乘积前是没有“系数”的.
作为举例,我们来化简上面第二个布尔多项式.
下面我们来考虑布尔多项式的标准形式,还是以上面布尔多项式为例,该多项式涉及a,b,c三个变元,化简结果虽已得“积之和”的形式,但这些乘积项中有的只出现两个变元,甚至只含一个变元,很不整齐,我们希望每一乘积项三个变元全部出现,利用定理1,特别是
及a·
1=a,这是可以办到的,作法如下:
这样,这个三个变元a,b,c的布尔多项式就化成“和之积”的形式且在每一乘积项中三个变元
都各出现一次,即得到这个布尔多项式的标准形式.从这个例子我们看到每个布尔多项式都可以化成标准形式.
由{
},{
}中各取一个元素作成的乘积共
个,除上式中最后一个式子所出现的7个外,还有一个,就是
而三元布尔多项式的标准形式就是从这8个乘积中取出一部分作和而得,这样,三元布尔多项式的标准形式共有
个(取全部8个乘积作和而得到的布尔多项式,你将知道,就是布尔多项式1,而一个乘积都不取的情况,我们把它理解为布尔多项式0),一般地我们有,n个变元布尔多项式的标准形式的个数是
.直接按照两个布尔多项式相等的定义去判断布尔多项式的相等,就得进行大量的验算,很麻烦,在这里标准形式提供极大的方便,因为我们有
定理2 两个标准形式的布尔多项式相等当且仅当它们具有完全相同的形式.
这样,只需把它们化成标准形式,再看看这两个标准形式是不是完全一样就可判断它们是否相等,方便多了.
至此我们对布尔代数的“代数”部分的讨论暂告一段落.
下面我们来讨论布尔代数上的函数——布尔函数.
定义2 以布尔代数B上n个变元x1,x2,⋯xn为自变量,且在B={0,1}中取值的函数f(x1,x2,⋯xn)称为n元布尔函数.
例如在§
1最末的那个表就给出一个三元布尔函数.我们知道数系上的n元函数多得不得了,复杂的不得了,而n元多项式函数只是其中非常特殊的一小部分.然而对布尔代数上的n元布尔函数情况就简单多了,熟悉排列组合的同学可以很快算出,共有
个不同的n元布尔函数,这样由定理2,n元布尔多项式的个数也是
所以每一个n元布尔函数都可以用n元布尔多项式去实现,这就等于说,每一布尔函数都可以用一个开关电路实现,然而实际上我们必需要知道,对给定的n元布尔函数究竟是哪个n元布尔多项式能实现它,这是该进一步要解决的问题.
下面我们直接、彻底地解决用n元布尔多项式实现n元布尔函数的问题,并且不依赖于上面这个计数结果,通过1末这个具体例子来说明,它是一个三元布尔函数,其定义域由8个形如(a,b,c)的点组成,并且要求在(a,b,c)=(0,0,1),(0,1,0),(1,0,0),(1,1,1)处布尔函数f(a,b,c)取值1,在其它处f(a,b,c)取值0.如果我们会造一个布尔多项式,它在一点说是(0,0,1)上取值1,而在其余点上取值0,则一切问题就解决了;
只要把取值为1的各点相应的这种布尔多项式加起来就行了,找到这样的布尔多项式是很容易的;
就是,它只当a=0,b=0,c=1时取值1,而在其它情形,a,b,c中必至少有
一个是0,因而其乘积
必是0,这样在(0,0,1)上取1,在其余点上取0的布尔多项式是
在(0,1,0)上取1,在其余点上取0的布尔多项式是
在(1,0,0)上取1,在其余点上取0的布尔多项式是
在(1,1,1)上取1,在其余点上取0的布尔多项式是abc,而实现布尔函数f(a,b,c)的布尔多项式就是它们的和,即
f(a,b,c)=
通过这个例子,我相信大家会总结出规律,而对任意给定的n元布尔函数会很快写出实现它的n元布尔多项式.很多实际问题都希望能在某种输入的情况下有某种输出,就像1中三人控制一灯的情形,这往
往可抽象成一个n元布尔函数,这里告诉你布尔函数都可用布尔多项式实现,而在以前我们知道布尔多项式都可以由一个开关电路实现,这样那个实际问题也就可以由一个开关电路来实现,现在你应该能画出实现三人控制一灯的开关电路了.
一般布尔代数的定义:
集合B上定义的两个二元运算+,·
和一个一元运算′,对B中任意元素a,b,c,有:
1.交换律a+b=b+a, a·
b=b·
a.
2.分配律a·
(b+c)=a·
b+a·
c,
a+(b·
c)=(a+b)·
(a+c).
3.0—1律a+0=a, a·
1=a.
4.互补律a+a′=1, a·
a′=0.
几个布尔代数:
1集合P的全体子集关于交、并、补运算,空集、全集。
2命题集合关于且、或、非运算,恒假命题、恒真命题。
3M={1,3,7,21},
4
布尔代数具有下列性质:
1单位元、零元、逆元唯一
2逆元的逆是它本身
3零元的逆是单位元,单位元的逆是零元
4对偶律
5幂等律A+A=A,AA=A
6A+1=1,A0=0
7吸收律A+AB=A,A(A+B)=A
8A+B=0则A=B=0,AB=1则A=B=1
9A+C=B+C且AC=BC则A=B
10A+C=B+C且A+C的逆=B+C的逆,则A=B
11结合律
12反演律
若A+B=B则称A
性质:
1自反性A
2反对称性,若
3专递性
5
6
7
8
证明
1
2
数学证明
定理:
3