量子计算被誉为下一代编程范式。随着一些量子计算平台和模拟器向公众放,普通程序员也可以尝试编写量子计算程序,感受前沿科技的无穷魅力。《量子计算机编程:从门到实践》不会解释晦涩的量子力学理论,而会采用直观的圆形表示法描绘量子比特,并从实践角度展示如何编写有趣的量子计算程序。通过《量子计算机编程:从门到实践》提供的在线实验室网站,你可以动手运行书中的JavaScript示例代码。全书分为四大部分,分别介绍量子计算机编程的核心概念、原语、应用和发展趋势。你将了解量子隐形传态、量子算术运算、量子傅里叶变换和量子相位估计等知识,以及量子搜索、量子超采样、量子机器学习等高级主题。<br/>【推荐语】<br/>1.直观的圆形表示法阐释量子计算机编程概念原理与应用场景 2.提供在线实验室网站,兼具代码运行与可视化效果 3.详细解读量子计算机编程核心概念、算法原语及应用程序构建 4.图书全彩印刷,图文并茂<br/>【作者】<br/>【作者简介】 埃里克·R. 约翰斯顿(Eric R. Johnston)毕业于美国加州大学伯克利分校,他创造了量子计算模拟器QCEngine,目前在硅谷担任高级量子工程师。 尼古拉斯·哈里根(Nicholas Harrigan)是英国伦敦帝国理工学院博士,他在量子力学方面的研究工作勉强使他相信,当他不看月亮时,月亮仍在那里。 梅塞德丝·希梅诺?C塞戈维亚(Mercedes Gimeno-Segovia)从英国伦敦帝国理工学院取得博士学位后,加了PsiQuantum公司,致力于设计通用量子计算机。 【译者简介】 从事医疗与前沿ICT技术结合的相关研发工作,密切关注人工智能、量子计算等领域,另译有《详解深度学习》《图解机器学习算法》等技术书。
版权声明
O\'Reilly Media, Inc. 介绍
译者序
前言
第 1 章 入门
1.1 所需背景
1.2 何谓QPU
1.3 动手实践
QCEngine入门
1.4 原生QPU指令
1.4.1 模拟器的上限
1.4.2 硬件的上限
1.5 QPU与GPU的共同点
第一部分 QPU 编程
第 2 章 单个量子比特
2.1 物理量子比特概览
2.2 圆形表示法
2.2.1 圆的大小
2.2.2 圆的旋转
2.3 第一批QPU指令
2.3.1 QPU指令:NOT
2.3.2 QPU指令:HAD
2.3.3 QPU指令:READ和WRITE
2.3.4 实践:完全随机的比特
2.3.5 QPU指令:PHASE(θ)
2.3.6 QPU指令:ROTX(θ)和ROTY(θ)
2.4 复制:缺失的指令
2.5 组合QPU指令
QPU指令:RNOT
2.6 实践:量子监听检测
2.7 小结
第 3 章 多个量子比特
3.1 多量子比特寄存器的圆形表示法
3.2 绘制多量子比特寄存器
3.3 多量子比特寄存器中的单量子比特运算
读取多量子比特寄存器中的某个量子比特
3.4 可视化更多数量的量子比特
3.5 QPU指令:CNOT
3.6 实践:利用贝尔对实现共享随机性
3.7 QPU指令:CPHASE(θ)和CZ
QPU技巧:相位反冲
3.8 QPU指令:CCNOT
3.9 QPU指令:SWAP和CSWAP
交换测试
3.10 构造任意的条件运算
3.11 实践:远程控制随机性
3.12 小结
第 4 章 量子隐形传态
4.1 动手尝试
4.2 程序步骤
4.2.1 步骤1:创建纠缠对
4.2.2 步骤2:准备有效载荷
4.2.3 步骤3.1:将有效载荷链接到纠缠对
4.2.4 步骤3.2:将有效载荷置于叠加态
4.2.5 步骤3.3:读取Alice的两个量子比特
4.2.6 步骤4:接收和转换
4.2.7 步骤5:验证结果
4.3 解释结果
4.4 如何利用隐形传态
4.5 著名的隐形传态事故带来的乐趣
第二部分 QPU 原语
第 5 章 量子算术与逻辑
5.1 奇怪的不同
5.2 QPU中的算术运算
实践:实现自增运算和自减运算
5.3 两个量子整数相加
5.4 负整数
5.5 实践:更复杂的数学运算
5.6 更多量子运算
5.6.1 量子条件执行
5.6.2 相位编码结果
5.7 可逆性和临时量子比特
5.8 反计算
5.9 QPU中的逻辑运算
基本的量子逻辑
5.10 小结
第 6 章 振幅放大
6.1 实践:在相位和强度之间相互转换
6.2 振幅放大迭代
6.3 更多迭代?
6.4 多个标记值
6.5 使用振幅放大
6.5.1 作为和估计的AA与QFT
6.5.2 用AA加速传统算法
6.6 QPU内部
直观理解
6.7 小结
第 7 章 量子傅里叶变换
7.1 隐藏模式
7.2 QFT、DFT和FFT
7.3 QPU寄存器中的频率
7.4 DFT
7.4.1 实数DFT输入与复数DFT输入
7.4.2 DFT一切
7.5 使用QFT
高效的QFT
7.6 QPU内部
7.6.1 直观理解
7.6.2 逐步运算
7.7 小结
第 8 章 量子相位估计
8.1 了解QPU运算
8.2 本征相位揭示有用信息
8.3 相位估计的作用
8.4 如何使用相位估计
8.4.1 输入
8.4.2 输出
8.5 使用细节
8.5.1 选择输出寄存器的大小
8.5.2 复杂度
8.5.3 条件运算
8.6 实践中的相位估计
8.7 QPU内部
8.7.1 直观理解
8.7.2 逐步运算
8.8 小结
第三部分 QPU应用程序
第 9 章 真实的数据
9.1 非整型数据
9.2 QRAM
9.3 向量的编码
9.3.1 振幅编码的局限性
9.3.2 振幅编码和圆形表示法
9.4 矩阵的编码
9.4.1 QPU运算如何表示矩阵
9.4.2 量子模拟
第 10 章 量子搜索
10.1 相位逻辑
10.1.1 构建基本的相位逻辑运算
10.1.2 构建复杂的相位逻辑语句
10.2 解决逻辑谜题
小猫和老虎
10.3 求解布尔可满足性问题的一般方法
10.3.1 实践:一个可满足的3-SAT问题
10.3.2 实践:一个不可满足的3-SAT问题
10.4 加速传统算法
第 11 章 量子超采样
11.1 QPU能为计算机图形学做什么
11.2 传统超采样
11.3 实践:计算相位编码图像
11.3.1 QPU像素着色器
11.3.2 使用PHASE画图
11.3.3 绘制曲线
11.4 采样相位编码图像
11.5 更有趣的图像
11.6 超采样
11.7 量子超采样与蒙特卡罗采样
量子超采样的工作原理
11.8 增加颜色
11.9 小结
第 12 章 舒尔分解算法
12.1 实践:在QPU上应用舒尔分解算法
12.2 算法说明
12.2.1 我们需要QPU吗
12.2.2 量子方法
12.3 逐步操作:分解数字15
12.3.1 步骤1:初始化QPU寄存器
12.3.2 步骤2:扩展为量子叠加态
12.3.3 步骤3:条件乘2
12.3.4 步骤4:条件乘4
12.3.5 步骤5:QFT
12.3.6 步骤6:读取量子结果
12.3.7 步骤7:数字逻辑
12.3.8 步骤8:检查结果
12.4 使用细节
12.4.1 求模
12.4.2 时间与空间
12.4.3 除了2以外的互质
第 13 章 量子机器学习
13.1 求解线性方程组
13.1.1 线性方程组的描述与求解
13.1.2 用QPU解线性方程组
13.2 量子主成分分析
13.2.1 传统主成分分析
13.2.2 用QPU进行主成分分析
13.3 量子支持向量机
13.3.1 传统支持向量机
13.3.2 用QPU实现支持向量机
13.4 其他机器学习应用
第四部分 展望
第 14 章 保持领先:文献指引
14.1 从圆形表示法到复向量
14.2 与术语有关的一些细节和注意事项
14.3 测量基
14.4 门的分解与编译
14.5 隐形传态门
14.6 QPU名人堂
14.7 竞赛:量子计算机与传统计算机
14.8 基于oracle的算法研究
14.8.1 Deutsch-Jozsa算法
14.8.2 Bernstein-Vazirani算法
14.8.3 Simon算法
14.9 量子编程语言
14.10 量子模拟的前景
14.11 纠错与NISQ设备
14.12 进一步学习
14.12.1 出版物
14.12.2 课程讲义
14.12.3 在线资源
关于作者
关于封面
猜您喜欢
推荐内容
开源项目推荐 更多
热门活动
热门器件
用户搜过
随便看看
热门下载
热门文章
热门标签
评论