赞
踩
Grover算法和Shor算法是量子算法领域两个最重要的量子算法,而Grover算法相比于Shor因子分解算法,有着更广泛的应用。
N
=
2
n
N=2^n
N=2n,给定一个任意的
x
∈
{
0
,
1
}
n
x\in\{0,1\}^n
x∈{0,1}n;
目标:找到
i
i
i使得
x
i
=
1
x_i=1
xi=1(如果没有这样的
i
i
i,输出“no solution”)。
注:经典随机算法需要 Θ ( n ) \Theta(n) Θ(n)次查询才能解决该搜索问题;Grover搜索算法需要 O ( n ) O(\sqrt{n}) O(n )次查询, O ( n log n ) O(\sqrt{n}\log n) O(n logn)个其他量子门就可以解决该搜索问题(平方加速)。
1.查询量子门
O
x
,
±
∣
0
⟩
=
(
−
1
)
x
i
∣
i
⟩
O_{x,\pm}|0\rangle=(-1)^{x_i}|i\rangle
Ox,±∣0⟩=(−1)xi∣i⟩;
2.酉变换R:
∣
0
n
,
b
⟩
→
∣
0
n
,
b
⟩
|0^n,b\rangle\to|0^n,b\rangle
∣0n,b⟩→∣0n,b⟩, 其中
b
∈
{
0
,
1
}
b\in\{0,1\}
b∈{0,1};
\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\,
∣
i
,
b
⟩
→
∣
i
,
b
⟩
|i,b\rangle\to|i,b\rangle
∣i,b⟩→∣i,b⟩, 其中
i
∈
{
0
,
1
}
n
∖
{
0
n
}
i\in\{0,1\}^n\setminus\{0^n\}
i∈{0,1}n∖{0n}。
3.Grover迭代:
G
=
H
⊗
n
R
H
⊗
n
O
x
,
±
\mathcal{G}=H^{\otimes n}RH^{\otimes n}O_{x,\pm}
G=H⊗nRH⊗nOx,±。
为了便于分析,我们定义两个量子态:
“Good”态:
“Bad”态:
其中
t
t
t就是满足
x
i
=
1
x_i=1
xi=1的
i
i
i的个数。
算法步骤如下:
1.设置初始量子态
2.令
ε
=
t
/
N
\varepsilon=t/N
ε=t/N,应用
k
=
O
(
1
/
ε
)
k=O(1/\varepsilon)
k=O(1/ε)次如下变换:
G
=
H
⊗
n
R
H
⊗
n
O
x
,
±
\mathcal{G}=H^{\otimes n}RH^{\otimes n}O_{x,\pm}
G=H⊗nRH⊗nOx,±
3.测量寄存器的状态,并检查测量结果
i
i
i是否是解。
其中,算法第2步理解如下:
简单来说,算法第2步:量子态从状态
∣
U
⟩
|U\rangle
∣U⟩出发,通过不断的“反射+反射”,不断向目标态
∣
G
⟩
|G\rangle
∣G⟩靠近。而目标态
∣
G
⟩
|G\rangle
∣G⟩就是满足
x
i
=
1
x_i=1
xi=1的
∣
i
⟩
|i\rangle
∣i⟩的叠加态。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。