1

私は約10,000の都市を持つ非常に大きなTSPを解決しようとしています。タスクを並列化するために、これらの都市をクラスターに分割し、クラスターごとにTSPを解決したいと思います。

都市をクラスターに分離できる方法が必要です(都市の密度/クラスター内の各都市間の近接度に基づいて)。

誰かがこれを行うための効率的な順序を知っていますか?

4

2 に答える 2

5

解が最適解よりも最大で2倍悪いことを約束する単純な近似アルゴリズムがあります(少なくとも、私が正しく覚えていれば、ユークリッド距離では)。アルゴリズムは次のとおりです。最小スパニングツリーを取得します。木の端を使って移動します。

自分で発明するのではなく、より良い近似アルゴリズムを研究したいと思います。

クラスターに分離するために、それを実行したい場合は、K-meansと他のアルゴリズムがあります(同じ記事にあります)

于 2012-12-14T05:27:30.247 に答える
0

とにかくポイントをクラスターに分離するための、まさにあなたが探しているツールである密度ベースのクラスタリングアルゴリズムがいくつかあります。

DBSCANは、他のものが派生する主要なものです。OPTICSはDBSCANの拡張であり、それ自体はクラスタリングを生成しませんが、クラスターを抽出するために検査できるポイントのプロットを作成します(クラスターを自動的に抽出するアルゴリズムの別の部分もあります)。フレキシブル。これらは両方とも、Rツリーなどの適切なインデックス構造を使用すると改善されます。ELKI、scikit、WEKAなどのツールキットには実装があります。

(そして、j_random_hackerが言うように、このようにすることによってTSPのグローバルな最適性が保証されるわけではありません)

于 2013-05-07T09:09:44.617 に答える