消除垃圾量子位为什么很重要?


18

大多数可逆量子算法都使用标准门,例如Toffoli门(CCNOT)或Fredkin门(CSWAP)。由于某些操作需要常量|0作为输入,输入和输出的数目是相等的,垃圾量子位(或垃圾的量子位)显示在计算过程。

因此,像主电路|x|f(x)实际上变为|x|0|f(x)|g
其中|g代表垃圾量子位(或多个)。

保留原始值的电路以|x|0|0|x|f(x)|g

我了解,如果我们希望电路保持可逆性,那么垃圾量子位是不可避免的,但是有许多来源1声称,消除它们很重要。为什么会这样呢?


1由于需要资料来源,例如参见本arXiv论文,第8页,其中说

但是,这些简单操作中的每一个都包含许多附加的辅助qubit,这些辅助qubit用于存储中间结果,但最后并不相关。为了不浪费任何不必要的[sic]空间,因此重要的是将这些qubit重置为0,以便我们能够重用它们

这份arXiv论文

在设计有效的量子电路时,去除垃圾量子位和辅助量子位至关重要。

或许多其他来源-Google搜索会产生很多匹配。

Answers:


16

量子干扰是量子计算的灵魂。每当您有垃圾量子位时,它们都将防止干扰。这实际上是非常简单但非常重要的一点。比方说,我们有一个函数其中单位映射到一个位。说f是一个非常简单的函数,例如f x = x。假设我们有一个电路C f,它输入x和输出f x f:{0,1}{0,1}fFX=XCFXFX。现在,当然,这是一个可逆电路,可以使用a变换实现。现在,我们可以输入1|X|X和输出也将是11个2|0+1个2|1个。现在让我们应用Hadamard变换门并测量得到的结果。如果将Hadamard变换应用于此状态11个2|0+1个2|1个1个2|0+1个2|1个, you get the |0 state, and you see 0 with probability 1个. In this case there was no junk created in the intermediate steps, while converting the classical circuit to a quantum circuit.

But, let's say we created some junk in an intermediate step when using a circuit like this one:

在此处输入图片说明.

For this circuit, if we start off in the state |X|0=1个2|0+1个2|1个|0, after the first step we get 12|00+12|11. If we apply the Hadamard transform to the first qubit, we end up with:

12|00+12|01+12|10+12|11

If we make a measurement on the first qubit we get 0 with probability 12, unlike in the previous case where we could see 0 with probability 1! The only difference between the two cases was the creation of a junk bit in an intermediate step, which was not gotten rid of, thus leading to a difference in the final result of the computation (since the junk qubit got entangled with the other qubit). We will see a different interference pattern than in the previous case when the Hadamard transform is applied. This is exactly why we don't like to keep junk around when we are doing quantum computation: it prevents interference.

Source: Professor Umesh Vazirani's lecture on EdX.


3

If you want to use a quantum circuit as a subroutine (such as an oracle) to a quantum algorithm that makes use of interference, you must allow interference by a process known as uncomputing your ancillary (or, in your words, garbage) qubits. Uncomputing is always possible: Since your gates are reversible, you can just apply their inverse. That is, after the step you mentioned, |x|0|0|x|f(x)|g, you perform another computation (or uncomputation) that leads to |x|f(x)|0.

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.