public IHttpActionResult GetMinimalPathWeightBFS(BFSObject bFSObject) { Graph graph = _graphService.GetGraph(bFSObject.graphId); Node startNode = _graphService.findNodeByLabel(graph, bFSObject.startNodeLabel); Node endNode = _graphService.findNodeByLabel(graph, bFSObject.endNodeLabel); if (startNode != null && endNode != null) { int weight = BFSMethods.ShortestPathToGiven(graph, startNode, endNode); return(Ok(weight)); } else { return(NotFound()); } }
public Node getMinNodeCoarseGrained(Graph graph) { GraphPart minPart = null; int minWeight = int.MaxValue; int sum = 0; foreach (GraphPart part in graph.GraphPart) { Dictionary <Node, int> tmp = BFSMethods.ShortestPathToAll(graph, part.Node); foreach (KeyValuePair <Node, int> pair in tmp) { sum += pair.Value; } if (sum < minWeight) { minPart = part; minWeight = sum; } sum = 0; } return(minPart.Node); }