Estoy interesado en un algoritmo cuántico que obtiene como entrada una secuencia de n bits y que produce como salida una versión reorganizada (permutada) de esta secuencia de n bits.
Por ejemplo, si la entrada es 0,0,1,1 (entonces n = 4 en este caso), las posibles respuestas son:
- 0,0,1,1
- 0,1,0,1
- 0,1,1,0
- 1,0,0,1
- 1,0,1,0
- 1,1,0,0
Tenga en cuenta que solo se debe generar una salida que se elija aleatoriamente entre todas las salidas válidas posibles.
¿Cómo se puede implementar esto mejor en un algoritmo cuántico ?
Ya se propone una solución para esto como parte de una de las respuestas para ¿Cómo crear un algoritmo cuántico que produzca 2 secuencias de n bits con igual número de 1 bits? . Pero el problema con esta solución es que esto requiere aproximadamente qubits de ayuda que se vuelven rápidamente enormes si n es grande.
Nota:
- Por favor, no proporcione un algoritmo clásico sin ninguna explicación de cómo los pasos del algoritmo clásico pueden asignarse a una computadora cuántica universal.
- para mí hay 2 buenas formas de interpretar "elegidas al azar entre todos los buenos resultados posibles" : (1) cada producto bueno posible tiene la misma posibilidad de ser elegido. (2) cada salida buena posible tiene una posibilidad> 0 de ser elegido.
Respuestas:
Se podría hacer con qubits adicionales a lo largo de estas líneas:⌈ logn ⌉
Este es un algoritmo clásico, pero puede ejecutarlo en una computadora cuántica, como Norbert ha sugerido en un comentario. (El aspecto de la pregunta que es inflexible acerca de que el algoritmo es cuántico todavía no me resulta claro, por lo que si ejecutar un algoritmo clásico como el que he sugerido en una computadora cuántica no es suficiente, sería útil que la pregunta ser aclarado)
Tenga en cuenta que debido a que la pregunta solicita una salida aleatoria, el algoritmo tendrá que generar entropía en algún momento, presumiblemente a través de mediciones o realizando otras operaciones no unitarias en qubits (como inicializarlas). En el algoritmo anterior, es el primer paso que genera entropía: independientemente del estado de los qubits adicionales antes de que se realice la operación en el paso 1, deben tener el estado después de realizar el paso 1 (conkcodificado en binario, digamos).
fuente
Nota: esta respuesta supone que desea que la permutación sea coherente , es decir, que desea en lugar de una oportunidad 1/3 de001, una posibilidad de 1/3 de010, y una oportunidad de 1/3100.13√(|001⟩+|010⟩+|100⟩) 001 010 100
Tenga cuidado al especificar esta tarea, ya que podría ser fácilmente imposible debido a restricciones de reversibilidad. Por ejemplo, para la entrada desea emitir el estado GHZ | 3|001⟩ . Pero si también desea generar el estado GHZ para la entrada| 010⟩y| 100⟩, que no funciona. No puede enviar múltiples estados de entrada al mismo estado de salida (sin decoherencia). Mientras diga "Solo me interesan las entradas ascendentes ordenadas como 0000111 pero no 1110000 o 0010110; puede hacer lo que quiera con ellas", esto estará bien.∣∣31⟩=13√(|001⟩+|010⟩+|100⟩) |010⟩ |100⟩
Un truco para producir una permutación cuántica de una entrada ordenada es preparar primero un "estado de permutación" mediante la aplicación de una red de clasificación a una lista de valores semilla, cada uno en una superposición uniforme. La red de clasificación generará qubits con las semillas clasificadas, pero también qubits con las comparaciones de la red de clasificación. El estado de permutación son solo los qubits de comparación. Para aplicarlo a su entrada, simplemente ejecute la entrada a través de la red de clasificación en reversa. Tenga en cuenta que hay algunos detalles difíciles aquí; ver el artículo " Técnicas mejoradas para preparar estados propios de hamiltonianos fermiónicos ". Tendría que generalizar esta técnica para trabajar en entradas con valores repetidos, en lugar de solo valores únicos.
fuente
Una computadora cuántica puede hacer cálculos clásicos. El algoritmo óptimo sería:
El paso 2 implica buscar a través de unnorte cadena de bits que utiliza operaciones clásicas toma O (N) operaciones, pero si puede obtener el norteth valor de bit al evaluar una función, puede utilizar el algoritmo cuántico de Grover para encontrar el bit opuesto con O ( N--√) operaciones
fuente