VRP的优质解与劣质解的区别分析

2023-12-15 04:12

本文主要是介绍VRP的优质解与劣质解的区别分析,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

在这里插入图片描述

在这里插入图片描述

关键词

数据挖掘 启发式 车辆路由问题 问题特定知识

文章概述

启发式算法是解决复杂组合优化问题时的首选武器。尽管大量的研究集中在对特定问题调整启发式,但很少有研究来研究问题本身的结构特征。

文章认为,关于区分组合优化问题的好解和不那么好解的结构特征的知识,可以有助于设计有效的启发式方法。文章开发了一种基于数据挖掘的方法,可以生成这样的知识,并将其应用于车辆的路径问题。
通过定义几个度量标准来描述VRP解决方案和VRP实例,并为各种实例生成和分类192.000个解决方案。
有了这些指标,我们就能够区分最优解和非最优解,准确率高达90%。我们讨论了良好的VRP解决方案的最显著的特征,并展示了如何使用由此产生的知识来提高现有的启发式方法的性能。

设计指标,然后用数据挖掘的方式判定哪些指标有用,然后用这些指标区分不同解,也没挖出知识来啊。。。由果推因,只能说是相关性吧,大概率有用之类的,

研究背景

对于许多组合优化问题,基于局部搜索或构造策略的启发式算法已经被证明可以提供解决方案质量和计算时间之间的最佳权衡。近年来,启发式策略的效率在很大程度上取决于它如何利用正在解决的问题的特点。为了尽可能高效,启发式搜索策略需要一些关于好的解决方案和不太好的解决方案的区别的知识。

然而,在许多情况下,这一知识仅限于一个琐碎的事实,即前者的目标函数将比后者的目标函数更接近最优。一个在很大程度上仍未回答的问题是,是否有可能确定好的解决方案在结构上与不那么好的解决方案是否不同,也就是说,我们是否可以仅通过查看解决方案本身而不是它们的目标函数值来区分接近最优的解决方案和不那么接近最优的解决方案。

研究目的

研究好的解决方案的特点,而不是那些不太好的解决方案的VRP,这些信息可以用来指导搜索。

例如,如果有可能识别出不太可能出现在良好的解决方案中的边,则可以使用一种策略,试图删除这些边。指导启发式搜索过程并使其适应所解决的特定问题实例的想法已经引起了大量的关注。

使用数据挖掘技术来寻找区分VRP的好的和不太好的解决方案的特征。

数据挖掘的目的是找到能够在大量数据中识别模式和建立关系的模型。与统计数据相反,这些模型的目标不是“推断真实的分布,而是尽可能准确地预测未来的数据”。
换句话说,通过数据挖掘,我们的目标是预测以前未见过的数据,而不是解释手头的数据,重点是关联,而不是因果关系。

预测模型并不一定能提供因果关系的解释。然而,也有可能推导出一些因果理论。如果使用简单的线性模型作为偏好模型,就可以通过观察它们的系数来解释不同特征的相对重要性。如果内部模型是非线性的,可以使用规则提取来获得一组解释预测的规则。

这样,我们就能从数据中推断出理论。由于这些理论是广义的发现,可以很容易地应用于新的数据,问题的特征通常是一组相关的或具有代表性的实例,例如基准测试实例。如果关于问题的发现可以推广到所有相关的实例,那就是特定于问题的知识。

度量指标

解决方法的度量

为了发现好的解决方案的典型特征,我们需要用定义的度量来“度量”一个解决方案,也就是说,我们需要将解决方案的结构转换为定量度量,然后作为预测模型的输入。这一步是高度探索性的,因为没有关于应该包括哪些指标的指导方针,作为一个经验法则,我们可以定义的指标越多,分类学习者检测到模式的机会就越大。

解决方案指标的可视化。重心为G(左)的路线采用最长边缘(S2)、连接至仓库(S3)及其深度(S9)进行测量。此外,我们通过测量每个节点到中心线的距离来确定其宽度(S5)和紧凑度(S7),并以弧度(S6)得出跨度。
在这里插入图片描述
在这里插入图片描述

这些指标及其度量在上图中可视化。前两个指标反映了运筹学领域的观察结果,特别是关于著名的旅行推销员问题。我们期望好的解决方案往往有更少的交叉点和更少的极长的边。相比之下,其他指标的影响似乎还不太完善。度量S3是探索性的,我们假设在好的解决方案中,连接仓库和客户的边缘应该相当短。直观地看,路线应清晰分开(S4),宽度(S5)和深度(S9)。

因此,我们期望好的解决方案平均会有更少、更宽、更深的路线,从而导致它们之间的距离相对较高。路线的宽度也可以通过查看客户朝向仓库的弧度来解释(S6)。狭窄的路线也往往对其客户的弧度有较小的差异,这是在流行的扫描启发式中使用的。路线的形状可以更像一条线(非常紧凑),也可以更圆形(不那么紧凑),我们用S7来测量。请注意,度规的紧致度与度规的宽度非常相似,因为紧凑的路线往往不那么宽。然后,紧致度也可以通过一个路线的客户的弧度的变化来衡量(S8)。最后,使用S10,我们根据交付的客户的数量来衡量路线的平衡程度。

路由的数量通常也是标准VRP中的解决方案的一部分。但是,为了简单起见,我们假设路由的数量是预先定义的,并且在接近最优和各自的非最优解中的路由的数量总是相同的。得出这一假设的原因是,我们研究了溶液的结构对其质量的影响,而不同数量的路由可能会显著改变解的结构

实例的度量

上述解决方案指标的值取决于各自的实例。例如,如下图所示。对于这两种情况,每条路线的平均宽度在最优解中都较低,由此可以得出结论,低宽度是好解的一个预测器。但是,这两个实例之间的值并没有可比性,因为这些实例在路由的数量和客户的数量和位置上有所不同。

分类器不知道两组解度量(对于接近最优和非最优解)是否来自同一实例并成对,只有比较绝对值才会导致错误或没有预测。因此,我们需要根据各自的实例来规范化解决方案的度量标准。这就需要定义能够捕获实例特征的相关度量标准。
实例度量对于规范化实例之间的解决方案度量是必要的。在这个例子中,两个实例的接近最优解的宽度都更小,但是,在实例1中绝对数字要高得多,即使两个实例都来自同一个类。
在这里插入图片描述
指标I1和I2是基本的实例参数。产能利用率(I3)由需求除以所有车辆的可用产能。这个值对于每个实例的所有计算解都是相同的,因为我们确定了车辆的数量。最后五个指标表明了客户对彼此和仓库的相对位置。例如,如果客户更集群,I4更低,如果客户均匀分散,I4更高。同样地,如果仓库处于更中心的位置,I7也会更低。对于每个客户,我们也从仓库的角度来确定弧度。那么,如果仓库位于边缘,客户更聚集,I8的值较低。

创新点

研究的创新性在于其方法论的方法。它使用数据挖掘来生成关于VRP解决方案的见解,这是该领域中的一种新颖方法。这种预测建模用于指导设计更高效的启发式算法,可能适用于广泛的组合优化问题。

通过上述过程,我们希望通过以下方式获得特定于问题的知识。我们生成实例,对于每个实例,我们计算一个接近最优的解和一个非最优的解。然后,我们从两个解决方案中提取已定义的特征,并使用分类学习器来找到两种解决方案类型之间的区分模式。

研究思路

我们想了解一个好的解决方案的特点。根据不同的公式,我们可以问是什么区分最优或接近最优解和更差的解。如果我们找到这样的有区别的属性,它们可以帮助我们更有效地找到这些好的解,每个启发式的目标是什么。因此,我们需要计算和比较不同质量的解。找到这些特性之后,根据这些特性设计启发式算法,实验表明,当问题实例增加复杂性时,特定问题的知识变得更有价值。随着更高的复杂性,在搜索的每一步中可能的选项的数量也会增加,因此,即使是有限的知识也可以帮助做出更好的决策。

研究结果

研究结论与讨论

先定义一些特性,然后根据数据挖掘技术,生成大量的实例来判断这些特性的有效性,然后根据这些特性设计启发式算法求解问题。

本文介绍了一个推导组合优化问题的问题特定知识的框架,并将其应用于车辆路径问题。该框架的核心是数据挖掘,这是一种发现和提取模式并将其推广到新数据的技术。因此,最具挑战性的步骤是定义相关度量来度量解决方案的结构和实例的结构。这是一项探索性的任务,需要对问题有更深入的理解和一些创造力。

在VRP的例子中,路线的紧致性、宽度和弧度的跨度,以及相交边的数量和连接边到仓库的距离是接近最优和非最优解的区别特征。

证明了这些特征可以通过引导搜索过程来更好地创建一个好的启发式。特定问题的知识可以到特定的启发式中,可能取决于它的设计。在我们的例子中,我们简单地调整了边缘的评价函数,得到了更好的结果。一般来说,围绕特定问题的知识建立一个启发式似乎是合理的,而不是建立相反的方法。如果我们知道好的解决方案的结构特征,那么设计操作符和函数来引导我们到达似乎是明智的

在这项工作中,我们只是触及了可能的表面。在推导出的规则集的帮助下,指南可以以更精细的具体方式设计。在启发式的每一步中,我们可以识别相关的规则,并相应地调整参数和操作符,例如,优先消除某些交叉口,而不是减少路线宽度。这个过程可能是启发式设计自动化的第一步。给定一个特定的问题,以及元启发式设计、操作符和特定问题知识的数据库,一个有效的启发式几乎可以自主开发,辅以开发人员的创造力和经验。

我以为这些基于问题的知识是用数据挖掘挖出来的,结果是自己定义的,然后用数据挖掘证实了是有用的,这是假设检验?欺负我概率与统计学的不好啊。这相关性检验??

后续工作

目前有50多篇引用了这篇文献,想知道他们是怎么使用的。学一学别人的思路,顺藤摸瓜试一下。2023年12月14日17:21:09
在这里插入图片描述

这篇关于VRP的优质解与劣质解的区别分析的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/495067

相关文章

Nginx分布式部署流程分析

《Nginx分布式部署流程分析》文章介绍Nginx在分布式部署中的反向代理和负载均衡作用,用于分发请求、减轻服务器压力及解决session共享问题,涵盖配置方法、策略及Java项目应用,并提及分布式事... 目录分布式部署NginxJava中的代理代理分为正向代理和反向代理正向代理反向代理Nginx应用场景

Redis中的有序集合zset从使用到原理分析

《Redis中的有序集合zset从使用到原理分析》Redis有序集合(zset)是字符串与分值的有序映射,通过跳跃表和哈希表结合实现高效有序性管理,适用于排行榜、延迟队列等场景,其时间复杂度低,内存占... 目录开篇:排行榜背后的秘密一、zset的基本使用1.1 常用命令1.2 Java客户端示例二、zse

Redis中的AOF原理及分析

《Redis中的AOF原理及分析》Redis的AOF通过记录所有写操作命令实现持久化,支持always/everysec/no三种同步策略,重写机制优化文件体积,与RDB结合可平衡数据安全与恢复效率... 目录开篇:从日记本到AOF一、AOF的基本执行流程1. 命令执行与记录2. AOF重写机制二、AOF的

MySQL中VARCHAR和TEXT的区别小结

《MySQL中VARCHAR和TEXT的区别小结》MySQL中VARCHAR和TEXT用于存储字符串,VARCHAR可变长度存储在行内,适合短文本;TEXT存储在溢出页,适合大文本,下面就来具体的了解... 目录一、VARCHAR 和 TEXT 基本介绍1. VARCHAR2. TEXT二、VARCHAR

MyBatis Plus大数据量查询慢原因分析及解决

《MyBatisPlus大数据量查询慢原因分析及解决》大数据量查询慢常因全表扫描、分页不当、索引缺失、内存占用高及ORM开销,优化措施包括分页查询、流式读取、SQL优化、批处理、多数据源、结果集二次... 目录大数据量查询慢的常见原因优化方案高级方案配置调优监控与诊断总结大数据量查询慢的常见原因MyBAT

分析 Java Stream 的 peek使用实践与副作用处理方案

《分析JavaStream的peek使用实践与副作用处理方案》StreamAPI的peek操作是中间操作,用于观察元素但不终止流,其副作用风险包括线程安全、顺序混乱及性能问题,合理使用场景有限... 目录一、peek 操作的本质:有状态的中间操作二、副作用的定义与风险场景1. 并行流下的线程安全问题2. 顺

Python绘制TSP、VRP问题求解结果图全过程

《Python绘制TSP、VRP问题求解结果图全过程》本文介绍用Python绘制TSP和VRP问题的静态与动态结果图,静态图展示路径,动态图通过matplotlib.animation模块实现动画效果... 目录一、静态图二、动态图总结【代码】python绘制TSP、VRP问题求解结果图(包含静态图与动态图

MyBatis/MyBatis-Plus同事务循环调用存储过程获取主键重复问题分析及解决

《MyBatis/MyBatis-Plus同事务循环调用存储过程获取主键重复问题分析及解决》MyBatis默认开启一级缓存,同一事务中循环调用查询方法时会重复使用缓存数据,导致获取的序列主键值均为1,... 目录问题原因解决办法如果是存储过程总结问题myBATis有如下代码获取序列作为主键IdMappe

Java中最全最基础的IO流概述和简介案例分析

《Java中最全最基础的IO流概述和简介案例分析》JavaIO流用于程序与外部设备的数据交互,分为字节流(InputStream/OutputStream)和字符流(Reader/Writer),处理... 目录IO流简介IO是什么应用场景IO流的分类流的超类类型字节文件流应用简介核心API文件输出流应用文

python中getsizeof和asizeof的区别小结

《python中getsizeof和asizeof的区别小结》本文详细的介绍了getsizeof和asizeof的区别,这两个函数都用于获取对象的内存占用大小,它们来自不同的库,下面就来详细的介绍一下... 目录sys.getsizeof (python 内置)pympler.asizeof.asizeof