¿Por qué es importante eliminar los qubits de basura?


18

La mayoría de los algoritmos cuánticos reversibles usan puertas estándar como la puerta Toffoli (CCNOT) o la puerta Fredkin (CSWAP). Dado que algunas operaciones requieren una constante |0 como entrada y el número de entradas y salidas es igual, qubits de basura (o qubits chatarra ) aparecen en el curso de la computación.

Entonces, un circuito principal como |x|f(x) realidad se convierte en |x|0|f(x)|g ,
donde |g representa el qubit basura (s).

Los circuitos que preservan el valor original terminan con |x|0|0|x|f(x)|g

Entiendo que los qubits de basura son inevitables si queremos que el circuito permanezca reversible, pero muchas fuentes afirmación de que es importante para eliminarlos. ¿Por que es esto entonces?1


Debido a las solicitudes de fuentes, consulte, por ejemplo,este documento de arXiv, página 8, que dice1

Sin embargo, cada una de estas operaciones simples contiene varios qubits auxiliares adicionales, que sirven para almacenar los resultados intermedios, pero no son relevantes al final. Para no desperdiciar ningún espacio [sic] innecesario, es importante restablecer estos qubits a 0 para que podamos reutilizarlos.

o este artículo de arXiv que dice

La eliminación de qubits de basura y qubits ancilla son esenciales en el diseño de un circuito cuántico eficiente.

o las muchas otras fuentes: una búsqueda en Google produce muchos resultados.

Respuestas:


16

La interferencia cuántica es el corazón y el alma de la computación cuántica. Siempre que tengas qubits basura evitarán interferencias. Este es realmente un punto muy simple pero muy importante. Digamos que tenemos una función que asigna un solo bit a un solo bit. Digamos que f es una función muy simple, como f ( x ) = x . Digamos que teníamos un circuito C f que entra x y sale f ( x )f:{0,1}{0,1}ff(x)=xCfxf(x). Ahora, por supuesto, este era un circuito reversible, y podría implementarse usando una transformación unitaria . Ahora, podríamos alimentar en 1|x|xy la salida también sería112|0+12|1. Ahora apliquemos lapuerta detransformación Hadamardy midamos lo que obtenemos. Si aplica la transformación Hadamard a este estado112|0+12|112|0+12|1|001

Pero, digamos que creamos algo de basura en un paso intermedio cuando usamos un circuito como este:

ingrese la descripción de la imagen aquí.

|x|0=(12|0+12|1)|012|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.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.