当前位置: 首页>>代码示例>>Python>>正文


Python DictGraph.findAllDistances方法代码示例

本文整理汇总了Python中apgl.graph.DictGraph.DictGraph.findAllDistances方法的典型用法代码示例。如果您正苦于以下问题:Python DictGraph.findAllDistances方法的具体用法?Python DictGraph.findAllDistances怎么用?Python DictGraph.findAllDistances使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在apgl.graph.DictGraph.DictGraph的用法示例。


在下文中一共展示了DictGraph.findAllDistances方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。

示例1: DictGraphTest

# 需要导入模块: from apgl.graph.DictGraph import DictGraph [as 别名]
# 或者: from apgl.graph.DictGraph.DictGraph import findAllDistances [as 别名]

#.........这里部分代码省略.........
        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())

    def testAdjacencyList(self): 
        graph = DictGraph()
        graph.addEdge("a", "b", 1)
        graph.addEdge("b", "c", 1)
        graph.addEdge("b", "d", 1)
        graph.addEdge("c", "e", 1)
        graph.setVertex("f", 1)
 
        neighbourIndices, neighbourWeights = graph.adjacencyList()   
 
        vertexIds = graph.getAllVertexIds()

        for i in range(len(neighbourIndices)): 
            for k, j in enumerate(neighbourIndices[i]): 
                self.assertTrue(graph.edgeExists(vertexIds[i], vertexIds[j]))  
                self.assertEquals(graph[vertexIds[i], vertexIds[j]], neighbourWeights[i][k])
         
    def testFindAllDistances(self):
        P = self.graph.findAllDistances()

        P2 = numpy.zeros((self.graph.size, self.graph.size))
        P2[0, :] = numpy.array([0, 1, 2, 2, 1, numpy.inf])
        P2[1, :] = numpy.array([1, 0, 3, 1, 2, numpy.inf])
        P2[2, :] = numpy.array([2, 3, 0, 4, 3, numpy.inf])
        P2[3, :] = numpy.array([2, 1, 4, 0, 1, numpy.inf])
        P2[4, :] = numpy.array([1, 2, 3, 1, 0, numpy.inf])
        P2[5, :] = numpy.array([numpy.inf, numpy.inf, numpy.inf, numpy.inf, numpy.inf, 0])

        self.assertTrue((P == P2).all())

        #Now test the directed graph
        P = self.graph2.findAllDistances()

        P2 = numpy.zeros((self.graph.size, self.graph.size))
        P2[0, :] = numpy.array([0, 1, 2, 2, 1, numpy.inf])
        P2[1, :] = numpy.array([numpy.inf, 0, numpy.inf, 1, 2, numpy.inf])
        P2[2, :] = numpy.array([numpy.inf, numpy.inf, 0, 5, 6, numpy.inf])
        P2[3, :] = numpy.array([numpy.inf, numpy.inf, numpy.inf, 0, 1, numpy.inf])
        P2[4, :] = numpy.array([numpy.inf, numpy.inf, numpy.inf, numpy.inf, 0, numpy.inf])
        P2[5, :] = numpy.array([numpy.inf, numpy.inf, numpy.inf, numpy.inf, numpy.inf, 0])

        self.assertTrue((P == P2).all())

    def testToIGraph(self): 
        try:
            import igraph
        except ImportError as error:
            logging.debug(error)
            return        
        
        graph = DictGraph()
        
        graph["a", "b"] = 1
        graph["b", "c"] = 2
        
        ig = graph.toIGraph()
        
        self.assertEquals(len(ig.vs), 3) 
        self.assertEquals(ig[0, 2], 1) 
        self.assertEquals(ig[1, 2], 1)
开发者ID:charanpald,项目名称:APGL,代码行数:104,代码来源:DictGraphTest.py


注:本文中的apgl.graph.DictGraph.DictGraph.findAllDistances方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。