GraphUtilities`
GraphUtilities`

FindHamiltonianCycle

As of Version 10, all the functionality of the GraphUtilities package is built into the Wolfram System. »

FindHamiltonianCycle[g]

attempts to find a Hamiltonian cycle.

Details and Options

  • FindHamiltonianCycle functionality is now available in the built-in Wolfram Language function FindHamiltonianCycle.
  • To use FindHamiltonianCycle, you first need to load the Graph Utilities Package using Needs["GraphUtilities`"].
  • FindHamiltonianCycle[g] returns an empty list if no Hamiltonian cycle is found.
  • FindHamiltonianCycle considers the input graph as undirected.
  • FindHamiltonianCycle uses heuristic algorithms to find a Hamiltonian cycle; therefore, there is no guarantee that a Hamiltonian cycle will be found even if one exists.

Examples

open allclose all

Basic Examples  (2)

This defines a small graph and finds a Hamiltonian cycle of the graph:

This function has been superseded by FindHamiltonianCycle in the Wolfram System:

Options  (2)

MaxIterations  (1)

This limits the maximum number of iterations to try to find a Hamiltonian cycle:

RandomSeed  (1)

This specifies a random seed different from the default to try to find a Hamiltonian cycle:

Applications  (1)

This finds all possible Hamiltonian cycles in the graph consisting of bordering countries in South America:

This shows the first of these two cycles; the second is just a reversal of the first:

Properties & Relations  (1)

FindHamiltonianCycle uses heuristic algorithms. Unlike HamiltonianCycles, it is not guaranteed to find a Hamiltonian cycle even when one exists. But for large graphs, FindHamiltonianCycle can sometimes be faster at finding one cycle.

This defines a graph of 500 vertices, and uses these two functions to find a Hamiltonian cycle:

Possible Issues  (1)

FindHamiltonianCycle uses heuristic algorithms, which are not guaranteed to find a Hamiltonian cycle even when one exists:

Wolfram Research (2007), FindHamiltonianCycle, Wolfram Language function, https://reference.wolfram.com/language/GraphUtilities/ref/FindHamiltonianCycle.html.

Text

Wolfram Research (2007), FindHamiltonianCycle, Wolfram Language function, https://reference.wolfram.com/language/GraphUtilities/ref/FindHamiltonianCycle.html.

BibTeX

@misc{reference.wolfram_2020_findhamiltoniancycle, author="Wolfram Research", title="{FindHamiltonianCycle}", year="2007", howpublished="\url{https://reference.wolfram.com/language/GraphUtilities/ref/FindHamiltonianCycle.html}", note=[Accessed: 03-December-2020 ]}

BibLaTeX

@online{reference.wolfram_2020_findhamiltoniancycle, organization={Wolfram Research}, title={FindHamiltonianCycle}, year={2007}, url={https://reference.wolfram.com/language/GraphUtilities/ref/FindHamiltonianCycle.html}, note=[Accessed: 03-December-2020 ]}

CMS

Wolfram Language. 2007. "FindHamiltonianCycle." Wolfram Language & System Documentation Center. Wolfram Research. https://reference.wolfram.com/language/GraphUtilities/ref/FindHamiltonianCycle.html.

APA

Wolfram Language. (2007). FindHamiltonianCycle. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/GraphUtilities/ref/FindHamiltonianCycle.html