Class PageRankWithPriors<V,E>
- java.lang.Object
-
- edu.uci.ics.jung.algorithms.scoring.AbstractIterativeScorer<V,E,S>
-
- edu.uci.ics.jung.algorithms.scoring.AbstractIterativeScorerWithPriors<V,E,java.lang.Double>
-
- edu.uci.ics.jung.algorithms.scoring.PageRankWithPriors<V,E>
-
- All Implemented Interfaces:
VertexScorer<V,java.lang.Double>
,IterativeContext
- Direct Known Subclasses:
KStepMarkov
,PageRank
public class PageRankWithPriors<V,E> extends AbstractIterativeScorerWithPriors<V,E,java.lang.Double>
A generalization of PageRank that permits non-uniformly-distributed random jumps. The 'vertex_priors' (that is, prior probabilities for each vertex) may be thought of as the fraction of the total 'potential' that is assigned to that vertex at each step out of the portion that is assigned according to random jumps (this portion is specified by 'alpha').- See Also:
- "Algorithms for Estimating Relative Importance in Graphs by Scott White and Padhraic Smyth, 2003",
PageRank
-
-
Field Summary
Fields Modifier and Type Field Description protected double
disappearing_potential
Maintains the amount of potential associated with vertices with no out-edges.-
Fields inherited from class edu.uci.ics.jung.algorithms.scoring.AbstractIterativeScorerWithPriors
alpha, vertex_priors
-
Fields inherited from class edu.uci.ics.jung.algorithms.scoring.AbstractIterativeScorer
edge_weights, graph, hyperedges_are_self_loops, max_delta, max_iterations, output_reversed, tolerance, total_iterations
-
-
Constructor Summary
Constructors Constructor Description PageRankWithPriors(edu.uci.ics.jung.graph.Hypergraph<V,E> graph, org.apache.commons.collections4.Transformer<E,? extends java.lang.Number> edge_weights, org.apache.commons.collections4.Transformer<V,java.lang.Double> vertex_priors, double alpha)
Creates an instance with the specified graph, edge weights, vertex priors, and 'random jump' probability (alpha).PageRankWithPriors(edu.uci.ics.jung.graph.Hypergraph<V,E> graph, org.apache.commons.collections4.Transformer<V,java.lang.Double> vertex_priors, double alpha)
Creates an instance with the specified graph, vertex priors, and 'random jump' probability (alpha).
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected void
afterStep()
Cleans up after each step.protected void
collectDisappearingPotential(V v)
Collects the "disappearing potential" associated with vertices that have no outgoing edges.double
update(V v)
Updates the value for this vertex.-
Methods inherited from class edu.uci.ics.jung.algorithms.scoring.AbstractIterativeScorerWithPriors
getAlpha, getVertexPrior, getVertexPriors, initialize
-
Methods inherited from class edu.uci.ics.jung.algorithms.scoring.AbstractIterativeScorer
acceptDisconnectedGraph, done, evaluate, getAdjustedIncidentCount, getCurrentValue, getEdgeWeight, getEdgeWeights, getIterations, getMaxIterations, getOutputValue, getTolerance, getVertexScore, isDisconnectedGraphOK, setCurrentValue, setEdgeWeights, setHyperedgesAreSelfLoops, setMaxIterations, setOutputValue, setTolerance, step, swapOutputForCurrent, updateMaxDelta
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface edu.uci.ics.jung.algorithms.scoring.VertexScorer
getVertexScore
-
-
-
-
Constructor Detail
-
PageRankWithPriors
public PageRankWithPriors(edu.uci.ics.jung.graph.Hypergraph<V,E> graph, org.apache.commons.collections4.Transformer<E,? extends java.lang.Number> edge_weights, org.apache.commons.collections4.Transformer<V,java.lang.Double> vertex_priors, double alpha)
Creates an instance with the specified graph, edge weights, vertex priors, and 'random jump' probability (alpha).- Parameters:
graph
- the input graphedge_weights
- the edge weights, denoting transition probabilities from source to destinationvertex_priors
- the prior probabilities for each vertexalpha
- the probability of executing a 'random jump' at each step
-
PageRankWithPriors
public PageRankWithPriors(edu.uci.ics.jung.graph.Hypergraph<V,E> graph, org.apache.commons.collections4.Transformer<V,java.lang.Double> vertex_priors, double alpha)
Creates an instance with the specified graph, vertex priors, and 'random jump' probability (alpha). The outgoing edge weights for each vertex will be equal and sum to 1.- Parameters:
graph
- the input graphvertex_priors
- the prior probabilities for each vertexalpha
- the probability of executing a 'random jump' at each step
-
-
Method Detail
-
update
public double update(V v)
Updates the value for this vertex. Called bystep()
.- Specified by:
update
in classAbstractIterativeScorer<V,E,java.lang.Double>
- Parameters:
v
- the vertex whose value is to be updated- Returns:
-
afterStep
protected void afterStep()
Cleans up after each step. In this case that involves allocating the disappearing potential (thus maintaining normalization of the scores) according to the vertex probability priors, and then callingsuper.afterStep
.- Overrides:
afterStep
in classAbstractIterativeScorer<V,E,java.lang.Double>
-
collectDisappearingPotential
protected void collectDisappearingPotential(V v)
Collects the "disappearing potential" associated with vertices that have no outgoing edges. Vertices that have no outgoing edges do not directly contribute to the scores of other vertices. These values are collected at each step and then distributed across all vertices as a part of the normalization process.- Overrides:
collectDisappearingPotential
in classAbstractIterativeScorer<V,E,java.lang.Double>
-
-