如何使用量子计算机加1 + 1?


29

这可以看作是对量子计算机如何在硬件级别进行基本数学运算的软件补充

西班牙量子信息和量子技术网络第四网络的一位观众提出了这个问题。该人给出的背景是:“ 我是材料科学家。您正在介绍先进的复杂理论概念,但我很难描绘出量子计算机在简单任务中的实际操作。如果我使用二极管,晶体管等,我可以轻松弄清楚自己需要加1 + 1的经典运算。您将如何在量子计算机上进行详细操作?

Answers:


21

根据所链接的问题,最简单的解决方案是尽可能使经典处理器执行此类操作。当然,这可能是不可能的,因此我们要创建一个adder

单比特加法器有两种类型- 半加法器全加法器。半加法器取输入并输出“总和”(XOR运算)小号= 和“进位”(AND运算)C ^ = 。全加法器还具有“在进位” Ç Ñ输入和“执行”输出Ç Ò ù ,取代Ç。此返回小号= Ç ÑABS=ABC=ABCinCoutCS=ABCinCout=Cin(A+B)+AB


量子版的半加法器

查看量子位寄存器上的CNOT门控制寄存器BCNOT A B | 0 一个| 0 AB这立即给出的输出寄存器作为=小号。但是,我们尚未计算进位,并且B寄存器的状态已更改,因此我们还需要执行AND操作。这可以使用3比特的Toffoli(受控CNOT / CCNOT)门来完成。可以通过使用寄存器AB作为控制寄存器并在状态|中初始化第三个寄存器C来完成此操作0

CNOTAB|0A|0B=|0A|0BCNOTAB|0A|1B=|0A|1BCNOTAB|1A|0B=|1A|1BCNOTAB|1A|1B=|1A|0B,
BAB=SBAB(C)|0,给第三寄存器为的输出。实施Toffoli在寄存器控制寄存器Ç接着CNOT与控制给出寄存器的输出作为之和寄存器的输出Ç作为进位。半加法器的量子电路图如图1所示。AB=CABCABBC

半加器的电路图

图1:半加法器的电路图,由Toffoli和CNOT组成。输入比特是,给总和小号与进位输出C ^ABSC


完整加法器的量子版本

4ABCin11|0|A|B|Cin|0

  1. AB1|A|B|Cin|AB
  2. AB|A|AB|Cin|AB
  3. BCin1|A|AB|Cin|AB(AB)Cin=Cout
  4. BCin|A|AB|ABCin=S|Cout

ABAB

|ψout=|A|B|S|Cout

Cin2

完整加法器的量子版本

ABCinSCout


量子版纹波进位加法器

全加法器的一个简单扩展是波纹进位加法器,它的名字叫“涟漪”,使进位成为一系列加法器中下一个加法器的进位,允许任意大小(如果慢)的总和。这种加法器的量子版本可以在这里找到


半加法器的实际实现

对于许多系统而言,实现Toffoli门远不如实现单个qubit(甚至两个qubit)门那么简单。这个答案给出了将托菲利分解成多个较小门的方法。但是,在诸如IBMQX的实际系统中,也可能存在一些问题,量子位可以用作目标。这样,IBMQX2上的实际实现看起来像这样: IBMQX2上的单量子位半加法器

图3:在IBMQX2上实现半加法器。除了将Toffoli门分解为多个较小的门外,还需要其他门,因为并非所有的量子位寄存器都可以用作目标。将寄存器q [0]和q [1]相加以获得q [1]中的总和和q [2]中的进位。在这种情况下,结果q [2] q [1]应该为10。在处​​理器上运行该结果会以42.8%的概率提供正确的结果(尽管它仍然是最可能的结果)。


有量子计算机加法器吗?
约翰·杜菲尔德

@JohnDuffield我不确定您是指近似的量子(状态)加法器(显然禁止使用精确的状态加法器)还是在量子计算机上实现“经典”加法器 -虽然我没有尝试过此特定代码-或其他方法?
Mithrandir24601

数字如何表示?是二进制文件吗?
user3483902'4

01|0|1A01B

@ Mithrandir24601:有关系吗?两种情况下的答案都不是吗?我实际上已经自己构建了一个并行加法器。我拥有计算机科学学位。
约翰·杜菲尔德

6

`` 如果我使用二极管,晶体管等,我很容易就能弄清楚自己需要加1 + 1的经典运算。您将如何在量子计算机上进行详细操作?''

令人印象深刻!我怀疑大多数人无法轻易弄清楚如何组合二极管和晶体管来实现经典的两位加法器(尽管我不怀疑这位材料科学家可以做到这一点)。;)

从理论上讲,实现经典加法器的方式在经典和量子计算机中非常相似:在两种情况下,都可以通过实现Toffoli门来实现!(请参阅@ Mithrandir24601的答案。)

但是材料科学家可能想了解如何在物理设备上实现这样的门(或其他量子门的等价序列)。使用不同的量子技术可能有无限的方法来实现此目的,但是这是使用捕获的离子和超导量子位对该门的两种直接实现:

  1. T.Monz,K.Kim,W.Hänsel,M.Riebe,AS Villar,P.Schindler,M.Chwalla,M.Hennrich和R.Blatt,Phys。牧师 102,040501,的arXiv:0804.0082
  2. 具有超导电路的Toffoli门的实现A. Fedorov,L.Steffen,M.Baur,MP da Silva和A.Wallraff Nature 481、170-172arXiv:1108.3966

您还可以将Toffoli门分解为一系列单量子位和CNOT门。 https://media.nature.com/lw926/nature-assets/srep/2016/160802/srep30600/images/srep30600-f5.jpg在此处输入图片说明 您可以了解如何在Nielsen中使用光子,腔QED和捕获离子实现这些和庄


为了进行披露,我不是那个材料科学家,而是,因为永无休止的讨论仍然不能令人满意,并且用抽象的术语来说,我是一个了解他的要求的人,用谷歌搜索并向他展示了一个最小但令人满意的答案(量子门术语中的量子加法器的半加法器。
agaitaarino '18

5

介绍了一种在量子计算机上计算总和的新方法。该技术使用了量子傅立叶变换,通过消除了对临时进位位的需求,减少了加法所需的量子位数量。

托马斯·德雷珀(Thomas G.Draper)于1998年9月1日撰写的“在量子计算机上加法”的PDF链接,于 2000年6月15日修订。

总结以上链接,根据以下电路图(从第6页获取)进行加法:

在此处输入图片说明

引用论文(同样,第6页):

n


1

两个量子位之和的并行计算

我想体验两个量子位之和的并行计算,将0和“ 1 相为-1 ”的叠加加到1上;我受到Mithrandir24601的回答的启发。结果如下。我希望我的回答是在所要求的范围内。它显示了如何同时将1加1以及如何将0加到0,但是虽然计算了两个答案,但是每次运行计算时,我们只能读出其中一个计算的答案。您可以看到,在1000次运行中,有417次我们读出了答案“ 1”(1 = 0 + 1),而有380次我们读出了答案“ 2”(2 = 1 + 1)。

(当1位翻转为零时,我们零用了34次; 0 = 0 + 1是54次; 1 = 1 + 1是29次; 2 = 0 + 1是28次; 42 3次是3 = 0 + 1,并且16次得到3 = 1 + 1;这些错误中的每一个无疑都是由位翻转,相位翻转或两者引起的。 在此处输入图片说明

π

一个量子位寄存器中的0和“ -1 与相位-1相加”的叠加被添加到两个量子位寄存器中的1中。对于三个量子位,从左到右的前两个量子位是和(或5的第3个和第4个),最右边的量子位显示是添加了基态(视为0)还是激发态(初始为1添加了-1)的相位。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.