Package com.rubecula.darwin.domain.helper

Darwin

See:
          Description

Interface Summary
Allele Models the concept of an Allele, that is to say a specific instance of a Genes which "compete" for presence at a Locus
Attribute Defines the methods supported by Attribute objects.
Basic  
Beans  
Cache This defines a general caching mechanism where the cache is made up of entries of the form: key -> value, for example when some significant amount of calculation is required to generate value and we therefore prefer to look it up to see if it's already been calculated.
Cache_MBean  
CacheSignature Interface to define the notion of a cache key signature.
Census  
Censusible This interface defines the census operation.
Chromosome Defines part of a Genomic.
Colony This super-interface of Population addresses the more basic aspects of an Evolvable, Visualizable and Countable group.
EcoFactor Defines the methods supported by the EcoFactor interface.
EitherOr  
Environment Defines the concept of an Environment, modeled as a map of EcoFactor objects.
EnvironmentListener Defines the mechanism for notifying interested objects about changes in an environment.
ExPhen Type to represent an "extended phenotype" that is to say a variant of an EcoFactor which has been modified by an organism whose Genome is expressed as the ExPhen.
Expresser Defines the operations supported by an "expresser", that is an object that can take a Gene (or Genome) and express that gene(s) in the context of an environment.
Expression Generic marker interface for Traits and ExtPhen
Fecundity Defines methods to determine how fecund will be a particular mating in a population, i.e.
Fit Defines the aspect of an object which measures its fitness with respect to an environment.
Fitness Type representing a pair whose mutual fitness can be estimated.
FitnessEngine Registry for fitness functions for Taxon (Evolutionary Computation) Systems.
FitnessFunction  
Gene Defines the operations and properties of a Gene.
GenerationListener Defines a callback method for invocation whenever a Evolution runs.
Genes This interface represents the read-only aspects of (possibly a subset of) a Genome, although the Ploidy is not included here.
Genetic Interface with defines a "genetic" object, i.e.
Genome Defines the genetic information contained in an Organism belonging to a Taxon.
Genomic Defines the genetic information contained in a Taxon.
Genotype A Genotype is a (diploid or haploid) set of genes which can be manipulated.
HasPhenotypeCache  
Insular This defines the concept of separation, as of the separation of a colony from other colonies.
Locus Defines a Locus at which one of several Alleles may appear.
MateChoice Defines methods to determine how mates are chosen.
Mating Defines the mating of a pair of organisms, one male, one female.
Meiosis Defines how alleles are chosen during Meiosis.
Mortal Interface to define the operations supported by a "mortal" object, i.e.
Mortality Defines how mortality is calculated for individual objects (organisms) in Taxons.
Mutator Defines the methods for gene and genome mutators.
Nuclear Defines operations supported by a Nuclear object.
Organism Defines methods on an individual organism within a Taxon.
Pharacter This interface represents the concept of a Phenotypic Character.
Phenome Defines the methods for implementations of the Phenome interface.
Phenotype Defines the methods supported by instances of Phenotype interface.
Ploidy This interface defines the concept of "ploidy", that is to say whether a genetic object is diploid or haploid, i.e.
Population Defines the properties (methods) which characterize a population in an Evolutionary Computation.
PopulationExposed MBean interface for Population.
Progenitor This marker interface represents the "parent" of a Locus.
Quantifiable This interface is in lieu of a Java interface to do the same thing.
Realm Interface which defines the concept of the "model" which is undergoing evolution.
Registry  
Replicator  
SexLinked  
Sexual Defines the one method which must be supported by sex-based objects, viz.
Sink Interface to capture the essence of place where output can go, a sink in the engineering sense of sources and sinks.
SinkCensus This application interface is used to define how an individual object should be processed for a census.
Taxon Defines the methods supported by a unit of evolutionary computation (Taxon).
Trait A Trait is the phenotypic analog to a (genotypic) Gene.
TraitMap Defines the operations on a read-only collection of Trait instances.
Variant Defines the methods support by instances of the Variant interface.
 

Class Summary
Attribute_ Abstract class representing a named attribute, and is the base class for Variant_, Allele_ and EcoFactor_.
Attribute_Standard Default implementation of Attribute.
Cache_<K extends Identifiable,V> Abstract base class for implementing a Cache.
Census_  
Census_Log  
Census_Sink Base implementation the SinkCensus interface.
Census_Standard Class to provide a default implementation of Census_Sink
FitnessCache This cache maintains a set of fitness values indexed by Signature/FitnessEngine pair.
FitnessCacheKey This class is used to form the key for the FitnessCache
GenerationListener_  
GenerationListener_Standard  
LogFactoryNoOp This class is necessary to allow the system to run as a (remote) Applet.
PhenotypeCache This cache maintains a set of Phenotypes indexed by Basic/Identifiable pair.
PhenotypeCacheKey This class is used to form the key for the PhenotypeCache
Realm_ Base implementation of Realm.
Sink_  
Sink_Bucket This is the bit bucket.
Sink_Log  
 

Exception Summary
DarwinException This application-independent exception class is used to track runtime exceptions which may occur in the Darwin classes.
GeneticsException  
 

Package com.rubecula.darwin.domain.helper Description

Darwin

Contents:


Copyright Notice

Darwin Framework Project.
Copyright (C) 2003, 2007, 2009 Rubecula Software.
This library is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU General Public License along with this library; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA

CVS Version: $Revision: 1.5 $

Back to Top


Helper Package Overview

Here's an update of the registration text:

This project provides a set of framework classes for the development of Evolutionary Computation applications in Java. Such applications, which might be classed as genetic algorithms, genetic programming, etc., enable problems, typically complex and non-analytical, to be solved by successively evaluating a population of possible solutions and breeding from the better-fitting solutions to generate a new population. The code is platform-independent. It is my intention to make this project a resource which can be used and or contributed to by anyone working in the field. As such it is designed to be extremely general in its class structure, with a well-defined separation between method (framework) code and application code.

Back to Top


Darwin Philosophy

Here are some of the tenets of the philosophy behind the design and development of Darwin:

Back to Top


Programming Conventions

Back to Top


Class Structure

The following is an introduction to the major classes and interfaces of the darwin package. Use it as a starting point and/or as an adjunct to the javadoc. [NOTE: This section is far from complete - see the javadoc!] However, if there are discrepancies, then the javadoc must of course be considered definitive.  Most of the classes described are found in the com.rubecula.darwin package.  Some utilities, of a more general nature, are found in com.rubecula.util.

Following are descriptions of the darwin framework interfaces each having a simple concept name: Concept.

Following are descriptions of the darwin classes.

Back to Top

Important Notes:

The package is bundled with the Jakarta Commons Logging facility, without which it will not compile. You don't need your own logger to work with JCL but a log4j configuration file is provided and, if log4j is in your classpath, it will run as expected.
However, by default, all logging is turned off (logging is directed to the NoOpLog implementation). In order to turn it on, open up LogFactory_Darwin.java (currently in the util package but needs to be moved) and comment out the return new NoOpLog(); line and uncomment the LogFactory.getLog... line.

TODO THIS IS OUTDATED. You will find a working example applet: the PepperedMoth example, in the examples package. This applet has an optional feature provided which allows you to vary the formula expressions (in the options window of the applet). Normally, you will leave this feature off (and filter out the compilation of the Evaluator_JEP class which you won't need). In order to turn this feature "on" you must do the following:

  1. Procure an (open-source) license to JEP;
  2. Reenable compilation of Evaluator_JEP;
  3. In the config/pepperedMoth.properties file, set the expressionsEnabled property value to true.


Links:

Back to Top


Last Updated: 2007-03-01 By: Robin Hillyard



Copyright © 2010 Rubecula Software, LLC. All Rights Reserved.