我的问题如下:
我有一个无向图。每条边都有一个成本(或权重)。其中一个节点标记为 S。我想从 S 开始并至少访问每个节点一次。允许多次访问一个节点。允许沿着一条边多次移动,尽管这会使解决方案更加昂贵——以 3 的成本移动一条边两次将使总路径的成本增加 6。该图有一些“死胡同”节点,所以有时我们必须不止一次地遍历一条边。
什么是执行此操作的快速算法?这是一个众所周知的问题吗?
我在找什么:
相当快——我们在这里讨论的图形的相对大小是 40 - 50 个节点的顺序。所以算法希望不会超过 10 - 15 秒。
合理最优——我不是在寻找绝对最优。任何有趣的启发式方法来指导搜索以使解决方案接近最优就足够了。
我将用python写这个。因此,如果您知道该算法的任何 python 实现,那是最好的。
谢谢你的帮助。