量子笔记:布尔逻辑/代数、逻辑门、通用门、可逆计算
目录
0. 前言
1. 布尔逻辑、布尔代数和布尔函数
2. 香农、开关、逻辑门、电路
3. 门与计算
4. 功能完备性与通用门
4.1 功能完备性
4.2 通用门
5. 可逆计算和可逆门
5.1 可逆计算的热力学意义,兰道尔限制
5.2 三种可逆门
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)
量子笔记:布尔逻辑/代数、逻辑门、通用门、可逆计算相关推荐
- 第三课:布尔逻辑与逻辑门
1.计算机为什么使用二进制: 1.计算机的元器件晶体管只有 2 种状态,通电(1)&断电(0),用二进制可直接根据元器件的状态来设计计算机. 2.而且,数学中的"布尔代数" ...
- 量子计算 13 经典通用门 (Classical Universal gates)
量子计算 13 经典通用门 Classical Universal gates 1 经典通用门 (Universal gates) 2 可逆通用门 什么是可逆门? 没有2-bit的通用可逆门 Toff ...
- 量子笔记:单比特量子门、泡利矩阵
目录 0. 概要 1. 量子门基本性质 1.1 量子门与布洛赫球面的关系 1.2 量子门与幺正矩阵的关系 2. 泡利矩阵: 量子X,Y,Z,ID门 2.1 量子X门(量子非门) 2.2 量子Z门 2. ...
- 布尔-施罗德逻辑代数中的命题逻辑-- 布尔逻辑之七(尾篇**)
布尔-施罗德逻辑代数中的命题逻辑– 布尔逻辑之七(尾篇) 一.一级命题与二级命题 布尔在他的<思维法则研究>一书中,给出了他有关命题的一个新理论,建立在他的类逻辑演算的基础上.布尔不愧是想 ...
- 量子笔记:多比特量子门
目录 0. 前言 2. 量子多重H门 3. 量子SWAP门 4. 量子CNOT门(CX门):受控非门 5. 量子CY和CZ门 6. 量子C*门 6.1 受控S门 6.2 受控H门 6.3 受控Z旋转门 ...
- 量子笔记:多量子系统、叠加、量子计算并行处理能力
目录 0. 概要 1. 张量积的狄拉克符号表示形式 2. 多量子系统的状态的表示 3. 叠加 4. 量子计算并行处理能力 0. 概要 量子计算.量子信息.量子编程自学笔记系列. 用自己能看懂的方式来表 ...
- 布尔-施罗德逻辑代数中的公设对应-- 布尔逻辑之六
布尔-施罗德逻辑代数中的公设对应-- 布尔逻辑之六 由布尔奠定的逻辑代数,经过耶芳斯(Jevos)和皮尔斯(Pierce)等人的补充修订,成为现代逻辑的一个起点. 但布尔系统的完善,更得力于英美学圈之 ...
- 量子笔记:量子计算 toy python implementation from scratch
目录 0. 概要 1. 量子比特表示:用二维张量表示 2. 张量积的实现 2.1 用scipy.linalg.kron()实现张量积 2.2 用张量积计算双量子系统的基 3. 多量子系统基向量表示和生 ...
- 布尔表达式和正则表达式_仅使用通用门实现布尔表达式
布尔表达式和正则表达式 We already know that NAND and NOR are recognized as the universal gates using which we c ...
最新文章
- ngnix编译遇到的问题.
- Cell Reports:张瑞福团队揭示抗生素调控微生物肥料菌种根表定殖成膜的新机制...
- Linux服务器-使用mysql
- DbHelper数据操作类,DbProviderFactories
- 渗透测试之子域到父域的横向移动(Sid History)
- [ASP.NET]EF选一个空表的情况
- python enumerate函数_关于python中enumerate和zip函数的用法及举例
- java中的console是干什么的_[Java教程]javascript中,你真的会用console吗?
- 找出递增数组中所有相加为m的组合c语言,组合(1-m中选n个数)(示例代码)
- WSGI协议主要包括server和application两部分:
- mac ox php.ini 位置,MAC Osx PHP安装指导
- Linux Linux程序练习十(网络编程大文件发送)
- TripAdvisor猫途鹰翻译志愿者线上任务评测
- html5 main form 结合,web组件之表单(HTML5)
- 爬虫---高性能爬虫
- 高端差分器电流检测电路
- 微信内点击链接或扫描二维码直接打开手机默认浏览器打开指定网页
- bool 和_Bool的使用
- 滴答顺风车怎么抢90%以上的订单_想来赚顺风车钱的补课内容都给你准备好了
- 翻译:理解特征工程(1)-连续数值数据
热门文章
- 模块sys, os, glob, pickle, subprocess常见用法
- E11000 duplicate key error collection
- Win10 Microsoft Edge浏览器播放视频出现绿屏情况解决之一
- 异步加载loading
- TinyXML2使用教程
- Ping IPv6在线测试检测 testipv6 加速镜像
- 计算机三个人的英语情景对话,求简单的三人英语情景对话对话 购物的老师要求要三人的英语对话 购物的 每人五句左右就行...
- 上传word文档显示服务器出错,打开office出错的几种解决方法
- 华为nova2自带计算机,华为Nova2 root图文教程 华为Nova2获取root权限的方法
- 华为服务器修改root密码,云服务器更改root权限设置密码