以下文章来源于数据魔术师 ,作者向柯玮
前言
各位看客老爷们,大家好~
今天要为大家带来的干货
是multi-start local search算法解决TSP问题(Java的实现)。
大家可不要因为这个算法的名字比较长,就觉得这个这个算法很难,其实没有哦-
这个算法还是非常简单的,希望大家能够通过这个简单的算法来了解面对NP-hard问题,我们可以采取的策略是什么。
算法简介
这个算法,其实大家通过名字就可以知道,一定和Iterated local search(迭代局部搜索算法)存在一定的联系。
(这是当然呀,名字都差不多,还需要你说吗?)
迭代局部搜索算法公众号在之前已经介绍过了,有兴趣的小伙伴可以再看看~
干货|迭代局部搜索算法(Iterated local search)探幽(附C++代码及注释)
这两个算法相似的地方我们就不多说了。我们主要介绍这个算法优势之处。
优势
这种算法,他是多起点的,初始解的生成和遗传算法挺类似的。
通过随机打乱,生成多个随机新解,以此来增大达到最优解的目的。
可能大家光这么看,没啥感觉,我们可以通过数学公式来让大家直观的感受一下。
我们认为有N个城市,令传统的LS搜索的次数为A,传统的MLS搜索次数为A',改进过的MLS搜索次数为A'',可以容易得出下面的公式。