1. 巡回セールスマン問題の概要
巡回セールスマン問題 (TSP) は、古典的な組み合わせ最適化問題です。つまり、一連の都市と各都市間の距離が与えられた場合、問題は、各都市を 1 回訪れて最初の都市に戻る最短ルートを見つけることです。
この問題は物流、ルート設計、生産など幅広い分野に応用できます。
2. 基本アルゴリズム: 2-opt
2-opt は、TSP 問題を解決するためのヒューリスティックなアプローチです。これは、2 つの都市のパスを交換することで現在のソリューションを改善する試みです。
2.1 2-opt アルゴリズムのステップ:
- 任意の解決策から始めてください。
- 隣接しないエッジの各ペア (AB と CD) について、2 つのエッジを (AC と BD に) スワップすることでパスの全長を短縮できるかどうかを確認します。
- 可能であれば、この交換を実行してください。
- パスを改善できなくなるまで、手順 2 と 3 を繰り返します。
2.2 Python コードの実装
def two_opt(route):
best = route
improved =