我是圣人的新手,我一直在阅读文档,但这对我来说是一个非常新的领域,掌握一切都有点困难。
我想要做的是,给定一个邻接矩阵,一个上界和一个下界 - 生成通过该矩阵的所有路径,其中“路径”由每行的一个条目组成,这样的权重途径等于或在界限之间。
如果我可以通过1组织给定的途径,那就更好了。)每行中权重低于路径中的条目的数量,和/或2.)与其他途径的最小重叠到#1。
为清楚起见,快速举例。 鉴于4x4矩阵:
[[1,2,3,4],
[5,6,7,8],
[10,11,12,13],
[20,21,22,23]]
上限38和下限37可能的途径可能是:
2,5,10,20 3,5,10,20 2,6,10,20 2,5,11,20 2,5,10,21 我不想写出所有的途径,所以希望你能得到这个想法。
如果我能够快速过滤掉冗余,那么更好的方法是不包括作为其他途径子集的路径(例如,2,5,10,20包含2,5,10,20 - 因为每个路径途径我计划包括每个相应行的所有较低权重边缘。)
答案 0 :(得分:0)
如果您有对称矩阵(有或没有对角线条目非零),您可以do this。
M = matrix([[0,2,3,4],[2,0,7,8], [3,7,0,13], [4,8,13,0]])
G = Graph(M,format='weighted_adjacency_matrix')
G.graphplot(edge_labels=True,spring=True).show()
希望从G
本身你可以做你想做的事。 (除非它与图形无关,只与矩阵有关,在这种情况下,你可能完全想要一个不同的东西。)
我不确定你到底想要做什么(“路径”如何对应子图?),并且可能描述的内容超出了本网站的范围(与math.SX.com相对) ,但generic graph documentation有一些路径方法,undirected documentation也可能有用。