# CS 765 Complex Networks

## Due on Wednesday Dec 13, 2017 at 5 pm

Diffusion in a random graph

In the simple SI model, each node is either susceptible (S) or infected (I). That is, the population starts out with all individuals susceptible to infection, and one individual infected, and thereafter, each noninfected individual who has an infected neighbor is at risk of infection. We'll first look at the Erdos-Renyi random graph.

Access ERDiffusion

1. Vary the probability that an infected node infects a particular neighbor at each time step. How does this influence the rate at which the infection is spreading?
2. How does varying the density (average degree) of the network influence the speed of diffusion?
Diffusion in a network resulting from a growth process

1. How does varying gamma (which influences whether the growth is preferential or not) influence the speed of diffusion?
2. How does the degree of each node correlate with how early it gets infected?
3. Is there much difference in the speed of spread past a certain value of infection probability p?
Diffusion in a small world

In this model, access SmallWorldDiffusionSIS

1. Start by setting the rewiring probability to 0. Observe the speed of diffusion in terms of the cumulative number of individuals infected. Increase the rewiring probability just a bit, so you have only a few shortcut edges. How is the rate of diffusion affected?
2. What happens as the probability of recovery increases?
3. What happens as the probability of infection increases?
4. Can you find a critical threshold in the infection and recovery probabilities such that for a given rewiring probability, below these threshold values the disease always dies out, and above the threshold value, it tends to persist in the network? That is, identify the conditions under which you will observe epidemics - outbreaks that affect a significant fraction of the network, vs. conditions under which the outbreak remains small and contained.
Diffusion competition

In this model, access DiffusionCompetition

1. Using simple spread model, where in the network one should select initial nodes so that it is able to win? That is, what properties of nodes would be helpful in spreading the color?
Network resilience (bonus 5 points) For this task, you will use a sample gnutella network gnutella2.gdf. The Guess toolbars, downloadable as resiliencedegree.py and resiliencebetweenness.py from cTools will work on modestly sized networks (~1000 nodes) that are undirected. The resilience toolbars will let you specify the % of nodes to be removed and whether it is random failure (nodes are selected at random) or targeted attack (the highest degree nodes or nodes with highest betweenness are removed). It will also compute the size of the largest component and display the network after the nodes are removed. You may also do this assignment in igraph or any other software.

Please answer the following about the network (turn in 1 image of the original network, and 1 image of the network at less than 1/2 of its original size according to one of the attack strategies).

1. What network you are using (what are the nodes and edges).
2. What percentage of the nodes need to be removed to shrink the giant component to 1/2 of its size in degree targeted vs. betweenness targeted vs. random failure? Comment on this result with respect to the degree distribution and community structure (or lack thereof) in your network.
3. Construct a random network with the same number of nodes and edges (you can do this by selecting 'Empty' when starting up Guess and then typing makeSimpleRandom(numberofnodes,numberofedges) )
4. How do the percentages of nodes removed compare in the intentional attack and random failure in order to reduce the size of the largest component in this network by 1/2?
5. How does the resilience of your network compare to that of this equivalent random graph?