本源量子云平台实现Grover算法
1、Grover算法
首先我们需要知道量子算法执行的一个宏观过程:
对于量子计算有个深刻认识--老师曾说:
1.1.1、前置知识点---Oracle的理解
再进入Grover算法之前我们需要了解到 Oracle
。
oracle
是一个酉算子,也就是线性代数里的矩阵,一般用 O 来表示。oracle
的作用就是对量子状态做一个酉变换- 给
Oracle
的定义:
可以识别搜索问题的解。
通过Oracle,我们可以实现,当搜索问题的索引为我们的目标结果时,结果寄存器将翻转;反之结果寄存器值不变,从而我们可以通过判定结果寄存器的值,来确定搜索的时候对象是否是我们的目标值。
1.1.2、Grover算法流程
量子线路:
- 为了便于分析,我们定义两个量子态: “Good”态:
“Bad”态:
- 算法步骤如下: 1.设置初始量子态
2.令ε = t / N ,应用k=O(1/ε)次如下变换:
G=H⊗n「R」H⊗n「O」x,±
3.测量寄存器的状态,并检查测量结果i ii是否是解。
2、Grover算法实现步骤
2.1、知名的几个量子云平台
- IBM量子云平台
- 本源量子云平台(国内中科大)
我的实验配置:
实验搭建算法如下:
代码:
H q[0] H q[1] X q[2] H q[2] TOFFOLI q[0],q[1],q[2] H q[0] H q[1] X q[0] X q[1] H q[1] CNOT q[0],q[1] X q[0] H q[1] H q[0] X q[1] H q[1] MEASURE q[0],c[0] MEASURE q[1],c[1]