ハミルトン閉路問題
From Wikipedia, the free encyclopedia
ハミルトン閉路問題(Hamiltonian Cycle Problem)とは、与えられたグラフにおいて、すべての頂点を一度だけ通って出発点に戻る路(ハミルトン閉路)が存在するかどうかを判定する問題である[1][2]。
名称は、1857年にこの問題を正十二面体上のパズル「ハミルトンの世界一周ゲーム(Icosian Game)」として考案した数学者ウィリアム・ローワン・ハミルトンに由来する[2]。
与えられたグラフが有向グラフの場合は有向ハミルトン閉路問題、無向グラフの場合は無向ハミルトン閉路問題と呼ばれる。
ハミルトン閉路の「出発点に戻る(閉路である)」という条件を緩和し、全頂点を一度ずつ通る「路」の有無を問う問題は、ハミルトン路問題と呼ばれる。
また、無向ハミルトン閉路問題は、各辺に重み(距離)が付けられたグラフにおいて最小重量のハミルトン閉路を求める巡回セールスマン問題(TSP)の特殊ケース(すべての辺の重みが等しい場合)と見なすことができる。
計算複雑性
ハミルトン路・閉路問題は、有向グラフおよび無向グラフのいずれにおいてもNP完全問題であることが、1972年にリチャード・カープによって証明された[3]。
また、以下の特殊なグラフにおいても、NP完全性は維持される:
- 二部グラフ[4]
- 最大次数が3の無向平面グラフ[5]
- 入次数・出次数が共に2以下の有向平面グラフ[6]
- 橋(グラフ理論)のない無向平面3-正則二部グラフ
- 3-連結3-正則二部グラフ[7]
- 格子グラフの部分グラフ[8]
- 格子グラフの立方体部分グラフ[9]
一方で、4-連結平面グラフや2-連結平面グラフなどについては、常にハミルトン閉路が存在することが証明されており、線形時間で解を求めるアルゴリズムが存在する[10]。