

PREV CLASS NEXT CLASS  FRAMES NO FRAMES  
SUMMARY: NESTED  FIELD  CONSTR  METHOD  DETAIL: FIELD  CONSTR  METHOD 
java.lang.Object edu.uci.ics.jung.algorithms.scoring.AbstractIterativeScorer<V,E,T>
public abstract class AbstractIterativeScorer<V,E,T>
An abstract class for algorithms that assign scores to vertices based on iterative methods.
Generally, any (concrete) subclass will function by creating an instance, and then either calling
evaluate
(if the user wants to iterate until the algorithms is 'done') or
repeatedly call step
(if the user wants to observe the values at each step).
Field Summary  

protected org.apache.commons.collections15.Transformer<VEPair<V,E>,? extends Number> 
edge_weights
The edge weights used by this algorithm. 
protected Hypergraph<V,E> 
graph
The graph on which the calculations are to be made. 
protected boolean 
hyperedges_are_self_loops

protected double 
max_delta
The largest change seen so far among all vertex scores. 
protected int 
max_iterations
Maximum number of iterations to use before terminating. 
protected boolean 
output_reversed
Indicates whether the output and current values are in a 'swapped' state. 
protected double 
tolerance
Minimum change from one step to the next; if all changes are <= tolerance, no further updates will occur. 
protected int 
total_iterations
The total number of iterations used so far. 
Constructor Summary  

AbstractIterativeScorer(Hypergraph<V,E> g)
Creates an instance for the specified graph g . 

AbstractIterativeScorer(Hypergraph<V,E> g,
org.apache.commons.collections15.Transformer<E,? extends Number> edge_weights)
Creates an instance for the specified graph and edge weights. 
Method Summary  

void 
acceptDisconnectedGraph(boolean accept)
Specifies whether this instance should accept vertices with no outgoing edges. 
protected void 
afterStep()

protected void 
collectDisappearingPotential(V v)
Collects the 'potential' from v (its current value) if it has no outgoing edges; this can then be redistributed among the other vertices as a means of normalization. 
boolean 
done()
Returns true if the total number of iterations is greater than or equal to max_iterations
or if the maximum value change observed is less than tolerance . 
void 
evaluate()
Steps through this scoring algorithm until a termination condition is reached. 
protected int 
getAdjustedIncidentCount(E e)
Returns the effective number of vertices incident to this edge. 
protected T 
getCurrentValue(V v)
Gets the current value for this vertex 
protected Number 
getEdgeWeight(V v,
E e)
Gets the edge weight for e in the context of its (incident) vertex v . 
org.apache.commons.collections15.Transformer<VEPair<V,E>,? extends Number> 
getEdgeWeights()
Returns the Transformer that this instance uses to associate edge weights with each edge. 
int 
getIterations()
Returns the number of iterations that this instance has used so far. 
int 
getMaxIterations()
Returns the maximum number of iterations that this instance will use. 
protected T 
getOutputValue(V v)
Gets the output value for this vertex. 
double 
getTolerance()
Gets the size of the largest change (difference between the current and previous values) for any vertex that can be tolerated. 
T 
getVertexScore(V v)
Returns the algorithm's score for this vertex. 
protected void 
initialize()
Initializes the internal state for this instance. 
boolean 
isDisconnectedGraphOK()
Returns true if this instance accepts vertices with no outgoing edges, and false otherwise. 
protected void 
setCurrentValue(V v,
T value)
Sets the current value for this vertex. 
void 
setEdgeWeights(org.apache.commons.collections15.Transformer<E,? extends Number> edge_weights)
Sets the Transformer that this instance uses to associate edge weights with each edge 
void 
setHyperedgesAreSelfLoops(boolean arg)
Specifies whether hyperedges are to be treated as selfloops. 
void 
setMaxIterations(int max_iterations)
Sets the maximum number of times that evaluate will call step . 
protected void 
setOutputValue(V v,
T value)
Sets the output value for this vertex. 
void 
setTolerance(double tolerance)
Sets the size of the largest change (difference between the current and previous values) for any vertex that can be tolerated. 
void 
step()
Performs one step of this algorithm; updates the state (value) for each vertex. 
protected void 
swapOutputForCurrent()

protected abstract double 
update(V v)
Updates the value for v . 
protected void 
updateMaxDelta(V v,
double diff)

Methods inherited from class java.lang.Object 

clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait 
Field Detail 

protected int max_iterations
protected double tolerance
protected Hypergraph<V,E> graph
protected int total_iterations
protected org.apache.commons.collections15.Transformer<VEPair<V,E>,? extends Number> edge_weights
protected boolean output_reversed
protected boolean hyperedges_are_self_loops
protected double max_delta
Constructor Detail 

public AbstractIterativeScorer(Hypergraph<V,E> g, org.apache.commons.collections15.Transformer<E,? extends Number> edge_weights)
g
 the graph for which the instance is to be creatededge_weights
 the edge weights for this instancepublic AbstractIterativeScorer(Hypergraph<V,E> g)
g
.
NOTE: This constructor does not set the internal
edge_weights
variable. If this variable is used by
the subclass which invoked this constructor, it must be initialized
by that subclass.
g
 the graph for which the instance is to be createdMethod Detail 

protected void setOutputValue(V v, T value)
v
 the vertex whose output value is to be setvalue
 the value to setprotected T getOutputValue(V v)
v
 the vertex whose output value is to be retrieved
protected T getCurrentValue(V v)
v
 the vertex whose current value is to be retrieved
protected void setCurrentValue(V v, T value)
v
 the vertex whose current value is to be setvalue
 the current value to setprotected void initialize()
public void evaluate()
public boolean done()
max_iterations
or if the maximum value change observed is less than tolerance
.
done
in interface IterativeContext
public void step()
step
in interface IterativeContext
protected void swapOutputForCurrent()
protected abstract double update(V v)
v
.
This is the key
v
 the vertex whose value is to be updated
protected void updateMaxDelta(V v, double diff)
protected void afterStep()
public T getVertexScore(V v)
VertexScorer
getVertexScore
in interface VertexScorer<V,T>
public int getMaxIterations()
evaluate
will use
prior to terminatingpublic int getIterations()
public void setMaxIterations(int max_iterations)
evaluate
will call step
.
max_iterations
 the maximumpublic double getTolerance()
evaluate
will terminate.
public void setTolerance(double tolerance)
tolerance
 the size of the largest change that evaluate() will permitpublic org.apache.commons.collections15.Transformer<VEPair<V,E>,? extends Number> getEdgeWeights()
public void setEdgeWeights(org.apache.commons.collections15.Transformer<E,? extends Number> edge_weights)
edge_weights
 the Transformer to use to associate an edge weight with each edgeUniformDegreeWeight
protected Number getEdgeWeight(V v, E e)
e
in the context of its (incident) vertex v
.
v
 the vertex incident to e as a context in which the edge weight is to be calculatede
 the edge whose weight is to be returned
e
in the context of its (incident) vertex v
protected void collectDisappearingPotential(V v)
v
 public void acceptDisconnectedGraph(boolean accept)
accept
 true if this instance should accept vertices with no outgoing edges, false otherwisepublic boolean isDisconnectedGraphOK()
public void setHyperedgesAreSelfLoops(boolean arg)
arg
 if true
, hyperedges are treated as selfloopsprotected int getAdjustedIncidentCount(E e)
graph.getIncidentCount(e)
; otherwise it is
graph.getIncidentCount(e)  1
.


PREV CLASS NEXT CLASS  FRAMES NO FRAMES  
SUMMARY: NESTED  FIELD  CONSTR  METHOD  DETAIL: FIELD  CONSTR  METHOD 