39、布尔代数(1/1)
科学的逻辑39、布尔代数:准备有声小说在线收听
1854年,布尔在《思维规律》一书中正式提出了一种全新的代数,这种代数规则非常简单,其变量只有0和1两种,定义的运算也只有三种,两种二元运算“与”和“或”,还有一种一元运算“非”,“与”表示当两个输入都是1时,结果才是1,类似于乘法;“或”表示输入只要有一个1,结果就是1,类似加法;而“非”运算将输入值翻转,输入为0时,输出为1,反之输出为0。正是这种简单到了极致的代数,将数学引入一个崭新的领域,并且扩充了数学的研究范围。在此之前的数学描述的都是事物之间的数量关系,在这种关于事物数量的经验之中,总结出了我们常见的代数关系。这些经典数学的内容无论后来发展到怎样庞大的结构,从根本上来说,它都是建立在自然数及其推广的基础上的。自然数与现实中的数量关系形成了一一对应的联系,而一些现实中的连续量可以在有理数或实数范围内解决。通过数轴将数与直线建立联系,再进一步建立坐标系将数和形统一起来,并进一步将数的概念推广到复数、超复数及矩阵等等。这些数学知识都是一脉相承的,都是在自然数这一最基本最原始的概念基础上获得的。然而布尔代数并不是建立在自然数体系中的,它描述的不是事物的数量关系,而是逻辑关系,布尔迈出的这至关重要的一步,将数学引到了一个全新的方向上。
当人们了解到,布尔代数中的基本元素0和1可以在开关电路中实现,可以用来代表开关的开和关两种状态时,布尔代数从纯理论开始延伸到应用领域,而且,由于0和1还可以描述低电平和高电平两种状态,通过电路来实现布尔的逻辑运算成为一个新的方向。这样,通过电路构造与门、或门、非门以及更加复杂的逻辑门,并在上面运行逻辑运算,就可以获得我们想要的结果。可以证明,任何复杂的逻辑运算都可以通过与非门的组合实现。有了通用逻辑门,不仅可以实现逻辑运算,也可以通过逻辑门的组合实现代数运算。这样一来,建立在自然数基础上的经典数学也可以在由逻辑门构造起来的世界中运行和实现,经典数学中的运算像加、减、乘、除、乘方、开方等一系列运算都可以由逻辑门来实现。
布尔代数中的0和1可以代表任何互斥的概念,真和假、开和关、高和低等等。在许多问题中,我们往往需要对某个事物的两个互斥方面进行判断,这时可以写出描述该事物的逻辑表达式,并按照布尔逻辑规则进行演算和化简,将不同的逻辑变量代入其中,就可以运算出该事物在不同情形中的真假情况,或者筛选出我们需要的信息。搜索引擎及数据库的查询语句实际上也是建立在布尔代数基础上的,当用户输入检索条件,就可以通过判断确认某条记录是否符合该条件,如果符合,给它赋值为1,不符合则赋值为0,最终将用户需要的信息筛选出来。
重要的数学思想往往是超前的,当布尔提出这种全新的代数时,只在一个小众的圈子里流传,他也许不会想到会在现如今的数字电路和信息领域占据如此基础而重要的地位。布尔代数的逻辑表达式是一串拥有许多变量的式子,这个公式可以很长,但是无论多么复杂的式子都可以用通用逻辑门组成的电路实现,当有数据输入时,就会产生相应的输出。这实际上就是一种程序,一种为了实现某种运算或目标的算法,为我们解决问题提供了无限可能。许多重要的数学发现在刚刚提出时,还没有认识到它的具体应用领域,当我们觉得某个理论无用时,一般不会认为它有什么价值,像凯莱的矩阵、黎曼的非欧几何,当初都远远没有如今的热度。当我们为某种实用的具体应用而欢欣鼓舞的时候,是否会为在这个应用还未出现之前的理论遭受冷遇而感到难过呢?
布尔代数代表的逻辑运算是一种经典逻辑,非黑即白,非对即错。但是从现代的物理学观点看,量子的叠加和纠缠才是一种更普遍的自然现象,量子逻辑才是一种更普遍和更基础的逻辑,而普通的逻辑则是一种特例。那么我们是不是可以从中获取启发,将布尔代数进一步推广,建立一种适用于量子叠加和纠缠的新的逻辑代数呢?我们可以通过经典与量子间的对比来感受这种新的代数。经典布尔代数只有0和1两种取值,对应一个经典比特,而量子比特的取值则是一个二维的连续的布洛赫球面;布尔代数有三种基本逻辑门,两个双比特门和一个单比特门,最常用的通用逻辑门是与非门,而量子比特仅仅常用的单比特门就有六个,还不包括三个任意旋转门,两比特门就更多了,最常用的通用逻辑门是受控非门和单比特门的组合。显然,量子比特对应的量子逻辑运算要复杂的多,然而一旦建立起这样一种适用于量子的逻辑代数,制约量子计算的量子软件问题就可以更快的发展。由于量子逻辑稀奇古怪、难以把握,而且远离经验,现如今提出的可以在量子计算机上运行的量子算法屈指可数。如果可以找到布尔代数的量子推广版本,或许在量子计算机上编写程序就不再需要非凡的头脑和偶然的灵感,普通人也有可能依据量子布尔代数的规则,像小学生对代数式进行移项、合并同类项之类的机械演算,就可以写出优美的量子程序。
如今,计算机与互联网的兴起,将布尔的逻辑代数发扬光大,但是我们也看到,摩尔定律的发展导致单个晶体管的尺寸越来越接近量子逐渐起到显著作用的尺度。量子计算机因此成为一个可能的发展方向,而作为经典计算机逻辑基础的布尔代数也需要进一步推广,以适应新的逻辑规则。