用自适应K-Means的差分进化算法解决有容量的电动汽车(EV)路由问题(2023)

Solving the Capacitated Electric Vehicle (EV) Routing Problem by The Differential Evolutionary Algorithm with Adaptive K-Means

摘要

本文旨在解决限制电能和工作量的路由问题,称为电容式电动汽车路由问题(CEVRP)。这个问题的目的是寻找含有有限电能和货物的车辆的最佳路线。所提出的模型是基于差分进化(DE)算法和自适应kmean算法的概念,此外,模糊技术也被应用,目的是为了达到最佳的整体性能。为了提高DE的效率,我们采用了几个方面,如:(1)采用自适应K-means算法来获得搜索最佳初始解的能力;(2)将模糊技术确定为决策技术,决定一个客户何时处于几个集群之间;(3)引入局部和全局交换方法来提高开发和探索能力。对所提出的模型进行了评估,并在与下限的平均偏差百分比方面与最先进的算法进行了比较。

1 引言

目前,交通是一个极具竞争力的企业。运输业务的目标总是尽快以正确的数量向客户交付货物。此外,运输被认为是商业的主要成本。当旅行成本最小化时,主要成本总是减少的。因此,有效的交付路由是重要的关键。在研究领域,车辆路由是非确定性多项式时间硬度(NP-hard)优化领域的一个重要问题,称为车辆路由问题(VRP)。如今,电动汽车的普及率正在上升,其理由是减少气体、能源消耗和空气污染排放。因此,有容量的电动汽车路由问题(CEVRP)是最重要和最具挑战性的问题。CEVRP的目标是在必须交付的电能容量和承载容量下,使总路线成本最小化。微分进化算法(DE)已被证明是解决组合优化问题的最佳进化算法之一。然而,许多步骤需要适当改进,以解决CEVRP的最佳表现。为了解决CEVRP,需要做三项活动,即。1)将客户与电动汽车匹配。2)监测以防止电动汽车过载;3)通过路线车辆充电保持电能。

近年来,一些研究人员使用各种元启发式算法,如遗传算法、蚁群优化、粒子群优化和模拟退火算法来求解CEVRP。Ya Hui Jia等人(2021)[1]利用蚁群优化(ACO)算法和一种称为移除启发式(RH)的新启发式方法来求解CEVRP。在他们的论文中,生成了可行解,并使用OS-MMAS算法来管理容量可行路线。在此过程中,评估目标值以更新全局最佳解决方案。然后采用RH将充电站插入到可行的解决方案中。在他们的实验中,采用了最新提出的IEEE WCCI2020 EVRP竞赛基准。结果表明,在大规模实例中是有效的。Burak Urazel和Kemal Keskin。(2021)[2]通过应用遗传算法和模拟退火算法相结合的混合算法,求解具有时间窗的电动汽车路径问题。在本文中,使用遗传算法生成可行的初始解,然后将模拟退火算法提供给初始解。在评估步骤中,他们测试了一个由25名拥有2个充电站的客户组成的车辆路线问题。测试结果表明,他们提出的算法在最佳解和计算时间方面都优于遗传算法。王玲和陆佳文(2019)[3]提出了一种由两种搜索算子和竞争机制组成的模因算法来解决有容量的绿色车辆路径问题。在它们的初始化步骤中,解决方案是基于kNN设计的。然后直接在初始路线上执行局部强化。为了产生更好的解决方案,利用竞争性搜索。然后使用交叉来共享有益信息。比较结果表明,它们的算法在求解CGVRP问题上比现有的方法更有效。

本文旨在开发一种基于差分进化算法的混合算法来求解CEVRP。在我们的框架中,使用具有模糊性的自适应K-means来创建高质量的种群。为了提高效率,提出了一种新的突变技术,称为L-swap和G-swap。最后,应用置换交叉运算。

本文的其余部分组织如下:在第二部分中,简要讨论了背景理论。在第三部分中,给出了所提出算法的步骤。第四部分给出了实验的细节,第五部分给出了算法的结论。


二 背景理论

A有电容的电动汽车路由问题

有容量的电动汽车路由问题(CEVRP)是车辆路由问题(VRP)之一,它试图找到最佳路由,在电能(电池)和产品携带的容量限制下,使总行驶距离最小。每辆电动汽车(EV)都有一个有限的工作量,而且每辆电动汽车的能量都在继续减少。因此,电动车可能在充电站被多次充电,也可能根本不充电。CEVRP的目标由公式计算。(1),分为以下两部分

(1) 安排一组R客户C = {C1, C2, ...,CR}在一组K电动汽车V = {V1, V2, ...,根据公式(2).中表示的容量限制,VK}。

(2) 按照公式3中确定电动车充电站的路线。

其中,{Dist}是最小旅行距离,CustRoute是两个客户之间的欧氏距离,K是车辆的数量,R是车辆的客户数量K,ChargeDist是客户和充电站之间的欧氏距离,C和ST是客户和电动车充电站的位置

图1显示了CEVRP的例子。

这个例子的路线如下。

电动汽车1路线。Depot – Customer1 – Customer3 – Charge Station1 – Customer5 – Depot.

电动汽车2号路线: Depot – Customer4 – Customer6 –Customer2 – Depot.

这个例子由两辆有六个客户的电动车和两个充电站组成。所有的电动车都需要在仓库站启动和返回。电动车在每个客户处只访问一次,行程周围的货物容量等于500。只要电池的容量低于能量容量,电动车就需要给它充电。

B.差分进化算法(DE)

微分进化算法属于Storn和Price[4]提出的一类有效的进化算法,适用于求解离散和连续优化问题。对于DE的离散功能,通过更改或交换现有组件来创建新的解决方案。手头最适合的候选解决方案将继续存在。原始DE的算法如下所示:

(1) 初始化阶段:DE从搜索空间内随机初始化的总体N开始。

(2) 突变阶段:是一种在周围区域进行搜索机制初始化的种群。通过使用初始化集中现有成员的组件来构建试验向量。

(3) 重组阶段:是被称为交叉操作的扩展搜索机制。交叉算子有效地搅乱信息,并能够搜索更好的解空间[5]。(4) 选择阶段:根据突变和重组阶段,对新的改进方案进行分类

他们的适应度值。选择最佳N个解作为下一次迭代的初始化总体。

重复这(2)-(4),直到达到预定次数的迭代或者满足收敛标准。

III、 提出了一种算法

本节中提出的具有自适应Kmeans的差分进化算法在几个方面比原始版本的DE有所改进。所提出的算法分为以下五个阶段。

A.解决方案编码在文本中首次使用缩写词和首字母缩写词时,即使在抽象中定义了它们之后,也要定义它们。不必定义IEEE、SI、MKS、CGS、sc、dc和rms等缩写。除非不可避免,否则不要在标题或标题中使用缩写。

这个问题的解决方案分为两个部分。第一部分介绍了需要访问的客户。第二部分为充电站。图2显示了图1中路由的解决方案编码。

B. 初始化

根据自适应K-means方法,通过随机生成N个可行的解决方案来创建初始群体。自适应k-means过程开始时,将电动车的数量定义为K参数

带有模糊逻辑方法的自适应K-means的主要思想是通过考虑三种条件的比例将客户分配到适当的电动车。1)电动车负载(CO),2)客户与EVk的持续时间,(Dist)和3)电动车的剩余电能(EC),如公式4所示。

执行LogicEV时,根据三角隶属函数计算隶属度。客户i被分配给具有最大隶属度值的EV k。为了评估初始总体的质量,计算等式(5)中的适应度值。在生成所有初始总体之后,执行下一阶段。

当满足两个标准时,采用自适应K-means:

(1) 客户i和EV 1的质心之间的距离等于客户i和EV2的质心之间距离。

(2) 客户i与所有车辆之间的距离的平均差小于所有客户与仓库的平均欧几里得距离。

C.突变操作将突变操作应用于每个初始群体。突变过程用于在初始种群的周围区域探索新的前景解决方案。这项研究提出了一种新的技术,称为L交换和G交换。L-wap包含两种策略:交换和直接传输。

突变过程描述如下:

(1) 将初始人群随机分为两组。

(2) 在第一组中:对于成员溶液的每个基因,当随机值小于突变概率(Pm)时,使用Lswap。当完成L-Swap时,将复制一组新的解决方案,称为promise解决方案,如图3所示。

(3) 第二组:执行G交换技术。对于成员解的每个基因,两个距离最大的城市随机交换。

当promise解决方案已经完全构建时,评估所有解决方案的适应度值。然后,将所有新的承诺解决方案和初始总体组合起来,然后称为候选解决方案。

D.交叉操作

当交叉过程开始时,定义交叉概率(PC)。轮盘选择用于选择用于交叉操作的解对。对于每个配对,0到1之间的数字是随机生成的。当随机值小于PC时,对上述配对执行排列交叉,并创建两个子代解决方案

E.最后阶段

在最后一步,检查停止标准。如果没有达到最大的迭代次数,则根据候选方案和子代方案的适配度进行排序。top-N解决方案被提升为下一次迭代的初始群体。从上述组合列表中选择当前迭代的最佳解决方案。


IV、 试验结果

对于实验,用于测试本研究性能的基准数据集来自IEEE WCCI-2020电动汽车路由问题进化计算竞赛的基准集。在本研究中,测试集由7个小规模标准数据集组成:En22k4–En101k8。将所提出的算法的结果与其他元启发式算法进行了比较。比较是根据获得最优解的能力来进行的。

表1示出了所提出的算法与两种最先进的算法的比较结果。标有BKS的柱提供了最为人所知的解决方案。标有“平均偏差BKS(%)”的行显示与BKS的平均偏差百分比

对于En22k4包含22个拥有4辆电动汽车的客户,En23k3代表23个拥有3辆电动汽车和其他数据集的客户。

在比较的算法中,En22k4、En23k3、En30k3和En51k5三种算法并列第一。对于En33k4和En76k7,所提出的算法和BACO获得了最好的结果。对于En101k8,所提出的算法优于其他比较算法。所提出的算法与BKS的平均偏差百分比略好于比较算法。


V.结论

本文提出了一种求解有电容电动汽车路径问题的改进算法。该算法基于差分进化算法、k-均值算法和模糊逻辑的概念。实验结果表明,该算法能够很好地找到所有七个基准的最优或接近最优解

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

《 前端挑战与未来:如何看待“前端已死”》

在技术领域,时常会有一些激进的言论引发热议,比如近年来不少人声称“前端已死”。这样的言论引发了广泛的讨论和反思。本文将从几个方向探讨这个话题:为什么会出现“前端已死”的言论、如何看待这种说法、前端技术的未来发展趋势以及前端人如何应对这场职位突围战。 为什么会…

代码训练LeetCode(1)合并有序数组详解

代码训练(1)LeetCode之合并两个有序数组 Author: Once Day Date: 2024年3月5日 漫漫长路,才刚刚开始… 全系列文章可参考专栏: 十年代码训练_Once-Day的博客-CSDN博客 参考文章: 88. 合并两个有序数组 - 力扣(LeetCode)力扣 (LeetCode) …

【BUG】Windows状态栏总卡死解决办法

屋漏偏逢连夜雨,正在赶deadline呢,Windows状态老卡死,一时间崩溃。 解决办法: 右键状态栏新闻和咨询关掉 这个烧笔新闻与资讯我真服了

Ubantu 18.04 如何映射IP到公网,外网可以访问

介绍一种简单的方式,就是通过路由侠 inux 系统安装路由侠,可通过两种方式进行,一种是通过直接脚本安装,一种是通过 Docker 安装。 windows下载地址:路由侠-局域网变公网 方式一:通过脚本安装 1、获取安…

赵珊珊Go语言汇编视频课程

本课程由赵珊珊老师倾情打造,旨在深入解析Go语言与汇编语言结合的高级主题。学员将系统学习Go语言底层实现原理,掌握汇编代码优化技巧,为高性能、高并发应用开发奠定坚实基础,助力学员在软件工程领域取得更大成功。 课程大小&…

Ajax+Axios+前后端分离+YApi+Vue-ElementUI组件+Vue路由+nginx【全详解】

目录 一.Ajax技术 二. Axios 三.前后台分离开发介绍 四. YAPI 五.前端工程化 六.vue工程的目录结构 七.Vue项目核心文件 八.Vue组件库ElementUI AboutView.vue最终代码 AboutView.vue最终代码 九.Vue路由 十.案例 十一.nginx介绍 一.Ajax技术 1.Ajax概述 Ajax: 全…

excel 动态列导出

excel动态列,只好用poi来写了,也并不复杂,一样就这个件事情抽像为几步,就是套路了,开发效率就上去了。 1 准备空模板 导出操作与excel模板的导出一样,可以参考excel导出标准化 2 自定义SheetWriteHandler …

Redis面试问题纯享版

基础内容 1、简单介绍以下你了解的Redis 2、对比一下Redis和Memcache的异同? 3、为什么MySQL选用Redis作为缓存? 4、详细聊聊你对Redis各种数据类型的了解? 5、Redis中五种基本数据类型的底层数据结构是什么样的? Redis线程模型…

图书推荐|Word文稿之美

让你的文档从平凡到出众! 本书内容 《Word文稿之美》是一本全面介绍Word排版技巧和应用的实用指南。从初步认识数字排版到高效利用模板、图文配置和表格与图表的排版技巧,再到快速修正错误和保护文件,全面系统地讲解数字排版的技术和能力&…

【Linux】编译器gcc | make | Makefile | 模拟进度条 | gitee

目录 1. 编译器 gcc 1.1 背景知识 1.2 gcc如何完成 2.1 Makefile背景 2.2 Makefile原理 2.3 Makefile常用符号 3. 模拟倒计时 4. 模拟进度条 5. 使用 git 命令行 5.1 安装 git 5.2 创建项目下载到本地 5.3 推送本地代码到远端仓库 1. 编译器 gcc 1.1 背景知识 预处…

stm32学习笔记:I2C通信外设原理(未完)

软件实现和硬件实现 串口通信为异步时序,用软件实现很麻烦,基本上用硬件实现 而I2C协议通信为同步时序,软件实现简单且灵活,硬件实现比较麻烦,故软件比较常用 但I2C硬件实现功能比较大,执行效率高&#xff…

Electron-builder打包安装包——编译篇

突然有一天想打包个桌面程序,没有打包过,经过九牛二虎之力终于打包出来,在此感谢那些热于分享的前辈! 本篇只讲打包运行和出现的问题 一、准备工作:提前下载相关资源包,否则在国内环境下可能因为网络问题…

python+django_vue旅游酒店预订出行订票系统pycharm项目lw

a.由于对管理信息方面的内容了解尚浅且没有足够的经验,因而很难对数据庞大的线上旅行信息管理系统建立完善的数据库。 b.线上旅行信息管理系统拥有很大的信息量,其中包括数据库的前期开发和后期更新,因此对数据库的安全性,一致性和…

【Java】CAP理论以及它的实际应用案例

目录 简介 不是所谓的“3 选 2” CAP 实际应用案例 总结 CAP 理论/定理起源于 2000年,由加州大学伯克利分校的Eric Brewer教授在分布式计算原理研讨会(PODC)上提出,因此 CAP定理又被称作 布鲁尔定理(Brewer’s the…

html标签之表格标签,程序员必看

突破困境: 1. 提升学历 前端找工作,学历重要吗? 重要。谁要是告诉你不重要那一定是在骗你。现实情况是大专吃紧,本科够用,硕士占优,大专以下找到工作靠运气和 戳这里领取完整开源项目:【一线大…

嵌入式面试

1.关键字static的作用是什么?为什么static变量只初始化一次? 1)修饰局部变量:使得变量变成静态变量,存储在静态区,存储在静态区的数据周期和程序相同, 在main函数开始前初始化,在退…

HTML入门:05HTML多媒体

HTML入门:05HTML多媒体 1 video标签1.1 控制按钮:controls1.2 宽度和高度:width和heightt1.3 预载:preload1.4 静音:muted1.5 自动播放:autoplay1.6 无限循环:loop1.7 poster 2 audio标签 在早期…

从零学习Linux操作系统 第三十二部分 ansible中剧本的应用

一、什么是playbook及playbook的组成 1.Playbook的功能 playbook 是由一个或多个play组成的列表 Playboot 文件使用YAML来写的 play就是一个个模块用列表的方式体现出来 playbook的语法是用YAML的预防进行书写的 2.YAML 简介 是一种表达资料序列的格式,类似XM…

ShardingSphere-SQL 解析 Issue 处理流程

ShardingSphere-SQL 解析 Issue 处理流程 这是之前给社区写的 SQL 解析 Issue 的处理流程,可以帮助社区用户快速参与到 ShardingSphere-SQL 解析任务当中。 ShardingSphere SQL 解析 issue 列表 Issue 背景说明 当前 Issue 使用自定义的爬虫脚本从对应的数据库官…

php采集类snoopy2.0使用说明

我们经常采集一些网站数据时会被识别为机器人被网页被拒绝访问,类似这种: failed to open stream: HTTP request failed! HTTP/1.1 403 Forbidden网宿云安全平台检测到您当前的访问行为存在异常,请稍后重试... 云安全平台检测到您当前的访问…
最新文章