1-基于强化学习的图Transformer算法求解车辆路径问题(2023)(完)


Abstract

车辆路径问题(VRP)是经典的组合优化问题之一,需要在一些约束条件下,以最小的总成本访问客户。最近,VRP通过使用深度强化学习(DRL)来解决,将节点集视为图结构。现有的基于Transformer的DRL解仅依赖于节点信息,忽略了图中节点之间边的信息在图结构中的作用。在本文中,我们提出了一种基于注意力的端到端DRL模型来解决VRP,该模型嵌入了节点之间的边信息,以进行丰富的图表示学习。我们使用了带有嵌入边信息多头注意力(EEMHA)层的基于Transformer的编码器-解码器框架。基于EEMHA的编码器学习图的底层结构,并通过合并节点和边信息生成表达力强的图拓扑表示。我们使用近端策略优化(PPO)和一些代码级优化技术训练我们的模型。我们在随机生成的实例和从道路网络生成的真实世界数据上进行了实验,以验证我们提出的模型的性能。所有实验结果表明,我们的模型比现有的DRL方法和大多数传统启发式在从随机实例训练到不同问题尺寸的真实世界实例测试的泛化能力上表现更好。

© 2023 日本电气工程师学会。由Wiley Periodicals LLC出版。

### 使用 Gurobi 进行电动汽车路径规划 (EVRP)求解方法 #### 建立混合整数线性规划 (MIP) 模型 为了使用 Gurobi 解决 EVRP 问题,可以构建一个 MIP 模型。此模型通常包括决策变量、目标函数和约束条件。 - **决策变量** - \( x_{ijk} \): 如果车辆 k 从节点 i 到达 j,则取值为 1;否则为 0。 - \( y_i \): 车辆访问客户 i 后剩余电量。 - **目标函数**: 最小化总行驶成本或时间。 \[ \min \sum_k\sum_i\sum_j c_{ij}x_{ijk} \] 其中 \(c_{ij}\) 表示从站点 i 至 j 的距离或者费用[^1]。 - **约束条件**: - 流量平衡约束:确保每辆车进出各点次数相等; - 容量限制:保证单次行程不超过载重上限; - 续航里程约束:确保电动车在整个旅程中有足够的电力支持其运行而不必中途充电; - 时间窗约束(如果适用):规定到达某些地点的时间范围。 ```python from gurobipy import Model, GRB def evrp_model(data): m = Model('evrp') # Define variables arcs = [(i,j,k) for k in data['vehicles'] for i in data['nodes'] for j in data['nodes']] x = m.addVars(arcs, vtype=GRB.BINARY, name='x') # Binary decision variable y = m.addVars(data['customers'], lb=0, ub=data['battery_capacity'], name="y") # Remaining battery level after visiting customer # Objective function: minimize total travel cost m.setObjective(sum([data['cost'][arc]*x[arc] for arc in arcs]), GRB.MINIMIZE) # Add constraints here... return m ``` #### 实施 ALNS 或其他启发式算法 除了直接应用精确算法外,还可以结合高级局部搜索(ALNS)或其他元启发式技术来提高求解效率并获得更优的结果。这些方法可以在初始解决方案基础上逐步改进直至达到满意水平。 对于复杂场景下的大规模实例,推荐先利用简单规则快速生成初步方案作为起点,再通过反复调整路线结构实现全局最优配置。 #### 结合强化学习神经网络 近年来,随着机器学习特别是深度学习的发展,出现了许多新颖有效的求解思路。例如,基于强化学习(RL) Transformer 的组合框架已被证明能够高效处理各种类型的 VRP 变体 [^2] 。这类方法不仅具备强大的泛化能力而且易于适应不同环境变化的需求。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

太极生两鱼

要天天开心哦!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值