我试图对杜威十进分类进行一些图形分析,以便我可以计算出两本书之间的距离。 DDC具有几个关系:“层次结构”,“参见”,“其他类别”,我用不同的颜色表示它们。 由于这些关系不是对称的,您会注意到我们有一个有向图。 下面是离394.1最多4条边的所有顶点的图形。
分类A和B之间的距离度量应该是A和B之间的最短路径。 然而,颜色没有固有的加权值或偏好。 但用户将提供一个。 因此,给定一个权重字典,例如:
weights_dict_test = {'notational_hiearchy':1,
'see_reference':0.5,
'class_elsewhere':2}
我希望能够返回加权最短路径。我认为,如果我可以预处理两个节点之间的所有简单路径,然后在给定权重字典的情况下找出哪条路径最短,这应该不是一个问题。然而,由于图中包含>50,000个节点,计算nx.all_simple_paths(G, a, b)
已经进行了24小时的计算,但仍未得出结果。是否有并行化查找all_simple_paths
的建议?或者一种不需要计算all_simple_paths
就能计算出给定weights_dict
的最短路径的技术?
shortest_path
,它已经支持权重。此外,networkx是纯Python编写的,如果您需要为此特殊情况修改最短路径的代码,则可以获得其代码。 - Corley Brigman