¿Podemos usar el paralelismo cuántico para calcular muchas funciones a la vez?

9

Es bien sabido que al utilizar el paralelismo cuántico podemos calcular una función para muchos valores diferentes de simultáneamente. Sin embargo, se necesitan algunas manipulaciones inteligentes para extraer la información de cada valor, es decir, con el algoritmo de Deutsch.xf(x)x

Considere el caso inverso: ¿podemos usar el paralelismo cuántico para calcular muchas funciones (digamos ) simultáneamente para un solo valor ?x 0f(x),g(x),x0

donnydm
fuente
Para evaluar y es necesario hacer una copia de para cada operación que en general no es posible por el teorema de no clonación. Si, por otro lado, solo prepara un estado que es dos veces , simplemente restaura el paralelismo clásico. g ( x 0 ) x 0 x 0f(x0)g(x0)x0x0
@HenriMenke ¿Qué tal la clonación imperfecta?
donnydm
@HenriMenke: su noción de lo que es la "clonación" parece ser muy amplia, hasta el punto de plantear algunos obstáculos a su capacidad para abordar problemas de manera productiva.
Niel de Beaudrap

Respuestas:

5

La respuesta exacta depende del tipo exacto de superposición que desee. Las respuestas de las pirámides y Niel te dan algo como

At=1n|ft(x)|Ft

Aquí he seguido a Niel al etiquetar las diferentes funciones , f 2 , etc., con n como el número total de funciones que desea superponer. También he usado F t para denotar alguna descripción de la función f t como programa almacenado. La A es el número que sea necesario para que el estado se normalice.f1f2nFtftA

Tenga en cuenta que esto no es simplemente una superposición de . Está enredado con el programa almacenado. Si tuviera que rastrear el programa almacenado, simplemente tendría una mezcla de f t ( x ) . Esto significa que el programa almacenado podría constituir 'basura', lo que evita los efectos de interferencia con los que podría contar. O tal vez no. Depende de cómo se utilizará esta superposición en su cálculo.ft(x)ft(x)

Si quieres deshacerte de la basura, las cosas se ponen más difíciles. Por ejemplo, suponga que lo que quiere es una unitaria que tenga el efectoU

U:|x|0NAt=1n|ft(x)

para todas las entradas posibles (que supongo que son cadenas de bits escritas en la base computacional). Tenga en cuenta que también he incluido algunos qubits en blanco en el lado de entrada, en caso de que las funciones tengan salidas más largas que las entradas.x

A partir de esto, podemos encontrar rápidamente una condición que las funciones deben cumplir: dado que los estados de entrada forman un conjunto ortogonal, también lo deben hacer las salidas. Esto pondrá una restricción significativa en los tipos de funciones que se pueden combinar de esta manera.

James Wootton
fuente
Gracias, creo que de esta manera uno puede acelerar algo como el cálculo de expansión de Taylor. De todos modos, ¿se puede acceder / medir el programa almacenado para obtener alguna información, o es solo una herramienta?
donnydm
El programa almacenado solo se escribirá en un registro de qubits, por lo que ciertamente se puede manipular.
James Wootton el
5

Las funciones que desea evaluar en diferentes ramas computacionales deben, para ser computables, ser especificables de alguna manera (por ejemplo, una secuencia de puertas lógicas clásicas). Y el conjunto { f 1 , f 2 , ... } de las funciones que desea calcular debe ser en sí mismo computable: para una t determinada , debe poder calcular una especificación de cómo se debe calcular f t en su argumento. En efecto: debe tener un medio para describir las funciones f tf,g, {f1,f2,}tftftcomo programas almacenados. (Todo esto es necesario, incluso antes de considerar el cálculo cuántico, para que la cuestión de "calcular una / todas las funciones en una entrada x 0 " sea significativa).f1,f2,x0

Una vez que tiene una forma de especificar funciones como programas almacenados, básicamente ha terminado: un programa es esencialmente otro tipo de entrada, que puede preparar en superposición y, por ejemplo, evaluar en una entrada fija, o una superposición de entradas, calculando las funciones de sus especificaciones en cada rama.

Para obtener una ventaja comptational de hacerlo es un asunto diferente, y tendrá que incluir algún tipo de estructura específica en las funciones que se puede aprovechar, sino simplemente de "evaluar en superposición" es fácil de hacer si usted tiene suficiente información para La pregunta es sensata.ft

Niel de Beaudrap
fuente
3

Sí (dependiendo de lo que significa "calcular muchas funciones a la vez")

fUfgUg

  1. |00xα|01+β|10α|0+β|1IXCUfCUg

    (αUf+βUg)|xIXαUf+βUgfgf+g

    fg

  2. |xxUfUg|x

  3. |0xα|0+β|1IF RESULT = 0 U_f ELSE U_gE(ρ)=|α|2UfρUf+|β|2UgρUg


(αββα)

Mithrandir24601
fuente
Esto es interesante, en parte porque no se necesita ningún programa almacenado. ¿Es necesario el CNOT en el número 1?
donnydm
2

fall(y,x)f(x)y=0g(x)y=1yxx0

pirámides
fuente