LKH クロスプラットフォーム テクノロジに基づく Python 3 巡回セールスマン問題 (TSP) 近似ソルバー: 完全ガイドと詳細なコード分析

導入

組み合わせ最適化問題の中でも、巡回セールスマン問題 (TSP) は最も古典的な問題の 1 つです。一連の都市と各都市間の距離が与えられた場合、TSP の目標は、各都市を 1 回だけ訪問し、最終的に開始都市に戻る最短経路を見つけることです。この問題は簡単そうに見えますが、実際には NP 困難です。つまり、TSP のすべてのインスタンスを解決できる既知の多項式時間アルゴリズムは存在しません。

この記事では、Python 3 を使用して実装されたクロスプラットフォーム近似アルゴリズムである LKH を使用して TSP 問題を解決する方法を示します。

1. LKHアルゴリズムの概要

LKH (Lin-Kernighan-Helsgaun) は、TSP 問題を解決するためのヒューリスティック アルゴリズムです。中心となるアイデアは、ルート上で都市のペアを交換することで現在のソリューションを継続的に最適化することです。この方法は k-opt 交換と呼ばれます。

k-opt 交換: 解 (ルート) があるとします。k-opt 交換は、この解から k 個のエッジを削除し、それらを別の方法で再接続して、新しい、おそらくより良い s 解を取得することです。

2. Python3環境の準備

まず、Python 3 が環境にインストールされていることを確認する必要があります。次のコマンドを使用して確認できます。

python --version

Python 3 をまだお持ちでない場合は、公式 Web サイトからダウンロードしてインストールできます。

3. 必要なライブラリをインストールする

のために

おすすめ

転載: blog.csdn.net/qq_38334677/article/details/132991082