MATLAB算法实战应用案例精讲-【人工智能】Grover量子搜索算法(补充篇)

前言

因为量子计算的并行性,  搜索问题,  比如说数据库搜索, 最短路径问题, 加密问题, 图形着色问题等,  都被视为可以做到量子加速. 

Grover 算法,有时也称为量子搜索算法(quantum search algorithm),指一种在量子计算机上运行的非结构化搜索算法,是量子计算的典型算法之一。

算法原理

Grover算法是通用的搜索算法,  通用的意思是,  搜索过程与具体问题无关,  只要满足:  每次执行某个黑盒所有正确答案的相位都被翻转,  Grover算法就搜索出黑盒里的"正确"答案.

Grover算法需要反复计算某个过程,  每迭代一次(某种程度内),  测量得到正确答案就会增长.  单次迭代包含两步:   1)  应用黑盒;  2) 应用Grover扩散算子(Grover diffusion operator).  黑盒把正确答案的相位进行翻转,  Grover算子把正确答案的出现概率增大,  并减少错误答案的出现概率.

Grover算子表示为

def GroverOperator(register: Qubits) -> None:
    # Hadamard Transform
    ApplyToEach(Builtin.H, register)
    # 翻转全部量子位的状态
    ApplyToEach(Builtin.X, register)
    # I - 2|1^n❭❬1^n|
    Controlled(Builtin.Z, register[:-1], register[-1])
    # 翻转全部量子位的状态, 应用Hadamard变换的逆
    ApplyToE

你可能感兴趣的:(matlab,算法,人工智能)