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.7.0   # Do not change this value.
7
8### GENERAL_GROUP ###
9# General Settings
10ANALYZE_MODE 1  # 0 = Disabled
11                # 1 = Enabled
12                # 2 = Interactive
13VIEW_MODE 1     # Initial viewer screen
14CLONE_FILE -    # Clone file to load
15VERBOSITY 1     # Control output verbosity
16
17### ARCH_GROUP ###
18# Architecture Variables
19WORLD_X 60        # Width of the Avida world
20WORLD_Y 60        # Height of the Avida world
21WORLD_GEOMETRY 2  # 1 = Bounded Grid
22                  # 2 = Torus
23NUM_DEMES 0       # Number of independed groups in the population; 0=off
24RANDOM_SEED 0     # Random number seed (0 for based on time)
25HARDWARE_TYPE 0   # 0 = Original CPUs
26                  # 1 = New SMT CPUs
27                  # 2 = Transitional SMT
28
29### CONFIG_FILE_GROUP ###
30# Configuration Files
31DATA_DIR data                       # Directory in which config files are found
32INST_SET instset-destroy.cfg        # File containing instruction set
33INST_SET_LOAD_LEGACY 1
34
35EVENT_FILE events-collect.cfg       # File containing list of events during run
36ANALYZE_FILE analyze-spec.cfg            # File used for analysis mode
37ENVIRONMENT_FILE environment.9resource    # File that describes the environment
38START_CREATURE default-classic.org  # Organism to seed the soup
39
40### REPRODUCTION_GROUP ###
41# Birth and Death
42BIRTH_METHOD 0           # Which organism should be replaced on birth?
43                         # 0 = Random organism in neighborhood
44                         # 1 = Oldest in neighborhood
45                         # 2 = Largest Age/Merit in neighborhood
46                         # 3 = None (use only empty cells in neighborhood)
47                         # 4 = Random from population (Mass Action)
48                         # 5 = Oldest in entire population
49                         # 6 = Random within deme
50                         # 7 = Organism faced by parent
51                         # 8 = Next grid cell (id+1)
52                         # 9 = Largest energy used in entire population
53                         # 10 = Largest energy used in neighborhood
54PREFER_EMPTY 1           # Give empty cells preference in offsping placement?
55ALLOW_PARENT 1           # Allow births to replace the parent organism?
56DEATH_METHOD 2           # 0 = Never die of old age.
57                         # 1 = Die when inst executed = AGE_LIMIT (+deviation)
58                         # 2 = Die when inst executed = length*AGE_LIMIT (+dev)
59AGE_LIMIT 20             # Modifies DEATH_METHOD
60AGE_DEVIATION 0          # Creates a distribution around AGE_LIMIT
61ALLOC_METHOD 0           # (Orignal CPU Only)
62                         # 0 = Allocated space is set to default instruction.
63                         # 1 = Set to section of dead genome (Necrophilia)
64                         # 2 = Allocated space is set to random instruction.
65DIVIDE_METHOD 1          # 0 = Divide leaves state of mother untouched.
66                         # 1 = Divide resets state of mother
67                         #     (after the divide, we have 2 children)
68                         # 2 = Divide resets state of current thread only
69                         #     (does not touch possible parasite threads)
70GENERATION_INC_METHOD 1  # 0 = Only the generation of the child is
71                         #     increased on divide.
72                         # 1 = Both the generation of the mother and child are
73                         #     increased on divide (good with DIVIDE_METHOD 1).
74
75### RECOMBINATION_GROUP ###
76# Sexual Recombination and Modularity
77RECOMBINATION_PROB 1.0  # probability of recombination in div-sex
78MAX_BIRTH_WAIT_TIME -1  # Updates incipiant orgs can wait for crossover
79MODULE_NUM 0            # number of modules in the genome
80CONT_REC_REGS 1         # are (modular) recombination regions continuous
81CORESPOND_REC_REGS 1    # are (modular) recombination regions swapped randomly
82                        #  or with corresponding positions?
83TWO_FOLD_COST_SEX 0     # 1 = only one recombined offspring is born.
84                        # 2 = both offspring are born
85SAME_LENGTH_SEX 0       # 0 = recombine with any genome
86                        # 1 = only recombine w/ same length
87
88### DIVIDE_GROUP ###
89# Divide Restrictions
90CHILD_SIZE_RANGE 2.0  # Maximal differential between child and parent sizes.
91MIN_COPIED_LINES 0.5  # Code fraction which must be copied before divide.
92MIN_EXE_LINES 0.5     # Code fraction which must be executed before divide.
93REQUIRE_ALLOCATE 1    # (Original CPU Only) Require allocate before divide?
94REQUIRED_TASK -1      # Task ID required for successful divide.
95IMMUNITY_TASK -1      # Task providing immunity from the required task.
96REQUIRED_REACTION -1  # Reaction ID required for successful divide.
97REQUIRED_BONUS 0      # The bonus that an organism must accumulate to divide.
98
99### MUTATION_GROUP ###
100# Mutations
101POINT_MUT_PROB 0.0    # Mutation rate (per-location per update)
102COPY_MUT_PROB 0.0025  # Mutation rate (per copy)
103INS_MUT_PROB 0.0      # Insertion rate (per site, applied on divide)
104DEL_MUT_PROB 0.0      # Deletion rate (per site, applied on divide)
105DIV_MUT_PROB 0.0      # Mutation rate (per site, applied on divide)
106DIVIDE_MUT_PROB 0.0   # Mutation rate (per divide)
107DIVIDE_INS_PROB 0.05  # Insertion rate (per divide)
108DIVIDE_DEL_PROB 0.05  # Deletion rate (per divide)
109PARENT_MUT_PROB 0.0   # Per-site, in parent, on divide
110SPECIAL_MUT_LINE -1   # If this is >= 0, ONLY this line is mutated
111INJECT_INS_PROB 0.0   # Insertion rate (per site, applied on inject)
112INJECT_DEL_PROB 0.0   # Deletion rate (per site, applied on inject)
113INJECT_MUT_PROB 0.0   # Mutation rate (per site, applied on inject)
114META_COPY_MUT 0.0     # Prob. of copy mutation rate changing (per gen)
115META_STD_DEV 0.0      # Standard deviation of meta mutation size.
116MUT_RATE_SOURCE 1     # 1 = Mutation rates determined by environment.
117                      # 2 = Mutation rates inherited from parent.
118
119### REVERSION_GROUP ###
120# Mutation Reversion
121# These slow down avida a lot, and should be set to 0.0 normally.
122REVERT_FATAL 0.0           # Should any mutations be reverted on birth?
123REVERT_DETRIMENTAL 0.0     #   0.0 to 1.0; Probability of reversion.
124REVERT_NEUTRAL 0.0         #
125REVERT_BENEFICIAL 0.0      #
126STERILIZE_FATAL 0.0        # Should any mutations clear (kill) the organism?
127STERILIZE_DETRIMENTAL 0.0  #
128STERILIZE_NEUTRAL 0.0      #
129STERILIZE_BENEFICIAL 0.0   #
130FAIL_IMPLICIT 1            # Should copies that failed *not* due to mutations
131                           # be eliminated?
132NEUTRAL_MAX 0.0            # The percent benifical change from parent fitness to be considered neutral.
133NEUTRAL_MIN 0.0            # The percent deleterious change from parent fitness to be considered neutral.
134
135### TIME_GROUP ###
136# Time Slicing
137AVE_TIME_SLICE 30        # Ave number of insts per org per update
138SLICING_METHOD 1         # 0 = CONSTANT: all organisms get default...
139                         # 1 = PROBABILISTIC: Run _prob_ proportional to merit.
140                         # 2 = INTEGRATED: Perfectly integrated deterministic.
141BASE_MERIT_METHOD 4      # 0 = Constant (merit independent of size)
142                         # 1 = Merit proportional to copied size
143                         # 2 = Merit prop. to executed size
144                         # 3 = Merit prop. to full size
145                         # 4 = Merit prop. to min of executed or copied size
146                         # 5 = Merit prop. to sqrt of the minimum size
147BASE_CONST_MERIT 100     # Base merit when BASE_MERIT_METHOD set to 0
148DEFAULT_BONUS 1.0        # Initial bonus before any tasks
149MERIT_DEFAULT_BONUS 0    # Scale the merit of an offspring by the default bonus
150                         # rather than the accumulated bonus of the parent?
151MAX_CPU_THREADS 1        # Number of Threads a CPU can spawn
152THREAD_SLICING_METHOD 0  # Formula for and organism's thread slicing
153                         #   (num_threads-1) * THREAD_SLICING_METHOD + 1
154                         # 0 = One thread executed per time slice.
155                         # 1 = All threads executed each time slice.
156MAX_LABEL_EXE_SIZE 1     # Max nops marked as executed when labels are used
157DONATE_SIZE 5.0          # Amount of merit donated with 'donate' command
158DONATE_MULT 10.0         # Multiple of merit given that the target receives.
159MAX_DONATE_KIN_DIST -1   # Limit on distance of relation for donate; -1=no max
160MAX_DONATE_EDIT_DIST -1  # Limit on edit distance for donate; -1=no max
161MAX_DONATES 1000000      # Limit on number of donates organisms are allowed.
162
163### PROMOTER_GROUP ###
164# Promoters
165PROMOTERS_ENABLED 0        # Use the promoter/terminator execution scheme.
166                           # Certain instructions must also be included.
167PROMOTER_PROCESSIVITY 1.0  # Chance of not terminating before executing each instruction.
168PROMOTER_BG_STRENGTH 0     # Probability of positions that are not promoter
169                           # instructions initiating execution (promoters are 1).
170REGULATION_STRENGTH 1      # Strength added or subtracted to a promoter by regulation.
171REGULATION_DECAY_FRAC 0.1  # Fraction of regulation that decays away.
172                           # (Max regulation = REGULATION_STRENGTH / REGULATION_DECAY_FRAC)
173
174### GENEOLOGY_GROUP ###
175# Geneology
176TRACK_MAIN_LINEAGE 1  # Keep all ancestors of the active population?
177                      # 0=no, 1=yes, 2=yes,w/sexual population
178THRESHOLD 3           # Number of organisms in a genotype needed for it
179                      #   to be considered viable.
180GENOTYPE_PRINT 0      # 0/1 (off/on) Print out all threshold genotypes?
181GENOTYPE_PRINT_DOM 0  # Print out a genotype if it stays dominant for
182                      #   this many updates. (0 = off)
183SPECIES_THRESHOLD 2   # max failure count for organisms to be same species
184SPECIES_RECORDING 0   # 1 = full, 2 = limited search (parent only)
185SPECIES_PRINT 0       # 0/1 (off/on) Print out all species?
186TEST_CPU_TIME_MOD 20  # Time allocated in test CPUs (multiple of length)
187
188### LOG_GROUP ###
189# Log Files
190LOG_CREATURES 0  # 0/1 (off/on) toggle to print file.
191LOG_GENOTYPES 0  # 0 = off, 1 = print ALL, 2 = print threshold ONLY.
192LOG_THRESHOLD 0  # 0/1 (off/on) toggle to print file.
193LOG_SPECIES 0    # 0/1 (off/on) toggle to print file.
194
195### LINEAGE_GROUP ###
196# Lineage
197# NOTE: This should probably be called "Clade"
198# This one can slow down avida a lot. It is used to get an idea of how
199# often an advantageous mutation arises, and where it goes afterwards.
200# Lineage creation options are.  Works only when LOG_LINEAGES is set to 1.
201#   0 = manual creation (on inject, use successive integers as lineage labels).
202#   1 = when a child's (potential) fitness is higher than that of its parent.
203#   2 = when a child's (potential) fitness is higher than max in population.
204#   3 = when a child's (potential) fitness is higher than max in dom. lineage
205# *and* the child is in the dominant lineage, or (2)
206#   4 = when a child's (potential) fitness is higher than max in dom. lineage
207# (and that of its own lineage)
208#   5 = same as child's (potential) fitness is higher than that of the
209#       currently dominant organism, and also than that of any organism
210#       currently in the same lineage.
211#   6 = when a child's (potential) fitness is higher than any organism
212#       currently in the same lineage.
213#   7 = when a child's (potential) fitness is higher than that of any
214#       organism in its line of descent
215LOG_LINEAGES 0             #
216LINEAGE_CREATION_METHOD 0  #
217
218### ORGANISM_NETWORK_GROUP ###
219# Organism Network Communication
220NET_ENABLED 0      # Enable Network Communication Support
221NET_DROP_PROB 0.0  # Message drop rate
222NET_MUT_PROB 0.0   # Message corruption probability
223NET_MUT_TYPE 0     # Type of message corruption.  0 = Random Single Bit, 1 = Always Flip Last
224NET_STYLE 0        # Communication Style.  0 = Random Next, 1 = Receiver Facing
225
226### BUY_SELL_GROUP ###
227# Buying and Selling Parameters
228SAVE_RECEIVED 0  # Enable storage of all inputs bought from other orgs
229BUY_PRICE 0      # price offered by organisms attempting to buy
230SELL_PRICE 0     # price offered by organisms attempting to sell
231
232### HOARD_RESOURCE_GROUP ###
233USE_RESOURCE_BINS 1
234ABSORB_RESOURCE_FRACTION .0025
235MULTI_ABSORB_TYPE 0
236USE_STORED_FRACTION 0.0
237RETURN_STORED_ON_DEATH 1
238
239### ANALYZE_GROUP ###
240# Analysis Settings
241MT_CONCURRENCY 1   # Number of concurrent analyze threads
242ANALYZE_OPTION_1   # String variable accessible from analysis scripts
243ANALYZE_OPTION_2   # String variable accessible from analysis scripts
244