Mathematics Stack Exchange is a question and answer site for people studying math at any level and professionals in related fields. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

So I have an un-directed un-weighted graph. It contains cycles. I would like to find the path which visits the most nodes with no repeat visits to any node. Since this is a graph traversal, you can start and end at any node you like.

Background Research: I have looked at Travelling Salesman Problem (TSP); this problem is different and does NOT allow you to finish where you started from and there are no weights. I have looked at several other algorithms, but have found none suitable for this problem.

Graph Size: There are 100 nodes in the graph; with 10 disconnected nodes.

share|cite|improve this question
Maybe you are interested in Returning Paths on Cubic Graphs Without Backtracking... – draks ... Nov 23 '12 at 20:49

This problem is still difficult, it is known as Hamiltonian path, and NP-complete. It doesn't really make a difference if the path is closed (a circuit) or not. Just ask the HAM-PATH problem for every pair of endpoints of all edges and you could solve HAM-CIRCUIT.

share|cite|improve this answer
Thanks! What is HAM-PATH, HAM-CIRCUIT is it just your notation or some library in Matlab? – Chirayu Shishodiya Nov 23 '12 at 20:15
Also there may not be any Hamiltonian path or cycle in my problem, I just want to visit the max number of nodes. – Chirayu Shishodiya Nov 23 '12 at 20:20
No its just a short cut for the Hamiltonian Path problem, and the Hamiltonian Circuit problem. – A.Schulz Nov 23 '12 at 20:20
Yeah, but the maximum could be the number of nodes and thus you can detect a Hamiltonian Path with your algorithm. Just ask if the maximum path visits all nodes. – A.Schulz Nov 23 '12 at 20:23
I think I will write an algorithm of my own which will find the path which visits most nodes. Since there are 90 nodes, there are 90 * 89 combinations of start-end nodes which is roughly 8100 Hamiltonian Path problems; and I am not even sure that a Hamiltonian Path exists. So it could be an exercise in vain if I proceed with finding a Hamiltonian Path problem. – Chirayu Shishodiya Nov 24 '12 at 8:58

In graph theory and theoretical computer science, the longest path problem is the problem of finding a simple path of maximum length in a given graph. A path is called simple if it does not have any repeated vertices; the length of a path may either be measured by its number of edges, or (in weighted graphs) by the sum of the weights of its edges. In contrast to the shortest path problem, which can be solved in polynomial time in graphs without negative-weight cycles, the longest path problem is NP-hard, meaning that it cannot be solved in polynomial time for arbitrary graphs unless P = NP. Stronger hardness results are also known showing that it is difficult to approximate. However, it has a linear time solution for directed acyclic graphs, which has important applications in finding the critical path in scheduling problems.

share|cite|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.