In this section we’ll focus on different ways of generating graphs and the properties that arise. In particular, we will be interested in methods with properties which resemble those by social networks. Mainly, the following characteristics:
Algorithm: Start with
isolated vertices and place m edges at random between them.
Algorithm: Start with
isolated vertices and connect each pair of nodes with a probability .
Notice this family is bigger than the previous one.
Interestingly, graph properties such as diameter or probability of a giant component vs
The characteristics achieved by this graph family:
Algorithm:
- Start with 2 connected nodes.
Repeat
times:
- Add new node
- Create a link between
and one of the existing nodes with probability proportional to the degree
Notice this has the “rich get richer” snowball effect.
The graphs created using this algorithm tend to look like stars.
Notice there will never be triangles since we do not add links to the rest of the graph, just between the new node.
The Barbasi-Albert model addresses this issue by allowing up to
Objective: Given a degree sequence
Check out the soft configuration model for a version of this algorithm within the maximum-entropy framework.
Algorithm:
- Assign each node a number of spokes corresponding to the degrees.
- Randomly connect the spokes between nodes.
Illustration of the graph construction. Image from mmd.org
Problem: Social networks present a very high clustering coefficient and yet a very low diameter. (Small-World situations)
Algorithm:
- Construct a regular ring lattice of
nodes connected to neighbors. - For each node, with probability
re-wire a connecting edge.
Illustration of the graph construction. Image from mmd.org
Usually for
Nevertheless, the degree distribution is not power law, thus resulting in unrealistic distributions.
Given a set of nodes
Algorithm:
for each node:
- Assign one or more memberships to a given community with probability
This is for graph with communities, check our post on graph clustering for more details
Thus, the model is uniquely defined by parameters:
Algorithm:
for each community
: for each pair fo nodes within:
- Connect them with probability
Notice that the probability of two nodes being connected is: