2026年IEEE TEVC,具有子结构保持双学习进化算法+带容量约束车辆路径问题

目录


1.摘要

针对带容量约束车辆路径问题难以保留优质路径片段的缺陷,本文提出双学习进化算法(BiLEA),其融合统计学习与进化学习,借助知识引导交叉和基于最优子结构的局部搜索策略,有效提取并保留最优子结构。

2.BiLEA算法

BiLEA以全局最优解更新状态为导向,动态交替统计学习(SL)与进化学习(EL)

阶段:连续 τ \tau τ代停滞时切入EL阶段,利用KGC与变异策略增强全局探索;解更新时切回SL阶段,基于精英概率模型采样加速收敛。

编解码方案

BiLEA算法交替使用矩阵与序列两种编码。矩阵编码作为核心二维表示,贯穿进化、局部搜索及评估全过程,其每一行对应单辆车的完整路径;序列编码则是仅供SL阶段概率模型采样的临时一维线性抽象,两者间的转换依赖车辆容量约束:矩阵按行拼接展平为序列,旨在提取优质个体的节点相对顺序供模型学习;序列则依容量测值截断并还原为矩阵。

种群初始化

初始种群将随机客户序列逐行分配,优先生成 m − 1 m-1 m−1条( m m m 为车辆总数) 满足容量约束 Q Q Q的可行路径。若剩余节点超载,则全部插入随机既有路径构成不可行个体,并对其目标函数施加惩罚项Penalty。

统计学习阶段

为增强算法在优质解区域的开发能力,BiLEA在统计学习(SL)阶段引入了概率模型学习机制 。选取当前种群中适应度最高的前 λ \lambda λ个精英个体组成集合 ψ \psi ψ,构建位置概率矩阵 P ∈ P\in P∈ R n × n \mathbb{R}^{n\times n} Rn×n,结合拉普拉斯平滑系数 ϵ \epsilon ϵ与统计频次 f i , j f_i,j fi,j,计算客户 i i i在给定 ψ \psi ψ时位于序列第 j j j位条件概率:

P i , j = f i , j + ϵ ∑ k = 1 n ( f k , j + ϵ ) P_{i,j}=\frac{f_{i,j}+\epsilon}{\sum_{k=1}^n(f_{k,j}+\epsilon)} Pi,j=∑k=1n(fk,j+ϵ)fi,j+ϵ

依据调率矩阵执行无放回的逐位采样以生成新个体序列,并将其还原为满足容量约束的矩阵编码。

进化学习阶段

进化学习但)阶段采用知识引导交叉(KGC)与变异策略增强全局探索。KGC依据被坏率计算需剔除节点数量:

b r o k e n n u m = N × B R broken_num=N\times BR brokennum=N×BR

算法将父代1中被移除的节点按父代2的位置特征重新插入,从而有效继承优质子结构,以概率 P m P_m Pm执行子路径内的节点交换变异。基于最优子结构局部搜索(OSLS)综合运用两点交换、 单点丢弃、路径反转操作进行深度精细寻优,并辅以不可行解修复机制严格保障车辆容量约束,全面提升解的质量。

3.结果展示

4.参考文献

Zeng W, Zhao H, Li J Y, et al. Bi-Learning Evolutionary Optimization with Substructure Preservation for the Capacitated Vehicle Routing ProblemJ. IEEE Transactions on Evolutionary Computation, 2026.

5.代码获取

xx

6.算法辅导·应用定制·读者交流

xx

相关推荐
Jerry3 小时前
LeetCode 160. 相交链表
算法
Jerry4 小时前
LeetCode 19. 删除链表的倒数第 N 个结点
算法
金銀銅鐵4 小时前
费马小定理
python·数学·算法
技术不好的崎鸣同学5 小时前
[ACTF2020 新生赛]Exec 思路及解法
算法·安全·web安全
Full Stack Developme6 小时前
Java LRU 与 LFU 算法及应用
java·开发语言·算法
Jerry8 小时前
LeetCode 707. 设计链表
算法
C语言小火车8 小时前
C++ 堆排序深度精讲:基于完全二叉树的选择排序进化,最坏情况 O(n log n) 的稳定王者
开发语言·c++·算法·排序算法·堆排序
weixin_400005608 小时前
Vision-Language-Action:LMDrive双损失函数训练模块与 LangAuto 基准评测框架
人工智能·深度学习·算法·机器学习·自动驾驶
kebidaixu8 小时前
两轮BMS AFE SH367306 I2C 读写时序
算法