# traits

##### Graph generation based on different vertex types

These functions implement evolving network models based on different vertex types.

- Keywords
- graphs

##### Usage

```
callaway.traits.game (nodes, types, edge.per.step = 1, type.dist = rep(1,
types), pref.matrix = matrix(1, types, types), directed = FALSE)
establishment.game(nodes, types, k = 1, type.dist = rep(1, types),
pref.matrix = matrix(1, types, types), directed = FALSE)
```

##### Arguments

- nodes
- The number of vertices in the graph.
- types
- The number of different vertex types.
- edge.per.step
- The number of edges to add to the graph per time step.
- type.dist
- The distribution of the vertex types. This is assumed to be stationary in time.
- pref.matrix
- A matrix giving the preferences of the given vertex types. These should be probabilities, ie. numbers between zero and one.
- directed
- Logical constant, whether to generate directed graphs.
- k
- The number of trials per time step, see details below.

##### Details

For `callaway.traits.game`

the simulation goes like this: in each
discrete time step a new vertex is added to the graph. The type of
this vertex is generated based on `type.dist`

. Then two vertices are
selected uniformly randomly from the graph. The probability that they
will be connected depends on the types of these vertices and is taken
from `pref.matrix`

. Then another two vertices are selected and
this is repeated `edges.per.step`

times in each time step.

For `establishment.game`

the simulation goes like this: a single
vertex is added at each time step. This new vertex tries to connect to
`k`

vertices in the graph. The probability that such a connection is
realized depends on the types of the vertices involved and is taken
from `pref.matrix`

.

##### Value

- A new graph object.

##### Examples

```
# two types of vertices, they like only themselves
g1 <- callaway.traits.game(1000, 2, pref.matrix=matrix( c(1,0,0,1), nc=2))
g2 <- establishment.game(1000, 2, k=2, pref.matrix=matrix( c(1,0,0,1), nc=2))
```

*Documentation reproduced from package igraph, version 0.5.2-2, License: GPL (>= 2)*