Grover算法——量子搜索算法

        假设N个数据中符合条件的数据有M个,则量子搜索算法的复杂度为O(\sqrt{\frac{N}{M}}),远小于经典算法的复杂度。

黑箱

        下面以N=2为例,介绍黑箱如何标记符合条件的数据。N=2意味着只有两个数据,可以用0和1来表示这两个数据,也就只需要一个量子比特表示。假设f(x):x\in {(0,1)}\rightarrow y\in(0,1)是一个函数,若x是符合条件的数据,则f(x) = 1;若x不是符合条件的数据,则f(x) = 0。定义黑箱O具有如下功能:

                                                ​​​​​​​        ​O(|x\rangle|y\rangle) = |x\rangle|f(x)\oplus y\rangle                                         (1)

其中|y\rangle为辅助量子比特。 此处,不用|y\rangle=0

                                                                  |y\rangle = \frac{|0\rangle-|1\rangle}{2}                                                          (2)

                            O(|x\rangle\frac{|0\rangle-|1\rangle}{2}) = |x\rangle\frac{|0\oplus f(x)\rangle-|1\oplus f(x)\rangle}{2}=(-1)^{f(x)}|x\rangle(\frac{|0\rangle-|1\rangle}{2})             (3)

黑箱作用前后, |y\rangle的状态不变,通常可以省略,则黑箱的作用记为

                                                       O(|x\rangle) = |(-1)^{f(x)}|x\rangle

当x是不符合条件的数据,即f(x)为0时,O(|x\rangle) = |x\rangle|x\rangle没变,就是未被标记;当x是符合条件的数据,则O(|x\rangle) = -|x\rangle|x\rangle变成-|x\rangle,也就是负号把|x\rangle标记出来。

Grover算法

        Grover量子搜索算法是一个迭代的过程,主要思路是从初始状态出发,重复进行多次变换,让符合条件的解的振幅越来越大,最后进行测量,就能以很高概率得到正确的结果。

Grover算法共需要n+1个量子比特,初态为|\phi_{0} \rangle=|0\rangle^{\otimes (n+1)}前n个量子比特组成第一个寄存器,用于存储元素编号;另外1个构成第二寄存器,是辅助量子比特。Grover算法步骤如下:

        第一步:使用n个H门作用于第一寄存器演化出元素编号的叠加态,并使用X门和H门作用于第二寄存器演化出量子态\frac{|0\rangle-|1\rangle}{2}|\phi_{0} \rangle演化为

        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​        |\phi_{1} \rangle=\frac{1}{\sqrt{n}}\sum_{x=0}^{N-1}|x\rangle(\frac{|0\rangle-|1\rangle}{\sqrt{2}})

        第二步:重复算子G以增大满足条件的解的概率,具体的重复次数之后说,每个算子G可以分为以下四步,量子线路图如图。

(1)使用黑箱算子O将符合条件的解的符号取反;

(2)使用H^{\bigotimes n}作用于第一寄存器;

(3)使用条件相移算子2|0\rangle^{\bigotimes n}\langle0|^{\bigotimes n}-I,将|0\rangle以外的基态|1\rangle|2\rangle,...,|N-1\rangle取反;

(4)使用H^{\bigotimes n}作用于第一寄存器;

 # Display inline
from qiskit import QuantumCircuit, ClassicalRegister, QuantumRegister, transpile
from qiskit_aer import Aer

import numpy as np
from qiskit.visualization import plot_histogram

circuit = QuantumCircuit(3,3)

#第一步
circuit.x(2)
for i in range(3):
    circuit.h(i)
    
#第二步
circuit.ccx(0,1,2)

#第三步
for i in range(2):
    circuit.h(i)
for i in range(2):
    circuit.x(i)
circuit.cz(0,1)
for i in range(2):
    circuit.x(i)
for i in range(2):
    circuit.h(i)
    
#测量
circuit.measure(0,0)
circuit.measure(1,1)

#绘制线路图
circuit.draw(output = 'mpl')

仿真结果

线路的最后测量,可以看出011的出现概率为1,需要说明的是测量结果011分别代表量子比特q_{2}q_{1}q_{0}的值,q_{2}其实没有被测量,显示默认值0,q_{1}q_{0}显示为11,成功找到(1,1)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/913538.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

使用 Ollama 运行 Qwen2.5.1-Coder-7B-Instruct

使用 Ollama 运行 Qwen2.5.1-Coder-7B-Instruct 1. 下载和安装 ollama2. 设置环境变量3. 运行 Qwen2.5.1-Coder-7B-Instruct 1. 下载和安装 ollama 访问 https://ollama.com/download 下载安装文件, 或者访问 https://github.com/ollama/ollama/releases 下载安装文…

ubuntu下aarch64-linux-gnu(交叉编译) gdb/gdbserver(二)

ubuntu下aarch64-linux-gnu(交叉编译) gdb/gdbserver(二) 本教程作为gdb/gdbserver编译安装教程的一个补充,教会大家如何使用gdb/gdbserver进行远程调试。 如上图所示,我们需要将编译后的gdbserver上传至目标设备,其上…

30.1 时序数据库TSDB的典型特点

本节重点介绍 : db-ranking网站对db进行排名时序数据特点时序数据库特点时序数据库遇到的挑战开源时间序列数据库 db-ranking 一个神奇的网站 https://db-engines.com/en/ranking 时序数据ranking https://db-engines.com/en/ranking/timeseriesdbms 排名方法 https://db-en…

[High Speed Serial ] Xilinx

Xilinx 高速串行数据接口 收发器产品涵盖了当今高速协议的方方面面。GTH 和 GTY 收发器提供要求苛刻的光互连所需的低抖动,并具有世界一流的自适应均衡功能,具有困难的背板操作所需的 PCS 功能。 Versal™ GTY (32.75Gb/s)&…

欢迎 Stable Diffusion 3.5 Large 加入 Diffusers

作为Stable Diffusion 3的改进版本,Stable Diffusion 3.5 如今已在 Hugging Face Hub 中可用,并可以直接使用 🧨 Diffusers 中的代码运行。 https://hf.co/blog/sd3 本次发布包含两套模型参数: https://hf.co/collections/stabilityai/stable…

#渗透测试#SRC漏洞挖掘#Python自动化脚本的编写04之通过面向对象编程学生管理信息系统01

免责声明 本教程仅为合法的教学目的而准备,严禁用于任何形式的违法犯罪活动及其他商业行为,在使用本教程前,您应确保该行为符合当地的法律法规,继续阅读即表示您需自行承担所有操作的后果,如有异议,请立即停…

客户手机号收集小程序有什么用

客户手机号收集小程序具有多方面的重要作用,主要体现在以下几个领域: 商业营销与客户关系管理 精准营销:通过收集客户手机号,企业能够依据客户的消费行为、偏好等信息,进行精准的个性化营销。例如,电商企业…

【RabbitMQ】07-业务幂等处理

1. 方式一 序列化设置唯一Id。 Beanpublic MessageConverter messageConverter() {Jackson2JsonMessageConverter jjmc new Jackson2JsonMessageConverter();jjmc.setCreateMessageIds(true);return jjmc;}RabbitListener(bindings QueueBinding(value Queue(name "d…

web实操5——http数据详解,request对象功能

http请求数据 现在我们浏览器f12的那些是浏览器给http格式数据整理之后便于我们阅读的。 原始的http格式信息: 就是按照一定格式和符号的字符串: 请求行:格式如下图 请求头:一个个key,value数据,用,分割…

《潜行者2切尔诺贝利之心》游戏引擎介绍

潜行者2切尔诺贝利之心是基于虚幻5引擎,所以画面效果大家不必担心。游戏目前已经跳票了很久,预计发售时间是2024 年 11 月 21 日,这次应该不会再跳票。 潜行者2切尔诺贝利之心是虚幻5吗 答:是虚幻5。 潜行者官方推特之前回复了…

C++篇之继承

1,继承的概念及定义 1.1,继承的概念 继承机制是面向对象程序设计使代码可以复用的重要手段,它允许我们在原有类的基础上进行扩展,增加方法(成员函数)和属性(成员变量),这…

Go语言并发编程:轻松驾驭多线程世界(九)

Go语言并发编程:轻松驾驭多线程世界在这里插入图片描述 在现代编程中,并发 是让你的程序变得更强大、更高效的关键技能。幸运的是,Go语言提供了一种简单、直观的方式来处理并发任务,使用轻量级的 Goroutine 和 Channel&#xff0c…

STM32外设之SPI的介绍

### STM32外设之SPI的介绍 SPI(Serial Peripheral Interface)是一种高速的,全双工,同步的通信总线,主要用于EEPROM、FLASH、实时时钟、AD转换器等外设的通信。SPI通信只需要四根线,节约了芯片的管脚&#x…

浅谈语言模型推理框架 vLLM 0.6.0性能优化

在此前的大模型技术实践中,我们介绍了加速并行框架Accelerate、DeepSpeed及Megatron-LM。得益于这些框架的助力,大模型的分布式训练得以化繁为简。 然而,企业又该如何将训练完成的模型实际应用部署,持续优化服务吞吐性能&#xf…

初始 html

html 文件结构 html 标签是整个 html 文件的根标签(最顶层标签) head 标签中写页面的属性. body 标签中写的是页面上显示的内容 title 标签中写的是页面的标题 <html><head><title>这是一个标题</title></head><body></body> <…

springboot校园支付系统-计算机毕业设计源码36348

目 录 摘要 Abstract 1 绪论 1.1 研究背景与意义 1.2 开发技术和开发特点 1.3论文结构与章节安排 2 校园支付系统系统分析 2.1 可行性分析 2.2 系统流程分析 2.2.1 数据增加流程 2.2.2 数据修改流程 2.2.3 数据删除流程 2.3 系统功能分析 2.3.1 功能性分析 2.3.…

The First项目报告:抗 MEV 交易的CoW Protocol什么?

2023年&#xff0c;当UNIswap推出UniswapX 时&#xff0c;市场迎接它的不是赞叹&#xff0c;而是一片争议。UniswapX被指抄袭 CoWSwap 和 1inch。Curve 官方称 1inch 和 CoWSwap 早已改变游戏规则&#xff0c;UniswapX 非首创。CoWSwap 强调其 Intent Based Trading 的先驱地位…

【Linux系列】 环境配置文件合并的艺术:从`.env`到`.env.combined`

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

Fastadmin框架短视频系统视频知识付费源码

简介&#xff1a; FastAdmin框架短视频系统/视频知识付费源码/附带小说系统 系统视频支持包月、单独购买、观影卷等功能 源码附带小说系统 源码需要配置高服务器和VDN加速 图片&#xff1a; 下载地址&#xff1a;云盘下载 原文地址&#xff1a;Fastadmin框架短视频系统视…

计算机体系结构之多级缓存、缓存miss及缓存hit(二)

前面章节《计算机体系结构之缓存机制原理及其应用&#xff08;一&#xff09;》讲了关于缓存机制的原理及其应用&#xff0c;其中提出了多级缓存、缓存miss以及缓存hit的疑问。故&#xff0c;本章将进行展开讲解&#xff0c; 多级缓存、缓存miss以及缓存hit存在的意义是为了保持…