Skip to content

Commit 251aa43

Browse files
author
Andreagiovanni Reina
committed
Added to the synch process an intial computation to estimate the optimal threshold (which a asych process would use) in order to comput the expected accuracy such process would have, and finally use the expected accuracy to set the interrogation time.
1 parent dd479f2 commit 251aa43

5 files changed

Lines changed: 149 additions & 121 deletions

File tree

conf/DecNet.config

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
[experiment]
22
randomSeed=2289
33
# bad case for space with size 1 and range 0.3 seed: 1670054
4-
numberOfExperiments=1
4+
numberOfExperiments=3
55
repetitionsPerDDM=1
66
outputTxtFile=../../data/out.txt
77
outputPdfFile=../../data/output
@@ -25,15 +25,15 @@ truncatePoor=true
2525

2626
[DDM]
2727
# possible driftDistributions are [ 'uniform', 'normal', 'from_accuracy' ]
28-
driftDistribution=from_accuracy
28+
driftDistribution=normal
2929
baseDrift=0.1
3030
driftStdDev=0.5
3131
randomDriftRangePlusMinus=1
3232
noiseStdDev=0.5
3333
dt=0.01
3434
threshold=1
3535
interrogationTimeFromAccuracy=true
36-
interrogationTime=0.6
36+
interrogationTime=10
3737
prior=0.5
3838
# costMatrix accepts two values [ timeCost, errorCost ]
3939
costMatrix=[ 1 , 20 ]

conf/DecNet.template.config

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,10 @@ 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
3435
interrogationTime=INTERR_TIME
36+
prior=PRIOR_DIST
37+
costMatrix=[ COST_MATRIX_T , COST_MATRIX_E ]
3538

3639
[Network]
3740
number_of_nodes=NUM_NODES

scripts/staticSPERAB.sh

Lines changed: 116 additions & 110 deletions
Original file line numberDiff line numberDiff line change
@@ -7,64 +7,75 @@ mkdir -p ${CONF_DIR}
77
TEMPLATE_SETTINGS="${PROJECT_HOME}/conf/DecNet.template.config"
88
PYPATH="${PROJECT_HOME}/src/"
99
EXEC_FILE="${PROJECT_HOME}/src/DecNet/DecisionProcess.py"
10-
OUTPUT_DATA_DIR="${PROJECT_HOME}/static_lin6/"
10+
OUTPUT_DATA_DIR="${PROJECT_HOME}/synch_1/"
1111

1212
SEED=221189
1313
NUM_EXP=100
1414
NUM_RUN=1
1515
MAX_TIME=1000
1616

17-
AGENT_TYPE='simple'
18-
DEC_MODEL_LIST=( 'conf-perfect' )
17+
AGENT_TYPE='DDM'
18+
DEC_MODEL_LIST=( 'log-odds-distr' )
1919
#UPDATE_CONF_LIST=( 'optim-up' 'belief-up')
20-
UPDATE_CONF_LIST=( 'finite-time')
20+
UPDATE_CONF_LIST=( 'no-up' 'optim-up' )
2121
#BELIEF_EPSILON_LIST=($(seq 0.07 0.001 0.1))
2222
#BELIEF_EPSILON_LIST=($(seq 0.01 0.005 0.15))
2323
#BELIEF_EPSILON_LIST=(0.01 0.05 0.10 0.20 0.30 0.40 0.50 0.60 0.70 0.80 0.90 1.00)
2424
#BELIEF_EPSILON_LIST=($(seq 0.01 0.01 0.10))
2525
#BELIEF_EPSILON_LIST=($(seq 0.001 0.003 0.016))
26-
BELIEF_EPSILON_LIST=( 0 0.05 )
26+
BELIEF_EPSILON=0
2727
FINITE_TIME_EXPONENT=0.5
2828

2929
### Unnecessary for this analysis
3030
DDM_DRIFT_DIST='normal'
31-
DDM_BASE_DRIFT=0.1
31+
#DDM_BASE_DRIFT=0.1
32+
DDM_BASE_DRIFT_LIST=( 0.05 0.1 0.2 )
3233
DDM_DRIFT_RANGE_PLUS_MINUS=1
33-
DDM_DRIFT_STD_DEV=0.3
34+
#DDM_DRIFT_STD_DEV=0.3
35+
DDM_DRIFT_STD_DEV_LIST=($(seq 0.10 0.10 0.50))
3436
DDM_NOISE_STD_DEV=0.5
35-
#THRESHOLD=1
37+
THRESHOLD=1
38+
INTERR_TIME_FROM_ACC='true'
3639
INTERR_TIME=10
40+
PRIOR_DIST=0.5
41+
COST_MATRIX_T=1
42+
COST_MATRIX_E=20
43+
3744

3845
#NUM_NODES=20
3946
NUM_NODES_LIST=($(seq 20 10 100))
4047
#NUM_NODES_LIST=($(seq 30 20 90))
4148
#NUM_NODES_LIST=($(seq 50 50 200))
4249
#NUM_NODES_LIST=($(seq 11 12 47))
4350
#NUM_NODES_LIST=( 40 )
44-
NET_TYPE_LIST=('erdos-renyi' 'barabasi-albert' 'space')
51+
NET_TYPE_LIST=('erdos-renyi' 'barabasi-albert' 'rgg-fixed-degree')
4552
#NET_TYPE_LIST=('space')
4653
#NET_TYPE_LIST=('erdos-renyi')
4754
#LINK_PROBABILITY_LIST=($(seq 0.2 0.1 0.8))
48-
LINK_PROBABILITY_LIST=(0.2 0.4 0.6 0.8)
55+
#LINK_PROBABILITY_LIST=(0.2 0.4 0.6 0.8)
56+
LINK_PROBABILITY_LIST=(0.2 0.6)
4957
#LINK_PROBABILITY_LIST=(0.2)
5058
#NUM_EDGES=3
51-
NUM_EDGES_LIST=($(seq 3 3 12))
59+
#NUM_EDGES_LIST=($(seq 3 3 12))
5260
#NUM_EDGES_LIST=($(seq 5 5 20))
61+
NUM_EDGES_LIST=(3 9)
5362
#INTERACTION_RADIUS_LIST=($(seq 0.05 0.05 0.3))
54-
INTERACTION_RADIUS_LIST=($(seq 0.20 0.05 0.35))
63+
#INTERACTION_RADIUS_LIST=($(seq 0.20 0.05 0.35))
64+
INTERACTION_RADIUS_LIST=( 10 )
5565
#INTERACTION_RADIUS_LIST=( 0.05 )
56-
ENV_SIZE_LIST=( 1 )
66+
ENV_SIZE=1
67+
#ENV_SIZE_LIST=( 1 )
5768
#ENV_SIZE_LIST=(0.5 2 3 4 5 6 7 8 9 15 20)
5869
#ENV_SIZE_LIST=(0.01 0.1 0.5 1 2 3 4 5 10 15 20)
5970

6071
DYNAMICNET='false'
6172
#AGENTSPEED_LIST=($(seq 0.05 0.05 0.2))
62-
AGENTSPEED_LIST=( 0.05 )
73+
AGENTSPEED=0.05
6374
MOVE_STDDEV=45
6475
PERIODICBOUND='false'
6576

66-
ACC_MEAN_LIST=( 0.6 )
67-
ACC_STD_DEV_LIST=( 0.12 )
77+
ACC_MEAN=0.6
78+
ACC_STD_DEV=0.12
6879
ACC_TRUNCATED='true'
6980

7081
COUNT=0
@@ -81,106 +92,101 @@ do
8192
do
8293
for NUM_EDGES in ${NUM_EDGES_LIST[*]}
8394
do
84-
for ACC_MEAN in ${ACC_MEAN_LIST[*]}
95+
for DDM_BASE_DRIFT in ${DDM_BASE_DRIFT_LIST[*]}
8596
do
86-
for ACC_STD_DEV in ${ACC_STD_DEV_LIST[*]}
97+
for DDM_DRIFT_STD_DEV in ${DDM_DRIFT_STD_DEV_LIST[*]}
8798
do
8899
for UPDATE_CONF in ${UPDATE_CONF_LIST[*]}
89100
do
90-
for BELIEF_EPSILON in ${BELIEF_EPSILON_LIST[*]}
91-
do
92-
for AGENTSPEED in ${AGENTSPEED_LIST[*]}
93-
do
94-
for ENV_SIZE in ${ENV_SIZE_LIST[*]}
95-
do
96-
97-
### Skipping unnecessary iterations
98-
if [ "$NET_TYPE" != "erdos-renyi" ] && [ $LINK_PROBABILITY != ${LINK_PROBABILITY_LIST[0]} ];
99-
then
100-
continue
101-
fi
102-
if [ "$NET_TYPE" != "barabasi-albert" ] && [ $NUM_EDGES != ${NUM_EDGES_LIST[0]} ];
103-
then
104-
continue
105-
fi
106-
if [ "$NET_TYPE" != "space" ] && [ $INTERACTION_RADIUS != ${INTERACTION_RADIUS_LIST[0]} ];
107-
then
108-
continue
109-
fi
110-
#if [ "$DEC_MODEL" == "belief-init" ] && [ $UPDATE_CONF != "belief-up" ];
111-
#then
112-
# continue
113-
#fi
114-
if [ "$UPDATE_CONF" == "optim-up" ] && [ $BELIEF_EPSILON != ${BELIEF_EPSILON_LIST[0]} ];
115-
then
116-
continue
117-
fi
101+
102+
### Skipping unnecessary iterations
103+
if [ "$NET_TYPE" != "erdos-renyi" ] && [ $LINK_PROBABILITY != ${LINK_PROBABILITY_LIST[0]} ];
104+
then
105+
continue
106+
fi
107+
if [ "$NET_TYPE" != "barabasi-albert" ] && [ $NUM_EDGES != ${NUM_EDGES_LIST[0]} ];
108+
then
109+
continue
110+
fi
111+
if [ "$NET_TYPE" != "space" ] && [ $INTERACTION_RADIUS != ${INTERACTION_RADIUS_LIST[0]} ];
112+
then
113+
continue
114+
fi
115+
#if [ "$DEC_MODEL" == "belief-init" ] && [ $UPDATE_CONF != "belief-up" ];
116+
#then
117+
# continue
118+
#fi
119+
if [ "$UPDATE_CONF" == "optim-up" ] && [ $BELIEF_EPSILON != ${BELIEF_EPSILON_LIST[0]} ];
120+
then
121+
continue
122+
fi
123+
124+
NET_PAR=0
125+
if [ "$NET_TYPE" == "erdos-renyi" ];
126+
then
127+
NET_PAR=${LINK_PROBABILITY}
128+
fi
129+
if [ "$NET_TYPE" == "barabasi-albert" ];
130+
then
131+
NET_PAR=${NUM_EDGES}
132+
fi
133+
if [ "$NET_TYPE" == "space" ];
134+
then
135+
NET_PAR=${INTERACTION_RADIUS}
136+
fi
137+
138+
JOB_PARAM="net-${NET_TYPE}_nodes-${NUM_NODES}_link-${NET_PAR}_model-${DEC_MODEL}_up-${UPDATE_CONF}_driftbase-${DDM_BASE_DRIFT}_driftrange-${DDM_DRIFT_STD_DEV}"
139+
OUT_TXT="${OUTPUT_DATA_DIR}out_${JOB_PARAM}.txt"
140+
141+
CONF_FILE="${CONF_DIR}/decnet_${JOB_PARAM}.config"
142+
143+
sed -e "s|SEED|${SEED}|" \
144+
-e "s|NUM_EXP|${NUM_EXP}|" \
145+
-e "s|NUM_RUN|${NUM_RUN}|" \
146+
-e "s|MAX_TIME|${MAX_TIME}|" \
147+
-e "s|AGENT_TYPE|${AGENT_TYPE}|" \
148+
-e "s|ACC_MEAN|${ACC_MEAN}|" \
149+
-e "s|ACC_STD_DEV|${ACC_STD_DEV}|" \
150+
-e "s|ACC_TRUNCATED|${ACC_TRUNCATED}|" \
151+
-e "s|DEC_MODEL|${DEC_MODEL}|" \
152+
-e "s|UPDATE_CONF|${UPDATE_CONF}|" \
153+
-e "s|BELIEF_EPSILON|${BELIEF_EPSILON}|" \
154+
-e "s|FINITE_TIME_EXPONENT|${FINITE_TIME_EXPONENT}|" \
155+
-e "s|DDM_DRIFT_DIST|${DDM_DRIFT_DIST}|" \
156+
-e "s|DDM_BASE_DRIFT|${DDM_BASE_DRIFT}|" \
157+
-e "s|DDM_DRIFT_RANGE_PLUS_MINUS|${DDM_DRIFT_RANGE_PLUS_MINUS}|" \
158+
-e "s|DDM_DRIFT_STD_DEV|${DDM_DRIFT_STD_DEV}|" \
159+
-e "s|DDM_NOISE_STD_DEV|${DDM_NOISE_STD_DEV}|" \
160+
-e "s|THRESHOLD|${THRESHOLD}|" \
161+
-e "s|INTERR_TIME|${INTERR_TIME}|" \
162+
-e "s|INTERR_TIME_FROM_ACC|${INTERR_TIME_FROM_ACC}|" \
163+
-e "s|PRIOR_DIST|${PRIOR_DIST}|" \
164+
-e "s|COST_MATRIX_T|${COST_MATRIX_T}|" \
165+
-e "s|COST_MATRIX_E|${COST_MATRIX_E}|" \
166+
-e "s|NET_TYPE|${NET_TYPE}|" \
167+
-e "s|NUM_NODES|${NUM_NODES}|" \
168+
-e "s|NUM_EDGES|${NUM_EDGES}|" \
169+
-e "s|LINK_PROBABILITY|${LINK_PROBABILITY}|" \
170+
-e "s|INTERACTION_RADIUS|${INTERACTION_RADIUS}|" \
171+
-e "s|DYNAMICNET|${DYNAMICNET}|" \
172+
-e "s|AGENTSPEED|${AGENTSPEED}|" \
173+
-e "s|MOVE_STDDEV|${MOVE_STDDEV}|" \
174+
-e "s|ENV_SIZE|${ENV_SIZE}|" \
175+
-e "s|PERIODICBOUND|${PERIODICBOUND}|" \
176+
-e "s|OUT_TXT|${OUT_TXT}|" \
177+
${TEMPLATE_SETTINGS} > ${CONF_FILE}
118178

119-
NET_PAR=0
120-
if [ "$NET_TYPE" == "erdos-renyi" ];
121-
then
122-
NET_PAR=${LINK_PROBABILITY}
123-
fi
124-
if [ "$NET_TYPE" == "barabasi-albert" ];
125-
then
126-
NET_PAR=${NUM_EDGES}
127-
fi
128-
if [ "$NET_TYPE" == "space" ];
129-
then
130-
NET_PAR=${INTERACTION_RADIUS}
131-
fi
132-
133-
JOB_PARAM="net-${NET_TYPE}_nodes-${NUM_NODES}_link-${NET_PAR}_bound-${PERIODICBOUND}_env-${ENV_SIZE}_model-${DEC_MODEL}_up-${UPDATE_CONF}_acc-${ACC_MEAN}_acstdv-${ACC_STD_DEV}_eps-${BELIEF_EPSILON}"
134-
OUT_TXT="${OUTPUT_DATA_DIR}out_${JOB_PARAM}.txt"
135-
136-
CONF_FILE="${CONF_DIR}/decnet_${JOB_PARAM}.config"
137-
138-
sed -e "s|SEED|${SEED}|" \
139-
-e "s|NUM_EXP|${NUM_EXP}|" \
140-
-e "s|NUM_RUN|${NUM_RUN}|" \
141-
-e "s|MAX_TIME|${MAX_TIME}|" \
142-
-e "s|AGENT_TYPE|${AGENT_TYPE}|" \
143-
-e "s|ACC_MEAN|${ACC_MEAN}|" \
144-
-e "s|ACC_STD_DEV|${ACC_STD_DEV}|" \
145-
-e "s|ACC_TRUNCATED|${ACC_TRUNCATED}|" \
146-
-e "s|DEC_MODEL|${DEC_MODEL}|" \
147-
-e "s|UPDATE_CONF|${UPDATE_CONF}|" \
148-
-e "s|BELIEF_EPSILON|${BELIEF_EPSILON}|" \
149-
-e "s|FINITE_TIME_EXPONENT|${FINITE_TIME_EXPONENT}|" \
150-
-e "s|DDM_DRIFT_DIST|${DDM_DRIFT_DIST}|" \
151-
-e "s|DDM_BASE_DRIFT|${DDM_BASE_DRIFT}|" \
152-
-e "s|DDM_DRIFT_RANGE_PLUS_MINUS|${DDM_DRIFT_RANGE_PLUS_MINUS}|" \
153-
-e "s|DDM_DRIFT_STD_DEV|${DDM_DRIFT_STD_DEV}|" \
154-
-e "s|DDM_NOISE_STD_DEV|${DDM_NOISE_STD_DEV}|" \
155-
-e "s|THRESHOLD|${THRESHOLD}|" \
156-
-e "s|INTERR_TIME|${INTERR_TIME}|" \
157-
-e "s|NET_TYPE|${NET_TYPE}|" \
158-
-e "s|NUM_NODES|${NUM_NODES}|" \
159-
-e "s|NUM_EDGES|${NUM_EDGES}|" \
160-
-e "s|LINK_PROBABILITY|${LINK_PROBABILITY}|" \
161-
-e "s|INTERACTION_RADIUS|${INTERACTION_RADIUS}|" \
162-
-e "s|DYNAMICNET|${DYNAMICNET}|" \
163-
-e "s|AGENTSPEED|${AGENTSPEED}|" \
164-
-e "s|MOVE_STDDEV|${MOVE_STDDEV}|" \
165-
-e "s|ENV_SIZE|${ENV_SIZE}|" \
166-
-e "s|PERIODICBOUND|${PERIODICBOUND}|" \
167-
-e "s|OUT_TXT|${OUT_TXT}|" \
168-
${TEMPLATE_SETTINGS} > ${CONF_FILE}
169-
170-
export PYTHONPATH=${PYPATH}
171-
#COMMAND="python3 ${EXEC_FILE} ${CONF_FILE}"
172-
#COMMAND="./run_job.sh ${EXEC_FILE} ${CONF_FILE}"
173-
COMMAND="qsub run_job.sh ${EXEC_FILE} ${CONF_FILE}"
174-
#${COMMAND}
175-
while ! ${COMMAND}
176-
do
177-
sleep 2
178-
done
179-
180-
COUNT=$((COUNT + 1))
181-
done
182-
done
179+
export PYTHONPATH=${PYPATH}
180+
#COMMAND="python3 ${EXEC_FILE} ${CONF_FILE}"
181+
#COMMAND="./run_job.sh ${EXEC_FILE} ${CONF_FILE}"
182+
COMMAND="qsub run_job.sh ${EXEC_FILE} ${CONF_FILE}"
183+
#${COMMAND}
184+
while ! ${COMMAND}
185+
do
186+
sleep 2
183187
done
188+
189+
COUNT=$((COUNT + 1))
184190
done
185191
done
186192
done

src/AsynchKicks/DecisionNet.py

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -80,14 +80,17 @@ def setDDMAgent(self, driftDistribution, baseDrift, noiseStdDev, threshold, prio
8080
self.accuracyStdDev = args[1]
8181
if useBayesRisk:
8282
costMatrix = args[-1]
83-
def compute_BR_opt_thresh(thresh): # from Eq. (5.6) of Bogacz et al. Psy.Rev. 2006
84-
return costMatrix[1]/costMatrix[0] * 2 * (meanDrift**2) / (self.noiseStdDev**2) - 4 * meanDrift * thresh / (self.noiseStdDev**2) + np.exp( - 2 * meanDrift * thresh / (self.noiseStdDev**2) ) - np.exp( 2 * meanDrift * thresh / (self.noiseStdDev**2) )
85-
self.threshold = scipy.optimize.fsolve( compute_BR_opt_thresh, 0.25*meanDrift*costMatrix[1]/costMatrix[0], maxfev=1000 )[0] # second parameter is the starting point which is set to the approximation of Eq. (5.7) of Bogacz et al. Psy.Rev. 2006
86-
if (self.DEBUG): print("Computed threshold with BR cost matrix is: " + str(self.threshold) )
87-
#if (self.DEBUG): print("CHECK: " + str( compute_BR_opt_thresh(self.threshold)) )
88-
integrResult = integrate.quad( self.integrationFuncDdmThreshNormal, -np.inf, np.inf, args=( costMatrix, self.noiseStdDev ) )
89-
self.threshold = integrResult[0]
90-
if (self.DEBUG): print("Computed (with integral with error: " + str(integrResult[1]) + ") threshold with BR cost matrix is: " + str(self.threshold) )
83+
integrateOverAllValues = True
84+
if integrateOverAllValues:
85+
integrResult = integrate.quad( self.integrationFuncDdmThreshNormal, -np.inf, np.inf, args=( costMatrix, self.noiseStdDev ) )
86+
self.threshold = integrResult[0]
87+
if (self.DEBUG): print("Computed (with integral with error: " + str(integrResult[1]) + ") threshold with BR cost matrix is: " + str(self.threshold) )
88+
else:
89+
def compute_BR_opt_thresh(thresh): # from Eq. (5.6) of Bogacz et al. Psy.Rev. 2006
90+
return costMatrix[1]/costMatrix[0] * 2 * (meanDrift**2) / (self.noiseStdDev**2) - 4 * meanDrift * thresh / (self.noiseStdDev**2) + np.exp( - 2 * meanDrift * thresh / (self.noiseStdDev**2) ) - np.exp( 2 * meanDrift * thresh / (self.noiseStdDev**2) )
91+
self.threshold = scipy.optimize.fsolve( compute_BR_opt_thresh, 0.25*meanDrift*costMatrix[1]/costMatrix[0], maxfev=1000 )[0] # second parameter is the starting point which is set to the approximation of Eq. (5.7) of Bogacz et al. Psy.Rev. 2006
92+
if (self.DEBUG): print("Computed threshold with BR cost matrix is: " + str(self.threshold) )
93+
#if (self.DEBUG): print("CHECK: " + str( compute_BR_opt_thresh(self.threshold)) )
9194
else:
9295
self.threshold = threshold
9396

src/DecNet/DecisionProcess.py

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,11 @@
99
import os
1010
import configparser
1111
import json
12+
import numpy as np
1213
import numpy.random as rand
14+
import scipy.optimize
15+
import scipy.integrate as integrate
16+
from scipy.stats import norm
1317
import math
1418
# import matplotlib.pyplot as plt
1519
# from statsmodels.graphics import plottools
@@ -310,6 +314,17 @@
310314
args.append( accuracyStdDev )
311315
if interrogationTimeFromAccuracy:
312316
args.append(costMatrix)
317+
def integrationFuncDdmThreshNormal(drift, costMatrix, noiseStdDev, baseDrift, driftStdDev):
318+
prob = norm.pdf(drift, baseDrift, driftStdDev)
319+
drift = abs(drift)
320+
def compute_BR_opt_thresh(thresh): # from Eq. (5.6) of Bogacz et al. Psy.Rev. 2016
321+
return costMatrix[1]/costMatrix[0] * 2 * (drift**2) / (noiseStdDev**2) - 4 * drift * thresh / (noiseStdDev**2) + np.exp( - 2 * drift * thresh / (noiseStdDev**2) ) - np.exp( 2 * drift * thresh / (noiseStdDev**2) )
322+
pdf = scipy.optimize.fsolve( compute_BR_opt_thresh, 0.25*drift*costMatrix[1]/costMatrix[0], maxfev=1000 )[0] # second parameter is the starting point which is set to the approximation of Eq. (5.7) of Bogacz et al. Psy.Rev. 2016
323+
return pdf*prob
324+
integrResult = integrate.quad( integrationFuncDdmThreshNormal, -np.inf, np.inf, args=( costMatrix, noiseStdDev, baseDrift, driftStdDev ) )
325+
thresh = integrResult[0]
326+
expectedAccuracy = 1 - ( 1.0/ ( 1 + np.exp(2*baseDrift*thresh/(noiseStdDev**2)) ))
327+
interrogationTime = expectedAccuracy
313328
decNet.setDDMAgent(driftDistribution, baseDrift, noiseStdDev, interrogationTimeFromAccuracy, interrogationTime, prior, args)
314329
if (DEBUG): print("Initialising agents")
315330
agentParams = []
@@ -367,3 +382,4 @@
367382
outFile.close()
368383
if DEBUG: print("Process Ended")
369384

385+

0 commit comments

Comments
 (0)