# Preferential attachment graph
g = sample_pa(n = 100, m = 2, directed=FALSE)
# resilience
size = vcount(g)/2
# random
rand = percolate(g, size, d = sample(V(g), size))
# degree
deg = percolate(g, size, d = degree(g))
# pagerank
pr = percolate(g, size, d=page_rank(g)$vector)
# betweenness
bet = percolate(g, size, d = betweenness(g))
plot(0:size, deg, type = "l", col=1,
xlab="Number of removed nodes",
ylab="Size of giant component")
lines(0:size, pr, col=2)
lines(0:size, bet, col=3)
lines(0:size, rand, col=4)
lines(0:size, rep(vcount(g)/2, size+1), lty=2)
legend(x = "bottomleft",
legend = c("deg", "pr", "btw", "rand"), lty = 1, col = 1:4)

# random model
g = sample_gnp(n=100, p=5/100)
# resilience
size = vcount(g)/2
# random
rand = percolate(g, size, d = sample(V(g), size))
# degree
deg = percolate(g, size, d = degree(g))
# pagerank
pr = percolate(g, size, d=page_rank(g)$vector)
# betweenness
bet = percolate(g, size, d = betweenness(g))
plot(0:size, deg, type = "l", col=1,
xlab="Number of removed nodes",
ylab="Size of giant component")
lines(0:size, pr, col=2)
lines(0:size, bet, col=3)
lines(0:size, rand, col=4)
lines(0:size, rep(vcount(g)/2, size+1), lty=2)
legend(x = "bottomleft",
legend = c("deg", "pr", "btw", "rand"), lty = 1, col = 1:4)
