Para la implementación de un cierto algoritmo cuántico, necesito construir una puerta Z controlada de múltiples qubits (en este caso, tres qubits) a partir de un conjunto de puertas elementales, como se muestra en la figura a continuación. .
Las puertas que puedo usar son
- las puertas Pauli y todos sus poderes (es decir, todas las rotaciones de Pauli hasta un factor de fase),
- | 11 ⟩ ⟨ 11 | (rotación sobre proyector),
- (Hadamard),
- (X- controlado por un solo qubit),
- (un solo qubit controlado-Z), y
- (SWAP).
¿Cómo puedo construir este Z controlado de tres qubits desde estas puertas? He leído varios documentos sobre descomposiciones de circuitos, pero ninguno de ellos pudo darme una respuesta clara y concisa.
quantum-gate
gate-synthesis
Dyon J Don Kiwi van Vreumingen
fuente
fuente
Respuestas:
(EDITAR: Mejorado a 14 CNOT).
Se puede hacer con 14 CNOT, más 15 rotaciones Z de un solo qubit, y sin qubits auxiliares.
El circuito correspondiente es
donde las puertas± son rotaciones
Rz( ± π/ 16)∝ ( 1mi± i π/ 8)
Derivación:
Utilizando el procedimiento descrito en https://arxiv.org/abs/quant-ph/0303063 1 , cualquier compuerta diagonal, en particular la compuerta CCCZ, puede descomponerse en términos de, por ejemplo, CNOT y compuertas diagonales de un qubit, donde los CNOT se pueden optimizar por sí mismos siguiendo un procedimiento de optimización clásico.
La referencia proporciona un circuito que usa 16 CNOT para puertas diagonales arbitrarias de 4 qubits (Fig. 4).
Esto se puede mejorar si se pueden acoplar pares arbitrarios de qubits a 14 qubits. Para los vecinos más cercanos con condiciones de límite periódicas (abiertas), esto se puede hacer con 16 (18) CNOT. Los circuitos correspondientes se pueden encontrar en https://epub.uni-regensburg.de/1511/ 1 , Fig. 5.2, 5.4 y 5.5, y se pueden obtener, por ejemplo, utilizando métodos para construir secuencias de Gray cortas.
El número de puertas de un qubit siempre es 15.
Observación: Si bien en principio podría haber un circuito más simple (dicho circuito se ha optimizado con una arquitectura de circuito más restringida en mente), debería ser casi óptimo: el circuito necesita crear todos los estados de la forma⨁yo ∈ yoXyo para cualquier subconjunto no trivial yo⊂ { 1 , 2 , 3 , 4 } , y hay 15 de esos para 4 qubits.
Tenga en cuenta también que esta construcción de ninguna manera debe ser óptima.
1 Nota: soy autor
fuente
Puede implementar una U controlada por qubit por el circuito dado en esta respuesta . Basta con sustituir T por Z . Sin embargo, esto requiere puertas CCNOT (Toffoli), y tiene algunas opciones sobre cómo implementar CCNOT usando puertas elementales .norte U U Z
fuente
Aquí hay una construcción CCCZ que utiliza 29 puertas :
Si se le permite usar la medición y el avance clásico, el recuento de puertas se puede reducir a 25 :
(Las puertas Hadamard se pueden reemplazar con raíces cuadradas de Y si es necesario para cumplir con la restricción de conjunto de puertas).
Y si me permite realizar compuertas Controlled-S y compuertas Control-sqrt (X) y realizar mediciones de base X, entonces puedo reducirlo a un total de 10 compuertas :
fuente
Estoy publicando otra descomposición de CCCZ aquí en caso de que sea útil para cualquier otra persona que intente compilar CCCZ. Requiere un número menor de puertas totales, y solo 1 qubit auxiliar en lugar de 2, pero cinco puertas más de 2 qubit que la respuesta "obvia", por lo que en realidad puede ser peor para la implementación en hardware.
Fue sugerido por el usuario @Rob en este comentario: Compilación automática de circuitos cuánticos , y proviene de este documento .
fuente
Además, tenga en cuenta que las dos puertas Toffoli son solo Toffoli porque apuntan al estado 0. Por lo general, necesitaría una puerta adicional de dos qubit.
No he encontrado una construcción tan eficiente en la literatura existente, aunque este documento afirma una construcción que usa solo 11 puertas de 2 qubits, pero no he hecho un recuento completo de la puerta una vez que se ha convertido en el conjunto de puertas restringidas de la pregunta.
fuente
Si bien mi otra respuesta es la forma más obvia de "libro de texto" (usando la descomposición CCCZ de Nielsen & Chaung en CCNOT , luego otra descomposición de libro de texto para compilar los CCNOT ), una forma más creativa podría permitirnos hacer el trabajo con menos puertas.
Paso 1:
Reemplace todos los CNOT en el circuito de Nielsen y Chuang con este gadget:
Paso 2:
Ahora tenemos un montón de CCZ en lugar de CCNOT, y se pueden descomponer de esta manera (cortesía de este documento ):
Paso 3:
fuente