public class HITS extends AbstractRanker
Note: This algorithm uses the same key as HITSWithPriors for storing rank sccores.
A simple example of usage is:
HITS ranker = new HITS(someGraph); ranker.evaluate(); ranker.printRankings();
Running time: O(|V|*I) where |V| is the number of vertices and I is the number of iterations until convergence
Modifier and Type | Field and Description |
---|---|
protected static java.lang.String |
AUTHORITY_KEY |
protected static java.lang.String |
HUB_KEY |
DEFAULT_EDGE_WEIGHT_KEY
Constructor and Description |
---|
HITS(Graph graph)
Constructs an instance of the ranker where the type of importance that is associated with the
rank score is the node's importance as an authority.
|
HITS(Graph graph,
boolean useAuthorityForRanking)
Constructs an instance of the ranker where the type of importance that is associated with the
rank score is the node's importance as an authority.
|
Modifier and Type | Method and Description |
---|---|
protected double |
evaluateIteration()
Evaluate the result of the current interation.
|
protected void |
finalizeIterations()
Perform eventual clean-up operations
(must be implement by subclass when needed).
|
protected double |
getPreviousAuthorityScore(Element v) |
protected double |
getPreviousHubScore(Element v) |
double |
getRankScore(Element v)
Given a node, returns the corresponding rank score.
|
protected double |
getRankScore(Element v,
java.lang.String key)
Given a node and a key, returns the corresponding rank score.
|
java.lang.String |
getRankScoreKey()
the user datum key used to store the rank scores
|
protected void |
initialize(Graph g) |
protected void |
setRankScore(Element v,
double rankValue) |
protected void |
setRankScore(Element v,
double rankValue,
java.lang.String key) |
void |
setUseAuthorityForRanking(boolean useAuthorityForRanking)
If
evaluate() has not already been called, the user can override the type of importance. |
protected void |
updateAuthorityRankings() |
protected void |
updateHubRankings() |
protected void |
updatePreviousScores() |
assignDefaultEdgeTransitionWeights, getEdgeWeight, getEdgeWeightKeyName, getGraph, getRankings, getRankScores, getVertices, initialize, isRankingEdges, isRankingNodes, normalizeEdgeTransitionWeights, normalizeRankings, onFinalize, printRankings, reinitialize, setEdgeWeight, setNormalizeRankings, setRemoveRankScoresOnFinalize, setUserDefinedEdgeWeightKey
evaluate, getDesiredPrecision, getIterations, getMaximumIterations, getPrecision, hasConverged, initializeIterations, relativePrecision, setDesiredPrecision, setMaximumIterations
protected static final java.lang.String AUTHORITY_KEY
protected static final java.lang.String HUB_KEY
public HITS(Graph graph, boolean useAuthorityForRanking)
graph
- the graph whose nodes are to be rankeduseAuthorityForRanking
- public HITS(Graph graph)
graph
- the graph whose nodes are to be rankedprotected void initialize(Graph g)
protected void finalizeIterations()
IterativeProcess
finalizeIterations
in class AbstractRanker
public java.lang.String getRankScoreKey()
getRankScoreKey
in class AbstractRanker
public double getRankScore(Element v)
getRankScore
assumes
the decoration representing the rank score is of type MutableDouble
.getRankScore
in class AbstractRanker
protected double getRankScore(Element v, java.lang.String key)
MutableDouble
.v
- the node in questionkey
- the user datum key that indexes the rank score valueprotected double getPreviousAuthorityScore(Element v)
protected double getPreviousHubScore(Element v)
protected void setRankScore(Element v, double rankValue, java.lang.String key)
protected void setRankScore(Element v, double rankValue)
setRankScore
in class AbstractRanker
protected double evaluateIteration()
IterativeProcess
evaluateIteration
in class IterativeProcess
public void setUseAuthorityForRanking(boolean useAuthorityForRanking)
evaluate()
has not already been called, the user can override the type of importance.
(hub or authority) that should be associated with the rank score.useAuthorityForRanking
- if true
, authority is used; if false
, hub is usedprotected void updateAuthorityRankings()
protected void updateHubRankings()
protected void updatePreviousScores()