NET is a program thought to help those researchers in the
complex networks to analyse the statistical properties of complex
networks. NET can be used both to generate complex networks
and to analyze them. NET can run multiple realizations of
generation models and perform multiple realization (ensemble)
can perform single and multiple statistics on networks read from files.
By running NET into an empty directory, a template initialization
named NET.INI will be created. Click
you like to browse the NET.INI file in another window. You have to
edit the NET.INI file in
order to meet your needs and run the
program again into the same directory. Output data files containing the
statistical analysis data can be easily detected inside the running
directory as their filename begins with the '=' character.
If you have the Qt 3.0 installed you may run the graphical frontend
with the command NetIni.
NetIni creates the file NET.INI according to
your specifications and eventually runs the NET program.
Hereby follows a description of options available in the
Version number is checked at startup in order to avoid the
of old initialization files. In case an old NET.INI file is detected,
you have to delete it and let the program generate a new
one from scratch. That one will have the correct version number.
NK = 50
# Number of nodes
This line defines the number of nodes of the network. It is taken
into account only if you are generating a new network using the built
in models. If the READ_IN flag is set, then the network will be loaded
from file and the value of NK will be overwritten. The program NET uses
dynamical allocation of memory so that large values of NK may cause the
program to exit due to insufficient memory.
DISTRIB = 0
# See comment lines above
A = 0.0
# Parameter for the distribution above
B = 1.0
# Another parameter for the distribution above
These parameters define which probability density distribution is to
be used to extract the fitness random variables for each node. They are
used only if you choose to generate a network with the fitness model of
course. The definition of the fitness model can be found in
Rev. Lett. 89, 258702 (2002)
. The numerical value of
option DISTRIB selects the type of distribution to use. If with x we
denote the fitness variable, the probability
density distributions so far implemented are:
LINKTYPE = 0
# Type of function to use as linking probability
Z = 0.0
# Cutoff in the linking probability
M = 0.03
# Probability of successfull connections per node
E = 0.0
# Parameter in the linking prob
These set of parameters define which linking probability is to be
used to construct the net with the fitness model. Again we cite the
where details of the model can be found. If x and y denote the
fitnesses of two nodes, and f(x,y) the linking probability function,
then the implemented functions are:
With THETA we indicate the Heaviside
step function. In order to inspect and change the user
defined functions, please edit the source file
LinkProbability.c. Note that with the above default
values, i.e. with M as the only non vanishing parameter, a
binomial graph with linking probability p=M will be
generated. Further, we showed in
Phys. Rev. E 70, 056126 (2004) that given a fixed
probability density function it is always possible to find a
linking function such to produce a network with the node degree
distribution obeying a power-law with given exponent. Explicit
formulae can be found in the article and can be implemented as
user defined linking functions.
TREE = 0
# Force the generation of a tree
This option forces the generation of tree-like networks in that the new incoming nodes are allowed to link only once. Set to 1 (TRUE) to activate this option.
ACYCLIC = 0
# Force the generation of acyclicgraphs
If set to 1 (TRUE) this option forces the generation of graphs with no triangles (third order loops), so that the clustering coefficient is identically zero for each node. This does not preclude the existence of higher order loops.
BA_N0 = 2
# Starting clique order
BA_M = 2
# Links entering at each step
In case you chose the generation of networks by using the Barabasi-Albert preferential attachment rule, you need to set these parameters to the initial number of node already present in the graph at time 0 (as complete graph -clique-), and the number of incoming links at each time step, respectively.
PROJNAME = gnu
# Project name
Input and output file names will refer to the project name. For example, input graph files containing the link list of the network will be "PROJNAME.in" (or better "gnu.in" with the present choice of the parameter). Output file names will be e.g. "=gnu.DegreeDistribution.dat" and so on.
NET_GENR = 0
# 0=FITNESS, 1=BA, 2=MG
Here you decide which algorithm to use for generating graphs. Till now only two possibilities are implemented: the fitnes model mentioned above and the preferential attachment of Barabasi-Albert. Method 2 (Minimum Growth) is still experimental and not documented.
NET_TYPE = 0
# 0=undirected, 1=directed
This option lets you define whether the network is directed or undirected. Most of output data are split according to the in-degree and out-degree of nodes. Generation of directed nets with the fitness model and preferential attachment are allowed. In this case links go from the new entering node to the old ones.
WEIGHTED = 0
# 0=unweighted, 1=weighted edges (only with READ_IN=1)
To be set to 1 (TRUE) if the network is a weighted network. Each link in the network has a weight associated with it. Only network read as input and not generated internally may be wheighted ones for now. Most of output data files will refer to the node strength rather than its degree.
MULTI = 1
# If>1 do multiple runs
This parameter defines how many ensemble replica are to be generated. This is usefull in order to test the statistical properties of a model of net generation. The project name is modified into "PROJNAMExxxx" where xxxx ranges from 0000 up to MULTI-1 with a maximum of 9999. The final ensemble statistics have file names with project "PROJNAME_STATS". If READ_IN is TRUE then the nets are read from files "PROJNAMExxxx.in", which you might have generated before.
READ_IN = 0
# Read net from file PROJNAME.in
If this parameter is set to 1 (TRUE) then the net will be read
from file "PROJNAME.in", or from files "PROJNAMExxxx.in" in case
MULTI is greater than 1.
Network input files are so structured:
# Network: gnu # Total number of nodes: 35 # Links follow: 0 6 0 28 # comment 1 20 # another comment 2 30 etc. etc.where lines starting with "#" are ignored. Also all characters following the first "#" sign in the line are treated as comment. With directed nets, links are drawn from the first node index to the second. In case of WEIGHTED networks, the user has to supply a third numerical field after node indeces. Nodes whose index does not appear in the link list are still considered to belong to the network but are isolated nodes. You might set SAVE_NET to 1 in order to get rid of isolated nodes.
SAVE_NET = 1
# Save the resulting net on file 1=.net 2=.paj for pajek
The processed net is saved into file "PROJNAME.net". If you need
to reuse this network, you must rename the file into
"PROJNAME.in" by hand.
This is done in order not to automatically overwrite the original
"PROJNAME.in" if present.
By saving the net, all isolated nodes are discarded and the list
of new node labels is appended to the end of the "PROJNAME.net"
file as comment.
If this parameter is set to 2 then the output file is saved in a format compatible with the Pajek network drawing and analysis software.