文献阅读笔记——求解车辆路径问题及其变体的元启发式算法的分类综述

论文题目A taxonomic review of metaheuristic algorithms for solving the vehicle routing problem and its variants

其他信息:Computers & Industrial Engineering|2020|Raafat Elshaer⁎, Hadeer Awad

文章贡献:1)对使用元启发式算法的VRP问题进行分类
                  2)分析各类元启发式算法求解VRP问题的贡献
文献数量:299篇     发表年份:2009-2017

目录

一、求解VRP问题的元启发式算法分类

 二、VRP问题类型

三、元启发式算法的应用及效果

a 基于单解的元启发式相关文献

 b 基于种群的元启发式相关文献

四、结论


一、求解VRP问题的元启发式算法分类

       元启发式算法主要分为两类:基于单解的算法和基于种群的算法。基于单解的启发式分为7种类型(SA, TS, GRASP,VNS, GLS,ILS,LNS),16种基于种群的方法:12种进化计算(EC)方法(GA, ES, EP, GP, EDAs, DE, CoEA, CA, SS,MA,EMA和PR)和10种群体智能(SI)方法(ACO, PSO, BFOA, BCO, AIS,FA,CS,IWD,SFLA,BBO)。

 二、VRP问题类型

      大多数文章(98.91%)考虑了CVRP。大约37.32%的文章被认为是VRPTW。大多数情况下(30.8%),这些时间窗口是硬时间窗口,而软时间窗口也被考虑过(5.43%),而软时间窗口和严格时间窗口的混合是罕见的(1.09%)。在16.3%的文章中考虑了PDP。13.41%的文章考虑了异构VRP及其变体。9.42%的文章考虑了Multi仓库。在7.97、5.43、5.43、5.43、4.71、3.99、3.62、3.62、3.26%的文章中分别考虑了其他变量,如多周期、拆分交付、随机需求、绿色VRP、开放VRP、动态、时变、负载约束、随机行程VRP。其余的变体都很少。

三、元启发式算法的应用及效果

       299篇文献中涉及的元启发式算法种类中386种,其中63.7%是基于单解的元启发式。

a 基于单解的元启发式相关文献

1)TS求解VRP的相关论文:

2)VNS求解VRP的相关论文:

3)LNS求解VRP的相关论文:

 4)SA求解VRP的相关论文:

  5)ILS求解VRP的相关论文:

   5)GRASP及GLS求解VRP的相关论文:

 文献中应用各算法次数占比

 b 基于种群的元启发式相关文献

  1)GA & MA

 2)PR, SS, DE, CoEA, EMA and ES

  3)ACO

   4)PSO, ABC, BBMO, SFLA, BBO, GSO, CS, IWD and FA

  文献中应用各算法次数占比:fig5展示了EA各算法的百分比情况,fig6展示了SI各算法的百分比情况。

在对比问题或算法效果时可以对照表格检索相关文献

四、结论

1.基于单解的元启发式算法中,最常使用的是TS和VNS;LNS、SA、ILS和GRASP应用较少;和GLS很少使用

2.针对基于群体的元启发式算法,EA中最常用的是遗传算法;MA应用较少;PR、SS、DE、CoEA、EMA和ES很少使用;EP、GP、EDAs、CA不常用,SI中最常用的是ACO和PSO;ABC、BBMO、SFLA、BBO、GSO、CS、IWD和FA很少使用;不使用BFOA和AIS。

3.未来的研究可以将重点放在将很少使用的算法应用于其他问题变体上,以探索算法性能。

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

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

相关文章

如何用Python搭建监控平台

监控和运维,是互联网工业链上非常重要的一环。监控的目的就是防患于未然。通过监控,我们能够及时了解到企业网络的运行状态。一旦出现安全隐患,你就可以及时预警,或者是以其他方式通知运维人员,让运维监控人员有时间处…

什么是计算机蠕虫?

计算机蠕虫诞生的背景 计算机蠕虫的诞生与计算机网络的发展密切相关。20世纪60年代末和70年代初,互联网还处于早期阶段,存在着相对较少的计算机和网络连接。然而,随着计算机技术的进步和互联网的普及,计算机网络得以迅速扩张&…

S32 Design Studio for ARM(S32DS)下载和安装

1. S32 Design Studio for ARM 介绍 S32 Design Studio for ARM(下面简称S32DS),是 NXP 官方在 2014 年官方推出的,专门面向 S32K、KEA、MAC57D54H等系列微控制器的集成开发环境。 S32DS是由Eclipse和一些插件集成而来的开发平台…

CentOS 7系统开放指定或特定端口号命令

在 CentOS 7 中,可以通过以下步骤来开放指定端口号: 1、使用 root 或具有管理员权限的用户登录到 CentOS 7 服务器。 2、使用防火墙管理工具 firewalld 进行端口开放。 firewalld 是 CentOS 7 默认的防火墙管理工具。 3、检查当前防火墙的状态&#xff…

kafka消息队列最常用的两种模式,以及应用场景

目录 一、发布-订阅模式 二、点对点模式 三、应用场景 一、发布-订阅模式 发布-订阅模式是最常见的消息传递模式,其中消息发布者将消息发送到一个或多个主题(Topic),而订阅者可以选择订阅一个或多个主题来接收消息。每个订阅者…

实现本地缓存-caffeine

目录 实现caffeine cache CacheManager Caffeine配置说明 创建自定义配置类 配置缓存管理器 编写自动提示配置文件 测试使用 创建测试配置实体类 创建测试配置类 创建注解扫描的测试实体 创建单元测试类进行测试 实现caffeine cache CacheManager SimpleCacheManag…

香橙派4和树莓派4B构建K8S集群实践之七: Jenkins

目录 1. 说明 2. 步骤 2.1 准备工作 2.2 安装 2.2.1 用jenkins原站for k8s的安装仓方法安装 2.2.2 Helm 安装 3. 相关命令 4. 遇到的问题 5. 参考 1. 说明 在k8s上部署jenkins,并用 jenkins.k8s-t2.com访问在namespace为devops下安装在指定节点k8s-master-…

欧姆龙以太网模块如何设置ip连接 Kepware opc步骤

在数字化和自动化的今天,PLC在工业控制领域的作用日益重要。然而,PLC通讯口的有限资源成为了困扰工程师们的问题。为了解决这一问题,捷米特推出了JM-ETH-CP转以太网模块,让即插即用的以太网通讯成为可能,不仅有效利用了…

字符函数和字符串函数上篇(详解)

❤️ 作者简介 :RO-BERRY 致力于C、C、数据结构、TCP/IP、数据库等等一系列知识,对纯音乐有独特的喜爱 📗 日后方向 : 偏向于CPP开发以及大数据方向,如果你也感兴趣的话欢迎关注博主,期待更新 字符函数和字符串函数 &a…

Leetcode每日一题(困难):1851. 包含每个查询的最小区间(2023.7.18 C++)

目录 1851. 包含每个查询的最小区间 题目描述: 实现代码与解析: 排序 哈希 原理思路: 1851. 包含每个查询的最小区间 题目描述: 给你一个二维整数数组 intervals ,其中 intervals[i] [lefti, righti] 表示第 i…

OpenCV——总结《车牌识别》

1.图片中的hsv hsv提取蓝色部分 # hsv提取蓝色部分 def hsv_color_find(img):img_copy img.copy()cv2.imshow(img_copy, img_copy)"""提取图中的蓝色部分 hsv范围可以自行优化cv2.inRange()参数介绍:第一个参数:hsv指的是原图第二个参…

初识vue3/setup/ ref()/ computed/watch/生命周期/父传子

创建项目先不着急学 main.js变了 新加setup reactive ref() computed watch 生命周期 父传子 子传父 ref/模板引用 暴露子组件属性 跨层传数据 defineOptions

用OpenCV进行图像分割--进阶篇

1. 引言 大家好,我的图像处理爱好者们! 在上一篇幅中,我们简单介绍了图像分割领域中的基础知识,包含基于固定阈值的分割和基于OSTU的分割算法。这一次,我们将通过介绍基于色度的分割来进一步巩固大家的基础知识。 闲…

【JavaEE】DI与DL的介绍-Spring项目的创建-Bean对象的存储与获取

Spring的开发要点总结 文章目录 【JavaEE】Spring的开发要点总结(1)1. DI 和 DL1.1 DI 依赖注入1.2 DL 依赖查询1.3 DI 与 DL的区别1.4 IoC 与 DI/DL 的区别 2. Spring项目的创建2.1 创建Maven项目2.2 设置国内源2.2.1 勾选2.2.2 删除本地jar包2.2.3 re…

C++万字自学笔记

[TOC] 一、 C基础 C的IDE有CLion、Visual Studio、DEV C、eclipse等等&#xff0c;这里使用CLion进行学习。 0. C初识 0.1 第一个C程序 编写一个C程序总共分为4个步骤 创建项目创建文件编写代码运行程序 #include <iostream>int main() {using namespace std;cout…

提车自检手册(3系,其他车辆类似)

一、检查铭牌 1. 检查铭牌车辆生产日期&#xff0c;大于半年pass&#xff0c;玻璃、大灯、轮胎的生产日期不得大于车辆生产日期 二、检查轮胎 1. 是否全部为米其林轮胎 zp 4 防爆胎2. 检查全部轮胎日期&#xff0c;4个数字&#xff0c;后俩位年份&#xff0c;前俩位第几周 …

2.7 进制转换与mac

文章目录 2.7 进制转换与MAC进制转换MAC地址MAC地址与IP地址的关系总结 2.7 进制转换与MAC 进制转换 在计算机科学中&#xff0c;进制转换是将一个数值从一种进制表示转换为另一种进制表示的过程。常见的进制包括二进制&#xff08;base-2&#xff09;、十进制&#xff08;ba…

Vant源码解析(四)----Popup弹出层,详解样式方法

这个功能&#xff0c;自己也手写过&#xff0c;毕竟有很多弹窗的嘛。 我自己写就是&#xff1a;一个背景层&#xff0c;然后一个盒子里面放内容。再写个显示隐藏事件。够够的了。 Vant的Popup弹出层 页面结构 短短一个背景加内容盒子&#xff0c;vant套了几层。 这是引用的组件…

# Pytorch 深度卷积模型的特征可视化

Pytorch 深度卷积模型的特征可视化 1. 模型构建与可视化1.1 确定当前模型各层名称1.2 模型构建1.3 模型训练2. 训练过程可视化与特征图2.1 获取完整节点信息2.2 可视化参考文献资料1. 模型构建与可视化 1.1 确定当前模型各层名称 可视化模型的特征层需要打印各层的名称: 安装…

数据结构单向循环链表,创建以及增删改查的实现

一、单向循环链表的描述 循环链表&#xff1a;是另一种形式的链式存储结构。其特点是表中最后一个结点的指针域指向头节点&#xff0c;整个链表形成一个环。 单向循环链表的操作和单链表操作基本一致&#xff0c;差别在于&#xff1a;当链表遍历时&#xff0c;判别当前指针p是…