@Override public Number getValue(Element element, Graph gr) { return ((DirectedGraph)gr).getOutDegree((Node) element); }
protected int calculateOutDegree(DirectedGraph directedGraph, Node n) { return directedGraph.getOutDegree(n); }
@Override public boolean evaluate(Graph graph, Node node) { int degree = ((DirectedGraph) graph).getOutDegree(node); return range.isInRange(degree); }
@Override public Number[] getValues(Graph graph) { DirectedGraph dgraph = (DirectedGraph) graph; List<Integer> values = new ArrayList<>(dgraph.getNodeCount()); for (Node n : dgraph.getNodes()) { int degree = dgraph.getOutDegree(n); values.add(degree); } return values.toArray(new Number[0]); }
@Override protected void refresh() { if (graph.getNodeCount() > 0) { int minV = Integer.MAX_VALUE; int maxV = Integer.MIN_VALUE; for (Node n : graph.getNodes()) { int degree = graph.getOutDegree(n); minV = Math.min(degree, minV); maxV = Math.max(degree, maxV); } min = minV; max = maxV; } } }
private double updateValueForNode(Graph graph, Node node, double[] pagerankValues, double[] weights, HashMap<Node, Integer> indicies, boolean directed, boolean useWeights, double r, double prob, Map<Node, Set<Node>> inNeighborsPerNode, final Object2DoubleOpenHashMap<Node> inWeightPerNeighbor) { double res = r; double sumNeighbors = 0; for (Node neighbor : inNeighborsPerNode.get(node)) { int neigh_index = indicies.get(neighbor); if (useWeights) { double weight = inWeightPerNeighbor.getDouble(neighbor) / weights[neigh_index]; sumNeighbors += pagerankValues[neigh_index] * weight; } else { int outDegree; if (directed) { outDegree = ((DirectedGraph) graph).getOutDegree(neighbor); } else { outDegree = graph.getDegree(neighbor); } sumNeighbors += (pagerankValues[neigh_index] / outDegree); } } res += prob * sumNeighbors; return res; }
private double calculateR(Graph graph, double[] pagerankValues, HashMap<Node, Integer> indicies, boolean directed, double prob) { int N = graph.getNodeCount(); double r = (1.0 - prob) / N;//Initialize to damping factor //Calculate dangling nodes (nodes without out edges) contribution to all other nodes. //Necessary for all nodes page rank values sum to be 1 NodeIterable nodesIterable = graph.getNodes(); double danglingNodesRankContrib = 0; for (Node s : graph.getNodes()) { int s_index = indicies.get(s); int outDegree; if (directed) { outDegree = ((DirectedGraph) graph).getOutDegree(s); } else { outDegree = graph.getDegree(s); } if (outDegree == 0) { danglingNodesRankContrib += pagerankValues[s_index]; } if (isCanceled) { nodesIterable.doBreak(); break; } } danglingNodesRankContrib *= prob / N; r += danglingNodesRankContrib; return r; }
int outdegree = directedGraph.getOutDegree(n);