V
- the graph vertex typeE
- the graph edge typepublic final class AlphaCentrality<V,E> extends Object implements VertexScoringAlgorithm<V,Double>
The wikipedia article contains a nice description of AlphaCentrality. You may also refer to this paper describing the implementation of the algorithm.
To implement EigenVector Centrality, call AlphaCentrality by passing the value of exogenous factor as zero. Further description of EigenVector Centrality can be found in wikipedia. To implement Katz Centrality, call AlphaCentrality by passing a non-zero scalar exogenous factor value. Further description of Katz Centrality can be found in wikipedia.
This is a simple iterative implementation of AlphaCentrality which stops after a given number of iterations or if the AlphaCentrality values between two iterations do not change more than a predefined value.
Each iteration of the algorithm runs in linear time O(n+m) when n is the number of nodes and m
the number of edges of the graph. The maximum number of iterations can be adjusted by the caller.
The default value is MAX_ITERATIONS_DEFAULT
. Also in case of weighted
graphs, negative weights are not expected.
Modifier and Type | Field and Description |
---|---|
static double |
DAMPING_FACTOR_DEFAULT
Damping factor default value.
|
static double |
EXOGENOUS_FACTOR_DEFAULT
Exogenous factor default value.
|
static int |
MAX_ITERATIONS_DEFAULT
Default number of maximum iterations.
|
static double |
TOLERANCE_DEFAULT
Default value for the tolerance.
|
Constructor and Description |
---|
AlphaCentrality(Graph<V,E> g)
Create and execute an instance of AlphaCentrality.
|
AlphaCentrality(Graph<V,E> g,
double dampingFactor)
Create and execute an instance of AlphaCentrality.
|
AlphaCentrality(Graph<V,E> g,
double dampingFactor,
double exogenousFactor)
Create and execute an instance of AlphaCentrality.
|
AlphaCentrality(Graph<V,E> g,
double dampingFactor,
double exogenousFactor,
int maxIterations)
Create and execute an instance of AlphaCentrality.
|
AlphaCentrality(Graph<V,E> g,
double dampingFactor,
double exogenousFactor,
int maxIterations,
double tolerance)
Create and execute an instance of AlphaCentrality.
|
AlphaCentrality(Graph<V,E> g,
double dampingFactor,
ToDoubleFunction<V> exogenousFactorFunction)
Create and execute an instance of AlphaCentrality.
|
AlphaCentrality(Graph<V,E> g,
double dampingFactor,
ToDoubleFunction<V> exogenousFactorFunction,
int maxIterations)
Create and execute an instance of AlphaCentrality.
|
AlphaCentrality(Graph<V,E> g,
double dampingFactor,
ToDoubleFunction<V> exogenousFactorFunction,
int maxIterations,
double tolerance)
Create and execute an instance of AlphaCentrality.
|
Modifier and Type | Method and Description |
---|---|
Map<V,Double> |
getScores()
Get a map with the scores of all vertices
|
Double |
getVertexScore(V v)
Get a vertex score
|
public static final int MAX_ITERATIONS_DEFAULT
public static final double TOLERANCE_DEFAULT
public static final double DAMPING_FACTOR_DEFAULT
public static final double EXOGENOUS_FACTOR_DEFAULT
public AlphaCentrality(Graph<V,E> g)
g
- the input graphpublic AlphaCentrality(Graph<V,E> g, double dampingFactor)
g
- the input graphdampingFactor
- the damping factorpublic AlphaCentrality(Graph<V,E> g, double dampingFactor, double exogenousFactor)
g
- the input graphdampingFactor
- the damping factorexogenousFactor
- the exogenous factorpublic AlphaCentrality(Graph<V,E> g, double dampingFactor, ToDoubleFunction<V> exogenousFactorFunction)
g
- the input graphdampingFactor
- the damping factorexogenousFactorFunction
- ToDoubleFunction a provider of exogenous factors per vertexpublic AlphaCentrality(Graph<V,E> g, double dampingFactor, double exogenousFactor, int maxIterations)
g
- the input graphdampingFactor
- the damping factorexogenousFactor
- the exogenous factormaxIterations
- the maximum number of iterations to performpublic AlphaCentrality(Graph<V,E> g, double dampingFactor, ToDoubleFunction<V> exogenousFactorFunction, int maxIterations)
g
- the input graphdampingFactor
- the damping factorexogenousFactorFunction
- ToDoubleFunction a provider of exogenous factors per vertexmaxIterations
- the maximum number of iterations to performpublic AlphaCentrality(Graph<V,E> g, double dampingFactor, double exogenousFactor, int maxIterations, double tolerance)
g
- the input graphdampingFactor
- the damping factorexogenousFactor
- the exogenous factormaxIterations
- the maximum number of iterations to performtolerance
- the calculation will stop if the difference of AlphaCentrality values
between iterations change less than this valuepublic AlphaCentrality(Graph<V,E> g, double dampingFactor, ToDoubleFunction<V> exogenousFactorFunction, int maxIterations, double tolerance)
g
- the input graphdampingFactor
- the damping factorexogenousFactorFunction
- ToDoubleFunction a provider of exogenous factors per vertexmaxIterations
- the maximum number of iterations to performtolerance
- the calculation will stop if the difference of AlphaCentrality values
between iterations change less than this valuepublic Map<V,Double> getScores()
getScores
in interface VertexScoringAlgorithm<V,Double>
public Double getVertexScore(V v)
getVertexScore
in interface VertexScoringAlgorithm<V,Double>
v
- the vertexCopyright © 2018. All rights reserved.