玻色量子“揭秘”之最大割(Max-Cut)问题与QUBO建模

news2024/11/27 13:54:44

Max-Cut问题简单地说,就是求一种分割方法。给定一张无向图, 将所有顶点分割成两群, 同时使得被切断的边数量最大,或边的权重最大。

QUBO(Quadratic Unconstrained Binary Optimization)问题即二次无约束二值优化问题,将一个传统问题转为QUBO问题建模需要重点关注三部分:

①把建模对象中的变量映射为binary(0/1或者-1/+1)的变量;

②原模型的约束条件需要“处理”到目标函数中,成为无约束问题;

③模型变量的最高次不超过二次。

我们先从简单的问题开始说明,让大家有些直观感受。Max-Cut问题就是一个非常简单,并容易理解的例子。同时Max-Cut问题无需复杂的操作,其模型本身就是QUBO问题。

最大割问题是一类NP难问题,它在计算机科学和组合优化领域中有着广泛的应用。在量子计算领域,最大割问题是一个非常重要的Benchmark,因为它是量子计算机中最具代表性的NP难问题之一,也是许多量子算法的基础。同时,最大割问题在实际应用中有着广泛的应用,如社交网络分析、电路设计、图像分割等领域。因此,通过研究量子算法解决最大割问题,可以为这些领域提供更高效的解决方案。

在量子计算行业中,不同公司往往将Max-Cut问题作为基础案例进行测试,用于算力的对比测试,而经典计算中的很多代表性企业等都曾使用Max-Cut来做新品算力的标定。如英伟达公司使用 896 个 GPU 模拟 1688 个量子比特,能够处理包含高达 3375 个顶点的图最大割问题,Quantinuum 研究团队通过在20量子比特的Quantinuum H1-1量子处理器上进行实验,可解决80个顶点的最大割问题。

2023年5月16日,北京玻色量子科技有限公司(以下简称“玻色量子”)的CTO魏海博士在首场新品发布会现场,就提出了Max-Cut是实用量子计算的“算力标准”🔗。

Max-Cut问题是实用量子计算的“算力标准”  

魏海博士提到,在实际问题求解中,玻色量子自研的相干光量子计算机真机——“天工量子大脑”,适用于高效求解组合优化问题,其中最具代表性的21个NP-Complete模型(简称“NPC”)在我们的生活中无处不在。这些问题之间可以互相归约转化,技术中经常用Max-Cut问题来做统一的数学表达,表征计算复杂度。因此,为了标定量子计算的算力优势,我们采用在经典计算中和量子计算中都通用的Max-Cut问题来作为实用量子计算的“算力标准”。

那么,为了更清楚的理解最大割问题,并彻底揭开它的“神秘面纱”,下面将通过案例对该问题在模型层面进行全面解读。

问题描述

最大割问题是NP完备问题。给定一张图, 求一种分割方法, 将所有顶点分割成两群, 同时使得被切断的边数量最大,或边的权重最大。

由于二元变量存在(0/1或者-1/+1)表达形式的区别,常见模型有两种建模思路,在这里分别进行说明。

建模思路一

在无向图G(V,E)中,V为网络的顶点集合,E为网络的边集,其中点i,j∈V,(i,j)∈E,wij为顶点i,j间的边的邻接矩阵,有连边关系则取1,无连边关系则取0。决策变量σi,σj表示顶点i,j的分类,其可能的取值为{1,-1},我们将V划分为A、B两类。

则在给定的无向图中,将所有顶点分割成两群的分割方法所对应割取的边的个数为Z,模型表示为:

式(1)即为Max-Cut最大割问题模型,同时其也是QUBO模型。

图1:Max-Cut问题实例

为描述该案例,本文以一个四节点实例说明,如图1所示,通过观察我们发现将1、2分为A类,3、4分为B类的“割”法将得到问题的最优解4,如图2所示,下面我们对这个案例进行分析。

图2:Max-Cut问题“割取”示意

通过连边关系可知

当点1、2为一组,点3、4为一组时,σ1=σ2=1,σ3=σ4=-1。

则式(3)变为

结合式(1)、(2)和(4)可得

图1的最大割数量为4,符合我们的设想。

当然,这个问题还可以简化,细心的朋友发现wij为系数矩阵,并不影响模型的计算,所以模型式(1)可以转换为求解式(6),式(1)与式(6)在解的取值上是等价的。

同时,式(6)也被理解为一种Ising模型的表达方式。

在该建模思路下,式(1)与式(6)均可理解为Max-Cut最大割问题模型,同时其也是QUBO模型。不同的是,式(1)的目标函数可以表示为割去的边的个数,式(6)的目标函数常用于表示为哈密顿量。

建模思路二

思路1中二元变量通过-1/+1表示,同样我们可以通过0/1变量构建模型,我们用变量xi表示顶点i属于A,B中的某一类。

则在给定的无向图中,将所有顶点分割成两群的分割方法所对应割取的边的个数为Z,模型表示为:

在该建模思路下,式(7)为Max-Cut最大割问题模型,同时其也是QUBO模型。式(7)与式(1)的目标函数可以表示为割去的边的个数。

我们可以试着用QUBO的矩阵表达来描述这个案例。

首先,式(7)等价于式(8)

QUBO的矩阵表达式为

其中,线性项决定了矩阵Q的主对角线上的元素,二次项决定了非对角线上的元素。

以图1中的4节点,6条边的案例为例

简化后可得

则Q矩阵表达为

解决这个QUBO模型可以得到x={1,1,0,0}。因此顶点1和2在一个集合中,顶点3和4在另一个集合中,最大切割值为4。

问题拓展

有一个更普遍的问题版本称为加权Max-Cut。在这个问题中,每个边都有一个权重系数,目标函数由最大化边的个数调整为边的总权重之和。

在上述例子中,问题特征直接自然构建了QUBO形式的优化问题。但许多其他问题需要“重铸”来创建所需的QUBO形式。我们将在后面继续介绍其他问题的QUBO建模及其求解。

[参考文献]

[1] GLOVER, FRED, KOCHENBERGER, GARY, DU, YU. Quantum Bridge Analytics I: a tutorial on formulating and using QUBO models[J]. 4OR: Quarterly Journal of the Belgian, French and Italian Operations Research Societies,2019,17(4):335-371. DOI:10.1007/s10288-019-00424-y.

[2] 百度百科

https://baike.baidu.com/item/%E6%9C%80%E5%A4%A7%E5%89%B2%E9%97%AE%E9%A2%98/22910648?fr=aladdin

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Vue3 + Vite + Ts + Router搭建项目

1、新建文件夹 从新建的文件夹cmd进入终端 2、安装vite—依据vite创建vue3项目 2.1、运行 npm init vitelatest2.2.1、输入项目名称 2.2.2、选择vue 2.2.3、选择TypeScript语言 3、安装依赖项 3.1、进入刚才创建的文件夹 cd vite-project 3.2、查看镜像 #查看当前源 npm con…

Windows ObjectType Hook 之 SecurityProcedure

1、背景 Object Type Hook 是基于 Object Type的一种深入的 Hook,比起常用的 SSDT Hook 更为深入。 有关 Object Type 的分析见文章 《Windows驱动开发学习记录-ObjectType Hook之ObjectType结构相关分析》。 这里进行的 Hook 为 其中之一的 SecurityProcedure。文章…

CDS(Core Data Service)Annotation 常用属性

1. 抬头信息 @UI: {headerInfo: {typeName: BP,typeNamePlural: BP,title:{type: #STANDARD, value:ApplyNumber},description:{value:Status}} }2. 行信息/分组 @UI.facet: [{id: bp_Tab1,purpose: #STANDARD,type: #FIELDGROUP_REFERENCE,// type: #LINEITEM_REFERENCE,labe…

【Linux】 OpenSSH_7.4p1 升级到 OpenSSH_9.4p1(亲测无问题,建议收藏)

👨‍🎓博主简介 🏅云计算领域优质创作者   🏅华为云开发者社区专家博主   🏅阿里云开发者社区专家博主 💊交流社区:运维交流社区 欢迎大家的加入! 🐋 希望大家多多支…

lazarus:不安装任何驱动,直接使用csv文件作为数据集

目录 1 简介 2 需要的窗体控件很简单 3 定义字段并插入几条记录 4 其他操作 4.1 数据集保存为csv文件 4.2 清空数据 4.3 加载csv文件 5 运行程序 6 导出文件 1 简介 在某些数据操作需求特别简单的情况下,我们希望不要安装任何数据库,甚至连一个…

餐饮加盟信息展示预约小程序的内容如何

餐饮业规模持续增加,相关从业者逐渐增多,对中等规模以上的餐饮品牌来说,当有一定规模后除了开多家直营店外,还会开放招商加盟,扩展品牌、提升营收等。 由于餐饮加盟属于准属性业务,因此传统线下方式不太适…

投资理财:买理财亏损不保本怎么办?

大家好,我是财富智星,今天跟大家讨论一下投资理财,银行理财亏损不保本了,普通老百姓应该怎么办? 银行理财已经不再是保本且没有风险的产品了。对于追求稳健增值的大多数普通人来说,银行理财已经不再是他们的…

Python TCP服务端多线程接收RFID网络读卡器上传数据

本示例使用设备介绍:WIFI/TCP/UDP/HTTP协议RFID液显网络读卡器可二次开发语音播报POE-淘宝网 (taobao.com) #python通过缩进来表示代码块,不可以随意更改每行前面的空白,否则程序会运行错误!!!如果缩进不…

「Verilog学习笔记」使用generate…for语句简化代码

专栏前言 本专栏的内容主要是记录本人学习Verilog过程中的一些知识点,刷题网站用的是牛客网 分析 generate…for语句是Verilog HDL语言特有的语句,使用循环结构编写可综合的多个形式相近的代码,循环变量必须由特定关键字genvar声明。 timesca…

IDEA Plugin插件开发相关踩坑

1 前言 最近在研究IDEA插件开发,踩了不少坑,特意在这里记录一下…… 2 Java相关类找不到 照着网上一些资料,想要实现代码审计自动提示功能,需要继承AbstractBaseJavaLocalInspectionTool 结果import一片爆红,找不到相…

StackOverflow调查:2021-2022薪酬最高的编程语言

我应该学习哪种编程语言? 对于有抱负的软件工程师来说,这是最常见的问题,答案始终是:这取决于您的偏好以及您想要构建的内容。 但也许您想采取另一条路线并学习公司为您支付最高费用的语言。 如果是这样的话,这篇文章适…

GPT-2:基于无监督多任务学习的语言模型

欢迎来到魔法宝库,传递AIGC的前沿知识,做有格调的分享❗ 喜欢的话记得点个关注吧! 今天,我们将共同探索OpenAI的GPT-2,跟随论文深入理解其技术细节。 论文:Language Models are Unsupervised Multitask Le…

ORACLE数据库初始化导入

ORACLE数据库初始化导入 文章目录 ORACLE数据库初始化导入创建表空间创建用户用户授权临时目录授权数据库目录授权导入dump文件 环境:linux 数据库:oracle 19c 创建表空间 -- 查询已创建目录 select directory_path,directory_name from all_directori…

Redis之与SSM集成Spring注解式缓存

🎉🎉欢迎来到我的CSDN主页!🎉🎉 🏅我是君易--鑨,一个在CSDN分享笔记的博主。📚📚 🌟推荐给大家我的博客专栏《Redis实战开发》。🎯🎯 …

大数据学习之Spark性能优化

文章目录 Spark三种任务提交模式宽依赖和窄依赖StageSpark Job的三种提交模式 Shuffle机制分析未优化的Hash Based Shuffle优化后的Hash Based ShuffleSort-Based Shuffle Spark之checkpointcheckpoint概述checkpoint与持久化的区别checkPoint的使用checkpoint源码分析 Spark程…

vue前端实现多个url下载并合并为zip文件

一、安装 npm install jszip npm install file-saver 二、引入 import axios from axios import JSZip from "jszip"; import FileSaver from "file-saver"; 三、核心代码 videoData:[/video/26519f026fc012521605563015227403.mp4,/video/f7b9cdae14…

聊聊芯片超净间的颗粒(particle)

在芯片制造领域,颗粒的存在可能对生产过程产生巨大影响。其中,每个微小的颗粒,无论是来自人员、设备,还是自然环境,都有可能在制程中引发故障,从而对产品性能产生负面影响。这就是为什么在芯片厂中&#xf…

【日积月累】SpringBoot 通过注解@CacheConfig @Cacheable @CacheEvict @CachePut @Caching使用缓存

目录 1.前言2.引入依赖3.启动类加入注解EnableCaching4.常用注解4.1CacheConfig4.2Cacheable4.3CacheEvict4.4CachePut4.5Caching 5.总结6.参考 文章所属专区 日积月累 1.前言 Spring在3.1版本,就提供了一条基于注解的缓存策略,实际使用起来还是很丝滑…

【内功修炼】详解函数栈帧的创建和销毁

文章目录 1. 什么是函数栈帧2. 理解函数栈帧能解决什么问题呢?3. 函数栈帧的创建和销毁解析3.1 什么是栈?3.2 认识相关寄存器和汇编指令常见寄存器常用汇编指令 3.3 详解函数栈帧的创建和销毁3.3.1 函数的调用堆栈(main函数也是被其它函数调用…

手握“发展密钥”,TCL科技或迎价值重估?

在高度竞争且快速变化的泛半导体产业,每一次周期性或结构性的变化,都会对企业经营策略带来深远的影响。 2023年前三季度,泛半导体产业迎来结构性复苏。其中,主流显示领域供需关系趋向健康化,半导体显示行业整体上量价…