Skip to main content
Advertisement
Browse Subject Areas
?

Click through the PLOS taxonomy to find articles in your field.

For more information about PLOS Subject Areas, click here.

  • Loading metrics

Fast Generation of Sparse Random Kernel Graphs

  • Aric Hagberg ,

    Contributed equally to this work with: Aric Hagberg, Nathan Lemons

    Affiliation Center for Nonlinear Studies, Theoretical Division, Los Alamos National Laboratory, Los Alamos, New Mexico, United States of America

  • Nathan Lemons

    Contributed equally to this work with: Aric Hagberg, Nathan Lemons

    nlemons@lanl.gov

    Affiliation Applied Mathematics and Plasma Physics, Theoretical Division, Los Alamos National Laboratory, Los Alamos, New Mexico, United States of America

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.

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 vn = {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 vn when edges (vi, vj) are chosen independently with probability pij 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 đ’Ș(n2) 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 n2 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 vi is adjacent to vertex vj. We would like to determine the next neighbor of vi in the ordering of the indices. (By symmetry it is sufficient to determine only those neighbors of vi 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 vi is then vj+d so the edge (vi, vj+d) is added to the graph. If there is no such d with j+d ≀ n then vi has no more neighbors and we continue by searching for neighbors of the next vertex vi+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 vn and Îș be given as in Definition 2. The random kernel graph Gâ€Č(n, Îș) is the graph obtained on the vertices vn when the edges (vi, vj) are chosen independently with probability given by We set the value of v0 = 0 to allow computation of the integral but no vertex v0 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 ← {vi = i/n:i = 1, 2, 
, n}

2: E ← ∅

3: (vi, vj) ← (1/n, 1/n)

4: while vi < 1 do

5:  Sample r uniformly from (0,1]

6:  r ← −lnr

7:  If F(vi, vj, vn) ≀ r then

8:   

9:  else

10:   Set d to smallest positive integer with F (vi, vj, vj+d/n) > r

11:   E ← E âˆȘ (vi, vk)

12:   (vi, vj) ← (vi, vk)

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 vi is increased by 1. Since the index of vi 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 ≀ 108. 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

thumbnail
Fig 1. The running times for generating ErdƑs-RĂ©nyi G(n, p) random graphs Îș ≡ 10 using the method in Algorithm 1.

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).

https://doi.org/10.1371/journal.pone.0135177.g001

Finally we note that Algorithm 1 can be trivially parallelized since the computation of the neighbors for each of the n vertices vi 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 Du, Dv to be the degrees of u and v respectively. Note that Du and Dv 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 dk 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 mc(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 amc(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 = 106 vertices has reached nearly the asymptotic value.

thumbnail
Fig 2. The average assortativity coefficient of graphs Gâ€Č(n, Îșâ€Č) generated from the kernel in Eq (8) for varying n.

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 = 106.

https://doi.org/10.1371/journal.pone.0135177.g002

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 = đ’Ș(m1/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 K3 = 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, pij) and H(n, qij) be two random graph models defined on vn with edges chosen independently: vi ∌ vj with probability pij (qij, respectively). These two models are asymptotically equivalent if for every sequence (An) of sets of graphs on defined on vn, we have for Gn and Hn sampled form G(n, pij) and H(n, qij) 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, pij) and H(n, qij) 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(vi−1/n) by f(vi), for some xâ€Č ∈ [vi−1/n, vi]. 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 dG(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 Pk(G) and Ck(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 K1,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 τ(K3) 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. 1. Newman M. Networks: An Introduction. New York, NY, USA: Oxford University Press, Inc.; 2010.
  2. 2. BollobĂĄs B. Random Graphs. Cambridge University Press; 2001.
  3. 3. Newman M. The Structure and Function of Complex Networks. SIAM Review. 2003;45(2):167–256.
  4. 4. Aiello W, Chung F, Lu L. A Random Graph Model for Power Law Graphs. Experimental Mathematics. 2001;10(1):53–66.
  5. 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. 6. Vespignani A. Modelling dynamical processes in complex socio-technical systems. Nat Phys. 2012 Jan;8(1):32–39.
  7. 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. 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. 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. 10. Gilbert EN. Random graphs. The Annals of Mathematical Statistics. 1959;p. 1141–1144.
  11. 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. 12. Chung F, Lu L. Connected components in random graphs with given expected degree sequences. Ann Comb. 2002;6(2):125–145.
  13. 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. 14. Söderberg B. General formalism for inhomogeneous random graphs. Phys Rev E. 2002 Dec;66:066121.
  15. 15. Bollobás B, Janson S, Riordan O. The phase transition in inhomogeneous random graphs. Random Structures Algorithms. 2007;31(1):3–122.
  16. 16. Bollobás B, Janson S, Riordan O. Sparse random graphs with clustering. Random Structures Algorithms. 2011;38(3):269–323.
  17. 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. 18. Batagelj V, Brandes U. Efficient generation of large random networks. Phys Rev E. 2005 Mar;71:036113.
  19. 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. 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. 21. Albert R, Barabási AL. Statistical mechanics of complex networks. Reviews of Modern Physics. 2002 Jan;74(1):47–97.
  22. 22. Newman M. Assortative Mixing in Networks. Physical Review Letters. 2002;89(20).
  23. 23. Litvak N, van der Hofstad R. Uncovering disassortativity in large scale-free networks. Phys Rev E. 2013 Feb;87:022801.
  24. 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. 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. 26. Bayati M, Kim JH, Saberi A. A sequential algorithm for generating random graphs. Algorithmica. 2010;58(4):860–910.
  27. 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. 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. 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. 30. Janson S. Asymptotic equivalence and contiguity of some random graphs. Random Structures Algorithms. 2010;36(1):26–45.