He estado tratando de entender el famoso (?) Papel Algoritmo cuántico para sistemas lineales de ecuaciones (Harrow, Hassidim y Lloyd, 2009) (más popularmente conocido como el papel del algoritmo HHL09 ) desde hace un tiempo.
En la primera página, dicen :
Esbozamos aquí la idea básica de nuestro algoritmo y luego lo discutimos con más detalle en la siguiente sección. Dada una hermitiana la matriz , y una unidad de vector , supongamos que gustaría encontrar que satisface . (Discutimos preguntas posteriores de eficiencia, así como también cómo se pueden relajar los supuestos que hemos hecho sobre y ). Primero, el algoritmo representa como un estado cuántico . A continuación, utilizamos técnicas de simulación hamiltoniana [3, 4] para aplicar aA → b → x A → x = → b A → b → b | b ⟩ = Σ N i = 1 b i | i ⟩ e i A t | b i ⟩para una superposición de diferentes tiempos . Esta capacidad de exponenciar traduce, a través de la conocida técnica de estimación de fase [5–7] en la capacidad de descomponer en la base propia de y encontrar los valores propios correspondientes Informalmente, el estado de el sistema después de esta etapa está cerca de , donde es la base del vector propio de y .AA λ j Σ j = N j = 1 β j | T j ⟩ | λ j ⟩ u j A | b ⟩ = Σ j = N j = 1 β j | u j ⟩
Hasta aquí todo bien. Como se describe en Nielsen & Chuang en el capítulo " La transformación cuántica de Fourier y sus aplicaciones ", el algoritmo de estimación de fase se usa para estimar en que es el valor propio correspondiente a un vector propio del operador unitario .e i 2 π φ | u ⟩ U
Aquí está la porción relevante de Nielsen y Chuang:
El algoritmo de estimación de fase utiliza dos registros. El primer registro contiene qubits inicialmente en el estado . La forma en que elegimos depende de dos cosas: el número de dígitos de precisión que deseamos tener en nuestra estimación para , y con qué probabilidad deseamos que el procedimiento de estimación de fase sea exitoso. La dependencia de de estas cantidades surge naturalmente del siguiente análisis.| 0 ⟩ t φ t
El segundo registro comienza en el estado y contiene tantos qubits como sea necesario para almacenar . La estimación de fase se realiza en dos etapas. Primero, aplicamos el circuito que se muestra en la Figura 5.2. El circuito comienza aplicando una transformación Hadamard al primer registro, seguido de la aplicación de operaciones controladas en en el segundo registro, con elevado a potencias sucesivas de dos. Se ve fácilmente que el estado final del primer registro es:| u ⟩ T U
La segunda etapa de la estimación de fase es aplicar la transformada cuántica inversa de Fourier en el primer registro. Esto se obtiene invirtiendo el circuito para la transformada cuántica de Fourier en la sección anterior (Ejercicio 5.5) y se puede hacer en los pasos . La tercera y última etapa de la estimación de fase es leer el estado del primer registro haciendo una medición en la base computacional. Mostraremos que esto proporciona una estimación bastante buena de . Un esquema general del algoritmo se muestra en la Figura 5.3.φ
Para agudizar nuestra intuición de por qué funciona la estimación de fase, supongamos que puede expresarse exactamente en bits int, como . Luego, el estado (5.20) resultante de la primera etapa de la estimación de fase puede reescribirseφ = 0. φ 1 . . . φ t
La segunda etapa de la estimación de fase es aplicar la transformada cuántica inversa de Fourier. Pero al comparar la ecuación anterior con la forma del producto para la transformada de Fourier, Ecuación (5.4), vemos que el estado de salida de la segunda etapa es el estado del producto . Una medida en la base computacional, por lo tanto, nos da exactamente!
Resumiendo, el algoritmo de estimación de fase permite estimar la fase de un valor propio de un operador unitario , dado el vector propio correspondiente . Una característica esencial en el corazón de este procedimiento es la capacidad de la transformación inversa de Fourier para realizar la transformación.
Procedamos desde aquí. Encontré un buen diagrama de circuito para el algoritmo HHL09 aquí [ ] :
Paso 1 (Estimación de fase):
En el primer paso del algoritmo HHL09 se utiliza el mismo concepto (del algoritmo estándar de Estimación de fase cuántica como se describe en Nielsen y Chuang). Sin embargo, debemos tener en cuenta que por sí solo no es un operador unitario. Sin embargo, si suponemos que es hermitiano, entonces la exponencial es unitaria (¡no se preocupe, existe una solución alternativa en caso de que no sea hermitiano!).
Aquí, podemos escribir . Hay otro punto sutil involucrado aquí. Nosotros no conocemos los vectores propios de de antemano (pero sí sabemos que para cualquier matriz unitaria de tamaño existen vectores propios ortonormales). Además, debemos recordarnos que si los valores propios de son entonces los valores propios de serán . Si comparamos esto con la forma de valores propios dados en Nielsen y Chuang para es decir, si , encontraríamos . En este caso, comenzamos en el estado (que puede escribirse como una superposición de los vectores propios de es decir, ) en lugar de cualquier vector propio particular de , en lo que respecta al segundo registro de qubits. Si hubiéramos comenzado en el estado habríamos terminado con es decir (considerando quees el valor propio asociado con el vector propio de ). Ahora, en cambio, si comenzamos en la superposición de vectores propios deberíamos terminar con .
Pregunta:
Parte 1 : en el documento HHL09 , escribieron sobre el estado del sistema después de este paso de Estimación de fase es . Sin embargo, por lo que escribí anteriormente, me parece que el estado del sistema debería ser .
¿Que me estoy perdiendo aqui? ¿Dónde desapareció el factor en su algoritmo?
Editar: se ha pedido aquí la Parte 2 para que las preguntas individuales estén más centradas.
También tengo varias confusiones sobre el Paso 2 y el Paso 3 del algoritmo HHL09 también, pero decidí publicarlos como hilos de preguntas separados, ya que este se está volviendo demasiado largo. Agregaré los enlaces a esos hilos de preguntas, en esta publicación, una vez que se hayan creado.
[ ]: Experimentos de cifrado homomórficos en la plataforma de computación cuántica en la nube de IBM Huang et al. (2016)
fuente
Respuestas:
Depende de los documentos, pero vi 2 enfoques:
En la mayoría de los artículos que leí sobre el algoritmo HHL y su implementación, el tiempo de evolución hamiltoniano se toma de tal manera que este factor desaparece, es decir, .t t=t0=2π
El valor propio aproximado a menudo se escribe . En algunos documentos, esta notación realmente significa "la aproximación del valor propio verdadero " y en otros documentos parece incluir en esta definición, es decir, " es la aproximación de valor de ".λ~ λ t2π λ~ λt2π
Aquí hay algunos enlaces:
Algoritmos de sistemas lineales cuánticos: un manual (Dervovic, Herbster, Mountney, Severini, Usher & Wossnig, 2018) : un artículo completo y muy bueno sobre el algoritmo HHL y algunas mejoras que se han descubierto. El documento es del 22 de febrero de 2018. El valor de que le interesa se aborda primero en la página 30, en la leyenda de la Figura 5 y se fija en .t 2π
Diseño de circuito cuántico para resolver sistemas lineales de ecuaciones (Cao, Daskin, Frankel & Kais, 2013) (tome la v2 y no la v3): una implementación detallada del algoritmo HHL para una matriz fija 4x4. Si planea utilizar el artículo, permítame advertirle que contiene algunos errores. Puedo proporcionarle los que encontré si está interesado. El valor de (que se denota como en este documento) se fija en en la segunda página (al comienzo de la columna derecha).t t0 2π
Computación cuántica experimental para resolver sistemas de ecuaciones lineales (Cai, Weedbrook, Su, Chen, Gu, Zhu, Li, Liu, Lu & Pan, 2013) : una implementación del algoritmo HHL para una matriz 2x2 en una configuración experimental. Arreglan en la leyenda de la Figura 1.t=2π
Realización experimental del algoritmo cuántico para resolver sistemas lineales de ecuaciones (Pan, Cao, Yao, Li, Ju, Peng, Kais & Du, 2013) : implementación de HHL para una matriz de 2x2. La implementación es similar a la dada en el segundo punto anterior, con la matriz 4x4. Arreglan en la página 3, viñeta n ° 2.t0=2π
fuente
Recuerda que en la notación de Dirac, lo que escribas dentro del ket es una etiqueta arbitraria que se refiere a algo más abstracto. Entonces, es cierto que está encontrando el vector propio (aproximado) a , que tiene un valor propio y, por lo tanto, lo que está extrayendo es , pero eso es lo mismo que el vector propio de con valor propio , y es a lo que se hace referencia en la notación. Pero si quisieras ser realmente claro, podrías escribirlo comoe - i λ t λ t / ( 2 π ) A λU e−iλt λt/(2π) A λ
| vector propio aproximado de para el cual el valor propio es y de para el cual el valor propio es ,e - i λ t A λ ⟩U e−iλt A λ⟩
pero tal vez en lugar de escribir eso cada vez, ¡podríamos escribir por brevedad!|λ~⟩
fuente