From 8c477930f7333e342a9975bf1b5621f73454b33c Mon Sep 17 00:00:00 2001 From: Jsor Date: Thu, 6 Feb 2014 03:01:15 -0700 Subject: [PATCH] Updated Dijkstra --- search/graphSearch.go | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/search/graphSearch.go b/search/graphSearch.go index 0c67572c..e1ea5169 100644 --- a/search/graphSearch.go +++ b/search/graphSearch.go @@ -89,8 +89,8 @@ func BreadthFirstSearch(start, goal gr.Node, graph gr.Graph) ([]gr.Node, int) { // Like A*, Dijkstra's Algorithm likely won't run correctly with negative edge weights -- use Bellman-Ford for that instead // // Dijkstra's algorithm usually only returns a cost map, however, since the data is available this version will also reconstruct the path to every node -func Dijkstra(source gr.Node, graph gr.Graph, Cost func(gr.Node, gr.Node) float64) (paths map[int][]gr.Node, costs map[int]float64) { - successors, _, _, _, _, _, Cost, _ := setupFuncs(graph, Cost, nil) +func Dijkstra(source gr.Node, graph gr.Graph, cost gr.CostFun) (paths map[int][]gr.Node, costs map[int]float64) { + successors, _, _, _, _, _, cost, _ := setupFuncs(graph, cost, nil) nodes := graph.NodeList() openSet := &aStarPriorityQueue{nodes: make([]internalNode, 0), indexList: make(map[int]int)} @@ -111,7 +111,7 @@ func Dijkstra(source gr.Node, graph gr.Graph, Cost func(gr.Node, gr.Node) float6 closedSet.Add(node.ID()) for _, neighbor := range successors(node) { - tmpCost := costs[node.ID()] + Cost(node, neighbor) + tmpCost := costs[node.ID()] + cost(node, neighbor) if cost, ok := costs[neighbor.ID()]; !ok { costs[neighbor.ID()] = tmpCost predecessor[neighbor.ID()] = node