【翻译】什么是量子计算机?用一个简单的例子来解释。

2018-10-25 1 条评论 76 次阅读 9 人点赞

嗨,大家好!

前几天,我参观了加拿大温哥华的D-Wave Systems,它是一家生产尖端量子计算机的公司。

我在那里学到了很多关于量子计算机的知识,所以我想在本文中与大家分享一下我在那里学到的东西。

本文的目的是通过一个简单的示例,让您准确直观地了解量子计算机。

本文不要求您事先了解量子物理或计算机科学以便能够理解它。

好的,让我们开始吧。

什么是量子计算机?

这是量子计算机的一句话总结:

量子计算机是一种应用量子力学的计算机,因此它可以比普通计算机更有效地执行某些类型的计算。

在这句话中有很多东西需要拆解开来,所以让我通过一个简单的例子向您介绍它究竟是什么。

为了解释量子计算机是什么,我需要先解释一下常规(非量子)计算机。

常规计算机如何存储信息

目前,普通计算机以0和1的序列存储信息。

普通计算机可以用这种方式表示不同种类的信息,例如数字、文本和图像。

这个0和1序列中的每个单元称为一个位(bit,比特)。因此,可以将一个位(bit,比特)设置为0或1。

那么,量子计算机又是怎么做的呢?

量子计算机使用位来存储信息。相反,它使用称为量子比特(qubit)的东西。

每个量子位不仅可以设置为 0,还可以设置为 0 。但这究竟是什么意思呢?

让我用一个简单的例子解释一下,这将是一个有点人为的例子。,但它仍然有助于理解量子计算机的工作原理。

理解量子计算机如何工作的一个简单例子

现在,假设您在经营一家旅行社,您需要将一群人从一个地方转移到另一个地方。

为了让例子更简单简单,我们假设现在只需要移动3个人:Alice 、Becky 和 Chris 。

并且我们假设您为此预订了2辆出租车,并且现在您想知道谁进入哪辆出租车。

另外,假设你已经知道了谁是谁的朋友,谁是谁的敌人的相关信息。

在这里,我们且假设他们的关系如下:

  • Alice 和Becky 是朋友
  • Alice 和Chris 是敌人
  • Becky 和Chris 是敌人

同时,我们假设您的目标是将这组3人分到两个出租车来实现以下两个目标:

  • 最大化共享同一辆车的朋友对(互为朋友关系)的数量
  • 最大限度地减少共享同一辆汽车的敌人对(互为敌对关系)的数量

好的,以上就是这个问题的基本前提。让我们首先考虑如何使用普通计算机来解决这个问题。

使用普通计算机解决此问题

要使用常规的非量子计算机解决这个问题,首先需要弄清楚如何用位存储相关信息。

让我们把两辆出租车标记为出租车#0 和 出租车#1。

然后,你可以用3位表示谁进入哪辆车。

例如,我们可以在三个位设定为0、0、 1来表示:

  • Alice 进入出租车#0
  • Becky 进入出租车#0
  • Chris 进入出租车#1

由于每个人有两种选择,因此共有有2 * 2 * 2 = 8种方法将这组人分成两辆车。

以下是所有可能配置的列表:

A | B | C 
0 | 0 | 0 
0 | 0 | 1 
0 | 1 | 0 
0 | 1 | 1 
1 | 0 | 0 
1 | 0 | 1 
1 | 1 | 0 
1 | 1 | 1

使用3位,您可以表示这些组合中的任何一种。

计算每个配置的得分

现在,使用普通计算机,我们如何确定哪种配置是最佳解决方案?

为此,让我们定义如何计算每个配置的得分。这个得分将代表每个解决方案达到我之前提到的两个目标的程度:

  • 最大化共享同一辆车的朋友对(互为朋友关系)的数量
  • 最大限度地减少共享同一辆汽车的敌人对(互为敌对关系)的数量

让我们简单地定义我们的分数如下:

(给定配置的得分)=(#朋友对共享同一辆车) - (#敌人共用同一辆车)

例如,假设Alice 、Becky 和Chris 都进入出租车#1。用三个位可以表示为111

在这种情况下,只有一对朋友共用同一辆车:Alice 和Becky。

然而,有两对敌人共用同一辆车:Alice 和Chris ,以及Becky 和Chris 。

因此,此配置的得分为1-2 = -1。

解决问题

通过所有这些设置,我们终于可以解决这个问题了。

使用普通计算机,您基本上要遍历所有的配置方案,以查看哪一个获得最高分才能找到最佳配置方案。

所以,你可以考虑构建一个这样的表:

A | B | C | 得分
0 | 0 | 0 | -1 
0 | 0 | 1 | 1   <- 最好的解决方案之一
0 | 1 | 0 | -1 
0 | 1 | 1 | -1 
1 | 0 | 0 | -1 
1 | 0 | 1 | -1 
1 | 1 | 0 | 1   <- 另一个最佳解决方案
1 | 1 | 1 | -1

正如您所看到的,这里有两个正确的解决方案:001 和 110 ,两者都得分为1。

这个问题看似很简单。但如果我们增加了这个问题的人数,使用普通计算机很快就难以解决。

在上述例子中,我们可以看到有3个人,我们需要遍历8种可能的配置。

如果有4个人,我们则需要遍历2 * 2 * 2 * 2 = 16 种配置。

对于n个人,我们需要遍历2ⁿ 种 配置来找到最佳解决方案。

所以,如果有100个人,我们需要遍历:

  • 2¹⁰⁰~=10³⁰= 100万亿种配置。

使用普通计算机根本无法解决这个问题。

用量子计算机解决这个问题

那么,我们如何用量子计算机来解决这个问题?

考虑到这一点,让我们回到将3人分成两辆出租车的情况。

正如我们之前看到的,这个问题有8种可能的解决方案:

A | B | C 
0 | 0 | 0 
0 | 0 | 1 
0 | 1 | 0 
0 | 1 | 1 
1 | 0 | 0 
1 | 0 | 1 
1 | 1 | 0 
1 | 1 | 1

使用常规计算机,使用3位,我们一次只能代表其中一种解决方案 - 例如,001。

然而,使用量子计算机,只需要使用3个量子比特,我们可以同时代表所有这8个解决方案

关于它究竟意味着什么存在争论,但这就是我想到的方式。

首先,检查这3个量子比特中的第一个量子比特。当你将它同时设置为 0和1,它有点像创建两个平行的世界(是的,听起来很奇怪,但姑且就这样想)。

在其中一个并行世界中将这个量子位设置为0,而在另一个平行世界中将它设置为1。

现在,如果您将第二个量子位同时设置为0  1的话,这就有点像创建4个平行世界。

在第一个世界中,两个量子比特被设置为  00 ;在第二个中,它们是 01 ;在第三个中,它们是 10 ;在第四个中,它们是11。

同理,如果您将所有三个量子比特都同时设置为0和1,那么您将创建8个并行世界 :000 、001 、010 、011 、100 、101 、110和111。

这是一种奇怪的思考方式,但它是解释量子比特在现实世界中的行为方式的正确方法之一。

现在,当您对这三个量子位应用某种计算时,实际上您同时在所有这8个并行世界中应用相同的计算。

因此,我们不是按顺序遍历每个潜在的解决方案,而是可以同时计算所有解决方案的得分。

通过这个特殊的例子,理论上来讲您的量子计算机将能够在几毫秒内找到最佳解决方案之一。正如我们之前看到的那样是 001 或 110 :

A | B | C | 得分
0 | 0 | 0 | -1 
0 | 0 | 1 | 1  <- 最好的解决方案之一
0 | 1 | 0 | -1 
0 | 1 | 1 | -1 
1 | 0 | 0 | -1 
1 | 0 | 1 | -1 
1 | 1 | 0 | 1  <- 另一个最佳解决方案
1 | 1 | 1 | -1

实际上,想要解决这个问题,你需要给你的量子计算机两件东西:

  • 用量子比特表示的所有潜在解决方案
  • 将每个潜在解决方案转换为分数的功能。在这个问题中,是计算共享同一辆车的朋友对和敌人对的数量的函数。

基于这二者,您的量子计算机将在几毫秒内给出出最好的解决方案之一。在这个问题中,那就是001或110(得分为1的方案)。

目前,从理论上讲,量子计算机每次运行时都能找到最好的解决方案之一。

然而,实际上在运行量子计算机时会存在一些错误。因此,它不是找到最佳解决方案,而是找到第二、第三个最佳解决方案等等。

随着问题变得越来越复杂,这些错误将变得更加突出。

因此在实践中,您可能希望在量子计算机上运行相同的操作数十次或数百次。然后从您获得的许多结果中选择最佳结果。

量子计算机如何扩展

即使存在我提到的错误,量子计算机也没有遇到和普通计算机相同的扩展问题(即数量扩展后的计算量问题)。

当有3个人需要分成两辆车时,我们需要在量子计算机上执行的操作次数为1,这是因为量子计算机同时计算所有配置的得分。

当有4个人时,操作次数仍为1。

当有100个人时,操作次数仍然是1。通过一次操作,量子计算机同时计算所有2¹⁰⁰〜= 10³⁰ = 100万亿个配置得分。

正如我之前提到的,在实践中,最好还是要运行量子计算机数十次或数百次,并从您获得的许多结果中选择最佳结果。

即便如此,它仍然比在普通计算机上运行相同的问题,并且不得不重复相同类型的计算一百万亿次计算要好得多。

总结一下

特别感谢D-Wave Systems的每个人耐心地向我解释所有这些。

D-Wave最近推出了一个与量子计算机交互的云环境。

如果您是开发人员并且想要尝试使用量子计算机,那么这可能是最简单的方法。

它叫Leap,可以通过:https://cloud.dwavesys.com/leap 访问,您可以免费使用它来解决数以千计的问题。并且注册登录以后,他们还提供了易于学习的关于量子计算机入门的教程。

注释:

  • 在本文中,我使用术语“常规计算机”来指代非量子计算机。然而,在量子计算行业中,非量子计算机通常被称为经典计算机。

翻译清渭技术小站

原文:https://medium.freecodecamp.org/what-is-a-quantum-computer-explained-with-a-simple-example-b8f602035365


喜欢这篇文章的话可以扫描下方二维码支持我  《MySQL优化SQL查询语句的30条建议》

Kiwi

Valar Morghulis

文章评论(1)

  • daxi

    学无止境,认真拜读!

    2018-11-04