diff options
Diffstat (limited to 'R Scripts/generate-network.R')
| -rw-r--r-- | R Scripts/generate-network.R | 40 |
1 files changed, 21 insertions, 19 deletions
diff --git a/R Scripts/generate-network.R b/R Scripts/generate-network.R index 3b40969..dab81a4 100644 --- a/R Scripts/generate-network.R +++ b/R Scripts/generate-network.R @@ -3,20 +3,20 @@ setwd("~/Documents/Cascade Project/") source('criminal_cascades/R Scripts/temporal.R') source('criminal_cascades/R Scripts/structural.R') -alpha = 1/100 -beta = 0.02 -delta = 0.15 +alpha = 1/10 +beta = 0.01 +delta = 0.25 # lmbda = 1/10 t_max = 1000 N = 5000 g = forest.fire.game(nodes=N, fw.prob=0.3, ambs=1, directed=F) -plot(g, vertex.size=5, vertex.label=NA) +plot(g, vertex.size=3, vertex.label=NA) V(g)$seed = runif(vcount(g))<beta seeds = which(V(g)$seed) V(g)$vic = V(g)$seed -V(g)$vic.day[V(g)$seed] = sample(1:t_max, sum(V(g)$seed)) +V(g)$vic.day[V(g)$seed] = 1#sample(1:t_max, sum(V(g)$seed)) V(g)$spawn.date = 0 V(g)$infector = NA @@ -28,17 +28,19 @@ for (day in 1:t_max){ dists = as.numeric(shortest.paths(g,vic,neighbors)) infected = neighbors[which(runif(length(neighbors))<structural(delta, dists))] infected = setdiff(infected,seeds) # don't try to infect seeds - inf.days = day + ceiling(alpha*rexp(length(infected),alpha)) + inf.days = day + ceiling(rexp(length(infected),alpha)) + realized = ((inf.days <= V(g)$vic.day[infected]) %in% c(NA,T)) & (inf.days<=t_max) + infected = infected[realized] V(g)$vic[infected] = TRUE - infects = (inf.days <= V(g)$vic.day[infected]) %in% c(NA,T) - V(g)$vic.day[infected[infects]] = inf.days[infects] - V(g)$infector[infected[infects]] = vic + V(g)$vic.day[infected] = inf.days[realized] + V(g)$infector[infected] = vic } } vic_ids = which(V(g)$vic) +print(length(vic_ids)) cols = rep('lightblue',N); cols[V(g)$vic]='red'; cols[V(g)$seed]='darkred' -plot(g, vertex.size=5, vertex.label=NA, vertex.color=cols) +plot(g, vertex.size=3, vertex.label=NA, vertex.color=cols) ##### generate dag_dat dag_dat_test = data.frame(matrix(nrow=1,ncol=10)) @@ -68,12 +70,12 @@ rownames(dag_dat_test) = NULL write.csv(dag_dat_test, file='Results/dag_dat_test.csv') -##### analyze performance of recovery algorithm -recovered = read.csv('Results/infectors.csv',header=F,col.names=c('victim','infector')) -recovered = recovered[order(recovered$victim),] -infectors = cbind(setdiff(vic_ids,seeds), - V(g)$infector[setdiff(vic_ids,seeds)], - recovered$infector[recovered$victim %in% setdiff(vic_ids,seeds)]) -mean(infectors[,2]==infectors[,3]) - -dag_dat_test[dag_dat_test$to==4984,]
\ No newline at end of file +##### analyze performance of recovery algorithm ------ +# recovered = read.csv('Results/infectors.csv',header=F,col.names=c('victim','infector')) +# recovered = recovered[order(recovered$victim),] +# infectors = cbind(setdiff(vic_ids,seeds), +# V(g)$infector[setdiff(vic_ids,seeds)], +# recovered$infector[recovered$victim %in% setdiff(vic_ids,seeds)]) +# mean(infectors[,2]==infectors[,3]) +# +# dag_dat_test[dag_dat_test$to==4984,] |
