nz.ac.waikato.mcennis.rat.graph.algorithm.prestige
Class AddCombinedCloseness

java.lang.Object
  extended by nz.ac.waikato.mcennis.rat.graph.model.ModelShell
      extended by nz.ac.waikato.mcennis.rat.graph.algorithm.prestige.AddCombinedCloseness
All Implemented Interfaces:
java.io.Serializable, Component, Algorithm, Model

public class AddCombinedCloseness
extends ModelShell
implements Algorithm

Optimized version of Closeness as defined by Freeman79. This version integrates path calculations into the loop. While still O(n2) in time, it is now O(n) in space.
Freeman, L. "Centrality in social networks: I. Conceptual clarification." Social Networks. 1:215--239.

See Also:
Serialized Form

Field Summary
static long serialVersionUID
           
 
Fields inherited from class nz.ac.waikato.mcennis.rat.graph.model.ModelShell
listener
 
Constructor Summary
AddCombinedCloseness()
          Creates a new instance of AddGeodesicPaths
 
Method Summary
 void calculateGraphCentrality(Graph g)
          Calculate the mean value for actor centrality.
 void calculateGraphCentralitySD(Graph g)
          Calculate Standard Deviation for actor centrality.
 void calculateGraphPrestige(Graph g)
          Calculate the mean value for actor prestige.
 void calculateGraphPrestigeSD(Graph g)
          Calculate Standard Deviation for actor prestige.
 void execute(Graph g)
          Uses Djikstra's algorithm for spanning trees.
 InputDescriptor[] getInputType()
          The input type describes all the different kinds of graph objects that are utilized (and hence required) by this object.
 OutputDescriptor[] getOutputType()
          The output type describes all the different kinds of graph objects that are created during the execution of this algorithm.
 Parameter[] getParameter()
          List of all parameters this component accepts.
 Parameter getParameter(java.lang.String param)
          Returns the specific parameter identified by its key-name.
 SettableParameter[] getSettableParameter()
          Returns settable (i.e.
 SettableParameter getSettableParameter(java.lang.String param)
          Return the settable parameter namede by this key-name.
 void init(java.util.Properties map)
          Parameters for initialization
'name' - name of this isntance.
protected  void nextStepNodes(Graph g)
          Place node expansion into node expansion map.
protected  void processVectors(Graph g, int userNumber)
          for each vector in the list process end node for each geodesic
 
Methods inherited from class nz.ac.waikato.mcennis.rat.graph.model.ModelShell
addListener, fireChange
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface nz.ac.waikato.mcennis.rat.graph.model.Model
addListener
 

Field Detail

serialVersionUID

public static final long serialVersionUID
See Also:
Constant Field Values
Constructor Detail

AddCombinedCloseness

public AddCombinedCloseness()
Creates a new instance of AddGeodesicPaths

Method Detail

execute

public void execute(Graph g)
Uses Djikstra's algorithm for spanning trees. After the spanning tree for each user, calcualate closeness centrality and prestige for the given node. This reduces space requirements to O(n) from O(n2).

Specified by:
execute in interface Algorithm
Parameters:
g - graph to be modified

nextStepNodes

protected void nextStepNodes(Graph g)
Place node expansion into node expansion map. This must be done every user becuase this filters out all nodes that would not create a new geodesic.

Parameters:
g - graph containing the nodes to be parsed.

processVectors

protected void processVectors(Graph g,
                              int userNumber)
for each vector in the list process end node for each geodesic

Parameters:
g - graph for betweeness calculations
userNumber - which user is being calculated.

getInputType

public InputDescriptor[] getInputType()
Description copied from interface: Component
The input type describes all the different kinds of graph objects that are utilized (and hence required) by this object. This result is only guaranteed to be fixed if structural parameters are not modified. This is an empty array if there is no input.

Specified by:
getInputType in interface Component
Returns:
InputDescriptor array for this component
See Also:
InputDescriptor

getOutputType

public OutputDescriptor[] getOutputType()
Description copied from interface: Component
The output type describes all the different kinds of graph objects that are created during the execution of this algorithm. The result is only guaranteed to be fixed if structural parameters are not modified. This is an empty array if there is no output.

Specified by:
getOutputType in interface Component
Returns:
OutputDescriptor array for this component
See Also:
OutputDescriptor

getParameter

public Parameter[] getParameter()
Description copied from interface: Component
List of all parameters this component accepts. Each parameter also has a distinct key-name used when initializing the object using the init method. If there are no parameters, null is returned.

Specified by:
getParameter in interface Component
Returns:
read-only array of Parameters

getParameter

public Parameter getParameter(java.lang.String param)
Description copied from interface: Component
Returns the specific parameter identified by its key-name. If no parameter is found with this key-name, null is returned.

Specified by:
getParameter in interface Component
Parameters:
param - key-name of the parameter
Returns:
named parameter

getSettableParameter

public SettableParameter[] getSettableParameter()
Description copied from interface: Component
Returns settable (i.e. editable while running) parameters. If none exist, null is returned.

Specified by:
getSettableParameter in interface Component
Returns:
array of settable parameters

getSettableParameter

public SettableParameter getSettableParameter(java.lang.String param)
Description copied from interface: Component
Return the settable parameter namede by this key-name. If this parameter is not found or is not settable, null is returned.

Specified by:
getSettableParameter in interface Component
Parameters:
param - key-name of the parameter
Returns:
named settable parameter

init

public void init(java.util.Properties map)
Parameters for initialization
  1. 'name' - name of this isntance. Default is 'Closeness'.
  2. 'relation' - type (relation) of link to use. Default is 'Knows'.
  3. 'actorType' - type (mode) of actor to use. Default is 'User'.
  4. 'normalize' - should the sum of squares of all entries be normalized to 1. Default is 'false'.


Input 1 - Path
Output 1 - ActorProperty
Output 2 - ActorProperty
Output 3 - GraphProperty
Output 4 - GraphProperty
Output 5 - GraphProperty
Output 6 - GraphProperty

Specified by:
init in interface Component
Parameters:
map - map of the given properties naming parameters and their values in a string

calculateGraphCentrality

public void calculateGraphCentrality(Graph g)
Calculate the mean value for actor centrality.

Parameters:
g - graph to be modified

calculateGraphPrestige

public void calculateGraphPrestige(Graph g)
Calculate the mean value for actor prestige.

Parameters:
g - graph to be modified

calculateGraphCentralitySD

public void calculateGraphCentralitySD(Graph g)
Calculate Standard Deviation for actor centrality.

Parameters:
g - graph to be modified

calculateGraphPrestigeSD

public void calculateGraphPrestigeSD(Graph g)
Calculate Standard Deviation for actor prestige.

Parameters:
g - graph to be modified