繁体   English   中英

TSP的聚类算法

[英]Clustering algorithm for a TSP

我正在尝试用大约10,000个城市解决一个非常大的TSP。 为了并行执行任务,我想将这些城市分为多个集群,并为每个集群求解TSP。

我想要一种方法,可以将我的城市分为多个集群(基于城市的密度/该集群中每个城市之间的接近程度)。

有人知道这样做的有效命令吗?

有一个简单的近似算法,保证该解决方案比最佳解决方案最多糟2倍(如果我没记错的话,至少在欧几里得度量标准中)。 算法为:获得最小生成树。 使用树的边缘移动。

我会研究更好的近似算法,而不是自己发明一个。

要分离为集群,如果您想这样做,可以使用K均值和其他算法(在同一篇文章中)

有几种基于密度的聚类算法,它们只是您要寻找的工具,无论如何将点分离为聚类。

DBSCAN是主要的DBSCAN。 OPTICS是DBSCAN的扩展,它本身不会产生聚类,但是会绘制出可以检查以提取聚类的点图(算法的另一部分也可以自动提取聚类。)DBSCAN更简单,OPTICS更复杂灵活。 使用适当的索引结构(例如R-tree),这两种方法都会变得更好。 工具包中有一些实现,例如ELKI,scikit和WEKA。

(而且,正如j_random_hacker所说,通过这种方式不能保证TSP的全局最优性)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM