我有一个无向图,我知道它总是有哈密尔顿路径
所以我已经使用回溯实现了DFS以找到一个解决方案并将其返回。
问题在于,当我有稀疏图时,需要花费大量时间才能找到解决方案。
例如:
我有50个节点,1000个边缘,找到解决方案需要100毫秒
我有50个节点,有100个边缘,需要10000毫秒才能找到解决方案
我有100个节点,有3000个边缘,找到解决方案需要100毫秒
我有100个节点,有200个边缘,需要几个小时才能找到解决方案
有没有更好的方法只能为稀疏图找到一条哈密顿路径?在密集图中它已经非常快,因为我只在几个中寻找一个解决方案,但在稀疏图中,由于解决方案较少,带回溯的DFS似乎不是一个好选择(我必须非常幸运快速找到解决方案。)
谢谢!