1#############################################################################
2# This file includes all the basic run-time defines for Avida.
3# For more information, see doc/config.html
4#############################################################################
5
6VERSION_ID 2.11.0   # Do not change this value.
7
8### GENERAL_GROUP ###
9# General Settings
10VERBOSITY 1       # 0 = No output at all
11                  # 1 = Normal output
12                  # 2 = Verbose output, detailing progress
13                  # 3 = High level of details, as available
14                  # 4 = Print Debug Information, as applicable
15RANDOM_SEED 0     # Random number seed (0 for based on time)
16SPECULATIVE 1     # Enable speculative execution
17                  # (pre-execute instructions that don't affect other organisms)
18POPULATION_CAP 0  # Carrying capacity in number of organisms (use 0 for no cap)
19
20### TOPOLOGY_GROUP ###
21# World topology
22WORLD_X 60                  # Width of the Avida world
23WORLD_Y 60                  # Height of the Avida world
24WORLD_GEOMETRY 2            # 1 = Bounded Grid (WOLRD_X x WORLD_Y)
25                            # 2 = Toroidal Grid (WOLRD_X x WORLD_Y; wraps at edges
26                            # 3 = Clique (all population cells are connected)
27                            # 4 = Hexagonal grid
28                            # 5 = Partial
29                            # 6 = 3D Lattice (under development)
30                            # 7 = Random connected
31                            # 8 = Scale-free (detailed below)
32SCALE_FREE_M 3              # Number of connections per cell in a scale-free geometry
33SCALE_FREE_ALPHA 1.0        # Attachment power (1=linear)
34SCALE_FREE_ZERO_APPEAL 0.0  # Appeal of cells with zero connections
35
36### CONFIG_FILE_GROUP ###
37# Other configuration Files
38DATA_DIR data                     # Directory in which config files are found
39EVENT_FILE events-full-collect-B.cfg             # File containing list of events during run
40ANALYZE_FILE analyze.cfg          # File used for analysis mode
41ENVIRONMENT_FILE environment-2resource-noinflow.cfg  # File that describes the environment
42
43#include INST_SET=instset-heads-collect.cfg
44
45### MUTATION_GROUP ###
46# Mutation rates
47COPY_MUT_PROB 0.0075          # Mutation rate (per copy)
48COPY_INS_PROB 0.0             # Insertion rate (per copy)
49COPY_DEL_PROB 0.0             # Deletion rate (per copy)
50COPY_UNIFORM_PROB 0.0         # Uniform mutation probability (per copy)
51                              # - Randomly apply insertion, deletion or point mutation
52COPY_SLIP_PROB 0.0            # Slip rate (per copy)
53POINT_MUT_PROB 0.0            # Mutation rate (per-location per update)
54DIV_MUT_PROB 0.0              # Mutation rate (per site, applied on divide)
55DIV_INS_PROB 0.0              # Insertion rate (per site, applied on divide)
56DIV_DEL_PROB 0.0              # Deletion rate (per site, applied on divide)
57DIV_UNIFORM_PROB 0.0          # Uniform mutation probability (per site, applied on divide)
58                              # - Randomly apply insertion, deletion or point mutation
59DIV_SLIP_PROB 0.0             # Slip rate (per site, applied on divide)
60DIVIDE_MUT_PROB 0.0           # Mutation rate (max one, per divide)
61DIVIDE_INS_PROB 0.05          # Insertion rate (max one, per divide)
62DIVIDE_DEL_PROB 0.05          # Deletion rate (max one, per divide)
63DIVIDE_UNIFORM_PROB 0.0       # Uniform mutation probability (per divide)
64                              # - Randomly apply insertion, deletion or point mutation
65DIVIDE_SLIP_PROB 0.0          # Slip rate (per divide) - creates large deletions/duplications
66DIVIDE_POISSON_MUT_MEAN 0.0   # Mutation rate (Poisson distributed, per divide)
67DIVIDE_POISSON_INS_MEAN 0.0   # Insertion rate (Poisson distributed, per divide)
68DIVIDE_POISSON_DEL_MEAN 0.0   # Deletion rate (Poisson distributed, per divide)
69DIVIDE_POISSON_SLIP_MEAN 0.0  # Slip rate (Poisson distributed, per divide)
70INJECT_INS_PROB 0.0           # Insertion rate (per site, applied on inject)
71INJECT_DEL_PROB 0.0           # Deletion rate (per site, applied on inject)
72INJECT_MUT_PROB 0.0           # Mutation rate (per site, applied on inject)
73SLIP_FILL_MODE 0              # Fill insertions from slip mutations with:
74                              # 0 = Duplication
75                              # 1 = nop-X
76                              # 2 = Random
77                              # 3 = scrambled
78                              # 4 = nop-C
79SLIP_COPY_MODE 0              # How to handle 'on-copy' slip mutations:
80                              # 0 = actual read head slip
81                              # 1 = instant large mutation (obeys slip mode)
82PARENT_MUT_PROB 0.0           # Per-site, in parent, on divide
83SPECIAL_MUT_LINE -1           # If this is >= 0, ONLY this line is mutated
84META_COPY_MUT 0.0             # Prob. of copy mutation rate changing (per gen)
85META_STD_DEV 0.0              # Standard deviation of meta mutation size.
86MUT_RATE_SOURCE 1             # 1 = Mutation rates determined by environment.
87                              # 2 = Mutation rates inherited from parent.
88
89### REPRODUCTION_GROUP ###
90# Birth and Death config options
91DIVIDE_FAILURE_RESETS 0   # When Divide fails, organisms are interally reset
92BIRTH_METHOD 0            # Which organism should be replaced when a birth occurs?
93                          # 0 = Random organism in neighborhood
94                          # 1 = Oldest in neighborhood
95                          # 2 = Largest Age/Merit in neighborhood
96                          # 3 = None (use only empty cells in neighborhood)
97                          # 4 = Random from population (Mass Action)
98                          # 5 = Oldest in entire population
99                          # 6 = Random within deme
100                          # 7 = Organism faced by parent
101                          # 8 = Next grid cell (id+1)
102                          # 9 = Largest energy used in entire population
103                          # 10 = Largest energy used in neighborhood
104                          # 11 = Local neighborhood dispersal
105PREFER_EMPTY 1            # Overide BIRTH_METHOD to preferentially choose empty cells for offsping?
106ALLOW_PARENT 1            # Should parents be considered when deciding where to place offspring?
107DISPERSAL_RATE 0.0        # Rate of dispersal under birth method 11
108                          # (poisson distributed random connection list hops)
109DEATH_PROB 0.0            # Probability of death when dividing.
110DEATH_METHOD 2            # When should death by old age occur?
111                          # 0 = Never
112                          # 1 = When executed AGE_LIMIT (+deviation) total instructions
113                          # 2 = When executed genome_length * AGE_LIMIT (+dev) instructions
114AGE_LIMIT 20              # See DEATH_METHOD
115AGE_DEVIATION 0           # Creates a normal distribution around AGE_LIMIT for time of death
116ALLOC_METHOD 0            # When allocating blank tape, how should it be initialized?
117                          # 0 = Allocated space is set to default instruction.
118                          # 1 = Set to section of dead genome (creates potential for recombination)
119                          # 2 = Allocated space is set to random instruction.
120DIVIDE_METHOD 1           # 0 = Divide leaves state of mother untouched.
121                          # 1 = Divide resets state of mother(effectively creating 2 offspring)
122                          # 2 = Divide resets state of current thread only (use with parasites)
123EPIGENETIC_METHOD 0       # Inheritance of state information other than genome
124                          # 0 = none
125                          # 1 = offspring inherits registers and stacks of first thread
126                          # 1 = parent maintains registers and stacks of first thread
127                          #
128                          # 1 = offspring and parent keep state information
129GENERATION_INC_METHOD 1   # 0 = Only increase generation of offspring on divide.
130                          # 1 = Increase generation of both parent and offspring
131                          #    (suggested with DIVIDE_METHOD 1).
132RESET_INPUTS_ON_DIVIDE 0  # Reset environment inputs of parent upon successful divide.
133INHERIT_MERIT 1           # Should merit be inhereted from mother parent? (in asexual)
134INHERIT_MULTITHREAD 0     # Should offspring of parents with multiple threads be marked multithreaded?
135
136### DIVIDE_GROUP ###
137# Divide restrictions and triggers - settings describe conditions for a successful divide
138OFFSPRING_SIZE_RANGE 2.0     # Maximal differential between offspring and parent length.
139                             # (Checked BEFORE mutations applied on divide.)
140MIN_COPIED_LINES 0.5         # Code fraction that must be copied before divide
141MIN_EXE_LINES 0.5            # Code fraction that must be executed before divide
142MIN_GENOME_SIZE 0            # Minimum number of instructions allowed in a genome. 0 = OFF
143MAX_GENOME_SIZE 0            # Maximum number of instructions allowed in a genome. 0 = OFF
144REQUIRE_ALLOCATE 1           # (Original CPU Only) Require allocate before divide?
145REQUIRED_TASK -1             # Task ID required for successful divide
146IMMUNITY_TASK -1             # Task providing immunity from the required task
147REQUIRED_REACTION -1         # Reaction ID required for successful divide
148IMMUNITY_REACTION -1         # Reaction ID that provides immunity for successful divide
149REQUIRE_SINGLE_REACTION 0    # If set to 1, at least one reaction is required for a successful divide
150REQUIRED_BONUS 0.0           # Required bonus to divide
151REQUIRE_EXACT_COPY 0         # Require offspring to be an exact copy (checked before divide mutations)
152REQUIRED_RESOURCE -1         # ID of resource required in organism's internal bins for successful
153                             #   divide (resource not consumed)
154REQUIRED_RESOURCE_LEVEL 0.0  # Level of resource needed for REQUIRED_RESOURCE
155IMPLICIT_REPRO_BONUS 0       # Call Inst_Repro to divide upon achieving this bonus. 0 = OFF
156IMPLICIT_REPRO_CPU_CYCLES 0  # Call Inst_Repro after this many cpu cycles. 0 = OFF
157IMPLICIT_REPRO_TIME 0        # Call Inst_Repro after this time used. 0 = OFF
158IMPLICIT_REPRO_END 0         # Call Inst_Repro after executing the last instruction in the genome.
159IMPLICIT_REPRO_ENERGY 0.0    # Call Inst_Repro if organism accumulates this amount of energy.
160
161### RECOMBINATION_GROUP ###
162# Sexual Recombination and Modularity
163RECOMBINATION_PROB 1.0  # Probability of recombination in div-sex
164MAX_BIRTH_WAIT_TIME -1  # Updates incipiant orgs can wait for crossover (-1 = unlimited)
165MODULE_NUM 0            # Number of modules in the genome
166CONT_REC_REGS 1         # Are (modular) recombination regions continuous?
167CORESPOND_REC_REGS 1    # Are (modular) recombination regions swapped randomly
168                        #  or with corresponding positions?
169TWO_FOLD_COST_SEX 0     # 0 = Both offspring are born (no two-fold cost)
170                        # 1 = only one recombined offspring is born.
171SAME_LENGTH_SEX 0       # 0 = Recombine with any genome
172                        # 1 = Recombine only w/ same length
173ALLOW_MATE_SELECTION 0  # Allow organisms to select mates (requires instruction set support)
174
175### PARASITE_GROUP ###
176# Parasite config options
177INJECT_METHOD 0             # What should happen to a parasite when it gives birth?
178                            # 0 = Leave the parasite thread state untouched.
179                            # 1 = Resets the state of the calling thread (for SMT parasites, this must be 1)
180INJECT_PROB_FROM_TASKS 1    # Inject occurs based on probability from performing tasks - 11*numTasks
181INJECT_STERILIZES_HOST 0    # Infection causes host steralization
182INJECT_IS_VIRULENT 0        # Infection causes host steralization and takes all cpu cycles (setting this to 1 will override inject_virulence)
183PARASITE_SKIP_REACTIONS 1   # Parasite tasks do not get processed in the environment (1) or they do trigger reactions (0)
184INJECT_IS_TASK_SPECIFIC 0   # Parasites must match a task done by the host they are trying to infect
185INJECT_SKIP_FIRST_TASK 0    # They cannot match the first task the host is doing to infect
186INJECT_DEFAULT_SUCCESS 0.0  # If injection is task specific, with what probability should non-matching parasites infect the host
187PARASITE_VIRULENCE -1       # The probabalistic percentage of cpu cycles allocated to the parasite instead of the host. Ensure INJECT_IS_VIRULENT is set to 0. This only works for single infection at the moment
188PARASITE_MEM_SPACES 1       # Parasites get their own memory spaces
189PARASITE_NO_COPY_MUT 0      # Parasites do not get copy mutation rates
190
191### ARCHETECTURE_GROUP ###
192# Details on how CPU should work
193IO_EXPIRE 1  # Is the expiration functionality of '-expire' I/O instructions enabled?
194
195### MP_GROUP ###
196# Config options for multiple, distributed populations
197ENABLE_MP 0            # Enable multi-process Avida; 0=disabled (default),
198                       # 1=enabled.
199MP_SCHEDULING_STYLE 0  # Style of scheduling:
200                       # 0=non-MP aware (default)
201                       # 1=MP aware, integrated across worlds.
202
203### DEME_GROUP ###
204# Demes and Germlines
205NUM_DEMES 1                             # Number of independent groups in the population
206DEMES_COMPETITION_STYLE 0               # How should demes compete?
207                                        # 0=Fitness proportional selection
208                                        # 1=Tournament selection
209DEMES_TOURNAMENT_SIZE 0                 # Number of demes that participate in a tournament
210DEMES_OVERRIDE_FITNESS 0                # Should the calculated fitness is used?
211                                        # 0=yes (default)
212                                        # 1=no (all fitnesses=1)
213DEMES_USE_GERMLINE 0                    # Should demes use a distinct germline?
214DEMES_PREVENT_STERILE 0                 # Prevent sterile demes from replicating?
215DEMES_RESET_RESOURCES 0                 # Reset resources in demes on replication?
216                                        # 0 = reset both demes
217                                        # 1 = reset target deme
218                                        # 2 = deme resources remain unchanged
219DEMES_REPLICATE_SIZE 1                  # Number of identical organisms to create or copy from the
220                                        # source deme to the target deme
221LOG_DEMES_REPLICATE 0                   # Log deme replications?
222DEMES_REPLICATE_LOG_START 0             # Update at which to start logging deme replications
223DEMES_PROB_ORG_TRANSFER 0.0             # Probablity of an organism being transferred from the
224                                        # source deme to the target deme
225DEMES_ORGANISM_SELECTION 0              # How should organisms be selected for transfer from
226                                        # source to target during deme replication?
227                                        # 0 = random with replacement
228                                        # 1 = sequential
229DEMES_ORGANISM_PLACEMENT 0              # How should organisms be placed during deme replication.
230                                        # 0 = cell-array middle
231                                        # 1 = deme center
232                                        # 2 = random placement
233                                        # 3 = sequential
234DEMES_ORGANISM_FACING 0                 # Which direction should organisms face after deme replication.
235                                        # 0 = unchanged
236                                        # 1 = northwest.
237                                        # 2 = random.
238DEMES_MAX_AGE 500                       # The maximum age of a deme (in updates) to be
239                                        # used for age-based replication
240DEMES_MAX_BIRTHS 100                    # Max number of births that can occur within a deme;
241                                        # used with birth-count replication
242DEMES_MIM_EVENTS_KILLED_RATIO 0.7       # Minimum ratio of events killed required for event period to be a success.
243DEMES_MIM_SUCCESSFUL_EVENT_PERIODS 1    # Minimum number of consecutive event periods that must be a success.
244GERMLINE_COPY_MUT 0.0075                # Prob. of copy mutations during germline replication
245GERMLINE_INS_MUT 0.05                   # Prob. of insertion mutations during germline replication
246GERMLINE_DEL_MUT 0.05                   # Prob. of deletion mutations during germline replication
247DEMES_REPLICATE_CPU_CYCLES 0.0          # Replicate a deme immediately after it has used this many
248                                        # cpu cycles per org in deme (0 = OFF).
249DEMES_REPLICATE_TIME 0.0                # Number of CPU cycles used by a deme to trigger its replication
250                                        # (normalized by number of orgs in deme and organism merit; 0 = OFF).
251DEMES_REPLICATE_BIRTHS 0                # Number of offspring produced by a deme to trigger its replication (0 = OFF).
252DEMES_REPLICATE_ORGS 0                  # Number of organisms in a deme to trigger its replication (0 = OFF).
253DEMES_REPLICATION_ONLY_RESETS 0         # Kin selection mode.  On replication:
254                                        # 0 = Nothing extra
255                                        # 1 = reset deme resources
256                                        # 2 = reset resources and re-inject organisms
257DEMES_MIGRATION_RATE 0.0                # Probability of an offspring being born in a different deme.
258DEMES_MIGRATION_METHOD 0                # Which demes can an org land in when it migrates?
259                                        # 0 = Any other deme
260                                        # 1 = Eight neighboring demes
261                                        # 2 = Two adjacent demes in list
262                                        # 3 = Proportional based on the number of points
263DEMES_NUM_X 0                           # Simulated number of demes in X dimension. Used only for migration.
264DEMES_SEED_METHOD 0                     # Deme seeding method.
265                                        # 0 = Maintain old consistency
266                                        # 1 = New method using genotypes
267DEMES_DIVIDE_METHOD 0                   # Deme divide method. Only works with DEMES_SEED_METHOD 1
268                                        # 0 = Replace and target demes
269                                        # 1 = Replace target deme, reset source deme to founders
270                                        # 2 = Replace target deme, leave source deme unchanged
271DEMES_DEFAULT_GERMLINE_PROPENSITY 0.0   # Default germline propensity of organisms in deme.
272                                        # For use with DEMES_DIVIDE_METHOD 2.
273DEMES_FOUNDER_GERMLINE_PROPENSITY -1.0  # Default germline propensity of founder organisms in deme.
274                                        # For use with DEMES_DIVIDE_METHOD 2.
275                                        #  <0 = OFF
276DEMES_PREFER_EMPTY 0                    # Give empty demes preference as targets of deme replication?
277DEMES_PROTECTION_POINTS 0               # The number of points a deme receives for each suicide.
278MIGRATION_RATE 0.0                      # Uniform probability of offspring migrating to a new deme.
279DEMES_TRACK_SHANNON_INFO 0              # Enable shannon mutual information tracking for demes.
280
281### REVERSION_GROUP ###
282# Mutation Reversion
283# Most of these slow down avida a lot, and should be set to 0.0 normally.
284REVERT_FATAL 0.0           # Prob of lethal mutations being reverted on birth
285REVERT_DETRIMENTAL 0.0     # Prob of harmful (but non-lethal) mutations reverting on birth
286REVERT_NEUTRAL 0.0         # Prob of neutral mutations being reverted on birth
287REVERT_BENEFICIAL 0.0      # Prob of beneficial mutations being reverted on birth
288REVERT_TASKLOSS 0.0        # Prob of mutations that cause task loss (without any gains) being reverted
289STERILIZE_FATAL 0.0        # Prob of lethal mutations steralizing an offspring (typically no effect!)
290STERILIZE_DETRIMENTAL 0.0  # Prob of harmful (but non-lethal) mutations steralizing an offspring
291STERILIZE_NEUTRAL 0.0      # Prob of neutral mutations steralizing an offspring
292STERILIZE_BENEFICIAL 0.0   # Prob of beneficial mutations steralizing an offspring
293STERILIZE_TASKLOSS 0.0     # Prob of mutations causing task loss steralizing an offspring
294STERILIZE_UNSTABLE 0       # Should genotypes that cannot replicate perfectly not be allowed to replicate?
295NEUTRAL_MAX 0.0            # Percent benifical change from parent fitness to be considered neutral.
296NEUTRAL_MIN 0.0            # Percent deleterious change from parent fitness to be considered neutral.
297
298### TIME_GROUP ###
299# Time Slicing
300AVE_TIME_SLICE 30            # Average number of CPU-cycles per org per update
301SLICING_METHOD 1             # 0 = CONSTANT: all organisms receive equal number of CPU cycles
302                             # 1 = PROBABILISTIC: CPU cycles distributed randomly, proportional to merit.
303                             # 2 = INTEGRATED: CPU cycles given out deterministicly, proportional to merit
304                             # 3 = DEME_PROBABALISTIC: Demes receive fixed number of CPU cycles, awarded probabalistically to members
305                             # 4 = CROSS_DEME_PROBABALISTIC: Demes receive CPU cycles proportional to living population size, awarded probabalistically to members
306                             # 5 = CONSTANT BURST: all organisms receive equal number of CPU cycles, in SLICING_BURST_SIZE chunks
307SLICING_BURST_SIZE 1         # Sets the scheduler burst size for SLICING_METHOD 5.
308BASE_MERIT_METHOD 4          # How should merit be initialized?
309                             # 0 = Constant (merit independent of size)
310                             # 1 = Merit proportional to copied size
311                             # 2 = Merit prop. to executed size
312                             # 3 = Merit prop. to full size
313                             # 4 = Merit prop. to min of executed or copied size
314                             # 5 = Merit prop. to sqrt of the minimum size
315                             # 6 = Merit prop. to num times MERIT_BONUS_INST is in genome.
316BASE_CONST_MERIT 100         # Base merit valse for BASE_MERIT_METHOD 0
317MERIT_BONUS_INST 0           # Instruction ID to count for BASE_MERIT_METHOD 6
318MERIT_BONUS_EFFECT 0         # Amount of merit earn per instruction for BASE_MERIT_METHOD 6 (-1 = penalty, 0 = no effect)
319FITNESS_VALLEY 0             # in BASE_MERIT_METHOD 6, this creates valleys from
320                             # FITNESS_VALLEY_START to FITNESS_VALLEY_STOP
321                             # (0 = off, 1 = on)
322FITNESS_VALLEY_START 0       # if FITNESS_VALLEY = 1, orgs with num_key_instructions
323                             # from FITNESS_VALLEY_START to FITNESS_VALLEY_STOP
324                             # get fitness 1 (lowest)
325FITNESS_VALLEY_STOP 0        # if FITNESS_VALLEY = 1, orgs with num_key_instructions
326                             # from FITNESS_VALLEY_START to FITNESS_VALLEY_STOP
327                             # get fitness 1 (lowest)
328DEFAULT_BONUS 1.0            # Initial bonus before any tasks
329MERIT_DEFAULT_BONUS 0        # Instead of inheriting bonus from parent, use this value instead (0 = off)
330MERIT_INC_APPLY_IMMEDIATE 0  # Should merit increases (above current) be applied immediately, or delayed until divide?
331TASK_REFRACTORY_PERIOD 0.0   # Number of updates after taske until regain full value
332FITNESS_METHOD 0             # 0 = default, 1 = sigmoidal,
333FITNESS_COEFF_1 1.0          # 1st FITNESS_METHOD parameter
334FITNESS_COEFF_2 1.0          # 2nd FITNESS_METHOD parameter
335MAX_CPU_THREADS 1            # Maximum number of Threads a CPU can spawn
336THREAD_SLICING_METHOD 0      # Formula for allocating CPU cycles across threads in an organism
337                             #   (num_threads-1) * THREAD_SLICING_METHOD + 1
338                             # 0 = One thread executed per time slice.
339                             # 1 = All threads executed each time slice.
340NO_CPU_CYCLE_TIME 0          # Don't count each CPU cycle as part of gestation time
341MAX_LABEL_EXE_SIZE 1         # Max nops marked as executed when labels are used
342PRECALC_PHENOTYPE 0          # 0 = Disabled
343                             #  1 = Assign precalculated merit at birth (unlimited resources only)
344                             #  2 = Assign precalculated gestation time
345                             #  3 = Assign precalculated merit AND gestation time.
346                             #  4 = Assign last instruction counts
347                             #  5 = Assign last instruction counts and merit
348                             #  6 = Assign last instruction counts and gestation time
349                             #  7 = Assign everything currently supported
350                             # Fitness will be evaluated for organism based on these settings.
351FASTFORWARD_UPDATES 0        # Fast-forward if the average generation has not changed in this many updates. (0 = off)
352FASTFORWARD_NUM_ORGS 0       # Fast-forward if population is equal to this
353GENOTYPE_PHENPLAST_CALC 100  # Number of times to test a genotype's
354                             # plasticity during runtime.
355
356### ALTRUISM_GROUP ###
357# Altrusim
358MERIT_GIVEN 0.0             # Fraction of merit donated with 'donate' command
359MERIT_RECEIVED 0.0          # Multiplier of merit given with 'donate' command
360MAX_DONATE_KIN_DIST -1      # Limit on distance of relation for donate; -1=no max
361MAX_DONATE_EDIT_DIST -1     # Limit on genetic (edit) distance for donate; -1=no max
362MIN_GB_DONATE_THRESHOLD -1  # threshold green beard donates only to orgs above this
363                            # donation attempt threshold; -1=no thresh
364DONATE_THRESH_QUANTA 10     # The size of steps between quanta donate thresholds
365MAX_DONATES 1000000         # Limit on number of donates organisms are allowed.
366
367### GENEOLOGY_GROUP ###
368# Geneology
369THRESHOLD 3           # Number of organisms in a genotype needed for it
370                      #   to be considered viable.
371TEST_CPU_TIME_MOD 20  # Time allocated in test CPUs (multiple of length)
372
373### LOG_GROUP ###
374# Log Files
375LOG_GENOTYPES 0            # 0 = off, 1 = print ALL, 2 = print threshold ONLY.
376LOG_THRESHOLD 0            # 0/1 (off/on) toggle to print file.
377LOG_LINEAGES 0             # Track lineages over time?
378                           # WARNING: Can slow Avida a lot!
379LINEAGE_CREATION_METHOD 0  # Requires LOG_LINEAGES = 1
380                           # 0 = Manual creation (on inject)
381                           # 1 = when a child's (potential) fitness is higher than that of its parent.
382                           # 2 = when a child's (potential) fitness is higher than max in population.
383                           # 3 = when a child's (potential) fitness is higher than max in dom. lineage
384                           #   *and* the child is in the dominant lineage, or (2)
385                           # 4 = when a child's (potential) fitness is higher than max in dom. lineage
386                           #   (and that of its own lineage)
387                           # 5 = same as child's (potential) fitness is higher than that of the
388                           #   currently dominant organism, and also than that of any organism
389                           #       currently in the same lineage.
390                           # 6 = when a child's (potential) fitness is higher than any organism
391                           #   currently in the same lineage.
392                           # 7 = when a child's (potential) fitness is higher than that of any
393                           #   organism in its line of descent
394TRACE_EXECUTION 0          # Trace the execution of all organisms in the population (WARNING: SLOW!)
395
396### ORGANISM_NETWORK_GROUP ###
397# Organism Network Communication
398NET_ENABLED 0       # Enable Network Communication Support
399NET_DROP_PROB 0.0   # Message drop rate
400NET_MUT_PROB 0.0    # Message corruption probability
401NET_MUT_TYPE 0      # Type of message corruption.  0 = Random Single Bit, 1 = Always Flip Last
402NET_STYLE 0         # Communication Style.  0 = Random Next, 1 = Receiver Facing
403NET_LOG_MESSAGES 0  # Whether all messages are logged; 0=false (default), 1=true.
404
405### ORGANISM_MESSAGING_GROUP ###
406# Organism Message-Based Communication
407MESSAGE_SEND_BUFFER_SIZE 1      # Size of message send buffer (stores messages that were sent)
408                                # TASKS NOT CHECKED ON 0!
409                                # -1=inf, default=1.
410MESSAGE_RECV_BUFFER_SIZE 8      # Size of message receive buffer (stores messages that are received); -1=inf, default=8.
411MESSAGE_RECV_BUFFER_BEHAVIOR 0  # Behavior of message receive buffer; 0=drop oldest (default), 1=drop incoming
412ACTIVE_MESSAGES_ENABLED 0       # Enable active messages.
413                                # 0 = off
414                                # 2 = message creates parallel thread
415
416### BUY_SELL_GROUP ###
417# Buying and Selling Parameters
418SAVE_RECEIVED 0  # Enable storage of all inputs bought from other orgs
419BUY_PRICE 0      # price offered by organisms attempting to buy
420SELL_PRICE 0     # price offered by organisms attempting to sell
421
422### HOARD_RESOURCE_GROUP ###
423# Resource Hoarding Parameters
424USE_RESOURCE_BINS 1             # Enable resource bin use.  This serves as a guard on most resource hoarding code.
425ABSORB_RESOURCE_FRACTION .0025  # Fraction of available environmental resource an organism absorbs.
426MAX_TOTAL_STORED -1             # Maximum total amount of all resources an organism can store.
427                                #  <0 = no maximum
428USE_STORED_FRACTION 1.0         # The fraction of stored resource to use.
429ENV_FRACTION_THRESHOLD 1.0      # The fraction of available environmental resource to compare available stored resource to when deciding whether to use stored resource.
430RETURN_STORED_ON_DEATH 1        # Return an organism's stored resources to the world when it dies?
431SPLIT_ON_DIVIDE 1               # Split mother cell's resources between two daughter cells on division?
432COLLECT_SPECIFIC_RESOURCE 0     # Resource to be collected by the "collect-specific" instruction
433
434### ANALYZE_GROUP ###
435# Analysis Settings
436MAX_CONCURRENCY -1  # Maximum number of analyze threads, -1 == use all available.
437ANALYZE_OPTION_1    # String variable accessible from analysis scripts
438ANALYZE_OPTION_2    # String variable accessible from analysis scripts
439
440### ENERGY_GROUP ###
441# Energy Settings
442ENERGY_ENABLED 0                               # Enable Energy Model. 0/1 (off/on)
443ENERGY_GIVEN_ON_INJECT 0.0                     # Energy given to organism upon injection.
444ENERGY_GIVEN_AT_BIRTH 0.0                      # Energy given to offspring upon birth.
445FRAC_PARENT_ENERGY_GIVEN_TO_ORG_AT_BIRTH 0.5   # Fraction of parent's energy given to offspring organism.
446FRAC_PARENT_ENERGY_GIVEN_TO_DEME_AT_BIRTH 0.5  # Fraction of parent's energy given to offspring deme.
447FRAC_ENERGY_DECAY_AT_ORG_BIRTH 0.0             # Fraction of energy lost due to decay during organism reproduction.
448FRAC_ENERGY_DECAY_AT_DEME_BIRTH 0.0            # Fraction of energy lost due to decay during deme reproduction.
449NUM_CYCLES_EXC_BEFORE_0_ENERGY 0               # Number of virtual CPU cycles executed before energy is exhausted.
450ENERGY_CAP -1.0                                # Maximum amount of energy that can be stored in an organism.  -1 = no max
451APPLY_ENERGY_METHOD 0                          # When should rewarded energy be applied to current energy?
452                                               # 0 = on divide
453                                               # 1 = on completion of task
454                                               # 2 = on sleep
455FIX_METABOLIC_RATE -1.0                        # Fix organism metobolic rate to value.  This value is static.  Feature disabled by default (value == -1)
456FRAC_ENERGY_TRANSFER 0.0                       # Fraction of replaced organism's energy take by new resident
457LOG_SLEEP_TIMES 0                              # Log sleep start and end times. 0/1 (off/on)
458                                               # WARNING: may use lots of memory.
459FRAC_ENERGY_RELINQUISH 1.0                     # Fraction of organisms energy to relinquish
460ENERGY_PASSED_ON_DEME_REPLICATION_METHOD 0     # Who get energy passed from a parent deme
461                                               # 0 = Energy divided among organisms injected to offspring deme
462                                               # 1 = Energy divided among cells in offspring deme
463INHERIT_EXE_RATE 0                             # Inherit energy rate from parent? 0=no  1=yes
464ATTACK_DECAY_RATE 0.0                          # Percent of cell's energy decayed by attack
465ENERGY_THRESH_LOW .33                          # Threshold percent below which energy level is considered low.  Requires ENERGY_CAP.
466ENERGY_THRESH_HIGH .75                         # Threshold percent above which energy level is considered high.  Requires ENERGY_CAP.
467ENERGY_COMPARISON_EPSILON 0.0                  # Percent difference (relative to executing organism) required in energy level comparisons
468ENERGY_REQUEST_RADIUS 1                        # Radius of broadcast energy request messages.
469
470### ENERGY_SHARING_GROUP ###
471# Energy Sharing Settings
472ENERGY_SHARING_METHOD 0            # Method for sharing energy.  0=receiver must actively receive/request, 1=energy pushed on receiver
473ENERGY_SHARING_PCT 0.0             # Percent of energy to share
474ENERGY_SHARING_INCREMENT 0.01      # Amount to change percent energy shared
475RESOURCE_SHARING_LOSS 0.0          # Fraction of shared resource lost in transfer
476ENERGY_SHARING_UPDATE_METABOLIC 0  # 0/1 (off/on) - Whether to update an organism's metabolic rate on donate or reception/application of energy
477LOG_ENERGY_SHARING 0               # Whether or not to log energy shares.  0/1 (off/on)
478
479### SECOND_PASS_GROUP ###
480# Tracking metrics known after the running experiment previously
481TRACK_CCLADES 0                    # Enable tracking of coalescence clades
482TRACK_CCLADES_IDS coalescence.ids  # File storing coalescence IDs
483
484### GX_GROUP ###
485# Gene Expression CPU Settings
486MAX_PROGRAMIDS 16                # Maximum number of programids an organism can create.
487MAX_PROGRAMID_AGE 2000           # Max number of CPU cycles a programid executes before it is removed.
488IMPLICIT_GENE_EXPRESSION 0       # Create executable programids from the genome without explicit allocation and copying?
489IMPLICIT_BG_PROMOTER_RATE 0.0    # Relative rate of non-promoter sites creating programids.
490IMPLICIT_TURNOVER_RATE 0.0       # Number of programids recycled per CPU cycle. 0 = OFF
491IMPLICIT_MAX_PROGRAMID_LENGTH 0  # Creation of an executable programid terminates after this many instructions. 0 = disabled
492
493### PROMOTER_GROUP ###
494# Promoters
495PROMOTERS_ENABLED 0             # Use the promoter/terminator execution scheme.
496                                # Certain instructions must also be included.
497PROMOTER_INST_MAX 0             # Maximum number of instructions to execute before terminating. 0 = off
498PROMOTER_PROCESSIVITY 1.0       # Chance of not terminating after each cpu cycle.
499PROMOTER_PROCESSIVITY_INST 1.0  # Chance of not terminating after each instruction.
500PROMOTER_TO_REGISTER 0          # Place a promoter's base bit code in register BX when starting execution from it?
501TERMINATION_RESETS 0            # Does termination reset the thread's state?
502NO_ACTIVE_PROMOTER_EFFECT 0     # What happens when there are no active promoters?
503                                # 0 = Start execution at the beginning of the genome.
504                                # 1 = Kill the organism.
505                                # 2 = Stop the organism from executing any further instructions.
506PROMOTER_CODE_SIZE 24           # Size of a promoter code in bits. (Maximum value is 32)
507PROMOTER_EXE_LENGTH 3           # Length of promoter windows used to determine execution.
508PROMOTER_EXE_THRESHOLD 2        # Minimum number of bits that must be set in a promoter window to allow execution.
509INST_CODE_LENGTH 3              # Instruction binary code length (number of bits)
510INST_CODE_DEFAULT_TYPE 0        # Default value of instruction binary code value.
511                                # 0 = All zeros
512                                # 1 = Based off the instruction number
513CONSTITUTIVE_REGULATION 0       # Sense a new regulation value before each CPU cycle?
514
515### COLORS_GROUP ###
516# Output colors for when data files are printed in HTML mode.
517# There are two sets of these; the first are for lineages,
518# and the second are for mutation tests.
519COLOR_DIFF CCCCFF        # Color to flag stat that has changed since parent.
520COLOR_SAME FFFFFF        # Color to flag stat that has NOT changed since parent.
521COLOR_NEG2 FF0000        # Color to flag stat that is significantly worse than parent.
522COLOR_NEG1 FFCCCC        # Color to flag stat that is minorly worse than parent.
523COLOR_POS1 CCFFCC        # Color to flag stat that is minorly better than parent.
524COLOR_POS2 00FF00        # Color to flag stat that is significantly better than parent.
525COLOR_MUT_POS 00FF00     # Color to flag stat that has changed since parent.
526COLOR_MUT_NEUT FFFFFF    # Color to flag stat that has changed since parent.
527COLOR_MUT_NEG FFFF00     # Color to flag stat that has changed since parent.
528COLOR_MUT_LETHAL FF0000  # Color to flag stat that has changed since parent.
529
530### MOVEMENT_GROUP ###
531# Movement Features Settings
532MOVEMENT_COLLISIONS_LETHAL 0          # Are collisions during movement lethal?
533MOVEMENT_COLLISIONS_SELECTION_TYPE 0  # 0 = 50% chance
534                                      # 1 = binned vitality based
535VITALITY_BIN_EXTREMES 1.0             # vitality multiplier for extremes (> 1 stddev from the mean population age)
536VITALITY_BIN_CENTER 5.0               # vitality multiplier for center bin (with 1 stddev of the mean population age)
537
538### PHEROMONE_GROUP ###
539# Pheromone Settings
540PHEROMONE_ENABLED 0        # Enable pheromone usage. 0/1 (off/on)
541PHEROMONE_AMOUNT 1.0       # Amount of pheromone to add per drop
542PHEROMONE_DROP_MODE 0      # Where to drop pheromone
543                           # 0 = Half amount at src, half at dest
544                           # 1 = All at source
545                           # 2 = All at dest
546EXPLOIT_EXPLORE_PROB 0.00  # Probability of random exploration
547                           # instead of pheromone trail following
548LOG_PHEROMONE 0            # Log pheromone drops.  0/1 (off/on)
549PHEROMONE_LOG_START 0      # Update at which to start logging pheromone drops
550EXPLOIT_LOG_START 0        # Update at which to start logging exploit moves
551EXPLORE_LOG_START 0        # Update at which to start logging explore moves
552MOVETARGET_LOG_START 0     # Update at which to start logging movetarget moves
553LOG_INJECT 0               # Log injection of organisms.  0/1 (off/on)
554INJECT_LOG_START 0         # Update at which to start logging injection of
555                           # organisms
556
557### SYNCHRONIZATION_GROUP ###
558# Synchronization settings
559SYNC_FITNESS_WINDOW 100     # Number of updates over which to calculate fitness (default=100).
560SYNC_FLASH_LOSSRATE 0.0     # P() to lose a flash send (0.0==off).
561SYNC_TEST_FLASH_ARRIVAL -1  # CPU cycle at which an organism will receive a flash (off=-1, default=-1, analyze mode only.)
562
563### CONSENSUS_GROUP ###
564# Consensus settings
565CONSENSUS_HOLD_TIME 1  # Number of updates that consensus must be held for.
566
567### REPUTATION_GROUP ###
568# Reputation Settings
569RAW_MATERIAL_AMOUNT 100          # Number of raw materials an organism starts with
570AUTO_REPUTATION 0                # Is an organism's reputation automatically computed based on its donations
571                                 # 0=no
572                                 # 1=increment for each donation + standing
573                                 # 2=+1 for donations given -1 for donations received
574                                 # 3=1 for donors -1 for recivers who have not donated
575                                 # 4=+1 for donors
576                                 # 5=+1 for donors during task check
577ALT_BENEFIT 1.00                 # Number multiplied by the number of raw materials received from another organism to compute reward
578ALT_COST 1.00                    # Number multiplied by the number of your raw materials
579ROTATE_ON_DONATE 0               # Rotate an organism to face its donor 0/1 (off/on)
580REPUTATION_REWARD 0              # Reward an organism for having a good reputation
581DONATION_FAILURE_PERCENT 0       # Percentage of times that a donation fails
582RANDOMIZE_RAW_MATERIAL_AMOUNT 0  # Should all the organisms receive the same amount 0/1 (off/on)
583DONATION_RESTRICTIONS 0          # 0=none
584                                 # 1=inter-species only
585                                 # 2=different tag only
586INHERIT_REPUTATION 0             # 0=reputations are not inherited
587                                 # 1=reputations are inherited
588                                 # 2=tags are inherited
589SPECIALISTS 0                    # 0=generalists allowed
590                                 # 1=only specialists
591STRING_AMOUNT_CAP -1             # -1=no cap on string amounts
592                                 # #=CAP
593MATCH_ALREADY_PRODUCED 0         # 0=off
594                                 # 1=on
595
596### GROUP_FORMATION_GROUP ###
597# Group Formation Settings
598USE_FORM_GROUPS 0  # Enable organisms to form groups. 0=off,
599                   #  1=on no restrict,
600                   #  2=on restrict to defined
601DEFAULT_GROUP -1   # Default group to assign to organisms not asserting a group membership (-1 indicates disabled)
602
603### DEME_NETWORK_GROUP ###
604# Deme network settings
605DEME_NETWORK_TYPE 0                    # 0=topology, structure of network determines fitness.
606DEME_NETWORK_REQUIRES_CONNECTEDNESS 1  # Whether the deme's network must be connected before an actual fitness is calculated.
607DEME_NETWORK_TOPOLOGY_FITNESS 0        # Network measure used to determine fitness; see cDemeTopologyNetwork.h.
608DEME_NETWORK_LINK_DECAY 0              # Number of updates after which a link decays; 0=no decay (default).
609DEME_NETWORK_REMOVE_NODE_ON_DEATH 0    # Whether death of an organism in
610                                       # the deme removes its links;
611                                       # 0=no (default);
612                                       # 1=yes.
613
614### HGT_GROUP ###
615# Horizontal gene transfer settings
616ENABLE_HGT 0                    # Whether HGT is enabled; 0=false (default),
617                                # 1=true.
618HGT_SOURCE 0                    # Source of HGT fragments; 0=dead organisms (default),
619                                # 1=parent.
620HGT_FRAGMENT_SELECTION 0        # Method used to select fragments for HGT mutation; 0=random (default),
621                                # 1=trimmed selection
622                                # 2=random placement.
623HGT_FRAGMENT_SIZE_MEAN 10       # Mean size of fragments (default=10).
624HGT_FRAGMENT_SIZE_VARIANCE 2    # Variance of fragments (default=2).
625HGT_MAX_FRAGMENTS_PER_CELL 100  # Max. allowed number of fragments per cell (default=100).
626HGT_DIFFUSION_METHOD 0          # Method to use for diffusion of genome fragments; 0=none (default).
627HGT_COMPETENCE_P 0.0            # Probability that an HGT 'natural competence' mutation will occur on divide (default=0.0).
628HGT_INSERTION_MUT_P 0.0         # Probability that an HGT mutation will result in an insertion (default=0.0).
629HGT_CONJUGATION_METHOD 0        # Method used to select the receiver and/or donor of an HGT conjugation;
630                                # 0=random from neighborhood (default);
631                                # 1=faced.
632HGT_CONJUGATION_P 0.0           # Probability that an HGT conjugation mutation will occur on divide (default=0.0).
633HGT_FRAGMENT_XFORM 0            # Transformation to apply to each fragment prior to incorporation into offspring's genome; 0=none (default),
634                                # 1=random shuffle,
635                                # 2=replace with random instructions.
636
637### INST_RES_GROUP ###
638# Resource-Dependent Instructions Settings
639INST_RES            # Resource upon which the execution of certain instruction depends
640INST_RES_FLOOR 0.0  # Assumed lower level of resource in environment.  Used for probability dist.
641INST_RES_CEIL 0.0   # Assumed upper level of resource in environment.  Used for probability dist.
642
643### OPINION_GROUP ###
644# Organism opinion settings
645OPINION_BUFFER_SIZE 1  # Size of the opinion buffer (stores opinions set over the organism's lifetime); -1=inf, default=1, cannot be 0.
646
647### ALARM_GROUP ###
648# Alarm Settings
649BCAST_HOPS 1  # Number of hops to broadcast an alarm
650ALARM_SELF 0  # Does sending an alarm move sender IP to alarm label?
651              # 0=no
652              # 1=yes
653
654### DIVISION_OF_LABOR_GROUP ###
655# Division of Labor settings
656AGE_POLY_TRACKING 0         # Print data for an age-task histogram
657REACTION_THRESH 0           # The number of times the deme must perform each reaction in order to replicate
658TASK_SWITCH_PENALTY 0       # Cost of task switching in cycles
659TASK_SWITCH_PENALTY_TYPE 0  # Type of task switch cost: (0) none (1) learning, (2) retooling or context, (3) centrifuge
660RES_FOR_DEME_REP 0          # The amount of resources that must be consumed prior to automatic deme replication
661
662### DEPRECATED_GROUP ###
663# DEPRECATED (New functionality listed in comments)
664ANALYZE_MODE 0                 # 0 = Disabled
665                               # 1 = Enabled
666                               # 2 = Interactive
667                               # DEPRECATED: use command line options -a[nalyze] or -i[nteractive])
668REPRO_METHOD 1                 # Replace existing organism: 1=yes
669                               # DEPRECATED: Use BIRTH_METHOD 3 instead.
670LEGACY_GRID_LOCAL_SELECTION 0  # Enable legacy grid local mate selection.
671                               # DEPRECATED: Birth chameber now uses population structure)
672HARDWARE_TYPE 0                # 0 = Default, heads-based CPUs
673                               # 1 = New SMT CPUs
674                               # 2 = Transitional SMT
675                               # 3 = Experimental CPU
676                               # 4 = Gene Expression CPU
677INST_SET -                     # Instruction set file ('-' = use default for hardware type)
678INST_SET_LOAD_LEGACY 0         # Load legacy format instruction set file format
679START_ORGANISM -               # Organism to seed the population
680
681### DEVEL_GROUP ###
682# IN DEVELOPMENT (May not function correctly)
683WORLD_Z 1  # Depth of the Avida world
684