¿Algoritmo de Deutsch-Jozsa para funciones no balanceadas + no constantes?

Nota: me imagino que esta será una simple pregunta de sí/no para las personas mejor versadas en este tema que yo, pero sin embargo, proporcionaré un poco de información primero para la edificación de cualquiera que pueda encontrar esto más tarde. Como tal, es posible que desee pasar al final de la pregunta real.

Esencialmente, cualquier texto de introducción a la computación cuántica (por ejemplo, el libro clásico de Nielsen y Chuang , § 1.4.4) incluirá una discusión sobre el algoritmo Deutsch-Jozsa , cuya idea es bastante sencilla. Es (siguiendo aproximadamente a Nielsen y Chuang por conveniencia) una solución al problema de Deutsch :

Problema de Deutsch: Bob tiene un circuito de oráculo (implementando una transformación unitaria) tu F que, dada alguna ( norte + 1 ) -entrada de bits | X | y , da | X | y F ( X ) , con | X | X 1 | X norte , como una salida para alguna función desconocida   F : { 0 , 1 } norte { 0 , 1 } . Esquemáticamente tenemos:

Deutsch-Jozsa Oracle

Ahora, supongamos que F es constante o balanceada (es decir, la salida es 0 la mitad del tiempo, 1 para la otra mitad). Entonces uno puede preguntar: si Alice vive muy, muy lejos de Bob y quiere enviar a Bob norte + 1 bits, que luego los mete en su ingenioso oráculo y le envía los bits resultantes, entonces, ¿cuántas consultas de este tipo tiene que hacer Alice para identificar F como constante o balanceada?

En el caso de bit clásico, la respuesta es sencilla: Alice solo puede enviar un valor para X a la vez, por lo que necesita al menos 2 norte 1 1 Consultas para saber qué tipo de F están tratando.

En el caso cuántico, podemos utilizar la interferencia y esta pregunta se puede responder utilizando el algoritmo Deutsch-Jozsa, como se mencionó anteriormente. Explícitamente:

Algoritmo de Deutsch-Jozsa: Alice toma | 0 norte | 1 , los mete en la transformación de Hadamard H ( norte + 1 ) (es decir, aplica una puerta de Hadamard a cada uno de los qubits que se tensan), envía eso a Bob y luego aplica H norte Identificación a lo que Bob envía de vuelta. Esquemáticamente se tiene:

Alg de DJ

Luego se queda con (después de un cálculo breve, vea el libro de N&C para más detalles):

| ψ = X , z { 0 , 1 } norte ( 1 ) X z + F ( X ) 2 norte | z ( | 0 | 1 2 ) .

Finalmente, se observa que el coeficiente de | 0 norte estado en la suma anterior es

X { 0 , 1 } norte ( 1 ) F ( X ) 2 norte = { ± 1 , F  es constante 0 , F  es equilibrado ,

lo que significa que una medida todos los demás coeficientes son 0 si F es constante, y al menos uno de los otros coeficientes es distinto de cero si F es equilibrado; por lo tanto, una medida que da como resultado todos 0 Los medios le dicen a Alice que F es constante, y cualquier otro resultado significa que F está equilibrado. Por lo tanto, Alice solo necesita una única consulta para identificar qué tipo de función se esconde en el oráculo de Bob, ¡una mejora significativa en el caso clásico!

Con todo eso fuera del camino, finalmente podemos llegar a la pregunta:

Pregunta: Me parece que la mayoría de las funciones booleanas como F anteriores no son constantes ni equilibrados. El matemático que hay en mí no puede evitar preguntarse: ¿puede este algoritmo realmente permitirle distinguir también entre otras funciones booleanas? ¿Es esta una pregunta interesante para hacer?

Esta publicación de blog cubre algo similar a lo que está preguntando (separaciones de caja negra entre consultas cuánticas/clásicas): scottaaronson.com/blog/?p=2325
Eso requerirá un par de lecturas completas para saber qué está pasando, ¡pero definitivamente parece interesante! +1
Exactamente esto es lo que he estado tratando de averiguar y encontré esta pregunta en Google. Gracias por preguntar.

Respuestas (1)

No, el algoritmo de Deutsch-Jozsa solo le permite distinguir de manera determinista entre funciones constantes y balanceadas. Por supuesto, uno esperaría que, hasta cierto punto, todavía se puedan distinguir probabilísticamente otras funciones.

El algoritmo de Deutsch-Jozsa es, por lo tanto, un ejemplo de un "problema de promesa", que solo funciona en entradas que satisfacen una promesa determinada (aquí, siendo constante o balanceada).

Sí, he llegado a la misma conclusión después de pensarlo un poco más. Originalmente, estaba pensando que si hicieras una definición como "Una función booleana se llama ** ( k , 0 ) -equilibrado** si ( norte k ) / 2 elementos del dominio salida 0, otro ( norte k ) / 2 salida 1, y luego el resto k las salidas son 0's" (y, por supuesto, de manera similar uno puede tener ( 0 , k ) -funciones equilibradas donde el extra k las salidas son 1), luego enviarlas a través del algoritmo anterior le dará ± 2 norte + k para el coeficiente de | 0 norte ; distinguiéndola así de la ± 1 para...
... las funciones constantes y 0 para las balanceadas (   ( 0 , 0 ) -balanceadas) funciones... pero eso es ignorar la última parte donde te mueves a las amplitudes. Todo se desmorona ahí. ¡Oh bien! :) ¿Existen otros algoritmos conocidos que satisfagan una promesa "ampliada" más allá de la de DJ?