forked from davidrmiller/biosim4
-
Notifications
You must be signed in to change notification settings - Fork 0
/
biosim4.ini
219 lines (183 loc) · 8.66 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
# 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.
# numThreads must be 1 or greater. Best value is less than or equal to
# the number of CPU cores.
numThreads = 4
# sizeX, sizeY define the size of the 2D world. Minimum size is 16,16.
# Maximum size is 32767, 32767.
sizeX = 128
sizeY = 128
# Population at the start of each generation. Maximum value = 32766.
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.
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.
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.
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. Also see replaceBarrierType.
# 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
# The barrier type will automatically change from barrierType to
# replaceBarrierType at the generation specified by
# replaceBarrierTypeGenerationNumber. Range 0..INT_MAX, or set to -1 to
# disable.
replaceBarrierType = 0
replaceBarrierTypeGenerationNumber = -1
# 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.
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.
RNGSeed = 12345678