Package com.rubecula.darwin.core

Darwin

See:
          Description

Interface Summary
Allele Models the concept of an Allele, that is to say a specific instance of one of a set of Genes which "compete" for presence at a Locus
Asexual Defines operations on asexual organisms.
Attribute Defines the methods supported by Attribute objects.
Census This application interface is used to define how an individual object should be processed for a census.
CensusibleCollection Defines how to census an object which is a collection of parts.
Darwinian Defines the methods supported by an evolutionary computation (Darwinian) system.
EcoFactor Defines the methods supported by the EcoFactor interface.
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.
Expression Defines the methods to be implemented by an expresser of genes, i.e.
Factory Defines the methods which will instantiate new objects for an evolutionary computation system.
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 Defines fitness functions for Darwinian (Evolutionary Computation) Systems.
Gene Defines the operations and properties of a Gene.
Generatable Ddefines the mechanism by which the next generation of, for example, a population is created.
GenerationListener Defines a callback method for invocation whenever the GenerationTimerTask runs.
Genome Defines the genetic information contained in a Darwinian system.
Genotype Defines the genetic information contained in an Organism belonging to a Darwinian system.
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.
Mortality Defines how mortality is calculated for individual objects (organisms) in Darwinian Systems.
Mutator Defines the methods for gene and genotype mutators.
Organism Defines methods of an individual organism within a Darwinian System.
Phenome Defines the methods for implementations of the Phenome interface.
Phenotype Defines the methods supported by instances of Phenotype interface.
Population Defines the properties (methods) which characterize a population in an Evolutionary Computation.
PopulationListener Defines the mechanism for notifying interested objects about changes in a population.
Sexual Defines the one method which must be supported by sex-based organisms, viz.
Trait Defines the methods support by instances of the Trait interface.
TraitMap Defines the operations on a collection of Trait instances.
TraitValue Defines how to get a numerical value for a trait.
 

Class Summary
Allele_Abstract This abstract provides base operations for implementations of Allele, which are specific genes which may appear at a Locus.
Allele_Default A trivial implementation of Allele which models two competing alleles: A and B.
Allele_Key_Resetter Essentially a static class - the only method is a class method which resets the Allele key value.
Attribute_Abstract Abstract class representing a named attribute, and is the base class for Trait_Abstract, Allele_Abstract and EcoFactor_Abstract.
Census_Abstract Base implementation the Census interface.
Census_Default Class to provide a default implementation of Census_Abstract
CensusUtils This Abstract class provides a class method for enumerating collections of objects for census purposes.
Darwinian_Abstract Abstract class implementing Darwinian interface.
Darwinian_Default Default implementation of Darwinian.
DarwinProperties A property resource bundle specifically useful to a Darwinian system.
EcoFactor_Abstract Abstract class providing base functionality for implementers of EcoFactor.
EcoFactor_Default This default implementer of EcoFactor represents an environmental factor with a double value.
Environment_Abstract Abstract class defining base methods which implement Environment interface.
Environment_Default This class provides a default implementation of the Environment interface.
Expression_Abstract Abstract class defining base implementation for Expression (of Genes).
Expression_Default Default implementation of Expression.
Factory_Abstract Abstract Factory.
Factory_Default Default implementation of Factory.
Fecundity_Abstract Base implementation of the Fecundity interface.
Fecundity_Default Default implementation of Fecundity.
Fitness_Abstract Defines the base methods and fields for an implementation of Fitness interface.
Fitness_Default Default implementation of Fitness interface.
Gene_Abstract This abstract class represents a particular gene at a locus of a genome.
Gene_Diploid Concrete class to model a diploid gene (locus).
Gene_Haploid Concrete class to model a haploid gene (locus).
GenerationTimerTask Timer Task which, when in "running" state, will invoke the next generation of a Generatable object (provided by the constructor).
Genome_Abstract Abstract class implementing base methods for the Genome interface.
Genome_Diploid Concrete implementation of Genome representing the possible genetic information contained in a Darwinian system.
Genome_Haploid Concrete implementation of Genome representing the possible genetic information contained in a Darwinian system.
Genotype_Abstract This abstract class provides base definitions for implementers of Genotype, the genetic information contained in an Organism belonging to a Darwinian system.
Genotype_Default Default implementation of Genotype interface.
Locus_Abstract Abstract class defining the base methods and fields for an implementer of Locus.
Locus_Default This concrete implementation of Locus provides a trivial implementation.
MateChoice_Abstract Abstract class defining the base methods of MateChoice.
MateChoice_Default Default implementation of MateChoice.
Mating_Abstract Abstract class to define base methods for implementers of Mating.
Mating_Default This is the default implementation class for the Mating interface
Meiosis_Abstract Abstract class which defines the base operations for an implementation of Meiosis.
Meiosis_Default Default implementation for the Meiosis interface.
Mortality_Abstract Abstract class which defines the base methods and fields needed to implement the Mortality interface.
Mortality_Default This default implementation of Mortality provides a basic and reasonable calculation of mortality.
Mutator_Abstract Abstract class to define the base methods and fields for instances of Mutator interface.
Mutator_Null This class defines the "null" mutator, ie.
Organism_Abstract Abstract class defining the base methods and fields of an implementation of Organism interface.
Organism_Asexual This concrete class represents an individual organism within a Darwinian System.
Organism_Sexual This concrete class represents an individual organism within a Darwinian System.
Phenome_Abstract Abstract class defining base methods and fields for implementations of Phenome interface.
Phenome_Default This concrete class represents the template for Phenotypes of Organisms within a Darwinian system.
Phenome_Numerical Concrete class Phenome_Numerical is a simple implementation of Phenome with the one policy that Traits can be reduced to a numerical value.
Phenotype_Abstract Abstract class to define the base methods and fields for an implementation of Phenotype.
Phenotype_Default This concrete class provides a default phenotype for an organism.
Population_Abstract Abstract class defining the base methods and fields for an instance of the Population interface.
Population_Default This concrete class is the default implementation of Population.
PopulationListener_Census Implementation of PopulationListener which knows how to take a census of the (changed) population.
Trait_Abstract This abstract class defines the base methods and fields for an implementation of Trait.
Trait_Default A trivial implementation of the Trait interface.
TraitMap_Abstract Abstract class to define base methods and fields for a String-keyed map of Trait objects.
 

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

Package com.rubecula.darwin.core Description

Darwin

Contents:


Copyright Notice

Darwin Framework Project.
Copyright (C) 2003, 2007 Rubecula Software.
This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 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 Lesser 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.4 $

Back to Top


Core 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.

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