开关电路与布尔代数.docx
《开关电路与布尔代数.docx》由会员分享,可在线阅读,更多相关《开关电路与布尔代数.docx(14页珍藏版)》请在冰豆网上搜索。
开关电路与布尔代数
开关电路与布尔代数
《开关电路与布尔代数》是根据教育部制订的《普通高中数学课程标准(实验)》选修系列4第10个专题“开关电路与布尔代数”的要求编写的,根据《标准》的要求,教科书以开关电路设计为背景引入一种类似数的对象并引入这些对象之间的运算.因为,在初中物理中,我们都学习了基本电路——串联电路和并联电路,已经熟悉了这些电路的基本功能,也能熟练地利用这些电路搭建较为复杂的电路,那么能不能用数学来帮助我们刻画这些现象呢?
于是,我们将对这种新的运算系统进行探讨,得出类似于“数的运算”的各种性质,最后应用这个数学理论,彻底解决开关电路的设计问题,这就是本专题将要解决的问题.本专题以设计由三人控制一个电灯的电路为背景,从开关电路设计,提出一个具体问题,将电路设计数学化为电路代数和电路多项式,再数学地研究电路和电路多项式,完全解决最初提出的问题,完整地给出一个电路代数的数学模型,这也是布尔代数的一个实际应用,从中可感受到数学化的抽象过程,以及数学理论的应用价值.
一、背景知识介绍
布尔代数又称逻辑代数,正是以它的创立者——英国数学家乔治.
布尔(G.Boole)而命名.1815年生于伦敦的布尔家境贫寒,父亲是位鞋匠,无力供他读书.他的学问主要来自于自学.年仅12岁,布尔就掌握了拉丁文和希腊语,后来又自学了意大利语和法语.16岁开始任教以维持生活,从20岁起布尔对数学产生了浓厚兴趣,广泛涉猎著名数学家牛顿、拉普拉斯、拉格朗日等人的数学名著,并写下大量笔记.这些笔记中的思想,1847年被用于他的第一部著作《逻辑的数学分析》之中.1854年,已经担任柯克大学教授的布尔再次出版《思维规律的研究——逻辑与概率的数学理论基础》.以这两部著作,布尔建立了一门新的数学学科.
● 在布尔代数里,布尔构思出一个关于0和1的代数系统,用基础的逻辑符号系统描述物体和概念.这种代数不仅广泛用于概率和统计等领域,更重要的是,它为今后数字计算机开关电路设计提供了最重要数学方法.
● 布尔一生发表了50多篇科学论文、两部教科书和两卷数学逻辑著作.为了表彰他的成功,都柏林大学和牛津大学先后授予这位自学的成才的数学家荣誉学位,他还被推选为英国皇家学会会员.
开关电路与布尔代数的关系信息论的创始人克劳德·香农(C.E.Shannon)对现代电子计算机的产生和发展有重要影响,是电子计算机理论的重要奠基人之一,1938年,香农发表了著名的论文《继电器和开关电路的符号分析》,首次用布尔代数进行开关电路分析,并证明布尔代数的逻辑运算,可以通过继电器电路来实现,明确地给出了实现加,减,乘,除等运算的电子电路的设计方法.这篇论文成为开关电路理论的开端
● 香农在贝尔实验室工作中进一步证明,可以采用能实现布尔代数运算的继电器或电子元件来制造计算机,香农的理论还为计算机具有逻辑功能奠定了基础,从而使电子计算机既能用于数值计算,又具有各种非数值应用功能,使得以后的计算机在几乎任何领域中都得到了广泛的应用.
● 1840年取得了博士学位,香农在AT&T贝尔实验室里度过了硕果累累的15年.他用实验证实,完全可以采用继电器元件制造出能够实现布尔代数运算功能的计算机.1948年,申龙又发表了另一篇至今还在闪烁光芒的论文——《通信的数学基础》,从而给自己赢来“信息论之父”的桂冠.
● 1956年,他参与发起了达特默斯人工智能会议,成为这一新学科的开山鼻祖之一.他不仅率先把人工智能运用于电脑下棋方面,而且发明了一个能自动穿越迷宫的电子老鼠,以此证明计算机可以通过学习提高智能.
● 计算机运行的时候,程序就象一系列或真或假的命题,当命题进入电路时,按布尔代数他们将电路打开或关闭,例如当两个真的命题进入一个电路时.电路打开,但是当一个真的命题和一个假的命题进入一个电路时,电路关闭,利用布尔代数,我们就可以把数以百计的电路结合起来,并编写出充满想象力的计算机应用程序.
●今天,布尔代数已成为我们生活中的一部分,因为我们的汽车、音响、电视和其它用具中都有计算机技术,它几乎无处不在,无所不能.实际上大多数人还没有意识.
二、开关电路
开关电路就是由开关经多次并联、串联与反演所得到的电路.每一开关有两种状态:
通和不通,每一电路也有两种状态:
通和不通.下面将用小写英文字母表示开关,大写英文字母表示电路,但由一个开关a组成的电路,仍记作a.并联和串联电路我们在初中就见过了,已经很熟悉了,现简单说下电路的反演,它就是指在开关a“通”时,电路A的状态是“不通”,开关a“不通”时,电路A的状态是“通”,这样的电路在物理上是可以实现的.
一般地对任意电路A,B也可经并联,串联或反演得到新的电路,它们顺序记作“A并联B”、“A串联B”、“A的反演”.原来A、B的状态与这些新作成的电路的状态之间的关系列表如下:
电路A电路BA并联B
通通通
通不通通
不通通通
不通不通不通
电路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
000
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·0=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·b)·c=a·(b·c)在开关电路中说明什么.(a·b)·c可解释为开关电路Ⅰ,而a·(b·c)可解释为开关电路Ⅱ.
一眼就看出,这两个电路是等效的,这说明(a·b)·c=a·(b·c).你可以把这个说明看成B中乘法适合结合律的“物理证明”,也可以把这个电路背景的说明看成是物理上强烈支持这个数学结果,因而仍需要一个数学证明.下面给出(a·b)·c=a·(b·c)的数学证明,这就是验算,当a,b,c取B={0,1}中任意值时,(a·b)·c都等于a·(b·c),这可从下表中看出
abc(a·b)·ca·(b·c)
000(0·0)·0=0·0=00·(0·0)=0·0=0
001(0·0)·1=0·1=00·(0·1)=0·0=0
010(0·1)·0=0·0=00·(1·0)=0·0=0
011··
100··
101··
110··
111(1·1)·1=1·1=11·(1·1)=1·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·b=b·a(乘法交换律);
2)(a+b)+c=a+(b+c)(加法结合律),
(a·b)·c=a·(b·c)(乘法结合律);
3)a·(b+c)=a·b+a·c(乘法对加法的分配律),
a+(b·c)=(a+b)·(a+c)(加法对乘法的分配律)
4)a+0=a, a·1=a,
a+1=1, a·0=0;
5)a+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
B
性质:
1自反性A
2反对称性,若
3专递性
4
5
6
7
8
证明
1
2
数学证明
定理:
1
2
3