IEEE WCCI-2020电动汽车路由问题进化计算竞赛的基准集

引言

        交通一直是二氧化碳排放的主要贡献者。由于全球变暖、污染和气候变化,联邦快递、UPS、DHL和TNT等物流公司对环境变得更加敏感,他们正在投资于减少作为其日常运作的一部分而产生的二氧化碳排放的方法。毫无疑问,使用电动汽车(EVs)而不是传统汽车将大大有助于减少二氧化碳的排放[1],这一事实增加了物流公司利用电动汽车进行日常运营的兴趣。在这种情况下,出现了一个电动车队的路由问题,即电动汽车路由问题(EVRP)[2]。在本报告中,提供了一个EVRP实例的基准集,其中有已知和未知的最佳值。本报告的其余部分组织如下。第2节介绍了EVRP问题,其中提出了该问题的详细数学表述。第3节给出了EVRP基准集的细节。第4节展示了在基准集上评估算法的标准。最后第5节总结了本报告。

2 电动汽车路由问题

        EVRP是一个具有挑战性的NP-hard组合优化问题,因为它是普通短路径问题的扩展,包含了额外的约束条件[3]。EVRP可以描述如下:给定一个电动车队,我们需要为每个电动车在其电池充电水平限制内找到可能的最佳路线,开始和结束于中央仓库,为一组客户服务。通常,这个问题用全连接加权图G = (V,A)来表示,其中V = {0∪I ∪F ′ }是一组节点,A = {(i,j) | i,j ∈V,i 6 = j }是一组连接这些节点的弧。集合I表示客户的集合,集合F′表示每个充电站i∈F的β i节点副本1的集合(即|F′|=∑i∈Fβ i),0表示中心仓库。每条弧都有一个非负值距离d ij,代表节点i和j之间的欧几里得距离。每条行进的弧(i,j)消耗穿越该弧的电动车剩余电池电量hd ij,其中参数h表示电动车的消耗率。此外,每个客户i∈I被分配一个正的需求b i2。

假设有一个同质的电动车队,EVRP的目标函数是找到一组路线,使行驶的总距离最小。

每个客户正好被一辆电动车访问一次

--所有的电动车都从仓库开始(满载并充电)并在仓库结束

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

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

--电动车总是离开充电站完全充电(注意,仓库也被认为是一个充电站)

--充电站(包括仓库)可以被任何电动车多次访问

因此,EVRP可以在数学上表述如下:

其中公式。(1)定义了EVRP的目标函数,公式。(2) 强制执行客户访问的连通性,公式。(3)处理充电站的连接问题,公式。(4) 通过保证每个节点,即传入弧的数量等于传出弧的数量来建立流量保护。公式。(5)和公式。(6) 通过在到达包括仓库在内的任何节点时保证非负的承载负荷,保证所有客户的需求得到满足,公式。(7), 公式(8)和公式(7)。(9)确保电池电荷永远不会低于0,而公式。(11)定义了一组二元决策变量,如果有弧线行驶,每个变量等于1,否则等于0。变量u i和y i分别表示电动车到达节点i∈V时的剩余承载能力和剩余电池电量。

3 EVRP基准集的描述

EVRP基准集由两组问题组成:

1.由7个小问题实例(最多100个客户)组成,其中提供了它们的最佳上界值。

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

第一组EVRP实例是通过扩展Christofides和Eilon[6]的传统车辆路由问题的著名实例产生的(见图1),

图1:问题实例(左)与已知上界解(右)的说明。这些问题实例对于测试目的和参数调整很有用。请注意,大圆点,小圆点,方块 分别代表仓库、客户和充电站。

而第二组是Uchoa等人[7]最近的传统车辆路由问题的实例的扩展。(见图2)。

第一组的实例对测试很有用(例如,求解器的验证、参数调整等),因为大问题实例的解决更具挑战性和耗时。表1中总结了所有生成的EVRP实例的细节。表1中的各栏列出了客户数量、仓库数量、充电站数量、最小路线数量、电动车的最大负荷(C)、电动车的最大电池充电水平(Q)、能耗常数(h)和最佳上限(UB)值(在某些情况下可能是最佳值,但尚未得到验证)。

 DIMENSION:包括中央仓库在内的客户数量

- STATIONS:充电站数量

- CAPACITY电车容量:电动车的最大承载能力(即C)

- ENERGY CAPACACITY电量上限:电动车的最大电池充电水平(即Q)

- ENERGY CONSUMPTION能量消耗:恒定的电荷消耗率(即h)

•EDGE WEIGHT FORMAT 边的距离:欧氏距离

•NODE COORD SECTION 节点部分:该部分包含节点的信息,格式为节点id、x和y坐标

•DEMAND SECTION需求部分:该节包含每个客户的需求,以节点id和需求的格式(即,b i)

•STATIONS COORD SECTION :站点合作部分:本部分包含充电站的节点id

•DEPOT SECTION车辆段部分:本节包含中央车辆段的节点id。

在竞赛网站4中,文件(EVRP.hpp)中提供了一个能够读取所有上述信息的源代码样本(即读取扩展名为.evrp的文件),可以通过相应的函数来利用。更具体地说,EVRP.hpp中实现的功能可以用来生成EVRP实例的距离矩阵,访问所有上述信息,并评估由求解器生成的解决方案(注意,解决方案必须是源代码中描述的特定格式)。此外,文件stats.hpp的实现提供了可以用来保存解算器结果的函数,可以提交给比赛。我们强烈鼓励参与者利用所提供的文件main.cpp,并在heuristic.cpp文件中实现他们的方法。最后,表1中描述的基准集也可以在完成网站上找到。

 

评价标准

- 问题实例。表1总结了17个EVRP实例

- 独立运行。如果实现的启发式是随机的,那么运行20次独立的运行(用1−20的随机种子);否则运行一次。在样本代码中已经定义为MAX TRIALS .

- 评价。最大的评价次数是25000n,其中n = |I | + 1 +|F |是问题实例的大小。一次评估的复杂度为O(n2)。

- 终止条件。当算法达到上面定义的最大评估次数时[换句话说,调用公式中的目标函数。(1)]。在样本代码中已经定义为TERMINATION。

- 测量。从所有评价中找到的最佳解决方案在多次独立运行中的平均值如下:

 

其中R是独立运行的数量(即随机方法的R = 20,确定性方法的R = 1),P ∗ i是运行i中所有评估中找到的最佳解决方案。

注意:P-的测量已经在样本代码中实现(在stats.hpp中),并存储在代码执行时产生的输出文本文件中。参与者可以简单地提交这些为每个实例获得的输出文本文件,以及他们算法的细节和源代码。表2显示了从源代码(文件heuristic.hpp)中实现的样本启发式得到的结果的例子,其中 "mean "是20次运行的平均解决方案质量,stdev "是标准偏差,min "是20次运行的最佳结果,max "是20次运行中最差的结果。所有这些数值都是在所提供的源代码生成的输出文本文件中计算的。

 5 结论

在这份报告中,我们提出了一组17个EVRP基准实例来评估算法。EVRP基准实例给普通的VRP问题带来了新的挑战,因为算法必须考虑在满足客户所有需求的同时,取消路线以访问充电站进行充电的可能性。生成这组基准实例的主要目的是为了促进对EVRP应用的研究。

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

X86架构的Linux(Ubuntu版本)上离线安装CUnit来解决Could not find CUnit(missing:CUNIT_LIBRARY)问题

前言1 下载cunit压缩安装包:CUint-2.1-3.tar.bz2(为了安装成功请下载对应版本)2 解压安装压缩包3 sudo ./bootstrap --prefix/usr/local/cunit 生成可执行文件configure*4 sudo ./configure --prefix/usr/local/cunit5 sudo make . 编译 &…

记录--你知道Vue中的Scoped css原理么?

这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助 追忆Scoped 偶然想起了一次面试,二面整体都聊完了,该做的算法题都做出来了,该背的八股文也背的差不多了,面试官频频点头,似乎对我的基础和项…

常见的bug---4、在DataGrip上跑本地模式报return 2异常

文章目录 问题描述原因分析:解决方案: 问题描述 FAILED: Execution Error, return code 2 from org.apache.hadoop.hive.ql.exec.mr.MapRedTask 在DataGrip上设置了Hive的本地模式。虽然可以建表、但是无法对表进行插入数据 原因分析: 在插…

概率论的学习和整理15: 超几何分布,二项分布,泊松分布是如何趋近收敛的?

目录 1 问题: 2 结论 3 实验1 4 实验2 5 实验3 6 实验4 5 各种规律总结 5.1 1 5.2 2 5.3 3 5.4 4 6 超几何分布,二项分布,泊松分布,三者用EXCEL模拟 6.1 简单的扩展到泊松分布 6.2 比较整体的动态过程&…

【Linux】Linux下的项目自动化构建工具——make和makefile

❤️前言 大家好,好久不见!今天小狮子为大家带来的文章是一篇关于Linux下的项目自动化构建工具——make和makefile的博客,希望能帮助到大家。 正文 当我们进行涉及多文件的工程开发时,我们需要对很多不同类型、不同功能&#xff…

【批量将视频转为图像序列】

批量将视频转为图像序列 代码如下,代码中带有解释: # 导入所需要的库 import cv2 import os import numpy as np# 多个视频所在的路径 datasets_path ["/home/y/Code/数据集/1/007f.mp4","/home/y/Code/数据集/1/05f.mp4","/…

Android Java代码与JNI交互 JNI方法Java类字段 (六)

🔥 Android Studio 版本 🔥 🔥 Java 基础类型数据对应 Native层的字母 🔥 通过 jni 查找java某个类中相应字段对应的数据类型 , 需要使用到 jni 中的 GetFieldID() 函数 jfieldID GetFieldID(jclass clazz, const char* name, const char* sig){ return functions-…

可使用Linux 测试IP和端口是否能访问,查看返回状态码

一、 使用wget判断 wget是linux下的下载工具,需要先安装. 用法: wget ip:port wget ip:port连接存在的端口 二、使用telnet判断 telnet是windows标准服务,可以直接用;如果是linux机器,需要安装telnet. 用法: telnet ip port…

CNN从搭建到部署实战(pytorch+libtorch)

模型搭建 下面的代码搭建了CNN的开山之作LeNet的网络结构。 import torchclass LeNet(torch.nn.Module):def __init__(self):super(LeNet, self).__init__()self.conv torch.nn.Sequential(torch.nn.Conv2d(1, 6, 5), # in_channels, out_channels, kernel_sizetorch.nn.Sig…

windows搭建git服务器 无法识别 ‘git‘ 命令:exec: “git“: executable file not found in %PATH%

无法识别 git 命令:exec: "git": executable file not found in %PATH% 确保已经安装git,如下图配置环境变量即可。

Mysql查询

Mysql查询 一.DQL基础查询1.语法2.特点3.查询结果处理 二.单行函数(1)字符函数(2)逻辑处理(3)数学函数(4)日期函数 三.分组函数四.条件查询五.比较六.模糊查询七.UNION和UNION ALL(1)UNION(2)UNION ALL 八.排序九.数量限制十.分组查询 一.DQL基础查询 DQL(Data Que…

奇葩功能实现:级联选择框组件el-cascader实现同一级的二级只能单选,但是一级可以多选

前言: 其实也不能说这个功能奇葩,做项目碰到这种需求也算合理正常,只是确实没有能直接实现这一需求的现成组件。 el-cascader作为级联选择组件,并不能同时支持一级多选,二级单选的功能,只能要么是单选或者…