グラフ g 中の最短のハミルトン(Hamilton)路を求める.
FindHamiltonianPath[g,s,t]
s から t までの最短のハミルトン路を求める.
FindHamiltonianPath
グラフ g 中の最短のハミルトン(Hamilton)路を求める.
FindHamiltonianPath[g,s,t]
s から t までの最短のハミルトン路を求める.
詳細とオプション
- FindHamiltonianPathは,ハミルトン路問題としても知られている.
- ハミルトン路は各頂点を厳密に1度訪れる.
- FindHamiltonianPathは,ハミルトン路が存在しない場合はリスト{}を返す.
例題
すべて開く すべて閉じる例 (2)
g = PolyhedronData["Dodecahedron", "Skeleton"];FindHamiltonianPath[g]HighlightGraph[g, PathGraph[%]]g = PolyhedronData["Dodecahedron", "Skeleton"];FindHamiltonianPath[g, 1, 5]HighlightGraph[g, PathGraph[%]]スコープ (3)
FindHamiltonianPathは無向グラフに使うことができる:
FindHamiltonianPath[[image]]FindHamiltonianPath[[image]]FindHamiltonianPathは大きいグラフに使うことができる:
g = RandomGraph[{1000, 5000}];Timing[FindHamiltonianPath[g]]//Shortオプション (1)
DistanceFunction (1)
d = SparseArray[{{1, 2} -> 1, {2, 1} -> 1, {6, 1} -> 1, {6, 2} -> 1, {5, 1} -> 1, {1, 5} -> 1, {2, 6} -> 1, {2, 3} -> 10, {3, 2} -> 10, {3, 5} -> 1, {5, 3} -> 1, {3, 4} -> 1, {4, 3} -> 1, {4, 5} -> 15, {4, 1} -> 1, {5, 4} -> 15, {5, 2} -> 1, {1, 4} -> 1, {2, 5} -> 1, {1, 6} -> 1}, {6, 6}, Infinity];g = [image];path = FindHamiltonianPath[g, DistanceFunction -> (d[[#1, #2]]&)]HighlightGraph[g, PathGraph[path]]アプリケーション (2)
8×8のチェス盤上で,各正方形を厳密に1度訪れるチェスの駒のナイトの連続する動きを求める:
g = KnightTourGraph[8, 8];path = FindHamiltonianPath[g]checkerboard = ArrayPlot[Table[Mod[j + i, 2], {i, 8}, {j, 8}], ColorRules -> {1 -> RGBColor[0, .55, .77], 0 -> RGBColor[.67, .9, .99]}, Frame -> False, DataRange -> {{1, 8}, {1, 8}}];Show[{checkerboard, HighlightGraph[g, PathGraph[path], GraphHighlightStyle -> "DehighlightHide", EdgeStyle -> Directive[Thick, Red]]}]europe = CountryData["Europe"];pos = GeoPosition[CountryData[#, "CenterCoordinates"]]& /@ europe;adj = Table[QuantityMagnitude@GeoDistance[i, j], {i, pos}, {j, pos}] /. Quantity[0., _] -> Infinity;g = WeightedAdjacencyGraph[europe, adj];FindHamiltonianPath[g, Entity["Country", "Greece"], Entity["Country", "Germany"]]//ShallowGeoGraphics[{Thick, Red, GeoPath[%]}]特性と関係 (2)
テキスト
Wolfram Research (2015), FindHamiltonianPath, Wolfram言語関数, https://reference.wolfram.com/language/ref/FindHamiltonianPath.html.
CMS
Wolfram Language. 2015. "FindHamiltonianPath." Wolfram Language & System Documentation Center. Wolfram Research. https://reference.wolfram.com/language/ref/FindHamiltonianPath.html.
APA
Wolfram Language. (2015). FindHamiltonianPath. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/FindHamiltonianPath.html
BibTeX
@misc{reference.wolfram_2026_findhamiltonianpath, author="Wolfram Research", title="{FindHamiltonianPath}", year="2015", howpublished="\url{https://reference.wolfram.com/language/ref/FindHamiltonianPath.html}", note=[Accessed: 16-August-2026]}
BibLaTeX
@online{reference.wolfram_2026_findhamiltonianpath, organization={Wolfram Research}, title={FindHamiltonianPath}, year={2015}, url={https://reference.wolfram.com/language/ref/FindHamiltonianPath.html}, note=[Accessed: 16-August-2026]}