El algoritmo de conteo cuántico es un algoritmo cuántico para contar de manera eficiente el número de soluciones para un problema de búsqueda dado. El algoritmo se basa en el algoritmo de estimación de fase cuántica y en el algoritmo de búsqueda de Grover .
Los problemas de conteo son comunes en diversos campos, como estimación estadística, física estadística, redes, etc. En cuanto a la computación cuántica , la capacidad de realizar el conteo cuántico de manera eficiente es necesaria para utilizar el algoritmo de búsqueda de Grover (porque ejecutar el algoritmo de búsqueda de Grover requiere saber cuántos existen soluciones). Además, este algoritmo resuelve el problema de la existencia cuántica (es decir, decidir si existe alguna solución) como un caso especial.
El algoritmo fue diseñado por Gilles Brassard , Peter Høyer y Alain Tapp en 1998.
Considere un conjunto finito de tamaño y un conjunto de "soluciones" (que es un subconjunto de ). Definir:
En otras palabras, es la función indicadora de .
Calcula la cantidad de soluciones . [1]
Sin ningún conocimiento previo sobre el conjunto de soluciones (o la estructura de la función ), una solución determinista clásica no puede funcionar mejor que , porque todos los elementos de deben ser inspeccionados (considere un caso donde el último elemento a inspeccionar es una solución) .
La entrada consta de dos registros (es decir, dos partes): los qubits superiores comprenden el primer registro y los qubits inferiores son el segundo registro .
El estado inicial del sistema es . Después de aplicar la operación de puerta Hadamard de múltiples bits en cada uno de los registros por separado, el estado del primer registro es
y el estado del segundo registro es
un estado de superposición igual en la base computacional.
Debido a que el tamaño del espacio es y el número de soluciones es , podemos definir los estados normalizados: [2] : 252
Tenga en cuenta que
que es el estado del segundo registro después de la transformada de Hadamard.
La visualización geométrica del algoritmo de Grover muestra que en el espacio bidimensional abarcado por y , el operador de Grover es una rotación en sentido antihorario ; por lo tanto, se puede expresar como
en la base ortonormal . [2] : 252 [3] : 149
Por las propiedades de las matrices de rotación sabemos que es una matriz unitaria con los dos valores propios . [2] : 253
De aquí en adelante, seguimos el esquema del algoritmo de estimación de fase cuántica : aplicamos operaciones controladas de Grover seguidas de la transformada cuántica de Fourier inversa ; y según el análisis , encontraremos la mejor aproximación de bits al número real (perteneciente a los autovalores del operador de Grover) con probabilidad superior a . [4] : 348 [3] : 157
Tenga en cuenta que el segundo registro está en realidad en una superposición de los autovectores del operador de Grover (mientras que en el algoritmo de estimación de fase cuántica original, el segundo registro es el autovector requerido). Esto significa que, con cierta probabilidad, nos aproximamos y, con cierta probabilidad, nos aproximamos ; esas dos aproximaciones son equivalentes. [2] : 224–225
Suponiendo que el tamaño del espacio es al menos el doble del número de soluciones (es decir, asumiendo eso ), un resultado del análisis del algoritmo de Grover es: [2] : 254
Por lo tanto, si encontramos , también podemos encontrar el valor de (porque se conoce).
El error
está determinado por el error dentro de la estimación del valor de . El algoritmo de estimación de fase cuántica encuentra, con alta probabilidad, la mejor aproximación de bits de ; esto significa que si es lo suficientemente grande, tendremos , por lo tanto . [2] : 263
En el algoritmo de búsqueda de Grover, el número de iteraciones que se deben realizar es . [2] : 254 [3] : 150
Por lo tanto, si se conoce y se calcula mediante el algoritmo de conteo cuántico, el número de iteraciones del algoritmo de Grover se calcula fácilmente.
El algoritmo de conteo cuántico se puede utilizar para acelerar la solución de problemas NP-completos .
Un ejemplo de un problema NP-completo es el problema del ciclo hamiltoniano , que es el problema de determinar si una gráfica tiene un ciclo hamiltoniano .
Una solución simple al problema del ciclo hamiltoniano es verificar, para cada orden de los vértices de , si es un ciclo hamiltoniano o no. La búsqueda a través de todos los posibles ordenamientos de los vértices del gráfico se puede hacer con el conteo cuántico seguido del algoritmo de Grover, logrando una aceleración de la raíz cuadrada, similar al algoritmo de Grover. [2] : 264 Este enfoque encuentra un ciclo hamiltoniano (si existe); para determinar si existe un ciclo hamiltoniano, el algoritmo de conteo cuántico en sí es suficiente (e incluso el algoritmo de existencia cuántica, que se describe a continuación, es suficiente).
El problema de existencia cuántica es un caso especial de conteo cuántico en el que no queremos calcular el valor de , pero solo queremos saber si . Una solución trivial a este problema es usar directamente el algoritmo de conteo cuántico: el algoritmo cede , por lo que al verificar si obtenemos la respuesta al problema de existencia. Este enfoque implica cierta información general porque no estamos interesados en el valor de .
El uso de una configuración con un pequeño número de qubits en el registro superior no producirá una estimación precisa del valor de , pero será suficiente para determinar si es igual a cero o no. [2] : 263