大规模旅行商TSP问题解决方案(基于分层规划,整数规划)

此实验的代码的github
同步至我的阿里云博客(https://yq.aliyun.com/users/1320894660843258)

#分层规划的旅行商问题解决方案
/上周在无意间跟室友讨论到TSP问题时,我觉得应该把这个问题整合一下,并给出自己的解决方案,同时代码公布在github,有人做成其他版本的与其他人探讨共同进步。
无特别说明情况下,聚类指的是kmeans聚类
/

##摘要
本文采用分层规划的思想,层层聚类,直至最底层单个城市群数量满足一定阈值,然后利用整数规划求最底层城市群的精确解,单层之间的城市群路径规划同样采用整数规划求精确解,这里的城市群路径规划指的是城市群的聚类中心之间的路径规划,最高层为闭合路径的TSP问题,以下单层包括底层都为确定起点终点的不闭合TSP问题,这里的不闭合TSP问题的起点终点贪心的由上一级城市群聚类中心求出的路径来确定哪两个城市群相邻,并由此计算此相邻城市群的最近子城市群对。

求出近似路径后再进行局部的随机优化。

/简单的讲,类比在全球寻找一条可以走遍所有城市的最短路,每个城市只能访问一次,我们先找大范围的路径,如亚洲->非洲->欧洲->北美洲->南美洲->大洋洲->亚洲,然后在往下分层,比如非洲,先计算非洲与它的前驱亚洲后继欧洲之间最近的国家对,比如是埃及-伊朗,利比亚-意大利,这样确定了进入非洲的起点埃及,终点利比亚,在非洲国家之间解决走完所有国家且仅访问一次的路径,再针对其中某个国家进行分析,直至到底层的城市为止。最后路径规划出来后再对求出的路径进行局部的优化,特别需要关注的是包含起点终点部分的路径。/

##综述
对于大规模TSP问题,尚没有太好的有效解决方案,现在智能算法如蚁群算法,遗传算法,人工神经网络更为流行与实用。这些在其他文章中可以找到相应的内容。遗传算法(GA)寻解空间好大,我超喜欢GA的。

##问题建

你可能感兴趣的:(机器学习,tsp,np问题,机器学习,算法,人工智能)