1

Assume that we have a random graph. How do you remove or add edges in the minimum number of steps such that every edge in the resulting graph would be in a Hamilton path?

I would really appreciate if someone can share any ideas.

user57368
  • 5,580
  • 26
  • 38
John
  • 11
  • 1
  • homework question? Please tag it! – Gigamegs Aug 19 '11 at 17:25
  • it is not a homework. it is a research question. – John Aug 19 '11 at 18:17
  • Should I tag it research then? I don't think you have the rights. – Gigamegs Aug 19 '11 at 18:26
  • I'm new to this system, please do the necessary changes to the post. – John Aug 19 '11 at 19:21
  • I assume you don't want the easy answer? Generate all graphs on V' = |V| vertices, save the ones which have all vertices on a Hamiltonian path, and keep the one(s) which can be turned into the original in the fewest steps. – Patrick87 Aug 22 '11 at 04:30
  • Ok, this solution has exponential order time. I'm looking for a linear time algorithm or even a much more better heuristic. – John Aug 23 '11 at 16:26
  • Linear time is going to be a lower-bound for any meaningful algorithm, since any meaningful algorithm needs to at least check that all vertices are on the Hamiltonian path. – Patrick87 Aug 25 '11 at 04:57

1 Answers1

0

There's an algorithm to find Hamilton paths quickly in certain random graphs due to Angluin–Valiant. Perhaps you could run it repeatedly for each edge in the graph to extend that edge to a Hamilton path, adding edges when that fails.