巡回セールスマン問題と凸図形の関係
1. 初めに
筆者の巡回セールスマン問題の解法はアルゴリズムによるものです。従って数学的にNP問題などの解法を求めている方には参考にならないかもしれません。
また、N!を多項式に展開することを目的としているのではなく、いかに最小の計算量で求めるかを目的としています。
なお、以下の記述はユークリッドの2次元空間を前提としています。
2. 最短パスは交差する線分を含まない
図1
図2
2.1 図1の説明
図1においてP1とP2は、ノードABCD以外のノードを含むパスとします。
また図1で線分ABと線分CDは交差しています。
注意点は交差する交点が線分ABと線分CDの内部に存在することであって、例えば線分ABを無限線に延長したとき、線分CDと交差した交点のケースは当てはまりません。このケースは線分の外部で交差しているとみなします。
2.2 より最短に
図2を使って線分ABの距離+線分CDの距離が、線分ADの距離+線分BCより長いことを証明したいと思います。
AD<AE+DE・・・①
BC<CE+BE・・・②
①式と②式を足すと
AD+BC<AE+BE+CE+DE・・・③
③式の右辺を整理すると
AD+BC<AB+CDとなり、証明が終了しました。
2.3 パス全体をみると
P1+P2+AD+BC<P1+P2+AB+CDを整理すると
AD+BC<AB+CDとなりパス全体においても交差する線分を最短につなぎかえられることがわかります。
3. 凸図形を構成するノード集合の最短パス
「凸図形を構成するノード集合は巡回セールスマン問題において外周が最短距離となる」(外周とは凸図形を描画する線分そのものを意味します。)
3.1 証明
① 凸図形の外周以外の任意の線分(線分AB)を1つ選択します。
② すべてのノードを線分ABの左右(あるいは上下)に分類してノード集合Cとノード集合Dを作ります。このとき、ノード集合C、Dは絶対に空集合とならないことを確認してみてください。
③ 巡回セールスマン問題の解は全てのノードを1回だけ含むことが条件となりますから、
線分ABのノードA、Bとノード集合C、Dの全てのノードを含む必要があります。となるとノード集合Cのいずれかのノードとノード集合Dのいずれかのノードをつなぐ機会(線分)が最低1回は必要となります。この線分は必ず線分ABと交差しますので確認してみてください。これは「2」で証明した「最短パスは交差する線分を含まない」という条件に反します。故に、 凸図形の外周以外の任意の線分は最短パスには含まれない。従って、残る凸図形の外周だけが最短パスを構成することになります。
4 最後に
途中、証明を省いた部分がありますが、そう難しくないものなので興味のある方は証明してみてください。この記事は厳密な論文を書くことを目的としていないので筆者の怠慢をお許しください。