RePast
v. 2.0

uchicago.src.sim.network
Class Linker

java.lang.Object
  |
  +--uchicago.src.sim.network.Linker

public class Linker
extends Object

Creates links between nodes based on some ProbabilityRule. The idea here is that a Node will have an associated Linker. It will use Linker to create links with the other Nodes in the network. The appropriate calling sequence, assuming the Linker is already constructed, is:

 linker.init();
 linker.makeLink(this, new SomeEdge());
 
where this is the node that contains the linker, and SomeEdge is whatever sort of Edge is being used in the model.


Constructor Summary
Linker(ProbabilityRule probRule)
          Creates a Linker that uses the specified ProbabilityRule to determine link creation.
 
Method Summary
 RangeMap getMap()
          Returns the probability map.
 Object getNodeForLink()
          Returns a random object from the probabililty map created by the ProbabilityRule.
 double getProbabilityFor(Object o)
          Gets the probability for the specified object according to the Probability Rule passed in the constructor.
 void init()
          Initializes this Linker for link creation and getting probabilties.
 Node makeLink(Node from, Edge edge)
          Makes a link between the specified Node using the specified Edge and a Node chosen at random from the probability map, and calls this Linker's update method with this random node and a value of 1 as the arguments.
 Node makeLink(Node from, Edge edge, float amtToUpdate)
          Makes a link between the specified Node using the specified Edge and a Node chosen at random from the probability map and calls this Linker's update method with this random node and the specified value as arguments.
 void setProbabilityRule(ProbabilityRule probRule)
          Sets the ProbabilityRule used by this Linker.
 void update(Object o)
          Updates the probability of the specified object in the probability map.
 void update(Object o, float amt)
          Updates the probability of the specified object in the probability map with the specified amount.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

Linker

public Linker(ProbabilityRule probRule)
Creates a Linker that uses the specified ProbabilityRule to determine link creation.

Parameters:
probRule - the ProbabilityRule to use in link creation
Method Detail

setProbabilityRule

public void setProbabilityRule(ProbabilityRule probRule)
Sets the ProbabilityRule used by this Linker.

Parameters:
probRule - the ProbabilityRule to use in link creation

init

public void init()
Initializes this Linker for link creation and getting probabilties. This recreates the probability map incorporating any changes that resulted from calls to update. This should be called before any calls to makeLink, getProbabilityFor, or getNodeForLink if the result of those calls is to reflect any updates.


getNodeForLink

public Object getNodeForLink()
Returns a random object from the probabililty map created by the ProbabilityRule.


getMap

public RangeMap getMap()
Returns the probability map.


update

public void update(Object o)
Updates the probability of the specified object in the probability map. This calls the corresponding update method in the ProbabilityRule passed in the constructor. The results of this call are not reflected in the probability map until init() is called.

Parameters:
o - the object whose probability is to be updated.

update

public void update(Object o,
                   float amt)
Updates the probability of the specified object in the probability map with the specified amount. This calls the corresponding update method in the ProbabilityRule passed in the constructor. The results of this call are not reflected in the probability map until init() is called.

Parameters:
o - the object whose probability is to be updated.
amt - the amt to update.

getProbabilityFor

public double getProbabilityFor(Object o)
Gets the probability for the specified object according to the Probability Rule passed in the constructor.


makeLink

public Node makeLink(Node from,
                     Edge edge)
Makes a link between the specified Node using the specified Edge and a Node chosen at random from the probability map, and calls this Linker's update method with this random node and a value of 1 as the arguments. Note that this only adds an OutEdge to the from node, and nothing to the toNode.

Parameters:
from - the node to make the link from.
edge - the Edge to make the link out of.
Returns:
the random node that is the target of the link.

makeLink

public Node makeLink(Node from,
                     Edge edge,
                     float amtToUpdate)
Makes a link between the specified Node using the specified Edge and a Node chosen at random from the probability map and calls this Linker's update method with this random node and the specified value as arguments. Note that this only adds an OutEdge to the from node, and nothing to the toNode.

Parameters:
from - the node to make the link from.
edge - the Edge to make the link out of.
amtToUpdate - the amount to pass to this Linker's update method.
Returns:
the random node that is the target of the link.

RePast
v. 2.0

Bug reports and feature requests to RePast