[Avida-SVN] r3244 - in development: source/main tests tests/string_producing_and_donating tests/string_producing_and_donating/config tests/string_producing_and_donating/expected tests/string_producing_and_donating/expected/data
hjg at myxo.css.msu.edu
hjg at myxo.css.msu.edu
Tue May 19 06:18:53 PDT 2009
Author: hjg
Date: 2009-05-19 09:18:53 -0400 (Tue, 19 May 2009)
New Revision: 3244
Added:
development/tests/string_producing_and_donating/
development/tests/string_producing_and_donating/config/
development/tests/string_producing_and_donating/config/4bitenv.cfg
development/tests/string_producing_and_donating/config/4bitevents.cfg
development/tests/string_producing_and_donating/config/analyze.cfg
development/tests/string_producing_and_donating/config/avida.cfg
development/tests/string_producing_and_donating/config/default-classic.org
development/tests/string_producing_and_donating/config/instset-reputation.cfg
development/tests/string_producing_and_donating/config/string0101.org
development/tests/string_producing_and_donating/config/string1010.org
development/tests/string_producing_and_donating/expected/
development/tests/string_producing_and_donating/expected/data/
development/tests/string_producing_and_donating/expected/data/reputation.dat
development/tests/string_producing_and_donating/expected/data/stringmatch.dat
development/tests/string_producing_and_donating/expected/data/tasks_quality.dat
Modified:
development/source/main/cOrganism.cc
development/source/main/cPopulation.cc
development/source/main/cStats.cc
Log:
Actually added the test for the string production and donating work. Also, fixed the initialization of some of the string producing variables.
Modified: development/source/main/cOrganism.cc
===================================================================
--- development/source/main/cOrganism.cc 2009-05-18 23:45:45 UTC (rev 3243)
+++ development/source/main/cOrganism.cc 2009-05-19 13:18:53 UTC (rev 3244)
@@ -80,6 +80,15 @@
, m_net(NULL)
, m_msg(0)
, m_opinion(0)
+ , m_self_raw_materials(world->GetConfig().RAW_MATERIAL_AMOUNT.Get())
+ , m_other_raw_materials(0)
+ , m_num_donate(0)
+ , m_num_reciprocate(0)
+ , m_num_donate_received(0)
+ , m_amount_donate_received(0)
+ , m_failed_reputation_increases(0)
+ , m_tag(make_pair(-1, 0))
+
{
m_hardware = m_world->GetHardwareManager().Create(ctx, this, m_initial_genome);
@@ -112,6 +121,14 @@
, m_net(NULL)
, m_msg(0)
, m_opinion(0)
+ , m_self_raw_materials(world->GetConfig().RAW_MATERIAL_AMOUNT.Get())
+ , m_other_raw_materials(0)
+ , m_num_donate(0)
+ , m_num_reciprocate(0)
+ , m_num_donate_received(0)
+ , m_amount_donate_received(0)
+ , m_failed_reputation_increases(0)
+ , m_tag(make_pair(-1, 0))
{
m_hardware = m_world->GetHardwareManager().Create(ctx, this, m_initial_genome);
@@ -171,6 +188,13 @@
if (m_world->GetConfig().NET_ENABLED.Get()) m_net = new cNetSupport();
m_id = m_world->GetStats().GetTotCreatures();
+
+ // randomize the amout of raw materials an organism has at its
+ // disposal.
+ if (m_world->GetConfig().RANDOMIZE_RAW_MATERIAL_AMOUNT.Get()) {
+ int raw_mat = m_world->GetConfig().RAW_MATERIAL_AMOUNT.Get();
+ m_self_raw_materials = m_world->GetRandom().GetUInt(0, raw_mat+1);
+ }
}
Modified: development/source/main/cPopulation.cc
===================================================================
--- development/source/main/cPopulation.cc 2009-05-18 23:45:45 UTC (rev 3243)
+++ development/source/main/cPopulation.cc 2009-05-19 13:18:53 UTC (rev 3244)
@@ -369,8 +369,22 @@
//By default, store the parent cclade, this may get modified in ActivateOrgansim (@MRR)
child_array[i]->SetCCladeLabel(parent_organism->GetCCladeLabel());
- }
-
+
+ // If inherited reputation is turned on, set the offspring's reputation
+ // to that of its parent.
+ if (m_world->GetConfig().INHERIT_REPUTATION.Get() == 1) {
+ child_array[i]->SetReputation(parent_organism->GetReputation());
+ } else if (m_world->GetConfig().INHERIT_REPUTATION.Get() == 2) {
+ child_array[i]->SetTag(parent_organism->GetTag());
+ }else if (m_world->GetConfig().INHERIT_REPUTATION.Get() == 3) {
+ child_array[i]->SetTag(parent_organism->GetTag());
+ child_array[i]->SetReputation(parent_organism->GetReputation());
+ }
+
+
+ }
+
+
// If we're not about to kill the parent, do some extra work on it.
if (parent_alive == true) {
// Reset inputs and re-calculate merit if required
Modified: development/source/main/cStats.cc
===================================================================
--- development/source/main/cStats.cc 2009-05-18 23:45:45 UTC (rev 3243)
+++ development/source/main/cStats.cc 2009-05-19 13:18:53 UTC (rev 3244)
@@ -135,6 +135,8 @@
, m_spec_waste(0)
, num_orgs_killed(0)
, m_deme_num_repls(0)
+ , m_donate_to_donor (0)
+ , m_donate_to_facing (0)
{
const cEnvironment& env = m_world->GetEnvironment();
const int num_tasks = env.GetNumTasks();
Added: development/tests/string_producing_and_donating/config/4bitenv.cfg
===================================================================
--- development/tests/string_producing_and_donating/config/4bitenv.cfg (rev 0)
+++ development/tests/string_producing_and_donating/config/4bitenv.cfg 2009-05-19 13:18:53 UTC (rev 3244)
@@ -0,0 +1,25 @@
+##############################################################################
+#
+# This is the setup file for the task/resource system. From here, you can
+# setup the available resources (including their inflow and outflow rates) as
+# well as the reactions that the organisms can trigger by performing tasks.
+#
+# This file is currently setup to reward 9 tasks, all of which use the
+# "infinite" resource, which is undepletable.
+#
+# For information on how to use this file, see: doc/environment.html
+# For other sample environments, see: source/support/config/
+#
+##############################################################################
+
+RESOURCE res1:inflow=100:outflow=.01
+RESOURCE res2:inflow=100:outflow=.01
+
+REACTION MATCH1 matchprodstr:string=0000,partial=0,binary=1,pow=2.0,tag=0 process:resource=res1:type=pow:value=3.0:frac=.005:max=10:min=.025 requisite:divide_only=1
+
+REACTION MATCH4 matchprodstr:string=1111,partial=0,binary=1,pow=2.0,tag=1 process:resource=res2:type=pow:value=3.0:frac=.005:max=10:min=.025 requisite:divide_only=1
+
+REACTION ps perfect_strings process:value=1.0:type=add requisite:max_count=1:divide_only=1
+
+
+
Added: development/tests/string_producing_and_donating/config/4bitevents.cfg
===================================================================
--- development/tests/string_producing_and_donating/config/4bitevents.cfg (rev 0)
+++ development/tests/string_producing_and_donating/config/4bitevents.cfg 2009-05-19 13:18:53 UTC (rev 3244)
@@ -0,0 +1,25 @@
+##############################################################################
+#
+# This is the setup file for the events system. From here, you can
+# configure any actions that you want to have happen during the course of
+# an experiment, including setting the times for data collection.
+#
+# basic syntax: [trigger] [start:interval:stop] [action/event] [arguments...]
+#
+# This file is currently setup to record key information every 100 updates.
+#
+# For information on how to use this file, see: doc/events.html
+# For other sample event configurations, see: support/config/
+#
+##############################################################################
+
+i Inject string0101.org 0 -1 -1 0
+i Inject string1010.org 100 -1 -1 0
+
+# Print all of the standard data files...
+u 100:100:end PrintTasksQualData # Task quality information
+u 100:100:end PrintReputationData # Reputation Information
+u 100:100:end PrintStringMatchData # String matchInformation
+
+# Setup the exit time and full population data collection.
+u 100 exit # exit
Added: development/tests/string_producing_and_donating/config/analyze.cfg
===================================================================
--- development/tests/string_producing_and_donating/config/analyze.cfg (rev 0)
+++ development/tests/string_producing_and_donating/config/analyze.cfg 2009-05-19 13:18:53 UTC (rev 3244)
@@ -0,0 +1,10 @@
+#############################################################################
+# This file is used to setup avida when it is in analysis-only mode (by
+# running "avida -a". It allows variety of methods to load organisms
+# (specifying the type of each) and analyze them once loaded.
+#
+# See the documentation in doc/analyze_mode.html for usage, or the file
+# doc/analyze_samples.html for guidelines on writing programs.
+#
+#############################################################################
+
Added: development/tests/string_producing_and_donating/config/avida.cfg
===================================================================
--- development/tests/string_producing_and_donating/config/avida.cfg (rev 0)
+++ development/tests/string_producing_and_donating/config/avida.cfg 2009-05-19 13:18:53 UTC (rev 3244)
@@ -0,0 +1,573 @@
+#############################################################################
+# 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 1 # 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 instset-reputation.cfg # File containing instruction set
+INST_SET_FORMAT 0 # Instruction set file format.
+ # 0 = Default
+ # 1 = New Style
+EVENT_FILE 4bitevents.cfg # File containing list of events during run
+ANALYZE_FILE analyze.cfg # File used for analysis mode
+ENVIRONMENT_FILE 4bitenv.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
+ # 3=proportional based on the number of points
+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?
+DEMES_PROTECTION_POINTS 0 # The number of points a deme receives for each suicide.
+POINT_DECAY_PERCENT 0 # The percentage of points decayed each time cActionDecayPoints is called.
+
+### 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
+ALLOW_MATE_SELECTION 0 # Allow organisms to select mates (requires instruction set support)
+LEGACY_GRID_LOCAL_SELECTION 0 # Enable legacy grid local mate selection (ignores population structure)
+
+### DIVIDE_GROUP ###
+# Divide Restrictions
+CHILD_SIZE_RANGE 2.0 # Maximal differential between child and parent sizes.
+ # (Checked BEFORE mutations applied on divide.)
+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.
+REQUIRE_EXACT_COPY 0 # Require offspring to be an exact copy (only divide mutations allowed).
+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 (per site, applied on divide)
+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, 4=nop-C
+SLIP_COPY_MODE 0 # How to handle 'on-copy' slip mutations:
+ # 0 = actual read head slip
+ # 1 = instant large mutation (obeys slip mode)
+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 0.0 # should org be reverted if loses task(s) without gaining other(s)?
+STERILIZE_FATAL 0.0 # Should any mutations clear (kill) the organism?
+STERILIZE_DETRIMENTAL 0.0 #
+STERILIZE_NEUTRAL 0.0 #
+STERILIZE_BENEFICIAL 0.0 #
+STERILIZE_TASKLOSS 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.)
+MERIT_INC_APPLY_IMMEDIATE 0 # Should merit increases (above current) be applied immediately, or delayed until divide?
+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
+GENOTYPE_PHENPLAST_CALC 100 # Number of times to test a genotype's
+ # plasticity during runtime.
+
+### 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)
+TRACK_PARENT_DIST 0 # Track parent distance during run. This is unnecessary when track main lineage is on.
+
+### 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.
+MULTI_ABSORB_TYPE 0 # What to do if a collect instruction 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_CYCLES_EXC_BEFORE_0_ENERGY 0 # Number of virtual CPU cycles 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
+FIX_METABOLIC_RATE -1.0 # Fix organism metobolic rate to value. This value is static. Feature disabled by default (value == -1)
+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_COMPARISON_EPSILON 0.0 # Percent difference (relative to executing organism) required in energy level comparisons
+
+### 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
+ENERGY_SHARING_UPDATE_METABOLIC 0 # 0/1 (off/on) - Whether to update an organism's metabolic rate on donate or reception/application of energy
+LOG_ENERGY_SHARING 0 # Whether or not to log energy shares. 0/1 (off/on)
+
+### 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.)
+
+RAW_MATERIAL_AMOUNT 0 # Number of raw materials an organism starts with
+AUTO_REPUTATION 3 # Is an organism's reputation automatically computed based on its donations
+ # 0=no
+ # 1=increment for each donation + standing
+ # 2=+1 for donations given -1 for donations received
+ # 3=1 for donors -1 for recivers who have not donated
+ # 4=+1 for donors
+ # 5=+1 for donors during task check
+ALT_BENEFIT 2.00 # Number multiplied by the number of raw materials received from another organism to compute reward
+ALT_COST 1.00 # Number multiplied by the number of your raw materials
+ROTATE_ON_DONATE 0 # Rotate an organism to face its donor 0/1 (off/on)
+REPUTATION_REWARD 0 # Reward an organism for having a good reputation
+DONATION_FAILURE_PERCENT 0 # Percentage of times that a donation fails
+RANDOMIZE_RAW_MATERIAL_AMOUNT 0 # Should all the organisms receive the same amount 0/1 (off/on)
+DONATION_RESTRICTIONS 0 # 0=none
+ # 1=inter-species only
+ # 2=different tag only
+INHERIT_REPUTATION 0 # 0=reputations are not inherited
+ # 1=reputations are inherited
+ # 2=tags are inherited
+SPECIALISTS 1 # 0=generalists allowed
+ # 1=only specialists
+STRING_AMOUNT_CAP 10 # -1=no cap on string amounts
+ # #=CAP
+MATCH_ALREADY_PRODUCED 1 # 0=off
+ # 1=on
Added: development/tests/string_producing_and_donating/config/default-classic.org
===================================================================
--- development/tests/string_producing_and_donating/config/default-classic.org (rev 0)
+++ development/tests/string_producing_and_donating/config/default-classic.org 2009-05-19 13:18:53 UTC (rev 3244)
@@ -0,0 +1,100 @@
+h-alloc # Allocate space for child
+h-search # Locate the end of the organism
+nop-C #
+nop-A #
+mov-head # Place write-head at beginning of offspring.
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+h-search # Mark the beginning of the copy loop
+h-copy # Do the copy
+if-label # If we're done copying....
+nop-C #
+nop-A #
+h-divide # ...divide!
+mov-head # Otherwise, loop back to the beginning of the copy loop.
+nop-A # End label.
+nop-B #
Added: development/tests/string_producing_and_donating/config/instset-reputation.cfg
===================================================================
--- development/tests/string_producing_and_donating/config/instset-reputation.cfg (rev 0)
+++ development/tests/string_producing_and_donating/config/instset-reputation.cfg 2009-05-19 13:18:53 UTC (rev 3244)
@@ -0,0 +1,49 @@
+nop-A 1 # a
+nop-B 1 # b
+nop-C 1 # c
+if-n-equ 1 # d
+if-less 1 # e
+pop 1 # f
+push 1 # g
+swap-stk 1 # h
+swap 1 # i
+shift-r 1 # j
+shift-l 1 # k
+inc 1 # l
+dec 1 # m
+add 1 # n
+sub 1 # o
+nand 1 # p
+#IO 1 # q Puts current contents of register and gets new.
+h-alloc 1 # r Allocate as much memory as organism can use.
+h-divide 1 # s Cuts off everything between the read and write heads
+h-copy 1 # t Combine h-read and h-write
+h-search 1 # u Search for matching template, set flow head & return info
+ # # if no template, move flow-head here, set size&offset=0.
+mov-head 1 # v Move ?IP? head to flow control.
+jmp-head 1 # w Move ?IP? head by fixed amount in CX. Set old pos in CX.
+get-head 1 # x Get position of specified head in CX.
+if-label 1 # y
+set-flow 1 # z Move flow-head to address in ?CX?
+rotate-left-one 1
+rotate-right-one 1
+rotate-to-occupied-cell 1
+get-neighbors-reputation 1 #check out a neighbor's reputation
+get-reputation 1 # get organism's reputation
+donate-spec 1
+rotate-to-rep-lineage 1
+get-raw-mat-amount 1
+get-other-raw-mat-amount 1
+IObuf-add1 1
+IObuf-add0 1
+prod-string 1
+
+rotate-to-rep 1
+rotate-to-rep-and-donate 1
+donate-frm 1 # donate to the organism it is facing.
+donate-if-donor 1
+pose 1
+
+
+
+
Added: development/tests/string_producing_and_donating/config/string0101.org
===================================================================
--- development/tests/string_producing_and_donating/config/string0101.org (rev 0)
+++ development/tests/string_producing_and_donating/config/string0101.org 2009-05-19 13:18:53 UTC (rev 3244)
@@ -0,0 +1,100 @@
+h-alloc # Allocate space for child
+h-search # Locate the end of the organism
+nop-C #
+nop-A #
+mov-head # Place write-head at beginning of offspring.
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+IObuf-add0
+IObuf-add1
+IObuf-add0
+IObuf-add1
+nop-C #
+get-neighbors-reputation
+get-reputation
+donate-spec
+rotate-to-rep-lineage
+get-raw-mat-amount
+get-other-raw-mat-amount
+IObuf-add1
+IObuf-add0
+prod-string
+rotate-to-rep
+rotate-to-rep-and-donate
+donate-frm
+donate-if-donor
+pose
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+h-search # Mark the beginning of the copy loop
+h-copy # Do the copy
+if-label # If we're done copying....
+nop-C #
+nop-A #
+h-divide # ...divide!
+mov-head # Otherwise, loop back to the beginning of the copy loop.
+nop-A # End label.
+nop-B #
Added: development/tests/string_producing_and_donating/config/string1010.org
===================================================================
--- development/tests/string_producing_and_donating/config/string1010.org (rev 0)
+++ development/tests/string_producing_and_donating/config/string1010.org 2009-05-19 13:18:53 UTC (rev 3244)
@@ -0,0 +1,100 @@
+h-alloc # Allocate space for child
+h-search # Locate the end of the organism
+nop-C #
+nop-A #
+mov-head # Place write-head at beginning of offspring.
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+IObuf-add1
+IObuf-add0
+IObuf-add1
+IObuf-add0
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+h-search # Mark the beginning of the copy loop
+h-copy # Do the copy
+if-label # If we're done copying....
+nop-C #
+nop-A #
+h-divide # ...divide!
+mov-head # Otherwise, loop back to the beginning of the copy loop.
+nop-A # End label.
+nop-B #
Added: development/tests/string_producing_and_donating/expected/data/reputation.dat
===================================================================
--- development/tests/string_producing_and_donating/expected/data/reputation.dat (rev 0)
+++ development/tests/string_producing_and_donating/expected/data/reputation.dat 2009-05-19 13:18:53 UTC (rev 3244)
@@ -0,0 +1,12 @@
+# Avida organism reputation information -- average donations, min donations, max donations
+# Mon May 18 18:34:48 2009
+# 1: Update [update]
+# 2: Avg. reputation [reputation]
+# 3: Avg. donations [donation]
+# 4: Avg. number of donor partners [partners]
+# 5: Number of altruists [altruists]
+# 6: Number of cooperators [cooperators]
+# 7: Avg. own raw mat [ownrawmat]
+# 8: Avg. other raw mat [otherrawmat]
+
+100 1.609091 0.000000 0.000000 0 0 0.000000 0.000000
Added: development/tests/string_producing_and_donating/expected/data/stringmatch.dat
===================================================================
--- development/tests/string_producing_and_donating/expected/data/stringmatch.dat (rev 0)
+++ development/tests/string_producing_and_donating/expected/data/stringmatch.dat 2009-05-19 13:18:53 UTC (rev 3244)
@@ -0,0 +1,17 @@
+# Avida organism string donation information
+# Mon May 18 18:34:48 2009
+# 1: Update [update]
+# 2: produced0000
+# 3: stored0000
+# 4: produced1111
+# 5: stored1111
+# 6: totalStoredAverage
+# 7: PerfectMatchStringElapse[ps]
+# 8: PerfectMatchOrgElapse[pso]
+# 9: PerfectMatchStringInstant[psi]
+# 10: PerfectMatchOrgInstant[psoi]
+# 11: Producednothing[nothing]
+# 12: Generalists[generalists]
+# 13: Specialists[specialists]
+
+100 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0 0 110 0 0
Added: development/tests/string_producing_and_donating/expected/data/tasks_quality.dat
===================================================================
--- development/tests/string_producing_and_donating/expected/data/tasks_quality.dat (rev 0)
+++ development/tests/string_producing_and_donating/expected/data/tasks_quality.dat 2009-05-19 13:18:53 UTC (rev 3244)
@@ -0,0 +1,12 @@
+# Avida tasks quality data
+# Mon May 18 18:34:48 2009
+# First column gives the current update, rest give average and max task quality
+# 1: Update
+# 2: MatchProdStr Average
+# 3: MatchProdStr Max
+# 4: MatchProdStr Average
+# 5: MatchProdStr Max
+# 6: Produce and store perfect strings Average
+# 7: Produce and store perfect strings Max
+
+100 0.000000 0.000000 0.250000 0.250000 0.000000 0.000000
More information about the Avida-cvs
mailing list