## 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.

__Commands__

`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.

__Commands__

`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.

__Commands__

`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).

__Commands__

`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).

__Commands__

`DynamicNetwork(`*NumberOfNodes, UpdateInteractionProbability, UpdateStrategyProbability,
MultipleInteractions*`)`

`DynamicNetwork(`*NumberOfNodes, **UpdateInteractionProbability**, **UpdateStrategyProbability*`)`