public List<Node> runInference() { List<DefaultWeightedEdge> path; if (negativeWeights) { path = BellmanFordShortestPath.findPathBetween(graph, source, target); } else { path = DijkstraShortestPath.findPathBetween(graph, source, target); } shortestPath = new ArrayList<Node>(); if (path == null) { System.out.println(graph); } DefaultWeightedEdge firstEdge = path.get(0); assert firstEdge != null; shortestPath.add(graph.getEdgeSource(firstEdge)); for (DefaultWeightedEdge e : path) { shortestPath.add(graph.getEdgeTarget(e)); } return shortestPath; }
@Override public Set<Node> runInference() throws Exception { EdmondsKarpMaximumFlow<Node, DefaultWeightedEdge> algo = new EdmondsKarpMaximumFlow<Node, DefaultWeightedEdge>(graph); algo.calculateMaximumFlow(source, sink); Map<DefaultWeightedEdge, Double> flow = algo.getMaximumFlow(); Set<Node> nodes = new HashSet<Node>(); for (Entry<DefaultWeightedEdge, Double> entry : flow.entrySet()) { if (entry.getValue() > 0) { DefaultWeightedEdge key = entry.getKey(); nodes.add(graph.getEdgeSource(key)); nodes.add(graph.getEdgeTarget(key)); } } return nodes; }
@Override public Set<Node> runInference() throws Exception { EdmondsKarpMaximumFlow<Node, DefaultWeightedEdge> algo = new EdmondsKarpMaximumFlow<Node, DefaultWeightedEdge>(graph); algo.calculateMaximumFlow(source, sink); Map<DefaultWeightedEdge, Double> flow = algo.getMaximumFlow(); Set<Node> nodes = new HashSet<Node>(); for (Entry<DefaultWeightedEdge, Double> entry : flow.entrySet()) { if (entry.getValue() > 0) { DefaultWeightedEdge key = entry.getKey(); nodes.add(graph.getEdgeSource(key)); nodes.add(graph.getEdgeTarget(key)); } } return nodes; }
public List<Node> runInference() { List<DefaultWeightedEdge> path; if (negativeWeights) { path = BellmanFordShortestPath.findPathBetween(graph, source, target); } else { path = DijkstraShortestPath.findPathBetween(graph, source, target); } shortestPath = new ArrayList<Node>(); if (path == null) { System.out.println(graph); } DefaultWeightedEdge firstEdge = path.get(0); assert firstEdge != null; shortestPath.add(graph.getEdgeSource(firstEdge)); for (DefaultWeightedEdge e : path) { shortestPath.add(graph.getEdgeTarget(e)); } return shortestPath; }
double weight = iaasGraph.getEdgeWeight(edge); if (weight == 0.75) { patternProbabilityHigh.add(iaasGraph.getEdgeTarget(edge)); } else if (weight == 0.5) { patternProbabilityMedium.add(iaasGraph.getEdgeTarget(edge)); } else if (weight == 0.25) { patternProbabilityLow.add(iaasGraph.getEdgeTarget(edge)); } else if (weight == 0.99) { detectedPattern.add(iaasGraph.getEdgeTarget(edge)); } else if (weight == 0.0) { impossiblePattern.add(iaasGraph.getEdgeTarget(edge)); } else if (weight == 1.0) { patternProbabilityLow.add(iaasGraph.getEdgeTarget(edge)); double weight = paasGraph.getEdgeWeight(edge); if (weight == 0.75) { patternProbabilityHigh.add(paasGraph.getEdgeTarget(edge)); } else if (weight == 0.5) { patternProbabilityMedium.add(paasGraph.getEdgeTarget(edge)); } else if (weight == 0.25) { patternProbabilityLow.add(paasGraph.getEdgeTarget(edge)); } else if (weight == 0.99) { detectedPattern.add(paasGraph.getEdgeTarget(edge)); } else if (weight == 0.0) { impossiblePattern.add(paasGraph.getEdgeTarget(edge)); } else if (weight == 1.0) { patternProbabilityLow.add(paasGraph.getEdgeTarget(edge));