位置: IT常识 - 正文

量子退火算法入门(4):旅行商问题的QUBO建模「上篇」(量子退火算法入门6)

编辑:rootadmin
量子退火算法入门(4):旅行商问题的QUBO建模「上篇」 文章目录一、旅行商问题(Traveling Saleman Problem,TSP)1.旅行商问题的定义2.旅行商问题求解的计算量二、TSP问题的建模1.总体Hamilton量HHH2.约束条件3.目标函数总结一、旅行商问题(Traveling Saleman Problem,TSP)1.旅行商问题的定义

推荐整理分享量子退火算法入门(4):旅行商问题的QUBO建模「上篇」(量子退火算法入门6),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:量子点退火,量子退火算法入门(2),量子退火计算机,量子退火算法入门6,量子退火算法是什么意思,量子退火算法是什么意思,量子退火算法是什么意思,量子退火算法入门,内容如对您有帮助,希望把文章链接给更多的朋友!

旅行商问题,是一个经典的组合优化问题,而且是著名NP问题之一。如下图所示 ,可以想象,有A,B,C,D,E 五个地点,我们想找到一条路径,从地点A出发,经过剩余四个地点,然后回到地点A,从所有可能路径中找到距离最短的一条路径。本章借用了文献[*1]的图表。

2.旅行商问题求解的计算量

最简单的求解方式就是,如下图所示把所有的求解路径全部计算一遍,然后算出每条路径的长度,求出最短路径。

如下图所示,所有的枚举路径总共有24条,我们可以很快找到最短路径。 如果下面A~Z的情况,这个计算量,日本的第一超级计算机富岳,每秒的计算速度约为44.2京次(京是10的16次方,即万兆)。一年的秒数是3600×24×365=3153.6万秒。有兴趣的可以计算一下要算多少年。

二、TSP问题的建模1.总体Hamilton量HHH

该问题输入有两个,这里借用了文章[*2]的图表:

地点数目:NNN地点之间的距离:li,j(i=1,・・・,N)l_{i,j}(i = 1,・・・, N)li,j​(i=1,・・・,N)

约束条件:

每个时间步只能访问一个地点。每个地点都访问过一次。量子退火算法入门(4):旅行商问题的QUBO建模「上篇」(量子退火算法入门6)

整体的Hamilton量HHH如下:

目标变量xi,jx_{i,j}xi,j​的两个下标的意思如下图👇所示,绿色的圆圈代表在某个时间步访问了某个第地点,所以我们的目标变量就可以用0或1表示了,0代表未访问,1代表访问。

2.约束条件

约束条件比较简单,先从约束条件解释,这里有2个约束可以解释如下:

每个时间步只能访问一个地点。 => 上图矩阵里的每列元素之和必须为1。也就是每列中只有一个元素为1。每个地点都访问过一次。 => 上图矩阵里的每行元素之和必须为1。也就是每行中只有一个元素为1。

具体表达式如下:

3.目标函数

解析:

xi,txj,t+1x_{i,t}x_{j,t+1}xi,t​xj,t+1​: 这里的目标函数,最难理解的是xi,txj,t+1x_{i,t}x_{j,t+1}xi,t​xj,t+1​。可以理解为【ttt时间步访问地点iii,t+1t+1t+1时间步访问地点jjj时,xi,txj,t+1x_{i,t}x_{j,t+1}xi,t​xj,t+1​=1;其他的情况,xi,txj,t+1x_{i,t}x_{j,t+1}xi,t​xj,t+1​=0】。

∑i=1N∑j=1N∑t=1N\sum_{i=1}^N \sum_{j=1}^N \sum_{t=1}^N∑i=1N​∑j=1N​∑t=1N​: 该表达式代表了,【ttt时间步访问地点iii,t+1t+1t+1时间步访问地点jjj时,地点iii和jjj之间的距离ℓi,j\ell_{i, j}ℓi,j​之和】。所以,这个目标函数就代表了,从初始地点,经过所有地点后,回到初始地点的距离总和。

总结

旅行商问题,是比较有实际意义的应用问题,大家能体会到怎么把现实问题抽象出binary变量,然后怎么把制约条件表达出来。因为,上面的建模有两种编程实现方式,为了控制篇幅,下一篇献上Python代码。

在阅读参考文献时,经常会发现资料里的一些小错误,大家以后阅读资料时也要小心啊。

参考文献: [*1] : https://www.nttdata.com/jp/ja/-/media/nttdatajapan/files/news/services_info/2021/012800/012800-01.pdf [*2] : https://qiita.com/yufuji25/items/0425567b800443a679f7
本文链接地址:https://www.jiuchutong.com/zhishi/299741.html 转载请保留说明!

上一篇:ajax和axios有什么区别?(ajax和axios区别)

下一篇:通过ChatGPT实现的ChatPDF,简单的应用落地,让你的文档变成一个智能助手,通过对话的方式快速学习文档内容

  • 税收负担影响企业的利润吗
  • 金蝶kis专业版的优缺点
  • 房地产开发企业销售自行开发的房地产项目
  • 库存盘盈盘亏要调整吗
  • 法人股东分红要交企业所得税吗
  • 个税代扣代缴手续费返还 申请
  • 月末 存款
  • 计提社保贷方科目是什么
  • 企业购买房产每年需要交什么税
  • 个人出口货物到国外
  • 外贸公司代理出口退税怎么入账
  • 无法支付的应付款怎么处理
  • 库存商品过期报废需要什么附件
  • 出口抵减内销产品
  • 以前年度损益调整属于哪类科目
  • 发行债券到期一次还本付息和按月付息哪个发行价格低
  • 付稿费会计分录
  • 委托贷款对方单位不还
  • 购买的认证标志入什么费用?
  • 公司员工租金取得专用发票能否抵扣?
  • 专用发票第一次怎么开
  • 进口设备不需要交关税吗
  • 统借统贷合同需要交印花税吗
  • 供应商质量扣款通知单
  • 自然人独资企业交什么税
  • 应付职工薪酬账户结构
  • php数组函数输出《咏雪》里有多少"片"字
  • 电脑取消共享文件夹
  • 商业银行的票据贴现业务与票据抵押贷款业务的区别
  • php 字符串函数
  • php数组函数 菜鸟
  • 手机短信是哪一年开始的
  • php 智能家居
  • php 链式调用
  • 城镇土地使用税纳税义务发生时间
  • php中各种定义变量的值
  • 彩石湖公园门票
  • 独立核算分公司和非独立核算分公司
  • 支付属于借方吗?
  • Win11 Build 23435 预览版今日发布: 文件管理器引入图库功能
  • ChatGPT 中文调教指南。各种场景使用指南。学习怎么让它听你的话
  • java实现电子发票
  • ie11已经为了帮助保护您的计算机而关闭此网页
  • 新开办公司如何办理金税盘
  • 制造费用月末一般有余额吗
  • 税金及附加算什么
  • 残疾人就业保障金会计分录怎么做
  • 安全宣传标牌
  • db2 connect命令
  • 购入商品再卖出
  • 供应商费用是什么
  • 对公账户收钱要手续费吗
  • 自行申报啥意思
  • 外单位替本单位缴纳社保
  • 销售商品的运费的税费计入进项税额
  • 基本建设费用的组成
  • 信用减值损失和公允价值变动的区别
  • 补缴的增值税可以抵扣吗
  • 暂估的费用次年调增怎么做会计分录
  • 园林土方施工有哪些分项工程
  • ubuntu zed
  • gentoo安装教程2021
  • ubuntu无法解压tar.gz
  • linuxsleep函数
  • win8 开机
  • win10怎么设置开机启动软件
  • win7玩穿越火线电脑应该怎么设置
  • 红帽企业版更新了吗
  • npfmntor.exe - npfmntor是什么进程 有什么用
  • linux可视化界面怎么输入代码
  • 如何消除手机自动出现的广告
  • python提取xml的值
  • Re: Latest Version: 3.7.9 (January 18th, 2015)
  • 如何保养铜香炉
  • android datagridview
  • python ping检测
  • python写监控脚本
  • 乌鲁木齐市公立幼儿园有哪些
  • 通州税务短信
  • 开票系统ukey抄报税
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设