edu.uci.ics.jung.algorithms.importance
Class WeightedNIPaths<V,E>
- java.lang.Object
-
- edu.uci.ics.jung.algorithms.util.IterativeProcess
-
- edu.uci.ics.jung.algorithms.importance.AbstractRanker<V,E>
-
- edu.uci.ics.jung.algorithms.importance.WeightedNIPaths<V,E>
-
- All Implemented Interfaces:
- IterativeContext
public class WeightedNIPaths<V,E> extends AbstractRanker<V,E>
This algorithm measures the importance of nodes based upon both the number and length of disjoint paths that lead to a given node from each of the nodes in the root set. Specifically the formula for measuring the importance of a node is given by: I(t|R) = sum_i=1_|P(r,t)|_{alpha^|p_i|} where alpha is the path decay coefficient, p_i is path i and P(r,t) is a set of maximum-sized node-disjoint paths from r to t.This algorithm uses heuristic breadth-first search to try and find the maximum-sized set of node-disjoint paths between two nodes. As such, it is not guaranteed to give exact answers.
A simple example of usage is:
WeightedNIPaths ranker = new WeightedNIPaths(someGraph,2.0,6,rootSet); ranker.evaluate(); ranker.printRankings();
- See Also:
- "Algorithms for Estimating Relative Importance in Graphs by Scott White and Padhraic Smyth, 2003"
-
-
Field Summary
Fields Modifier and Type Field and Description static java.lang.StringWEIGHTED_NIPATHS_KEY
-
Constructor Summary
Constructors Constructor and Description WeightedNIPaths(DirectedGraph<V,E> graph, com.google.common.base.Supplier<V> vertexFactory, com.google.common.base.Supplier<E> edgeFactory, double alpha, int maxDepth, java.util.Set<V> priors)Constructs and initializes the algorithm.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method and Description java.lang.StringgetRankScoreKey()Given a node, returns the corresponding rank score.voidstep()Evaluate the result of the current iteration.-
Methods inherited from class edu.uci.ics.jung.algorithms.importance.AbstractRanker
getEdgeRankScore, getEdgeRankScore, getEdgeRankScores, getEdgeRankScores, getEdgeWeights, getRankings, getRankScores, getVertexRankScore, getVertexRankScore, getVertexRankScores, getVertexRankScores, isRankingEdges, isRankingNodes, printRankings, reset, setEdgeWeights, setNormalizeRankings, setRemoveRankScoresOnFinalize
-
Methods inherited from class edu.uci.ics.jung.algorithms.util.IterativeProcess
done, evaluate, getDesiredPrecision, getIterations, getMaximumIterations, getPrecision, hasConverged, relativePrecision, setDesiredPrecision, setMaximumIterations, setPrecision
-
-
-
-
Field Detail
-
WEIGHTED_NIPATHS_KEY
public static final java.lang.String WEIGHTED_NIPATHS_KEY
- See Also:
- Constant Field Values
-
-
Constructor Detail
-
WeightedNIPaths
public WeightedNIPaths(DirectedGraph<V,E> graph, com.google.common.base.Supplier<V> vertexFactory, com.google.common.base.Supplier<E> edgeFactory, double alpha, int maxDepth, java.util.Set<V> priors)
Constructs and initializes the algorithm.- Parameters:
graph- the graph whose nodes are being measured for their importancevertexFactory- used to generate instances of VedgeFactory- used to generate instances of Ealpha- the path decay coefficient (≥1); 2 is recommendedmaxDepth- the maximal depth to search out from the root setpriors- the root set (starting vertices)
-
-
Method Detail
-
step
public void step()
Description copied from class:IterativeProcessEvaluate the result of the current iteration.- Specified by:
stepin interfaceIterativeContext- Specified by:
stepin classIterativeProcess
-
getRankScoreKey
public java.lang.String getRankScoreKey()
Given a node, returns the corresponding rank score. This implementation ofgetRankScoreassumes the decoration representing the rank score is of typeMutableDouble.- Specified by:
getRankScoreKeyin classAbstractRanker<V,E>- Returns:
- the rank score for this node
-
-
DataMelt 3.0 © DataMelt by jWork.ORG