コード例 #1
0
ファイル: GraphsController.cs プロジェクト: AndekQR/Graphs
        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());
            }
        }
コード例 #2
0
        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);
        }