计算机科学丛书 量子编程基础
作者:张鑫,向宏,傅鹂,向涛译;(中国)应明生
出版时间: 2019年版
内容简介
【网店勿用!此为申报选题所填信息,网店请调用*终版】本书讨论了如何扩展当前计算机的新程序设计方法和技术,以利用量子计算机的独特能力。相比于现有计算机系统,量子计算机在处理速度上具有显著优势。世界各地的政府和企业都投入了大量资金,希望建造实用的量子计算机。本书结合作者在量子计算领域多年的研究经验,并辅以大量的例子和插图,介绍了量子编程语言及其所需的重要工具和技术,对于学者、研究人员和开发人员来说都是非常宝贵的参考资料。
目录
出版者的话
序言一
序言二
前言
致谢
第一部分 引言和预备知识
第 1 章 引言 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.1 量子编程研究简史 . . . . . . . . . . . . . . . 2
1.1.1 量子编程语言的设计. . . . . . . . . .2
1.1.2 量子编程语言的语义. . . . . . . . . .3
1.1.3 量子程序的验证和分析 . . . . . . . 3
1.2 量子编程的方法 . . . . . . . . . . . . . . . . . 4
1.2.1 数据叠加——带经典控制的量子程序 . . . . . . . . . . . . . . . . . . . . 4
1.2.2 程序叠加——带量子控制的量子程序 . . . . . . . . . . . . . . . . . . . . 5
1.3 全书结构. . . . . . . . . . . . . . . . . . . . . . . . .5
第 2 章 预备知识 . . . . . . . . . . . . . . . . . . . . . . . . 8
2.1 量子力学. . . . . . . . . . . . . . . . . . . . . . . . .8
2.1.1 希尔伯特空间 . . . . . . . . . . . . . . . . 8
2.1.2 线性算子 . . . . . . . . . . . . . . . . . . . 12
2.1.3 幺正变换 . . . . . . . . . . . . . . . . . . . 14
2.1.4 量子测量 . . . . . . . . . . . . . . . . . . . 16
2.1.5 希尔伯特空间的张量积 . . . . . . 18
2.1.6 密度算子 . . . . . . . . . . . . . . . . . . . 20
2.1.7 量子操作 . . . . . . . . . . . . . . . . . . . 22
2.2 量子线路 . . . . . . . . . . . . . . . . . . . . . . . 24
2.2.1 基本定义 . . . . . . . . . . . . . . . . . . . 24
2.2.2 单量子比特门 . . . . . . . . . . . . . . .26
2.2.3 受控门 . . . . . . . . . . . . . . . . . . . . . 27
2.2.4 量子多路复用器. . . . . . . . . . . . .29
2.2.5 量子门的通用性. . . . . . . . . . . . .31
2.2.6 量子线路的测量. . . . . . . . . . . . .31
2.3 量子算法 . . . . . . . . . . . . . . . . . . . . . . . 32
2.3.1 量子并行性与量子干涉 . . . . . . 33
2.3.2 Deutsch-Jozsa 算法 . . . . . . . . . 35
2.3.3 Grover 搜索算法 . . . . . . . . . . . . 36
2.3.4 量子游走 . . . . . . . . . . . . . . . . . . . 39
2.3.5 量子游走搜索算法. . . . . . . . . . .42
2.3.6 量子傅里叶变换. . . . . . . . . . . . .44
2.3.7 相位估计 . . . . . . . . . . . . . . . . . . . 45
2.4 文献注解 . . . . . . . . . . . . . . . . . . . . . . . 48
第二部分 带经典控制的量子程序
第 3 章 量子程序的语法和语义. . . . . . . . .50
3.1 语法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
3.2 操作语义 . . . . . . . . . . . . . . . . . . . . . . . 53
3.3 指称语义 . . . . . . . . . . . . . . . . . . . . . . . 59
3.3.1 语义函数的基本属性 . . . . . . . . 61
3.3.2 量子域 . . . . . . . . . . . . . . . . . . . . . 62
3.3.3 循环的语义函数. . . . . . . . . . . . .64
3.3.4 量子变量的改变与访问 . . . . . . 65
3.3.5 终止和发散的概率. . . . . . . . . . .66
3.3.6 作为量子操作的语义函数 . . . . 68
3.4 量子编程中的经典递归 . . . . . . . . . 69
3.4.1 语法 . . . . . . . . . . . . . . . . . . . . . . . 70
3.4.2 操作语义 . . . . . . . . . . . . . . . . . . . 71
3.4.3 指称语义 . . . . . . . . . . . . . . . . . . . 71
3.4.4 不动点特性 . . . . . . . . . . . . . . . . . 74
3.5 例子:Grover 量子搜索 . . . . . . . . . 77
3.6 引理的证明 . . . . . . . . . . . . . . . . . . . . . 79
3.7 文献注解 . . . . . . . . . . . . . . . . . . . . . . . 83
第 4 章 量子程序的逻辑 . . . . . . . . . . . . . . . . 85
4.1 量子谓词 . . . . . . . . . . . . . . . . . . . . . . . 85
4.1.1 量子最弱前置条件. . . . . . . . . . .87
4.2 量子程序的 Floyd-Hoare 逻辑. . .91
4.2.1 正确性公式 . . . . . . . . . . . . . . . . . 91
4.2.2 量子程序的最弱前置条件 . . . . 94
4.2.3 部分正确性的证明系统 . . . . . 101
4.2.4 整体正确性的证明系统 . . . . . 107
4.2.5 例子:推理 Grover 算法 . . . . 114
4.3 量子最弱前置条件的可交换性 . . . . . . . . . . . . . . . . . . . . . . 119
4.4 文献注解 . . . . . . . . . . . . . . . . . . . . . . 123
第 5 章 量子程序的分析. . . . . . . . . . . . . . .124
5.1 量子 while 循环的终止性分析 . . . . . . . . . . . . . . . . . . . . . . . . . . . 124
5.1.1 使用幺正操作作为循环体的量子 while 循环 . . . . . . . . . . . 124
5.1.2 一般性量子 while 循环. . . . .132
5.1.3 例子 . . . . . . . . . . . . . . . . . . . . . . 143
5.2 量子图理论 . . . . . . . . . . . . . . . . . . . . 145
5.2.1 基本定义 . . . . . . . . . . . . . . . . . . 146
5.2.2 末端强连通分量 . . . . . . . . . . . 149
5.2.3 状态希尔伯特空间的分解 . . . 153
5.3 量子马尔可夫链的可达性分析 . . . . . . . . . . . . . . . . . . . . . . . . . . . 158
5.3.1 可达性概率. . . . . . . . . . . . . . . .158
5.3.2 重复可达性概率 . . . . . . . . . . . 160
5.3.3 持续性概率. . . . . . . . . . . . . . . .163
5.4 引理的证明 . . . . . . . . . . . . . . . . . . . . 165
5.5 文献注解 . . . . . . . . . . . . . . . . . . . . . . 173
第三部分 带量子控制的量子程序
第 6 章 量子 case 语句 . . . . . . . . . . . . . . . 176
6.1 case 语句:从经典到量子 . . . . . . 176
6.2 QuGCL:支持量子 case 语句的编程语言 . . . . . . . . . . . . . . . . . . . . . . 179
6.3 量子操作的卫式组合 . . . . . . . . . . 182
6.3.1 幺正算子的卫式组合 . . . . . . . 182
6.3.2 算子值函数. . . . . . . . . . . . . . . .183
6.3.3 算子值函数的卫式组合 . . . . . 185
6.3.4 量子操作的卫式组合 . . . . . . . 187
6.4 QuGCL 程序的语义 . . . . . . . . . . . 189
6.4.1 经典态 . . . . . . . . . . . . . . . . . . . . 189
6.4.2 半经典语义. . . . . . . . . . . . . . . .190
6.4.3 纯量子语义. . . . . . . . . . . . . . . .192
6.4.4 最弱前置条件语义 . . . . . . . . . 194
6.4.5 例子 . . . . . . . . . . . . . . . . . . . . . . 195
6.5 量子选择 . . . . . . . . . . . . . . . . . . . . . . 197
6.5.1 选择:通过概率性从经典转换到量子. . . . . . . . . . . . . . . .197
6.5.2 概率性选择的量子实现 . . . . . 199
6.6 代数法则 . . . . . . . . . . . . . . . . . . . . . . 202
6.7 例子 . . . . . . . . . . . . . . . . . . . . . . . . . . . 204
6.7.1 量子游走 . . . . . . . . . . . . . . . . . . 204
6.7.2 量子相位估算. . . . . . . . . . . . . .206
6.8 讨论 . . . . . . . . . . . . . . . . . . . . . . . . . . . 208
6.8.1 量子操作卫式组合的系数 . . . 208
6.8.2 通过子空间控制的量子case 语句 . . . . . . . . . . . . . . . . . 211
6.9 引理、命题和定理的证明 . . . . . . 213
6.10 文献注解 . . . . . . . . . . . . . . . . . . . . . 225
第 7 章 量子递归 . . . . . . . . . . . . . . . . . . . . . . 227
7.1 量子递归程序的语法 . . . . . . . . . . 227
7.2 启发性示例:递归量子游走. . . . 230
7.2.1 递归量子游走的规范 . . . . . . . 230
7.2.2 如何求解递归量子方程 . . . . . 234
7.3 二次量子化 . . . . . . . . . . . . . . . . . . . . 235
7.3.1 多粒子态 . . . . . . . . . . . . . . . . . . 235
7.3.2 Fock 空间 . . . . . . . . . . . . . . . . . 238
7.3.3 Fock 空间的可观测量 . . . . . . 241
7.3.4 Fock 空间的演变. . . . . . . . . . .243
7.3.5 粒子的产生与湮灭 . . . . . . . . . 244
7.4 在自由 Fock 空间中求解递归方程 . . . . . . . . . . . . . . . . . . . . . . 245
7.4.1 自由 Fock 空间中算子的域 . . . . . . . . . . . . . . . . . . . . . . 245
7.4.2 程序模式的语义泛函 . . . . . . . 248
7.4.3 不动点语义. . . . . . . . . . . . . . . .251
7.4.4 语法逼近 . . . . . . . . . . . . . . . . . . 252
7.5 恢复对称性与反对称性 . . . . . . . . 257
7.5.1 对称函数 . . . . . . . . . . . . . . . . . . 258
7.5.2 量子递归程序语义的对称性 . . . . . . . . . . . . . . . . . . . . 259
7.6 量子递归的主系统语义 . . . . . . . . 260
7.7 例子:回顾递归量子游走 . . . . . . 261
7.8 (带量子控制的)量子 while循环 . . . . . . . . . . . . . . . . . . . . . . . . . . . 265
7.9 文献注解 . . . . . . . . . . . . . . . . . . . . . . 268
第四部分 发展前景
第 8 章 发展前景 . . . . . . . . . . . . . . . . . . . . . . 272
8.1 量子程序与量子机 . . . . . . . . . . . . . 272
8.2 量子编程语言的实现 . . . . . . . . . . 273
8.3 函数式量子编程 . . . . . . . . . . . . . . . 274
8.4 量子程序的范畴语义 . . . . . . . . . . 275
8.5 从并行量子程序到量子并行 . . . 275
8.6 量子编程中的纠缠 . . . . . . . . . . . . . 276
8.7 模型检测量子系统 . . . . . . . . . . . . . 277
8.8 应用于物理学的量子编程. . . . . .278
参考文献 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 279
索引 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 293