def test(): g = Graph() for node in ["u", "y", "v", "x", "w", "y", "z"]: g.add_node(node) g.add_bi_edge("u", "v", 2) g.add_bi_edge("u", "x", 1) g.add_bi_edge("u", "w", 5) g.add_bi_edge("v", "x", 2) g.add_bi_edge("v", "w", 3) g.add_bi_edge("x", "w", 3) g.add_bi_edge("x", "y", 1) g.add_bi_edge("w", "z", 5) g.add_bi_edge("w", "y", 1) g.add_bi_edge("y", "z", 1) print list(g.iternodes()) print list(g.iteredges()) solver = DijkstraSolver(g) for node, dist in solver.shortest_paths("u"): print node, dist return 0
def test(): g = Graph() for y in xrange(0, 4): for x in xrange(1, 5): node = y * 4 + x print node, {"x": x, "y": y+1} g.add_node(node, x=x, y=y+1) # 1 g.add_bi_edge(1,2) g.add_bi_edge(1,5) # 2 g.add_bi_edge(2,6) g.add_bi_edge(2,3) # 3 g.add_bi_edge(3,7) g.add_bi_edge(3,4) # 4 g.add_bi_edge(4,8) # 5 g.add_bi_edge(5,9) g.add_bi_edge(5,6) # 6 g.add_bi_edge(6,10) # 7 # 8 g.add_bi_edge(8, 12) # 9 g.add_bi_edge(9, 13) # 10 g.add_bi_edge(10, 14) g.add_bi_edge(10, 11) # 11 # 12 g.add_bi_edge(12, 16) # 13 g.add_bi_edge(13, 14) # 14 g.add_bi_edge(14, 15) # 15 # 16 def greedy_h(n1, n2): return abs(n1["x"] - n2["x"]) + abs(n1["y"] - n2["y"]) astar_solver = AStarSolver(g, greedy_h) print print astar_solver.find_path(1, 16) print astar_solver.find_path(8, 16) print