You are on page 1of 10

Hamiltonian cycles

 A Hamiltonian cycle is a cycle that goes through every


node of the graph exactly once.
 In the mathematical field of graph
theory the Hamiltonian path problem and
the Hamiltonian cycle problem are problems of
determining whether a Hamiltonian path or
a Hamiltonian cycle exists in a
given graph (whether directed or undirected).
Contd..
• There is a simple relation between the two problems.
The Hamiltonian path problem for graph G is equivalent
to the Hamiltonian cycle problem in a graph H obtained
from G by adding a new vertex and connecting it to all
vertices of G.
• Hamiltonian paths and cycles are named after William
Rowan Hamilton who invented the Icosian game, now
also known as Hamilton's puzzle, which involves finding
a Hamiltonian cycle in the edge graph of
the dodecahedron.
PROPERTIES
• Any Hamiltonian cycle can be converted to a Hamiltonian path by
removing one of its edges, but a Hamiltonian path can be extended
to Hamiltonian cycle only if its endpoints are adjacent.
• A tournament (with more than 2 vertices) is Hamiltonian if and
only if it is strongly connected.
• A Hamiltonian cycle may be used as the basis of a zero-knowledge
proof.
• Number of different Hamiltonian cycles for a complete graph = (n-
1)! / 2.
• Number of different Hamiltonian cycles for a complete directed
graph = (n-1)!.
EXAMPLE
BACKTRACKING
• Backtracking is a methodical way of trying out various
sequences of decisions, until you find one that “works”.
• The steps involved in backtracking are:
1. View and pick up a solution from a sequence of choices.
2. For each choice, consider every option recursively.
3. Return the best solution found.
• Backtracking procedures are characterized by multiple
recursive calls, typically within a loop. One of the most
common applications of backtracking is the evaluation of
moves for strategy games like chess, tic-tac-toe.
Using backtracking method:
• Search all the potential solutions
• Employ pruning of some kind to restrict the
amount of researching
• Advantage:
Find all solution, can decide HC exists or not
• Disadvantage
Worst case, needs exponential time. Normally,
take a long time
ALGORITHM
Function Bound(X[1:n],l)
begin
for i=1 to l-1 do
if X[l] = X[i] then
return(false);
endif
endfor 
if (l > 1 and (X[l-1],X[l]) is not an edge) then
return(false);
endif 
if (l=n and (X[n],X[1]) is not an edge) then

return(false);
endif 
return(true);
end
REFERENCES
• Computer algorithms
• en.wikipedia.org/wiki/Hamiltonian_path

You might also like