Wiki‎ > ‎

Network Models

This section describes the network formation models implemented in NOESIS. Network models allow studying and understanding the properties of many interesting networks. Several network formation models have been described in the scientific literature to model the topology and structure of real-world networks, which commonly exhibit particular node degree distributions and a small diameter. These models also propose algorithmic procedures for generating synthetic networks with very specific properties.

NOESIS features several network formation models, including the most influential ones, such as the Erdös-Rényi or the Barabási-Albert models. These implemented models allow to generate synthetic networks according to specific user provider parameters. Many influential network formation models can be found under the noesis.model.random package. In addition, NOESIS provides several regular network models under the noesis.model.regular package.

Creating networks using the network formation models included in NOESIS is straightforward. This procedure only requires instantiating a network using the desired type of formation model and providing the desired parameters for the generated network. Each network formation model has its own set of parameters, which are described in detail and exemplified below on this page.

Supported network formation models

Erdös-Rényi model

One of the most basic models to generate random graphs is the Erdös–Rényi model. In this model, networks are chosen randomly among the collection of all possible networks with the specified parameters. This model requires specifying the number of nodes and the number of links in the network. The following code snippet creates a Erdös-Rényi random network with 100 nodes and 500 links:
Network network = new ErdosRenyiNetwork(100, 500); 


Erdös-Rény random network


Gilbert's model

Another simple model is the Gilbert's model, where every pair of nodes is connected by a link with a given probability. This model requires specifying the number of nodes and the probability of link between every pair of nodes in the network. A Gilbert's random network with 100 nodes and a link probability of 0.1 can be created as:
Network network = new GilbertNetwork (100, 0.1);

Lewis' anchored random model

The Lewis' anchored random network is a variation of the Erdös-Rényi model. This model takes two parameters: the number of nodes and the number of links in the network. An example is shown in the following code snippet:
Network network = new AnchoredRandomNetwork(100, 500);
Anchored random network

Connected random network model

The connected random model is other 
variation of the Erdös-Rényi model. 
In order to create a network using this model you must provide two parameters: the number of nodes and the number of links in the network. An e
xample of a network with 100 nodes and 500 links is shown in the following code snippet:
Network network = new ConnectedRandomNetwork (100, 500);
Connected random network

Watts–Strogatz model

We can generate networks using more complex models, such as the Watts–Strogatz model. This model generates networks with small-world properties similar to those observed in real-world networks. In order to achieve these properties, this model initially creates a ring-like network, where each node is only connected to its closest neighbors in the ring. Next, the model requires a link rewiring phase, where links are rewired with a given probability to a random target node. This model requires the number of nodes, the number of links, and the probability of rewire for links. A network with 100 nodes and 300 links using the Watts-Stogatz model, with a link rewiring probability of 0.2, can be generated using the following code snippet:
Network network = new WattsStrogatzNetwork(100, 300, 0.2);
Watts-Strogatz random network

Barabási–Albert model

The Barabási–Albert model generates scale-free networks, where node degrees follow a power law distribution. This behavior is achieved using the preferential attachment mechanism, where nodes are more likely to form new links with higher degree nodes. This model requires the number of nodes and the number of links for each node in the network. A Barabási-Albert network with 100 nodes and 5 links for each node can be generated as follows:
Network network = new BarabasiAlbertNetwork(100, 5);
Barabási–Albert random network


Price's model

The Price's model can be used to generate networks with similar properties to real citation networks. This model is similar to the Barabási-Alber model, given that citation networks also tend to follow a power law degree distribution. This model requires the number of nodes, the number of citation links for each node,  and the number of free citations for each node in the network. The difference between citation and free links is, while citation links are created using the preferential attachment mechanism, free links are created at random uniformly choosing a target node. A Price's network with 50 nodes, 4 citation links for each node, and 1 free link for each node can be generated using the following line of code:
Network network = new PriceCitationNetwork(50, 4, 1);
Price's random network

Regular models

NOESIS also includes many regular network models under the model.regular package. Instead of generating random networks as the previously described models, they generate networks with a very specific topology. In addition, NOESIS can efficiently provide relevant topological metrics, such as distance between nodes, diameter, min-max degree, or clustering coefficient, based on theoretical results.

Complete

A complete network is a regular network where every pair of nodes is connected by a link. This model only takes the number of nodes in the network as parameter. An example for creating a complete network with 15 nodes is shown below:
RegularNetwork network = new CompleteNetwork(15);

Complete regular network

Star

In a star network all nodes are connected to a central or root node. This model requires specifying the number of nodes in the network as parameter. An example for creating a star network with 15 nodes is shown below:
RegularNetwork network = new StarNetwork(15);
Star regular network

Ring

As its name suggests, in this model, nodes are connected to exactly two neighbors composing a unique component. This model only requires the number of nodes in the network as parameter. The following code snippet creates a ring network with 15 nodes:
RegularNetwork network = new RingNetwork(15);

Ring regular network

Tandem

A Tandem network is similar to a rope: two end nodes are connected by a chain of internal nodes. These internal nodes are connected only to exactly two neighbors. As in the previous regular models, instantiating a network using this model only requires passing the number of nodes in the network as parameter. How a tandem network with 15 nodes can be created is shown below.
RegularNetwork network = new TandemNetwork(15);
Tandem regular network

Mesh

In a mesh network, nodes are arranged in a two-dimensional grid. This model requires specifying the number of rows and the number of columns. For example, to create a mesh network with 10 rows and 10 columns we would write the following line of code:
RegularNetwork network = new MeshNetwork(10,10);

Mesh regular network

Toroidal

A toroidal network is a mesh network where the outer nodes of the grid are also connected with the outer nodes at the other end of their row and their column. As for mesh networks, this models requires passing the number of rows and the number of columns in the network. A toroidal network with 10 rows and 10 columns can be created as follows:
RegularNetwork network = new ToroidalNetwork(10,10);

Toroidal regular network

Hypercube

This model encodes a hypercube, where corners are represented as nodes and edges as links. This model only requires specifying the dimensionality of the hypercube. For example, a 3-dimensional cube can be created with the following line:
RegularNetwork network = new HypercubeNetwork(3);
Hypercube regular network

Binary tree

In a binary tree, nodes are arranged hierarchically such that each node is connected to a parent and at most to two children. This model requires specifying the number of nodes in the tree. The binary tree is growth on a level-by-level basis. In order to create a binary tree with 15 nodes, we should write the following code snippet:
RegularNetwork network = new BinaryTreeNetwork(15);

Binary tree regular network

Isolate

A isolate network is simply a network without links. This model requires specifying the number of nodes in the network. A isolate network can be created using the following code snippet:
RegularNetwork network = new IsolateNetwork(15);

Isolate regular network

Comments