¿Cómo se usa el algoritmo de Grover para estimar la media y la mediana de un conjunto de números?

10

En la página de Wikipedia para el algoritmo de Grover , se menciona que:

"El algoritmo de Grover también se puede utilizar para estimar la media y la mediana de un conjunto de números"

Hasta ahora solo sabía cómo se puede usar para buscar en una base de datos. Pero no estoy seguro de cómo implementar esa técnica para estimar la media y la mediana de un conjunto de números. Además, no hay citas (por lo que he notado) en esa página que explica la técnica.

Sanchayan Dutta
fuente
Ya sea que elija responder a su propia pregunta, o para quien elija tomar la tarea por sí mismo, este enlace parece un gran lugar para comenzar Cómo usar el algoritmo de Grover para encontrar el promedio (también conocido como promedio, integral) de una función Weirdo
agaitaarino
@agaitaarino Gracias. Lo revisaré. Por cierto, su comentario no se representa correctamente como un enlace porque dejó un espacio en blanco después del paréntesis de apertura. :)
Sanchayan Dutta

Respuestas:

9

La idea para estimar la media es aproximadamente la siguiente:

  • Para cualquier que proporcione salidas en los reales, defina una reescalada que proporcione salidas en el rango de 0 a 1. Nuestro objetivo es estimar la media de .F ( x ) F ( x )f(x)F(x)F(x)

  • Defina un unitario cuya operación seaEs importante tener en cuenta que esta unitaria se implementa fácilmente. Comienza con una transformación de Hadamard en el primer registro, realiza un cálculo de en un registro de ancilla, usa esto para implementar una rotación controlada del segundo registro y luego desconfigura el registro de ancilla.U a : | 0 | 0 1Uaf(x)

    Ua:|0|012n/2x|x(1F(x)|0+F(x)|1).
    f(x)
  • Definir el unitario .G=Ua(I2|00||00|)UaIZ

  • Comenzando desde un estado , use misma manera que usaría el iterador Grover para estimar el número de soluciones a un problema de búsqueda.Ua|0|0G

La mayor parte de este algoritmo es la amplificación de amplitud, como se describe aquí . La idea principal es que puede definir dos estados y esto define un subespacio para la evolución. El estado inicial es . La amplitud del término contiene claramente la información sobre la media de , si pudiéramos estimarla. Podrías preparar repetidamente este estado y medir la probabilidad de obtener un

|ψ=1xF(x)xF(x)|x|1|ψ=1x1F(x)x1F(x)|x|0,
| PsiF(x)| 1| PsiqueZUa|0|0=(xF(x)|ψ+x1F(x)|ψ)2n/2|ψF(x)|1en el segundo registro, pero la búsqueda de Grover le brinda una mejora cuadrática. Si compara con la forma en que Grover está configurado, la amplitud de este que puede 'marcar' (en este caso aplicando ) sería donde es el número de soluciones.|ψIZ mm2nm

Por cierto, es interesante compararlo con el "poder de un qubit limpio", también conocido como DQC1. Allí, si aplica a, la probabilidad de obtener la respuesta 1 es la misma que la versión no acelerada, y le da una estimación de la media.IUaI2n|00|


Para la mediana, aparentemente puede definirse como el valor que minimiza Hay dos pasos aquí. El primero es darse cuenta de que la función que estamos tratando de minimizar es básicamente solo un medio. Luego, el segundo paso es utilizar un algoritmo de minimización que también puede acelerarse mediante una búsqueda de Grover. La idea aquí es utilizar la búsqueda de un Grover, y marcar todos los elementos para los que la evaluación de la función da un valor inferior a un umbral . Puede estimar el número de entradas que dan , luego repita para una diferente hasta que localice el valor mínimo lo suficiente. x | f ( x ) - f ( z ) | . T x f ( x ) T Tz

x|f(x)f(z)|.
Txf(x)TT

Por supuesto, me estoy saltando algunos detalles de tiempos de ejecución precisos, estimaciones de errores, etc.

DaftWullie
fuente
¿Necesita ejecutar primero el algoritmo de Grover un número logarítmico de veces para calcular el valor mínimo y máximo de la función antes de poder realizar el cambio de escala en el paso 1?
tparker 01 de
@tparker Eso probablemente depende. A menudo se asume que conoce lo suficiente sobre la función F para poder vincular sus posibles valores.
DaftWullie