- java.lang.Object
-
- org.jgrapht.alg.scoring.AlphaCentrality<V,E>
-
- Type Parameters:
V
- the graph vertex typeE
- the graph edge type
- All Implemented Interfaces:
VertexScoringAlgorithm<V,java.lang.Double>
public final class AlphaCentrality<V,E> extends java.lang.Object implements VertexScoringAlgorithm<V,java.lang.Double>
AlphaCentrality implementation.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.- Author:
- Dimitrios Michail, Pratik Tibrewal
-
-
Field Summary
Fields Modifier and Type Field 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 Summary
Constructors Constructor 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, java.util.function.ToDoubleFunction<V> exogenousFactorFunction)
Create and execute an instance of AlphaCentrality.AlphaCentrality(Graph<V,E> g, double dampingFactor, java.util.function.ToDoubleFunction<V> exogenousFactorFunction, int maxIterations)
Create and execute an instance of AlphaCentrality.AlphaCentrality(Graph<V,E> g, double dampingFactor, java.util.function.ToDoubleFunction<V> exogenousFactorFunction, int maxIterations, double tolerance)
Create and execute an instance of AlphaCentrality.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description java.util.Map<V,java.lang.Double>
getScores()
Get a map with the scores of all verticesjava.lang.Double
getVertexScore(V v)
Get a vertex score
-
-
-
Field Detail
-
MAX_ITERATIONS_DEFAULT
public static final int MAX_ITERATIONS_DEFAULT
Default number of maximum iterations.- See Also:
- Constant Field Values
-
TOLERANCE_DEFAULT
public static final double TOLERANCE_DEFAULT
Default value for the tolerance. The calculation will stop if the difference of AlphaCentrality values between iterations change less than this value.- See Also:
- Constant Field Values
-
DAMPING_FACTOR_DEFAULT
public static final double DAMPING_FACTOR_DEFAULT
Damping factor default value.- See Also:
- Constant Field Values
-
EXOGENOUS_FACTOR_DEFAULT
public static final double EXOGENOUS_FACTOR_DEFAULT
Exogenous factor default value.- See Also:
- Constant Field Values
-
-
Constructor Detail
-
AlphaCentrality
public AlphaCentrality(Graph<V,E> g)
Create and execute an instance of AlphaCentrality.- Parameters:
g
- the input graph
-
AlphaCentrality
public AlphaCentrality(Graph<V,E> g, double dampingFactor)
Create and execute an instance of AlphaCentrality.- Parameters:
g
- the input graphdampingFactor
- the damping factor
-
AlphaCentrality
public AlphaCentrality(Graph<V,E> g, double dampingFactor, double exogenousFactor)
Create and execute an instance of AlphaCentrality.- Parameters:
g
- the input graphdampingFactor
- the damping factorexogenousFactor
- the exogenous factor
-
AlphaCentrality
public AlphaCentrality(Graph<V,E> g, double dampingFactor, java.util.function.ToDoubleFunction<V> exogenousFactorFunction)
Create and execute an instance of AlphaCentrality.- Parameters:
g
- the input graphdampingFactor
- the damping factorexogenousFactorFunction
- ToDoubleFunction a provider of exogenous factors per vertex
-
AlphaCentrality
public AlphaCentrality(Graph<V,E> g, double dampingFactor, double exogenousFactor, int maxIterations)
Create and execute an instance of AlphaCentrality.- Parameters:
g
- the input graphdampingFactor
- the damping factorexogenousFactor
- the exogenous factormaxIterations
- the maximum number of iterations to perform
-
AlphaCentrality
public AlphaCentrality(Graph<V,E> g, double dampingFactor, java.util.function.ToDoubleFunction<V> exogenousFactorFunction, int maxIterations)
Create and execute an instance of AlphaCentrality.- Parameters:
g
- the input graphdampingFactor
- the damping factorexogenousFactorFunction
- ToDoubleFunction a provider of exogenous factors per vertexmaxIterations
- the maximum number of iterations to perform
-
AlphaCentrality
public AlphaCentrality(Graph<V,E> g, double dampingFactor, double exogenousFactor, int maxIterations, double tolerance)
Create and execute an instance of AlphaCentrality.- Parameters:
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 value
-
AlphaCentrality
public AlphaCentrality(Graph<V,E> g, double dampingFactor, java.util.function.ToDoubleFunction<V> exogenousFactorFunction, int maxIterations, double tolerance)
Create and execute an instance of AlphaCentrality.- Parameters:
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 value
-
-
Method Detail
-
getScores
public java.util.Map<V,java.lang.Double> getScores()
Get a map with the scores of all vertices- Specified by:
getScores
in interfaceVertexScoringAlgorithm<V,E>
- Returns:
- a map with all scores
-
getVertexScore
public java.lang.Double getVertexScore(V v)
Get a vertex score- Specified by:
getVertexScore
in interfaceVertexScoringAlgorithm<V,E>
- Parameters:
v
- the vertex- Returns:
- the score
-
-