枚举前 2^20 条路径,这些路径不包括两个顶点之间的循环



输入为无向循环平面图,每个顶点最多有8条边。

如何按从最短到最长的顺序枚举两个顶点v_0, v_1之间的所有路径?什么是计算复杂性?

如果上面的不可能,怎样才能生成长度不超过k的所有路径

您想从最短路径到最长路径->表示您可以尝试BFS。

路径不能包含循环->你应该存储路径经过了哪些顶点(当你做BFS时)

复杂度:你可以看到路径不包含循环意味着路径只能通过每个节点一次。所以解空间是O(n!)在最坏的情况下,BFS可能会访问解空间中的每一条路径。所以复杂度是O(n!)

你可能会对那个结果感到失望。好吧,你的问题是一个著名的问题,已经被很好地研究过了。你可以阅读这篇文章:
Finding the K Shortest Loopless Paths in a Network
Jin Y. Yen

或维基百科页面直观地查看第k个最短路径问题

最新更新