Una pregunta reciente aquí preguntó cómo compilar la puerta de 4 qubits CCCZ (controlado-controlado-controlado-Z) en puertas simples de 1 qubit y 2 qubit, ¡y la única respuesta dada hasta ahora requiere 63 puertas !
El primer paso fue usar la construcción C n U dada por Nielsen & Chuang:
Con esto significa 4 compuertas CCNOT y 3 compuertas simples (1 CNOT y 2 Hadamards es suficiente para hacer la CZ final en el qubit objetivo y el último qubit de trabajo).
El teorema 1 de este documento dice que, en general, el CCNOT requiere 9 compuertas de un qubit y 6 compuertas de dos qubit (15 en total):
Esto significa:
(4 CCNOT) x (15 puertas por CCNOT) + (1 CNOT) + (2 Hadamards) = 63 puertas totales .
En un comentario , se ha sugerido que las 63 puertas pueden compilarse luego utilizando un "procedimiento automático", por ejemplo, a partir de la teoría de los grupos automáticos .
¿Cómo se puede hacer esta "compilación automática" y cuánto reduciría la cantidad de compuertas de 1 qubit y 2 qubit en este caso?
fuente
Respuestas:
Deje queg1⋯gM sean las puertas básicas que puede usar. A los fines de este CNOT12 y CNOT13 etc., se tratan por separado. Entonces, M es polinómicamente dependiente de n , el número de qubits. La dependencia precisa implica detalles de los tipos de puertas que usa y cuán k locales son. Por ejemplo, si hay x puertas de un solo qubit e y puertas de 2 qubit que no dependen de un orden como CZ entonces .M=xn+(n2)y
Un circuito es entonces un producto de esos generadores en algún orden. Pero hay múltiples circuitos que no hacen nada. Como . Entonces esos dan relaciones en el grupo. Es decir, es una presentación grupal donde hay muchas relaciones que no conocemos.CNOT12CNOT12=Id ⟨g1⋯gM∣R1⋯⟩
El problema que deseamos resolver se le da una palabra en este grupo, ¿cuál es la palabra más corta que representa el mismo elemento? Para presentaciones grupales generales, esto es inútil. El tipo de presentación grupal donde este problema es accesible se llama automático.
Pero podemos considerar un problema más simple. Si algunas de las , entonces las palabras de antes tienen la forma donde cada una de las son palabras solo en las letras restantes. Si logramos acortarlos usando las relaciones que no involucran a , habremos todo el circuito. Esto es similar a la optimización de los CNOT por sí mismos realizados en la otra respuesta.gi w1gi1w2gi2⋯wk wi gi
Por ejemplo, si hay tres generadores y la palabra es , pero no queremos tratar con , en su lugar y a y . Luego los volvemos a armar como y eso es un acortamiento de la palabra original.aababbacbbaba c w1=aababba w2=bbaba w^1 w^2 w^1cw^2
Entonces, WLOG (sin pérdida de generalidad), supongamos que ya estamos en ese problema donde ahora usamos todas las puertas especificadas. De nuevo, esto probablemente no sea un grupo automático. Pero, ¿y si descartamos algunas de las relaciones? Luego tendremos otro grupo que tiene un mapa de cocientes hasta el que realmente queremos.⟨g1⋯gM∣R1⋯⟩
El grupo sin relaciones es un grupo libre , pero si pone como relación, obtendrá el producto libre y hay un mapa de cocientes del primero al segundo que reduce el número de en cada segmento del módulo .⟨g1g2∣−⟩ g21=id Z2⋆Z g1 2
Las relaciones que arrojemos serán tales que la de arriba (la fuente del mapa del cociente) será automática por diseño. Si solo usamos las relaciones que quedan y acortamos la palabra, entonces seguirá siendo una palabra más corta para el grupo del cociente. Simplemente no será óptimo para el grupo de cocientes (el objetivo del mapa de cocientes), pero tendrá la longitud a la longitud con la que comenzó.≤
Esa fue la idea general, ¿cómo podemos convertir esto en un algoritmo específico?
¿Cómo elegimos el y las relaciones que deseamos para obtener un grupo automático? Aquí es donde entra en juego el conocimiento de los tipos de puertas elementales que usamos habitualmente. Hay muchas involuciones, así que conserve solo esas. Preste especial atención al hecho de que estas son solo las involuciones elementales, por lo que si su hardware tiene dificultades para intercambiar qubits que están muy separados en su chip, esto los escribe solo en los que puede hacer fácilmente y reduce esa palabra a ser lo más corto posiblegi
Por ejemplo, suponga que tiene la configuración de IBM . Entonces son las puertas permitidas. Si desea hacer una permutación general, descomponga en factores . Esa es una palabra en el grupo que deseamos acortar .s01,s02,s12,s23,s24,s34 si,i+1 ⟨s01,s02,s12,s23,s24,s34∣R1⋯⟩
Tenga en cuenta que estas no tienen que ser las involuciones estándar. Puede agregar además de por ejemplo. Piense en el teorema de Gottesman-Knill , pero de manera abstracta eso significa que será más fácil generalizar. Tal como usar la propiedad que bajo secuencias exactas cortas, si tiene sistemas de reescritura finitos completos para los dos lados, entonces obtiene uno para el grupo medio. Ese comentario es innecesario para el resto de la respuesta, pero muestra cómo puede construir ejemplos más grandes y generales a partir de los de esta respuesta.R(θ)XR(θ)−1 X
Las relaciones que se mantienen son solo las de la forma . Esto le da un grupo Coxeter y es automático. De hecho, ni siquiera tenemos que comenzar desde cero para codificar el algoritmo para esta estructura automática. Ya está implementado en Sage (basado en Python) en un propósito general. Todo lo que tiene que hacer es especificar el y ya tiene la implementación restante. Podría hacer algunas aceleraciones además de eso.(gigj)mij=1 mij
Eso se ocupó de todas las relaciones que solo involucraban a lo sumo dos puertas distintas (prueba: ejercicio). Las relaciones que involucraron a o más fueron descartadas. Ahora los volvemos a colocar. Digamos que tenemos eso, entonces uno puede realizar el codicioso algoritmo de Dehn usando nuevas relaciones. Si hubo un cambio, lo recuperamos para volver a atravesar el grupo Coxeter. Esto se repite hasta que no haya cambios.3
Cada vez que la palabra se acorta o se mantiene la misma longitud y solo usamos algoritmos que tienen un comportamiento lineal o cuadrático. Este es un procedimiento bastante barato, así que podría hacerlo y asegurarse de no hacer nada estúpido.
Si desea probarlo usted mismo, indique el número de generadores como , la longitud de la palabra aleatoria que está probando y la matriz Coxeter como .N K m
Un ejemplo conm
N=28
yK=20
, las dos primeras líneas son la palabra de entrada no reducida, las dos siguientes son la palabra reducida. Espero no haber cometido un error al ingresar a la matriz .Poniendo de vuelta esos generadores como solo volvemos a poner las relaciones como y que conmuta con puertas que no involucran qubit . Esto nos permite hacer que la descomposición de antes tenga la mayor tiempo posible. Queremos evitar situaciones como . (En Cliff + T, a menudo se busca minimizar el recuento de T). Para esta parte, el gráfico acíclico dirigido que muestra la dependencia es crucial. Este es un problema para encontrar un buen tipo topológico del DAG. Eso se hace cambiando la precedencia cuando uno tiene la opción de elegir qué vértice usar a continuación. (No perdería el tiempo optimizando esta parte demasiado).Ti Tni=1 Ti i w1gi1w2gi2⋯wk wi X1T2X1T2X1T2X1
Si la palabra ya está cerca de la longitud óptima, no hay mucho que hacer y este procedimiento no ayudará. Pero como el ejemplo más básico de lo que encuentra es que si tiene varias unidades y olvidó que había un al final de uno y un al comienzo del siguiente, se eliminará ese par. Esto significa que puede realizar rutinas comunes en el recuadro negro con mayor confianza de que cuando las reúne, todas las cancelaciones obvias se resolverán. Hace otros que no son tan obvios; esos usan cuando .Hi Hi mij≠1,2
fuente
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).
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 para cualquier subconjunto no trivial , y hay 15 de esos para 4 qubits.⨁i∈Ixi I⊂{1,2,3,4}
Tenga en cuenta también que esta construcción de ninguna manera debe ser óptima.
1 Nota: soy autor
fuente