背景¶
近年来,出现了一个巨大的量子计算的兴趣高涨。政府、学术和商业组织花了数十亿美元试图创建可靠、通用的量子计算机。这些系统利用量子力学的不同寻常的特性来执行计算,可能永远不会在我们这一代,传统计算机上执行。这样的计算,有广泛的应用,包括:
- 打破加密算法(和设计新的)
- 工程新材料
- 模拟系统在极端环境中是如何表现的
- 寻找新的药物来治疗疾病
- 构建安全传输通道不能被窃听
量子计算机如何完成这些大胆的主张吗?我们如何使用这项技术来解决我们最困难的挑战?程序员喜欢你访问它?在本课程中,我们将探索这些问题的答案,帮助你打开写量子软件和模拟量子算法的能力。
量子计算理论¶
利用系统的概念由量子力学进行计算并不是一个新的;量子计算的领域已经存在自1980年。在其生命的大部分时间里,它几乎完全是由一个小观众的物理学家,数学家,计算机科学家和其他学者。字段本身很乐观:经常有人会发现一个新算法,该算法使用量子计算机镇压经典计算机的性能。其中的一些经典算法的指数级的时间,并减少了下来甚至线性量子。
用于广告的典型例子量子计算机的力量肖的算法——它提供了一种因子在线性时间内任意大的整数,而最好的经典算法仍然需要指数时间做它。这方便的副作用摧毁现代对称密钥加密HTTPS使用的RSA算法等。
除了重视现代密码理论,在量子计算机人工智能,机器学习,材料科学、优化的问题,医学,搜索应用程序等等。一般而言,量子计算机提供可观的加速效果的算法要求在经典计算机指数计算时间:
图片来自维基百科:https://en.wikipedia.org/wiki/BQP
这种力量已经非常有前途,但在过去的三十年,它很大程度上局限于理论和论文。建立一个实际的物理量子计算机是一个极其困难的事,因为量子系统的敏感程度,以及易于自发崩溃在中间的计算。很长一段时间,它被认为实用量子计算机无法实现。然而,近年来,情绪真的是考验。
硬件的革命¶
在2010年代early-to-mid,研究人员开始发现成功,符合成本效益的方式,控制和维护量子系统足够长的时间执行有用的计算。了他们的成功和这些强大的量子算法的魅力,商业公司开始投入数十亿美元的量子计算机的研究和发展:
他们的成功已经证明,量子处理器背后的挑战是可以克服的,只要有足够的研究和投资。量子计算是留在这里,这只是开始。我想说,如果我们要画一个并行量子计算机与经典计算机之间,我们的量子系统是一样好经典计算机在1940年或50的。
研究人员认识到这一点,很明显,这需要某种形式的软件框架,允许开发人员实际项目,在这些机器上执行量子算法。毕竟,电脑有什么好处,如果它没有运行任何程序?七十多年的传统软件开发已经告诉我们,软件不是一件容易的事情。我们现在有最佳实践、标准和惯例等高级模式自动内存管理和面向对象编程,单元测试和同行评审…软件工程已经成为一个非常复杂的和被充分研究过的领域本身。
这个类作为一种桥这两个领域,通过引入软件工程师已经精通世界的软件设计和实现量子计算机的世界。最后的类,你应该准备好你所有的软件工程知识应用到这个勇敢的新世界,并帮助设计高质量的量子算法,可以在实际运行,物理量子计算机。他们成为商业化的时候,就已经知道它们是如何工作的,以及如何编写程序,可以运行。
类型的量子计算机¶
量子计算机通常分为三类:
- 量子退火设备是为了解决特殊的优化问题。他们用量子力学来找到“足够好”的解决这些问题,但不一定是最好的解决方案。量子退火炉的一个很好的例子是递波2000问。我们不会讨论这些机器在这门课上,因为它们是有限的具体优化问题,而不是通用计算。
- 通用量子计算机(也称为通用门机器)基本上是量子计算机模拟的通用逻辑门风格古典处理器。这些电脑是我们最常听到当我们看到新闻文章,讨论诸如“量子霸权”或量子计算机有两位数的量子位。万博下载包他们正在运行的系统的量子算法往往声称改变一切,比如肖的算法——这可能会打破传统的公钥加密。Rigetti,公司如IBM、微软、谷歌和阿里巴巴都大量投资于研究通用量子计算机。在这堂课上我们会看这些,因为他们为软件工程应用提供最实用的平台。
- 连续变量的机器是普遍的变体是专门为光子系统的量子计算机。他们是相对近期的发展领域,所以我们不会讨论他们在这个类中,但他们是我们保持我们的眼睛。世外桃源的人工智能是在这种类型的机器,连同整个框架致力于使用光子量子人工智能系统。