目录
0. 前言
量子计算、量子信息、量子编程自学笔记系列。
用自己能看懂的方式来表述对于量子计算基础知识的理解。
不求体系完备和逻辑严谨、但求通俗易懂。或能顺便给路过的小伙伴一些参考和启发那是纯属巧合概不认账^-^。当然,仅限于轮廓的勾勒和要点简述,对细节感兴趣的话还是要亲自服用正儿八经的专业书籍。
本文介绍经典世界的布尔逻辑、布尔代数、通用门、可逆计算等概念,为接下来更好地理解量子计算做一些准备和铺垫
1. 布尔逻辑、布尔代数和布尔函数
英国逻辑学家乔治.布尔。他在十九世纪中叶首次定义了关于二值({真,假})逻辑的代数系统,使得我们可以用代数的方法进行逻辑运算。所以我们通常称二值({真,假})逻辑为布尔逻辑,而处理布尔逻辑的代数系统就叫做布尔代数。
在日常最常用的十进制数代数里,我们可以直接对十进制数进行加减乘除之类的操作。在布尔代数中,变量值是true或false,可以进行逻辑操作,布尔代数中有三个基本的操作:NOT,AND和OR。
布尔函数(Boolean function)又称逻辑函数,描述对布尔值输入执行某种逻辑计算以确定布尔值输出的逻辑运算规则。
2. 香农、开关、逻辑门、电路
虽然布尔代数发明后因为没有找到实际的应用场景很久都不受重视,但是,慢慢地许多人开始意识到如果逻辑可以用代数的方法进行表示和处理,那就可以设计机器来执行逻辑计算。
1938年,年仅22岁的克劳德.香农在《继电器与开关电路的符号分析》中,证明了所有布尔代数都可以用电开关来表示并执行计算,将布尔代数与开关电路联系起来了。进一步可以开关电路描述布尔函数,这样,对布尔函数的研究变成了关于门电路的研究。这篇文章是他在麻省理工学院(MIT)获得电气工程硕士学位的毕业论文。有人曾经评论这篇文章:“它可能是本世纪最重要、最著名的一篇硕士论文”。
我们可以假设开关接通的状态为'1',开关不通的状态为'0',这样就可以用开关电路模拟逻辑状态,组成逻辑电路。而这最最基本的逻辑电路,我们称为**“逻辑门”**。之所以叫 "门",是因为门的状态也是开和关两种状态。。。(我临时瞎编的,不过或许真是如此得名的^-^)
在电子学中,逻辑门可以由电阻、电容、二极管、三极管等分立原件构成,称为“分立元件门”。也可以将门电路的所有器件及连接导线制作在同一块半导体基片上,构成“集成逻辑门电路”,简称集成电路,也就是我们现在所说的芯片。
对应布尔代数中有三个基本操作:NOT, AND 和 OR。构成计算机最基本的逻辑门就是:与门、或门、非门。将这三个基本逻辑电路通过不同的组合关系连接起来,就形成了人们所需要的各种数字电路。
3. 门与计算
以上所述的逻辑门不仅仅可以用来进行逻辑运算。
基于逻辑运算法则,我们可以进一步由此构建出能够(等价地)执行算术运算,比如说加法器、乘法器等等,并由此可以进一步构造实现更加复杂和通用的计算。
后面的事情这里就不再啰嗦。
4. 功能完备性与通用门
如上所述,布尔代数中三种最基本的逻辑运算为NOT、AND、OR,由此又可以构建出很多其它的逻辑运算(或者说布尔函数),比如说,异或、与非等等。
4.1 功能完备性
有没有哪些运算构成的最小必要运算集合,使得其它所有的逻辑都可以由这个集合中的运算经过组合而构建出来呢?这个概念有点类似于群论中的生成元(参见:群论基础速成(5):生成元,凯莱图,轨道,循环图,以及群的“维度”?)。在计算机科学领域,满足这样的要求的运算集合称为具有功能完备性的布尔运算集。与群的生成元一样,具有功能完备性的布尔运算集也不是唯一的。
容易证明,由非运算和与运算构成的集合{非,与}就是一个功能完备的布尔运算集。比如说,或运算可以用非运算和与运算以如下的方式组合构建:
P or Q = not { (not P) and (not Q) }
进一步,可以证明,单独由“与非”运算构成的布尔运算集是更为紧凑的功能完备的布尔运算集。同样的,单独由“或非”运算构成的布尔运算集也是功能完备的布尔运算集。
4.2 通用门
既然与非运算单独构成了功能完备的布尔运算集,相应地,用于实现与非运算的逻辑门--与非门(通常记为NAND)--则称为通用门(通用的意思是指仅用与非门作为基本的构造组件就可以构造出任意的布尔函数)。同样,用于实现或非运算的逻辑门--或非门(通常记为NOR)也是通用门。以下为几个基于与非门构造其它门(布尔函数)的例子。
例1、与非门组成与门:
例2、与非门组成或门:
例3、与非门组成非门:
以上几个例子显示了如何基于与非门构建与门、非门和或门。
但是,其中都用到了“扇出”的操作,即从同一个信号比特出发,引出两根信号线(或者说输出两个相同的比特)分别连接到后续电路的不同地方。但是,进入了量子世界我们将发现这种做法在量子运算是行不通的,这是因为有量子不可克隆定理!
5. 可逆计算和可逆门
如果针对布尔函数A根据一个计算的结果可以唯一地确定其输入,因此可以构造另一个布尔函数B,以布尔函数A的输出为输入,并计算出布尔函数A的输入。我们称这个布尔函数A实现的计算为可逆计算。显而易见的,布尔函数B也是。A和B互为可逆。
三种基本的布尔逻辑运算{与、或、非}中,显而易见的是,非运算是可逆运算,而且非运算的逆就是它自己。如日常俗语所说,负负得正,道理相同。
与运算和或运算,都是两个输入一个输出,不难证明它们都不是可逆计算。你不可能由一个结果反推出两个输入。
可逆计算的一个必要条件是:该布尔函数的输入的个数与输出的个数要相等。
执行可逆计算的逻辑门称为可逆门。
5.1 可逆计算的热力学意义,兰道尔限制
对可逆门和可逆计算的研究从计算的热力学开始。
冯.诺伊曼推测,当信息丢失时,能量被消耗--它以热量形式消散。罗夫.兰道尔(Rolf Landauer)证明了这一猜想,并给出了删除一比特信息的所消散的最低限度的能量值。这个能量值被称为兰道尔限制。
可逆计算的热力学意义在于,如果计算是可逆的,则表明在计算过程中没有信息丢失(信息一旦丢失就无法恢复,则该计算就不可能可逆),并且理论上可以在不消耗能量的情况下执行。
5.2 三种可逆门
经典计算中的三种可逆门:
(1) 受控非(CNOT)门
(2) Toffoli门
(3) Fredkin门
事实上在(量子笔记:多比特量子门)中我们已经介绍了这三种门的量子版本(所以这三种门的构成方式这里就不再赘述)。这里再提这三种可逆门(注意,这里说的是经典版本)的意义在于再次强调,量子门的一个基本性质就是可逆!经典计算的门当且仅当是可逆的,就可以以相同或者相似的方式构建其量子版本。
比如说,非门及以上这三种可逆门都有其量子版本。但是与门和或门就没有对应的量子版本。
本系列总目录:
量子笔记:量子计算祛魅https://chenxiaoyuan.blog.csdn.net/article/details/127251274
【参考文献】
[1] 人人可懂的量子计算,克里斯.伯恩哈特著,邱道文等译,机械工业出版社
[2] 量子计算:一种应用方法,杰克.希德里著,姚彭晖等译,人民邮电出版社
[3] 与量子比特共舞,罗伯特.S.苏托尔著,吴攀译,人民邮电出版社
[4] 图解量子计算机,宇津木健著,胡屹译,人民邮电出版社
[5] 如何用与非门组成与门或门或非门_百度知道 (baidu.com)
转载:https://blog.csdn.net/chenxy_bwave/article/details/127824857