
以下文章来源于数据魔术师 ,作者向柯玮
前言
各位看客老爷们,大家好~

今天要为大家带来的干货是multi-start local search算法解决TSP问题(Java的实现)。
大家可不要因为这个算法的名字比较长,就觉得这个这个算法很难,其实没有哦-

这个算法还是非常简单的,希望大家能够通过这个简单的算法来了解面对NP-hard问题,我们可以采取的策略是什么。
算法简介
这个算法,其实大家通过名字就可以知道,一定和Iterated local search(迭代局部搜索算法)存在一定的联系。
(这是当然呀,名字都差不多,还需要你说吗?)

迭代局部搜索算法公众号在之前已经介绍过了,有兴趣的小伙伴可以再看看~
干货|迭代局部搜索算法(Iterated local search)探幽(附C++代码及注释)
这两个算法相似的地方我们就不多说了。我们主要介绍这个算法优势之处。
优势
这种算法,他是多起点的,初始解的生成和遗传算法挺类似的。
通过随机打乱,生成多个随机新解,以此来增大达到最优解的目的。

可能大家光这么看,没啥感觉,我们可以通过数学公式来让大家直观的感受一下。
我们认为有N个城市,令传统的LS搜索的次数为A,传统的MLS搜索次数为A',改进过的MLS搜索次数为A'',可以容易得出下面的公式。

现在让我们再来看看实际的程序跑出来的结果。
这是传统的

本文介绍了多起点局部搜索算法(MLS)解决旅行商问题(TSP)的方法,强调了算法的优势在于通过生成多个随机初始解来增加找到最优解的可能性。文中还对比了MLS与传统LS算法,并提供了Java代码实现,包括启动函数、迭代函数、局部搜索函数和重启动函数,以帮助读者理解算法流程和思想。
最低0.47元/天 解锁文章
2800

被折叠的 条评论
为什么被折叠?



