2-opt法とは2-opt法は1958年にCroesによって考えられたアルゴリズムです。最近傍法よりも総距離が短い結果が出ます。 文章で書いても難しいので、画像で説明してゆきます。 まず、以上のような状態になっているグラフで説明します。i、next[i]、j、next[j]はそれぞれ都市の番号です。next[i]、next[j]はそれぞれ、i、jの次に訪れる都市を表しています。 まず、都市i-next[i]間と都市j-next[j]間の距離の和、それと都市i-j間と都市next[i]-next[j]間の距離の和を算出します。 図の場合、もともとあった都市i-next[i]間と都市j-next[j]間の距離の和よりも都市i-j間と都市next[i]-next[j]間の距離の和のほうが短いことがわかります。つまりオレンジの距離の方が短いということです。 そこで、青い矢印をオレンジの矢印に切り替
![C言語で2-opt法を実装してみた | Withcation](https://cdn-ak-scissors.b.st-hatena.com/image/square/1d23eaa9b0ca65351ee21e000eacc68d558a095c/height=288;version=1;width=512/https%3A%2F%2Fwithcation.com%2Fwp%2Fwp-content%2Fplugins%2Fall-in-one-seo-pack%2Fimages%2Fdefault-user-image.png)