基于电动汽车的进化算法(2020年排名第三的遗传算法)

摘要

        多年来,为适应社会的实际需求而创建的车辆路由问题有很多变化,其中之一是电动汽车路由问题(EVRP)。与传统的车辆路由问题相比,EVRP是一个更复杂、更具挑战性的组合优化问题。本文考虑了有轨电车路由问题的具体模型,并提出了一种受聚类启发的贪心搜索算法GS。GS算法的目的是对充电路线进行聚类,并贪心地搜索充电站以获得最佳路线输出。在本文中,我们特意将GS实现在元启发式遗传算法GA中,利用GA寻找全局最优,从而形成了GSGA算法的表述。为了评估性能,我们使用了2020年世界计算智能大会(WCCI)上CEC-12电车路由问题CEC-12竞赛中的一个基准数据集。实验评估了GS在应用于其他算法(如遗传算法和模拟退火)时的有效性。实验结果表明,我们提出的算法比以前的算法有更好的解决质量。

引言

        最近,电动汽车(EVs)的使用对运输公司来说变得更加关键,因为它们的成本低、能耗低、环境友好,有助于减少二氧化碳排放。电动汽车带有可充电的电池,但由于充电站的数量有限,可能会出现一些问题,如能量不足和电池电量不足。管理电动车电池电力的需要提高了电动车路径规划问题的复杂性和难度。

        在最近关于电动汽车车队路线问题的一些研究中,M.Mavrovouniotis等人[1]提出了电池电动汽车的电动汽车路线问题(EVRP)。他还介绍了评估所提出算法有效性的基准集。EVRP的目标函数是找到一组使总行驶距离最小化的路线。作者已经证明了EVRP是一个NP难的组合优化问题。

        作为一个具有挑战性的NP难题,拥有大量客户的EVRP被认为是一个复杂而具有挑战性。然而,这个问题可以通过元启发式算法有效地解决。遗传算法是科学界广泛研究的最流行的元启发式算法之一[2,3]。遗传算法受到自然选择和遗传学过程[4]的启发,从一群个体经历繁殖和突变以产生后代开始。当满足预定条件时,重复并终止过程执行。由于其强大且易于使用的搜索功能,在过去的几十年里,遗传算法在获得大量复杂现实世界优化问题的最优或接近最优解方面取得了显著的成功,包括组合优化、连续优化和约束优化。因此,我们提出了一种混合贪婪搜索性质启发的元启发式算法[5],即基于贪婪搜索的遗传算法(GSGA)来解决EVRP。

这项工作的主要贡献描述如下。

我们为这个问题提出了一种新的贪心搜索算法GS,该算法基于近邻聚类法、平衡法和局部搜索法,以达到合理的解决方案。

提出一种遗传算法 GSGA实现了所提出的贪心搜索算法,以有效解决EVRP问题。一种新颖的编码和解码方法是专门为这个问题设计的。此外,还提出了新的初始化、杂交和变异运算符。

在不同的场景下进行实验,以证明所提出的贪心搜索方法对现有充电路径优化算法的有效性,以及贪心搜索启发的遗传算法对解决EVRP的有效性。

        本文的其余部分组织如下。第2节介绍了EVRP的相关工作,第3节描述了问题的陈述和表述。第4节和第5节分别阐述了拟议的贪心搜索算法(GS)和拟议的遗传算法(GSGA)。第6节提供了计算实验和结果。本研究的结论和未来扩展将在本节给出。


相关工作

        电动汽车的需求正在增加,因此问题在于改变变体和不同的约束条件。电动汽车的一个主要缺点是电池容量有限;因此,他们需要访问充电站来给电池充电。因此,寻找电动汽车的最优路线方案,即EVRP,引起了众多研究人员和专家的特别关注。近年来,许多相关工作都对EVRP进行了研究。在[6]中,问题被引入并用数学公式表示。这个问题的目的是最大限度地减少电动汽车的能源消耗。此外,作者还应用了一种基于蚁群算法的元启发式算法来求解EVRP。在[7]中,Montoya等人提出了一种混合元启发式方法,该方法结合了文献中的简单组件和专门为该问题设计的组件。为了评估非线性充电函数的重要性,他们进行了一项计算研究,将我们的假设与文献中常见的假设进行了比较。Erdelic等人回顾了用于解决各种EVRP变体的最先进的精确、启发式和混合程序[8]。在[9]中,作者提出了一种启发式方法来解决具有多种技术和部分充电的绿色车辆路线问题。

        在[10]中,Afroditi等人受到已知VRPTW的启发,提出了一个数学模型。为了解决Afroditi模型,提出了一种用模糊模拟方法增强的自适应大邻域搜索(ALNS)算法[11]。在所提出的ALNS算法中,设计并集成了四种新的去除算法来解决FEVRPTW问题。在[12]中,Yang等人提出了一个称为BSS-EVLRP的电动汽车电池交换站位置路由问题。该问题的目标是在限制电池续航里程的条件下确定电池交换站(BSS)的位置策略和电动汽车车队的路线规划。此外,作者还提出了两种解决问题的方法。第一种提出的方法是一种称为SIGALNS的四阶段启发式方法,其中BSS定位阶段和车辆路线阶段迭代交替。第二种方法是改进的Clarke和Wright Savings启发式算法(TS-MCWS)的两阶段禁忌搜索。与CPLEX的MIP求解器相比,这些提出的算法在中大型实例中无需过多计算即可有效地找到良好的解。Abdallah等人使用拉格朗日松弛解决了这个问题,并提出了一种新的Tabu搜索算法[13]。他们还介绍了完全适应的所罗门实例的第一个结果。在研究[14]中,作者指出了CVRP问题在实践中的重要性,并提出了一种基于蚁群算法和模拟退火算法相结合的方法,称为SACO。将SACO算法与基于蚁群算法的方法进行了比较,并显示出比基线方法更好的结果。然而,所提出的算法的一个局限性是执行时间相对较长,尤其是在问题规模巨大的情况下。

在[ 15, 16]中研究了一个与我们类似的问题,但模型的表述和优化目标是不同的。在[16]中,作者提出了第一个考虑车辆负荷对电池消耗影响的EVRP模型,以找到旅行时间成本、能源成本和调度的电动车数量最小的最佳路由策略。在[ 15]中,提出了具有充电需求、能源消耗、范围约束、车辆容量约束的EVRP模型。该模型优化了目标[15],即最小总成本,包括固定车辆成本、旅行成本和充电成本。

        综上所述,随着相关研究的引入,已经提出了许多VRP问题的变体,包括带有多个模型的EVRP和解决该模型的拟议方法。在本文中,我们提出了一种贪心的搜索算法和一种遗传算法,以说服性地解决[]中介绍的EVRP问题。

3 电动汽车路由问题

3.1 问题陈述

问题用全连接加权图G = (V , E)表示,其中V ={ C, O, S }是一组节点,E ={ (i, j ), ∀i, j ∈V,i = j }对应于连接V的顶点的所有可能的弧。集合C={c 1,c 2,...,c n c}是一组客户点,O是中心点每个弧(i,j )都与节点i和j之间的非负欧氏距离d ij有关。

        充电规则定义如下:每次电动车在仓库开始行驶路线时或访问充电站后,电动车的电池都被完全充电。在路由过程中,电动车可以在S中的任何充电站充电一次或多次。

EVRP的目的是找到一组路线,使总的行驶距离最小,必须满足以下条件或约束:

辆电动车是一样的每条路线在仓库开始和结束

在给定的策略中,每个充电站可能被多次访问或没有被任何电动车访问。

消费者 每个顾客正好被一辆电动车访问过一次

- 对于每条电动车路线,总能耗不超过电动车的最大电池充电水平Q max。

- 对于每条电动车路线,客户的总需求不超过电动车的最大承载能力Pmax。

考虑 EVRP p = (R 1,R 2,...,R l) 的一个可行的解。EVRP的目标结构如下。其中R t = (0,π 1,π 2,...,π k,0)是EV t的一条路径,其中EVt从仓库出发并访问客户,在充电站充电后,它返回仓库;d ij是节点i和j之间的欧氏距离,如果有弧连接i和j,x ij = 1,否则orx ij = 0。图中显示了一个由五个客户c 1, c 2,c 3,c 4,c 5、一个充电站s 1和一个中央仓库O组成的简单的EVRP例子。1a和b。

在图1a中,给出了一个不访问任何充电站并使用两辆电动车的策略。路线1上的第一辆电动车离开仓库O去访问3个客户c 1,c 2,c 3然后返回仓库。同样地,路线2上的第二辆电动车离开仓库去访问2个客户c 4和c 5,然后返回仓库。在图1中的例子中 , p1 =( R 1,R 2) ,R 1=(O,c 1,c 2,c 3,O),R 2 =(O,c 4,c 5,O)。图1b描述了一个更好的策略,包括访问一个充电站并使用一个电动车(一条路线)。电动车离开仓库O去访问3个客户c 1,c 2和c 3,然后访问充电站s 1,为其电池完全充电。在s 1充电后,电动车在返回仓库之前访问了客户c 4和c 5。在这个例子中,p2=( R 1),R 1=(O ,c 1,c 2,c 3,s 1,c 4,c 5,O )。

 3.2 问题的提出

        EVRP试图找到一组电动车路线,其中每个电动车对每个客户访问一次,而且只有一次,以便使总距离最小。表1中给出了EVRP问题的符号。此外,[ 1]中EVRP的数学表述也表示如下。方程2保证每个客户正好被一辆电动车访问一次;(3)确保每辆电动车是同质的,每条路线在仓库开始和结束;(4)意味着在给定的策略中,每个充电站可能被多次访问或没有被任何电动车访问。方程5通过保证在每个节点上,传入弧的数量等于传出弧的数量来建立流量保护。方程(6)和(7)保证通过在到达包括仓库在内的任何节点时保证非负的承载负荷来满足所有客户的需求,(8)、(9)和(10)确保电池电量永远不会低于0,(11)定义了一组二元决策变量,如果有弧线行驶,每个变量等于1,否则等于0。

        图2是一个解决方案的例子,其中红色圆圈是仓库0,绿色圆圈是客户(从客户1到客户9),蓝色圆圈是充电站10和11。每条边上的数字是客户与客户或客户与充电站之间的距离,绿色圆圈内的红色字体大小的数字是该相应客户的电动车剩余承载能力。这个解决方案由三条不同的路线组成。R 1 = (0,7,5,10,2,4,0), R 2 = (0,9,11,8,6,0), 和R 3 = (0,3,1,0)。在第一条路线中,路线长度的计算方法是:。4 + 8 + 7 + 4 + 4 + 6 = 33.以类似的方式,第二个是22,第三个是11。在这种情况下,我们假设这个解决方案是有效的,这意味着所有的约束(容量和电池)都得到了满足。因此,解决方案的数值适配度为66(=33+22+11),这是三条路线的总长度。在另一种情况下,如果解决方案是无效的,即存在一个不满足的约束条件,那么解决方案的适配性被设定为正的适配性。

 4 贪心搜索算法

        在本节中,我们在第5节中提出了一种解决EVRP问题的贪婪算法(GS),然后将该算法与遗传算法(GSGA)相结合。GS的流程分为两个主要阶段,从将客户聚类到子路线并对其进行排序开始,到为每辆车的每条路线找到最佳充电站集结束。聚类策略有三个步骤,每个获得的聚类对应于每个车辆。在这里,评价函数没有提到汽车的最佳数量。然而,集群的数量也会显著影响所有路线的总长度。在大多数情况下,使用少量的车辆会比将客户的商品分成太多的车辆带来更好的性能。为了做到这一点,我们使用了贪婪聚类方法,使所需的车辆数量显著减少。

4.1 聚类方法

        我们实施近邻法进行聚类,使聚类中心均匀分布,同时不超过Ev Pmax的最大承载能力。实施步骤如下。

1.随机选择一个客户作为集群的种子点。

2将最近的客户加入该集群,直到达到最大容量而不超过电动车的最大承载能力P max。

3.重复这个过程,直到所有客户都属于其中一条路线。

客户,按照顺序,倾向于靠近,每个集群的总容量将接近最大容量。因此,车辆的数量大大减少,顾客运输货物的每条路线上的位置也不会相差太远。

4.2 平衡法

        对于前一步的聚类,最后一条路线上分配的客户是非聚类的客户。他们是剩余的客户,所以他们的地理位置并不紧密。此外,这条路线上的客户数量将少于其他路线,甚至是一个客户。为了保证客户的距离,增加客户的数量,我们采用平衡的方法,具体步骤如下。

1.从最后一条路线中随机选择一个客户(客户A)。

2.依次从其他路线中选择离A最近的路线的客户。

3.所选客户必须满足以下两个条件:

(a)最后一条路线的总容量和所选客户的容量的初始总和不超过电动车的最大承载容量P max。

  (b) 总容量差(delta)比以前小:考虑两条路线R i和R j(A∈R i,B∈R j),delta= |∑ x∈R i b x−∑ y∈R j b y|,其中,b x,b y分别是客户x和y的需求。

4.重复进行,直到上述条件不被满足。

4.3 本地搜索/局部搜索2-opt

在将客户分成不同的集群后,本地搜索算法将重新排列它们,使其没有相交的路径。局部搜索的细节在算法1中描述。

一般来说 , 这种方法将为解决 EVRP 问题提供一些好处 , 如 :

电动汽车在一条路线上的总容量不超过电动汽车的最大承载能力 P max 。因此,这种方法确保了一个解决方案对容量约束有效。

地方搜索执行的每个解决方案在总距离上都有优势,因为同一路线上的顾客很可能在彼此附近。

 举例子:

假如我们有{0, 1, 2, 3, 4, 5}这5个城市,初始路线为

0-1-2-3-4-5-0。我们通过两个指针i和k各指向一个城市进行遍历。每次遍历,我们会尝试对当前的**(i,k)对**做一次2optSwap(后面简称reverse),将ik之间的路线反转。

这个操作将会重复,直到我们无法找到更短的路径,我们便找到了局部最优解,也就是最终的结果。

例如我们遍历到i=1, k=3。我们对这个(i,k)对进行一次reverse,得到一个新路线:0-3-2-1-4-5-0,如果新路线可以比之前的路线更短,我们就记下当前的i和k,以及reverse之后能缩短的距离。然后我们继续遍历,最后选择最短的那一条结果进行reverse。
 

4.4为搜索路线寻找充电站

        在确定路线后,车辆将按排序顺序依次提供货物,但确保能量约束是一个更复杂的问题。在许多情况下,尽管有预定的路线,但可能无法找到一套能够为该车辆的所有客户提供服务的充电站。为了确保每个充电站都有足够的旅行能量,我们使用贪婪策略和最短路径算法相结合,在令人满意的充电站集合中找到一组最佳的充电站。事实上,在两个位置之间移动需要一个充电站。然而,为了推广所有情况,我们在两个位置之间找到了一组充电站,而不是只使用一个充电站。算法2中给出了详细的方法。对于每条路线,程序如下:

1.对于按预定顺序依次进行的每次车辆转移,如果从客户c i到客/户c i +1所需的能量不足以移动,它将去充电站(不一定是唯一一个)充电。目标是使车辆到达c i +1时的剩余能量最大化。让ec是电动车在c i处的能量。S′ = {s 1,s 2, ..., s k}是满足的充电站的集合,使得s k离c i +1最近,并且从c i到s 1的能量消耗小于e c。如果车辆找不到这样一组充电站 , 它就会回去寻找一个从客户 c i − 1 到 c i 的充电站。重复这个过程 , 直到它能找到一个满意的充电站或回到仓库。

2. 对于任何客户c i,我们可以证明从c i到c i+1找到一组充电站的次数不超过两次,因为在找到它们中的前一个之后,在任何情况下,到达c i时的能量都是最大的。如果我们回到停车场,将无法插入充电站来获得令人满意的路线并返回适合度=+∞。

        如上所述插入充电站后,当车辆从充电站移动到路线上的下一个客户时,车辆的剩余能量最大。然而,就路程成本而言,这套充电站并不好。因此,我们将再利用一个阶段来寻找另一个路径成本较短的阶段。我们可以证明,如果所有考虑的集合在一条路线中具有相同数量的充电站,则所提出的算法将给出最优结果。假设两个不同的集合S和S′在一路上为充电站探索了k次,其中S′使用所提出的算法将获得比S更好的结果,至少是相等的。以下步骤描述了查找一组充电站的过程:

        1. 首先,考虑路线R = {O,c 1,c 2,...,c i −1,S′, c i,...,c r,O },其中 R-作为反转顺序的路线。按照预先安排的顺序R ,c i是一个客户接触集合S′的右头,让T是c i前面的客户c j的集合。如果车辆以相反的顺序R-转移,从仓库到c j的能量是足够的,但不访问任何站点(*)。

        图3中说明了一个例子,其中T组包括客户8、客户9、客户2和客户4。不包括顾客5,因为它的能量不足以以相反的顺序行R- ={ 0 → 6 → 8 → 9 → 2 → 4 → 5 → 7 → 0 }。

 2.让S-={s k,s k −1,...,s 1}为从T j到T j+1找到的满足以下条件的充电站集合:

(a)在R中,电动车有足够的能量从仓库到s 1。

(b) 在R-中,电动车有足够的能量从仓库到s k。

(c) 从T j到T j +1的距离,通过S-有最小的距离。

在图3中,通过充电站集合S-的行程长度比以前小。在用Djkstra算法完成流程再优化后,路线是{0 → 6 → 8 → 9 → 12 → 4 → 5 → 7 → 0 }。

如上所述,我们可以证明,如果充电站集合S′被充电站集合S-取代,条件(*)也得到满足

 证明 让delta 0是T 1到T 2通过S′的距离,delta i是T i到T i +1通过S的距离。如果delta i小于delta 0,我们将用T i → T i +1的新充电站集合S→取代T 1 → T 2的S′。如果delta i是最小的,它被认为是满足的充电站集合中的最佳充电站集合。对于每条有安排的电动车路线,最好的一组充电站将为车辆提供足够的能量,以访问所有客户并返回到旅行距离最小的仓库。解释如下。

对于两条路线:(O l,..,T k,T k−1,…,T j+1,T j,…,T2,S′,T1,…O r)(1)和(O l、T k,T k−1、…,T j+1,S′-、T j,..,T2,T 1,…O r)(2)(如图4所示)。让我们考虑一下

 5 进化算法

        在这一节中,将详细介绍一种与所提出的贪心搜索算法相结合的遗传算法,称为GSGA。图5.中描述了GSGA的流程。该算法包括传统遗传算法的基本步骤:个体表示、初始化和繁殖。然而,在新的两级表示方法、贪心初始化方法、新的混合和变异算子中,在GA中实施所提出的贪心搜索策略的新颖性得到了澄清。详细情况将在下面的小节中介绍。

5.1 表征

        设计遗传算法的一个重要步骤是找到一个合适的染色体表征。对于这个EVRP问题,一个解决方案涉及有轨电车路线,其中电动汽车从仓库出发访问客户,并可能通过中间充电站。因此,一个合理的解决方案表示需要关于客户、充电站和仓库的信息。本文提出了一种解决方案的表示方法,包括新的编码和解码方法,将在下面的小节中详细描述。

5.1.1编码

        在所提出的编码方法中,解决方案的初始表示只需要表示客户的信息和客户正在访问的路线的顺序。因此,对个人的编码是固定大小整数的数组nc,其中nc是问题中客户的总数。每个元素的值与客户节点相对应。数组中元素值的顺序是解决方案中客户访问的顺序。

        假设一个给定的EVRP模型解决方案从仓库开始,需要访问九个客户并通过一些中间充电站。图6详细描述了这种情况下的解编码方法。图6a说明了上述的解决方案,包括三条路线:路线1:0→7→5→10→2→9→0,路线2:0→4→11→8→6→0,路线3:0→3→1→0。因此,根据所提出的编码方法,相应的表示方法如图6b.所示。

5.1.2解码

        根据上述解决方案编码,获得相应解决方案的简单解码方法是将可能的充电站插入每个现有路线中。因此,应用第4.4节中提出的寻找一组充电站的策略来构建完整的路径,包括访问客户和充电站的顺序。第4.4节中的这一寻找充电站策略将确保充电站组在每条现有路线上都是最佳的。

5.2初始化

        根据所提出的编码,个人由nc个元素的排列阵列表示,其中n c是客户的数量。请注意,单个编码只需要客户的信息和访问该客户的路线顺序。因此,我们使用所提出的贪婪策略,包括第4节中的步骤4.1、4.2和4.3,来初始化个人。

        这种贪婪初始化方法被期望比随机初始化方法更有效。此外,这种方法总是为容量约束生成一个有效的个体,因为它应用了第4.3节中介绍的局部搜索。这将在实验结果部分进行演示。

 5.3交叉运算器

        本文在GSGA中提出了一种新的混合方法。该方法使用距离启发式,适用于多车辆问题。拟议的交叉方法的细节显示在算法3中。拟议的交叉运算符的一个例子包括四个步骤,描述如下。

第1步:如图7.所示,在父代个体中随机选择一个客户(客户2)。

第2步:子1是包含父1的顾客2的路线上的一组顾客。子2是包含父2的顾客2的路线上的一组顾客,如图8.所示。

第3步:不属于子1和子2的客户将分别从父代继承到保持相对顺序的子代。

5 8 4 1 7

4 8 7 1 5

第4步:子1和子2中的客户将被划分为满足以下规则的子代:将sub2和sub1串联(6,9,2,3)插入进去第一个,反过来sub1(3,2)和反过来sub2(9,6)插入到第二个。如图9. 所示。

         所提出的交叉运算符与两点杂交非常相似。然而,我们仍然使用启发式的方法,选择一个随机的种子点来交换属于两个独立父母的两个不同子路线中的染色体。在交换这两个子路线的染色体时,我们发现交叉运算符只通过靠近先前选择的种子点的两个子路线来切换不同子路线的相邻客户的位置。因此,这将最大限度地减少路线上远离其他客户的客户数量。然而,这种算法总是能确保大量的新特征。

5.4 突变算子

        突变的目的是将新的遗传物质引入现有的个体中,为种群的遗传特征增加多样性。在此,我们提出两种类型的突变算子,每种算子都有突变概率。

1.启发式交换突变 ( HSM ) 。选择一个随机的顾客 c i , 与不同路线的顾客 c j 交换其位置 , 该路线与顾客 c i 的距离最短。

2.启发式移动变异(HMM):选择一个随机的客户c i,从与客户c i距离最短的不同路线中找到客户c j,并将客户c j插入包含客户c i的路线中。

图10.中显示了HSM方法的一个例子。在这个例子中,选择一个随机的客户(客户4),而离其他路线最近的客户是客户9。然后,两个客户,4和9,被交换了。

图11描述了HMM方法,即随机选择一个客户(客户11),从不同的路线(客户2)找到最近的客户,并将其插入包含客户11的路线。

 

        拟议的突变算子使用类似于拟议的交叉算子的启发式方法。我们可以看到,突变算子对再分配途径和改变遗传异常有相当大的影响。在启发式交换突变算子中,相互靠近的两个点的交换位置将对两条交叉路线有效。同时,当一个异常点需要通过另一条路线移动时,启发式移动突变算子将是有效的。所描述的突变算子可能会产生违反最大负载的解决方案,我们将其标记为无效个体并返回正无穷大的适配度。为了清楚地评估其有效性,我们在第6节中介绍了实验结果。总的来说,对于许多不同的路由问题,可能会提出使用突变算子,而EVRP就是其中之一。

5.5 选择方法

        自然选择是进化理论中的一个重要步骤。个体在野外挣扎生存,只有适者生存。在这种选择方法中,我们通过车轮选择方法选择最佳个体。该方法的细节在算法4中描述。这种方法确保具有良好健身能力的个体将有很高的选择概率,反之亦然。具体来说,全局最佳个体被添加到新的种群中,以保持现有的最佳性状。

6 实验结果和性能评估

6.1 问题基准数据集 EVRP基准集由两组问题组成:

1.第1组:由7个小问题实例(最多100个客户)组成,其中的最佳上界值在[1]中提供。

2.第2组:由10个较大的问题实例组成(最多1000个客户),其中没有提供他们的上限值。

第一组EVRP实例是通过扩展Christofides和Eilon[17]的传统车辆路由问题的著名实例产生的。

第二组是Uchoa等人最近的传统车辆路由问题的实例的扩展。[18]。

6.2 实验设置

        为了评估GSGA在EVRP中的性能,我们在Windows 10上实现了所提出的算法,内存为8.0GB,CPU为2.2GHz,种群大小为200个个体,突变率为0.1。最大的评估次数是25000n,其中n = |C |+1 +|S |是问题实例的大小。我们的源代码是用C++语言编写的。

        在这项研究中,我们试图为不同的范围设置参数,以找到最佳结果。固定的POP SIZE参数等于200个个体,但在大的情况下工作并不理想,因为种群不够多样化,无法获得一个好的局部最优解。然而,它对平均数和小问题规模有好处。此外,突变率也会显著影响性能,所以我们用不同的参数(从0.025到0.1)进行实验,选择最佳参数。给出最佳实验结果的交叉率为0.9,交叉率越小,结果越差。详情列于表2。

6.3实验标准

        基于以下几个标准来评估所提出算法的有效性:总体收敛速度、最佳结果、最差结果、平均结果、执行时间和稳定性。标准的详细信息见表3。

6.4实验结果

6.4.1贪婪搜索算法分析

        为了评估所提出的贪婪搜索算法的有效性,将属于第1组(小)数据集的所有实例上的给定上界与贪婪搜索算法在所有运行中找到的平均目标值进行比较。值得注意的是,我们计算了一个称为近似比的值,该值由以下公式给出:

 在公式中,UB i和GSA i是所提出的i个实例的贪婪搜索算法提供的下界值和找到的平均目标值。该近似比率是由所提出的贪婪搜索算法获得的结果与给定的下界值之间的比率。在本文中,近似比越接近1,结果越好。

6.4.2贪婪Seach实现的算法分析

        在这项研究中,运行次数设置为20次(随机种子为1-20次)。根据执行时间表,如图12所示,执行时间取决于客户数量、充电站和路线数量。在X-n1001-k43实例中,GSGA的执行时间小于X-n916-k207实例。因此,每个实例中的路由数量与所提出的算法的执行时间成比例。一般来说,算法的执行时间相对较快,对于大型实例大约为500秒。

此外,在给定的上界值下,我们还评估了所提出算法的有效性。如表5所示,实验结果表明,GSGA获得的最佳平均结果在大多数情况下比上限值低约1.56%。

在实验过程中,当种群规模在150至200之间时,获得了最佳的目标值。有了这样数量的个体,种群就能迅速适应。然而,当问题规模相当大,客户数量很大时,人群的多样性就会降低。比较表4和表5的结果,当贪婪搜索算法被实现到GA时,该模型具有更好的执行时间。

6.4.3与基线的比较

在本文中,我们进行了三种基线算法:普通遗传算法(GA)、结合所提出的贪婪搜索算法(GSSA)的模拟退火算法和相关工作中提到的混合ACO算法(SACO)。值得注意的是,基线方法GA不使用初始平衡分布方法,只使用Dijkstra算法来寻找可能的最近站点。GSSA还使用了最初提出的方法和类似于GSGA的搜索能量站模式。SACO是在ACO框架的基础上,结合模拟退火算法的。ACO和SA的结合确实产生了极好的结果。ACO用于寻找可行且稳定的解,但很难找到全局最优解,而SA将依靠ACO的解来寻找全局最优解。我们基于相同的持续时间(25000n次评估)评估了四种算法。

总体而言,GSGA以最短的路径和平均执行时间对所有数据实例执行得最好。与遗传算法的结果相比,如果实现GS算法,可以将遗传算法的性能平均提高10%-25%。GSGA算法结合了所提出的GS策略,在所有数据集实例中的平均目标值都优于GSSA和最先进的SACO。具体而言,GSGA算法在小数据集上比SACO好约5%,在大数据集上好23.5%。与GSSA相比,GSGA在小数据集上的性能提高了5.7%,在大数据集上提高了4%。这是因为所提出的贪婪策略与遗传算法相结合,可以随着数据的扩展显著降低寻找最优解的成本。表6的研究结果表明,贪婪搜索算法GS在提高任何遗传算法的性能以寻找最佳充电路线方面的潜力,而GSGA仍然是性能最好的算法。

接下来,我们对三个不同的配对进行Wincoxon秩检验:GSGA对GA、GSGA对GSSA和GSGA对SACO。在α=0.05的Wilcoxon符号秩检验中,当与所提出的GSGA算法在两种类型的数据集上进行30次独立运行时,上述算法的性能如表7和表8所示。其中,-,≈,+分别表示基本算法获得的结果比所提出的算法更差、相似和更好。

        可以观察到,我们的算法GSGA的结果在小型和大型数据集上都优于其他算法。具体而言,GSGA在所有情况下都优于GA和GSSA;GSGA在7个小实例中有6个的表现优于SACO,在大数据集的所有实例中都优于SACO。

因此,实例的最佳记录解决方案的图解路线如图13a–d所示。请注意,这些符号:红色圆圈符号、绿色三角形符号和蓝色方形符号分别代表车辆段、客户和充电站。

6.4.4消融研究

为了进一步检验所提出的遗传算法(GSGA)中每个组件的有效性,包括初始化方法、交叉方法和变异方法,我们通过去除GSGA中的每个组件来进行实验。表9显示了实验结果,%improve是版本GSGA-I(用随机初始化代替贪婪初始化)和GSGA-M(没有突变)以及GSGA-C(没有交叉)到版本GSGA的相对改进。

首先,我们观察到,在所有数据集上,贪婪初始化比随机初始化给出更好的解决方案。如果不使用贪婪初始化策略,甚至找到无效的解决方案(除了四个小实例),结果是不充分的。原因是贪婪初始化方法可以产生有效的解,并且这些解的质量优于随机初始化。

其次,我们观察到GSGA-C(没有交叉)的结果也不好。此外,在所有大型实例中,GSGA-M(无突变)的结果都比GSGA-C差得多。因此,交叉算子和变异算子都在提高解的质量方面发挥了重要作用,其中变异比交叉算子更有效。

7结论

本文提出了一个电动汽车路径问题,并提出了一种基于遗传算法和贪婪搜索算法的高效算法,即GSGA。在我们的方法中,为GSGA提出了新的解表示,包括新的编码和解码方法。此外,本文还针对该问题提出了贪婪初始化、新的交叉算子和变异算子。在WCCI 2020的EVRP竞赛中,在EVRP基准实例上对所提出的算法进行了评估。实验结果表明,当应用于遗传算法时,我们的贪婪搜索算法GS可以找到更好的集群充电路线,并为车辆提供更优化的行驶距离。对于未来,我们计划进一步研究所提出的GSGA对电动汽车路线问题的更多变体。设计多因素进化算法来解决车辆路径问题也是一个很有前途的研究方向。

猜你喜欢

转载自blog.csdn.net/qq_45874683/article/details/131729892