Networkx Reference Release 1.9.1

Total Page:16

File Type:pdf, Size:1020Kb

Networkx Reference Release 1.9.1 NetworkX Reference Release 1.9.1 Aric Hagberg, Dan Schult, Pieter Swart September 20, 2014 CONTENTS 1 Overview 1 1.1 Who uses NetworkX?..........................................1 1.2 Goals...................................................1 1.3 The Python programming language...................................1 1.4 Free software...............................................2 1.5 History..................................................2 2 Introduction 3 2.1 NetworkX Basics.............................................3 2.2 Nodes and Edges.............................................4 3 Graph types 9 3.1 Which graph class should I use?.....................................9 3.2 Basic graph types.............................................9 4 Algorithms 127 4.1 Approximation.............................................. 127 4.2 Assortativity............................................... 132 4.3 Bipartite................................................. 141 4.4 Blockmodeling.............................................. 161 4.5 Boundary................................................. 162 4.6 Centrality................................................. 163 4.7 Chordal.................................................. 184 4.8 Clique.................................................. 187 4.9 Clustering................................................ 190 4.10 Communities............................................... 193 4.11 Components............................................... 194 4.12 Connectivity............................................... 208 4.13 Cores................................................... 225 4.14 Cycles.................................................. 229 4.15 Directed Acyclic Graphs......................................... 231 4.16 Distance Measures............................................ 234 4.17 Distance-Regular Graphs......................................... 236 4.18 Dominating Sets............................................. 237 4.19 Eulerian.................................................. 238 4.20 Flows................................................... 240 4.21 Graphical degree sequence........................................ 264 4.22 Hierarchy................................................. 268 4.23 Isolates.................................................. 269 4.24 Isomorphism............................................... 270 4.25 Link Analysis............................................... 283 i 4.26 Link Prediction.............................................. 290 4.27 Matching................................................. 296 4.28 Maximal independent set......................................... 298 4.29 Minimum Spanning Tree......................................... 299 4.30 Operators................................................. 300 4.31 Rich Club................................................. 308 4.32 Shortest Paths.............................................. 309 4.33 Simple Paths............................................... 327 4.34 Swap................................................... 328 4.35 Traversal................................................. 329 4.36 Tree.................................................... 336 4.37 Vitality.................................................. 338 5 Functions 339 5.1 Graph................................................... 339 5.2 Nodes................................................... 341 5.3 Edges................................................... 343 5.4 Attributes................................................. 344 5.5 Freezing graph structure......................................... 346 6 Graph generators 349 6.1 Atlas................................................... 349 6.2 Classic.................................................. 349 6.3 Small................................................... 354 6.4 Random Graphs............................................. 358 6.5 Degree Sequence............................................. 367 6.6 Random Clustered............................................ 373 6.7 Directed................................................. 374 6.8 Geometric................................................ 377 6.9 Hybrid.................................................. 381 6.10 Bipartite................................................. 381 6.11 Line Graph................................................ 385 6.12 Ego Graph................................................ 387 6.13 Stochastic................................................. 388 6.14 Intersection................................................ 388 6.15 Social Networks............................................. 390 7 Linear algebra 391 7.1 Graph Matrix............................................... 391 7.2 Laplacian Matrix............................................. 393 7.3 Spectrum................................................. 395 7.4 Algebraic Connectivity.......................................... 396 7.5 Attribute Matrices............................................ 399 8 Converting to and from other data formats 405 8.1 To NetworkX Graph........................................... 405 8.2 Dictionaries................................................ 406 8.3 Lists................................................... 407 8.4 Numpy.................................................. 408 8.5 Scipy................................................... 412 9 Reading and writing graphs 415 9.1 Adjacency List.............................................. 415 9.2 Multiline Adjacency List......................................... 419 9.3 Edge List................................................. 422 ii 9.4 GEXF................................................... 429 9.5 GML................................................... 431 9.6 Pickle................................................... 434 9.7 GraphML................................................. 435 9.8 JSON................................................... 437 9.9 LEDA................................................... 442 9.10 YAML.................................................. 443 9.11 SparseGraph6.............................................. 444 9.12 Pajek................................................... 450 9.13 GIS Shapefile............................................... 452 10 Drawing 455 10.1 Matplotlib................................................ 455 10.2 Graphviz AGraph (dot).......................................... 464 10.3 Graphviz with pydot........................................... 467 10.4 Graph Layout............................................... 469 11 Exceptions 473 12 Utilities 475 12.1 Helper Functions............................................. 475 12.2 Data Structures and Algorithms..................................... 476 12.3 Random Sequence Generators...................................... 476 12.4 Decorators................................................ 479 12.5 Cuthill-Mckee Ordering......................................... 480 12.6 Context Managers............................................ 482 13 License 485 14 Citing 487 15 Credits 489 16 Glossary 491 Bibliography 493 Python Module Index 503 Index 505 iii iv CHAPTER ONE OVERVIEW NetworkX is a Python language software package for the creation, manipulation, and study of the structure, dynamics, and function of complex networks. With NetworkX you can load and store networks in standard and nonstandard data formats, generate many types of random and classic networks, analyze network structure, build network models, design new network algorithms, draw networks, and much more. 1.1 Who uses NetworkX? The potential audience for NetworkX includes mathematicians, physicists, biologists, computer scientists, and social scientists. Good reviews of the state-of-the-art in the science of complex networks are presented in Albert and Barabási [BA02], Newman [Newman03], and Dorogovtsev and Mendes [DM03]. See also the classic texts [Bollobas01], [Diestel97] and [West01] for graph theoretic results and terminology. For basic graph algorithms, we recommend the texts of Sedgewick, e.g. [Sedgewick01] and [Sedgewick02] and the survey of Brandes and Erlebach [BE05]. 1.2 Goals NetworkX is intended to provide • tools for the study of the structure and dynamics of social, biological, and infrastructure networks, • a standard programming interface and graph implementation that is suitable for many applications, • a rapid development environment for collaborative, multidisciplinary projects, • an interface to existing numerical algorithms and code written in C, C++, and FORTRAN, • the ability to painlessly slurp in large nonstandard data sets. 1.3 The Python programming language Python is a powerful programming language that allows simple and flexible representations of networks, and clear and concise expressions of network algorithms (and other algorithms too). Python has a vibrant and growing ecosystem of packages that NetworkX uses to provide more features such as numerical linear algebra and drawing. In addition Python is also an excellent “glue” language for putting together pieces of software from other languages which allows reuse of legacy code and engineering of high-performance algorithms [Langtangen04]. Equally important, Python is free, well-supported, and a joy to use. 1 NetworkX Reference, Release 1.9.1 In order to make the most out of NetworkX you will want to know how to write basic programs in Python. Among the many guides to Python, we recommend the documentation at http://www.python.org and the text
Recommended publications
  • Sagemath and Sagemathcloud
    Viviane Pons Ma^ıtrede conf´erence,Universit´eParis-Sud Orsay [email protected] { @PyViv SageMath and SageMathCloud Introduction SageMath SageMath is a free open source mathematics software I Created in 2005 by William Stein. I http://www.sagemath.org/ I Mission: Creating a viable free open source alternative to Magma, Maple, Mathematica and Matlab. Viviane Pons (U-PSud) SageMath and SageMathCloud October 19, 2016 2 / 7 SageMath Source and language I the main language of Sage is python (but there are many other source languages: cython, C, C++, fortran) I the source is distributed under the GPL licence. Viviane Pons (U-PSud) SageMath and SageMathCloud October 19, 2016 3 / 7 SageMath Sage and libraries One of the original purpose of Sage was to put together the many existent open source mathematics software programs: Atlas, GAP, GMP, Linbox, Maxima, MPFR, PARI/GP, NetworkX, NTL, Numpy/Scipy, Singular, Symmetrica,... Sage is all-inclusive: it installs all those libraries and gives you a common python-based interface to work on them. On top of it is the python / cython Sage library it-self. Viviane Pons (U-PSud) SageMath and SageMathCloud October 19, 2016 4 / 7 SageMath Sage and libraries I You can use a library explicitly: sage: n = gap(20062006) sage: type(n) <c l a s s 'sage. interfaces .gap.GapElement'> sage: n.Factors() [ 2, 17, 59, 73, 137 ] I But also, many of Sage computation are done through those libraries without necessarily telling you: sage: G = PermutationGroup([[(1,2,3),(4,5)],[(3,4)]]) sage : G . g a p () Group( [ (3,4), (1,2,3)(4,5) ] ) Viviane Pons (U-PSud) SageMath and SageMathCloud October 19, 2016 5 / 7 SageMath Development model Development model I Sage is developed by researchers for researchers: the original philosophy is to develop what you need for your research and share it with the community.
    [Show full text]
  • Networkx Tutorial
    5.03.2020 tutorial NetworkX tutorial Source: https://github.com/networkx/notebooks (https://github.com/networkx/notebooks) Minor corrections: JS, 27.02.2019 Creating a graph Create an empty graph with no nodes and no edges. In [1]: import networkx as nx In [2]: G = nx.Graph() By definition, a Graph is a collection of nodes (vertices) along with identified pairs of nodes (called edges, links, etc). In NetworkX, nodes can be any hashable object e.g. a text string, an image, an XML object, another Graph, a customized node object, etc. (Note: Python's None object should not be used as a node as it determines whether optional function arguments have been assigned in many functions.) Nodes The graph G can be grown in several ways. NetworkX includes many graph generator functions and facilities to read and write graphs in many formats. To get started though we'll look at simple manipulations. You can add one node at a time, In [3]: G.add_node(1) add a list of nodes, In [4]: G.add_nodes_from([2, 3]) or add any nbunch of nodes. An nbunch is any iterable container of nodes that is not itself a node in the graph. (e.g. a list, set, graph, file, etc..) In [5]: H = nx.path_graph(10) file:///home/szwabin/Dropbox/Praca/Zajecia/Diffusion/Lectures/1_intro/networkx_tutorial/tutorial.html 1/18 5.03.2020 tutorial In [6]: G.add_nodes_from(H) Note that G now contains the nodes of H as nodes of G. In contrast, you could use the graph H as a node in G.
    [Show full text]
  • Networkx: Network Analysis with Python
    NetworkX: Network Analysis with Python Salvatore Scellato Full tutorial presented at the XXX SunBelt Conference “NetworkX introduction: Hacking social networks using the Python programming language” by Aric Hagberg & Drew Conway Outline 1. Introduction to NetworkX 2. Getting started with Python and NetworkX 3. Basic network analysis 4. Writing your own code 5. You are ready for your project! 1. Introduction to NetworkX. Introduction to NetworkX - network analysis Vast amounts of network data are being generated and collected • Sociology: web pages, mobile phones, social networks • Technology: Internet routers, vehicular flows, power grids How can we analyze this networks? Introduction to NetworkX - Python awesomeness Introduction to NetworkX “Python package for the creation, manipulation and study of the structure, dynamics and functions of complex networks.” • Data structures for representing many types of networks, or graphs • Nodes can be any (hashable) Python object, edges can contain arbitrary data • Flexibility ideal for representing networks found in many different fields • Easy to install on multiple platforms • Online up-to-date documentation • First public release in April 2005 Introduction to NetworkX - design requirements • Tool to study the structure and dynamics of social, biological, and infrastructure networks • Ease-of-use and rapid development in a collaborative, multidisciplinary environment • Easy to learn, easy to teach • Open-source tool base that can easily grow in a multidisciplinary environment with non-expert users
    [Show full text]
  • Basic Models and Questions in Statistical Network Analysis
    Basic models and questions in statistical network analysis Mikl´osZ. R´acz ∗ with S´ebastienBubeck y September 12, 2016 Abstract Extracting information from large graphs has become an important statistical problem since network data is now common in various fields. In this minicourse we will investigate the most natural statistical questions for three canonical probabilistic models of networks: (i) community detection in the stochastic block model, (ii) finding the embedding of a random geometric graph, and (iii) finding the original vertex in a preferential attachment tree. Along the way we will cover many interesting topics in probability theory such as P´olya urns, large deviation theory, concentration of measure in high dimension, entropic central limit theorems, and more. Outline: • Lecture 1: A primer on exact recovery in the general stochastic block model. • Lecture 2: Estimating the dimension of a random geometric graph on a high-dimensional sphere. • Lecture 3: Introduction to entropic central limit theorems and a proof of the fundamental limits of dimension estimation in random geometric graphs. • Lectures 4 & 5: Confidence sets for the root in uniform and preferential attachment trees. Acknowledgements These notes were prepared for a minicourse presented at University of Washington during June 6{10, 2016, and at the XX Brazilian School of Probability held at the S~aoCarlos campus of Universidade de S~aoPaulo during July 4{9, 2016. We thank the organizers of the Brazilian School of Probability, Paulo Faria da Veiga, Roberto Imbuzeiro Oliveira, Leandro Pimentel, and Luiz Renato Fontes, for inviting us to present a minicourse on this topic. We also thank Sham Kakade, Anna Karlin, and Marina Meila for help with organizing at University of Washington.
    [Show full text]
  • Lecture 20 — March 20, 2013 1 the Maximum Cut Problem 2 a Spectral
    UBC CPSC 536N: Sparse Approximations Winter 2013 Lecture 20 | March 20, 2013 Prof. Nick Harvey Scribe: Alexandre Fr´echette We study the Maximum Cut Problem with approximation in mind, and naturally we provide a spectral graph theoretic approach. 1 The Maximum Cut Problem Definition 1.1. Given a (undirected) graph G = (V; E), the maximum cut δ(U) for U ⊆ V is the cut with maximal value jδ(U)j. The Maximum Cut Problem consists of finding a maximal cut. We let MaxCut(G) = maxfjδ(U)j : U ⊆ V g be the value of the maximum cut in G, and 0 MaxCut(G) MaxCut = jEj be the normalized version (note that both normalized and unnormalized maximum cut values are induced by the same set of nodes | so we can interchange them in our search for an actual maximum cut). The Maximum Cut Problem is NP-hard. For a long time, the randomized algorithm 1 1 consisting of uniformly choosing a cut was state-of-the-art with its 2 -approximation factor The simplicity of the algorithm and our inability to find a better solution were unsettling. Linear pro- gramming unfortunately didn't seem to help. However, a (novel) technique called semi-definite programming provided a 0:878-approximation algorithm [Goemans-Williamson '94], which is optimal assuming the Unique Games Conjecture. 2 A Spectral Approximation Algorithm Today, we study a result of [Trevison '09] giving a spectral approach to the Maximum Cut Problem with a 0:531-approximation factor. We will present a slightly simplified result with 0:5292-approximation factor.
    [Show full text]
  • Graph Database Fundamental Services
    Bachelor Project Czech Technical University in Prague Faculty of Electrical Engineering F3 Department of Cybernetics Graph Database Fundamental Services Tomáš Roun Supervisor: RNDr. Marko Genyk-Berezovskyj Field of study: Open Informatics Subfield: Computer and Informatic Science May 2018 ii Acknowledgements Declaration I would like to thank my advisor RNDr. I declare that the presented work was de- Marko Genyk-Berezovskyj for his guid- veloped independently and that I have ance and advice. I would also like to thank listed all sources of information used Sergej Kurbanov and Herbert Ullrich for within it in accordance with the methodi- their help and contributions to the project. cal instructions for observing the ethical Special thanks go to my family for their principles in the preparation of university never-ending support. theses. Prague, date ............................ ........................................... signature iii Abstract Abstrakt The goal of this thesis is to provide an Cílem této práce je vyvinout webovou easy-to-use web service offering a database službu nabízející databázi neorientova- of undirected graphs that can be searched ných grafů, kterou bude možno efektivně based on the graph properties. In addi- prohledávat na základě vlastností grafů. tion, it should also allow to compute prop- Tato služba zároveň umožní vypočítávat erties of user-supplied graphs with the grafové vlastnosti pro grafy zadané uži- help graph libraries and generate graph vatelem s pomocí grafových knihoven a images. Last but not least, we implement zobrazovat obrázky grafů. V neposlední a system that allows bulk adding of new řadě je také cílem navrhnout systém na graphs to the database and computing hromadné přidávání grafů do databáze a their properties.
    [Show full text]
  • Latent Distance Estimation for Random Geometric Graphs ∗
    Latent Distance Estimation for Random Geometric Graphs ∗ Ernesto Araya Valdivia Laboratoire de Math´ematiquesd'Orsay (LMO) Universit´eParis-Sud 91405 Orsay Cedex France Yohann De Castro Ecole des Ponts ParisTech-CERMICS 6 et 8 avenue Blaise Pascal, Cit´eDescartes Champs sur Marne, 77455 Marne la Vall´ee,Cedex 2 France Abstract: Random geometric graphs are a popular choice for a latent points generative model for networks. Their definition is based on a sample of n points X1;X2; ··· ;Xn on d−1 the Euclidean sphere S which represents the latent positions of nodes of the network. The connection probabilities between the nodes are determined by an unknown function (referred to as the \link" function) evaluated at the distance between the latent points. We introduce a spectral estimator of the pairwise distance between latent points and we prove that its rate of convergence is the same as the nonparametric estimation of a d−1 function on S , up to a logarithmic factor. In addition, we provide an efficient spectral algorithm to compute this estimator without any knowledge on the nonparametric link function. As a byproduct, our method can also consistently estimate the dimension d of the latent space. MSC 2010 subject classifications: Primary 68Q32; secondary 60F99, 68T01. Keywords and phrases: Graphon model, Random Geometric Graph, Latent distances estimation, Latent position graph, Spectral methods. 1. Introduction Random geometric graph (RGG) models have received attention lately as alternative to some simpler yet unrealistic models as the ubiquitous Erd¨os-R´enyi model [11]. They are generative latent point models for graphs, where it is assumed that each node has associated a latent d point in a metric space (usually the Euclidean unit sphere or the unit cube in R ) and the connection probability between two nodes depends on the position of their associated latent points.
    [Show full text]
  • Strongly Connected Components and Biconnected Components
    Strongly Connected Components and Biconnected Components Daniel Wisdom 27 January 2017 1 2 3 4 5 6 7 8 Figure 1: A directed graph. Credit: Crash Course Coding Companion. 1 Strongly Connected Components A strongly connected component (SCC) is a set of vertices where every vertex can reach every other vertex. In an undirected graph the SCCs are just the groups of connected vertices. We can find them using a simple DFS. This works because, in an undirected graph, u can reach v if and only if v can reach u. This is not true in a directed graph, which makes finding the SCCs harder. More on that later. 2 Kernel graph We can travel between any two nodes in the same strongly connected component. So what if we replaced each strongly connected component with a single node? This would give us what we call the kernel graph, which describes the edges between strongly connected components. Note that the kernel graph is a directed acyclic graph because any cycles would constitute an SCC, so the cycle would be compressed into a kernel. 3 1,2,5,6 4,7 8 Figure 2: Kernel graph of the above directed graph. 3 Tarjan's SCC Algorithm In a DFS traversal of the graph every SCC will be a subtree of the DFS tree. This subtree is not necessarily proper, meaning that it may be missing some branches which are their own SCCs. This means that if we can identify every node that is the root of its SCC in the DFS, we can enumerate all the SCCs.
    [Show full text]
  • Analyzing Social Media Network for Students in Presidential Election 2019 with Nodexl
    ANALYZING SOCIAL MEDIA NETWORK FOR STUDENTS IN PRESIDENTIAL ELECTION 2019 WITH NODEXL Irwan Dwi Arianto Doctoral Candidate of Communication Sciences, Airlangga University Corresponding Authors: [email protected] Abstract. Twitter is widely used in digital political campaigns. Twitter as a social media that is useful for building networks and even connecting political participants with the community. Indonesia will get a demographic bonus starting next year until 2030. The number of productive ages that will become a demographic bonus if not recognized correctly can be a problem. The election organizer must seize this opportunity for the benefit of voter participation. This study aims to describe the network structure of students in the 2019 presidential election. The first debate was held on January 17, 2019 as a starting point for data retrieval on Twitter social media. This study uses data sources derived from Twitter talks from 17 January 2019 to 20 August 2019 with keywords “#pilpres2019 OR #mahasiswa since: 2019-01-17”. The data obtained were analyzed by the communication network analysis method using NodeXL software. Our Analysis found that Top Influencer is @jokowi, as well as Top, Mentioned also @jokowi while Top Tweeters @okezonenews and Top Replied-To @hasmi_bakhtiar. Jokowi is incumbent running for re-election with Ma’ruf Amin (Senior Muslim Cleric) as his running mate against Prabowo Subianto (a former general) and Sandiaga Uno as his running mate (former vice governor). This shows that the more concentrated in the millennial generation in this case students are presidential candidates @jokowi. @okezonenews, the official twitter account of okezone.com (MNC Media Group).
    [Show full text]
  • Separator Theorems and Turán-Type Results for Planar Intersection Graphs
    SEPARATOR THEOREMS AND TURAN-TYPE¶ RESULTS FOR PLANAR INTERSECTION GRAPHS JACOB FOX AND JANOS PACH Abstract. We establish several geometric extensions of the Lipton-Tarjan separator theorem for planar graphs. For instance, we show that any collection C of Jordan curves in the plane with a total of m p 2 crossings has a partition into three parts C = S [ C1 [ C2 such that jSj = O( m); maxfjC1j; jC2jg · 3 jCj; and no element of C1 has a point in common with any element of C2. These results are used to obtain various properties of intersection patterns of geometric objects in the plane. In particular, we prove that if a graph G can be obtained as the intersection graph of n convex sets in the plane and it contains no complete bipartite graph Kt;t as a subgraph, then the number of edges of G cannot exceed ctn, for a suitable constant ct. 1. Introduction Given a collection C = fγ1; : : : ; γng of compact simply connected sets in the plane, their intersection graph G = G(C) is a graph on the vertex set C, where γi and γj (i 6= j) are connected by an edge if and only if γi \ γj 6= ;. For any graph H, a graph G is called H-free if it does not have a subgraph isomorphic to H. Pach and Sharir [13] started investigating the maximum number of edges an H-free intersection graph G(C) on n vertices can have. If H is not bipartite, then the assumption that G is an intersection graph of compact convex sets in the plane does not signi¯cantly e®ect the answer.
    [Show full text]
  • Assortativity and Mixing
    Assortativity and Assortativity and Mixing General mixing between node categories Mixing Assortativity and Mixing Definition Definition I Assume types of nodes are countable, and are Complex Networks General mixing General mixing Assortativity by assigned numbers 1, 2, 3, . Assortativity by CSYS/MATH 303, Spring, 2011 degree degree I Consider networks with directed edges. Contagion Contagion References an edge connects a node of type µ References e = Pr Prof. Peter Dodds µν to a node of type ν Department of Mathematics & Statistics Center for Complex Systems aµ = Pr(an edge comes from a node of type µ) Vermont Advanced Computing Center University of Vermont bν = Pr(an edge leads to a node of type ν) ~ I Write E = [eµν], ~a = [aµ], and b = [bν]. I Requirements: X X X eµν = 1, eµν = aµ, and eµν = bν. µ ν ν µ Licensed under the Creative Commons Attribution-NonCommercial-ShareAlike 3.0 License. 1 of 26 4 of 26 Assortativity and Assortativity and Outline Mixing Notes: Mixing Definition Definition General mixing General mixing Assortativity by I Varying eµν allows us to move between the following: Assortativity by degree degree Definition Contagion 1. Perfectly assortative networks where nodes only Contagion References connect to like nodes, and the network breaks into References subnetworks. General mixing P Requires eµν = 0 if µ 6= ν and µ eµµ = 1. 2. Uncorrelated networks (as we have studied so far) Assortativity by degree For these we must have independence: eµν = aµbν . 3. Disassortative networks where nodes connect to nodes distinct from themselves. Contagion I Disassortative networks can be hard to build and may require constraints on the eµν.
    [Show full text]
  • The Domination Number of On-Line Social Networks and Random Geometric Graphs?
    The domination number of on-line social networks and random geometric graphs? Anthony Bonato1, Marc Lozier1, Dieter Mitsche2, Xavier P´erez-Gim´enez1, and Pawe lPra lat1 1 Ryerson University, Toronto, Canada, [email protected], [email protected], [email protected], [email protected] 2 Universit´ede Nice Sophia-Antipolis, Nice, France [email protected] Abstract. We consider the domination number for on-line social networks, both in a stochastic net- work model, and for real-world, networked data. Asymptotic sublinear bounds are rigorously derived for the domination number of graphs generated by the memoryless geometric protean random graph model. We establish sublinear bounds for the domination number of graphs in the Facebook 100 data set, and these bounds are well-correlated with those predicted by the stochastic model. In addition, we derive the asymptotic value of the domination number in classical random geometric graphs. 1. Introduction On-line social networks (or OSNs) such as Facebook have emerged as a hot topic within the network science community. Several studies suggest OSNs satisfy many properties in common with other complex networks, such as: power-law degree distributions [2, 13], high local cluster- ing [36], constant [36] or even shrinking diameter with network size [23], densification [23], and localized information flow bottlenecks [12, 24]. Several models were designed to simulate these properties [19, 20], and one model that rigorously asymptotically captures all these properties is the geometric protean model (GEO-P) [5{7] (see [16, 25, 30, 31] for models where various ranking schemes were first used, and which inspired the GEO-P model).
    [Show full text]