Class AbstractRanker<V,E>
java.lang.Object
edu.uci.ics.jung.algorithms.util.IterativeProcess
edu.uci.ics.jung.algorithms.importance.AbstractRanker<V,E>
- All Implemented Interfaces:
IterativeContext
- Direct Known Subclasses:
BetweennessCentrality
,RelativeAuthorityRanker
,WeightedNIPaths
Abstract class for algorithms that rank nodes or edges by some "importance" metric. Provides a common set of
services such as:
- storing rank scores
- getters and setters for rank scores
- computing default edge weights
- normalizing default or user-provided edge transition weights
- normalizing rank scores
- automatic cleanup of decorations
- creation of Ranking list
- print rankings in sorted order by rank
By default, all rank scores are removed from the vertices (or edges) being ranked.
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate boolean
private boolean
private boolean
private boolean
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected void
protected void
Perform eventual clean-up operations (must be implement by subclass when needed).double
double
getEdgeRankScore
(E e, Object key) getEdgeRankScores
(Object key) protected double
getEdgeWeight
(E e) getGraph()
Retrieves the list of ranking instances in descending sorted order by rank score If the algorithm is ranking edges, the instances will be of typeEdgeRanking
, otherwise if the algorithm is ranking nodes the instances will be of typeNodeRanking
abstract Object
The user datum key used to store the rank score.getRankScores
(int topKRankings) Return a list of the top k rank scores.protected int
double
Given a node, returns the corresponding rank score.double
getVertexRankScore
(V v, Object key) protected Collection
<V> protected void
initialize
(Graph<V, E> graph, boolean isNodeRanker, boolean isEdgeRanker) boolean
boolean
protected void
protected void
protected void
onFinalize
(Object e) void
printRankings
(boolean verbose, boolean printScore) Print the rankings to standard out in descending order of rank scoreprotected void
protected void
removeEdgeRankScore
(E e, Object key) protected void
protected void
removeVertexRankScore
(V v, Object key) void
reset()
protected void
setEdgeRankScore
(E e, double rankValue) protected void
setEdgeRankScore
(E e, double rankValue, Object key) protected void
setEdgeWeight
(E e, double weight) void
setEdgeWeights
(Map<E, Number> edgeWeights) void
setNormalizeRankings
(boolean normalizeRankings) Allows the user to specify whether or not s/he wants the rankings to be normalized.void
setRemoveRankScoresOnFinalize
(boolean removeRankScoresOnFinalize) Instructs the ranker whether or not it should remove the rank scores from the nodes (or edges) once the ranks have been computed.protected void
setVertexRankScore
(V v, double rankValue) protected void
setVertexRankScore
(V v, double rankValue, Object key) Methods inherited from class edu.uci.ics.jung.algorithms.util.IterativeProcess
done, evaluate, getDesiredPrecision, getIterations, getMaximumIterations, getPrecision, hasConverged, initializeIterations, relativePrecision, setDesiredPrecision, setMaximumIterations, setPrecision, step
-
Field Details
-
mGraph
-
mRankings
-
mRemoveRankScoresOnFinalize
private boolean mRemoveRankScoresOnFinalize -
mRankNodes
private boolean mRankNodes -
mRankEdges
private boolean mRankEdges -
mNormalizeRankings
private boolean mNormalizeRankings -
vertexRankScores
-
edgeRankScores
-
edgeWeights
-
-
Constructor Details
-
AbstractRanker
public AbstractRanker()
-
-
Method Details
-
initialize
-
getVertexRankScores
- Returns:
- all rankScores
-
getEdgeRankScores
-
getVertexRankScores
- Parameters:
key
- the rank score key whose scores are to be retrieved- Returns:
- the rank scores for the specified key
-
getEdgeRankScores
-
getVertices
-
getVertexCount
protected int getVertexCount() -
getGraph
-
reset
public void reset()- Overrides:
reset
in classIterativeProcess
-
isRankingNodes
public boolean isRankingNodes()- Returns:
true
if this ranker ranks nodes, andfalse
otherwise.
-
isRankingEdges
public boolean isRankingEdges()- Returns:
true
if this ranker ranks edges, andfalse
otherwise.
-
setRemoveRankScoresOnFinalize
public void setRemoveRankScoresOnFinalize(boolean removeRankScoresOnFinalize) Instructs the ranker whether or not it should remove the rank scores from the nodes (or edges) once the ranks have been computed.- Parameters:
removeRankScoresOnFinalize
-true
if the rank scores are to be removed,false
otherwise
-
onFinalize
-
getRankScoreKey
The user datum key used to store the rank score.- Returns:
- the key
-
finalizeIterations
protected void finalizeIterations()Description copied from class:IterativeProcess
Perform eventual clean-up operations (must be implement by subclass when needed).- Overrides:
finalizeIterations
in classIterativeProcess
-
getRankings
Retrieves the list of ranking instances in descending sorted order by rank score If the algorithm is ranking edges, the instances will be of typeEdgeRanking
, otherwise if the algorithm is ranking nodes the instances will be of typeNodeRanking
- Returns:
- the list of rankings
-
getRankScores
Return a list of the top k rank scores.- Parameters:
topKRankings
- the value of k to use- Returns:
- list of rank scores
-
getVertexRankScore
Given a node, returns the corresponding rank score. This is a default implementation of getRankScore which assumes the decorations are of type MutableDouble. This method only returns legal values ifsetRemoveRankScoresOnFinalize(false)
was called prior toevaluate()
.- Parameters:
v
- the node whose rank score is to be returned.- Returns:
- the rank score value
-
getVertexRankScore
-
getEdgeRankScore
-
getEdgeRankScore
-
setVertexRankScore
-
setEdgeRankScore
-
setVertexRankScore
-
setEdgeRankScore
-
removeVertexRankScore
-
removeEdgeRankScore
-
removeVertexRankScore
-
removeEdgeRankScore
-
getEdgeWeight
-
setEdgeWeight
-
setEdgeWeights
-
getEdgeWeights
- Returns:
- the edgeWeights
-
assignDefaultEdgeTransitionWeights
protected void assignDefaultEdgeTransitionWeights() -
normalizeEdgeTransitionWeights
protected void normalizeEdgeTransitionWeights() -
normalizeRankings
protected void normalizeRankings() -
printRankings
public void printRankings(boolean verbose, boolean printScore) Print the rankings to standard out in descending order of rank score- Parameters:
verbose
- iftrue
, include information about the actual rank order as well as the original position of the vertex before it was rankedprintScore
- iftrue
, include the actual value of the rank score
-
setNormalizeRankings
public void setNormalizeRankings(boolean normalizeRankings) Allows the user to specify whether or not s/he wants the rankings to be normalized. In some cases, this will have no effect since the algorithm doesn't allow normalization as an option- Parameters:
normalizeRankings
-true
iff the ranking are to be normalized
-