-
Notifications
You must be signed in to change notification settings - Fork 458
/
biosim4.ini
229 lines (193 loc) · 9.55 KB
/
biosim4.ini
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
# biosim4.ini
# biosim4.ini is the default config file for the simulator.
# The config filename is determined in simulator() in simulator.cpp.
# The config file is parsed by class ParamManager, see params.cpp and params.h.
# Although not foolproof, the config file can be modified during a simulation
# run and the param manager will make any new params available to the simulator
# after the end of the current simulator step or after the end of the current
# generation.
#
# Parameter values can also be changed automatically based on the current generation
# number of the simulation using the syntax (see barrierType param for example):
# <parameterName>@<generationNumber> = <newValue>
# Instances of the same parameter have to be ascending by generation number to work
# correctly, e.g. barrierType@100 must be later in the file than barrierType@50,
# which in turn must come after barrierType. Not all parameters can be safely
# changed during a simulation. Some restrictions are noted below.
# numThreads must be 1 or greater. Best value is less than or equal to
# the number of CPU cores. Cannot be changed after a simulation starts.
numThreads = 4
# sizeX, sizeY define the size of the 2D world. Minimum size is 16,16.
# Maximum size is 32767, 32767. Cannot be changed after a simulation starts.
sizeX = 128
sizeY = 128
# Population at the start of each generation. Maximum value = 32766.
# Cannot be changed after a simulation starts.
population = 3000
# Number of simulation steps per generation. Range 1..INT_MAX.
stepsPerGeneration = 300
# The simulator will stop when the generation number == maxGenerations.
# Range 1..INT_MAX
maxGenerations = 200000
# genomeInitialLengthMin and genomeInitialLengthMax should be set to
# the same value. (For future use, the max length might be larger to
# allow mutations that lengthen the genome.) Range 1..INT_MAX and
# must be no larger than genomeMaxLength. The range of genomeMaxLength
# is genomeInitialLengthMax..INT_MAX. Cannot be changed after a
# simulation starts.
genomeInitialLengthMin = 24
genomeInitialLengthMax = 24
genomeMaxLength = 300
# maxNumberNeurons is the maximum number of internal neurons that may
# be addressed by genes in the genome. Range 1..INT_MAX. Cannot be
# changed after a simulation starts. Cannot be changed after a
# simulation starts.
maxNumberNeurons = 5
# If killEnable is true and the "kill" action neuron is enabled in
# sensors-actions.h and compiled in, then agents are permitted to
# kill their neighbor in the adjacent location in the direction of
# forward movement. If false, the neighbors are safe.
killEnable = false
# If sexualReproduction is false, newborns inherit the genes from a
# single parent. If true, newborns inherit a mixture of genes from
# two parents.
sexualReproduction = true
# If chooseParentByFitness is false, then every agent that survives the
# selection criterion has equal chance of reproducing. If true, then
# preference is given to those parents who passed the selection criterion
# with a greater score. Fitness scores are determined in survival-criteria.cpp.
chooseParentsByFitness = true
# pointMutationRate is the probability per gene of having a single-bit
# mutation during spawning. Range 0.0 .. 1.0. A reasonable range is
# 0.0001 to 0.01.
pointMutationRate = 0.001
# geneInsertionDeletionRate and deletionRatio are for future use to
# allow mutations that lengthen or shorten the genome. Ignored for now.
geneInsertionDeletionRate = 0.0
deletionRatio = 0.5
# responsivenessCurveKFactor is a small positive integer that determines
# the shape of the curve that determines how reactive an agent is to its
# sensory inputs. Typical values are # 1, 2, 3, or 4, but greater values
# are allowed experimentally.
responsivenessCurveKFactor = 2
# populationSensorRadius is the radius in which the population sensor
# looks for neighbors. Floating point value. A value of 1.5 includes
# all the immediate eight-neighborhood. Larger values incur exponentially
# increasing processor overhead. Range 0.5 up to (float)max(sizeX, sizeY).
populationSensorRadius = 2.5
# longProbeDistance is the default distance that the long-probe sensors
# are able to see. Applies to long-probe population sensor and long-probe
# signal (pheromone) sensor. Range 1..INT_MAX.
longProbeDistance = 16
# shortProbeBarrierDistance is the distance that the short-probe sensor
# can see. Range 1..INT_MAX.
shortProbeBarrierDistance = 4
# signalSensorRadius is the radius in which the signal (pheromone) sensor
# looks for pheromones. Floating point value. A value of 1.5 includes
# all the immediate eight-neighborhood. Larger values incur exponentially
# increasing processor overhead. Range 0.5 up to (float)max(sizeX, sizeY).
signalSensorRadius = 2.0
# signalLayers defines the number of pheromone layers. Must be 1 for now.
# Values > 1 are for future use. Cannot be changed after a simulation starts.
signalLayers = 1
# imageDir is the relative or absolute directory path where generation
# movies are created.
imageDir = images
# logDir is the relative or absolute directory path where text log files
# are created.
logDir = logs
# displayScale scales the generation movie. Typical values are
# 1 for actual size, or 2, 4, 8, 16, or 32 to scale up the movie.
displayScale = 8
# agentSize controls the size of the dot used to represent an agent
# in the generation movie. Typical value is displayScale / 2.
agentSize = 4
# If videoSaveFirstFrames is 0, then only the parameter videoStride controls
# how often generation movies are made. If videoSaveFirstFrames is nonzero,
# then generation movies will also be generated for every generation from 0
# through videoSaveFirstFrames (because the first few generations are often
# the most interesting). Range 1..INT_MAX.
videoSaveFirstFrames = 2
# updateGraphLog can be set to true to cause the simulator program to
# invoke graphlog.gp to update the simulation progress graph. If true,
# then updateGraphLogStride controls how often it is invoked. If
# updateGraphLog is false, then the simulator program will not invoke
# graphlog.gp.
updateGraphLog = true
# If saveVideo is true, the simulator program will create generation
# movies in the directory named by imageDir at the intervals set by
# videoSaveFirstFrames and videoStride.
saveVideo = true
# videoStride determines how often generation movies will be created.
# Also see saveVideo and videoSaveFirstFrames. Range 1..INT_MAX.
videoStride = 25
# updateGraphLogStride determines how often the simulation progress graph
# is updated by direct invocation of graphlog.gp. Ignored if updateGraphLog
# is false. updateGraphLogStride may be a positive integer from 1 to INT_MAX,
# or may be set to the string videoStride to use the value of videoStride.
updateGraphLogStride = videoStride
# genomeAnalysisStride determines how often the simulator will print genomic
# statistics. The stats are printed to stdout when the generation number
# modulo genomeAnalysisStride == 0. The value may be a positive integer from
# 1 to INT_MAX, or may be set to the string videoStride to use the value of
# videoStride.
genomeAnalysisStride = videoStride
# When the genomic statistics are printed (see genomeAnalysisStride), the
# method used to measure genome diversity in the population is determined
# by genomeComparisonMethod. May be set to 0 for Jaro-Winkler method (useful
# for future use if genomes are allowed to grow or shrink in size); or 1
# for a Hamming measure bit-by-bit, or 2 for a Hamming measure byte-by-byte.
# Typically set to 1.
genomeComparisonMethod = 1
# When genomic statistics are printed (see genomeAnalysisStride), the number
# of genomes sampled from the population and printed to stdout is determined
# by displaySampleGenomes. Range 0 to population size.
displaySampleGenomes = 5
# challenge determines the selection criterion for reproduction. This is
# typically always under active development. See survival-criteria.cpp for
# more information.
# 0 = circle
# 1 = right half
# 2 = right quarter
# 3 = neighbor count
# 4 = center weighted
# 40 = center unweighted
# 5 = corner 1/4 radius
# 6 = corner 1/4 radius weighted
# 7 = migrate distance
# 8 = center sparse
# 9 = left eighth
# 10 = radioactive walls
# 11 = against any wall
# 12 = touch any wall any time
# 13 = east-west eighths
# 14 = near barrier
# 15 = pairs
# 16 = contact location sequence
# 17 = altruism, circle + NE corner
challenge = 6
# The simulator supports a feature called "barriers." Barriers are locations
# in the simulated 2D world where agents may not occupy. The value of
# barrierType is typically under active development. See createBarrier.cpp
# for more information.
# 0 = none
# 1 = vertical bar constant location
# 2 = vertical bar random locations
# 3 = five staggered vertical bars
# 4 = horiz bar constant location north center
# 5 = floating islands
# 6 = sequence of spots
barrierType = 0
# This is an example of an automatic parameter change based on the generation.
# If uncommented, the barrier type will automatically change to the new value
# when the simulation reaches the generation specified after the @ delimiter.
# barrierType@500 = 5
# If true, then the random number generator (RNG) will be seeded by the value
# in RNGSeed, causing each thread to receive a deterministic sequence from
# the RNG. If false, the RNG will be randomly seeded and program output will
# be non-deterministic. Cannot be changed after a simulation starts.
deterministic = false
# If deterministic is true, the random number generator will be seeded with
# this value. If deterministic is false, this value is ignored. Legal values
# are integers 0 to 4294967295. Cannot be changed after a simulation starts.
RNGSeed = 12345678