获得所有可能路径和特殊细节的有效方法
|
我面临着寻路问题,其中我必须找到从一个点到另一个点的所有可能路径。如果仅仅是那样,那将是非常容易的-我将使用广度优先算法,就像这里解释的那样。
问题在于,在这种情况下,每个边缘都有可以使用的最大次数。让我们看一个例子:
在这种情况下,我可以从A到D进行15次。前10次,路径为A-> B-> C->D。其余5次,路径为A-> C-> D 。
到目前为止,我已经能够实现解决方案(使用python),但是对于中等问题(大约30个节点)来说,它的速度相当慢。我有一个不加权的图(因为我不介意路径的长度),其中包含不同节点之间的可能连接,另外,我有一个矩阵,每个边的使用限制。
因此,在循环中:
我找到一条可能的路径。
我更新用法矩阵。该路径的使用量将是边缘的最小使用量(例如,您可以使用具有最小限制的路径多次使用该路径)。
对于使用率达到0的每个边,这意味着它不再可用,因此我将其从图中删除。
循环直到找到所有路径。
就像我说的那样,这行得通,但是速度很慢。通过根据每个节点可以使用的次数对边缘列表进行排序,我已经能够提高整体性能,但是它仍然很慢。
有什么线索吗?
没有找到相关结果
已邀请:
1 个回复
厢界山攀