我有定向加权图 G ,其中权重是转换的持续时间。
我使用带有修改的DFS在两个顶点之间编写了所有路径搜索算法:搜索继续进行,直到路径的总权重(其部分的权重之和)将小于某个值。
我的代码在小图中工作,但在大图中(| V | = 1800,| E | = 50870)它会冻结。
{{1}}
答案 0 :(得分:1)
您的代码似乎是正确的(特别是因为它适用于小图表)。
问题是节点之间可能有很多路径。对于完全连接的图形,路径数量大约为N!这很多。由于你需要所有这些程序,所以你的程序会很慢(特别是如果你用完RAM而需要将东西交换到磁盘上)。
如果限制最大总重量,就像你在代码中所做的一样,假设所有权重都是1,你仍然以O(重量)运行,我假设你设置的值很大,因为图表很大。
你需要弄清楚你是否真的需要所有这些路径。
如果您正在寻找最短路径,请使用Dijkstra或其他东西来寻找最短路径。