Skip to content

Commit dd26e7b

Browse files
author
Andreagiovanni Reina
committed
Corrected bug for NO_UPDATE in the synch case
1 parent 251aa43 commit dd26e7b

4 files changed

Lines changed: 38 additions & 32 deletions

File tree

conf/DecNet.template.config

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ randomDriftRangePlusMinus=DDM_DRIFT_RANGE_PLUS_MINUS
3131
noiseStdDev=DDM_NOISE_STD_DEV
3232
dt=0.01
3333
threshold=1
34-
interrogationTimeFromAccuracy=INTERR_TIME_FROM_ACC
34+
interrogationTimeFromAccuracy=I_TIME_FROM_ACC
3535
interrogationTime=INTERR_TIME
3636
prior=PRIOR_DIST
3737
costMatrix=[ COST_MATRIX_T , COST_MATRIX_E ]

plots/plotStaticNets.R

Lines changed: 28 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ setyrange <- function(yaxis){
1616
}else{ if(yaxis == "confidence-stddev" ){
1717
rng <- c(0,10)
1818
}else{ if(yaxis == "effectivity" ){
19-
rng <- c(0.95,1)
19+
rng <- c(0.,1)
2020
# rng <- c(0.,1)
2121
}else{if(yaxis == "success" ){
2222
# rng <- c(0.,1)
@@ -28,6 +28,9 @@ setyrange <- function(yaxis){
2828
}
2929

3030
plotAll <-function(resdir){
31+
pltdir <- "/Users/joefresna/DecisionsOnNetworks/results/synch_1-plt/"
32+
system(paste("mkdir -p ", pltdir))
33+
3134
#yaxes <- c("effectivity", "degree", "degree-scaled", "degree-stddev", "success", "clustering", "clustering-stddev", "time")
3235
yaxes <- c("effectivity", "success", "time")
3336
darkcols <- brewer.pal(8, "Dark2")
@@ -63,54 +66,54 @@ plotAll <-function(resdir){
6366
#for (speed in speeds){
6467
nodes_list <- seq(20, 100, 10)
6568
#if (yaxis == 'time') {nodes_list <- seq(20, 100, 20)}
66-
pdf(paste("/Users/joefresna/DecisionsOnNetworks/results/static_lin2-plt/",yaxis,"_BA-on-nodes.pdf",sep=""))
67-
res <- plotOnNodes(prefix=resdir, nodes_list=nodes_list, link_list=0.2, edge_list=if(yaxis == 'time'){c(3,12)}else{seq(3, 12, 3)}, range_list=c(0), xlabel="Nodes", boxptime=FALSE,
68-
netType="barabasi-albert", accuracy=0.6, acstdv=0.12, methods=c("conf-perfect"), pbound='false', T_MAX=1000, xpar='edge',
69+
pdf(paste(pltdir,yaxis,"_BA-on-nodes.pdf",sep=""))
70+
res <- plotOnNodes(prefix=resdir, nodes_list=nodes_list, link_list=0.2, range_list=c(0), edge_list=c(3,9), #edge_list=if(yaxis == 'time'){c(3,12)}else{seq(3, 12, 3)},
71+
netType="barabasi-albert", accuracy=0.1, acstdv=0.20, methods=c("log-odds-distr"), pbound='false', T_MAX=1000, xpar='edge', boxptime=FALSE, xlabel="Nodes",
6972
# updates=c("finite-time"), colours=rainbow(5), yaxis=yaxis, yrange=rng, epsilon=0.05, legNodes=FALSE, env=1, quorum=1)
7073
# updates=c("optim-up", "finite-time"), colours=rainbow(5), yaxis=yaxis, yrange=rng, epsilon=0, legNodes=TRUE, env=1, quorum=1)
71-
updates=c("optim-up", "belief-up"), colours=darkcols, yaxis=yaxis, yrange=rng, epsilon=0, legNodes=TRUE, env=1, quorum=1)
74+
updates=c("optim-up", "no-up"), colours=darkcols, yaxis=yaxis, yrange=rng, epsilon=0, legNodes=TRUE, env=1, quorum=1)
7275
if (yaxis == yaxes[1]){ write.table(res, file = paste(resdir,"/finalTable_BA.txt",sep=""), sep="\t", col.names=TRUE, row.names=FALSE) }
7376
dev.off()
74-
pdf(paste("/Users/joefresna/DecisionsOnNetworks/results/static_lin2-plt/",yaxis,"_ER-on-nodes.pdf",sep=""))
75-
res <- plotOnNodes(prefix=resdir, nodes_list=nodes_list, link_list=if(yaxis == 'time'){c(0.2,0.8)}else{seq(0.2, 0.8, 0.2)}, edge_list=3, range_list=c(0), xlabel="Nodes",
76-
netType="erdos-renyi", accuracy=0.6, acstdv=0.12, methods=c("conf-perfect"), pbound='false', T_MAX=1000, xpar='link', boxptime=FALSE,
77+
pdf(paste(pltdir,yaxis,"_ER-on-nodes.pdf",sep=""))
78+
res <- plotOnNodes(prefix=resdir, nodes_list=nodes_list, edge_list=3, range_list=c(0), link_list=c(0.2,0.6),#link_list=if(yaxis == 'time'){c(0.2,0.8)}else{seq(0.2, 0.8, 0.2)},
79+
netType="erdos-renyi", accuracy=0.1, acstdv=0.20, methods=c("log-odds-distr"), pbound='false', T_MAX=1000, xpar='link', boxptime=FALSE, xlabel="Nodes",
7780
# updates=c("finite-time"), colours=rainbow(5), yaxis=yaxis, yrange=rng, epsilon=0.05, legNodes=FALSE, env=1, quorum=1)
7881
# updates=c("optim-up", "finite-time"), colours=rainbow(5), yaxis=yaxis, yrange=rng, epsilon=0, legNodes=TRUE, env=1, quorum=1)
79-
updates=c("optim-up", "belief-up"), colours=darkcols, yaxis=yaxis, yrange=rng, epsilon=0, legNodes=TRUE, env=1, quorum=1)
82+
updates=c("optim-up", "no-up"), colours=darkcols, yaxis=yaxis, yrange=rng, epsilon=0, legNodes=TRUE, env=1, quorum=1)
8083
if (yaxis == yaxes[1]){ write.table(res, file = paste(resdir,"/finalTable_ER.txt",sep=""), sep="\t", col.names=TRUE, row.names=FALSE) }
8184
dev.off()
82-
pdf(paste("/Users/joefresna/DecisionsOnNetworks/results/static_lin2-plt/",yaxis,"_SP-on-nodes.pdf",sep=""))
85+
pdf(paste(pltdir,yaxis,"_SP-on-nodes.pdf",sep=""))
8386
if (yaxis == 'time') rng <- c(0,30)
84-
res <- plotOnNodes(prefix=resdir, nodes_list=nodes_list, link_list=0.2, edge_list=3, range_list=if(yaxis == 'time'){c(0.2,0.35)}else{seq(0.20, 0.35, 0.05)}, xlabel="Nodes",
85-
netType="space", accuracy=0.6, acstdv=0.12, methods=c("conf-perfect"), pbound='false', T_MAX=1000, xpar='range', boxptime=FALSE,
87+
res <- plotOnNodes(prefix=resdir, nodes_list=nodes_list, link_list=0.2, edge_list=3, range_list=0, #range_list=if(yaxis == 'time'){c(0.2,0.35)}else{seq(0.20, 0.35, 0.05)},
88+
netType="rgg-fixed-degree", accuracy=0.1, acstdv=0.20, methods=c("log-odds-distr"), pbound='false', T_MAX=1000, xpar='range', boxptime=FALSE, xlabel="Nodes",
8689
# updates=c("finite-time"), colours=rainbow(5), yaxis=yaxis, yrange=rng, epsilon=0.05, legNodes=FALSE, env=1, quorum=1)
8790
# updates=c("optim-up", "finite-time"), colours=rainbow(5), yaxis=yaxis, yrange=rng, epsilon=0, legNodes=TRUE, env=1, quorum=1)
88-
updates=c("optim-up", "belief-up"), colours=darkcols, yaxis=yaxis, yrange=rng, epsilon=0, legNodes=TRUE, env=1, quorum=1)
91+
updates=c("optim-up", "no-up"), colours=darkcols, yaxis=yaxis, yrange=rng, epsilon=0, legNodes=TRUE, env=1, quorum=1)
8992
if (yaxis == yaxes[1]){ write.table(res, file = paste(resdir,"/finalTable_SP.txt",sep=""), sep="\t", col.names=TRUE, row.names=FALSE) }
9093
dev.off()
9194
#}
9295
}
96+
return(0)
9397

9498
rng <- c(0,20)
9599
yaxis <- "time"
96100
nodes_list <- seq(20, 100, 20)
97-
pdf(paste("/Users/joefresna/DecisionsOnNetworks/results/static_lin2-plt/",yaxis,"_BA-on-nodes_b.pdf",sep=""))
101+
pdf(paste(pltdir,yaxis,"_BA-on-nodes_b.pdf",sep=""))
98102
plotOnNodes(prefix=resdir, nodes_list=nodes_list, link_list=0.2, edge_list=seq(3, 12, 3), range_list=c(0), xlabel="Nodes",
99103
netType="barabasi-albert", accuracy=0.6, acstdv=0.12, methods=c("conf-perfect"), pbound='false', T_MAX=1000, xpar='edge', boxptime=TRUE,
100104
updates=c("optim-up", "belief-up"), colours=darkcols, yaxis=yaxis, yrange=rng, epsilon=0, legNodes=TRUE, env=1, quorum=1)
101105
dev.off()
102106
#return(res)
103-
pdf(paste("/Users/joefresna/DecisionsOnNetworks/results/static_lin2-plt/",yaxis,"_ER-on-nodes_b.pdf",sep=""))
107+
pdf(paste(pltdir,yaxis,"_ER-on-nodes_b.pdf",sep=""))
104108
plotOnNodes(prefix=resdir, nodes_list=nodes_list, link_list=seq(0.2, 0.8, 0.2), edge_list=3, range_list=c(0), xlabel="Nodes",
105109
netType="erdos-renyi", accuracy=0.6, acstdv=0.12, methods=c("conf-perfect"), pbound='false', T_MAX=1000, xpar='link', boxptime=TRUE,
106110
updates=c("optim-up", "belief-up"), colours=darkcols, yaxis=yaxis, yrange=rng, epsilon=0, legNodes=TRUE, env=1, quorum=1)
107111
dev.off()
108-
pdf(paste("/Users/joefresna/DecisionsOnNetworks/results/static_lin2-plt/",yaxis,"_SP-on-nodes_b.pdf",sep=""))
112+
pdf(paste(pltdir,yaxis,"_SP-on-nodes_b.pdf",sep=""))
109113
plotOnNodes(prefix=resdir, nodes_list=nodes_list, link_list=0.2, edge_list=3, range_list=seq(0.20, 0.35, 0.05), xlabel="Nodes",
110114
netType="space", accuracy=0.6, acstdv=0.12, methods=c("conf-perfect"), pbound='false', T_MAX=1000, xpar='range', boxptime=TRUE,
111115
updates=c("optim-up", "belief-up"), colours=darkcols, yaxis=yaxis, yrange=rng, epsilon=0, legNodes=TRUE, env=1, quorum=1)
112116
dev.off()
113-
return(0)
114117
for (yaxis in yaxes){
115118
rng <- setyrange(yaxis)
116119
#for (speed in speeds){
@@ -434,13 +437,15 @@ plotOnNodes <- function(prefix, nodes_list=seq(11,47,12), link_list=seq(0.2, 0.8
434437
if (netType == 'barabasi-albert'){
435438
netPar <- edge
436439
}
437-
if (netType == 'space'){
440+
if (netType == 'space' || netType == 'rgg-fixed-degree'){
438441
netPar <- range
439442
}
440-
filename <- paste(prefix,"out_net-", netType, "_nodes-",nodes,"_link-",if(netType == 'space'){format(netPar,nsmall=2)}else{netPar},"_bound-",pbound,
441-
if(env!='none'){paste("_env-",env,sep="")}else{""},"_model-",method,"_up-",update,"_acc-",accuracy,"_acstdv-",acstdv,"_eps-",
442-
epsilon,".txt",sep="")
443-
#print(filename)
443+
# filename <- paste(prefix,"out_net-", netType, "_nodes-",nodes,"_link-",if(netType == 'space'){format(netPar,nsmall=2)}else{netPar},"_bound-",pbound,
444+
# if(env!='none'){paste("_env-",env,sep="")}else{""},"_model-",method,"_up-",update,"_acc-",accuracy,"_acstdv-",acstdv,"_eps-",
445+
# epsilon,".txt",sep="")
446+
filename <- paste(prefix,"out_net-", netType, "_nodes-",nodes,"_link-",if(netType == 'space'){format(netPar,nsmall=2)}else{netPar},
447+
"_model-",method,"_up-",update,"_driftbase-",accuracy,"_driftrange-",format(acstdv,nsmall=2),".txt",sep="")
448+
print(filename)
444449
data <- read.table(filename, header=T)
445450
xparv <- nodes
446451
effectivity <- nrow(data[ data$iter <= T_MAX & (data$pos >= (nodes*quorum) | data$neg >= (nodes*quorum) ) , ]) / nrow(data)
@@ -531,7 +536,7 @@ plotOnNodes <- function(prefix, nodes_list=seq(11,47,12), link_list=seq(0.2, 0.8
531536
if (netType == 'barabasi-albert'){
532537
txtL <- paste("Edges: ", edge_list, sep="")
533538
}
534-
if (netType == 'space'){
539+
if (netType == 'space' || netType == 'rgg-fixed-degree'){
535540
txtL <- paste("Range: ", range_list, sep="")
536541
}
537542
legend(legpos2, txtL, pch=pntTypes[1:(combolength/length(updates))], col=colours[1:(combolength/length(updates))], lty=-1, cex=1, lwd=2, bg='white' )

scripts/staticSPERAB.sh

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ DDM_DRIFT_RANGE_PLUS_MINUS=1
3535
DDM_DRIFT_STD_DEV_LIST=($(seq 0.10 0.10 0.50))
3636
DDM_NOISE_STD_DEV=0.5
3737
THRESHOLD=1
38-
INTERR_TIME_FROM_ACC='true'
38+
I_TIME_FROM_ACC='true'
3939
INTERR_TIME=10
4040
PRIOR_DIST=0.5
4141
COST_MATRIX_T=1
@@ -108,18 +108,18 @@ do
108108
then
109109
continue
110110
fi
111-
if [ "$NET_TYPE" != "space" ] && [ $INTERACTION_RADIUS != ${INTERACTION_RADIUS_LIST[0]} ];
111+
if [ "$NET_TYPE" != "rgg-fixed-degree" ] && [ $INTERACTION_RADIUS != ${INTERACTION_RADIUS_LIST[0]} ];
112112
then
113113
continue
114114
fi
115115
#if [ "$DEC_MODEL" == "belief-init" ] && [ $UPDATE_CONF != "belief-up" ];
116116
#then
117117
# continue
118118
#fi
119-
if [ "$UPDATE_CONF" == "optim-up" ] && [ $BELIEF_EPSILON != ${BELIEF_EPSILON_LIST[0]} ];
120-
then
121-
continue
122-
fi
119+
#if [ "$UPDATE_CONF" == "optim-up" ] && [ $BELIEF_EPSILON != ${BELIEF_EPSILON_LIST[0]} ];
120+
#then
121+
# continue
122+
#fi
123123

124124
NET_PAR=0
125125
if [ "$NET_TYPE" == "erdos-renyi" ];
@@ -130,7 +130,7 @@ do
130130
then
131131
NET_PAR=${NUM_EDGES}
132132
fi
133-
if [ "$NET_TYPE" == "space" ];
133+
if [ "$NET_TYPE" == "rgg-fixed-degree" ];
134134
then
135135
NET_PAR=${INTERACTION_RADIUS}
136136
fi
@@ -158,8 +158,8 @@ do
158158
-e "s|DDM_DRIFT_STD_DEV|${DDM_DRIFT_STD_DEV}|" \
159159
-e "s|DDM_NOISE_STD_DEV|${DDM_NOISE_STD_DEV}|" \
160160
-e "s|THRESHOLD|${THRESHOLD}|" \
161+
-e "s|I_TIME_FROM_ACC|${I_TIME_FROM_ACC}|" \
161162
-e "s|INTERR_TIME|${INTERR_TIME}|" \
162-
-e "s|INTERR_TIME_FROM_ACC|${INTERR_TIME_FROM_ACC}|" \
163163
-e "s|PRIOR_DIST|${PRIOR_DIST}|" \
164164
-e "s|COST_MATRIX_T|${COST_MATRIX_T}|" \
165165
-e "s|COST_MATRIX_E|${COST_MATRIX_E}|" \

src/DecNet/DecisionNet.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -347,6 +347,7 @@ def collectiveDecision(self, maxLoops, plot=None, plotTrajectory=False):
347347
while (self.numNodes > self.countOpinion(1) and self.numNodes > self.countOpinion(-1) and count < maxLoops):
348348
#while (count < maxLoops):
349349
count += 1
350+
if (self.updateConf == UpdateModel.NO_UPDATE): break
350351
if plot is not None:
351352
## Draw initial network
352353
fig, axs = plt.subplots(1,2)

0 commit comments

Comments
 (0)