[Avida-SVN] r1485 - in development: source/actions source/main tests tests/analyze_dumplandscape tests/analyze_dumplandscape/config tests/analyze_dumplandscape/expected tests/analyze_dumplandscape/expected/data
brysonda at myxo.css.msu.edu
brysonda at myxo.css.msu.edu
Wed Apr 18 15:17:47 PDT 2007
Author: brysonda
Date: 2007-04-18 18:17:47 -0400 (Wed, 18 Apr 2007)
New Revision: 1485
Added:
development/tests/analyze_dumplandscape/
development/tests/analyze_dumplandscape/config/
development/tests/analyze_dumplandscape/config/analyze.cfg
development/tests/analyze_dumplandscape/config/avida.cfg
development/tests/analyze_dumplandscape/config/default-classic.org
development/tests/analyze_dumplandscape/config/environment.cfg
development/tests/analyze_dumplandscape/config/events.cfg
development/tests/analyze_dumplandscape/config/instset-classic.cfg
development/tests/analyze_dumplandscape/expected/
development/tests/analyze_dumplandscape/expected/data/
development/tests/analyze_dumplandscape/expected/data/land-dump.dat
development/tests/analyze_dumplandscape/expected/data/org-Seq1.land
development/tests/analyze_dumplandscape/test_list
development/tests/analyze_truncate_lineage_fulllandscape/
Removed:
development/tests/analyze_trunc_lin_land/
Modified:
development/source/actions/LandscapeActions.cc
development/source/main/cLandscape.cc
development/source/main/cLandscape.h
Log:
Add DumpLandscape action. Creates a detailed dump of all fitness values per-site, per-instruction. Each row in the generated .land file(s) represents a site in the genome. The first column is the actual instruction at that site, followed by a column for the fitness value of each instruction in the current instruction set. land-dump.dat is also created, with all of the standard single-step landscape statistics. A consistency test has been added to monitor DumpLandscape.
Modified: development/source/actions/LandscapeActions.cc
===================================================================
--- development/source/actions/LandscapeActions.cc 2007-04-18 18:45:33 UTC (rev 1484)
+++ development/source/actions/LandscapeActions.cc 2007-04-18 22:17:47 UTC (rev 1485)
@@ -276,6 +276,84 @@
};
+class cActionDumpLandscape : public cAction // @not_parallelized
+{
+private:
+ cString m_filename;
+
+public:
+ cActionDumpLandscape(cWorld* world, const cString& args)
+ : cAction(world, args), m_filename("land-dump.dat")
+ {
+ cString largs(args);
+ if (largs.GetSize()) m_filename = largs.PopWord();
+ }
+
+ static const cString GetDescription()
+ {
+ return "Arguments: [string filename='land-dump.dat']";
+ }
+
+ void Process(cAvidaContext& ctx)
+ {
+ cInstSet& inst_set = m_world->GetHardwareManager().GetInstSet();
+ cDataFile& sdf = m_world->GetDataFile(m_filename);
+
+ if (ctx.GetAnalyzeMode()) {
+ if (m_world->GetVerbosity() >= VERBOSE_ON) {
+ cString msg("Dumping Landscape of batch ");
+ msg += cStringUtil::Convert(m_world->GetAnalyze().GetCurrentBatchID());
+ m_world->GetDriver().NotifyComment(msg);
+ } else if (m_world->GetVerbosity() > VERBOSE_SILENT) {
+ m_world->GetDriver().NotifyComment("Dumping Landscape...");
+ }
+
+ tListIterator<cAnalyzeGenotype> batch_it(m_world->GetAnalyze().GetCurrentBatch().List());
+ cAnalyzeGenotype* genotype = NULL;
+ while ((genotype = batch_it.Next())) {
+ // Create datafile for genotype landscape (${name}.land)
+ cString gfn(genotype->GetName());
+ gfn += ".land";
+ cDataFile& gdf = m_world->GetDataFile(gfn);
+
+ // Create the landscape object and process the dump
+ cLandscape land(m_world, genotype->GetGenome(), inst_set);
+ land.ProcessDump(ctx, gdf);
+ land.PrintStats(sdf, -1);
+
+ // Remove the completed datafile
+ m_world->GetDataFileManager().Remove(gfn);
+ }
+
+ // Batch complete, close overall landscape stats file as well
+ m_world->GetDataFileManager().Remove(m_filename);
+
+ } else {
+
+ if (m_world->GetVerbosity() >= VERBOSE_DETAILS)
+ m_world->GetDriver().NotifyComment("Dumping Landscape...");
+
+ // Get the current best genotype
+ const cGenome& best_genome = m_world->GetClassificationManager().GetBestGenotype()->GetGenome();
+
+ // Create datafile for genotype landscape (best-${update}.land)
+ cString gfn("best-");
+ gfn += m_world->GetStats().GetUpdate();
+ gfn += ".land";
+ cDataFile& gdf = m_world->GetDataFile(gfn);
+
+ // Create the landscape object and process the dump
+ cLandscape land(m_world, best_genome, inst_set);
+ land.ProcessDump(ctx, gdf);
+ land.PrintStats(sdf, m_world->GetStats().GetUpdate());
+
+ // Remove the completed datafile
+ m_world->GetDataFileManager().Remove(gfn);
+ }
+ }
+};
+
+
class cActionDeletionLandscape : public cAction // @parallelized
{
private:
@@ -1002,6 +1080,7 @@
action_lib->Register<cActionAnalyzeLandscape>("AnalyzeLandscape");
action_lib->Register<cActionPrecalcLandscape>("PrecalcLandscape");
action_lib->Register<cActionFullLandscape>("FullLandscape");
+ action_lib->Register<cActionDumpLandscape>("DumpLandscape");
action_lib->Register<cActionDeletionLandscape>("DeletionLandscape");
action_lib->Register<cActionInsertionLandscape>("InsertionLandscape");
action_lib->Register<cActionPredictWLandscape>("PredictWLandscape");
Modified: development/source/main/cLandscape.cc
===================================================================
--- development/source/main/cLandscape.cc 2007-04-18 18:45:33 UTC (rev 1484)
+++ development/source/main/cLandscape.cc 2007-04-18 22:17:47 UTC (rev 1485)
@@ -94,7 +94,7 @@
m_num_found = 0;
}
-void cLandscape::ProcessGenome(cAvidaContext& ctx, cTestCPU* testcpu, cGenome& in_genome)
+double cLandscape::ProcessGenome(cAvidaContext& ctx, cTestCPU* testcpu, cGenome& in_genome)
{
testcpu->TestGenome(ctx, test_info, in_genome);
@@ -118,6 +118,8 @@
peak_genome = in_genome;
}
}
+
+ return test_fitness;
}
void cLandscape::ProcessBase(cAvidaContext& ctx, cTestCPU* testcpu)
@@ -198,6 +200,48 @@
}
+
+
+void cLandscape::ProcessDump(cAvidaContext& ctx, cDataFile& df)
+{
+ df.WriteComment("Detailed dump of the per-site, per-instruction fitness");
+ df.WriteComment("values for the entire single-step landscape.");
+
+ cTestCPU* testcpu = m_world->GetHardwareManager().CreateTestCPU();
+
+ // Get the info about the base creature.
+ ProcessBase(ctx, testcpu);
+ const int max_line = base_genome.GetSize();
+ const int inst_size = inst_set.GetSize();
+
+ cGenome mod_genome(base_genome);
+
+ // Loop through all the lines of genome, testing trying all combinations.
+ for (int line_num = 0; line_num < max_line; line_num++) {
+ int cur_inst = base_genome[line_num].GetOp();
+ df.Write(cur_inst, "Original Instruction");
+
+ // Loop through all instructions...
+ double fitness = 0.0;
+ for (int inst_num = 0; inst_num < inst_size; inst_num++) {
+ if (cur_inst == inst_num) {
+ fitness = base_fitness;
+ } else {
+ mod_genome[line_num].SetOp(inst_num);
+ fitness = ProcessGenome(ctx, testcpu, mod_genome);
+ }
+ df.Write(fitness, "Mutation Fitness (instruction = column_number - 2)");
+ }
+
+ df.Endl();
+ mod_genome[line_num].SetOp(cur_inst);
+ }
+
+ delete testcpu;
+}
+
+
+
void cLandscape::ProcessDelete(cAvidaContext& ctx)
{
cTestCPU* testcpu = m_world->GetHardwareManager().CreateTestCPU();
Modified: development/source/main/cLandscape.h
===================================================================
--- development/source/main/cLandscape.h 2007-04-18 18:45:33 UTC (rev 1484)
+++ development/source/main/cLandscape.h 2007-04-18 22:17:47 UTC (rev 1485)
@@ -100,7 +100,7 @@
void BuildFitnessChart(cAvidaContext& ctx, cTestCPU* testcpu);
- void ProcessGenome(cAvidaContext& ctx, cTestCPU* testcpu, cGenome& in_genome);
+ double ProcessGenome(cAvidaContext& ctx, cTestCPU* testcpu, cGenome& in_genome);
void ProcessBase(cAvidaContext& ctx, cTestCPU* testcpu);
void Process_Body(cAvidaContext& ctx, cTestCPU* testcpu, cGenome& cur_genome, int cur_distance, int start_line);
@@ -122,6 +122,7 @@
void ProcessInsert(cAvidaContext& ctx);
void PredictWProcess(cAvidaContext& ctx, cDataFile& df, int update = -1);
void PredictNuProcess(cAvidaContext& ctx, cDataFile& df, int update = -1);
+ void ProcessDump(cAvidaContext& ctx, cDataFile& df);
inline void SetDistance(int in_distance) { distance = in_distance; }
inline void SetTrials(int in_trials) { trials = in_trials; }
Added: development/tests/analyze_dumplandscape/config/analyze.cfg
===================================================================
--- development/tests/analyze_dumplandscape/config/analyze.cfg (rev 0)
+++ development/tests/analyze_dumplandscape/config/analyze.cfg 2007-04-18 22:17:47 UTC (rev 1485)
@@ -0,0 +1,2 @@
+LOAD_SEQUENCE sirzaqcppqqbadpncqblcoqvcecpqcgptcbpfcoqutttycsva
+DumpLandscape
Added: development/tests/analyze_dumplandscape/config/avida.cfg
===================================================================
--- development/tests/analyze_dumplandscape/config/avida.cfg (rev 0)
+++ development/tests/analyze_dumplandscape/config/avida.cfg 2007-04-18 22:17:47 UTC (rev 1485)
@@ -0,0 +1,234 @@
+#############################################################################
+# This file includes all the basic run-time defines for Avida.
+# For more information, see doc/config.html
+#############################################################################
+
+VERSION_ID 2.7.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 # Control output verbosity
+
+### ARCH_GROUP ###
+# Architecture Variables
+WORLD_X 60 # Width of the Avida world
+WORLD_Y 60 # Height of the Avida world
+WORLD_GEOMETRY 2 # 1 = Bounded Grid
+ # 2 = Torus
+NUM_DEMES 0 # Number of independed groups in the population; 0=off
+RANDOM_SEED 0 # Random number seed (0 for based on time)
+HARDWARE_TYPE 0 # 0 = Original CPUs
+ # 1 = New SMT CPUs
+ # 2 = Transitional SMT
+
+### CONFIG_FILE_GROUP ###
+# Configuration Files
+DATA_DIR data # Directory in which config files are found
+INST_SET - # File containing instruction set
+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
+
+### 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)
+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).
+
+### 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.
+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 # The bonus that an organism must accumulate to divide.
+
+### MUTATION_GROUP ###
+# Mutations
+POINT_MUT_PROB 0.0 # Mutation rate (per-location per update)
+COPY_MUT_PROB 0.0075 # Mutation rate (per copy)
+INS_MUT_PROB 0.0 # Insertion rate (per site, applied on divide)
+DEL_MUT_PROB 0.0 # Deletion rate (per site, applied on divide)
+DIV_MUT_PROB 0.0 # Mutation 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)
+PARENT_MUT_PROB 0.0 # Per-site, in parent, on divide
+SPECIAL_MUT_LINE -1 # If this is >= 0, ONLY this line is mutated
+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)
+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.
+
+### 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.
+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
+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 the default bonus
+ # rather than the accumulated bonus of the parent?
+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.
+MAX_LABEL_EXE_SIZE 1 # Max nops marked as executed when labels are used
+DONATE_SIZE 5.0 # Amount of merit donated with 'donate' command
+DONATE_MULT 10.0 # Multiple of merit given that the target receives.
+MAX_DONATE_KIN_DIST -1 # Limit on distance of relation for donate; -1=no max
+MAX_DONATE_EDIT_DIST -1 # Limit on edit distance for donate; -1=no max
+MAX_DONATES 1000000 # Limit on number of donates organisms are allowed.
+
+### PROMOTER_GROUP ###
+# Promoters
+PROMOTERS_ENABLED 0 # Use the promoter/terminator execution scheme.
+ # Certain instructions must also be included.
+PROMOTER_PROCESSIVITY 1.0 # Chance of not terminating before executing each instruction.
+PROMOTER_BG_STRENGTH 0 # Probability of positions that are not promoter
+ # instructions initiating execution (promoters are 1).
+REGULATION_STRENGTH 1 # Strength added or subtracted to a promoter by regulation.
+REGULATION_DECAY_FRAC 0.1 # Fraction of regulation that decays away.
+ # (Max regulation = REGULATION_STRENGTH / REGULATION_DECAY_FRAC)
+
+### 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
+
+### 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
+
+### ANALYZE_GROUP ###
+# Analysis Settings
+MT_CONCURRENCY 1 # Number of concurrent analyze threads
+ANALYZE_OPTION_1 # String variable accessible from analysis scripts
+ANALYZE_OPTION_2 # String variable accessible from analysis scripts
Added: development/tests/analyze_dumplandscape/config/default-classic.org
===================================================================
--- development/tests/analyze_dumplandscape/config/default-classic.org (rev 0)
+++ development/tests/analyze_dumplandscape/config/default-classic.org 2007-04-18 22:17:47 UTC (rev 1485)
@@ -0,0 +1,50 @@
+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 #
+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/analyze_dumplandscape/config/environment.cfg
===================================================================
--- development/tests/analyze_dumplandscape/config/environment.cfg (rev 0)
+++ development/tests/analyze_dumplandscape/config/environment.cfg 2007-04-18 22:17:47 UTC (rev 1485)
@@ -0,0 +1,23 @@
+##############################################################################
+#
+# 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/
+#
+##############################################################################
+
+REACTION NOT not process:value=1.0:type=pow requisite:max_count=1
+REACTION NAND nand process:value=1.0:type=pow requisite:max_count=1
+REACTION AND and process:value=2.0:type=pow requisite:max_count=1
+REACTION ORN orn process:value=2.0:type=pow requisite:max_count=1
+REACTION OR or process:value=3.0:type=pow requisite:max_count=1
+REACTION ANDN andn process:value=3.0:type=pow requisite:max_count=1
+REACTION NOR nor process:value=4.0:type=pow requisite:max_count=1
+REACTION XOR xor process:value=4.0:type=pow requisite:max_count=1
+REACTION EQU equ process:value=5.0:type=pow requisite:max_count=1
Added: development/tests/analyze_dumplandscape/config/events.cfg
===================================================================
--- development/tests/analyze_dumplandscape/config/events.cfg (rev 0)
+++ development/tests/analyze_dumplandscape/config/events.cfg 2007-04-18 22:17:47 UTC (rev 1485)
@@ -0,0 +1 @@
+u begin exit
Added: development/tests/analyze_dumplandscape/config/instset-classic.cfg
===================================================================
--- development/tests/analyze_dumplandscape/config/instset-classic.cfg (rev 0)
+++ development/tests/analyze_dumplandscape/config/instset-classic.cfg 2007-04-18 22:17:47 UTC (rev 1485)
@@ -0,0 +1,52 @@
+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?
+
+#adv-head 1
+#jump-f 1
+#jump-b 1
+#call 1
+#return 1
+#if-bit-1 1
+#get 1
+#put 1
+#h-read 1
+#h-write 1
+#set-head 1
+#search-f 1
+#search-b 1
+
+
+# Works on multiple nops: pop push inc dec IO adv-head
+
+# What if we add a new head. Search will return the location of something,
+# and put the new head there. Then set-head will move another head to that
+# point. In the case of the copy loop, it only needs to be set once and
+# this will speed up the code quite a bit!
+
+# Search with no template returns current position (abs line number) in
+# genome.
\ No newline at end of file
Added: development/tests/analyze_dumplandscape/expected/data/land-dump.dat
===================================================================
--- development/tests/analyze_dumplandscape/expected/data/land-dump.dat (rev 0)
+++ development/tests/analyze_dumplandscape/expected/data/land-dump.dat 2007-04-18 22:17:47 UTC (rev 1485)
@@ -0,0 +1,27 @@
+# 1: Update
+# 2: Probability Lethal
+# 3: Probability Deleterious
+# 4: Probability Neutral
+# 5: Probability Beneficial
+# 6: Average Beneficial Size
+# 7: Average Deleterious Size
+# 8: Total Mutants
+# 9: Distance
+# 10: Base Fitness
+# 11: Base Merit
+# 12: Base Gestation
+# 13: Peak Fitness
+# 14: Average Fitness
+# 15: Average Square Fitness
+# 16: Total Entropy
+# 17: Total Complexity
+# 18: Probability Lethal Epistasis
+# 19: Probability Synergistic Epistasis
+# 20: Probability Antagonistic Epistasis
+# 21: Probability No Epistasis
+# 22: Average Synergistic Epistasis Size
+# 23: Average Antagonistic Epistasis Size
+# 24: Average Size - No Epistasis
+# 25: Total Epistasis Count
+
+-1 0.355102 0.559184 0.079184 0.006531 1243.673084 164.065200 1225 0 893.672727 98304.000000 110.000000 1787.345455 170.628817 121266.126939 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0
Added: development/tests/analyze_dumplandscape/expected/data/org-Seq1.land
===================================================================
--- development/tests/analyze_dumplandscape/expected/data/org-Seq1.land (rev 0)
+++ development/tests/analyze_dumplandscape/expected/data/org-Seq1.land 2007-04-18 22:17:47 UTC (rev 1485)
@@ -0,0 +1,79 @@
+# Detailed dump of the per-site, per-instruction fitness
+# values for the entire single-step landscape.
+# 1: Original Instruction
+# 2: Mutation Fitness (instruction = column_number - 2)
+# 3: Mutation Fitness (instruction = column_number - 2)
+# 4: Mutation Fitness (instruction = column_number - 2)
+# 5: Mutation Fitness (instruction = column_number - 2)
+# 6: Mutation Fitness (instruction = column_number - 2)
+# 7: Mutation Fitness (instruction = column_number - 2)
+# 8: Mutation Fitness (instruction = column_number - 2)
+# 9: Mutation Fitness (instruction = column_number - 2)
+# 10: Mutation Fitness (instruction = column_number - 2)
+# 11: Mutation Fitness (instruction = column_number - 2)
+# 12: Mutation Fitness (instruction = column_number - 2)
+# 13: Mutation Fitness (instruction = column_number - 2)
+# 14: Mutation Fitness (instruction = column_number - 2)
+# 15: Mutation Fitness (instruction = column_number - 2)
+# 16: Mutation Fitness (instruction = column_number - 2)
+# 17: Mutation Fitness (instruction = column_number - 2)
+# 18: Mutation Fitness (instruction = column_number - 2)
+# 19: Mutation Fitness (instruction = column_number - 2)
+# 20: Mutation Fitness (instruction = column_number - 2)
+# 21: Mutation Fitness (instruction = column_number - 2)
+# 22: Mutation Fitness (instruction = column_number - 2)
+# 23: Mutation Fitness (instruction = column_number - 2)
+# 24: Mutation Fitness (instruction = column_number - 2)
+# 25: Mutation Fitness (instruction = column_number - 2)
+# 26: Mutation Fitness (instruction = column_number - 2)
+# 27: Mutation Fitness (instruction = column_number - 2)
+
+18 893.672727 893.672727 893.672727 883.082569 883.082569 893.672727 893.672727 893.672727 893.672727 893.672727 893.672727 893.672727 893.672727 893.672727 893.672727 893.672727 893.672727 893.672727 893.672727 0.000000 893.672727 0.000000 893.672727 893.672727 893.672727 893.672727
+8 893.673 893.673 893.673 0 0 893.673 893.673 893.673 893.673 893.673 893.673 446.836 446.836 893.673 893.673 446.836 1787.35 893.673 893.673 0 893.673 0 893.673 893.673 893.673 893.673
+17 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 893.673 0 0 0 0 0 0 0 0
+25 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 893.673
+0 893.673 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+16 0.4375 0.4375 0.4375 0.441441 0.441441 0.441441 0.441441 0.4375 6.98182 0.441441 0.441441 0.441441 7.06306 0.441441 0.441441 7.06306 893.673 0.4375 0.4375 0 0 0.441441 0.441441 0.441441 0.436364 0
+2 0.4375 0.441441 893.673 0.4375 0.432432 0.4375 0.4375 0.4375 885.622 0.4375 0.4375 0.4375 0.4375 0.4375 0.4375 0.4375 0.4375 0.4375 0.4375 0 0 0 0.4375 0.4375 0.4375 0
+15 446.836 446.836 446.836 446.836 446.836 446.836 446.836 446.836 0.441441 446.836 446.836 446.836 893.673 893.673 446.836 893.673 13.7982 446.836 446.836 0 0 0 0 0.441441 446.836 0
+15 450.936 450.936 7.12727 446.836 446.836 446.836 446.836 446.836 7.06306 446.836 446.836 446.836 446.836 446.836 893.673 893.673 6.89908 446.836 446.836 0 0 0 0 0.441441 446.836 0
+16 111.709 225.468 28.5091 223.418 223.418 111.709 223.418 223.418 28.2523 111.709 111.709 111.709 111.709 111.709 111.709 111.709 893.673 223.418 223.418 0 0 0 0 0.882883 223.418 0
+16 3.53153 223.418 111.709 223.418 220.771 13.9636 223.418 221.405 223.418 13.9636 13.9636 13.9636 13.9636 13.9636 13.9636 223.418 893.673 221.405 221.405 0 0 0 0 0.882883 218.074 0
+1 56.5045 893.673 223.418 885.622 885.622 885.622 885.622 877.714 0.875 885.622 885.622 885.622 885.622 56 56 885.622 14 877.714 877.714 0 0 0 0 0.875 875.055 885.622
+0 893.673 893.673 893.673 893.673 883.083 13.9636 893.673 893.673 223.418 13.9636 13.9636 13.9636 13.9636 13.9636 13.9636 1787.35 13.7982 893.673 893.673 0 0 0 0 0.882883 893.673 0
+3 893.673 893.673 893.673 893.673 13.7982 13.9636 893.673 893.673 223.418 13.9636 13.9636 13.9636 13.9636 13.9636 13.9636 1787.35 0.882883 893.673 893.673 0 0 0 0 0.882883 893.673 0
+15 14.0917 14.0917 14.0917 13.9636 13.6727 13.9636 13.9636 13.9636 13.9636 13.9636 0.882883 13.9636 13.9636 13.9636 13.9636 893.673 13.9636 13.9636 13.9636 0 0 0 0 13.9636 13.9636 0
+13 13.8378 27.9273 7.06306 27.9273 13.6727 1.76577 27.9273 27.6757 1.76577 27.9273 27.9273 27.9273 27.9273 893.673 1.76577 1.76577 27.9273 27.6757 27.6757 0 0 27.9273 27.9273 1.76577 13.6727 0
+2 27.9273 13.9636 893.673 13.8378 13.8378 13.8378 13.8378 13.8378 442.811 13.8378 13.8378 110.703 13.8378 13.8378 27.6757 13.8378 13.8378 13.8378 13.8378 0 0 0 0 0.875 13.8378 0
+16 110.703 110.703 110.703 111.709 111.709 111.709 111.709 110.703 0.882883 111.709 111.709 111.709 111.709 111.709 111.709 111.709 893.673 110.703 110.703 0 0 0 0 0.882883 13.6727 0
+1 7 893.673 13.9636 885.622 27.0991 221.405 885.622 885.622 27.6757 221.405 221.405 221.405 221.405 221.405 221.405 221.405 221.405 885.622 885.622 0 0 0 0 1.75 885.622 0
+11 27.6757 27.6757 27.6757 27.9273 27.5963 1.76577 27.9273 27.6757 1.76577 27.9273 27.9273 893.673 27.9273 27.9273 27.9273 1.76577 27.9273 27.6757 27.6757 0 0 27.9273 27.9273 1.76577 27.5963 0
+2 27.9273 27.9273 893.673 27.6757 27.3455 27.6757 27.6757 27.6757 27.6757 27.6757 27.6757 27.6757 27.6757 27.6757 27.6757 27.6757 27.6757 27.6757 27.6757 0 0 0 9.03303 1.75 27.6757 0
+14 223.418 223.418 223.418 223.418 220.771 223.418 223.418 223.418 223.418 223.418 223.418 223.418 223.418 223.418 893.673 893.673 223.418 223.418 223.418 0 0 0 0 1.76577 223.418 0
+16 225.468 14.0917 112.734 13.9636 13.9636 13.9636 13.9636 13.9636 6.98182 13.9636 13.9636 13.9636 13.9636 223.418 13.9636 13.9636 893.673 13.9636 13.9636 0 0 0 0 1.76577 13.9636 0
+21 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 893.673 0 0 0 0
+2 0 0 893.673 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+4 56 56 56 56.5045 893.673 7.06306 56.5045 56 7.06306 7.06306 7.06306 7.06306 7.06306 7.06306 7.06306 7.06306 56.5045 56 56 32.4974 7.06306 56.5045 0 7.06306 893.673 56.5045
+2 56.5045 893.673 893.673 55.3514 55.3514 55.3514 55.3514 55.3514 55.3514 55.3514 55.3514 55.3514 55.3514 55.3514 55.3514 55.3514 55.3514 55.3514 55.3514 55.3514 55.3514 55.3514 55.3514 55.3514 55.3514 55.3514
+15 893.673 893.673 893.673 893.673 893.673 893.673 893.673 893.673 893.673 893.673 893.673 893.673 893.673 893.673 893.673 893.673 893.673 893.673 893.673 893.673 893.673 893.673 893.673 893.673 893.673 893.673
+16 6.91892 6.91892 6.91892 6.98182 6.89908 6.98182 6.98182 6.91892 6.98182 6.98182 6.98182 6.98182 6.98182 6.98182 6.98182 6.98182 893.673 6.91892 6.91892 0 6.98182 6.98182 0 6.98182 6.89908 6.98182
+2 6.98182 111.709 893.673 110.703 27.3455 27.6757 110.703 110.703 110.703 6.91892 6.91892 6.91892 6.91892 110.703 6.91892 6.91892 6.91892 110.703 110.703 0 6.91892 0 0 6.91892 110.703 110.703
+6 223.418 223.418 223.418 223.418 223.418 55.8545 893.673 223.418 223.418 55.8545 55.8545 55.8545 55.8545 55.8545 55.8545 55.8545 223.418 223.418 223.418 0 55.8545 0 0 55.8545 223.418 223.418
+15 56.367 56.367 56.367 55.8545 55.8545 55.8545 55.8545 55.8545 55.8545 55.8545 55.8545 55.8545 55.8545 55.8545 55.8545 893.673 55.8545 55.8545 55.8545 0 55.8545 0 0 55.8545 55.8545 55.8545
+19 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 893.673 0 0 0 0 0 0
+2 0 893.673 893.673 901.872 901.872 56.367 56.367 223.418 901.872 56.367 56.367 56.367 56.367 56.367 56.367 56.367 56.367 893.673 893.673 0 56.367 0 979.862 56.367 55.7037 901.872
+1 893.673 893.673 893.673 893.673 893.673 55.8545 55.8545 223.418 893.673 55.8545 55.8545 55.8545 55.8545 55.8545 55.8545 55.8545 55.8545 893.673 893.673 0 55.8545 0 0 55.8545 893.673 893.673
+15 55.8545 55.8545 55.8545 55.8545 55.8545 55.8545 55.8545 55.8545 55.8545 55.8545 55.8545 55.8545 55.8545 55.8545 55.8545 893.673 55.8545 55.8545 55.8545 0 55.8545 0 0 55.8545 55.8545 55.8545
+5 0 55.8545 55.8545 55.8545 220.771 893.673 55.8545 55.3514 55.8545 55.8545 55.8545 55.8545 55.8545 55.8545 55.8545 55.8545 55.8545 55.3514 55.3514 0 55.8545 0 0 55.8545 220.771 55.8545
+2 55.8545 55.8545 893.673 55.3514 55.3514 55.3514 55.3514 55.3514 55.3514 55.3514 55.3514 55.3514 55.3514 55.3514 55.3514 55.3514 55.3514 55.3514 55.3514 0 55.3514 0 0 55.3514 55.3514 55.3514
+14 223.418 223.418 223.418 223.418 223.418 55.8545 223.418 223.418 55.8545 55.8545 55.8545 55.8545 55.8545 55.8545 893.673 55.8545 223.418 223.418 223.418 0 55.8545 0 0 223.418 223.418 223.418
+16 0 56.367 56.367 55.8545 55.8545 55.8545 55.8545 55.8545 55.8545 55.8545 55.8545 55.8545 55.8545 55.8545 55.8545 55.8545 893.673 55.8545 55.8545 0 55.8545 0 0 55.8545 55.8545 55.8545
+20 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 893.673 0 0 0 0 0
+19 0 0 0 431.641 431.641 651.02 651.02 651.02 651.02 651.02 651.02 651.02 651.02 651.02 651.02 651.02 651.02 651.02 0 893.673 768 0 651.02 651.02 614.4 0
+19 0 651.02 651.02 431.641 431.641 651.02 651.02 651.02 651.02 651.02 651.02 651.02 651.02 651.02 651.02 651.02 651.02 651.02 0 893.673 564.966 0 651.02 651.02 614.4 0
+19 651.02 651.02 651.02 0 0 651.02 651.02 651.02 651.02 651.02 651.02 651.02 651.02 651.02 651.02 651.02 651.02 651.02 0 893.673 0 0 651.02 651.02 0 0
+24 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 893.673 0
+2 0 0 893.673 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+18 0 0 0 877.714 877.714 0 0 0 0 0 0 0 0 0 0 0 0 0 893.673 0 0 0 0 0 877.714 877.714
+21 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 893.673 0 0 0 0
+0 893.673 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Added: development/tests/analyze_dumplandscape/test_list
===================================================================
--- development/tests/analyze_dumplandscape/test_list (rev 0)
+++ development/tests/analyze_dumplandscape/test_list 2007-04-18 22:17:47 UTC (rev 1485)
@@ -0,0 +1,35 @@
+;--- Begin Test Configuration File (test_list) ---
+[main]
+args = -a ; Command line arguments to pass to the application
+app = %(app)s ; Application path to test
+nonzeroexit = disallow ; Exit code handling (disallow, allow, or require)
+ ; disallow - treat non-zero exit codes as failures
+ ; allow - all exit codes are acceptable
+ ; require - treat zero exit codes as failures, useful
+ ; for creating tests for app error checking
+createdby = David Bryson ; Who created the test
+email = brysonda at egr.msu.edu ; Email address for the test's creator
+
+[consistency]
+enabled = yes ; Is this test a consistency test?
+long = no ; Is this test a long test?
+
+[performance]
+enabled = yes ; Is this test a performance test?
+long = no ; Is this test a long test?
+
+; The following variables can be used in constructing setting values by calling
+; them with %(variable_name)s. For example see 'app' above.
+;
+; app
+; builddir
+; cpus
+; mode
+; perf_repeat
+; perf_user_margin
+; perf_wall_margin
+; svn
+; svnmetadir
+; svnversion
+; testdir
+;--- End Test Configuration File ---
Copied: development/tests/analyze_truncate_lineage_fulllandscape (from rev 1482, development/tests/analyze_trunc_lin_land)
More information about the Avida-cvs
mailing list