量子编程基础
作者 : 应明生(Mingsheng Ying) 著
译者 : 张鑫 向宏 傅鹂 向涛 译
丛书名 : 计算机科学丛书
出版日期 : 2019-08-14
ISBN : 978-7-111-63129-3
定价 : 139.00元
教辅资源下载
扩展信息
语种 : 简体中文
页数 : 314
开本 : 16
原书名 : Foundations of Quantum Programming
原出版社: Elsevier (Singapore) Pte Ltd
属性分类: 教材
包含CD : 无CD
绝版 :
图书简介

【网店勿用!此为申报选题所填信息,网店请调用最终版】本书讨论了如何扩展当前计算机的新程序设计方法和技术,以利用量子计算机的独特能力。相比于现有计算机系统,量子计算机在处理速度上具有显著优势。世界各地的政府和企业都投入了大量资金,希望建造实用的量子计算机。本书结合作者在量子计算领域多年的研究经验,并辅以大量的例子和插图,介绍了量子编程语言及其所需的重要工具和技术,对于学者、研究人员和开发人员来说都是非常宝贵的参考资料。

图书特色

引领“量子数据+量子控制”范式,推动从量子理论到量子工程的新浪潮!

图书前言

就像上世纪经典计算机改变了我们的生活一样,本世纪量子计算机可能也会以相同的方式改变我们的日常生活。
—— 摘自 2012 年诺贝尔物理学奖新闻稿
相较于现有的计算机,量子计算机有着巨大的优势。政府和工业界都在该领域投入了大量的时间和经费,希望能够研发出实用的量子计算机。近年来物理实验领域的快速发展,使人们普遍期望在 10.20 年内实现规模大、功能全的量子计算机硬件。然而,要发挥量子计算的超级计算能力,仅仅依靠量子硬件显然是不够的,量子软件也必须发挥关键作用。目前广泛使用的软件开发技术不能直接应用于量子计算机。经典世界和量子世界的本质差异意味着需要新技术来为量子计算机编程。
关于量子编程的研究早在 1996 年就开始了,在之后的 20 年中,丰富的研究成果不断出现在各种会议报告和期刊论文中。另一方面,量子编程仍然是一个不成熟的课题,它的知识基础呈现高度碎片化和不连贯性。本书的目的就是对量子编程这一课题做系统和详尽的探索。
因为量子编程仍处于初级发展阶段,所以本书并没有将重点放在特定的量子编程语言或技术上,我相信这些特定的技术和语言在未来仍会面临巨大的改变。取而代之的是,我们将重点放在不同语言和技术所广泛使用的基础概念、方法和数学工具上。从量子力学和量子计算的基础概念开始,本书详细介绍了多种量子程序结构和一系列量子编程模型,它们都能够有效地利用量子计算机非比寻常的计算能力。此外,我们还系统地讨论了量子程序的语义、逻辑和分析与验证技术。
随着量子计算技术方面的大量投资和快速发展,我相信在未来的 10 年间会有越来越多的研究者加入量子编程这一激动人心的领域,他们需要一本参考书来作为研究工作的起点。
同样,越来越多的大学也会开设量子编程的课程,老师和学生也会需要一本参考书。所以,出于以下两点目的,我决定写这本书:
. 为未来该领域的研究者提供基础。
. 作为研究生或高年级本科生课程的教学材料。
量子编程是高度交叉学科。新加入该领域的科研人员,尤其是学生,通常对来自不同学科的预备知识感到沮丧。在编写这本书时,我尽可能使其自成体系,并明确地讲解细节,以便科研人员和广大程序员都能够无障碍地阅读。
写作本书给了我一个机会来系统化自己对量子编程的看法。另一方面,本书的选题和材料是根据我对这一课题的理解来组织的。由于我的知识水平有限,本书正文省略了一些重要的主题。作为补救措施,本书最后的“发展前景”一章对这些主题进行了简短的讨论。
本书是根据我在清华大学智能技术与系统国家重点实验室的量子计算与量子信息组和悉尼科技大学量子计算与智能系统中心的量子计算实验室 15 年来的研究成果编著而成的。我非常享受与那里的同事及学生的合作和讨论。感谢他们每一个人。
特别感谢 Ichiro Hasuo(东京大学)和 Yuan Feng(悉尼科技大学),他们耐心地阅读了本书的初稿并提出了宝贵的意见和建议。非常感谢那些匿名的审稿人,他们为本书的结构提出了非常有用的建议。还要衷心感谢 Steve Elliot、Punithavathy Govindaradjane、Amy Invernizzi 和 Lindsay Lawrence,他们是 Morgan Kaufmann 负责本书的编辑和项目经理。
特别感谢悉尼科技大学工程与信息技术系的量子计算与智能系统中心给予我研究和探索的自由。
我在量子编程方面的研究受澳大利亚研究理事会、中国国家自然科学基金和中国科学院数学与系统科学研究院海外团队项目的支持。非常感谢他们提供的帮助。

上架指导

计算机/量子

封底文字

近年来物理实验领域的快速发展,使人们普遍期望在10~20年内实现规模大、功能全的量子计算机硬件。然而,要发挥量子计算的超级计算能力,仅仅依靠量子硬件是不够的,量子软件也必须发挥关键作用。目前广泛使用的软件开发技术不能直接应用于量子计算机,经典世界和量子世界的本质差异意味着需要新的技术来为量子计算机编程。

本书对量子编程这一课题进行了系统和详尽的探索,将研究重点放在不同量子编程语言和技术所广泛使用的基础概念、方法和数学工具上。全书从量子力学和量子计算的基础概念开始,详细介绍了多种量子程序结构和一系列量子编程模型。此外,还系统地讨论了量子程序的语义、逻辑和分析与验证技术。

本书特色
系统性地阐释量子编程理论,一步步揭开量子计算的神秘面纱。
包含许多用于开发、分析和验证量子程序和量子加密协议的方法、技术和工具,对于学术界和工业界的研究者和开发人员都极具价值。
涵盖量子力学、数学和计算机科学的相关预备知识,并指出其在量子工程和物理学中的潜在应用,呈现了量子编程的跨学科特性。

图书序言

序言一
从 20 世纪末到 21 世纪初,中国学术界发生了很多事情,其中有一个小小的扰动,就是量子计算的新发展引起了学术界的关注。多位元老级人物亲自披挂上阵,在国内兴起了一股量子计算热。例如夏培肃院士亲自编写了量子计算的入门讲义,徐家福先生亲自在南大组织讨论班,带领年轻教师攻关。前辈们的亲力亲为给我们很大的鼓舞,我也开始学习夏先生的讲义。现在想起来,这股量子计算热很大程度上是由于 Shor 发表了著名的量子大数分解算法,使很多人一下子爱上了量子计算。当时我与应明生教授有一些学术上的交流和讨论,在此过程中我了解到他不仅关心量子计算,而且已经真刀真枪地动手干了。应教授没有去做量子算法,而是在量子可计算性理论方面开辟了一个新战场。上世纪末,量子可计算性,特别是量子自动机研究,已经引起人们的注意。其中有 Moore 和 Cruchfield 的题为“量子自动机和量子文法”的文章,开辟了 Hilbert 空间上的量子自动机研究;还有 Kondacs、Watrous和 Ambainis 等人建立在(单或多)图灵带上的量子自动机研究;而应教授则以“基于量子逻辑的自动机理论”为题发表了系列文章,形成了量子自动机的第三种理论和风格,并引领了许多后续工作,和前两种理论并立,三分天下成鼎足。不过,应教授并没有把他在量子可计算性理论方面的工作,以及其他许多和量子计算有关的工作写进本书中,甚至也没有列在书后的文献中。这是为了将主题集中于量子程序设计,然而工作之间的相关性实际上还是存在的。
翻阅本书目录可以看出,这不是一本泛泛集成本领域成果的综述性著作,而是一本以领域发展为背景,阐述作者本人(也包括部分团队成员)在量子程序设计领域主要成果的专著,同时也展示了作者对该领域发展的根本观点。
本世纪初的前后几年间,量子计算研究的势头还真是很猛。正如书中 1.1 节所概括的那样,三波研究高潮接踵而来。第一波是各类量子程序设计语言(下面简称量子语言)的兴起,第二波是这些语言的形式语义研究,第三波则是量子程序的分析和验证。这三波研究大体上可以刻画出本世纪初以来量子程序设计研究的总趋势。应教授及其团队在每一波高潮中都涌起了属于自己的浪花。根据我的理解,量子语言中的高级量子控制结构,以及量子形式语义和量子程序分析,正好是应教授的三个主要关注点,其最具特色的部分在书中都有论述。我的理解能力有限,下面只从个人角度说一说使我印象最深的亮点。首先,在量子语言的设计方面,应教授在引进量子计算的高级控制结构方面的努力令我印象最深。在传统的冯.诺依曼体系结构中,运算和控制是计算的最核心部分。然而,在量子语言的发展过程中,这两部分却是很不平衡的。量子数据的处理是每一种量子语言的必备功能,但具备量子控制功能的语言却比较罕见。不少量子语言都以量子数据 + 经典控制的形式登场,而应教授的兴趣和精力却集中在高级量子控制结构方面。关于这个问题我们在下面还要再谈。其次,在量子语言的形式语义方面,应教授关于量子公理语义的工作可能最值得关注。其背景是:当人们思考如何把 Floyd-Hoare 逻辑和 Dijkstra 的谓词转换器推广到量子情形时,D'Hondt 和Panangaden 出人意料地提出可以用符合某种条件的正 Hermite 算子定义其中的量子谓词。当时有不少研究者跟进这个新思想,但都只取得了部分进展,唯有应教授给出了完整的量子Floyd-Hoare 公理框架,包括部分正确性和完全正确性两个方面,并证明了它们都是健康和完备的,使该项研究在一定意义上达到完美。该成果成为不久前美国发布的战略报告“Next Steps in Quantum Computing: Computer Science's Roles”中提到的唯一一项华人工作。最后,在量子程序分析和验证方面,我向读者特别推荐作者在量子马尔可夫链方面的工作。如果把一个量子程序的执行看成一个量子马尔可夫链,则程序的执行能否终止就和量子马尔可夫链的可达性密切相关。这不仅在量子程序的分析和验证中要用到,而且在量子语言的语义描述中也要用到,尤其是在那些高级量子控制结构,如 Q-while、Q-case、Q-loop、Q-recursion等的可终止性分析中要用到。作者为此引进了 Hilbert 空间中量子图的概念,证明了本书提出的高级量子控制结构能够终止的充分必要条件。对于本书的许多重要成果来说,这项工作是奠基性的。
现在我们回到上面列举的应教授工作的三方面亮点中尚未展开讨论的第一项亮点。读者应该已经注意到,本书中最关键的篇幅贡献给了如何在量子语言中引进高级量子控制结构。我以为这是应教授对量子程序设计的最主要贡献,是上述三大亮点中最大的亮点。必须强调,这项工作的意义不仅仅是以更加严格、完整和系统的形式,推出了量子 case 结构、量子递归结构、二次量子化、量子程序叠加等一系列高级量子控制结构的概念,这些概念在前几年已经由作者以不同的形式陆续发表了。它的最重要的意义可能在于打开了一扇窗,让人们看到窗外既是光怪陆离,也是缤纷多彩,更是神秘莫测的量子计算世界。100 多年前的科学大师第一次打开了量子世界的窗子,它背离人们想象力的程度令人难以置信,以至于至今人类还没有完全搞清楚它的奥妙。现在我们面临的是量子世界里的又一扇小窗,小窗外是深不可测的量子计算世界,其中一定还沉睡着大量的秘密。事实上许多问题发人深思。例如,while、case、loop、recursion 这些控制结构最初都来自经典程序设计,是借用的概念。是不是还存在不带经典痕迹,纯粹来自量子世界客观规律的新型量子计算控制结构?(参见第8 章。不妨想一想如今的经典计算控制结构是如何完全脱离当初冯.诺依曼指令结构的窠臼的。)又如,量子(系统)控制理论和技术已是一门比较成熟的学科,而且还在发展之中。它的经验和成就为什么不能借用(移植)到量子计算中来,使量子系统控制结构成为量子计算控制结构?(当然,这里横着一条分割连续和离散控制的鸿沟。我们可以指望 Hamilton 量能应用到量子计算的控制结构中吗?参见 8.8 节,不过是反方向的。)再如,目前的量子计算好像还没有深入量子态的内部,例如尚未精细到可以操纵多量子多纠缠态,关于量子纠缠单配性的研究好像还停留在理论阶段。(我注意到已经有人在探讨这个问题,但尚未将之引入量子程序设计。参见 8.6 节。)最后,量子程序不仅用于计算,它也是程序分析的对象,诸如模型检验这一类工作,目前也在很大程度上受经典框架的影响,如果我们深入研究隐藏在小窗外的量子计算世界,说不定有很多离“经”叛“典”的量子程序量子分析方法会被发现(参见 8.7 节)。
2002 年,设计过著名的 Pascal 语言的 Wirth 出版了一本名为《Algorithm + Data Struc- ture = Program》的书,从此“算法 + 数据结构 = 程序”的说法在计算机界不胫而走,成为名言。如果把这句话翻译成量子版,是否就应该说“量子算法 + 量子数据 + 高级量子控制结构 = 量子程序”?但这样的结果,用普通的直译方法是得不到的,因为其中“无中生有”地冒出了“高级量子控制结构”几个字。可是这恰恰体现了本书告诉我们的一个结论:经典的程序设计方法学是不能简单地“翻译”成量子程序设计方法学的,至少因为高级量子控制结构是一道迈不过去的坎。
应明生教授无疑是量子程序设计领域“量子数据 + 量子控制”范式的领跑者,本书的出版就是一个极好的例子。然而,尽管量子控制结构对于量子程序设计语言那么重要,我们却看到了一种曲高和寡的现象。在查阅资料的时候发现,讨论一般量子系统中量子控制结构的文章好找,但是除了应教授及其团队的工作外,讨论量子程序设计语言中高级量子控制结构的文章却寥若晨星。最近几年新出炉的一些量子程序设计语言,例如 Q#、Quipper 和QuMin,绝大部分都回避了量子控制结构,个别有量子控制结构的如 Sca.old,也只是引进了基于量子线路的量子控制命令。类似于本书中引进的 QuGCL 语言所含的高级量子控制结构的工作实属罕见。
这是由于什么原因呢?是由于物理实现的困难?还是由于形式语义说明的困难?是由于想提升量子程序设计语言对传统的程序员和软件工程师的吸引力,还是仅仅由于不愿意放弃经典高级程序设计语言中控制结构的那种“美”感?我的感觉是:可能是有关的决策者迫切希望看到实现方便和使用方便的量子语言。一个听了几十年美食宣传,却一直不能亲口品尝的人饿急了,不想等了。不管是什么味道,先来一口再说。
话说回来。历史经验表明,先行者往往是孤独的,但这也仅仅是暂时的。希望本书的出版能像报春的梅花、送春的燕子,为高级量子程序设计机制的蓬勃发展迎来春水泛滥、春潮涌动的繁荣局面。这正是作者期望的第二次量子革命:从量子理论到量子工程。
非常高兴应明生教授的专著要出中文版了,出版社要我写序,我很乐意但也很惶恐地接受了这个邀请。乐意是因为有机会向国内读者推荐应教授这本引领该领域研究的力作,而惶恐则是因为相对于真正读懂这本书,我的知识太有限了。说得不当之处,只好请作者和读者海涵了。

陆汝钤
2019 年 5 月 29 日



序言二
从软件危机到硬件危机
距今半个多世纪的 1968 年夏天,在风景如画的德国度假小镇 Garmisch,来自北大西洋公约组织(NATO)的西方盟国的数百名顶尖科学家济济一堂。但他们的心情并非像度假那样轻松惬意,反而是心事重重。把这些科学家聚集在一起的原因只有一个,那就是如何解决从上世纪 60 年代初就日益显现的一个至关重要的问题:随着信息系统越来越复杂,软件代码越来越庞大,软件的质量却越来越堪忧。例如 60 年代初几次重大软件质量事件所引发的“软件危机”。
Garmisch 会议以及第二年罗马会议的一个非凡成果是,“软件工程”就此诞生。然而,半个世纪过去之后,人们发现科学家当年面对的软件系统依然面临诸多严峻的挑战,唯一不同的是,现在的软件变得更为复杂。最近发生的波音公司 737MAX 的飞行控制软件导致的灾难性后果就是一个明证。是什么原因让软件的质量始终无法让人放心呢?如果仔细翻阅当年Garmisch 会议的发言记录就会发现,科学家对于软件编程所依靠的数学模型关注不多,只有寥寥数语。难道这是软件质量至今难以让人满意的原因之一?在从事软件工程科研及教学的过程当中,这个问题一直萦绕在我们的脑海里。这也是当我们读到应明生教授这本专著的时候,被其优美明快的数学色彩所吸引,并决心把它翻译出来与国内有志者共赏的主要原因。
诚然,如果我们现在就声称人类社会已经进入“量子软件工程”时代,似乎有点为时尚早。但如果人们在量子软件编程处于摇篮时期,就对量子编程所涉及的数学模型给予足够重视的话,那么将来量子软件工程是否会拥有更加牢固的基石呢?
另一方面,尽管现在芯片技术仍然在不断推陈出新,10 纳米工艺、7 纳米工艺、5 纳米工艺…… 但一个不可否认的事实是,摩尔定律即将在未来十年之内“挤干最后一滴柠檬汁”,晶体管的尺寸必将进入微观世界,并将接受这个世界的物理定律 || 量子物理的控制。换言之,现有的 CMOS 工艺所蕴含的“硬件危机”并非危言耸听。
没有人能够准确地回答未来人类社会面临更加迅猛的大数据与人工智能的冲击之时,是否会面临更加严峻的“软件危机”和“硬件危机”。但有一点是肯定的,那就是新的科学技术依然应当也必须建立在数学的基础之上。
“我们应当知道,我们必将知道。”数学之王大卫.希尔伯特,同时也是量子力学数学基础的奠基者在上世纪 30 年代曾经自信地号召迷茫的世人。这,是否也可以作为有志于从事量子软件编程理论研究的人的座右铭呢?
最后我们想强调的是,由于翻译水平所限,译稿中难免存在一些谬误。这些均由我们承担,而与作者无关。
本书的翻译工作得到了国家重点研发计划新型数据保护密码算法研究(No.2017YFB080 2000)和基于国产密码算法的服务认证与证明关键技术(No.2017YFB0802400)的大力支持,在此一并致谢。

译 者
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

教学资源推荐
作者: 王月海 何丽 孟丹 张艳苏 编著
作者: [德] 史蒂文·S. 斯基纳(Steven S.Skiena) 著
作者: [加]斯蒂芬·布朗(Stephen Brown) 斯万克·瓦拉纳西(Zvonko Vranesic) 著
作者: (美)Robert Sedgewick 著                    普林斯顿大学
参考读物推荐
作者: (美)Linda Lamb,Arnold Robbins
作者: Alfred V. Aho; Monica S.Lam ; Ravi Sethi ; Jeffrey D. Ullman
作者: [美]梅甘?斯夸尔(Megan Squire) 著