量子近似优化算法(QAOA)入门(1):从量子绝热算法(QAA)角度的直观理解

2024-03-24 14:30

本文主要是介绍量子近似优化算法(QAOA)入门(1):从量子绝热算法(QAA)角度的直观理解,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!


文章目录

  • 前言:量子计算的本质是测量
  • 一、基于量子逻辑电路的常用算法
    • 1.NISQ:Noisy Intermediate-Scale Quantum(含噪声中等规模量子)
  • 二、量子绝热算法(QAA:Quantum Adiabatic Algorithm)
    • 1.QAA的原理
    • 2.量子绝热算法和量子退火算法的区别
  • 三、量子近似优化算法(QAOA : Quantum Approximate Optimization Algorithm)
  • 总结


前言:量子计算的本质是测量

经典计算机 VS 量子计算机
开始大家要有这样一个认识,才不会在学习过程中困惑。


一、基于量子逻辑电路的常用算法

在这里插入图片描述

  • VQE : Variational Quantum Eigensolver
  • QAOA : Quantum Approximate Optimization Algorithm

1.NISQ:Noisy Intermediate-Scale Quantum(含噪声中等规模量子)

这个词是不能单独理解,我们先理解【NISQ设备:Noisy Intermediate-Scale Quantum device】是什么。

NISQ设备,指数年或数十年可以实现的,小~中规模(包含数个~数百个量子比特)的量子计算机。NISQ设备在计算过程中容易受到噪声影响,而且不能纠错,所以计算结果容易出现的错误。比如著名的量子算法Shor算法和Grover算法,电路复杂(运算较多),NISQ设备容错性低,很难实现这俩算法。 我们离真正的可以在计算中即时纠错的量子计算机还很远。

在此背景下,“量子-经典混合算法”的方法成为NISQ算法研究的主流。这意味着我们不是将我们要执行的所有计算都委托给量子计算机,而是只将量子计算机擅长的部分委托给量子计算机,让经典计算机处理其余部分。这个思想也是QAOA的基本思想。

所以,QAOA不是纯粹的基于量子逻辑门的算法,有部分计算是经典计算机完成的
主要的参考论文是下面两篇。

  • 该文首次提出QAOA算法
A Quantum Approximate Optimization Algorithm
https://arxiv.org/pdf/1411.4028.pdf
  • 该文是Rigetti公司的通过量子逻辑电路实现QAOA算法的报告论文
Unsupervised Machine Learning on a Hybrid Quantum Computer
https://arxiv.org/pdf/1712.05771.pdf

二、量子绝热算法(QAA:Quantum Adiabatic Algorithm)

1.QAA的原理

这章主要参考以下文章:

https://qiita.com/snhrhdt/items/ae55a94b25c06142528a

在这里插入图片描述
QAA的思想很简单,就是把待求解的哈密顿量,映射到一个基态已知的能量体系。然后,通过量子绝热演化,就能获得待求解的哈密顿量基态。计算式如下:
在这里插入图片描述
量子绝热演化的过程就是,极其缓慢地令t0→T

  • t = 0
    在这里插入图片描述

  • t = T
    在这里插入图片描述
    QAA背后的想法是从一个简单的哈密顿量开始,我们可以很容易地获得并准备好基态,并“小心”地演化。演化过程中该哈密顿量一直保持在基态,直到它的哈密顿量的基态是我们问题的解。

这篇文章的目的是直觉上理解量子绝热算法。并且阐明怎么通过魔改QAA,从而发明了QAOA。具体的物理推导,之后的篇章再说。

2.量子绝热算法和量子退火算法的区别

量子退火算法依赖于与绝热量子计算相同的核心思想:它采用一个初始哈密顿量 H 0 H_{0} H0,一个终态哈密顿量 H 1 H_{1} H1,其基态编码就是求解问题的解。

但是量子退火算法和QAA有两个不同点。

  • 终态 H 1 H_{1} H1能够实现的哈密顿量不能完全随意选择,而必须从某个限定的类中选择。一个典型的选择是形式的以下的伊辛哈密顿量。
    在这里插入图片描述
  • 在量子退火中,进化不再保证是绝热的。做出这个决定有两个主要原因。
    第一个原因:上面图中的光谱间隙是 H ( t ) H(t) H(t), t ∈ [ 0 , T ] t \in[0, T] t[0,T] 的基态与第一激发态之差的最小值。计算这个光谱间隙是非常困难的。
    第二个原因:即使我们能够计算出绝热过程所需的时间,它也可能时间太久以至于不实用——甚至不可能,我们等不及。

所以,量子退火选择了妥协。

三、量子近似优化算法(QAOA : Quantum Approximate Optimization Algorithm)

  • 量子退火算法,挺好用了,为啥要发明QAOA呢?
    因为,量子逻辑电路,只能以离散的步骤改变状态向量。就如下面的量子逻辑电路图一样。

在这里插入图片描述
更直观的理解就是,把时间 t t t 上的演化,通过p个逻辑电路进行模拟。那么p越大,就越接近于量子退火的连续时间演化了。这里有三个参数γ、β、p。大家应该可以理解对应关系,至于细节,放到之后的文章里讲解。

下图的参考链接:https://qiita.com/snhrhdt/items/ae55a94b25c06142528a

在这里插入图片描述

总结

这篇文章,理清了QAOA的发明过程,以及直观理解,没有使用公式,之后慢慢代入公式进行讲解。

这篇关于量子近似优化算法(QAOA)入门(1):从量子绝热算法(QAA)角度的直观理解的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/841873

相关文章

Spring WebClient从入门到精通

《SpringWebClient从入门到精通》本文详解SpringWebClient非阻塞响应式特性及优势,涵盖核心API、实战应用与性能优化,对比RestTemplate,为微服务通信提供高效解决... 目录一、WebClient 概述1.1 为什么选择 WebClient?1.2 WebClient 与

Java Spring的依赖注入理解及@Autowired用法示例详解

《JavaSpring的依赖注入理解及@Autowired用法示例详解》文章介绍了Spring依赖注入(DI)的概念、三种实现方式(构造器、Setter、字段注入),区分了@Autowired(注入... 目录一、什么是依赖注入(DI)?1. 定义2. 举个例子二、依赖注入的几种方式1. 构造器注入(Con

小白也能轻松上手! 路由器设置优化指南

《小白也能轻松上手!路由器设置优化指南》在日常生活中,我们常常会遇到WiFi网速慢的问题,这主要受到三个方面的影响,首要原因是WiFi产品的配置优化不合理,其次是硬件性能的不足,以及宽带线路本身的质... 在数字化时代,网络已成为生活必需品,追剧、游戏、办公、学习都离不开稳定高速的网络。但很多人面对新路由器

Spring Boot 与微服务入门实战详细总结

《SpringBoot与微服务入门实战详细总结》本文讲解SpringBoot框架的核心特性如快速构建、自动配置、零XML与微服务架构的定义、演进及优缺点,涵盖开发环境准备和HelloWorld实战... 目录一、Spring Boot 核心概述二、微服务架构详解1. 微服务的定义与演进2. 微服务的优缺点三

从入门到精通详解LangChain加载HTML内容的全攻略

《从入门到精通详解LangChain加载HTML内容的全攻略》这篇文章主要为大家详细介绍了如何用LangChain优雅地处理HTML内容,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录引言:当大语言模型遇见html一、HTML加载器为什么需要专门的HTML加载器核心加载器对比表二

从入门到进阶讲解Python自动化Playwright实战指南

《从入门到进阶讲解Python自动化Playwright实战指南》Playwright是针对Python语言的纯自动化工具,它可以通过单个API自动执行Chromium,Firefox和WebKit... 目录Playwright 简介核心优势安装步骤观点与案例结合Playwright 核心功能从零开始学习

MySQL深分页进行性能优化的常见方法

《MySQL深分页进行性能优化的常见方法》在Web应用中,分页查询是数据库操作中的常见需求,然而,在面对大型数据集时,深分页(deeppagination)却成为了性能优化的一个挑战,在本文中,我们将... 目录引言:深分页,真的只是“翻页慢”那么简单吗?一、背景介绍二、深分页的性能问题三、业务场景分析四、

Linux进程CPU绑定优化与实践过程

《Linux进程CPU绑定优化与实践过程》Linux支持进程绑定至特定CPU核心,通过sched_setaffinity系统调用和taskset工具实现,优化缓存效率与上下文切换,提升多核计算性能,适... 目录1. 多核处理器及并行计算概念1.1 多核处理器架构概述1.2 并行计算的含义及重要性1.3 并

深入理解Go语言中二维切片的使用

《深入理解Go语言中二维切片的使用》本文深入讲解了Go语言中二维切片的概念与应用,用于表示矩阵、表格等二维数据结构,文中通过示例代码介绍的非常详细,需要的朋友们下面随着小编来一起学习学习吧... 目录引言二维切片的基本概念定义创建二维切片二维切片的操作访问元素修改元素遍历二维切片二维切片的动态调整追加行动态

从入门到精通MySQL联合查询

《从入门到精通MySQL联合查询》:本文主要介绍从入门到精通MySQL联合查询,本文通过实例代码给大家介绍的非常详细,需要的朋友可以参考下... 目录摘要1. 多表联合查询时mysql内部原理2. 内连接3. 外连接4. 自连接5. 子查询6. 合并查询7. 插入查询结果摘要前面我们学习了数据库设计时要满