4.26 讲稿

1.了解量子基本门
not cnot v v+
2.研究量子可逆逻辑的意义
集成电路功耗主要来自于计算过程中的不可逆操作,例如,对于2个比特的异或操作,只有一个比特的输出。这个过程中损失了一个自由度,这正是一个不可逆操作,而损失掉的自由度就转化为热量散掉了。所以消除能耗的关键就是寻找可逆操作代替计算过程中的不可逆操作。量子计算中每一步操作都可以用一个幺正变换来表示,因为每一个操作都是可逆的。
3.在研究过程中,我们只要了解一定的量子逻辑电路的知识,当然,最终是需要用编程方法解决问题或是验证观点。以一个量子电路问题的部分程序为例介绍一下编程的相关注意事项。
(1)了解问题:构造线性近邻(LNN)架构下最优量子电路
* 什么是线性最近邻(LNN)?
所有基本量子门的控制位和目标位是相邻的量子逻辑电路的情况

*什么是量子代价?
增加一个基本量子门就会增加一个量子代价
* Toffoli门和交换门
2个控制位的可逆Toffoli门转换成量子门需要5个单位量子门
一个交换门等价于3个基本量子门(3个cnot)
交换门的作用:顾名思义,交换。通过交换门可实现最近邻
*分析问题
因为交换门等价于3个cont门,所以增加一个交换门会增加3个量子代价。为了实现线性最近邻而添加交换门,会使量子代价增加。
所以我们需要找到一个方法尽可能的少用交换门,使用最小的门代价来实现线性最近邻可逆逻辑的结构。
*找到解决问题的方法(仅举出两个方法)
–全局换线(线路全排序)
不改变原来电路的输出,即重排序后的电路和原来的电路是等价的基础上提出和实现的,而且重排序后的电路线的数量以及每个量子门的控制位、目标位所在的电路线的位置是固定不变的。

//假设5线,则全排序共有5!种情况,这些情况中有一半是重复的
//eg:abcde edcba是等价的
//想一想怎么用编程实现全排序并找到最小nnc的情况
–局部换线(即添加交换门)

–线性最近邻并不是代表这量子代价最优。还需添加交换门以及消除重复门。
通过这些方法转换出等价电路,电路的最近邻代价明显比原来未排序的最近邻代价降低了,经过最近邻操作实现了量子电路线性最近邻结构的构建,通过对重复门的消除,大大降低了整个电路的量子代价。*编程实现
仅以全排序部分为例
*tips
1.在项目组等团队合作中,各有分工,所以会出现每个人有不同分工的情况,为了不让小伙伴看你的代码太吃力,在编程中我们要注意代码风格的规范和多写注释,注释至少要写上变量和方法的用途以及你的想法或者不足的特别说明。这样也便于自己阅读~
2.由于我们研究的是量子可逆逻辑电路,不免会遇到数据特别大特别多的情况,因此代码的优化很重要,以刚刚看的代码为例,当线数为10线时,不经过优化可能会跑好几个小时都跑不出来。
3.最后就是 算法。你的算法能力越强,对优化等工作都很有帮助,最重要的是也是个人编程能力的一种衡量,学好算法比多学很多门语言重要的多。在平时c++编程中,可以多看看stl,某些情况下可减轻编程负担。相关内容可以参考c++ primer或者c++ API。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值