我正在研究图表中的问题并试图找出找到唯一路径
让我举个例子,让我们考虑一个包含4个节点和6个带边的边的图,如下所示 -
1 2
2 3
3 4
4 1
1 3
2 4
长度为5的唯一循环路径为 -
1 - > 2 - > 4 - > 3 - > 1
如果路径的边缘集合相等,则认为两条路径相等。考虑两个路径1 - > 2 - > 3 - > 4 - > 1和1 - > 3 - > 2 - > 4 - > 1第一条路径就是set = [(1,2),(2,3),(3,4),(4,1)],而第二条路径= [(1,3),(3, 2),(2,4),(4,1)]
显然,这两组是不同的,因此路径也是如此。边缘的排序是无关紧要的,因为您只是比较任意两个集合(路径)之间的公共边缘的存在。
获得循环路径后,如何检查路径中路径是否具有相同的节点集?即,1 - > 2 - > 3 - > 4 - > 1和1 - > 4 - > 3 - > 2 - > 1具有相同的集合,即以[(1,2),(2,3),(3,4),(4,1)]的不同顺序。
我想实现一个成对的地图和检查重复..仍在寻找更好的选择。
如何继续获得任何帮助?
答案 0 :(得分:0)
您是否考虑过使用Python Patterns - Implementing Graphs。它是一个很好的资源。我用它来解决从顶点x到y的图中唯一路径上的编程竞赛问题。enter link description here