public abstract class AbstractRanker<V,E> extends IterativeProcess
By default, all rank scores are removed from the vertices (or edges) being ranked.
Modifier and Type | Field and Description |
---|---|
protected com.google.common.cache.LoadingCache<Object,Map<E,Number>> |
edgeRankScores |
protected com.google.common.cache.LoadingCache<Object,Map<V,Number>> |
vertexRankScores |
Constructor and Description |
---|
AbstractRanker() |
Modifier and Type | Method and Description |
---|---|
protected void |
assignDefaultEdgeTransitionWeights() |
protected void |
finalizeIterations()
Perform eventual clean-up operations
(must be implement by subclass when needed).
|
double |
getEdgeRankScore(E e) |
double |
getEdgeRankScore(E e,
Object key) |
Map<Object,Map<E,Number>> |
getEdgeRankScores() |
Map<E,Number> |
getEdgeRankScores(Object key) |
protected double |
getEdgeWeight(E e) |
Map<E,Number> |
getEdgeWeights() |
protected Graph<V,E> |
getGraph() |
List<Ranking<?>> |
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 type
EdgeRanking , otherwise
if the algorithm is ranking nodes the instances will be of type NodeRanking |
abstract Object |
getRankScoreKey()
The user datum key used to store the rank score.
|
List<Double> |
getRankScores(int topKRankings)
Return a list of the top k rank scores.
|
protected int |
getVertexCount() |
double |
getVertexRankScore(V v)
Given a node, returns the corresponding rank score.
|
double |
getVertexRankScore(V v,
Object key) |
Map<Object,Map<V,Number>> |
getVertexRankScores() |
Map<V,Number> |
getVertexRankScores(Object key) |
protected Collection<V> |
getVertices() |
protected void |
initialize(Graph<V,E> graph,
boolean isNodeRanker,
boolean isEdgeRanker) |
boolean |
isRankingEdges() |
boolean |
isRankingNodes() |
protected void |
normalizeEdgeTransitionWeights() |
protected void |
normalizeRankings() |
protected void |
onFinalize(Object e) |
void |
printRankings(boolean verbose,
boolean printScore)
Print the rankings to standard out in descending order of rank score
|
protected void |
removeEdgeRankScore(E e) |
protected void |
removeEdgeRankScore(E e,
Object key) |
protected void |
removeVertexRankScore(V v) |
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) |
done, evaluate, getDesiredPrecision, getIterations, getMaximumIterations, getPrecision, hasConverged, initializeIterations, relativePrecision, setDesiredPrecision, setMaximumIterations, setPrecision, step
protected com.google.common.cache.LoadingCache<Object,Map<V,Number>> vertexRankScores
public Map<V,Number> getVertexRankScores(Object key)
key
- the rank score key whose scores are to be retrievedprotected Collection<V> getVertices()
protected int getVertexCount()
public void reset()
reset
in class IterativeProcess
public boolean isRankingNodes()
true
if this ranker ranks nodes, and
false
otherwise.public boolean isRankingEdges()
true
if this ranker ranks edges, and
false
otherwise.public void setRemoveRankScoresOnFinalize(boolean removeRankScoresOnFinalize)
removeRankScoresOnFinalize
- true
if the rank scores are to be removed, false
otherwiseprotected void onFinalize(Object e)
public abstract Object getRankScoreKey()
protected void finalizeIterations()
IterativeProcess
finalizeIterations
in class IterativeProcess
public List<Ranking<?>> getRankings()
EdgeRanking
, otherwise
if the algorithm is ranking nodes the instances will be of type NodeRanking
public List<Double> getRankScores(int topKRankings)
topKRankings
- the value of k to usepublic double getVertexRankScore(V v)
setRemoveRankScoresOnFinalize(false)
was called
prior to evaluate()
.v
- the node whose rank score is to be returned.public double getEdgeRankScore(E e)
protected void setVertexRankScore(V v, double rankValue)
protected void setEdgeRankScore(E e, double rankValue)
protected void removeVertexRankScore(V v)
protected void removeEdgeRankScore(E e)
protected double getEdgeWeight(E e)
protected void setEdgeWeight(E e, double weight)
protected void assignDefaultEdgeTransitionWeights()
protected void normalizeEdgeTransitionWeights()
protected void normalizeRankings()
public void printRankings(boolean verbose, boolean printScore)
verbose
- if true
, include information about the actual rank order as well as
the original position of the vertex before it was rankedprintScore
- if true
, include the actual value of the rank scorepublic void setNormalizeRankings(boolean normalizeRankings)
normalizeRankings
- true
iff the ranking are to be normalizedCopyright © 2015. All rights reserved.