news 2026/6/10 17:51:49

2024年ESWA SCI1区TOP,异构无人机配送问题的集成多目标优化方法,深度解析+性能实测

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
2024年ESWA SCI1区TOP,异构无人机配送问题的集成多目标优化方法,深度解析+性能实测

目录

    • 1.摘要
    • 2.问题描述
    • 3.提出的算法
    • 4.结果展示
    • 5.参考文献
    • 6.代码获取
    • 7.算法辅导·应用定制·读者交流

1.摘要

针对异构无人机末端配送路径优化问题,本文提出了一种基于投票机制的集成多目标遗传算法。通过改进聚类方法将客户划分为子区域,降低问题规模,并结合定制化遗传算子与投票式集成策略,提高解的收敛性与多样性。实验结果表明,该方法在合成与实际算例中均优于对比算法,验证了其在无人机末端配送中的有效性与实用价值。

2.问题描述

异构无人机末端配送问题(HDDPBO)由一架大型无人机与多架小型无人机协同完成:大型无人机负责运输并在各子区域释放小型无人机,小型无人机在子区域内完成多客户配送后前往自动化机场回收。大型无人机不直接服务客户,所有客户节点仅被小型无人机访问一次。系统假设路径无子回路,自动化机场仅作为临时回收与存储节点,其运营成本不予考虑。

在有向网络上定义母机与末端机协同路径,母机负责在各子区域释放末端机,末端机在簇内完成多客户配送并飞往自动化机场回收。模型以最大化客户满意度(基于软时间窗)和最小化总配送距离成本为优化目标,并通过路径唯一性、载重约束、时间连续性及无子回路等约束,确保配送过程的可行性与合理性。

3.提出的算法

基于投票机制的集成多目标遗传算法(VEMOGA)通过考虑无人机载重约束的改进聚类算法,将原问题划分为多个子问题以降低规模。VEMOGA引入集成多排序准则的投票式环境选择机制,在兼顾收敛性与多样性的同时筛选高质量帕累托前沿解。

客户聚类算法

为提升求解效率,本文提出了一种考虑末端无人机载重约束的改进客户聚类算法,该方法首先采用 K-means 算法生成初始客户聚类方案,以最小化簇内距离;随后根据末端无人机的最大载重对聚类结果进行调整:当某子区域内包裹总重量超过载重上限时,通过增加簇数或启发式调整客户分配,使每个簇满足载重约束。

染色体编码策略

本文针对 HDDPBO 设计了一种基于标签规则的染色体编码策略,该编码方式在单一染色体中同时表示母机路径与多架末端机路径,并通过节点重复规则隐式标识末端机的起飞点、配送节点及回收机场。解码过程中可依据重复节点准确划分母机与各末端机的独立航线,从而完整刻画协同配送过程。

后代生成算法

本文设计了一种由多点交叉与变异搜索组成的后代生成算法,采用锦标赛选择从父代种群中选取个体,并基于子区域结构实施多点交叉操作,每个子区域对应一个交叉点,从而高效重组母机与末端机的协同路径;引入多种变异算子对后代进行局部搜索以增强解的多样性。

为提升多目标优化效果,提出了一种基于投票机制的环境选择方法,通过集成多种排序策略并动态调整其权重,在兼顾收敛性与多样性的同时稳定筛选高质量帕累托解。

4.结果展示

5.参考文献

[1] Wen X, Wu G, Li S, et al. Ensemble multi-objective optimization approach for heterogeneous drone delivery problem[J]. Expert Systems with Applications, 2024, 249: 123472.

6.代码获取

xx

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

xx

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/10 1:25:26

C++与Java性能对比

1、非修改序列算法这些算法不会改变它们所操作的容器中的元素。1.1 find 和 find_iffind(begin, end, value):查找第一个等于 value 的元素,返回迭代器(未找到返回 end)。find_if(begin, end, predicate):查找第一个满…

作者头像 李华
网站建设 2026/6/1 17:59:45

嵌入式LinuxC++开发

1、非修改序列算法 这些算法不会改变它们所操作的容器中的元素。 1.1 find 和 find_if find(begin, end, value):查找第一个等于 value 的元素,返回迭代器(未找到返回 end)。find_if(begin, end, predicate):查找第…

作者头像 李华
网站建设 2026/6/10 14:48:23

C++ 预处理指令:#include、#define 与条件编译

C 预处理指令:#include、#define 与条件编译 在C程序的编译过程中,有一个容易被忽略但至关重要的环节——预处理阶段。它发生在编译器对源代码进行正式编译之前,由预处理程序(预处理器)对源代码中的“预处理指令”进行…

作者头像 李华
网站建设 2026/6/9 18:46:57

《P4587 [FJOI2016] 神秘数》

题目描述一个可重复数字集合 S 的神秘数定义为最小的不能被 S 的子集的和表示的正整数。例如 S{1,1,1,4,13},有:11,211,3111,44,541,6411,74111。8 无法表示为集合 S 的子集的和&…

作者头像 李华
网站建设 2026/6/10 13:07:05

系统软件领域中的BSS段

系统软件领域中的BSS段 文章目录系统软件领域中的BSS段一、基本概念二、主要特点三、设计原理与优势四、内存布局示例五、实际操作与验证六、与数据段的区别七、实际应用场景八、注意事项九、相关技术命令一、基本概念 BSS(Block Started by Symbol) 是…

作者头像 李华