玻色量子“揭秘”之集合划分问题与QUBO建模

news2024/9/28 23:28:48

摘要:集合划分问题(Set Partitioning Problem)是一种组合优化问题,其中给定一个集合S和其若干个不同的子集S1,S2,...,Sn后,需要找到子集的有效组合,使得集合S的每个元素正好出现在一个子集中,并且所选择的子集的组合成本最小。这个问题可以被建模为一个0-1整数线性规划问题,其中引入了一个0-1变量向量,用于表示是否选择子集。通过对变量和约束条件的定义,可以找到最优的子集划分方案,以最小化成本。集合划分问题在学术研究中被广泛应用于制定调度计划、运输计划、生产计划等领域,以解决实际问题并优化资源利用。

集合划分问题是一个NP-hard问题。使用传统的计算机算法来解决这个问题时,所需的时间将随着问题规模变大呈指数级增长。因此,对于大规模的问题,需要使用更高效的算法、近似算法或其他有效的工具来解决。

在场景应用上,如许多组织中的人员调度和排班、计划时刻表,除了启发式算法外,近年来集合划分优化方法变得更加流行。由于在实际情况中生成的优化模型非常大,因此开发了多种计算技术来有效地制定解决方案。例如生成具有超过650个约束和200,000个二进制变量的集合划分模型,这些技术经常用于解决航空公司应用程序中产生的多种问题。

同时,它在分析多智能体系统中的合作方面也发挥着重要作用。例如为了优化社会福利,找到一个将主体划分为联盟(联盟结构)的方法,使分区中联盟的价值总和最大化。通过组建联盟,自主传感器可以改善对某些区域的监管;绿色能源发电机可以减少其预期能源输出的不确定性;认知无线电网络可以增加其吞吐量;买家可以通过批量采购获得更便宜的价格......

北京玻色量子科技有限公司在5月16日新品发布会上推出的100计算量子比特相干光量子计算机真机——“天工量子大脑”🔗,旨在快速、高效地求解NP-hard的Ising模型。集合划分问题可以转化为一个Ising/QUBO模型,“天工量子大脑”可以极大简化求解步骤并在毫秒级的时间里给出问题的全局最优解。

问题描述

集合划分问题是组合优化中的一类经典问题,该问题是指已知一个集合和其若干子集,如何选择子集,使原集合的每个元素出现且仅出现在一个子集中(这些子集恰好构成原集合的一个划分),并且所选择的子集的成本之和最小。

首先给出集合划分的整数规划模型

其中xj为0/1变量,表示是否选择子集j,cj是选择子集j的成本,aij系数表示元素i是否出现在子集j中。

建模思路

我们可以将该模型直接转化为如下QUBO形式。

我们用下面的例子来进一步分析。 

该案例可以转为如下数学模型:

s.t.

对于这样的问题,我们一般需要引入惩罚系数𝑃构建二次惩罚项并将其添加到原始目标函数中,以建立QUBO模型,则模型可以调整为式(5)。

我们取P=10,同时根据x2=x(x为0/1变量)的特性,我们可以化简式子得到式(6)

舍去常数项后,我们得到QUBO模型的矩阵表达:

其中Q矩阵为:

求解这个QUBO模型,我们可以得到最优解x1=x5=1,x2=x3=x4=x6=0,得到y=6。即选择子集1({1,4})和子集5({2,3}),集合划分最小成本为6。

问题拓展

集合划分问题是组合优化中的一个经典问题,和该问题类似的还包括集合覆盖问题(Set Covering Problem)和集合包装问题(Set Packing Problem)。需要区别的是,集合覆盖问题和集合包装问题的在式(1)中的约束为不等式约束,集合覆盖问题为“≥”,集合包装问题为“≤”。集合划分问题在数学、计算机科学、物理学等领域都有应用,其应用包括图像处理、数据挖掘、网络优化等。

未来,玻色量子将依托100量子比特相干光量子计算机真机——“天工量子大脑”,聚焦“实用化量子计算”,不断深入研究更多NP-Complete问题,拓展更多可实用化量子计算的真实应用场景。

玻色量子还将启动“燎原计划”开发者平台,并持续对外开放“天工量子大脑”的真机测试,热忱欢迎更多不同领域的研究伙伴前来了解相干量子计算的原理和能力,在此基础上展开共同研发,用量子计算去解决更多真实场景中的问题,让量子计算的超强算力能真正服务于各行各业,满足未来时代对于计算的需求。

[参考文献]

[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] Garfinkel R S, Nemhauser G L. The set-partitioning problem: set covering with equality constraints[J]. Operations Research, 1969, 17(5): 848-856.

[3] Lewis M, Kochenberger G, Alidaee B. A new modeling and solution approach for the set-partitioning problem[J]. Computers & Operations Research, 2008, 35(3): 807-813.

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

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

相关文章

高通Camera HAL3: CamX、Chi-CDK要点

目录 一、概述 二、目录 三、CamX组件之前的关系 一、概述 高通CamX架构是高通实现的相机HAL3架构,被各OEM厂商广泛采用。 二、目录 代码位于vendor/qcom/proprietary下: camx:通用功能性接口的代码实现集合chi-cdk:可定制化…

shell循环语句 for while until

目录 什么是循环语句 概念 for循环 格式 while循环 格式 until 循环 格式 实验 for (1)计算1到100的和 ​编辑 (2)100以内的偶数 (从0开始到100结束,每次加2步 打印的都是偶数) &…

ELK架构

经典的ELK 经典的ELK主要是由Filebeat Logstash Elasticsearch Kibana组成,如下图:(早期的ELK只有Logstash Elasticsearch Kibana) 此架构主要适用于数据量小的开发环境,存在数据丢失的危险。 整合消息队列Ngin…

Spring框架学习 -- 读取和存储Bean对象

目录 🚀🚀 回顾 getBean()方法的使用 根据name来获取对象 再谈getBean() (1) 配置扫描路径 (2) 添加注解 ① spring注解简介 ② 对类注解的使用 ③ 注解Bean对象的命名问题 ④ 方法加Bean注解 (3) Bean 注解的重命名 (4) 获取Bean对象 -- …

投标文件的注意事项

一、检查标书 1.1有时候标书需要从别的地方复制黏贴文件,记住复制内容可以,但是不要复制“落款和时间”的格式,落款和时间的格式借鉴你的招标文件中给响应文件格式的落款和时间,切记! 1.2检查标书是否有空页&#xf…

数据中心运维管理:从人工到智能需要走几步?

一切的变化来自于数据中心规模、复杂度、设备多样性的挑战,将运维平台的重要性推向历史高点。 此外,基于业务连续性方面的考虑,分布式数据中心成为越来越多客户的选择。 一、数据中心面临的挑战 运维管理分散,缺乏统一的管理 I…

Linux:设置Ubuntu的root用户密码

执行以下命令: 给root用户设置密码 sudo passwd 输入两次密码 切换root su root 退出root用户 exit

地埋式积水监测仪厂家直销推荐,致力于积水监测

地埋式积水监测仪是一种高科技设备,能够实时监测地面积水深度,并及时发出预警信息,有效避免因积水而产生的安全隐患。这种智能监测仪可以安装在城市道路、立交桥、地下车库等易积水地势较低的地方,以确保及时监测特殊地段的积水&a…

【Sorted Set】Redis常用数据类型: ZSet [使用手册]

个人简介:Java领域新星创作者;阿里云技术博主、星级博主、专家博主;正在Java学习的路上摸爬滚打,记录学习的过程~ 个人主页:.29.的博客 学习社区:进去逛一逛~ 目录 ⑤Redis Zset 操作命令汇总1. zadd 添加或…

APM工具skywalking部署

一 整体架构 整个架构,分成上、下、左、右四部分: 上部分 Agent :负责从应用中,收集链路信息,发送给 SkyWalking OAP 服务器。目前支持 SkyWalking、Zikpin、Jaeger 等提供的 Tracing 数据信息。而我们目前采用的是&…

css渐变详解(重复性线性渐变、径向渐变、重复性径向渐变的使用)

目录 线性渐变 重复性线性渐变 径向渐变 重复性径向渐变的使用 线性渐变 线性渐变是向下、向上、向左、向右、对角方向的颜色渐变。 其语法格式为: background-image: linear-gradient(side-or-corner|angle, linear-color-stop); 参数说明如下: …

mongo DB -- aggregate分组查询后字段展示

一、分组查询 在mongoDB中可以使用aggregate中的$group操作对集合中的文档进行分组,但是查询后的数据不显示其他字段,只显示分组字段 aggregate进行分组示例 db.collection.aggregate([{$group: {_id: "$field"}},]) 查询后显示 展开只显示两个字段 二、显示所有字段…

10.分组循环练习题

分组循环 https://leetcode.cn/problems/longest-even-odd-subarray-with-threshold/solutions/2528771/jiao-ni-yi-ci-xing-ba-dai-ma-xie-dui-on-zuspx/?envTypedaily-question&envId2023-11-16 分组循环 适用场景: 按照题目要求,数组会被分割成若…

微信运营神器:从群发到批量添加,让你的微信营销更轻松

在这个数字化时代,微信已经成为了我们生活中不可或缺的一部分。对于许多企业和个人来说,微信营销也是非常重要的一部分。但是,微信营销并不是一件容易的事情,需要花费大量的时间和精力。为了解决这个问题,今天我们将向…

邻趣连接力:如何无代码集成CRM、电商平台和营销系统,提升广告推广效率

连接即服务:邻趣无代码集成方法 传统的电商系统集成过程需要大量的时间和资源进行API开发,这不仅耗时耗力,还需要专业的技术团队支持。然而,邻趣通过提供一种无需API开发的连接方法,极大地简化了整个集成过程。商家只…

3D人脸扫描设备助力企业家数字人复刻,打破商业边界

京都薇薇推出数字人VN,以京都薇薇董事长为原型制作,赋能品牌直播、短片宣传、线上面诊等活动,进一步增强消费者对品牌的交互体验,把元宇宙与品牌相融合,推动品牌线上服务与线下服务实现数字一体化,打造一个…

【C/C++】排序算法代码实现

这里&#xff0c;汇总了常见的排序算法具体代码实现。使用C语言编写。 排序算法实现 插入排序冒泡排序选择排序快速排序希尔排序归并排序 插入排序 #include <stdio.h> #include <stdlib.h>void InsertSort(int arr[],int n){int i,j,temp;for(i 1;i < n;i){ …

捷诚管理信息系统 SQL注入漏洞

声明 本文仅用于技术交流&#xff0c;请勿用于非法用途 由于传播、利用此文所提供的信息而造成的任何直接或者间接的后果及损失&#xff0c;均由使用者本人负责&#xff0c;文章作者不为此承担任何责任。 一、产品介绍 捷诚管理信息系统是一款功能全面&#xff0c;可以支持自…

【独家发布】抖音半蓝V官方免费认证技术

先在巨量引擎升级dou账号 随后上传资料进行验证即可 逐步操作 全程实操保姆及教程 后续0粉点亮蓝v技术教程 来自&#xff1a;人类小徐-分享有价值的资源

构建个性化预约服务:预约上门服务系统源码解读与实战

随着社会的发展&#xff0c;预约上门服务系统在满足用户需求、提升服务效率方面发挥着越来越重要的作用。在本文中&#xff0c;我们将深入研究预约上门服务系统的源码&#xff0c;通过实际的技术代码示例&#xff0c;揭示系统内部的关键机制&#xff0c;以及如何在实际项目中应…