Actions

Robustness of complex networks (project): Difference between revisions

From Santa Fe Institute Events Wiki

 
(23 intermediate revisions by 8 users not shown)
Line 11: Line 11:
* ''Important papers about network generation are highlighted in bold''
* ''Important papers about network generation are highlighted in bold''
* '''[http://www.barabasilab.com/pubs/CCNR-ALB_Publications/199910-15_Science-Emergence/199910-15_Science-Emergence.pdf BA Scale-free network]'''
* '''[http://www.barabasilab.com/pubs/CCNR-ALB_Publications/199910-15_Science-Emergence/199910-15_Science-Emergence.pdf BA Scale-free network]'''
* '''[http://www.barabasilab.com/pubs/CCNR-ALB_Publications/200201-30_RevModernPhys-StatisticalMech/200201-30_RevModernPhys-StatisticalMech.pdf Statistical mechanics of complex networks]'''
* '''[http://arxiv.org/pdf/cond-mat/0405381v2.pdf Random Networks with Tunable Degree Distribution and Clustering]'''
* '''[http://nlsc.ustc.edu.cn/phpcms/uploadfile/common/research/1.topology%20structure/10.pdf Scale-free small world network with tunable assortative coefficient]'''
* '''[http://people.maths.ox.ac.uk/maini/PKM%20publications/195.pdf How to generate Scale-free modular network using preferential attachment]'''
* '''[http://people.maths.ox.ac.uk/maini/PKM%20publications/195.pdf How to generate Scale-free modular network using preferential attachment]'''
* '''[http://arxiv.org/pdf/cond-mat/0402009v1.pdf Scale-free networks with tunable degree distribution exponents]'''
* '''[http://arxiv.org/pdf/cond-mat/0402009v1.pdf Scale-free networks with tunable degree distribution exponents]'''
Line 31: Line 34:
== Learning Python ==
== Learning Python ==
* [http://code.google.com/edu/languages/google-python-class/ Google's Python Class]
* [http://code.google.com/edu/languages/google-python-class/ Google's Python Class]
* [http://networkx.lanl.gov/tutorial/tutorial.html Networkx Python lybrary]
* [http://networkx.lanl.gov/reference/algorithms.html Networkx graph algorithms]
* [http://networkx.lanl.gov/reference/drawing.html Networkx drawing]


== Participants ==
== Participants ==
Line 36: Line 42:
# [[Ian Wood]] - ibwood@indiana.edu
# [[Ian Wood]] - ibwood@indiana.edu
# [[Xin Lu]] - xin.lu@ki.se
# [[Xin Lu]] - xin.lu@ki.se
# [[Duenas-Esterling Marco-Antonio]] - maduenase@gmail.com
# [[Katrien Beuls]] - katrien@ai.vub.ac.be
# [[Cameron Ray Smith]] - <span class="plainlinks"> [http://www.google.com/recaptcha/mailhide/d?k=01_G1kMsuOrJhiwcXbYs5uYQ==&amp;c=4iKaQQLKYQ-uUaepLzz3_1LdZfwZMM24y5sG4GTjP-4= c...@gmail.com]
# [[Abigail Horn]] - abbyhorn@mit.edu
# Nona Karalashvili - nona.karalashvili@gmail.com
</span>
== Source Control ==
I've set up a github repository for any python source we write [https://github.com/ibwood/CSSS-Network-Robustness-Project here].
To figure out how to use Git look [http://git-scm.com/book here]. Chapters 1,2,3, and 5 are particularly relevant, but I can run through the basics with anyone. It's useful to have a source control for both project coordination and backup, and git is very simple once you get the hang of it.
There is a shared folder on skype, please either sign your email in the participant list or drop a email to [[Xin Lu]] to access the generated network data. Dropbox link [https://www.dropbox.com/sh/y6e5ukftde4yt7x/i4ZZ03Yr_5]


== BA algorithm in Python ==
== BA algorithm in Python ==
''Caution! when you copy this to the Python delete one space from the first line, i.e., before def''
* [http://networkx.lanl.gov/_modules/networkx/generators/random_graphs.html#barabasi_albert_graph Networkx source]
def barabasi_albert_graph(n, m, seed=None):
 
    """Return random graph using Barabási-Albert preferential attachment model.
== BA network + modularity ==
    A graph of n nodes is grown by attaching new nodes each with m
* [http://networkx.lanl.gov/_modules/networkx/generators/random_graphs.html#powerlaw_cluster_graph Networkx source]
    edges that are preferentially attached to existing nodes with high
    degree.
   
    Parameters
    ----------
    n : int
        Number of nodes
    m : int
        Number of edges to attach from a new node to existing nodes
    seed : int, optional
        Seed for random number generator (default=None).  </br>
    Returns
    -------
    G : Graph
       
    Notes
    -----
    The initialization is a graph with with m nodes and no edges.</br>
    References
    ----------
    .. [1] A. L. Barabási and R. Albert "Emergence of scaling in
      random networks", Science 286, pp 509-512, 1999.
    """</br>
    if m < 1 or  m >=n:
        raise nx.NetworkXError(\
              "Barabási-Albert network must have m>=1 and m<n, m=%d,n=%d"%(m,n))
    if seed is not None:
        random.seed(seed)    </br>
    # Add m initial nodes (m0 in barabasi-speak)
    G=empty_graph(m)
    G.name="barabasi_albert_graph(%s,%s)"%(n,m)
    # Target nodes for new edges
    targets=list(range(m))
    # List of existing nodes, with nodes repeated once for each adjacent edge
    repeated_nodes=[]   
    # Start adding the other n-m nodes. The first node is m.
    source=m
    while source<n:
        # Add edges to m nodes from the source.
        G.add_edges_from(zip([source]*m,targets))
        # Add one node to the list for each new edge just created.
        repeated_nodes.extend(targets)
        # And the new node "source" has m edges to add to the list.
        repeated_nodes.extend([source]*m)
        # Now choose m unique nodes from the existing nodes
        # Pick uniformly from repeated_nodes (preferential attachement)
        targets = _random_subset(repeated_nodes,m)
        source += 1
    return G

Latest revision as of 06:24, 18 June 2012

Fig. 1. Zoo of complex networks (an example). Taken from Sol´e and Valverde, 2001.

Problem statement

Complex networks have various properties which can be measured in real networks (WWW, social networks, biological networks), e.g. degree distribution, modularity, hierarchy, assortativity etc. Robustness of complex networks is a big question, however only some progress have been done in this direction. For example, it was shown that the scale-free networks are much more topologically robust to random attacks than random networks. Many people claim that various characteristics of complex networks will influence the robustness interdependently. The question I am interested in is how?

Approach

The idea is to generate continuous topology space of various complex networks (networks with different modularity, degree distribution, hierarchy etc) and use it to measure their robustness (see Fig. 1). There are many approaches to measure the robustness of complex networks. For example we can remove edges of vertices of a complex network graph and look at the size of a giant cluster. We can discuss other possibilities.

If you are interested you can contact me directly or via my E-mail: krystoferivanov@gmail.com or via my discussion page in CSSS 2012 wiki.

Relevant literature

  • Add a relevant paper...

Learning Python

Participants

  1. Oleksandr Ivanov - krystoferivanov@gmail.com
  2. Ian Wood - ibwood@indiana.edu
  3. Xin Lu - xin.lu@ki.se
  4. Duenas-Esterling Marco-Antonio - maduenase@gmail.com
  5. Katrien Beuls - katrien@ai.vub.ac.be
  6. Cameron Ray Smith - c...@gmail.com
  7. Abigail Horn - abbyhorn@mit.edu
  8. Nona Karalashvili - nona.karalashvili@gmail.com

Source Control

I've set up a github repository for any python source we write here. To figure out how to use Git look here. Chapters 1,2,3, and 5 are particularly relevant, but I can run through the basics with anyone. It's useful to have a source control for both project coordination and backup, and git is very simple once you get the hang of it.

There is a shared folder on skype, please either sign your email in the participant list or drop a email to Xin Lu to access the generated network data. Dropbox link [1]

BA algorithm in Python

BA network + modularity