[Avida-SVN] r3226 - in branches: . goings goings/source/cpu goings/source/main goings/support/config

goingssh at myxo.css.msu.edu goingssh at myxo.css.msu.edu
Mon May 4 15:38:45 PDT 2009


Author: goingssh
Date: 2009-05-04 18:38:44 -0400 (Mon, 04 May 2009)
New Revision: 3226

Added:
   branches/goings/
Modified:
   branches/goings/Avida.sln
   branches/goings/Avida.vcproj
   branches/goings/source/cpu/cHardwareBase.cc
   branches/goings/source/main/cAvidaConfig.h
   branches/goings/source/main/cOrganism.cc
   branches/goings/source/main/cOrganism.h
   branches/goings/source/main/cWorld.cc
   branches/goings/support/config/avida.cfg
Log:


Copied: branches/goings (from rev 3224, development)

Modified: branches/goings/Avida.sln
===================================================================
--- development/Avida.sln	2009-05-04 16:11:06 UTC (rev 3224)
+++ branches/goings/Avida.sln	2009-05-04 22:38:44 UTC (rev 3226)
@@ -1,6 +1,5 @@
-
-Microsoft Visual Studio Solution File, Format Version 9.00
-# Visual Studio 2005
+Microsoft Visual Studio Solution File, Format Version 10.00
+# Visual Studio 2008
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Avida", "Avida.vcproj", "{E1C1D683-833F-40D9-A952-CEC54FE40EFC}"
 EndProject
 Project("{54435603-DBB4-11D2-8724-00A0C9A8B90C}") = "Installer", "Installer\Installer.vdproj", "{9E776A2E-5D27-4900-9856-F5AF0C8FC84A}"

Modified: branches/goings/Avida.vcproj
===================================================================
--- development/Avida.vcproj	2009-05-04 16:11:06 UTC (rev 3224)
+++ branches/goings/Avida.vcproj	2009-05-04 22:38:44 UTC (rev 3226)
@@ -1,11 +1,12 @@
 <?xml version="1.0" encoding="Windows-1252"?>
 <VisualStudioProject
 	ProjectType="Visual C++"
-	Version="8.00"
+	Version="9.00"
 	Name="Avida"
 	ProjectGUID="{E1C1D683-833F-40D9-A952-CEC54FE40EFC}"
 	RootNamespace="Avida"
 	Keyword="Win32Proj"
+	TargetFrameworkVersion="131072"
 	>
 	<Platforms>
 		<Platform
@@ -65,6 +66,8 @@
 				IgnoreDefaultLibraryNames="LIBCMT"
 				GenerateDebugInformation="true"
 				SubSystem="1"
+				RandomizedBaseAddress="1"
+				DataExecutionPrevention="0"
 				TargetMachine="1"
 			/>
 			<Tool
@@ -86,9 +89,6 @@
 				Name="VCAppVerifierTool"
 			/>
 			<Tool
-				Name="VCWebDeploymentTool"
-			/>
-			<Tool
 				Name="VCPostBuildEventTool"
 			/>
 		</Configuration>
@@ -152,6 +152,8 @@
 				OptimizeReferences="2"
 				EnableCOMDATFolding="2"
 				LinkTimeCodeGeneration="1"
+				RandomizedBaseAddress="1"
+				DataExecutionPrevention="0"
 				TargetMachine="1"
 			/>
 			<Tool
@@ -173,9 +175,6 @@
 				Name="VCAppVerifierTool"
 			/>
 			<Tool
-				Name="VCWebDeploymentTool"
-			/>
-			<Tool
 				Name="VCPostBuildEventTool"
 			/>
 		</Configuration>
@@ -297,6 +296,62 @@
 				>
 			</File>
 			<File
+				RelativePath=".\source\main\cBirthDemeHandler.cc"
+				>
+			</File>
+			<File
+				RelativePath=".\source\main\cBirthDemeHandler.h"
+				>
+			</File>
+			<File
+				RelativePath=".\source\main\cBirthGenomeSizeHandler.cc"
+				>
+			</File>
+			<File
+				RelativePath=".\source\main\cBirthGenomeSizeHandler.h"
+				>
+			</File>
+			<File
+				RelativePath=".\source\main\cBirthGlobalHandler.cc"
+				>
+			</File>
+			<File
+				RelativePath=".\source\main\cBirthGlobalHandler.h"
+				>
+			</File>
+			<File
+				RelativePath=".\source\main\cBirthGridLocalHandler.cc"
+				>
+			</File>
+			<File
+				RelativePath=".\source\main\cBirthGridLocalHandler.h"
+				>
+			</File>
+			<File
+				RelativePath=".\source\main\cBirthMateSelectHandler.cc"
+				>
+			</File>
+			<File
+				RelativePath=".\source\main\cBirthMateSelectHandler.h"
+				>
+			</File>
+			<File
+				RelativePath=".\source\main\cBirthNeighborhoodHandler.cc"
+				>
+			</File>
+			<File
+				RelativePath=".\source\main\cBirthNeighborhoodHandler.h"
+				>
+			</File>
+			<File
+				RelativePath=".\source\main\cBirthSelectionHandler.cc"
+				>
+			</File>
+			<File
+				RelativePath=".\source\main\cBirthSelectionHandler.h"
+				>
+			</File>
+			<File
 				RelativePath=".\source\tools\cBlockStruct.h"
 				>
 			</File>

Modified: branches/goings/source/cpu/cHardwareBase.cc
===================================================================
--- development/source/cpu/cHardwareBase.cc	2009-05-04 16:11:06 UTC (rev 3224)
+++ branches/goings/source/cpu/cHardwareBase.cc	2009-05-04 22:38:44 UTC (rev 3226)
@@ -530,6 +530,7 @@
         if (ctx.GetRandom().P(m_organism->GetRevertPos())) revert = true;
         if (ctx.GetRandom().P(m_organism->GetSterilizePos())) sterilize = true;
       }
+	  if (ctx.GetRandom().P(m_organism->GetRevertTaskLoss())) revert = true;
       
       // Ideally, we won't have reversions and sterilizations turned on at the
       // same time, but if we do, give revert the priority.
@@ -601,7 +602,26 @@
     if (ctx.GetRandom().P(m_organism->GetRevertPos())) revert = true;
     if (ctx.GetRandom().P(m_organism->GetSterilizePos())) sterilize = true;
   }
+  // check if child has lost any tasks parent had AND not gained any new tasks
+  if (ctx.GetRandom().P(m_organism->GetRevertTaskLoss())) {
+	  const tArray<int>& childtasks = test_info.GetTestPhenotype().GetCurTaskCount();
+	  const tArray<int>& parenttasks = phenotype.GetCurTaskCount();
+	  bool del = false;
+	  bool added = false;
+	  for (int i=0; i<childtasks.GetSize(); i++)
+		  if (childtasks[i]>0 && parenttasks[i] == 0) {
+			  added = true;
+			  break;
+		  }
+		  else if (childtasks[i] == 0 && parenttasks[i] > 0)
+			  del = true;
+	  revert = (del && !added);
+  }
+ 
+
   
+  if (ctx.GetRandom().P(m_organism->GetRevertTaskLoss())) revert = true;
+  
   // Ideally, we won't have reversions and sterilizations turned on at the
   // same time, but if we do, give revert the priority.
   if (revert == true) {

Modified: branches/goings/source/main/cAvidaConfig.h
===================================================================
--- development/source/main/cAvidaConfig.h	2009-05-04 16:11:06 UTC (rev 3224)
+++ branches/goings/source/main/cAvidaConfig.h	2009-05-04 22:38:44 UTC (rev 3226)
@@ -419,6 +419,7 @@
   CONFIG_ADD_VAR(REVERT_DETRIMENTAL, double, 0.0, "  0.0 to 1.0; Probability of reversion.");
   CONFIG_ADD_VAR(REVERT_NEUTRAL, double, 0.0, "");
   CONFIG_ADD_VAR(REVERT_BENEFICIAL, double, 0.0, "");
+  CONFIG_ADD_VAR(REVERT_TASKLOSS, double, 0.0, "should org be reverted if loses task(s) without gaining other(s)?");
   CONFIG_ADD_VAR(STERILIZE_FATAL, double, 0.0, "Should any mutations clear (kill) the organism?");
   CONFIG_ADD_VAR(STERILIZE_DETRIMENTAL, double, 0.0, "");
   CONFIG_ADD_VAR(STERILIZE_NEUTRAL, double, 0.0, "");

Modified: branches/goings/source/main/cOrganism.cc
===================================================================
--- development/source/main/cOrganism.cc	2009-05-04 16:11:06 UTC (rev 3224)
+++ branches/goings/source/main/cOrganism.cc	2009-05-04 22:38:44 UTC (rev 3226)
@@ -640,6 +640,7 @@
 bool cOrganism::GetRevertNeg() const { return m_world->GetConfig().REVERT_DETRIMENTAL.Get(); }
 bool cOrganism::GetRevertNeut() const { return m_world->GetConfig().REVERT_NEUTRAL.Get(); }
 bool cOrganism::GetRevertPos() const { return m_world->GetConfig().REVERT_BENEFICIAL.Get(); }
+bool cOrganism::GetRevertTaskLoss() const { return m_world->GetConfig().REVERT_TASKLOSS.Get(); }
 
 bool cOrganism::GetSterilizeFatal() const { return m_world->GetConfig().STERILIZE_FATAL.Get(); }
 bool cOrganism::GetSterilizeNeg() const { return m_world->GetConfig().STERILIZE_DETRIMENTAL.Get(); }

Modified: branches/goings/source/main/cOrganism.h
===================================================================
--- development/source/main/cOrganism.h	2009-05-04 16:11:06 UTC (rev 3224)
+++ branches/goings/source/main/cOrganism.h	2009-05-04 22:38:44 UTC (rev 3226)
@@ -366,6 +366,7 @@
   bool GetRevertNeg() const;
   bool GetRevertNeut() const;
   bool GetRevertPos() const;
+  bool GetRevertTaskLoss() const;
 
   bool GetSterilizeFatal() const;
   bool GetSterilizeNeg() const;

Modified: branches/goings/source/main/cWorld.cc
===================================================================
--- development/source/main/cWorld.cc	2009-05-04 16:11:06 UTC (rev 3224)
+++ branches/goings/source/main/cWorld.cc	2009-05-04 22:38:44 UTC (rev 3226)
@@ -120,8 +120,9 @@
   const bool revert_neg = m_conf->REVERT_DETRIMENTAL.Get() > 0.0;
   const bool revert_neut = m_conf->REVERT_NEUTRAL.Get() > 0.0;
   const bool revert_pos = m_conf->REVERT_BENEFICIAL.Get() > 0.0;
+  const bool revert_taskloss = m_conf->REVERT_TASKLOSS.Get() > 0.0;
   const bool fail_implicit = m_conf->FAIL_IMPLICIT.Get() > 0;
-  m_test_on_div = (revert_fatal || revert_neg || revert_neut || revert_pos || fail_implicit);
+  m_test_on_div = (revert_fatal || revert_neg || revert_neut || revert_pos || revert_taskloss || fail_implicit);
   
   const bool sterilize_fatal = m_conf->STERILIZE_FATAL.Get() > 0.0;
   const bool sterilize_neg = m_conf->STERILIZE_DETRIMENTAL.Get() > 0.0;

Modified: branches/goings/support/config/avida.cfg
===================================================================
--- development/support/config/avida.cfg	2009-05-04 16:11:06 UTC (rev 3224)
+++ branches/goings/support/config/avida.cfg	2009-05-04 22:38:44 UTC (rev 3226)
@@ -1,526 +1,527 @@
-#############################################################################
-# This file includes all the basic run-time defines for Avida.
-# For more information, see doc/config.html
-#############################################################################
-
-VERSION_ID 2.9.0   # Do not change this value.
-
-### GENERAL_GROUP ###
-# General Settings
-ANALYZE_MODE 0  # 0 = Disabled
-                # 1 = Enabled
-                # 2 = Interactive
-VIEW_MODE 1     # Initial viewer screen
-CLONE_FILE -    # Clone file to load
-VERBOSITY 1     # 0 = No output at all
-                # 1 = Normal output
-                # 2 = Verbose output, detailing progress
-                # 3 = High level of details, as available
-                # 4 = Print Debug Information, as applicable
-
-### ARCH_GROUP ###
-# Architecture Variables
-WORLD_X 60         # Width of the Avida world
-WORLD_Y 60         # Height of the Avida world
-WORLD_Z 1          # Depth of the Avida world
-WORLD_GEOMETRY 2   # 1 = Bounded Grid
-                   # 2 = Torus
-                   # 3 = Clique
-                   # 4 = Hexagonal grid
-                   # 5 = Lattice
-RANDOM_SEED 0      # Random number seed (0 for based on time)
-HARDWARE_TYPE 0    # 0 = Original CPUs
-                   # 1 = New SMT CPUs
-                   # 2 = Transitional SMT
-                   # 3 = Experimental CPU
-                   # 4 = Gene Expression CPU
-SPECULATIVE 1      # Enable speculative execution
-TRACE_EXECUTION 0  # Trace the execution of all organisms in the population (default=off,SLOW!)
-BCAST_HOPS 1       # Number of hops to broadcast an alarm
-ALARM_SELF 0       # Does sending an alarm move sender IP to alarm label?
-                   # 0=no
-                   # 1=yes
-IO_EXPIRE 1        # Is the expiration functionality of '-expire' I/O instructions enabled?
-
-### CONFIG_FILE_GROUP ###
-# Configuration Files
-DATA_DIR data                       # Directory in which config files are found
-INST_SET -                          # File containing instruction set
-INST_SET_FORMAT 0                   # Instruction set file format.
-                                    # 0 = Default
-                                    # 1 = New Style
-EVENT_FILE events.cfg               # File containing list of events during run
-ANALYZE_FILE analyze.cfg            # File used for analysis mode
-ENVIRONMENT_FILE environment.cfg    # File that describes the environment
-START_CREATURE default-classic.org  # Organism to seed the soup
-
-### DEME_GROUP ###
-# Demes and Germlines
-NUM_DEMES 1                             # Number of independent groups in the
-                                        # population (default=1).
-DEMES_USE_GERMLINE 0                    # Whether demes use a distinct germline (default=0).
-DEMES_PREVENT_STERILE 0                 # Whether to prevent sterile demes from
-                                        # replicating (default=0 or no).
-DEMES_RESET_RESOURCES 0                 # Reset resources in demes on replication. 
-                                        # 0 = reset both demes 
-                                        # 1 = reset target deme 
-                                        # 2 = deme resources remain unchanged
-DEMES_REPLICATE_SIZE 1                  # Number of identical organisms to create or copy from the
-                                        # source deme to the target deme (default=1).
-LOG_DEMES_REPLICATE 0                   # Log deme replications.  0/1 (off/on)
-DEMES_REPLICATE_LOG_START 0             # Update at which to start logging deme replications
-DEMES_PROB_ORG_TRANSFER 0.0             # Probablity of an organism being transferred from the
-                                        # source deme to the target deme (default=0.0).
-DEMES_ORGANISM_SELECTION 0              # How organisms are selected for transfer from
-                                        # source to target during deme replication.
-                                        # 0=random with replacement (default).
-                                        # 1=sequential.
-DEMES_ORGANISM_PLACEMENT 0              # How organisms are placed during deme replication.
-                                        # 0=cell-array middle (default).
-                                        # 1=deme center.
-                                        # 2=random placement.
-                                        # 3=sequential.
-DEMES_ORGANISM_FACING 0                 # How organisms are facing during deme replication.
-                                        # 0=unchanged (default).
-                                        # 1=northwest.
-                                        # 2=random.
-DEMES_MAX_AGE 500                       # The maximum age of a deme (in updates) to be
-                                        # used for age-based replication (default=500).
-DEMES_MAX_BIRTHS 100                    # The maximum number of births that can occur
-                                        # within a deme; used with birth-count
-                                        # replication (default=100).
-DEMES_MIM_EVENTS_KILLED_RATIO 0.7       # Minimum ratio of events killed required for event period to be a success.
-DEMES_MIM_SUCCESSFUL_EVENT_PERIODS 1    # Minimum number of consecutive event periods that must be a success.
-GERMLINE_COPY_MUT 0.0075                # Prob. of copy mutations occuring during
-                                        # germline replication (default=0.0075).
-GERMLINE_INS_MUT 0.05                   # Prob. of an insertion mutation occuring
-                                        # during germline replication (default=0.05).
-GERMLINE_DEL_MUT 0.05                   # Prob. of a deletion mutation occuring
-                                        # during germline replication (default=0.05).
-DEMES_REPLICATE_CPU_CYCLES 0.0          # Replicate a deme immediately after it has used
-                                        # this number of cpu cycles, normalized
-                                        # by number of orgs in deme (0 = OFF).
-DEMES_REPLICATE_TIME 0.0                # Replicate a deme immediately after it has used
-                                        # this number of cpu cycles, normalized
-                                        # by number of orgs in deme and organism merit (0 = OFF).
-DEMES_REPLICATE_BIRTHS 0                # Replicate a deme immediately after it has 
-                                        # produced this many offspring (0 = OFF).
-DEMES_REPLICATE_ORGS 0                  # Replicate a deme immediately once it reaches a
-                                        # certain number of organisms (0 = OFF).
-DEMES_REPLICATION_ONLY_RESETS 0         # Kin selection mode. Deme replication really:
-                                        # 1=resets deme resources
-                                        # 2=rests deme resources and re-injects organisms
-DEMES_MIGRATION_RATE 0.0                # Probability of an offspring being born in a different deme.
-DEMES_MIGRATION_METHOD 0                # How do we choose what demes an org may land in when it migrates?
-                                        # 0=all other demes
-                                        # 1=eight adjacent neighbors
-                                        # 2=two adjacent demes in list
-DEMES_NUM_X 0                           # Simulated number of demes in X dimension. Only used for migration. 
-DEMES_SEED_METHOD 0                     # Deme seeding method.
-                                        # 0=maintain old consistency
-                                        # 1=new method using genotypes
-DEMES_DIVIDE_METHOD 0                   # Deme divide method. Only works with DEMES_SEED_METHOD 1
-                                        # 0=replace and target demes
-                                        # 1= replace target deme, reset source deme to founders
-                                        # 2=replace target deme, leave source deme unchanged
-DEMES_DEFAULT_GERMLINE_PROPENSITY 0.0   # Default germline propensity of organisms in deme.
-                                        # For use with DEMES_DIVIDE_METHOD 2.
-DEMES_FOUNDER_GERMLINE_PROPENSITY -1.0  # Default germline propensity of founder organisms in deme.
-                                        # For use with DEMES_DIVIDE_METHOD 2.
-                                        #  <0 = OFF
-DEMES_PREFER_EMPTY 0                    # Give empty demes preference as targets of deme replication?
-
-### REPRODUCTION_GROUP ###
-# Birth and Death
-BIRTH_METHOD 0            # Which organism should be replaced on birth?
-                          # 0 = Random organism in neighborhood
-                          # 1 = Oldest in neighborhood
-                          # 2 = Largest Age/Merit in neighborhood
-                          # 3 = None (use only empty cells in neighborhood)
-                          # 4 = Random from population (Mass Action)
-                          # 5 = Oldest in entire population
-                          # 6 = Random within deme
-                          # 7 = Organism faced by parent
-                          # 8 = Next grid cell (id+1)
-                          # 9 = Largest energy used in entire population
-                          # 10 = Largest energy used in neighborhood
-PREFER_EMPTY 1            # Give empty cells preference in offsping placement?
-ALLOW_PARENT 1            # Allow births to replace the parent organism?
-DEATH_METHOD 2            # 0 = Never die of old age.
-                          # 1 = Die when inst executed = AGE_LIMIT (+deviation)
-                          # 2 = Die when inst executed = length*AGE_LIMIT (+dev)
-AGE_LIMIT 20              # Modifies DEATH_METHOD
-AGE_DEVIATION 0           # Creates a distribution around AGE_LIMIT
-ALLOC_METHOD 0            # (Orignal CPU Only)
-                          # 0 = Allocated space is set to default instruction.
-                          # 1 = Set to section of dead genome (Necrophilia)
-                          # 2 = Allocated space is set to random instruction.
-DIVIDE_METHOD 1           # 0 = Divide leaves state of mother untouched.
-                          # 1 = Divide resets state of mother
-                          #     (after the divide, we have 2 children)
-                          # 2 = Divide resets state of current thread only
-                          #     (does not touch possible parasite threads)
-                          # 3 = Divide resets mother stats, but not state.
-                          # 4 = 3 + child inherits mother registers and stack values.
-EPIGENETIC_METHOD 0       # Inheritance of state information other than genome
-                          # 0 = none
-                          # 1 = offspring inherits registers and stacks of first thread
-                          # 1 = parent maintains registers and stacks of first thread
-                          # 
-                          # 1 = offspring and parent keep state information
-INJECT_METHOD 0           # 0 = Leaves the parasite thread state untouched.
-                          # 1 = Resets the calling thread state on inject
-GENERATION_INC_METHOD 1   # 0 = Only the generation of the child is
-                          #     increased on divide.
-                          # 1 = Both the generation of the mother and child are
-                          #     increased on divide (good with DIVIDE_METHOD 1).
-RESET_INPUTS_ON_DIVIDE 0  # Reset environment inputs of parent upon successful divide.
-REPRO_METHOD 1            # Replace existing organism: 1=yes
-
-### RECOMBINATION_GROUP ###
-# Sexual Recombination and Modularity
-RECOMBINATION_PROB 1.0  # probability of recombination in div-sex
-MAX_BIRTH_WAIT_TIME -1  # Updates incipiant orgs can wait for crossover
-MODULE_NUM 0            # number of modules in the genome
-CONT_REC_REGS 1         # are (modular) recombination regions continuous
-CORESPOND_REC_REGS 1    # are (modular) recombination regions swapped randomly
-                        #  or with corresponding positions?
-TWO_FOLD_COST_SEX 0     # 1 = only one recombined offspring is born.
-                        # 2 = both offspring are born
-SAME_LENGTH_SEX 0       # 0 = recombine with any genome
-                        # 1 = only recombine w/ same length
-
-### DIVIDE_GROUP ###
-# Divide Restrictions
-CHILD_SIZE_RANGE 2.0         # Maximal differential between child and parent sizes.
-MIN_COPIED_LINES 0.5         # Code fraction which must be copied before divide.
-MIN_EXE_LINES 0.5            # Code fraction which must be executed before divide.
-MIN_GENOME_SIZE 0            # Minimum number of instructions allowed in a genome. 0 = OFF
-MAX_GENOME_SIZE 0            # Maximum number of instructions allowed in a genome. 0 = OFF
-REQUIRE_ALLOCATE 1           # (Original CPU Only) Require allocate before divide?
-REQUIRED_TASK -1             # Task ID required for successful divide.
-IMMUNITY_TASK -1             # Task providing immunity from the required task.
-REQUIRED_REACTION -1         # Reaction ID required for successful divide.
-REQUIRED_BONUS 0.0           # Required bonus to divide.
-IMPLICIT_REPRO_BONUS 0       # Call Inst_Repro to divide upon achieving this bonus. 0 = OFF
-IMPLICIT_REPRO_CPU_CYCLES 0  # Call Inst_Repro after this many cpu cycles. 0 = OFF
-IMPLICIT_REPRO_TIME 0        # Call Inst_Repro after this time used. 0 = OFF
-IMPLICIT_REPRO_END 0         # Call Inst_Repro after executing the last instruction in the genome.
-IMPLICIT_REPRO_ENERGY 0.0    # Call Inst_Repro if organism accumulates this amount of energy.
-
-### MUTATION_GROUP ###
-# Mutations
-POINT_MUT_PROB 0.0       # Mutation rate (per-location per update)
-COPY_MUT_PROB 0.0075     # Mutation rate (per copy)
-COPY_INS_PROB 0.0        # Insertion rate (per copy)
-COPY_DEL_PROB 0.0        # Deletion rate (per copy)
-COPY_UNIFORM_PROB 0.0    # Uniform mutation probability (per copy)
-                         # - Randomly applies any of the three classes of mutations (ins, del, point).
-COPY_SLIP_PROB 0.0       # Slip rate (per copy)
-DIV_MUT_PROB 0.0         # Mutation rate (per site, applied on divide)
-DIV_INS_PROB 0.0         # Insertion rate (per site, applied on divide)
-DIV_DEL_PROB 0.0         # Deletion rate (per site, applied on divide)
-DIV_UNIFORM_PROB 0.0     # Uniform mutation probability (per site, applied on divide)
-                         # - Randomly applies any of the three classes of mutations (ins, del, point).
-DIV_SLIP_PROB 0.0        # Slip rate
-DIVIDE_MUT_PROB 0.0      # Mutation rate (per divide)
-DIVIDE_INS_PROB 0.05     # Insertion rate (per divide)
-DIVIDE_DEL_PROB 0.05     # Deletion rate (per divide)
-DIVIDE_UNIFORM_PROB 0.0  # Uniform mutation probability (per divide)
-                         # - Randomly applies any of the three classes of mutations (ins, del, point).
-DIVIDE_SLIP_PROB 0.0     # Slip rate (per divide) - creates large deletions/duplications
-INJECT_INS_PROB 0.0      # Insertion rate (per site, applied on inject)
-INJECT_DEL_PROB 0.0      # Deletion rate (per site, applied on inject)
-INJECT_MUT_PROB 0.0      # Mutation rate (per site, applied on inject)
-SLIP_FILL_MODE 0         # Fill insertions from slip mutations with 0=duplication, 1=nop-X, 2=random, 3=scrambled
-PARENT_MUT_PROB 0.0      # Per-site, in parent, on divide
-SPECIAL_MUT_LINE -1      # If this is >= 0, ONLY this line is mutated
-META_COPY_MUT 0.0        # Prob. of copy mutation rate changing (per gen)
-META_STD_DEV 0.0         # Standard deviation of meta mutation size.
-MUT_RATE_SOURCE 1        # 1 = Mutation rates determined by environment.
-                         # 2 = Mutation rates inherited from parent.
-MIGRATION_RATE 0.0       # Uniform probability of offspring migrating to a new deme.
-
-### REVERSION_GROUP ###
-# Mutation Reversion
-# These slow down avida a lot, and should be set to 0.0 normally.
-REVERT_FATAL 0.0           # Should any mutations be reverted on birth?
-REVERT_DETRIMENTAL 0.0     #   0.0 to 1.0; Probability of reversion.
-REVERT_NEUTRAL 0.0         # 
-REVERT_BENEFICIAL 0.0      # 
-STERILIZE_FATAL 0.0        # Should any mutations clear (kill) the organism?
-STERILIZE_DETRIMENTAL 0.0  # 
-STERILIZE_NEUTRAL 0.0      # 
-STERILIZE_BENEFICIAL 0.0   # 
-FAIL_IMPLICIT 0            # Should copies that failed *not* due to mutations
-                           # be eliminated?
-NEUTRAL_MAX 0.0            # The percent benifical change from parent fitness
-                           # to be considered neutral.
-NEUTRAL_MIN 0.0            # The percent deleterious change from parent fitness
-                           # to be considered neutral.
-
-### TIME_GROUP ###
-# Time Slicing
-AVE_TIME_SLICE 30           # Ave number of insts per org per update
-SLICING_METHOD 1            # 0 = CONSTANT: all organisms get default...
-                            # 1 = PROBABILISTIC: Run _prob_ proportional to merit.
-                            # 2 = INTEGRATED: Perfectly integrated deterministic.
-                            # 3 = DemeProbabalistic, each deme gets the same number of CPU cycles, which are awarded probabalistically within each deme.
-                            # 4 = ProbDemeProbabalistic, each deme gets CPU cycles proportional to its living population size, which are awarded probabalistically within each deme.
-                            # 5 = CONSTANT BURST: all organisms get default, in SLICING_BURST_SIZE chunks
-SLICING_BURST_SIZE 1        # Sets the scheduler burst size, when supported.
-BASE_MERIT_METHOD 4         # 0 = Constant (merit independent of size)
-                            # 1 = Merit proportional to copied size
-                            # 2 = Merit prop. to executed size
-                            # 3 = Merit prop. to full size
-                            # 4 = Merit prop. to min of executed or copied size
-                            # 5 = Merit prop. to sqrt of the minimum size
-                            # 6 = Merit prop. to num times MERIT_BONUS_INST is in genome.
-BASE_CONST_MERIT 100        # Base merit when BASE_MERIT_METHOD set to 0
-DEFAULT_BONUS 1.0           # Initial bonus before any tasks
-MERIT_DEFAULT_BONUS 0       # Scale the merit of an offspring by this default bonus
-                            # rather than the accumulated bonus of the parent? 0 = off
-MERIT_BONUS_INST 0          # in BASE_MERIT_METHOD 6, this sets which instruction counts
-                            # (-1 = none, 0 = First in INST_SET.)
-MERIT_BONUS_EFFECT 0        # in BASE_MERIT_METHOD 6, this sets how much merit is earned
-                            # per instruction (-1 = penalty, 0 = no effect.)
-FITNESS_METHOD 0            # 0 = default, >=1 = experimental
-FITNESS_COEFF_1 1.0         # 1st FITNESS_METHOD parameter
-FITNESS_COEFF_2 1.0         # 2nd FITNESS_METHOD parameter
-FITNESS_VALLEY 0            # in BASE_MERIT_METHOD 6, this creates valleys from
-                            # FITNESS_VALLEY_START to FITNESS_VALLEY_STOP
-                            # (0 = off, 1 = on)
-FITNESS_VALLEY_START 0      # if FITNESS_VALLEY = 1, orgs with num_key_instructions
-                            # from FITNESS_VALLEY_START to FITNESS_VALLEY_STOP
-                            # get fitness 1 (lowest)
-FITNESS_VALLEY_STOP 0       # if FITNESS_VALLEY = 1, orgs with num_key_instructions
-                            # from FITNESS_VALLEY_START to FITNESS_VALLEY_STOP
-                            # get fitness 1 (lowest)
-MAX_CPU_THREADS 1           # Number of Threads a CPU can spawn
-THREAD_SLICING_METHOD 0     # Formula for and organism's thread slicing
-                            #   (num_threads-1) * THREAD_SLICING_METHOD + 1
-                            # 0 = One thread executed per time slice.
-                            # 1 = All threads executed each time slice.
-NO_CPU_CYCLE_TIME 0         # Don't count each CPU cycle as part of gestation time
-MAX_LABEL_EXE_SIZE 1        # Max nops marked as executed when labels are used
-MERIT_GIVEN 0.0             # Fraction of merit donated with 'donate' command
-MERIT_RECEIVED 0.0          # Multiplier of merit given with 'donate' command
-MAX_DONATE_KIN_DIST -1      # Limit on distance of relation for donate; -1=no max
-MAX_DONATE_EDIT_DIST -1     # Limit on genetic (edit) distance for donate; -1=no max
-MIN_GB_DONATE_THRESHOLD -1  # threshold green beard donates only to orgs above this
-                            # donation attempt threshold; -1=no thresh
-DONATE_THRESH_QUANTA 10     # The size of steps between quanta donate thresholds
-MAX_DONATES 1000000         # Limit on number of donates organisms are allowed.
-PRECALC_PHENOTYPE 0         # 0 = Disabled
-                            #  1 = Assign precalculated merit at birth (unlimited resources only)
-                            #  2 = Assign precalculated gestation time
-                            #  3 = Assign precalculated merit AND gestation time.
-                            # Fitness will be evaluated for organism based on these settings.
-FASTFORWARD_UPDATES 0       # Fast-forward if the average generation has not changed in this many updates. (0 = off)
-FASTFORWARD_NUM_ORGS 0      # Fast-forward if population is equal to this
-
-### GENEOLOGY_GROUP ###
-# Geneology
-TRACK_MAIN_LINEAGE 1  # Keep all ancestors of the active population?
-                      # 0=no, 1=yes, 2=yes,w/sexual population
-THRESHOLD 3           # Number of organisms in a genotype needed for it
-                      #   to be considered viable.
-GENOTYPE_PRINT 0      # 0/1 (off/on) Print out all threshold genotypes?
-GENOTYPE_PRINT_DOM 0  # Print out a genotype if it stays dominant for
-                      #   this many updates. (0 = off)
-SPECIES_THRESHOLD 2   # max failure count for organisms to be same species
-SPECIES_RECORDING 0   # 1 = full, 2 = limited search (parent only)
-SPECIES_PRINT 0       # 0/1 (off/on) Print out all species?
-TEST_CPU_TIME_MOD 20  # Time allocated in test CPUs (multiple of length)
-
-### LOG_GROUP ###
-# Log Files
-LOG_CREATURES 0  # 0/1 (off/on) toggle to print file.
-LOG_GENOTYPES 0  # 0 = off, 1 = print ALL, 2 = print threshold ONLY.
-LOG_THRESHOLD 0  # 0/1 (off/on) toggle to print file.
-LOG_SPECIES 0    # 0/1 (off/on) toggle to print file.
-
-### LINEAGE_GROUP ###
-# Lineage
-# NOTE: This should probably be called "Clade"
-# This one can slow down avida a lot. It is used to get an idea of how
-# often an advantageous mutation arises, and where it goes afterwards.
-# Lineage creation options are.  Works only when LOG_LINEAGES is set to 1.
-#   0 = manual creation (on inject, use successive integers as lineage labels).
-#   1 = when a child's (potential) fitness is higher than that of its parent.
-#   2 = when a child's (potential) fitness is higher than max in population.
-#   3 = when a child's (potential) fitness is higher than max in dom. lineage
-# *and* the child is in the dominant lineage, or (2)
-#   4 = when a child's (potential) fitness is higher than max in dom. lineage
-# (and that of its own lineage)
-#   5 = same as child's (potential) fitness is higher than that of the
-#       currently dominant organism, and also than that of any organism
-#       currently in the same lineage.
-#   6 = when a child's (potential) fitness is higher than any organism
-#       currently in the same lineage.
-#   7 = when a child's (potential) fitness is higher than that of any
-#       organism in its line of descent
-LOG_LINEAGES 0             # 
-LINEAGE_CREATION_METHOD 0  # 
-
-### ORGANISM_NETWORK_GROUP ###
-# Organism Network Communication
-NET_ENABLED 0      # Enable Network Communication Support
-NET_DROP_PROB 0.0  # Message drop rate
-NET_MUT_PROB 0.0   # Message corruption probability
-NET_MUT_TYPE 0     # Type of message corruption.  0 = Random Single Bit, 1 = Always Flip Last
-NET_STYLE 0        # Communication Style.  0 = Random Next, 1 = Receiver Facing
-
-### ORGANISM_MESSAGING_GROUP ###
-# Organism Message-Based Communication
-MESSAGE_TYPE 0                      # Messaging Style. 0=Receiver Facing, 1=Broadcast
-MESSAGE_BCAST_RADIUS 1              # Broadcast message radius (cells)
-ORGANISMS_REMEMBER_MESSAGES 1       # Does an organism remember all messages it has sent or received? 0=false, 1=true (default)
-MESSAGE_QUEUE_SIZE -1               # Maximum number of unretrieved messages an organism can store (-1 for no limit is the default)
-MESSAGE_QUEUE_BEHAVIOR_WHEN_FULL 0  # 0 = Drop incoming message (default), 1 = Drop oldest unretrieved message
-
-### BUY_SELL_GROUP ###
-# Buying and Selling Parameters
-SAVE_RECEIVED 0  # Enable storage of all inputs bought from other orgs
-BUY_PRICE 0      # price offered by organisms attempting to buy
-SELL_PRICE 0     # price offered by organisms attempting to sell
-
-### HOARD_RESOURCE_GROUP ###
-# Resource Hoarding Parameters 
-USE_RESOURCE_BINS 0             # Enable resource bin use.  This serves as a guard on most resource hoarding code.
-ABSORB_RESOURCE_FRACTION .0025  # Fraction of available environmental resource an organism absorbs with the collect instruction.
-MULTI_ABSORB_TYPE 0             # What to do if collect is called on a range of resources.
-                                #  0 = absorb a random resource in the range
-                                #  1 = absorb the first resource in the range
-                                #  2 = absorb the last resource in the range
-                                #  3 = absorb ABSORB_RESOURCE_FRACTION / (# of resources in range) of each resource in the range
-MAX_TOTAL_STORED -1             # Maximum total amount of all resources an organism can store.
-                                #  <0 = no maximum
-USE_STORED_FRACTION 1.0         # The fraction of stored resource to use.
-ENV_FRACTION_THRESHOLD 1.0      # The fraction of available environmental resource to compare available stored resource to when deciding whether to use stored resource.
-RETURN_STORED_ON_DEATH 1        # Return an organism's stored resources to the world when it dies?
-
-### ANALYZE_GROUP ###
-# Analysis Settings
-MAX_CONCURRENCY -1  # Maximum number of analyze threads, -1 == use all available.
-ANALYZE_OPTION_1    # String variable accessible from analysis scripts
-ANALYZE_OPTION_2    # String variable accessible from analysis scripts
-
-### ENERGY_GROUP ###
-# Energy Settings
-ENERGY_ENABLED 0                               # Enable Energy Model. 0/1 (off/on)
-ENERGY_GIVEN_ON_INJECT 0.0                     # Energy given to organism upon injection.
-ENERGY_GIVEN_AT_BIRTH 0.0                      # Energy given to offspring upon birth.
-FRAC_PARENT_ENERGY_GIVEN_TO_ORG_AT_BIRTH 0.5   # Fraction of parent's energy given to offspring organism.
-FRAC_PARENT_ENERGY_GIVEN_TO_DEME_AT_BIRTH 0.5  # Fraction of parent's energy given to offspring deme.
-FRAC_ENERGY_DECAY_AT_ORG_BIRTH 0.0             # Fraction of energy lost due to decay during organism reproduction.
-FRAC_ENERGY_DECAY_AT_DEME_BIRTH 0.0            # Fraction of energy lost due to decay during deme reproduction.
-NUM_INST_EXC_BEFORE_0_ENERGY 0                 # Number of instructions executed before energy is exhausted.
-ENERGY_CAP -1.0                                # Maximum amount of energy that can be stored in an organism.  -1 means the cap is set to Max Double
-APPLY_ENERGY_METHOD 0                          # When should rewarded energy be applied to current energy?
-                                               # 0 = on divide
-                                               # 1 = on completion of task
-                                               # 2 = on sleep
-FRAC_ENERGY_TRANSFER 0.0                       # Fraction of replaced organism's energy take by new resident
-LOG_SLEEP_TIMES 0                              # Log sleep start and end times. 0/1 (off/on)
-                                               # WARNING: may use lots of memory.
-FRAC_ENERGY_RELINQUISH 1.0                     # Fraction of organisms energy to relinquish
-ENERGY_PASSED_ON_DEME_REPLICATION_METHOD 0     # Who get energy passed from a parent deme
-                                               # 0 = Energy divided among organisms injected to offspring deme
-                                               # 1 = Energy divided among cells in offspring deme
-INHERIT_EXE_RATE 0                             # Inherit energy rate from parent? 0=no  1=yes
-ATTACK_DECAY_RATE 0.0                          # Percent of cell's energy decayed by attack
-ENERGY_THRESH_LOW .33                          # Threshold percent below which energy level is considered low.  Requires ENERGY_CAP.
-ENERGY_THRESH_HIGH .75                         # Threshold percent above which energy level is considered high.  Requires ENERGY_CAP.
-
-### ENERGY_SHARING_GROUP ###
-# Energy Sharing Settings
-ENERGY_SHARING_METHOD 0        # Method for sharing energy.  0=receiver must actively receive/request, 1=energy pushed on receiver
-ENERGY_SHARING_PCT 0.0         # Percent of energy to share
-ENERGY_SHARING_INCREMENT 0.01  # Amount to change percent energy shared
-ENERGY_SHARING_LOSS 0.0        # Percent of shared energy lost in transfer
-
-### SECOND_PASS_GROUP ###
-# Tracking metrics known after the running experiment previously
-TRACK_CCLADES 0                    # Enable tracking of coalescence clades
-TRACK_CCLADES_IDS coalescence.ids  # File storing coalescence IDs
-
-### GX_GROUP ###
-# Gene Expression CPU Settings
-MAX_PROGRAMIDS 16                # Maximum number of programids an organism can create.
-MAX_PROGRAMID_AGE 2000           # Max number of CPU cycles a programid executes before it is removed.
-IMPLICIT_GENE_EXPRESSION 0       # Create executable programids from the genome without explicit allocation and copying?
-IMPLICIT_BG_PROMOTER_RATE 0.0    # Relative rate of non-promoter sites creating programids.
-IMPLICIT_TURNOVER_RATE 0.0       # Number of programids recycled per CPU cycle. 0 = OFF
-IMPLICIT_MAX_PROGRAMID_LENGTH 0  # Creation of an executable programid terminates after this many instructions. 0 = disabled
-
-### PROMOTER_GROUP ###
-# Promoters
-PROMOTERS_ENABLED 0             # Use the promoter/terminator execution scheme.
-                                # Certain instructions must also be included.
-PROMOTER_INST_MAX 0             # Maximum number of instructions to execute before terminating. 0 = off
-PROMOTER_PROCESSIVITY 1.0       # Chance of not terminating after each cpu cycle.
-PROMOTER_PROCESSIVITY_INST 1.0  # Chance of not terminating after each instruction.
-PROMOTER_TO_REGISTER 0          # Place a promoter's base bit code in register BX when starting execution from it?
-TERMINATION_RESETS 0            # Does termination reset the thread's state?
-NO_ACTIVE_PROMOTER_EFFECT 0     # What happens when there are no active promoters?
-                                # 0 = Start execution at the beginning of the genome.
-                                # 1 = Kill the organism.
-                                # 2 = Stop the organism from executing any further instructions.
-PROMOTER_CODE_SIZE 24           # Size of a promoter code in bits. (Maximum value is 32)
-PROMOTER_EXE_LENGTH 3           # Length of promoter windows used to determine execution.
-PROMOTER_EXE_THRESHOLD 2        # Minimum number of bits that must be set in a promoter window to allow execution.
-INST_CODE_LENGTH 3              # Instruction binary code length (number of bits)
-INST_CODE_DEFAULT_TYPE 0        # Default value of instruction binary code value.
-                                # 0 = All zeros
-                                # 1 = Based off the instruction number
-CONSTITUTIVE_REGULATION 0       # Sense a new regulation value before each CPU cycle?
-
-### COLORS_GROUP ###
-# Output colors for when data files are printed in HTML mode.
-# There are two sets of these; the first are for lineages,
-# and the second are for mutation tests.
-COLOR_DIFF CCCCFF        # Color to flag stat that has changed since parent.
-COLOR_SAME FFFFFF        # Color to flag stat that has NOT changed since parent.
-COLOR_NEG2 FF0000        # Color to flag stat that is significantly worse than parent.
-COLOR_NEG1 FFCCCC        # Color to flag stat that is minorly worse than parent.
-COLOR_POS1 CCFFCC        # Color to flag stat that is minorly better than parent.
-COLOR_POS2 00FF00        # Color to flag stat that is significantly better than parent.
-COLOR_MUT_POS 00FF00     # Color to flag stat that has changed since parent.
-COLOR_MUT_NEUT FFFFFF    # Color to flag stat that has changed since parent.
-COLOR_MUT_NEG FFFF00     # Color to flag stat that has changed since parent.
-COLOR_MUT_LETHAL FF0000  # Color to flag stat that has changed since parent.
-
-### BIOMIMETIC_GROUP ###
-# Biomimetic Features Settings
-BIOMIMETIC_REFRACTORY_PERIOD 0.0  # Number of updates affected by refractory period
-BIOMIMETIC_MOVEMENT_STEP 1        # Number of cells to move Avidian on move instruction
-BIOMIMETIC_MOVEMENT_LOG 0         # Log detailed movement information (WARNING: large data file)
-BIOMIMETIC_MOVEMENT_FACTOR 1.0    # Scale merit bonus due to movement (m<1.0 applies a cost)
-BIOMIMETIC_EVAL_ON_MOVEMENT 0     # Force task evaluation on each movement step
-BIOMIMETIC_K 0                    # Carrying capacity in number of organisms
-
-### PHEROMONE_GROUP ###
-# Pheromone Settings
-PHEROMONE_ENABLED 0        # Enable pheromone usage. 0/1 (off/on)
-PHEROMONE_AMOUNT 1.0       # Amount of pheromone to add per drop
-PHEROMONE_DROP_MODE 0      # Where to drop pheromone
-                           # 0 = Half amount at src, half at dest
-                           # 1 = All at source
-                           # 2 = All at dest
-EXPLOIT_EXPLORE_PROB 0.00  # Probability of random exploration
-                           # instead of pheromone trail following
-LOG_PHEROMONE 0            # Log pheromone drops.  0/1 (off/on)
-PHEROMONE_LOG_START 0      # Update at which to start logging pheromone drops
-EXPLOIT_LOG_START 0        # Update at which to start logging exploit moves
-EXPLORE_LOG_START 0        # Update at which to start logging explore moves
-MOVETARGET_LOG_START 0     # Update at which to start logging movetarget moves
-LOG_INJECT 0               # Log injection of organisms.  0/1 (off/on)
-INJECT_LOG_START 0         # Update at which to start logging injection of
-                           # organisms
-
-### SYNCHRONIZATION_GROUP ###
-# Synchronization settings
-SYNC_FITNESS_WINDOW 100     # Number of updates over which to calculate fitness (default=100).
-SYNC_FLASH_LOSSRATE 0.0     # P() to lose a flash send (0.0==off).
-SYNC_TEST_FLASH_ARRIVAL -1  # CPU cycle at which an organism will receive a flash (off=-1, default=-1, analyze mode only.)
+#############################################################################
+# This file includes all the basic run-time defines for Avida.
+# For more information, see doc/config.html
+#############################################################################
+
+VERSION_ID 2.9.0   # Do not change this value.
+
+### GENERAL_GROUP ###
+# General Settings
+ANALYZE_MODE 0  # 0 = Disabled
+                # 1 = Enabled
+                # 2 = Interactive
+VIEW_MODE 1     # Initial viewer screen
+CLONE_FILE -    # Clone file to load
+VERBOSITY 1     # 0 = No output at all
+                # 1 = Normal output
+                # 2 = Verbose output, detailing progress
+                # 3 = High level of details, as available
+                # 4 = Print Debug Information, as applicable
+
+### ARCH_GROUP ###
+# Architecture Variables
+WORLD_X 60         # Width of the Avida world
+WORLD_Y 60         # Height of the Avida world
+WORLD_Z 1          # Depth of the Avida world
+WORLD_GEOMETRY 2   # 1 = Bounded Grid
+                   # 2 = Torus
+                   # 3 = Clique
+                   # 4 = Hexagonal grid
+                   # 5 = Lattice
+RANDOM_SEED 0      # Random number seed (0 for based on time)
+HARDWARE_TYPE 0    # 0 = Original CPUs
+                   # 1 = New SMT CPUs
+                   # 2 = Transitional SMT
+                   # 3 = Experimental CPU
+                   # 4 = Gene Expression CPU
+SPECULATIVE 1      # Enable speculative execution
+TRACE_EXECUTION 0  # Trace the execution of all organisms in the population (default=off,SLOW!)
+BCAST_HOPS 1       # Number of hops to broadcast an alarm
+ALARM_SELF 0       # Does sending an alarm move sender IP to alarm label?
+                   # 0=no
+                   # 1=yes
+IO_EXPIRE 1        # Is the expiration functionality of '-expire' I/O instructions enabled?
+
+### CONFIG_FILE_GROUP ###
+# Configuration Files
+DATA_DIR data                       # Directory in which config files are found
+INST_SET -                          # File containing instruction set
+INST_SET_FORMAT 0                   # Instruction set file format.
+                                    # 0 = Default
+                                    # 1 = New Style
+EVENT_FILE events.cfg               # File containing list of events during run
+ANALYZE_FILE analyze.cfg            # File used for analysis mode
+ENVIRONMENT_FILE environment.cfg    # File that describes the environment
+START_CREATURE default-classic.org  # Organism to seed the soup
+
+### DEME_GROUP ###
+# Demes and Germlines
+NUM_DEMES 1                             # Number of independent groups in the
+                                        # population (default=1).
+DEMES_USE_GERMLINE 0                    # Whether demes use a distinct germline (default=0).
+DEMES_PREVENT_STERILE 0                 # Whether to prevent sterile demes from
+                                        # replicating (default=0 or no).
+DEMES_RESET_RESOURCES 0                 # Reset resources in demes on replication. 
+                                        # 0 = reset both demes 
+                                        # 1 = reset target deme 
+                                        # 2 = deme resources remain unchanged
+DEMES_REPLICATE_SIZE 1                  # Number of identical organisms to create or copy from the
+                                        # source deme to the target deme (default=1).
+LOG_DEMES_REPLICATE 0                   # Log deme replications.  0/1 (off/on)
+DEMES_REPLICATE_LOG_START 0             # Update at which to start logging deme replications
+DEMES_PROB_ORG_TRANSFER 0.0             # Probablity of an organism being transferred from the
+                                        # source deme to the target deme (default=0.0).
+DEMES_ORGANISM_SELECTION 0              # How organisms are selected for transfer from
+                                        # source to target during deme replication.
+                                        # 0=random with replacement (default).
+                                        # 1=sequential.
+DEMES_ORGANISM_PLACEMENT 0              # How organisms are placed during deme replication.
+                                        # 0=cell-array middle (default).
+                                        # 1=deme center.
+                                        # 2=random placement.
+                                        # 3=sequential.
+DEMES_ORGANISM_FACING 0                 # How organisms are facing during deme replication.
+                                        # 0=unchanged (default).
+                                        # 1=northwest.
+                                        # 2=random.
+DEMES_MAX_AGE 500                       # The maximum age of a deme (in updates) to be
+                                        # used for age-based replication (default=500).
+DEMES_MAX_BIRTHS 100                    # The maximum number of births that can occur
+                                        # within a deme; used with birth-count
+                                        # replication (default=100).
+DEMES_MIM_EVENTS_KILLED_RATIO 0.7       # Minimum ratio of events killed required for event period to be a success.
+DEMES_MIM_SUCCESSFUL_EVENT_PERIODS 1    # Minimum number of consecutive event periods that must be a success.
+GERMLINE_COPY_MUT 0.0075                # Prob. of copy mutations occuring during
+                                        # germline replication (default=0.0075).
+GERMLINE_INS_MUT 0.05                   # Prob. of an insertion mutation occuring
+                                        # during germline replication (default=0.05).
+GERMLINE_DEL_MUT 0.05                   # Prob. of a deletion mutation occuring
+                                        # during germline replication (default=0.05).
+DEMES_REPLICATE_CPU_CYCLES 0.0          # Replicate a deme immediately after it has used
+                                        # this number of cpu cycles, normalized
+                                        # by number of orgs in deme (0 = OFF).
+DEMES_REPLICATE_TIME 0.0                # Replicate a deme immediately after it has used
+                                        # this number of cpu cycles, normalized
+                                        # by number of orgs in deme and organism merit (0 = OFF).
+DEMES_REPLICATE_BIRTHS 0                # Replicate a deme immediately after it has 
+                                        # produced this many offspring (0 = OFF).
+DEMES_REPLICATE_ORGS 0                  # Replicate a deme immediately once it reaches a
+                                        # certain number of organisms (0 = OFF).
+DEMES_REPLICATION_ONLY_RESETS 0         # Kin selection mode. Deme replication really:
+                                        # 1=resets deme resources
+                                        # 2=rests deme resources and re-injects organisms
+DEMES_MIGRATION_RATE 0.0                # Probability of an offspring being born in a different deme.
+DEMES_MIGRATION_METHOD 0                # How do we choose what demes an org may land in when it migrates?
+                                        # 0=all other demes
+                                        # 1=eight adjacent neighbors
+                                        # 2=two adjacent demes in list
+DEMES_NUM_X 0                           # Simulated number of demes in X dimension. Only used for migration. 
+DEMES_SEED_METHOD 0                     # Deme seeding method.
+                                        # 0=maintain old consistency
+                                        # 1=new method using genotypes
+DEMES_DIVIDE_METHOD 0                   # Deme divide method. Only works with DEMES_SEED_METHOD 1
+                                        # 0=replace and target demes
+                                        # 1= replace target deme, reset source deme to founders
+                                        # 2=replace target deme, leave source deme unchanged
+DEMES_DEFAULT_GERMLINE_PROPENSITY 0.0   # Default germline propensity of organisms in deme.
+                                        # For use with DEMES_DIVIDE_METHOD 2.
+DEMES_FOUNDER_GERMLINE_PROPENSITY -1.0  # Default germline propensity of founder organisms in deme.
+                                        # For use with DEMES_DIVIDE_METHOD 2.
+                                        #  <0 = OFF
+DEMES_PREFER_EMPTY 0                    # Give empty demes preference as targets of deme replication?
+
+### REPRODUCTION_GROUP ###
+# Birth and Death
+BIRTH_METHOD 0            # Which organism should be replaced on birth?
+                          # 0 = Random organism in neighborhood
+                          # 1 = Oldest in neighborhood
+                          # 2 = Largest Age/Merit in neighborhood
+                          # 3 = None (use only empty cells in neighborhood)
+                          # 4 = Random from population (Mass Action)
+                          # 5 = Oldest in entire population
+                          # 6 = Random within deme
+                          # 7 = Organism faced by parent
+                          # 8 = Next grid cell (id+1)
+                          # 9 = Largest energy used in entire population
+                          # 10 = Largest energy used in neighborhood
+PREFER_EMPTY 1            # Give empty cells preference in offsping placement?
+ALLOW_PARENT 1            # Allow births to replace the parent organism?
+DEATH_METHOD 2            # 0 = Never die of old age.
+                          # 1 = Die when inst executed = AGE_LIMIT (+deviation)
+                          # 2 = Die when inst executed = length*AGE_LIMIT (+dev)
+AGE_LIMIT 20              # Modifies DEATH_METHOD
+AGE_DEVIATION 0           # Creates a distribution around AGE_LIMIT
+ALLOC_METHOD 0            # (Orignal CPU Only)
+                          # 0 = Allocated space is set to default instruction.
+                          # 1 = Set to section of dead genome (Necrophilia)
+                          # 2 = Allocated space is set to random instruction.
+DIVIDE_METHOD 1           # 0 = Divide leaves state of mother untouched.
+                          # 1 = Divide resets state of mother
+                          #     (after the divide, we have 2 children)
+                          # 2 = Divide resets state of current thread only
+                          #     (does not touch possible parasite threads)
+                          # 3 = Divide resets mother stats, but not state.
+                          # 4 = 3 + child inherits mother registers and stack values.
+EPIGENETIC_METHOD 0       # Inheritance of state information other than genome
+                          # 0 = none
+                          # 1 = offspring inherits registers and stacks of first thread
+                          # 1 = parent maintains registers and stacks of first thread
+                          # 
+                          # 1 = offspring and parent keep state information
+INJECT_METHOD 0           # 0 = Leaves the parasite thread state untouched.
+                          # 1 = Resets the calling thread state on inject
+GENERATION_INC_METHOD 1   # 0 = Only the generation of the child is
+                          #     increased on divide.
+                          # 1 = Both the generation of the mother and child are
+                          #     increased on divide (good with DIVIDE_METHOD 1).
+RESET_INPUTS_ON_DIVIDE 0  # Reset environment inputs of parent upon successful divide.
+REPRO_METHOD 1            # Replace existing organism: 1=yes
+
+### RECOMBINATION_GROUP ###
+# Sexual Recombination and Modularity
+RECOMBINATION_PROB 1.0  # probability of recombination in div-sex
+MAX_BIRTH_WAIT_TIME -1  # Updates incipiant orgs can wait for crossover
+MODULE_NUM 0            # number of modules in the genome
+CONT_REC_REGS 1         # are (modular) recombination regions continuous
+CORESPOND_REC_REGS 1    # are (modular) recombination regions swapped randomly
+                        #  or with corresponding positions?
+TWO_FOLD_COST_SEX 0     # 1 = only one recombined offspring is born.
+                        # 2 = both offspring are born
+SAME_LENGTH_SEX 0       # 0 = recombine with any genome
+                        # 1 = only recombine w/ same length
+
+### DIVIDE_GROUP ###
+# Divide Restrictions
+CHILD_SIZE_RANGE 2.0         # Maximal differential between child and parent sizes.
+MIN_COPIED_LINES 0.5         # Code fraction which must be copied before divide.
+MIN_EXE_LINES 0.5            # Code fraction which must be executed before divide.
+MIN_GENOME_SIZE 0            # Minimum number of instructions allowed in a genome. 0 = OFF
+MAX_GENOME_SIZE 0            # Maximum number of instructions allowed in a genome. 0 = OFF
+REQUIRE_ALLOCATE 1           # (Original CPU Only) Require allocate before divide?
+REQUIRED_TASK -1             # Task ID required for successful divide.
+IMMUNITY_TASK -1             # Task providing immunity from the required task.
+REQUIRED_REACTION -1         # Reaction ID required for successful divide.
+REQUIRED_BONUS 0.0           # Required bonus to divide.
+IMPLICIT_REPRO_BONUS 0       # Call Inst_Repro to divide upon achieving this bonus. 0 = OFF
+IMPLICIT_REPRO_CPU_CYCLES 0  # Call Inst_Repro after this many cpu cycles. 0 = OFF
+IMPLICIT_REPRO_TIME 0        # Call Inst_Repro after this time used. 0 = OFF
+IMPLICIT_REPRO_END 0         # Call Inst_Repro after executing the last instruction in the genome.
+IMPLICIT_REPRO_ENERGY 0.0    # Call Inst_Repro if organism accumulates this amount of energy.
+
+### MUTATION_GROUP ###
+# Mutations
+POINT_MUT_PROB 0.0       # Mutation rate (per-location per update)
+COPY_MUT_PROB 0.0075     # Mutation rate (per copy)
+COPY_INS_PROB 0.0        # Insertion rate (per copy)
+COPY_DEL_PROB 0.0        # Deletion rate (per copy)
+COPY_UNIFORM_PROB 0.0    # Uniform mutation probability (per copy)
+                         # - Randomly applies any of the three classes of mutations (ins, del, point).
+COPY_SLIP_PROB 0.0       # Slip rate (per copy)
+DIV_MUT_PROB 0.0         # Mutation rate (per site, applied on divide)
+DIV_INS_PROB 0.0         # Insertion rate (per site, applied on divide)
+DIV_DEL_PROB 0.0         # Deletion rate (per site, applied on divide)
+DIV_UNIFORM_PROB 0.0     # Uniform mutation probability (per site, applied on divide)
+                         # - Randomly applies any of the three classes of mutations (ins, del, point).
+DIV_SLIP_PROB 0.0        # Slip rate
+DIVIDE_MUT_PROB 0.0      # Mutation rate (per divide)
+DIVIDE_INS_PROB 0.05     # Insertion rate (per divide)
+DIVIDE_DEL_PROB 0.05     # Deletion rate (per divide)
+DIVIDE_UNIFORM_PROB 0.0  # Uniform mutation probability (per divide)
+                         # - Randomly applies any of the three classes of mutations (ins, del, point).
+DIVIDE_SLIP_PROB 0.0     # Slip rate (per divide) - creates large deletions/duplications
+INJECT_INS_PROB 0.0      # Insertion rate (per site, applied on inject)
+INJECT_DEL_PROB 0.0      # Deletion rate (per site, applied on inject)
+INJECT_MUT_PROB 0.0      # Mutation rate (per site, applied on inject)
+SLIP_FILL_MODE 0         # Fill insertions from slip mutations with 0=duplication, 1=nop-X, 2=random, 3=scrambled
+PARENT_MUT_PROB 0.0      # Per-site, in parent, on divide
+SPECIAL_MUT_LINE -1      # If this is >= 0, ONLY this line is mutated
+META_COPY_MUT 0.0        # Prob. of copy mutation rate changing (per gen)
+META_STD_DEV 0.0         # Standard deviation of meta mutation size.
+MUT_RATE_SOURCE 1        # 1 = Mutation rates determined by environment.
+                         # 2 = Mutation rates inherited from parent.
+MIGRATION_RATE 0.0       # Uniform probability of offspring migrating to a new deme.
+
+### REVERSION_GROUP ###
+# Mutation Reversion
+# These slow down avida a lot, and should be set to 0.0 normally.
+REVERT_FATAL 0.0           # Should any mutations be reverted on birth?
+REVERT_DETRIMENTAL 0.0     #   0.0 to 1.0; Probability of reversion.
+REVERT_NEUTRAL 0.0         # 
+REVERT_BENEFICIAL 0.0      # 
+REVERT_TASKLOSS 1.0
+STERILIZE_FATAL 0.0        # Should any mutations clear (kill) the organism?
+STERILIZE_DETRIMENTAL 0.0  # 
+STERILIZE_NEUTRAL 0.0      # 
+STERILIZE_BENEFICIAL 0.0   # 
+FAIL_IMPLICIT 0            # Should copies that failed *not* due to mutations
+                           # be eliminated?
+NEUTRAL_MAX 0.0            # The percent benifical change from parent fitness
+                           # to be considered neutral.
+NEUTRAL_MIN 0.0            # The percent deleterious change from parent fitness
+                           # to be considered neutral.
+
+### TIME_GROUP ###
+# Time Slicing
+AVE_TIME_SLICE 30           # Ave number of insts per org per update
+SLICING_METHOD 1            # 0 = CONSTANT: all organisms get default...
+                            # 1 = PROBABILISTIC: Run _prob_ proportional to merit.
+                            # 2 = INTEGRATED: Perfectly integrated deterministic.
+                            # 3 = DemeProbabalistic, each deme gets the same number of CPU cycles, which are awarded probabalistically within each deme.
+                            # 4 = ProbDemeProbabalistic, each deme gets CPU cycles proportional to its living population size, which are awarded probabalistically within each deme.
+                            # 5 = CONSTANT BURST: all organisms get default, in SLICING_BURST_SIZE chunks
+SLICING_BURST_SIZE 1        # Sets the scheduler burst size, when supported.
+BASE_MERIT_METHOD 4         # 0 = Constant (merit independent of size)
+                            # 1 = Merit proportional to copied size
+                            # 2 = Merit prop. to executed size
+                            # 3 = Merit prop. to full size
+                            # 4 = Merit prop. to min of executed or copied size
+                            # 5 = Merit prop. to sqrt of the minimum size
+                            # 6 = Merit prop. to num times MERIT_BONUS_INST is in genome.
+BASE_CONST_MERIT 100        # Base merit when BASE_MERIT_METHOD set to 0
+DEFAULT_BONUS 1.0           # Initial bonus before any tasks
+MERIT_DEFAULT_BONUS 0       # Scale the merit of an offspring by this default bonus
+                            # rather than the accumulated bonus of the parent? 0 = off
+MERIT_BONUS_INST 0          # in BASE_MERIT_METHOD 6, this sets which instruction counts
+                            # (-1 = none, 0 = First in INST_SET.)
+MERIT_BONUS_EFFECT 0        # in BASE_MERIT_METHOD 6, this sets how much merit is earned
+                            # per instruction (-1 = penalty, 0 = no effect.)
+FITNESS_METHOD 0            # 0 = default, >=1 = experimental
+FITNESS_COEFF_1 1.0         # 1st FITNESS_METHOD parameter
+FITNESS_COEFF_2 1.0         # 2nd FITNESS_METHOD parameter
+FITNESS_VALLEY 0            # in BASE_MERIT_METHOD 6, this creates valleys from
+                            # FITNESS_VALLEY_START to FITNESS_VALLEY_STOP
+                            # (0 = off, 1 = on)
+FITNESS_VALLEY_START 0      # if FITNESS_VALLEY = 1, orgs with num_key_instructions
+                            # from FITNESS_VALLEY_START to FITNESS_VALLEY_STOP
+                            # get fitness 1 (lowest)
+FITNESS_VALLEY_STOP 0       # if FITNESS_VALLEY = 1, orgs with num_key_instructions
+                            # from FITNESS_VALLEY_START to FITNESS_VALLEY_STOP
+                            # get fitness 1 (lowest)
+MAX_CPU_THREADS 1           # Number of Threads a CPU can spawn
+THREAD_SLICING_METHOD 0     # Formula for and organism's thread slicing
+                            #   (num_threads-1) * THREAD_SLICING_METHOD + 1
+                            # 0 = One thread executed per time slice.
+                            # 1 = All threads executed each time slice.
+NO_CPU_CYCLE_TIME 0         # Don't count each CPU cycle as part of gestation time
+MAX_LABEL_EXE_SIZE 1        # Max nops marked as executed when labels are used
+MERIT_GIVEN 0.0             # Fraction of merit donated with 'donate' command
+MERIT_RECEIVED 0.0          # Multiplier of merit given with 'donate' command
+MAX_DONATE_KIN_DIST -1      # Limit on distance of relation for donate; -1=no max
+MAX_DONATE_EDIT_DIST -1     # Limit on genetic (edit) distance for donate; -1=no max
+MIN_GB_DONATE_THRESHOLD -1  # threshold green beard donates only to orgs above this
+                            # donation attempt threshold; -1=no thresh
+DONATE_THRESH_QUANTA 10     # The size of steps between quanta donate thresholds
+MAX_DONATES 1000000         # Limit on number of donates organisms are allowed.
+PRECALC_PHENOTYPE 0         # 0 = Disabled
+                            #  1 = Assign precalculated merit at birth (unlimited resources only)
+                            #  2 = Assign precalculated gestation time
+                            #  3 = Assign precalculated merit AND gestation time.
+                            # Fitness will be evaluated for organism based on these settings.
+FASTFORWARD_UPDATES 0       # Fast-forward if the average generation has not changed in this many updates. (0 = off)
+FASTFORWARD_NUM_ORGS 0      # Fast-forward if population is equal to this
+
+### GENEOLOGY_GROUP ###
+# Geneology
+TRACK_MAIN_LINEAGE 1  # Keep all ancestors of the active population?
+                      # 0=no, 1=yes, 2=yes,w/sexual population
+THRESHOLD 3           # Number of organisms in a genotype needed for it
+                      #   to be considered viable.
+GENOTYPE_PRINT 0      # 0/1 (off/on) Print out all threshold genotypes?
+GENOTYPE_PRINT_DOM 0  # Print out a genotype if it stays dominant for
+                      #   this many updates. (0 = off)
+SPECIES_THRESHOLD 2   # max failure count for organisms to be same species
+SPECIES_RECORDING 0   # 1 = full, 2 = limited search (parent only)
+SPECIES_PRINT 0       # 0/1 (off/on) Print out all species?
+TEST_CPU_TIME_MOD 20  # Time allocated in test CPUs (multiple of length)
+
+### LOG_GROUP ###
+# Log Files
+LOG_CREATURES 0  # 0/1 (off/on) toggle to print file.
+LOG_GENOTYPES 0  # 0 = off, 1 = print ALL, 2 = print threshold ONLY.
+LOG_THRESHOLD 0  # 0/1 (off/on) toggle to print file.
+LOG_SPECIES 0    # 0/1 (off/on) toggle to print file.
+
+### LINEAGE_GROUP ###
+# Lineage
+# NOTE: This should probably be called "Clade"
+# This one can slow down avida a lot. It is used to get an idea of how
+# often an advantageous mutation arises, and where it goes afterwards.
+# Lineage creation options are.  Works only when LOG_LINEAGES is set to 1.
+#   0 = manual creation (on inject, use successive integers as lineage labels).
+#   1 = when a child's (potential) fitness is higher than that of its parent.
+#   2 = when a child's (potential) fitness is higher than max in population.
+#   3 = when a child's (potential) fitness is higher than max in dom. lineage
+# *and* the child is in the dominant lineage, or (2)
+#   4 = when a child's (potential) fitness is higher than max in dom. lineage
+# (and that of its own lineage)
+#   5 = same as child's (potential) fitness is higher than that of the
+#       currently dominant organism, and also than that of any organism
+#       currently in the same lineage.
+#   6 = when a child's (potential) fitness is higher than any organism
+#       currently in the same lineage.
+#   7 = when a child's (potential) fitness is higher than that of any
+#       organism in its line of descent
+LOG_LINEAGES 0             # 
+LINEAGE_CREATION_METHOD 0  # 
+
+### ORGANISM_NETWORK_GROUP ###
+# Organism Network Communication
+NET_ENABLED 0      # Enable Network Communication Support
+NET_DROP_PROB 0.0  # Message drop rate
+NET_MUT_PROB 0.0   # Message corruption probability
+NET_MUT_TYPE 0     # Type of message corruption.  0 = Random Single Bit, 1 = Always Flip Last
+NET_STYLE 0        # Communication Style.  0 = Random Next, 1 = Receiver Facing
+
+### ORGANISM_MESSAGING_GROUP ###
+# Organism Message-Based Communication
+MESSAGE_TYPE 0                      # Messaging Style. 0=Receiver Facing, 1=Broadcast
+MESSAGE_BCAST_RADIUS 1              # Broadcast message radius (cells)
+ORGANISMS_REMEMBER_MESSAGES 1       # Does an organism remember all messages it has sent or received? 0=false, 1=true (default)
+MESSAGE_QUEUE_SIZE -1               # Maximum number of unretrieved messages an organism can store (-1 for no limit is the default)
+MESSAGE_QUEUE_BEHAVIOR_WHEN_FULL 0  # 0 = Drop incoming message (default), 1 = Drop oldest unretrieved message
+
+### BUY_SELL_GROUP ###
+# Buying and Selling Parameters
+SAVE_RECEIVED 0  # Enable storage of all inputs bought from other orgs
+BUY_PRICE 0      # price offered by organisms attempting to buy
+SELL_PRICE 0     # price offered by organisms attempting to sell
+
+### HOARD_RESOURCE_GROUP ###
+# Resource Hoarding Parameters 
+USE_RESOURCE_BINS 0             # Enable resource bin use.  This serves as a guard on most resource hoarding code.
+ABSORB_RESOURCE_FRACTION .0025  # Fraction of available environmental resource an organism absorbs with the collect instruction.
+MULTI_ABSORB_TYPE 0             # What to do if collect is called on a range of resources.
+                                #  0 = absorb a random resource in the range
+                                #  1 = absorb the first resource in the range
+                                #  2 = absorb the last resource in the range
+                                #  3 = absorb ABSORB_RESOURCE_FRACTION / (# of resources in range) of each resource in the range
+MAX_TOTAL_STORED -1             # Maximum total amount of all resources an organism can store.
+                                #  <0 = no maximum
+USE_STORED_FRACTION 1.0         # The fraction of stored resource to use.
+ENV_FRACTION_THRESHOLD 1.0      # The fraction of available environmental resource to compare available stored resource to when deciding whether to use stored resource.
+RETURN_STORED_ON_DEATH 1        # Return an organism's stored resources to the world when it dies?
+
+### ANALYZE_GROUP ###
+# Analysis Settings
+MAX_CONCURRENCY -1  # Maximum number of analyze threads, -1 == use all available.
+ANALYZE_OPTION_1    # String variable accessible from analysis scripts
+ANALYZE_OPTION_2    # String variable accessible from analysis scripts
+
+### ENERGY_GROUP ###
+# Energy Settings
+ENERGY_ENABLED 0                               # Enable Energy Model. 0/1 (off/on)
+ENERGY_GIVEN_ON_INJECT 0.0                     # Energy given to organism upon injection.
+ENERGY_GIVEN_AT_BIRTH 0.0                      # Energy given to offspring upon birth.
+FRAC_PARENT_ENERGY_GIVEN_TO_ORG_AT_BIRTH 0.5   # Fraction of parent's energy given to offspring organism.
+FRAC_PARENT_ENERGY_GIVEN_TO_DEME_AT_BIRTH 0.5  # Fraction of parent's energy given to offspring deme.
+FRAC_ENERGY_DECAY_AT_ORG_BIRTH 0.0             # Fraction of energy lost due to decay during organism reproduction.
+FRAC_ENERGY_DECAY_AT_DEME_BIRTH 0.0            # Fraction of energy lost due to decay during deme reproduction.
+NUM_INST_EXC_BEFORE_0_ENERGY 0                 # Number of instructions executed before energy is exhausted.
+ENERGY_CAP -1.0                                # Maximum amount of energy that can be stored in an organism.  -1 means the cap is set to Max Double
+APPLY_ENERGY_METHOD 0                          # When should rewarded energy be applied to current energy?
+                                               # 0 = on divide
+                                               # 1 = on completion of task
+                                               # 2 = on sleep
+FRAC_ENERGY_TRANSFER 0.0                       # Fraction of replaced organism's energy take by new resident
+LOG_SLEEP_TIMES 0                              # Log sleep start and end times. 0/1 (off/on)
+                                               # WARNING: may use lots of memory.
+FRAC_ENERGY_RELINQUISH 1.0                     # Fraction of organisms energy to relinquish
+ENERGY_PASSED_ON_DEME_REPLICATION_METHOD 0     # Who get energy passed from a parent deme
+                                               # 0 = Energy divided among organisms injected to offspring deme
+                                               # 1 = Energy divided among cells in offspring deme
+INHERIT_EXE_RATE 0                             # Inherit energy rate from parent? 0=no  1=yes
+ATTACK_DECAY_RATE 0.0                          # Percent of cell's energy decayed by attack
+ENERGY_THRESH_LOW .33                          # Threshold percent below which energy level is considered low.  Requires ENERGY_CAP.
+ENERGY_THRESH_HIGH .75                         # Threshold percent above which energy level is considered high.  Requires ENERGY_CAP.
+
+### ENERGY_SHARING_GROUP ###
+# Energy Sharing Settings
+ENERGY_SHARING_METHOD 0        # Method for sharing energy.  0=receiver must actively receive/request, 1=energy pushed on receiver
+ENERGY_SHARING_PCT 0.0         # Percent of energy to share
+ENERGY_SHARING_INCREMENT 0.01  # Amount to change percent energy shared
+ENERGY_SHARING_LOSS 0.0        # Percent of shared energy lost in transfer
+
+### SECOND_PASS_GROUP ###
+# Tracking metrics known after the running experiment previously
+TRACK_CCLADES 0                    # Enable tracking of coalescence clades
+TRACK_CCLADES_IDS coalescence.ids  # File storing coalescence IDs
+
+### GX_GROUP ###
+# Gene Expression CPU Settings
+MAX_PROGRAMIDS 16                # Maximum number of programids an organism can create.
+MAX_PROGRAMID_AGE 2000           # Max number of CPU cycles a programid executes before it is removed.
+IMPLICIT_GENE_EXPRESSION 0       # Create executable programids from the genome without explicit allocation and copying?
+IMPLICIT_BG_PROMOTER_RATE 0.0    # Relative rate of non-promoter sites creating programids.
+IMPLICIT_TURNOVER_RATE 0.0       # Number of programids recycled per CPU cycle. 0 = OFF
+IMPLICIT_MAX_PROGRAMID_LENGTH 0  # Creation of an executable programid terminates after this many instructions. 0 = disabled
+
+### PROMOTER_GROUP ###
+# Promoters
+PROMOTERS_ENABLED 0             # Use the promoter/terminator execution scheme.
+                                # Certain instructions must also be included.
+PROMOTER_INST_MAX 0             # Maximum number of instructions to execute before terminating. 0 = off
+PROMOTER_PROCESSIVITY 1.0       # Chance of not terminating after each cpu cycle.
+PROMOTER_PROCESSIVITY_INST 1.0  # Chance of not terminating after each instruction.
+PROMOTER_TO_REGISTER 0          # Place a promoter's base bit code in register BX when starting execution from it?
+TERMINATION_RESETS 0            # Does termination reset the thread's state?
+NO_ACTIVE_PROMOTER_EFFECT 0     # What happens when there are no active promoters?
+                                # 0 = Start execution at the beginning of the genome.
+                                # 1 = Kill the organism.
+                                # 2 = Stop the organism from executing any further instructions.
+PROMOTER_CODE_SIZE 24           # Size of a promoter code in bits. (Maximum value is 32)
+PROMOTER_EXE_LENGTH 3           # Length of promoter windows used to determine execution.
+PROMOTER_EXE_THRESHOLD 2        # Minimum number of bits that must be set in a promoter window to allow execution.
+INST_CODE_LENGTH 3              # Instruction binary code length (number of bits)
+INST_CODE_DEFAULT_TYPE 0        # Default value of instruction binary code value.
+                                # 0 = All zeros
+                                # 1 = Based off the instruction number
+CONSTITUTIVE_REGULATION 0       # Sense a new regulation value before each CPU cycle?
+
+### COLORS_GROUP ###
+# Output colors for when data files are printed in HTML mode.
+# There are two sets of these; the first are for lineages,
+# and the second are for mutation tests.
+COLOR_DIFF CCCCFF        # Color to flag stat that has changed since parent.
+COLOR_SAME FFFFFF        # Color to flag stat that has NOT changed since parent.
+COLOR_NEG2 FF0000        # Color to flag stat that is significantly worse than parent.
+COLOR_NEG1 FFCCCC        # Color to flag stat that is minorly worse than parent.
+COLOR_POS1 CCFFCC        # Color to flag stat that is minorly better than parent.
+COLOR_POS2 00FF00        # Color to flag stat that is significantly better than parent.
+COLOR_MUT_POS 00FF00     # Color to flag stat that has changed since parent.
+COLOR_MUT_NEUT FFFFFF    # Color to flag stat that has changed since parent.
+COLOR_MUT_NEG FFFF00     # Color to flag stat that has changed since parent.
+COLOR_MUT_LETHAL FF0000  # Color to flag stat that has changed since parent.
+
+### BIOMIMETIC_GROUP ###
+# Biomimetic Features Settings
+BIOMIMETIC_REFRACTORY_PERIOD 0.0  # Number of updates affected by refractory period
+BIOMIMETIC_MOVEMENT_STEP 1        # Number of cells to move Avidian on move instruction
+BIOMIMETIC_MOVEMENT_LOG 0         # Log detailed movement information (WARNING: large data file)
+BIOMIMETIC_MOVEMENT_FACTOR 1.0    # Scale merit bonus due to movement (m<1.0 applies a cost)
+BIOMIMETIC_EVAL_ON_MOVEMENT 0     # Force task evaluation on each movement step
+BIOMIMETIC_K 0                    # Carrying capacity in number of organisms
+
+### PHEROMONE_GROUP ###
+# Pheromone Settings
+PHEROMONE_ENABLED 0        # Enable pheromone usage. 0/1 (off/on)
+PHEROMONE_AMOUNT 1.0       # Amount of pheromone to add per drop
+PHEROMONE_DROP_MODE 0      # Where to drop pheromone
+                           # 0 = Half amount at src, half at dest
+                           # 1 = All at source
+                           # 2 = All at dest
+EXPLOIT_EXPLORE_PROB 0.00  # Probability of random exploration
+                           # instead of pheromone trail following
+LOG_PHEROMONE 0            # Log pheromone drops.  0/1 (off/on)
+PHEROMONE_LOG_START 0      # Update at which to start logging pheromone drops
+EXPLOIT_LOG_START 0        # Update at which to start logging exploit moves
+EXPLORE_LOG_START 0        # Update at which to start logging explore moves
+MOVETARGET_LOG_START 0     # Update at which to start logging movetarget moves
+LOG_INJECT 0               # Log injection of organisms.  0/1 (off/on)
+INJECT_LOG_START 0         # Update at which to start logging injection of
+                           # organisms
+
+### SYNCHRONIZATION_GROUP ###
+# Synchronization settings
+SYNC_FITNESS_WINDOW 100     # Number of updates over which to calculate fitness (default=100).
+SYNC_FLASH_LOSSRATE 0.0     # P() to lose a flash send (0.0==off).
+SYNC_TEST_FLASH_ARRIVAL -1  # CPU cycle at which an organism will receive a flash (off=-1, default=-1, analyze mode only.)




More information about the Avida-cvs mailing list