A idéia para estimar a média é aproximadamente a seguinte:
Para qualquer que fornece saídas em reais, defina um F ( x ) redimensionado que fornece saídas no intervalo de 0 a 1. Nosso objetivo é estimar a média de F ( x ) .f( X )F( X )F( X )
Defina um unitário cuja operação é U a : | 0 ⟩ | 0 ⟩ ↦ 1vocêumaÉ importante notar que esta unidade é facilmente implementada. Você começa com uma transformação Hadamard no primeiro registro, executa um cálculo def(x)em um registro ancilla, usa isso para implementar uma rotação controlada do segundo registro e, em seguida, não calcula o registro ancilla.
vocêuma: | 0 ⟩ | 0 ⟩ ↦ 12n / 2∑x| x⟩( 1 - M( X )-------√| 0⟩+ F( X )----√| 1⟩).
f( X )
Definir o unitário .G = Uuma( I - 2 | 0 ⟩ ⟨ 0 | ⊗ | 0 ⟩ ⟨ 0 | ) U†umaI ⊗Z
A partir de um estado , utilize G assim como você usaria o Grover iterador para estimar o número de soluções a um problema de pesquisa.vocêuma| 0⟩ | 0⟩G
A maior parte desse algoritmo é a amplificação de amplitude, conforme descrito aqui . A idéia principal é que você pode definir dois estados
e esta define um subespaço para a evolução. O estado inicial éUa| 0⟩| 0⟩=( √
| ip⟩= 1∑xF( X )-------√∑xF( X )----√| x⟩ | 1⟩| ψ⊥⟩ = 1∑x1 - F( X )----------√∑x1 - F( X )-------√| x⟩ | 0⟩,
. A amplitude do
| ip⟩prazo claramente contém as informações sobre a média de
F(x), se pudéssemos estimar-lo. Você pode preparar repetidamente esse estado e medir a probabilidade de obter um
| 1⟩no segundo registo, mas a busca de Grover dá-lhe uma melhoria quadrática. Se você comparar com o modo como o Grover é normalmente configurado, a amplitude disso
| ip⟩vocêuma| 0⟩ | 0⟩=( ΣxF( X )-------√| ip⟩+ Σx1 - F( X )----------√| ψ⊥⟩ ) 2- n / 2| ip⟩F( X )| 1⟩| ip⟩que você pode 'marcar' (neste caso, aplicando
) seria
√I ⊗Z que
mé o número de soluções.
m2n--√m
Aliás, é interessante comparar com o "poder de um qubit limpo", também conhecido como DQC1. Lá, se você aplicar a Ivocêuma, a probabilidade de obter a resposta 1 é igual à versão não acelerada e fornece uma estimativa da média.Eu2n⊗ | 0 ⟩ ⟨ 0 |
z
∑x|f( x ) - f( z) | .
Txf( x ) ≤ TT
Obviamente, estou pulando alguns detalhes de tempos de execução precisos, estimativas de erro etc.