nz.ac.waikato.mcennis.rat.graph.algorithm
Class OptimizedPathBase

java.lang.Object
  extended by nz.ac.waikato.mcennis.rat.graph.model.ModelShell
      extended by nz.ac.waikato.mcennis.rat.graph.algorithm.OptimizedPathBase
All Implemented Interfaces:
java.io.Serializable, Component, Algorithm, Model
Direct Known Subclasses:
Betweeness, Closeness

public abstract class OptimizedPathBase
extends ModelShell
implements Algorithm

Class that calculates geodesic paths using Djikstra's spanning tree algorithm Hooks are provided for subclasses to use each spanning tree for one actor so that the algorithms can become linear in space rather than O(n2).

See Also:
Serialized Form

Field Summary
protected  java.util.LinkedList<IODescriptor> input
           
protected  java.util.LinkedList<IODescriptor> output
           
protected  PropertiesInternal parameter
           
protected  PathNode[] path
           
 
Fields inherited from class nz.ac.waikato.mcennis.rat.graph.model.ModelShell
listener
 
Constructor Summary
OptimizedPathBase()
          Creates a new instance of OptimizedCloseness
 
Method Summary
protected  void compare(PathNode current, PathNode next, Link link)
           
protected abstract  void doAnalysis(PathNode[] path, PathNode source)
           
protected abstract  void doCleanup(PathNode[] path, Graph g)
          Any additional calculations to be performed before control returns to the scheduler
 void execute(Graph g)
          Generates a spanning tree for a given actor.
 java.util.List<IODescriptor> getInputType()
          The input type describes all the different kinds of graph objects that are utilized (and hence required) by this object.
 java.util.List<IODescriptor> getOutputType()
          The output type describes all the different kinds of graph objects that are created during the execution of this algorithm.
 Properties getParameter()
          List of all parameters this component accepts.
 Parameter getParameter(java.lang.String param)
          Returns the specific parameter identified by its key-name.
abstract  void init(Properties map)
          Parameters to be initialized.
abstract  Algorithm prototype()
          All Components implement the prototype pattern.
protected abstract  void setSize(int size)
           
 
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

parameter

protected PropertiesInternal parameter

input

protected java.util.LinkedList<IODescriptor> input

output

protected java.util.LinkedList<IODescriptor> output

path

protected PathNode[] path
Constructor Detail

OptimizedPathBase

public OptimizedPathBase()
Creates a new instance of OptimizedCloseness

Method Detail

execute

public void execute(Graph g)
Generates a spanning tree for a given actor. Calls the abstract methods:
setSize - gives the derived class the size of the user list.
doAnalysis - gives a set of PathNodes and the root of the tree.
doCleanup - allows any extra calculations to be made before the algorithm returns control to the scheduler.

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

doCleanup

protected abstract void doCleanup(PathNode[] path,
                                  Graph g)
Any additional calculations to be performed before control returns to the scheduler

Parameters:
path -
g -

doAnalysis

protected abstract void doAnalysis(PathNode[] path,
                                   PathNode source)
Parameters:
path -
source -

setSize

protected abstract void setSize(int size)
Parameters:
size -

compare

protected void compare(PathNode current,
                       PathNode next,
                       Link link)

getInputType

public java.util.List<IODescriptor> 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:
IODescriptor array for this component
See Also:
IODescriptor

getOutputType

public java.util.List<IODescriptor> 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:
IODescriptor array for this component
See Also:
IODescriptor

getParameter

public Properties 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

init

public abstract void init(Properties map)
Parameters to be initialized. Subclasses should override if they provide any additional parameters or require additional inputs.
  1. 'name' - Name of this instance of the algorithm. Default is ''.
  2. 'relation' - type (relation) of link to calculate over. Default 'Knows'.
  3. 'actorType' - type (mode) of actor to calculate over. Deafult 'User'.
  4. 'normalize' - boolean for whether or not to normalize prestige vectors. Default 'false'.


Input 0 - Link
NOTE - subclasses define the ouput - see subclasses for output information

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

prototype

public abstract Algorithm prototype()
Description copied from interface: Component
All Components implement the prototype pattern. The new parameter has no common resources to the original that are not static resources o the class.

Specified by:
prototype in interface Component
Specified by:
prototype in interface Algorithm
Returns:
default-parameter version of the same class as the original.

Get Relational Analysis Toolkit at SourceForge.net. Fast, secure and Free Open Source software downloads