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.x
Considere el caso inverso: ¿podemos usar el paralelismo cuántico para calcular muchas funciones (digamos ) simultáneamente para un solo valor ?x 0
Respuestas:
La respuesta exacta depende del tipo exacto de superposición que desee. Las respuestas de las pirámides y Niel te dan algo como
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.f1 f2 n Ft Ft UNA
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
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.
fuente
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, ... } t Ft Ft como 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 0
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
fuente
Sí (dependiendo de lo que significa "calcular muchas funciones a la vez")
IF RESULT = 0 U_f ELSE U_g
fuente
fuente