TSP 的聚类分析算法

Clustering algorithm for a TSP

本文关键字:算法 聚类分析 TSP      更新时间:2023-10-16

我正在尝试解决一个拥有大约 10,000 个城市的非常大的 TSP。为了并行完成我的任务,我想将这些城市划分为集群,并解决每个集群的 TSP。

我想要一种方法,可以将我的城市分成集群(基于城市密度/该集群中每个城市之间的距离)。

有谁知道这样做的有效顺序?

有一个简单的近似算法,它承诺解决方案最多是最佳解决方案的 2 倍(如果我没记错的话,至少在欧几里得度量中)。算法是:获取最小生成树。使用树边进行旅行。

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

要分离到集群,如果你想这样做,有 K 均值和其他算法(在同一篇文章中)

有几种基于密度的聚类算法正是您正在寻找的工具,无论如何都可以将点分隔成聚类。

DBSCAN是派生其他的主要版本。 OPTICS 是 DBSCAN 的扩展,它本身不会生成聚类,但会绘制一个点图,您可以检查这些点以提取聚类(算法的另一部分也可以自动提取聚类。 DBSCAN更简单,光学更灵活。 使用适当的索引结构(如 R 树)会更好地满足这两种情况。 在 ELKI、scikit 和 WEKA 等工具包中都有实现。

(而且,正如j_random_hacker所说,这样做并不能保证TSP的全局最优性)