random.attack: Attack of graphs

Description Usage Arguments Details Value Author(s) References Examples

Description

Computes the evolution of the size of the largest connex component and its mean minimum path length under a random or targeted attack of a graph.

Usage

1
2
3
random.attack(adj.mat, max.remove, nsim)
node.attack(adj.mat, node.sup)
targeted.attack(adj.mat, max.remove)

Arguments

adj.mat

adjacency matrix of the graph.

max.remove

maximum number of nodes to be removed

nsim

number of simulation of random attack to be processed

node.sup

number of the node to be removed

Details

An attack consists in removing a node and all its connections from a given graph. random.attack removes max.remove nodes by selecting one regional node at random and removing it (and all its connections) from the graph. targeted.attack removes max.remove nodes : the first node to be eliminated was the hub with the largest degree, and nodes were subsequently eliminated in rank order of decreasing degree.

Value

size.large.connex

vector containing the evolution of the size of the largest connexe component during an attack.

charac.path.length

vector containing the evolution of the mean minimum path length of the largest connexe component during an attack.

Author(s)

S. Achard

References

Albert R., Barabasi A. L. (2002) Statistical mechanics of complex networks. Rev Mod Physics 74 pages 47-97.

S. Achard, R. Salvador, B. Whitcher, J. Suckling, Ed Bullmore (2006) A Resilient, Low-Frequency, Small-World Human Brain Functional Network with Highly Connected Association Cortical Hubs. Journal of Neuroscience, Vol. 26, N. 1, pages 63-72.

Examples

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
set2<-array(c(5,6.5,7,6.5,5,3.5,3,3.5,1,1.5,3,4.5,5,4.5,3,1.5),dim=c(8,2))
names<-c(1:8)

mat<-sim.rand(8,20)

#simulated attack on node 1
plot(set2[,1], set2[,2], type = "n",xlab="", ylab="",cex.lab=1.5)
text(set2[2:8,1], set2[2:8,2], names[2:8], cex = 1.5)
text(set2[1,1], set2[1,2], 1 , cex = 1.5,col="gray")

for(k in 2:8){
                for(q in 1:(k-1)){

                if(mat[k,q]==1)
                {
                if(q==1) visu <- "gray" else visu <- "red"
                lines(c(set2[k,1], set2[q,1]), c(set2[k,2], set2[q,2]), col = visu)
        }

}
}

ra<-random.attack(mat,8,10)
na<-node.attack(mat, 1)
ta<-targeted.attack(mat,8)

brainwaver documentation built on May 2, 2019, 10:23 a.m.