Changing the model

Changing to a one-dimensional lattice

To switch to a one-dimensional lattice, use the OneDLattice command.  The following command creates a one-dimensional lattice 200 cells wide with an interaction radius of 3 and an update radius of 4:
OneDLattice( 200, 3, 4);
An alternate form of this command exists.  If you omit the third argument, the radius for the interaction and update neighborhoods are taken to be the same.


OneDLattice(Width, InteractionRadius, UpdateRadius)
OneDLattice(Width, CommonRadius)

Changing to a two-dimensional lattice

The TwoDLattice command changes the model to a two-dimensional lattice.  The following creates a two-dimensional lattice with a width of 100, a height of 150, and neighborhoods which wrap at the edges:
TwoDLattice( 100, 150, true );
If you omit the third argument, whatever the current wrap setting is will be reused.


TwoDLattice(Width, Height, Wrap)
TwoDLattice(Width, Height)

Changing to a small-world network

The SmallWorldNetwork command changes the model to a small-world network.  The following creates a small-world network with 1000 nodes, an interaction radius of 10, and a beta value of 0.001.  (The beta value is the probability that any given agent will be on a shortcut.)
SmallWorldNetwork( 1000, 10, 0.001);
No variant forms of this command exist.


SmallWorldNetwork(NumberOfNodes, InteractionRadius, Beta)

Changing to a bounded degree network

A bounded degree network is a network in which the degree of each vertex (the number of edges it is incident on) lies between a minimum and maximum value.  The clustering coefficient is a measure of how hard the program should try to connect a given vertex to its neighbor's neighbors.  If the clustering coefficient is 0, when a new edge is being added to a vertex, the vertex's neighbors' neighbors are assigned the same probability of being connected to as any other node in the network.  If the clustering coefficient is 1, the program will always try to first connect a vertex to one of its neighbors's neighbors,  only connecting the vertex to another node if none of its neighbors's neighbors are eligible.

The following command creates a bounded degree network with 30 agents, a minimum degree of 2 and a maximum degree of 4, with a clustering coefficient of 0.3:
BoundedDegreeNetwork( 30, 2, 4, 0.3);
An alternate form of this command omits the clustering coefficient, using the current value.  (The default value is 0).


BoundedDegreeNetwork(NumberOfNodes, MinK, MaxK, ClusteringCoefficient)
BoundedDegreeNetwork(NumberOfNodes, MinK, MaxK)

If MinK = MaxK, the model will try to assign all nodes the same number of edges.  Note that if (NumberOfNodes * MinK) is odd these constraints cannot be satisfied.  The program doesn't handle this gracefully.

Changing to a dynamic network

This program implements the dynamic network model described by Skyrms and Pemantle (2000), along with a variant.  The following command creates a dynamic network with 11 agents in which the structural dynamics occur each generation, no strategic dynamics occur, and agents are not permitted to initiate interactions with more than one agent in a generation:
DynamicNetwork( 11, 1.0, 0.0, false );
If you want agents to be able to initiate interactions with more than one agent in a generation, put true instead of false for the fourth argument:
DynamicNetwork( 11, 1.0, 0.0, true );
The second and third arguments specify the probability that a given agent will update his interaction probabilities (the structural dynamics) or update his strategy (the strategic dynamics).  If either probability is 1, that dynamic takes place each generation.  If either probability is 0, that dynamic never occurs.

In each generation, interactions occur before any updating takes place, and structural dynamics preceed strategic dynamics if both dynamics occur in a given generation.

A variant form of this command has only three arguments; it decides whether to permit multiple interactions using the current value of that parameter.  The default value is false (multiple interactions are prevented).


DynamicNetwork(NumberOfNodes, UpdateInteractionProbability, UpdateStrategyProbability, MultipleInteractions)
DynamicNetwork(NumberOfNodes, UpdateInteractionProbabilityUpdateStrategyProbability)