图神经网络+强化学习

news2025/1/13 15:48:29

访问【WRITE-BUG数字空间】_[内附完整源码和文档]

车辆路径规划问题(VRP)是运筹优化领域最经典的优化问题之一。在此问题中,有若干个客户对某种货物有一定量的需求,车辆可以从仓库取货之后配送到客户手中。客户点与仓库点组成了一个配送网络,车辆可以在此网络中移动从而完成配送任务。在求解此问题过程中,需要优化的决策变量为每个客户的配送任务应该分配到哪一辆车上,以及每辆车完成客户配送任务的先后顺序,优化目标为最小化车辆总行驶距离和使用的车辆数。

一、实验要求
复现以下论文的方法和结果:
Duan,L., Zhan,Y., Hu,H., Gong,Y., Wei,J., Zhang,X., Xu,Y.: Efficiently solving the practical vehicle routing problem: A novel joint learning approach. In: KDD. pp.3054–3063 (2020)
1.为了节省时间,训练用 10 个(或以上)的城市规模的算例。测试算例用 20 个(或者以上)规模。
2.显示出算法训练收敛过程,可视化最后的解。可能的情况下,对比 OR-Tools 的求解效果(后面详细描述)。
二、导言
车辆路径规划问题(VRP)是运筹优化领域最经典的优化问题之一。在此问题中,有若干个客户对某种货物有一定量的需求,车辆可以从仓库取货之后配送到客户手中。客户点与仓库点组成了一个配送网络,车辆可以在此网络中移动从而完成配送任务。在求解此问题过程中,需要优化的决策变量为每个客户的配送任务应该分配到哪一辆车上,以及每辆车完成客户配送任务的先后顺序,优化目标为最小化车辆总行驶距离和使用的车辆数。

故核心优化的目标为车辆总的固定成本 + 运输成本,VRP 问题最简单的形式就是使车辆具有容量的约束(装载量有限)。每辆车从给定的节点出发和返回,优化的目标就是车辆相关费用和配送距离的函数。目前的研究工作分为两个流派:一种是通过运筹学,另一种是深度学习。运筹学的方法是把 VRP 定义为数学优化问题,通过精确或启发式算法达到最优或者近似最优解,但是真实场景的数据量下需要花费的时间很多。而对于深度学习,之前的研究是在人工生成的数据集上,忽略了真实世界的运输网络。在真实 VRP 问题数据集上,没有一个方法能比得上 OR-tools,于是便想着提出一种新的方法。

三、算法流程
这里主要是将论文中的算法结合我自己的理解再描述一遍
Problem Setup: Graph Optimization Perspective
首先从图优化的视角来形式化的描述以下 VRP 问题。 一个 VRP 实例,可以看做一张图 G = ( V , E ) G=(V, E) G=(V,E) ,其中顶点集合: V = 0 , … , n V={0, \ldots, n} V=0,,n, 其中 i = 0 i=0 i=0 表示 depot, i = 1 , … , n i=1, \ldots, n i=1,,n 表示客户,边集合: KaTeX parse error: Expected '}', got '\right' at position 22: …E=\left{e_{i j}\̲r̲i̲g̲h̲t̲}, i, j \in V

depot 节点只有坐标特征 x 0 c x_{0}^{c} x0c ,而其他客户节点有坐标特征和需求量特征,因此是一个二维特征向量 KaTeX parse error: Expected '}', got '\right' at position 33: …^{c}, x_{i}^{d}\̲r̲i̲g̲h̲t̲},其中$ x_{i}^{c}, x_{i}^{d}$ 分别是坐标特征和需求量特征。每条边关联两个节点之间的距离为 m i j m_{i j} mij

假设有: VRP 是生成一个 tour 集合,每个 tour 代表了一个车辆的路径,从节点 0 出发,在节点 0 结束,每个客户被服务一次且仅一次,每辆车的负载不超过它本身的容量,目标是最小化总体花费。

那么,模型的目标是生成一个客户的序列: π = ( π 1 , π 2 , π 3 , … , π T ) \pi=\left(\pi_{1}, \pi_{2}, \pi_{3}, \ldots, \pi_{T}\right) π=(π1,π2,π3,,πT) 其中, π t ∈ 0 , 1 , … , n \pi_{t} \in{0,1, \ldots, n} πt0,1,,n, 并且 π 0 \pi_{0} π0 可以出现多次,其他节点只能出现一次。因此,每两个 π 0 \pi_{0} π0 之间的序列就是一辆车的路线。在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

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

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

相关文章

DSP_TMS320F28377D_一键烧写多核程序

以前在开发和调试TMS320F28377D的双核程序的时候,总是在烧写CPU1程序时,自动把CPU2的程序也烧写了,但往CPU2里面烧写的是CPU1的程序,烧写完进入在线仿真模式的时候,还需要手动重新选择CPU2要烧写的程序,重新…

谈谈Netty线程模型

大家好,我是易安! Netty是一个高性能网络应用框架,应用非常普遍,目前在Java领域里,Netty基本上成为网络程序的标配了。Netty框架功能丰富,也非常复杂,今天我们主要分析Netty框架中的线程模型&am…

【数据分享】2014-2023年全国监测站点的逐年空气质量数据(15个指标\shp\excel格式)

空气质量的好坏反映了空气的污染程度,在各项涉及城市环境的研究中,空气质量都是一个十分重要的指标。空气质量是依据空气中污染物浓度的高低来判断的。 我们发现学者王晓磊在自己的主页里面分享了2014年5月以来的全国范围的到站点的逐时空气质量数据&am…

网络安全--红队资源大合集

红队攻击的生命周期,整个生命周期包括: 信息收集、攻击尝试获得权限、持久性控制、权限提升、网络信息收集、横向移动、数据分析(在这个基础上再做持久化控制)、在所有攻击结束之后清理并退出战场。 重点提醒:本项目…

JVM内存区域(一)

运行时数据区域 ** 线程私有的: 程序计数器虚拟机栈本地方法栈线程共享的: 线程共享的: 堆方法区直接内存 (非运行时数据区的一部分) 程序计数器 程序计数器是一块较小的内存空间,可以看作是当前线程所执行的字节码的行号指示…

15-02 身份安全

身份安全——认证 目录管理系统 身份认证 你知道什么:密码、PIN、密码短语你拥有什么:硬令牌、智能卡、USB卡、手机APP指纹、声纹、脸纹、虹膜 授权和访问控制 访问控制 访问控制原则 最小特权:安全管理员禁止访问任何资源默认拒绝&…

【005】C++数据类型之实型(浮点数)、有符号数以及无符号数

C数据类型之实型、有符号数以及无符号数 引言一、实型(浮点数)1.1、实型常量1.2、实型变量 二、有符号数三、无符号数总结 引言 💡 作者简介:专注于C/C高性能程序设计和开发,理论与代码实践结合,让世界没有…

Eolink 出席 QECon 深圳站,共同探讨软件质量和效能发展

5月12日至13日,由 QECon 组委会和深圳市软件行业协会联合主办的「QECon全球软件质量&效能大会」成功召开,作为国内 API 全生命周期解决方案的领军者,Eolink 受邀参加此次大会。 大会中,Eolink SaaS 产品负责人崔嘉杰、高级售…

《思考致富》不应该指望不经历“暂时的失败”便能发财

目录 作者简介 经典摘录 机遇有个狡猾的习惯,喜欢从后门悄悄溜进来,往往还喜欢以灾难或暂时失败的方式乔装露面 离金矿仅有三英尺远 欲望:成就一切的起点(通往致富之路的第一步) 信念:在脑海里目睹并坚…

网络安全萌新先学什么?后学什么?

在选择网络安全行业之前,我们要弄清楚,要问一下自己的内心,自己为什么要进入这个行业?每个人的答案肯定是不一样的。 肯定有人会说:这个行业比很多其他行业更赚钱 有人会说:对网络安全技术非常感兴趣 有人会…

Web3和低代码开发:下一代Web应用开发的合作与创新

Web3作为区块链技术的一部分,被认为是下一代互联网技术的主要方向。与此同时,低代码开发作为快捷而高效的软件创建工具,也一直得到广泛关注。那么,Web3和低代码开发如何合作,激发出下一代Web应用开发的新生力量呢&…

前端性能优化:如何提高页面加载速度和用户体验

第一章:介绍 当今互联网时代,网站的性能对于用户体验至关重要。一个快速加载的网页不仅能提高用户的满意度,还能增加页面的转化率。而在前端开发中,性能优化是一个永恒的话题。本篇博客将为大家分享一些关于前端性能优化的技巧和…

红色元宇宙数字展厅:三维构建身临其境的红色历史之旅

导语:红色,是中国革命的象征,是我们历史中最为壮丽的篇章之一。然而,随着时间的推移,许多珍贵的红色记忆逐渐模糊,年轻一代对于红色历史的认知也渐行渐远。 红色元宇宙数字展厅,作为一种全新的互…

2023年软件测试前景?自动化测试的未来?我的测试之路高歌猛进...

目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 Python自动化测试&…

网络计算模式复习(五)

结构化P2P&#xff1a;直接根据查询内容的关键字定位其索引的存放节点 DHT算法 将内容索引抽象为<K,V>对 K是内容关键字的Hash摘要&#xff1a;KHash(key) V是存放内容的实际位置&#xff0c;例如节点IP地址等所有的<K,V>对组成一张大的Hash表&#xff0c;该表存…

异地远程连接威联通NAS,无需公网IP

文章目录 前言1. 威联通安装cpolar内网穿透2. 内网穿透2.1 创建隧道2.2 测试公网远程访问 3. 配置固定二级子域名3.1 保留二级子域名3.2 配置二级子域名 4. 使用固定二级子域名远程访问 转载自远程内网穿透的文章&#xff1a;无需公网IP&#xff0c;在外远程访问NAS威联通QNAP【…

当程序员这么多年,为什么我还只会复制粘贴?

如果问程序员&#xff1a;最熟练的快捷键是哪两个&#xff1f; 程序员&#xff08;脱口而出&#xff09;&#xff1a;ctrlc 和 ctrlv &#xff01;即复制和粘贴。 对于为数不少的程序员来说&#xff1a;天下代码不过一个“抄”字&#xff0c;复制和粘贴就是他们创造伟大产品的…

内网渗透—代理Socks协议、路由不出网、后渗透通讯、CS-MSF控制上线

内网渗透—代理Socks协议、路由不出网、后渗透通讯、CS-MSF控制上线 1. 前言1.1. 实验背景1.2. 环境准备1.2.1. 环境介绍1.2.2. 环境测试1.2.2.1. 攻击机测试1.2.2.2. Windows20081.2.2.3. Windows20031.2.2.4. Windows20121.2.2.5. Windows7 1.3. 技术介绍1.3.1. 隧道技术1.3.…

六轴传感器基础知识学习:MPU6050特性,四元数,姿态解算,卡尔曼滤波

实际上&#xff0c;只要说到多少轴的传感器一般是就是指加速度传感器&#xff08;即加速计&#xff09;、角速度传感器&#xff08;即陀螺仪&#xff09;、磁感应传感器&#xff08;即电子罗盘&#xff09;。这三类传感器测量的数据在空间坐标系中都可以被分解为X,Y,Z三个方向轴…

第一章 线性模型

目录 一、线性模型基本概念二、梯度下降三、反向传播四、使用 Pytorch 实现线性模型 一、线性模型基本概念 线性模型&#xff1a; y ^ x ∗ ω b \hat{y} x * \omega b y^​x∗ωb 简化版本&#xff0c;将 b b b 加入到权重矩阵 ω \omega ω 中&#xff1a; y ^ x ∗…