编程语言
首页 > 编程语言> > python – 什么是快速算法,可以找到一个短路径来遍历加权无向图的每个节点至少一次?

python – 什么是快速算法,可以找到一个短路径来遍历加权无向图的每个节点至少一次?

作者:互联网

我的问题如下:

我有一个无向图.每个边缘都有成本(或重量).其中一个节点标记为S.我想从S开始并至少访问每个节点一次.允许多次访问节点.允许多次沿着边缘行进,尽管这会使解决方案更加昂贵 – 以3倍的成本行驶边缘将增加总路径的成本6.该图有一些“死胡同”节点,因此有时我们不得不多次前进.

这样做的快速算法是什么?这是一个众所周知的问题吗?

我在找什么:

合理快速 – 我们在这里讨论的图表的相对大小是40-50个节点的顺序.所以算法希望不会超过10-15秒.

合理的最佳 – 我不是在寻找绝对的最优性.任何有趣的启发式指导搜索,以使解决方案接近最优是足够好的.

我将在python中写这个.因此,如果你知道算法的任何python实现,那是最好的.

谢谢你的帮助.

解决方法:

这是旅行商问题的一个版本,其中wikipedia article对各种不同的启发式方法有很好的概述.

标准TSP和您的算法之间的最大区别在于TSP通常每个节点只执行一次访问,而您允许多次访问.这个问题在this SO问题得到了很好的回答.

This guy记录了他的Python TSP解决方案,而this对于如何在Python中实现图形内容进行了非常有用的讨论.

标签:python,computer-science,search,artificial-intelligence,heuristics
来源: https://codeday.me/bug/20190529/1181730.html