Figures
Abstract
The development of kernel-based inhomogeneous random graphs has provided models that are flexible enough to capture many observed characteristics of real networks, and that are also mathematically tractable. We specify a class of inhomogeneous random graph models, called random kernel graphs, that produces sparse graphs with tunable graph properties, and we develop an efficient generation algorithm to sample random instances from this model. As real-world networks are usually large, it is essential that the run-time of generation algorithms scales better than quadratically in the number of vertices n. We show that for many practical kernels our algorithm runs in time at most 𝒪(n(logn)^{2}). As a practical example we show how to generate samples of power-law degree distribution graphs with tunable assortativity.
Citation: Hagberg A, Lemons N (2015) Fast Generation of Sparse Random Kernel Graphs. PLoS ONE10(9): e0135177. https://doi.org/10.1371/journal.pone.0135177
Editor: Wen-Bo Du, Beihang University, CHINA
Received: May 11, 2015; Accepted: July 17, 2015; Published: September 10, 2015
Copyright: © 2015 Hagberg, Lemons. This is an open access article distributed under the terms of the Creative Commons Attribution License, which permits unrestricted use, distribution, and reproduction in any medium, provided the original author and source are credited
Data Availability: The Python software for the algorithm in the manuscript is available at https://github.com/networkx/networkx/pull/1509.
Funding: This work was funded by the Department of Energy at Los Alamos National Laboratory under contract DE-AC52-06NA25396 through the Laboratory Directed Research and Development Program.
Competing interests: The authors have declared that no competing interests exist.
1 Introduction
The broad adoption of graphs as a modeling language, together with the widespread importance of applications in social, computer, and biological systems [1], has resulted in many efforts to develop random graph models [2, 3]. Random graph models give insight into network structures and are often used for null models, anonymization, and studying dynamical processes [4–7]. Large-scale graphs are also used to construct benchmarks for testing algorithm performance on high-performance computing systems [8, 9].
A common goal in constructing random graph models is to match properties of real-world graphs. One approach is to explicitly specify a distribution of graphs with expected graph properties that can be analyzed. Important examples of this approach include Erdős-Rényi random graphs [10, 11], Chung-Lu (also called expected degree) random graphs [12], and graphs with a specified degree distribution [13]. To capture even more general graph features Söderberg introduced a model of sparse inhomogeneous random graphs and showed that it could produce a wide variety of sparse graphs [14]. Bollobás, Janson, and Riordan (BJR) formalized and extended the model of Söderberg by emphasizing that the random graphs could be defined in terms of a kernel [15]. They also focused the model on sparse graphs with O(n) edges and n vertices. The flexibility inherent in the kernel approach generalizes well-known models of sparse graphs while remaining mathematically tractable; the BJR model can produce graphs with power-law degree distributions [15], and graphs with tunable assortativity [16].
Models from which random uniform samples can be efficiently generated are even more useful. In particular, the efficient generation of random graph instances allows researchers to simulate complex graph phenomena and dynamics for which mathematical analysis is difficult or impossible [17]. There are models, such as the space of all graphs with a given degree sequence and clustering coefficients, from which we do not know how to sample uniformly. Simulation of such models is then confined to the regions of the distribution currently available to us.
Though the BJR model appears to be so general as to preclude an efficient, general generation algorithm, we provide a fast generation algorithm for an important class of kernels, which we call Random Kernel Graphs. Random Kernel Graphs are very general and exhibit the flexibility of the inhomogeneous random graph model including tunable expected degree sequences and tunable assortativity. For Random Kernel Graphs, we exploit the idea of sampling from a waiting-time distribution to design an algorithm for generating uniform n-node samples with complexity of 𝒪(n(logn)^{2}). We demonstrate the utility of the model by showing how to generate large sparse random graphs with a power-law degree distribution and adjustable assortativity.
2 Random Kernel Graphs
The BJR random graph model is extremely general, and we do not know of an algorithm which can quickly and efficiently generate such graphs. Instead, we specify an important special case of the model, the Random Kernel Graph G(n, κ) defined below, which is still very general and includes many models such as the Erdős-Rényi G(n, p) [11], Chung-Lu G(w) [12], and Söderberg models [14].
Definition 1 (The Kernel κ). A non-negative, bounded, symmetric, measurable function κ: [0, 1]^{2} → ℝ is a kernel if there exists a finite set D ⊂ [0, 1] such that κ is continuous at all points (x, y) for which neither x nor y belong to D.
Definition 2 (Random Kernel Graph G(n, κ)). For each positive integer n we define a distribution of graphs on v_{n} = {i/n:i = 1, 2, …, n}. Given a kernel κ, we define the Random Kernel Graph G(n, κ) to be the graph obtained on the vertices v_{n} when edges (v_{i}, v_{j}) are chosen independently with probability p_{ij} given by As κ is bounded and we are interested in the asymptotics of generating large graphs, we always assume that κ ≤ n.
For example if κ ≡ c is constant, then G(n, κ) is nothing more than the Erdős-Rényi random graph model in which each edge appears independently with probability c/n.
Note that G(n, κ) defines a sequence of graph distributions, one distribution for each integer n. This is convenient from several perspectives. Mathematically we can analyze the n → ∞ limit of the distributions; from a practical standpoint we can generate graphs at different scales which all come from the same model.
3 An efficient generation algorithm
When random graphs are defined through independent random variables, as is the case in for G(n, κ), one need only test random Bernoulli variables to choose a graph on n vertices uniformly from the distribution. But when modeling real-world networks, which are usually large and sparse, algorithms which take 𝒪(n^{2}) steps are prohibitively slow. To produce a sparse graph with m edges the ideal is to find algorithms that run in time 𝒪(m). Batagelj and Brandes found such an algorithm for producing Erdős-Rényi random graphs [18]. Instead of sampling consecutive Bernoulli random variables, the algorithm samples from a waiting time distribution (the Geometric distribution) to determine the next edge to be added. This method was extended to generate Chung-Lu random graphs in time 𝒪(m+n) [19].
As in the methods discussed above, our design of an efficient algorithm for G(n, κ) begins by drawing from waiting-time distributions instead of drawing n^{2} Bernoulli variables. The random variable from our waiting distribution tells us exactly how many “non-edges” are skipped before the next edge is added to the graph. Suppose that in generating a graph G = G(n, κ) we have already determined that vertex v_{i} is adjacent to vertex v_{j}. We would like to determine the next neighbor of v_{i} in the ordering of the indices. (By symmetry it is sufficient to determine only those neighbors of v_{i} whose index is greater than i so we can assume that j > i.) We first pick a random number r from the uniform distribution on (0,1], and then set d to the smallest positive integer such that, (1) The next neighbor of v_{i} is then v_{j+d} so the edge (v_{i}, v_{j+d}) is added to the graph. If there is no such d with j+d ≤ n then v_{i} has no more neighbors and we continue by searching for neighbors of the next vertex v_{i+1}.
The key to a fast algorithm for G(n, κ) is efficiently calculating the index d for each generated edge. To see how to approach this problem consider the following approximations, (2) (3) (4) The product in Eq (2) has been reduced to calculating the exponential of a definite integral. This formula can be computed efficiently, especially if an analytical form for the integral of κ can be found.
Instead of using the approximation Eq (4) to compute the waiting times we take a different approach and define a new random kernel model G′ based on this approximation. This new model can be generated exactly. We prove in Appendix A that the models G and G′ are asymptotically equivalent.
Definition 3 (Random kernel graph G′(n, κ)). Let v_{n} and κ be given as in Definition 2. The random kernel graph G′(n, κ) is the graph obtained on the vertices v_{n} when the edges (v_{i}, v_{j}) are chosen independently with probability given by We set the value of v_{0} = 0 to allow computation of the integral but no vertex v_{0} is added to the graph.
For the model G′(n, κ) we now have for relation Eq (1) the following equations, Therefore, if r is sampled uniformly from (0,1], then we need to find the minimal d such that (5)
Using inequality Eq (5) we present an efficient method for generating the model G′(n, κ) in Algorithm 1. To simplify the exposition we use the following notation, (6)
Algorithm 1 Fast Generation of G′(n, κ)
Input: : n, F
Output: : G′(V, E)
1: V ← {v_{i} = i/n:i = 1, 2, …, n}
2: E ← ∅
3: (v_{i}, v_{j}) ← (1/n, 1/n)
4: while v_{i} < 1 do
5: Sample r uniformly from (0,1]
6: r ← −lnr
7: If F(v_{i}, v_{j}, v_{n}) ≤ r then
8:
9: else
10: Set d to smallest positive integer with F (v_{i}, v_{j}, v_{j}+d/n) > r
11: E ← E ∪ (v_{i}, v_{k})
12: (v_{i}, v_{j}) ← (v_{i}, v_{k})
13: end if
14: end while
4 Algorithm scaling performance
If lines 6, 7, and 10 in Algorithm 1 can be calculated in 𝒪(1) time then the entire algorithm runs in time 𝒪(n). To see this, note that each time the while loop of the algorithm executes, either an edge is added to the graph or the index of v_{i} is increased by 1. Since the index of v_{i} never decreases, the if statement can only execute at most n times in total. Thus the while loop executes at most m+n times. For graphs with bounded κ, which are the focus of this manuscript, m = 𝒪(n) and thus the while loop executes 𝒪(n) times. However, line 6 requires the evaluation of a logarithm, line 7 requires the evaluation of a definite integral, and line 10 requires a root-finding algorithm. In general these operations are not 𝒪(1) running time; the speed of the integral and root-finding algorithms depend on κ. If however, F and its roots can be calculated in time 𝒪(1), then the entire algorithm runs in time 𝒪(n).
If numerical integration or root-finding is required, the complexity will be slightly worse. There are numerical integration algorithms which can calculate large classes of definite integrals in order 𝒪(logn) (the implied constant will depend on κ) with an error bound of n^{−k} for fixed k. Root finding is also often fairly inexpensive. For large classes of functions, a root can be found in time 𝒪(logn) (again the implied constant will depend on κ) with an error of at most 𝒪(n^{−k}). For example if κ is a polynomial, it can be integrated analytically and Newton’s method can be used to find its roots in time to a precision of n^{−k} for any fixed k.
We tested the scaling of Algorithm 1 by generating Erdős-Rényi random graphs with the parameter p = 10/n (κ ≡ 10) at various scales for n ≤ 10^{8}. While it is trivial to analytically solve for the integrals and roots with constant κ, we used a numerical root solver to demonstrate that even with root solving the algorithm works efficiently. Fig 1 shows the results of our timing experiments for a Python implementation of Algorithm 1 using the NetworkX software package [20]. The data show that with numerical root finding the algorithm scales at a better (faster) rate than the worst case
The blue circles show the average wall-clock run-time for graphs at a given n. The dashed reference line t = 10^{−5} nlogn is provided to show that the average run-time performance is slightly better than the worst case estimate O(nlogn).
Finally we note that Algorithm 1 can be trivially parallelized since the computation of the neighbors for each of the n vertices v_{i} can be done independently.
5 Generating graphs with tunable assortativity
We now provide examples for random kernel graphs with tunable assortativity, or mixing coefficients. This provides a way to generate graphs uniformly from a distribution with specified, and analytically computable, asymptotic assortativity.
5.1 Assortativity
The assortativity coefficient of a graph G, denoted ρ(G), is defined in the following way. Pick an edge (u, v) uniformly over all the edges in G. Define random variables D_{u}, D_{v} to be the degrees of u and v respectively. Note that D_{u} and D_{v} by symmetry have the same distribution. Then ρ(G) is given by (7) The asymptotic assortativity of G(n, κ) can be computed directly using the kernel κ [15] (see Appendix B). The formula, found in Eq (15), contains terms related to the number of copies of small subgraphs in the graph. We can use this formula to design a kernel κ with a specific asymptotic assortativity. In the following we give an example and compare the numerically computed assortativity from Eq (7) with the asymptotic value from Eq (15).
5.2 Power-law graphs with assortativity
To demonstrate the flexibility of the Random Kernel Graph model generator we now show how to produce graphs with a cutoff power law degree sequence and with tunable assortativity. We choose a cutoff power-law degree sequence as representative of the power-law like degree sequences which are ubiquitous in real networks [21]. For a similar reason we chose the Pearson correlation coefficient, or assortativity, as a second tunable parameter; the assortativity is widely used and its value is known for most real networks of interest [22]. The cutoff is designed to bound the maximum (expected) degree.
To generate a graph with an expected degree sequence given by a function ψ we can use the kernel κ(x, y) = cψ(x)ψ(y) with c = 1/∫_{[0, 1]}ψ(x)dx (see Appendix B). To produce graphs with a cutoff power-law degree sequence we used the kernel (8) This produces graphs such that the number of vertices of degree k is proportional to k^{−3} up to the cutoff which occurs at k = 100 (k = 100 is the maximum expected degree). Note that in general, the kernel for p > 0 will produce graphs with power-law like degree sequences. To see this, recall that the degree sequence will (in the asymptotic limit) follow the mixed Poisson distribution , where . For large fixed k, we can approximate the number of vertices of degree at least k as follows. The measure of the set Thus by concentration of measure, the probability a vertex will have degree at least k will also scale as k^{−p}. Indeed it is not hard to check that if d_{k} is the fraction of vertices with degree k, then for an appropriate constant c > 0 [16], Section 8.1].
The graphs produced by the kernel in Eq (8) will have expected assortativity ρ = 0; there are no degree-degree correlations. To add degree-degree correlations, we modify the kernel to (9) where m_{c}(x, y) is defined as (10) Here, c is chosen in the interval (0,1] while a can be any nonnegative number such that κ′ is nonnegative. Note that for any such choice of c and a the expected degree sequence of κ′ is the same as that of κ since Thus the term am_{c}(x, y) changes the structure of the graphs G(n, κ′) without modifying their (expected) degree sequences. In particular, as κ is monotone decreasing, by modifying the parameters a and c we can produce graphs with varying degree correlations.
For our experiments, we chose c = 0.001 and then maximized or minimized a to produce maximal positive or negative assortativity. We used the value a = −909 to produce graphs with negative assortativity and a = 30,119 to produce graphs with positive assortativity. For these two kernels (defined by the positive and negative values of a), we directly calculated the expected asymptotic assortativity coefficient using the formula given in Section B. In the positive assortativity case, we calculated the asymptotic assortativity coefficient to be ρ = 0.1876, while in the negative assortativity case we calculated a value of ρ = −0.0056. The asymptotic values were then compared to averages obtained by generating multiple graphs G′(n, κ′) at varying scales and numerically calculating the associated assortativity coefficients. We have no theoretical results on the rate convergence to the asymptotic value as a function of number of vertices n. But the results in our experiment, shown in Fig 2, demonstrate that in this case the convergence is fast and by n = 10^{6} vertices has reached nearly the asymptotic value.
For each data point, shown by the solid circles, an ensemble of 10 graphs were generated and the average assortativity coefficient was computed for the ensemble. (a) Positive assortativity, c = 0.001, a = 30,119. (b) Negative assortativity, c = 0.001, a = −909. The horizontal line is the asymptotic calculation of the assortativity coefficient. The values converge to approximately the asymptotic value by n = 10^{6}.
Despite its widespread use, the Pearson correlation coefficient is an imperfect graph statistic. Litvak and van Hofstead have shown that graphs with power-law degree sequences can only achieve non-negative assortativity in the asymptotic limit [23]. We found that even with a power-law degree sequence with a cutoff, it was hard to adjust the assortativity coefficient much below zero. Our methods however, are not necessarily exhaustive; there may indeed be graphs with cutoff power-law degree sequences that also have strongly negative assortativity coefficients.
6 Discussion
There have been many approaches to modeling random graphs with given properties. For example graphs with a fixed degree sequence have many applications both in pure and applied mathematics. But the search for unbiased generators of these graphs has proved quite difficult, and the general problem of efficiently generating graphs with a specified nonuniform degree sequence is still open. Even when polynomial algorithms are known to exist they can be impractical for large n (see [24] for a short survey). There are two main approaches to generating random graphs with a given degree sequence. The first approach, called the configuration method, was pioneered by Bender and Canfeld [25] and Bollobás [13]. Here, “stubs” on each of the vertices are matched in pairs to form the edges of the graph. This basic idea was used to define an algorithm to produce uniformly graphs with a given degree sequence in time 𝒪(dm) where d, the max degree in the graph, is restricted by d = 𝒪(m^{1/4−ε}) [24, 26]. A second approach is to use a double edge-swap operation to define a Markov chain on the space of graphs with a given degree distribution [27]. Unfortunately, it is notoriously difficult to show that these Markov chains have fast mixing. In practice various heuristics are applied to determine when to stop swapping edges [28].
Finally, we note that the model G(n, κ) will produce very few triangles. Asymptotically, the number of subgraphs K_{3} = 0. For some applications, such as in social networks, real-world networks have many triangles. Models that can match the triangle density or even triangles correlated with the graph degree are important [29]. It is possible to extend the G(n, κ) model and algorithm to use kernels that will produce triangles and or other subgraphs of interest. Indeed the more general BJR model has already been extended in this way [16]. Again one could specify a suitable subclass which would produce inhomogeneous random graphs with tunable clustering. The generation algorithm would then involve evaluating certain two-dimensional kernels (as well as the one dimensional case treated here). The detailed description and analysis of such and algorithm is beyond the scope of this paper and we leave it for future studies.
A Model equivalence
Though the two models G(n, κ) and G′(n, κ) appear slightly different, we now show that they are asymptotically equivalent under realistic assumptions. Recall that the power of the model G(n, κ) comes from the fact the model can be related to the kernel κ. Specifically, many asymptotic properties can be computed directly using the kernel. The same statement holds for the variant model G′(n, κ); asymptotic properties of the graphs can be computed from κ. Given this, it is natural to expect that the two models, G(n, κ) and G′(n, κ), are in some sense equivalent in the asymptotic limit, and we now prove this.
Asymptotic equivalence is defined in the following way [30]. Let G(n, p_{ij}) and H(n, q_{ij}) be two random graph models defined on v_{n} with edges chosen independently: v_{i} ∼ v_{j} with probability p_{ij} (q_{ij}, respectively). These two models are asymptotically equivalent if for every sequence (A_{n}) of sets of graphs on defined on v_{n}, we have for G_{n} and H_{n} sampled form G(n, p_{ij}) and H(n, q_{ij}) respectively.
To show that the models G(n, κ) and G′(n, κ) are, under reasonable assumptions, asymptotically equivalent, we will make use of the following theorem.
Theorem 1 (Janson [30]) The models G(n, p_{ij}) and H(n, q_{ij}) are asymptotically equivalent if
- (the implied constant is uniform over n and choice of i and j)
Janson further showed that if ∫_{[0, 1]×[0, 1]}κ^{2} dxdy < ∞, then holds for the model G(n, κ). We will use this result together with Theorem 1 to show that G(n, κ) and G′(n, κ) are asymptotically equivalent when κ is bounded away from zero and has bounded derivative ∂κ/∂x.
Proposition 1. Let κ be be bounded away from 0. Suppose also that κ is differentiable at all points (x, y) for x, y ∉ D and that the derivative ∂κ/∂x is bounded. Then the models G(n, κ) and G′(n, κ) are asymptotically equivalent.
Proof. By symmetry, the derivatives of κ are bounded, so κ is also bounded. Thus by Janson’s work, described above, we know that . By Theorem 1 it is thus sufficient to show that . Without loss of generality, let i < j. Define f(x) as Then applying Taylor’s Theorem to approximate f(v_{i}−1/n) by f(v_{i}), for some x′ ∈ [v_{i}−1/n, v_{i}]. Since κ bounded away from zero and ∂κ/∂x is bounded, there exists a constant C, depending only on κ, such that and therefore We have shown that satisfies Now, by definition, which implies that Thus indeed,
This asymptotic equivalence condition for the two models G(n, κ) and G′(n, κ) is quite strong and relies on the assumptions that there exists an ε with κ > ε and that κ and ∂κ/∂x are bounded.
B Random Kernel Graph Characteristics
Many properties of the graph G(n, κ) can be computed directly using the kernel κ. In particular, κ determines asymptotic properties of the graphs G(n, κ) as n → ∞ [15].
Degree sequences
Though the model G(n, κ) cannot generate graphs with fixed degree sequences it can generate random graphs with a given expected degree as a generalization of the Chung-Lu model [12]. To see this, note that the degree d_{G}(x) of a vertex x in G = G(n, κ) satisfies (11) Thus if κ is a multiplicatively separable function, i.e. can be written as κ(x, y) = ψ(x)ψ(y) for some ψ:[0, 1] → ℝ^{+}, then the expected degree of a vertex x in G will be proportional to ψ(x), The full degree distribution can be determined as follows. Let λ(x) = ∫_{[0, 1]}κ(x, y)dy. Then in the asymptotic limit, the degree distribution will converge in probability to the mixed Poisson distribution ∫_{[0, 1]}Po(λ(x))dx [15, Theorem 3.13].
Subgraph density
Since the expected degree of each vertex can be determined (asymptotically), it is not surprising that the edge density can also be computed. Let e(G) denote the number of edges in G = G(n, κ). Then (12) In fact, it is just as easy to determine asymptotically the number of other expected subgraphs H. Here we give the expected number of paths and cycles in the graph; other subgraphs of interest can be similarly determined (see [15] and [16]). Let P_{k}(G) and C_{k}(G) denote the number of paths and cycles of length k in the random kernel graph G = G(n, κ). Then (13) and, (14)
Assortativity
A common measure of the assortativity of a graph is Pearson’s correlation coefficient, otherwise known as assortativity. The correlation coefficient can be written in terms of the number of copies of certain small subgraphs in the graph. For a fixed subgraph H, let n(H, G) be the number of isomorphic copies of H in G. Define In the asymptotic limit, the assortativity coefficient of G is given by (15) Note that τ depends on the kernel κ but we dropped this dependence from our notation to improve readability. The graph K_{1,3} is the complete bipartite graph with parts of size 1 and 3, that is a star with three leaves. This derivation of the asymptotic assortativity coefficient can be found in [16]. (Note that in that derivation there is a τ(K_{3}) term which we safely ignore since it is zero for all the graphs we study.)
Acknowledgments
We would like to thank Terry Haut, Joel Miller, and Pieter Swart for helpful comments and suggestions.
Author Contributions
Conceived and designed the experiments: AH NL. Performed the experiments: AH NL. Wrote the paper: AH NL.
References
- 1.
Newman M. Networks: An Introduction. New York, NY, USA: Oxford University Press, Inc.; 2010.
- 2.
Bollobás B. Random Graphs. Cambridge University Press; 2001.
- 3. Newman M. The Structure and Function of Complex Networks. SIAM Review. 2003;45(2):167–256.
- 4. Aiello W, Chung F, Lu L. A Random Graph Model for Power Law Graphs. Experimental Mathematics. 2001;10(1):53–66.
- 5. Hay M, Miklau G, Jensen D, Towsley D, Li C. Resisting structural re-identification in anonymized social networks. The VLDB Journal. 2010;19(6):797–823.
- 6. Vespignani A. Modelling dynamical processes in complex socio-technical systems. Nat Phys. 2012 Jan;8(1):32–39.
- 7. Durrett R. Some features of the spread of epidemics and information on a random graph. PNAS. 2010;107(10):4491–4498. Available from: http://www.pnas.org/content/107/10/4491.abstract. pmid:20167800
- 8.
Chakrabarti D, Zhan Y, Faloutsos C. 43. In: R-MAT: A Recursive Model for Graph Mining. SIAM; 2004. p. 442–446. Available from: http://epubs.siam.org/doi/abs/10.1137/1.9781611972740.43.
- 9. Kolda TG, Pinar A, Plantenga T, Seshadhri C. A Scalable Generative Graph Model with Community Structure. SIAM Journal on Scientific Computing. 2014;36(5):C424–C452.
- 10. Gilbert EN. Random graphs. The Annals of Mathematical Statistics. 1959;p. 1141–1144.
- 11. Erdős P, Rényi A. On the evolution of random graphs. Magyar Tud Akad Mat Kutató Int Közl. 1960;5:17–61.
- 12. Chung F, Lu L. Connected components in random graphs with given expected degree sequences. Ann Comb. 2002;6(2):125–145.
- 13. Bollobás B. A probabilistic proof of an asymptotic formula for the number of labelled regular graphs. European J Combin. 1980;1(4):311–316.
- 14. Söderberg B. General formalism for inhomogeneous random graphs. Phys Rev E. 2002 Dec;66:066121.
- 15. Bollobás B, Janson S, Riordan O. The phase transition in inhomogeneous random graphs. Random Structures Algorithms. 2007;31(1):3–122.
- 16. Bollobás B, Janson S, Riordan O. Sparse random graphs with clustering. Random Structures Algorithms. 2011;38(3):269–323.
- 17.
Barrett C, Eubank S, Marathe M. Modeling and Simulation of Large Biological, Information and Socio-Technical Systems: An Interaction Based Approach. In: Interactive Computation. Springer Berlin Heidelberg; 2006. p. 353–392. Available from: http://dx.doi.org/10.1007/3-540-34874-3_14.
- 18. Batagelj V, Brandes U. Efficient generation of large random networks. Phys Rev E. 2005 Mar;71:036113.
- 19.
Miller JC, Hagberg A. Efficient generation of networks with given expected degrees. In: Algorithms and models for the web graph. vol. 6732 of Lecture Notes in Comput. Sci. Heidelberg: Springer; 2011. p. 115–126.
- 20.
Hagberg AA, Schult DA, Swart PJ. Exploring network structure, dynamics, and function using NetworkX. In: Proceedings of the 7th Python in Science Conference (SciPy2008). Pasadena, CA USA; 2008. p. 11–15. Http://networkx.github.io/.
- 21. Albert R, Barabási AL. Statistical mechanics of complex networks. Reviews of Modern Physics. 2002 Jan;74(1):47–97.
- 22. Newman M. Assortative Mixing in Networks. Physical Review Letters. 2002;89(20).
- 23. Litvak N, van der Hofstad R. Uncovering disassortativity in large scale-free networks. Phys Rev E. 2013 Feb;87:022801.
- 24. Blitzstein J, Diaconis P. A Sequential Importance Sampling Algorithm for Generating Random Graphs with Prescribed Degrees. Internet Mathematics. 2011;6(4):489–522.
- 25. Bender EA, Canfield ER. The asymptotic number of labeled graphs with given degree sequences. Journal of Combinatorial Theory, Series A. 1978;24(3):296–307.
- 26. Bayati M, Kim JH, Saberi A. A sequential algorithm for generating random graphs. Algorithmica. 2010;58(4):860–910.
- 27. Kannan R, Tetali P, Vempala S. Simple Markov-chain algorithms for generating bipartite graphs and tournaments. Random Struct Algorithms. 1999 Jul;14(4):293–308.
- 28.
Ray J, Pinar A, Seshadhri C. Are We There Yet? When to Stop a Markov chain while Generating Random Graphs. In: Bonato A, Janssen J, editors. Algorithms and Models for the Web Graph. vol. 7323 of Lecture Notes in Computer Science. Springer Berlin Heidelberg; 2012. p. 153–164. Available from: http://dx.doi.org/10.1007/978-3-642-30541-2_12.
- 29. Seshadhri C, Kolda TG, Pinar A. Community structure and scale-free collections of Erdős-Rényi graphs. Phys Rev E. 2012 May;85:056109.
- 30. Janson S. Asymptotic equivalence and contiguity of some random graphs. Random Structures Algorithms. 2010;36(1):26–45.