sample_fitness | R Documentation |

This function generates a non-growing random graph with edge probabilities proportional to node fitness scores.

```
sample_fitness(
no.of.edges,
fitness.out,
fitness.in = NULL,
loops = FALSE,
multiple = FALSE
)
```

`no.of.edges` |
The number of edges in the generated graph. |

`fitness.out` |
A numeric vector containing the fitness of each vertex. For directed graphs, this specifies the out-fitness of each vertex. |

`fitness.in` |
If If this argument is not |

`loops` |
Logical scalar, whether to allow loop edges in the graph. |

`multiple` |
Logical scalar, whether to allow multiple edges in the graph. |

This game generates a directed or undirected random graph where the
probability of an edge between vertices `i`

and `j`

depends on the
fitness scores of the two vertices involved. For undirected graphs, each
vertex has a single fitness score. For directed graphs, each vertex has an
out- and an in-fitness, and the probability of an edge from `i`

to
`j`

depends on the out-fitness of vertex `i`

and the in-fitness of
vertex `j`

.

The generation process goes as follows. We start from `N`

disconnected
nodes (where `N`

is given by the length of the fitness vector). Then we
randomly select two vertices `i`

and `j`

, with probabilities
proportional to their fitnesses. (When the generated graph is directed,
`i`

is selected according to the out-fitnesses and `j`

is selected
according to the in-fitnesses). If the vertices are not connected yet (or if
multiple edges are allowed), we connect them; otherwise we select a new
pair. This is repeated until the desired number of links are created.

It can be shown that the *expected* degree of each vertex will be
proportional to its fitness, although the actual, observed degree will not
be. If you need to generate a graph with an exact degree sequence, consider
`sample_degseq()`

instead.

This model is commonly used to generate static scale-free networks. To
achieve this, you have to draw the fitness scores from the desired power-law
distribution. Alternatively, you may use `sample_fitness_pl()`

which generates the fitnesses for you with a given exponent.

An igraph graph, directed or undirected.

Tamas Nepusz ntamas@gmail.com

Goh K-I, Kahng B, Kim D: Universal behaviour of load
distribution in scale-free networks. *Phys Rev Lett* 87(27):278701,
2001.

Random graph models (games)
`erdos.renyi.game()`

,
`sample_bipartite()`

,
`sample_correlated_gnp_pair()`

,
`sample_correlated_gnp()`

,
`sample_degseq()`

,
`sample_dot_product()`

,
`sample_fitness_pl()`

,
`sample_forestfire()`

,
`sample_gnm()`

,
`sample_gnp()`

,
`sample_grg()`

,
`sample_growing()`

,
`sample_hierarchical_sbm()`

,
`sample_islands()`

,
`sample_k_regular()`

,
`sample_last_cit()`

,
`sample_pa_age()`

,
`sample_pa()`

,
`sample_pref()`

,
`sample_sbm()`

,
`sample_smallworld()`

,
`sample_traits_callaway()`

,
`sample_tree()`

,
`sample_()`

```
N <- 10000
g <- sample_fitness(5 * N, sample((1:50)^-2, N, replace = TRUE))
degree_distribution(g)
plot(degree_distribution(g, cumulative = TRUE), log = "xy")
```

igraph documentation built on Aug. 10, 2023, 9:08 a.m.

Embedding an R snippet on your website

Add the following code to your website.

For more information on customizing the embed code, read Embedding Snippets.