diff options
Diffstat (limited to 'doc/latex/latex/models')
12 files changed, 628 insertions, 0 deletions
diff --git a/doc/latex/latex/models/correlations/tune_qnn_adaptive.tex b/doc/latex/latex/models/correlations/tune_qnn_adaptive.tex new file mode 100644 index 0000000..016b674 --- /dev/null +++ b/doc/latex/latex/models/correlations/tune_qnn_adaptive.tex @@ -0,0 +1,64 @@ +\myprogram{{tune\_qnn\_adaptive}} + {Construct a multiplex with prescribed inter-layer correlations.} + {$<$degs1$>$ $<$degs2$>$ $<$mu$>$ $<$eps$>$ $<$beta$>$ [RND|NAT|INV]} + +\mydescription{This programs tunes the inter-layer degree correlation + exponent $\mu$. If we consider two layers of a multiplex, + and we denote by $k$ the degree of a node on the first layer + and by $q$ the degree of the same node on the second layers, + the inter-layer degree correlation function is defined as: + + \begin{equation*} + \overline{q}(k) = \sum_{q'} q' P(q'|k) + \end{equation*} + + where $\overline{q}(k)$ is the average degree on layer $2$ + of nodes having degree $k$ on layer $1$. + + The program assumes that we want to set the degree + correlation function such that: + + \begin{equation*} + \overline{q}(k) = a k^{\mu} + \end{equation*} + + where the exponent of the power-law function is given by + the user (it is indeed the parameter \textit{mu}), and + successively adjusts the pairing between nodes at the two + layers in order to obtain a correlation function as close + as possible to the desired one. The files \textit{degs1} + and \textit{degs2} contain, respectively, the degrees of + the nodes on the first layer and on the second layer. + + The parameter \textit{eps} is the accuracy of \textit{mu}. + For instance, if \textit{mu} is set equal to -0.25 + and \textit{eps} is equal to 0.0001, the program stops when + the configuration of node pairing corresponds to a value of + the exponent $\mu$ which differs from -0.25 by less than + 0.0001. + + The parameter \textit{beta} is the typical inverse + temperature of simulated annealing. + + If no other parameter is specified, or if the last parameter + is \texttt{RND}, the program starts from a random pairing of + nodes. If the last parameter is \texttt{NAT} then the + program assumes that the initial pairing is the natural one, + where the nodes have the same ID on both layers. Finally, + if \texttt{INV} is specified, the initial pairing is the + inverse pairing, i.e. the one where node 0 on layer 1 is + paired with node N-1 on layer 2, and so on. + + } + + +\myreturn{The program prints on \texttt{stdout} a pairing, i.e. a list +of lines in the format: + +\hspace{0.5cm} \textit{IDL1 IDL2} + +where \textit{IDL1} is the ID of the node on layer 1 and \textit{IDL2} +is the corresponding ID of the same node on layer 2. +} + +\myreference{\refcorrelations} diff --git a/doc/latex/latex/models/correlations/tune_rho.tex b/doc/latex/latex/models/correlations/tune_rho.tex new file mode 100644 index 0000000..27b6079 --- /dev/null +++ b/doc/latex/latex/models/correlations/tune_rho.tex @@ -0,0 +1,45 @@ +\myprogram{{tune\_rho}} + {Construct a multiplex with prescribed inter-layer correlations.} + {$<$rank1$>$ $<$rank2$>$ $<$rho$>$ $<$eps$>$ $<$beta$>$ [RND|NAT|INV]} + +\mydescription{This programs tunes the inter-layer degree correlation + coefficient $\rho$ (Spearman's rank correlation) of two + layers, by adjusting the inter-layer pairing of nodes. The + files \textit{rank1} and \textit{rank2} are the rankings of + nodes in the first and second layer, where the n-th line of + the file contains the rank of the n-th node (the highest + ranked node has rank equal to 1). + + The parameter \textit{rho} is the desired value of the + Spearman's rank correlation coefficient, while \textit{eps} + is the accuracy of \textit{rho}. For instance, + if \textit{rho} is set equal to -0.25 and \textit{eps} is + equal to 0.0001, the program stops when the configuration of + node pairing corresponds to a value of $\rho$ which differs + from -0.25 by less than 0.0001. + + The parameter \textit{beta} is the typical inverse + temperature of simulated annealing. + + If no other parameter is specified, or if the last parameter + is \texttt{RND}, the program starts from a random pairing of + nodes. If the last parameter is \texttt{NAT} then the + program assumes that the initial pairing is the natural one, + where the nodes have the same ID on both layers. Finally, + if \texttt{INV} is specified, the initial pairing is the + inverse pairing, i.e. the one where node 0 on layer 1 is + paired with node N-1 on layer 2, and so on. + + } + + +\myreturn{The program prints on \texttt{stdout} a pairing, i.e. a list +of lines in the format: + +\hspace{0.5cm} \textit{IDL1 IDL2} + +where \textit{IDL1} is the ID of the node on layer 1 and \textit{IDL2} +is the corresponding ID of the same node on layer 2. +} + +\myreference{\refcorrelations} diff --git a/doc/latex/latex/models/growth/nibilab_linear_delay.tex b/doc/latex/latex/models/growth/nibilab_linear_delay.tex new file mode 100644 index 0000000..afbf083 --- /dev/null +++ b/doc/latex/latex/models/growth/nibilab_linear_delay.tex @@ -0,0 +1,67 @@ +\myprogram{{nibilab\_linear\_delay}} + {Multiplex linear preferential attachment model -- + Asynchronous arrival.} + {$<$N$>$ $<$m$>$ $<$m0$>$ $<$outfile$>$ $<$a$>$ $<$b$>$ + $<$c$>$ $<$d$>$ $<$beta$>$} + +\mydescription{Grow a two-layer multiplex network using the multiplex linear + preferential attachment model by Nicosia, Bianconi, Latora, + Barthelemy (NiBiLaB). + + The probability for a newly arrived node $i$ to create a + link to node $j$ on layer $1$ is: + + \begin{equation*} + \Pi_{i\to j}^{1} \propto ak\lay{1}_j + bk\lay{2}_j + \end{equation*} + + and the dual probability for $i$ to create a link to $j$ on + layer $2$ is: + + \begin{equation*} + \Pi_{i\to j}^{2} \propto ck\lay{1}_j + dk\lay{2}_j + \end{equation*} + + Each new node arrives first on layer $1$, and its replica on + the layer $2$ appears after a time delay $\tau$ sampled from + the power-law function: + + \begin{equation*} + P(\tau) \sim \tau^{-\beta} + \end{equation*} + + The (mandatory) parameters are as follows: + + \begin{itemize} + + \item \textbf{N} number of nodes in the final graph + + \item \textbf{m} number of new edges brought by each new node + + \item \textbf{m0} number of nodes in the initial seed + graph. \textit{m0} must be larger than of equal + to \textit{m}. + + \item \textbf{outfile} the name of the file which will contain the + + \item \textbf{a,b,c,d} the coefficients of the attaching probability + function + + \item \textbf{beta} the exponent of the power-law delay + function which determines the arrival of replicas on layer $2$ + + \end{itemize} + } + + +\myreturn{The program dumps on the file \texttt{outfile} the + (undirected) edge list of the resulting network. Each line of the + file is in the format: + + \hspace{0.5cm}\textit{src\_ID} \textit{dest\_ID} + + where \textit{src\_ID} and \textit{dest\_ID} are the IDs of the two + endpoints of an edge. +} + +\myreference{\refgrowth} diff --git a/doc/latex/latex/models/growth/nibilab_linear_delay_mix.tex b/doc/latex/latex/models/growth/nibilab_linear_delay_mix.tex new file mode 100644 index 0000000..5863951 --- /dev/null +++ b/doc/latex/latex/models/growth/nibilab_linear_delay_mix.tex @@ -0,0 +1,68 @@ +\myprogram{{nibilab\_linear\_delay\_mix}} + {Multiplex linear preferential attachment model -- + Asynchronous arrival and randomly selected first layer.} + {$<$N$>$ $<$m$>$ $<$m0$>$ $<$outfile$>$ $<$a$>$ $<$b$>$ + $<$c$>$ $<$d$>$ $<$beta$>$} + +\mydescription{Grow a two-layer multiplex network using the multiplex linear + preferential attachment model by Nicosia, Bianconi, Latora, + Barthelemy (NiBiLaB). + + The probability for a newly arrived node $i$ to create a + link to node $j$ on layer $1$ is: + + \begin{equation*} + \Pi_{i\to j}^{1} \propto ak\lay{1}_j + bk\lay{2}_j + \end{equation*} + + and the dual probability for $i$ to create a link to $j$ on + layer $2$ is: + + \begin{equation*} + \Pi_{i\to j}^{2} \propto ck\lay{1}_j + dk\lay{2}_j + \end{equation*} + + Each new node arrives on one of the two layers, chosen + uniformly at random, and its replica on the other layer + appears after a time delay $\tau$ sampled from the power-law + function: + + \begin{equation*} + P(\tau) \sim \tau^{-\beta} + \end{equation*} + + The (mandatory) parameters are as follows: + + \begin{itemize} + + \item \textbf{N} number of nodes in the final graph + + \item \textbf{m} number of new edges brought by each new node + + \item \textbf{m0} number of nodes in the initial seed + graph. \textit{m0} must be larger than of equal + to \textit{m}. + + \item \textbf{outfile} the name of the file which will contain the + + \item \textbf{a,b,c,d} the coefficients of the attaching probability + function + + \item \textbf{beta} the exponent of the power-law delay + function which determines the arrival of replicas on layer $2$ + + \end{itemize} + } + + +\myreturn{The program dumps on the file \texttt{outfile} the + (undirected) edge list of the resulting network. Each line of the + file is in the format: + + \hspace{0.5cm}\textit{src\_ID} \textit{dest\_ID} + + where \textit{src\_ID} and \textit{dest\_ID} are the IDs of the two + endpoints of an edge. +} + +\myreference{\refgrowth} diff --git a/doc/latex/latex/models/growth/nibilab_linear_delta.tex b/doc/latex/latex/models/growth/nibilab_linear_delta.tex new file mode 100644 index 0000000..27ebbd0 --- /dev/null +++ b/doc/latex/latex/models/growth/nibilab_linear_delta.tex @@ -0,0 +1,57 @@ +\myprogram{{nibilab\_linear\_delta}} + {Multiplex linear preferential attachment model -- + Synchronous arrival.} + {$<$N$>$ $<$m$>$ $<$m0$>$ $<$outfile$>$ $<$a$>$ $<$b$>$ $<$c$>$ $<$d$>$} + +\mydescription{Grow a two-layer multiplex network using the multiplex linear + preferential attachment model by Nicosia, Bianconi, Latora, + Barthelemy (NiBiLaB). + + The probability for a newly arrived node $i$ to create a + link to node $j$ on layer $1$ is: + + \begin{equation*} + \Pi_{i\to j}^{1} \propto ak\lay{1}_j + bk\lay{2}_j + \end{equation*} + + and the dual probability for $i$ to create a link to $j$ on + layer $2$ is: + + \begin{equation*} + \Pi_{i\to j}^{2} \propto ck\lay{1}_j + dk\lay{2}_j + \end{equation*} + + Each new node arrives at the same time on both layers. + + The (mandatory) parameters are as follows: + + \begin{itemize} + + \item \textbf{N} number of nodes in the final graph + + \item \textbf{m} number of new edges brought by each new node + + \item \textbf{m0} number of nodes in the initial seed + graph. \textit{m0} must be larger than of equal + to \textit{m}. + + \item \textbf{outfile} the name of the file which will contain the + + \item \textbf{a,b,c,d} the coefficients of the attaching probability + function + + \end{itemize} + } + + +\myreturn{The program dumps on the file \texttt{outfile} the + (undirected) edge list of the resulting network. Each line of the + file is in the format: + + \hspace{0.5cm}\textit{src\_ID} \textit{dest\_ID} + + where \textit{src\_ID} and \textit{dest\_ID} are the IDs of the two + endpoints of an edge. +} + +\myreference{\refgrowth} diff --git a/doc/latex/latex/models/growth/nibilab_linear_random_times.tex b/doc/latex/latex/models/growth/nibilab_linear_random_times.tex new file mode 100644 index 0000000..5f1c0fe --- /dev/null +++ b/doc/latex/latex/models/growth/nibilab_linear_random_times.tex @@ -0,0 +1,63 @@ +\myprogram{{nibilab\_linear\_random\_times}} + {Multiplex linear preferential attachment model -- + Asynchronous arrival with randomly sampled arrival times on + layer 2.} + {$<$N$>$ $<$m$>$ $<$m0$>$ $<$outfile$>$ $<$a$>$ $<$b$>$ + $<$c$>$ $<$d$>$ } + +\mydescription{Grow a two-layer multiplex network using the multiplex linear + preferential attachment model by Nicosia, Bianconi, Latora, + Barthelemy (NiBiLaB). + + The probability for a newly arrived node $i$ to create a + link to node $j$ on layer $1$ is: + + \begin{equation*} + \Pi_{i\to j}^{1} \propto ak\lay{1}_j + bk\lay{2}_j + \end{equation*} + + and the dual probability for $i$ to create a link to $j$ on + layer $2$ is: + + \begin{equation*} + \Pi_{i\to j}^{2} \propto ck\lay{1}_j + dk\lay{2}_j + \end{equation*} + + Each new node arrives on layer $1$, but its replica on the + other layer appears at a uniformly chosen random time in + $[m0+1; N]$. + + + The (mandatory) parameters are as follows: + + \begin{itemize} + + \item \textbf{N} number of nodes in the final graph + + \item \textbf{m} number of new edges brought by each new node + + \item \textbf{m0} number of nodes in the initial seed + graph. \textit{m0} must be larger than of equal + to \textit{m}. + + \item \textbf{outfile} the name of the file which will contain the + + \item \textbf{a,b,c,d} the coefficients of the attaching probability + function + + + \end{itemize} + } + + +\myreturn{The program dumps on the file \texttt{outfile} the + (undirected) edge list of the resulting network. Each line of the + file is in the format: + + \hspace{0.5cm}\textit{src\_ID} \textit{dest\_ID} + + where \textit{src\_ID} and \textit{dest\_ID} are the IDs of the two + endpoints of an edge. +} + +\myreference{\refgrowth} diff --git a/doc/latex/latex/models/growth/nibilab_nonlinear.tex b/doc/latex/latex/models/growth/nibilab_nonlinear.tex new file mode 100644 index 0000000..2e48a18 --- /dev/null +++ b/doc/latex/latex/models/growth/nibilab_nonlinear.tex @@ -0,0 +1,60 @@ +\myprogram{{nibilab\_nonlinear}} + {Multiplex non-linear preferential attachment model -- + Synchronous arrival.} + {$<$N$>$ $<$m$>$ $<$m0$>$ $<$outfile$>$ $<$alpha$>$ $<$beta$>$} + +\mydescription{Grow a two-layer multiplex network using the multiplex non-linear + preferential attachment model by Nicosia, Bianconi, Latora, + Barthelemy (NiBiLaB). + + The probability for a newly arrived node $i$ to create a + link to node $j$ on layer $1$ is: + + \begin{equation*} + \Pi_{i\to j}^{1} \propto \frac{\left(k\lay{1}_j\right)^{\alpha}} + {\left(k\lay{2}_j\right)^{\beta}} + \end{equation*} + + and the dual probability for $i$ to create a link to $j$ on + layer $2$ is: + + \begin{equation*} + \Pi_{i\to j}^{2} \propto \frac{\left(k\lay{2}_j\right)^{\alpha}} + {\left(k\lay{1}_j\right)^{\beta}} + \end{equation*} + + Each node arrives simultaneously on both layers. + + + The (mandatory) parameters are as follows: + + \begin{itemize} + + \item \textbf{N} number of nodes in the final graph + + \item \textbf{m} number of new edges brought by each new node + + \item \textbf{m0} number of nodes in the initial seed + graph. \textit{m0} must be larger than of equal + to \textit{m}. + + \item \textbf{outfile} the name of the file which will contain the + + \item \textbf{alpha, beta} exponents of of the attaching probability + function + + \end{itemize} + } + + +\myreturn{The program dumps on the file \texttt{outfile} the + (undirected) edge list of the resulting network. Each line of the + file is in the format: + + \hspace{0.5cm}\textit{src\_ID} \textit{dest\_ID} + + where \textit{src\_ID} and \textit{dest\_ID} are the IDs of the two + endpoints of an edge. +} + +\myreference{\refgrowth} diff --git a/doc/latex/latex/models/growth/node_deg_over_time.tex b/doc/latex/latex/models/growth/node_deg_over_time.tex new file mode 100644 index 0000000..351045e --- /dev/null +++ b/doc/latex/latex/models/growth/node_deg_over_time.tex @@ -0,0 +1,50 @@ +\myprogram{{node\_deg\_over\_time.py}} + {Time evolution of the degree of a node in a growing graph.} + {$<$layer$>$ $<$arrival\_times$>$ $<$node\_id$>$ + [$<$node\_id$>$ ...]} + +\mydescription{Compute the degree $k_{i}(t)$ of node $i$ in a growing + network as a function of time. The file \textit{layer} + contains the edge list of the final network. Each line of + the file is in the format: + + \hspace{0.5cm}\textit{src\_ID} \textit{dest\_ID} + + where \textit{src\_ID} and \textit{dest\_ID} are the IDs of the two + endpoints of an edge. + + The file \textit{arrival\_times} is a list of node arrival times, in + the format: + + \hspace{0.5cm} \textit{time\_i node\_i} + + where \textit{time\_i} is the time at which \textit{node\_i} arrived + in the graph. Notice that \textit{time\_i} must be an integer in the + range [0, N-1], where N is the total number of nodes in the final + graph. + + The third parameter \textit{node\_id} is the ID of the node whose + degree over time will be printed on output. If more than + one \textit{node\_id} is provided, the degrees over time of all the + corresponding nodes are printed on output. + } + + +\myreturn{The program prints on \texttt{stdout} a list of lines in the + format: + + \hspace{0.5cm} \textit{t kit} + + where \textit{kit} is the degree of node \textit{i} at + time \textit{t}. The first line of output is in the format: + + \hspace{0.5cm} \textit{\#\#\#\# node\_id} + + where \textit{node\_id} is the ID of node \textit{i}. + + If more than one \textit{node\_id}s is provided as input, the program + prints the degree over time of all of them, sequentially. + +} + +\myreference{\refgrowth} diff --git a/doc/latex/latex/models/nullmodels/model_MDM.tex b/doc/latex/latex/models/nullmodels/model_MDM.tex new file mode 100644 index 0000000..dd754b8 --- /dev/null +++ b/doc/latex/latex/models/nullmodels/model_MDM.tex @@ -0,0 +1,37 @@ +\myprogram{{model\_MDM.py}} + {Multi-activity Deterministic Model.} + {$<$Bi\_file$>$ $<$M$>$} + +\mydescription{This is the Multi-activity Deterministic Model (MDM). + In this model each node $i$ is considered active if it was + active in the reference multiplex, maintains the same value + of node activity $B_i$ (i.e., the number of layers in which + it was active) and is associated an activity vector sampled + uniformly at random from the $M\choose{B_i}$ possible + activity vectors with $B_i$ non-null entries. + + The file \textit{Bi\_file} is in the format: + + \hspace{0.5cm} \textit{Bi N(Bi)} + + where \textit{Bi} is a value of node activity + and \textit{N(Bi)} is the number of nodes which had node + activity equaly to \textit{Bi} in the reference multiplex. + + The parameter \textit{M} is the number of layers in the + multiplex. +} + + +\myreturn{The program prints on \texttt{stdout} a distribution of + bit-strings, in the format: + + \hspace{0.5cm} \textit{Bi bitstring count} + + where \textit{bitstring} is the activity + bitstring, \textit{Bi} is the number of non-zero entries + of \textit{bitstring} and \textit{count} is the number of + times that \textit{bitstrings} appear in the null model.} + + +\myreference{\refcorrelations} diff --git a/doc/latex/latex/models/nullmodels/model_MSM.tex b/doc/latex/latex/models/nullmodels/model_MSM.tex new file mode 100644 index 0000000..e3c8abf --- /dev/null +++ b/doc/latex/latex/models/nullmodels/model_MSM.tex @@ -0,0 +1,38 @@ +\myprogram{{model\_MSM.py}} + {Multi-activity Stochastic Model.} + {$<$node\_Bi\_file$>$ $<$M$>$} + +\mydescription{This is the Multi-activity Stochastic Model (MSM). + In this model each node $i$ is considered active if it was + active in the reference multiplex, and is activated on + each layer with a probability equal to $B_i/M$ where $B_i$ + was the activity of node $i$ in the reference multiplex. + + The file \textit{node\_Bi\_file} is in the format: + + \hspace{0.5cm} \textit{node\_i Bi)} + + where \textit{Bi} is the value of node activity + of \textit{node\_i} in the reference multiplex. + + + The parameter \textit{M} is the number of layers in the + multiplex. +} + +\myreturn{The program prints on \texttt{stdout} a node-layer list of lines in the + format: + + \hspace{0.5cm} \textit{node\_i layer\_i} + + where \textit{node\_i} is the ID of a node and \textit{layre\_i} is + the ID of a layer. This list indicates which nodes are active in + which layer. For instance, the line: + + \hspace{0.5cm} \textit{24 3} + + indicates that the node with ID \textit{24} is active on + layer \textit{3}. +} + +\myreference{\refcorrelations} diff --git a/doc/latex/latex/models/nullmodels/model_hypergeometric.tex b/doc/latex/latex/models/nullmodels/model_hypergeometric.tex new file mode 100644 index 0000000..0315c7b --- /dev/null +++ b/doc/latex/latex/models/nullmodels/model_hypergeometric.tex @@ -0,0 +1,33 @@ +\myprogram{{model\_hypergeometric.py}} + {Hypergeometric node activity null model.} + {$<$layer\_N\_file$>$ $<$N$>$} + +\mydescription{This is the hypergeometric model of node activation. In + this model each layer has exactly the same number of active + node of a reference multiplex network, but nodes on each + layer are activated uniformly at random, thus destroying all + inter-layer activity correlation patterns. + + The file \textit{layer\_N\_file} reports on the n-th line + the number of active nodes on the n-th layer (starting from + zero). The second parameter \textit{N} is the total number + of active nodes in the multiplex. + } + + +\myreturn{The program prints on \texttt{stdout} a node-layer list of lines in the + format: + + \hspace{0.5cm} \textit{node\_i layer\_i} + + where \textit{node\_i} is the ID of a node and \textit{layre\_i} is + the ID of a layer. This list indicates which nodes are active in + which layer. For instance, the line: + + \hspace{0.5cm} \textit{24 3} + + indicates that the node with ID \textit{24} is active on + layer \textit{3}. +} + +\myreference{\refcorrelations} diff --git a/doc/latex/latex/models/nullmodels/model_layer_growth.tex b/doc/latex/latex/models/nullmodels/model_layer_growth.tex new file mode 100644 index 0000000..9c0bb12 --- /dev/null +++ b/doc/latex/latex/models/nullmodels/model_layer_growth.tex @@ -0,0 +1,46 @@ +\myprogram{{model\_layer\_growth.py}} + {Layer growth with preferential activation model.} + {$<$layer\_N\_file$>$ $<$N$>$ $<$M0$>$ $<$A$>$ [RND]} + +\mydescription{This is the model of layer growth with preferential + node activation. In this model an entire new layer arrives + at time $t$ and a number of nodes $N_t$ is activated ($N\_t$ + is equal to the number of nodes active on that layer in the + reference multiplex). Then, each node $i$ of the new layer + is activated with a probability: + + \begin{equation*} + P_i(t) \propto A + B_i(t) + \end{equation*} + + where $B_i(t)$ is the activity of node $i$ at time $t$ + (i.e., the number of layers in which node $i$ is active at + time $t$) while $A>0$ is an intrinsic attractiveness. + + The file \textit{layer\_N\_file} reports on the n-th line + the number of active nodes on the n-th layer. + + The parameter \textit{N} is the number of nodes in the + multiplex, \textit{M0} is the number of layers in the + initial network, \textit{A} is the value of + node attractiveness. + + If the user specifies \texttt{RND} as the last parameter, + the sequence of layers is } + +\myreturn{The program prints on \texttt{stdout} a node-layer list of lines in the + format: + + \hspace{0.5cm} \textit{node\_i layer\_i} + + where \textit{node\_i} is the ID of a node and \textit{layre\_i} is + the ID of a layer. This list indicates which nodes are active in + which layer. For instance, the line: + + \hspace{0.5cm} \textit{24 3} + + indicates that the node with ID \textit{24} is active on + layer \textit{3}. +} + +\myreference{\refcorrelations} |