簡體   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