Skip to content

Commit ab73c27

Browse files
author
Andreagiovanni Reina
committed
Cleaned the code
1 parent 64f73e7 commit ab73c27

15 files changed

Lines changed: 759 additions & 340 deletions

.project

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,10 +15,17 @@
1515
<arguments>
1616
</arguments>
1717
</buildCommand>
18+
<buildCommand>
19+
<name>org.eclipse.statet.r.resourceProjects.RBuilder</name>
20+
<arguments>
21+
</arguments>
22+
</buildCommand>
1823
</buildSpec>
1924
<natures>
2025
<nature>org.python.pydev.pythonNature</nature>
2126
<nature>de.walware.statet.base.StatetNature</nature>
2227
<nature>de.walware.statet.r.RNature</nature>
28+
<nature>org.eclipse.statet.ide.resourceProjects.Statet</nature>
29+
<nature>org.eclipse.statet.r.resourceProjects.R</nature>
2330
</natures>
2431
</projectDescription>

conf/AsynchK.config

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
[experiment]
22
randomSeed=2289
3-
#2289
43
# bad case for space with size 1 and range 0.3 seed: 1670054
54
numberOfExperiments=1
65
repetitionsPerDDM=1
@@ -14,6 +13,7 @@ agentType=DDM
1413
max_time=100
1514
# possible updateModel are [ 'no-up', 'conf-kick', 'thresh-kick' ]
1615
updateModel=conf-kick
16+
misinformed=false
1717

1818
[SimpleAgent]
1919
accuracyMean = 0.6
@@ -23,25 +23,25 @@ truncatePoor=true
2323
[DDM]
2424
# possible driftDistributions are [ 'uniform', 'normal', 'from_accuracy' ]
2525
driftDistribution=normal
26-
baseDrift=0.1
27-
driftStdDev=1
28-
randomDriftRangePlusMinus=1.5
29-
noiseStdDev=0.5
30-
dt=0.01
26+
baseDrift=0.3
27+
driftStdDev=0.3
28+
randomDriftRangePlusMinus=0.5
29+
noiseStdDev=1
30+
dt=0.001
3131
threshold=10
3232
prior=0.5
3333
useBayesRisk=true
3434
# costMatrix accepts two values [ timeCost, errorCost ]
35-
costMatrix=[ 1 , 20 ]
35+
costMatrix=[ 1 , 100 ]
3636

3737
[Network]
38-
number_of_nodes=20
38+
number_of_nodes=50
3939
# possible netTypes are [ 'full' , 'erdos-renyi', 'barabasi-albert', 'space', 'soft-rgg', 'from-file', 'from-file-fixComm', 'rgg-fixed-degree' ]
40-
netType=space
40+
netType=rgg-fixed-degree
4141
number_of_edges=20
4242
link_probability=0.4
4343
area_size=1
44-
communication_radius=0.25
44+
communication_radius=10
4545
coordinates_file=../../kilobots/data/log_confsens_keep2.txt
4646
periodic=false
4747

conf/AsynchK.template.config

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ agentType=AGENT_TYPE
1212
max_time=MAX_TIME
1313
# possible updateModel are [ 'no-up', 'conf-kick', 'thresh-kick' ]
1414
updateModel=UPDATE_MODEL
15+
misinformed=ALLOW_MISINFO
1516

1617
[SimpleAgent]
1718
accuracyMean=ACC_MEAN
@@ -25,7 +26,7 @@ baseDrift=DDM_BASE_DRIFT
2526
driftStdDev=DDM_DRIFT_STD_DEV
2627
randomDriftRangePlusMinus=DDM_DRIFT_RANGE_PLUS_MINUS
2728
noiseStdDev=DDM_NOISE_STD_DEV
28-
dt=0.01
29+
dt=0.001
2930
threshold=THRESHOLD
3031
prior=PRIOR_DIST
3132
useBayesRisk=USE_BAYES_RISK

plots/plotKicks.R

Lines changed: 174 additions & 32 deletions
Large diffs are not rendered by default.

scripts/run_job.sh

Lines changed: 16 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,20 @@
11
#!/bin/bash
2-
#Request 12 gigabytes of virtual (mem) and real (rmem) memory
3-
#$ -l mem=12G -l rmem=4G
4-
#$ -l h_rt=168:00:00
5-
#$ -N decnet
6-
#$ -e clust_logs/
7-
#$ -o clust_logs/
82

9-
if [ $# -le 2 ]; then
10-
#Load the Anaconda Python 3 Environment module for ICEBERG
11-
echo "Loading modules for iceberg"
12-
module load apps/python/anaconda3-2.5.0
13-
else
14-
#Load the Anaconda Python 3 Environment module for SHARC
15-
echo "Loading modules for sharc"
16-
#module load apps/python/anaconda3-4.2.0
17-
source activate python35
18-
fi
3+
## Resource Request
4+
#SBATCH --job-name=DDMnets # name of your job, will be shown when running squeue
5+
#SBATCH --output=log-out/DDMnets_%j.stdout # name of the output file, %j will be replaced by the Job ID
6+
#SBATCH --error=log-err/DDMnets_%j.stderr # name of the error file, %j will be replaced by the Job ID
7+
#SBATCH --partition=Epyc7452 # the hardware that you want to run on
8+
#SBATCH --qos=short # the queue that you want to run on (short, long)
9+
#SBATCH --ntasks=1 # the job will launch a single task, set higher for MPI programs
10+
#SBATCH --cpus-per-task=1 # each task will require 1 core on the same machine, set higher for OpenMP programs
11+
#SBATCH --mail-user=andreagiovanni.reina@ulb.be # your email to receive emails about the state of your job
12+
#SBATCH --mail-type=END,FAIL # when to send emails, choices are BEGIN, END, FAIL, ARRAY_TASKS
1913

14+
source /home/areina/pythonVirtualEnvs/DDMonNetsEnv/bin/activate
15+
export PYTHONPATH=/home/areina/DecisionsOnNetworks/src/
16+
cd $PYTHONPATH
2017

21-
#Run the program
22-
python $1 $2
18+
srun python3 ${1} ${2}
19+
20+
deactivate

scripts/submitAsynch.sh

Lines changed: 101 additions & 109 deletions
Original file line numberDiff line numberDiff line change
@@ -6,51 +6,39 @@ mkdir -p ${CONF_DIR}
66
TEMPLATE_SETTINGS="${PROJECT_HOME}/conf/AsynchK.template.config"
77
PYPATH="${PROJECT_HOME}/src/"
88
EXEC_FILE="${PROJECT_HOME}/src/AsynchKicks/DecisionProcess.py"
9-
OUTPUT_DATA_DIR="${PROJECT_HOME}/kick_5/"
9+
OUTPUT_DATA_DIR="${PROJECT_HOME}/kick_rgg_resample_set2/"
1010

1111
SEED=221189
12-
NUM_EXP=100
12+
NUM_EXP=500
1313
NUM_RUN=1
1414
MAX_TIME=1000
1515

1616
AGENT_TYPE='DDM'
17-
UPDATE_MODEL_LIST=( 'no-up' 'thresh-kick' 'conf-kick' )
17+
UPDATE_MODEL_LIST=( 'no-up' 'conf-kick' )
18+
ALLOW_MISINFO_LIST=( 'false' )
1819

1920
### Unnecessary for this analysis
2021
DDM_DRIFT_DIST='normal'
21-
DDM_BASE_DRIFT_LIST=( 0.05 0.1 0.2 )
22-
#DDM_DRIFT_RANGE_LIST=( 0.25 0.50 1.00 )
22+
DDM_BASE_DRIFT_LIST=( 0.05 0.1 0.2 0.3 )
2323
DDM_DRIFT_RANGE=0.5
24-
#DDM_DRIFT_STD_DEV_LIST=( 0.25 0.50 1.00 )
25-
#DDM_DRIFT_STD_DEV_LIST=( 0.10 0.15 0.20 0.30 0.40 )
26-
DDM_DRIFT_STD_DEV_LIST=($(seq 0.10 0.10 0.50))
27-
DDM_NOISE_STD_DEV=0.5
24+
DDM_DRIFT_STD_DEV_LIST=($(seq 0.05 0.05 0.50))
25+
DDM_NOISE_STD_DEV=1
2826
THRESHOLD=10
2927
PRIOR_DIST=0.5
3028
USE_BAYES_RISK='true'
3129
COST_MATRIX_T=1
32-
COST_MATRIX_E=20
30+
COST_MATRIX_E=100
3331

34-
#NUM_NODES=20
35-
NUM_NODES_LIST=($(seq 20 10 100))
36-
NET_TYPE_LIST=('erdos-renyi' 'barabasi-albert' 'space')
37-
#NET_TYPE_LIST=('space')
38-
#NET_TYPE_LIST=('erdos-renyi' 'barabasi-albert')
39-
#LINK_PROBABILITY_LIST=($(seq 0.2 0.1 0.8))
40-
#LINK_PROBABILITY_LIST=(0.2 0.4 0.6 0.8)
41-
LINK_PROBABILITY_LIST=(0.2 0.6)
42-
#NUM_EDGES=3
43-
#NUM_EDGES_LIST=($(seq 3 3 12))
44-
NUM_EDGES_LIST=(3 9)
45-
#INTERACTION_RADIUS_LIST=($(seq 0.05 0.05 0.3))
46-
#INTERACTION_RADIUS_LIST=($(seq 0.20 0.05 0.35))
47-
INTERACTION_RADIUS_LIST=( 0.20 )
32+
#NUM_NODES_LIST=($(seq 20 20 100))
33+
NUM_NODES_LIST=(50 100)
34+
#NET_TYPE_LIST=('erdos-renyi' 'barabasi-albert' 'rgg-fixed-degree')
35+
NET_TYPE_LIST=('rgg-fixed-degree')
36+
LINK_PROBABILITY_LIST=( 0.2 )
37+
NUM_EDGES_LIST=( 3 )
38+
INTERACTION_RADIUS_LIST=( 5 10 15 )
4839
ENV_SIZE=1
49-
#ENV_SIZE_LIST=(0.5 2 3 4 5 6 7 8 9 15 20)
50-
#ENV_SIZE_LIST=(0.01 0.1 0.5 1 2 3 4 5 10 15 20)
5140

5241
DYNAMICNET='false'
53-
#AGENTSPEED_LIST=($(seq 0.05 0.05 0.2))
5442
AGENTSPEED=0.05
5543
MOVE_STDDEV=45
5644
PERIODICBOUND='false'
@@ -61,98 +49,102 @@ ACC_TRUNCATED='true'
6149

6250
COUNT=0
6351

64-
for UPDATE_MODEL in ${UPDATE_MODEL_LIST[*]}
52+
for ALLOW_MISINFO in ${ALLOW_MISINFO_LIST[*]}
6553
do
66-
for NET_TYPE in ${NET_TYPE_LIST[*]}
54+
for UPDATE_MODEL in ${UPDATE_MODEL_LIST[*]}
6755
do
68-
for NUM_NODES in ${NUM_NODES_LIST[*]}
56+
for NET_TYPE in ${NET_TYPE_LIST[*]}
6957
do
70-
for INTERACTION_RADIUS in ${INTERACTION_RADIUS_LIST[*]}
58+
for NUM_NODES in ${NUM_NODES_LIST[*]}
7159
do
72-
for LINK_PROBABILITY in ${LINK_PROBABILITY_LIST[*]}
60+
for INTERACTION_RADIUS in ${INTERACTION_RADIUS_LIST[*]}
7361
do
74-
for NUM_EDGES in ${NUM_EDGES_LIST[*]}
62+
for LINK_PROBABILITY in ${LINK_PROBABILITY_LIST[*]}
7563
do
76-
for DDM_DRIFT_STD_DEV in ${DDM_DRIFT_STD_DEV_LIST[*]}
64+
for NUM_EDGES in ${NUM_EDGES_LIST[*]}
7765
do
78-
for DDM_BASE_DRIFT in ${DDM_BASE_DRIFT_LIST[*]}
66+
for DDM_DRIFT_STD_DEV in ${DDM_DRIFT_STD_DEV_LIST[*]}
7967
do
80-
### Skipping unnecessary iterations
81-
if [ "$NET_TYPE" != "erdos-renyi" ] && [ $LINK_PROBABILITY != ${LINK_PROBABILITY_LIST[0]} ];
82-
then
83-
continue
84-
fi
85-
if [ "$NET_TYPE" != "barabasi-albert" ] && [ $NUM_EDGES != ${NUM_EDGES_LIST[0]} ];
86-
then
87-
continue
88-
fi
89-
if [ "$NET_TYPE" != "space" ] && [ $INTERACTION_RADIUS != ${INTERACTION_RADIUS_LIST[0]} ];
90-
then
91-
continue
92-
fi
93-
94-
NET_PAR=0
95-
if [ "$NET_TYPE" == "erdos-renyi" ];
96-
then
97-
NET_PAR=${LINK_PROBABILITY}
98-
fi
99-
if [ "$NET_TYPE" == "barabasi-albert" ];
100-
then
101-
NET_PAR=${NUM_EDGES}
102-
fi
103-
if [ "$NET_TYPE" == "space" ];
104-
then
105-
NET_PAR=${INTERACTION_RADIUS}
106-
fi
107-
108-
JOB_PARAM="net-${NET_TYPE}_nodes-${NUM_NODES}_link-${NET_PAR}_up-${UPDATE_MODEL}_driftbase-${DDM_BASE_DRIFT}_driftrange-${DDM_DRIFT_STD_DEV}"
109-
OUT_TXT="${OUTPUT_DATA_DIR}out_${JOB_PARAM}.txt"
110-
111-
CONF_FILE="${CONF_DIR}/kick_${JOB_PARAM}.config"
112-
113-
sed -e "s|SEED|${SEED}|" \
114-
-e "s|NUM_EXP|${NUM_EXP}|" \
115-
-e "s|NUM_RUN|${NUM_RUN}|" \
116-
-e "s|MAX_TIME|${MAX_TIME}|" \
117-
-e "s|AGENT_TYPE|${AGENT_TYPE}|" \
118-
-e "s|ACC_MEAN|${ACC_MEAN}|" \
119-
-e "s|ACC_STD_DEV|${ACC_STD_DEV}|" \
120-
-e "s|ACC_TRUNCATED|${ACC_TRUNCATED}|" \
121-
-e "s|UPDATE_MODEL|${UPDATE_MODEL}|" \
122-
-e "s|DDM_DRIFT_DIST|${DDM_DRIFT_DIST}|" \
123-
-e "s|DDM_BASE_DRIFT|${DDM_BASE_DRIFT}|" \
124-
-e "s|DDM_DRIFT_RANGE_PLUS_MINUS|${DDM_DRIFT_RANGE}|" \
125-
-e "s|DDM_DRIFT_STD_DEV|${DDM_DRIFT_STD_DEV}|" \
126-
-e "s|DDM_NOISE_STD_DEV|${DDM_NOISE_STD_DEV}|" \
127-
-e "s|THRESHOLD|${THRESHOLD}|" \
128-
-e "s|PRIOR_DIST|${PRIOR_DIST}|" \
129-
-e "s|USE_BAYES_RISK|${USE_BAYES_RISK}|" \
130-
-e "s|COST_MATRIX_T|${COST_MATRIX_T}|" \
131-
-e "s|COST_MATRIX_E|${COST_MATRIX_E}|" \
132-
-e "s|NET_TYPE|${NET_TYPE}|" \
133-
-e "s|NUM_NODES|${NUM_NODES}|" \
134-
-e "s|NUM_EDGES|${NUM_EDGES}|" \
135-
-e "s|LINK_PROBABILITY|${LINK_PROBABILITY}|" \
136-
-e "s|INTERACTION_RADIUS|${INTERACTION_RADIUS}|" \
137-
-e "s|DYNAMICNET|${DYNAMICNET}|" \
138-
-e "s|AGENTSPEED|${AGENTSPEED}|" \
139-
-e "s|MOVE_STDDEV|${MOVE_STDDEV}|" \
140-
-e "s|ENV_SIZE|${ENV_SIZE}|" \
141-
-e "s|PERIODICBOUND|${PERIODICBOUND}|" \
142-
-e "s|OUT_TXT|${OUT_TXT}|" \
143-
${TEMPLATE_SETTINGS} > ${CONF_FILE}
144-
145-
export PYTHONPATH=${PYPATH}
146-
#COMMAND="python3 ${EXEC_FILE} ${CONF_FILE}"
147-
#COMMAND="./run_job.sh ${EXEC_FILE} ${CONF_FILE}"
148-
COMMAND="qsub run_job.sh ${EXEC_FILE} ${CONF_FILE}"
149-
${COMMAND}
150-
while ! ${COMMAND}
68+
for DDM_BASE_DRIFT in ${DDM_BASE_DRIFT_LIST[*]}
15169
do
152-
sleep 2
153-
done
70+
### Skipping unnecessary iterations
71+
if [ "$NET_TYPE" != "erdos-renyi" ] && [ $LINK_PROBABILITY != ${LINK_PROBABILITY_LIST[0]} ];
72+
then
73+
continue
74+
fi
75+
if [ "$NET_TYPE" != "barabasi-albert" ] && [ $NUM_EDGES != ${NUM_EDGES_LIST[0]} ];
76+
then
77+
continue
78+
fi
79+
if [ "$NET_TYPE" != "rgg-fixed-degree" ] && [ $INTERACTION_RADIUS != ${INTERACTION_RADIUS_LIST[0]} ];
80+
then
81+
continue
82+
fi
83+
84+
NET_PAR=0
85+
if [ "$NET_TYPE" == "erdos-renyi" ];
86+
then
87+
NET_PAR=${LINK_PROBABILITY}
88+
fi
89+
if [ "$NET_TYPE" == "barabasi-albert" ];
90+
then
91+
NET_PAR=${NUM_EDGES}
92+
fi
93+
if [ "$NET_TYPE" == "rgg-fixed-degree" ];
94+
then
95+
NET_PAR=${INTERACTION_RADIUS}
96+
fi
15497

155-
COUNT=$((COUNT + 1))
98+
JOB_PARAM="net-${NET_TYPE}_nodes-${NUM_NODES}_link-${NET_PAR}_up-${UPDATE_MODEL}_driftbase-${DDM_BASE_DRIFT}_driftrange-${DDM_DRIFT_STD_DEV}_miss-${ALLOW_MISINFO}"
99+
OUT_TXT="${OUTPUT_DATA_DIR}out_${JOB_PARAM}.txt"
100+
101+
CONF_FILE="${CONF_DIR}/kick_${JOB_PARAM}.config"
102+
103+
sed -e "s|SEED|${SEED}|" \
104+
-e "s|NUM_EXP|${NUM_EXP}|" \
105+
-e "s|NUM_RUN|${NUM_RUN}|" \
106+
-e "s|MAX_TIME|${MAX_TIME}|" \
107+
-e "s|AGENT_TYPE|${AGENT_TYPE}|" \
108+
-e "s|ACC_MEAN|${ACC_MEAN}|" \
109+
-e "s|ACC_STD_DEV|${ACC_STD_DEV}|" \
110+
-e "s|ACC_TRUNCATED|${ACC_TRUNCATED}|" \
111+
-e "s|UPDATE_MODEL|${UPDATE_MODEL}|" \
112+
-e "s|ALLOW_MISINFO|${ALLOW_MISINFO}|" \
113+
-e "s|DDM_DRIFT_DIST|${DDM_DRIFT_DIST}|" \
114+
-e "s|DDM_BASE_DRIFT|${DDM_BASE_DRIFT}|" \
115+
-e "s|DDM_DRIFT_RANGE_PLUS_MINUS|${DDM_DRIFT_RANGE}|" \
116+
-e "s|DDM_DRIFT_STD_DEV|${DDM_DRIFT_STD_DEV}|" \
117+
-e "s|DDM_NOISE_STD_DEV|${DDM_NOISE_STD_DEV}|" \
118+
-e "s|THRESHOLD|${THRESHOLD}|" \
119+
-e "s|PRIOR_DIST|${PRIOR_DIST}|" \
120+
-e "s|USE_BAYES_RISK|${USE_BAYES_RISK}|" \
121+
-e "s|COST_MATRIX_T|${COST_MATRIX_T}|" \
122+
-e "s|COST_MATRIX_E|${COST_MATRIX_E}|" \
123+
-e "s|NET_TYPE|${NET_TYPE}|" \
124+
-e "s|NUM_NODES|${NUM_NODES}|" \
125+
-e "s|NUM_EDGES|${NUM_EDGES}|" \
126+
-e "s|LINK_PROBABILITY|${LINK_PROBABILITY}|" \
127+
-e "s|INTERACTION_RADIUS|${INTERACTION_RADIUS}|" \
128+
-e "s|DYNAMICNET|${DYNAMICNET}|" \
129+
-e "s|AGENTSPEED|${AGENTSPEED}|" \
130+
-e "s|MOVE_STDDEV|${MOVE_STDDEV}|" \
131+
-e "s|ENV_SIZE|${ENV_SIZE}|" \
132+
-e "s|PERIODICBOUND|${PERIODICBOUND}|" \
133+
-e "s|OUT_TXT|${OUT_TXT}|" \
134+
${TEMPLATE_SETTINGS} > ${CONF_FILE}
135+
136+
export PYTHONPATH=${PYPATH}
137+
#COMMAND="python3 ${EXEC_FILE} ${CONF_FILE}"
138+
#COMMAND="./run_job.sh ${EXEC_FILE} ${CONF_FILE}"
139+
COMMAND="sbatch run_job.sh ${EXEC_FILE} ${CONF_FILE}"
140+
${COMMAND}
141+
while ! ${COMMAND}
142+
do
143+
sleep 2
144+
done
145+
146+
COUNT=$((COUNT + 1))
147+
done
156148
done
157149
done
158150
done

0 commit comments

Comments
 (0)