本文整理汇总了Python中apgl.graph.DictGraph.DictGraph.dijkstrasAlgorithm方法的典型用法代码示例。如果您正苦于以下问题:Python DictGraph.dijkstrasAlgorithm方法的具体用法?Python DictGraph.dijkstrasAlgorithm怎么用?Python DictGraph.dijkstrasAlgorithm使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类apgl.graph.DictGraph.DictGraph
的用法示例。
在下文中一共展示了DictGraph.dijkstrasAlgorithm方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: testDijkstrasAlgorithm
# 需要导入模块: from apgl.graph.DictGraph import DictGraph [as 别名]
# 或者: from apgl.graph.DictGraph.DictGraph import dijkstrasAlgorithm [as 别名]
def testDijkstrasAlgorithm(self):
graph = DictGraph()
graph.addEdge(0, 1, 1)
graph.addEdge(1, 2, 1)
graph.addEdge(1, 3, 1)
graph.addEdge(2, 4, 1)
graph.setVertex(4, 1)
self.assertTrue((graph.dijkstrasAlgorithm(0) == numpy.array([0, 1, 2, 2, 3])).all())
self.assertTrue((graph.dijkstrasAlgorithm(1) == numpy.array([1, 0, 1, 1, 2])).all())
self.assertTrue((graph.dijkstrasAlgorithm(2) == numpy.array([2, 1, 0, 2, 1])).all())
self.assertTrue((graph.dijkstrasAlgorithm(3) == numpy.array([2, 1, 2, 0, 3])).all())
self.assertTrue((graph.dijkstrasAlgorithm(4) == numpy.array([3, 2, 1, 3, 0])).all())
#Test a graph which has an isolated node
graph = DictGraph()
graph.setVertex(5, 1)
graph.addEdge(0, 1, 1)
graph.addEdge(1, 2, 1)
graph.addEdge(1, 3, 1)
self.assertTrue((graph.dijkstrasAlgorithm(0) == numpy.array([0, 1, 2, 2, numpy.inf])).all())
#Test a graph in a ring
graph = DictGraph()
graph.addEdge(0, 1, 1)
graph.addEdge(1, 2, 1)
graph.addEdge(2, 3, 1)
graph.addEdge(3, 4, 1)
graph.addEdge(4, 0, 1)
self.assertTrue((graph.dijkstrasAlgorithm(0) == numpy.array([0, 1, 2, 2, 1])).all())
#Try case in which vertex ids are not numbers
graph = DictGraph()
graph.addEdge("a", "b", 1)
graph.addEdge("b", "c", 1)
graph.addEdge("b", "d", 1)
graph.addEdge("c", "e", 1)
inds = Util.argsort(graph.getAllVertexIds())
self.assertTrue((graph.dijkstrasAlgorithm("a")[inds] == numpy.array([0, 1, 2, 2, 3])).all())
self.assertTrue((graph.dijkstrasAlgorithm("b")[inds] == numpy.array([1, 0, 1, 1, 2])).all())
self.assertTrue((graph.dijkstrasAlgorithm("c")[inds] == numpy.array([2, 1, 0, 2, 1])).all())
self.assertTrue((graph.dijkstrasAlgorithm("d")[inds] == numpy.array([2, 1, 2, 0, 3])).all())
self.assertTrue((graph.dijkstrasAlgorithm("e")[inds] == numpy.array([3, 2, 1, 3, 0])).all())