A Genetic Algorithm Tool for Search and Optimization, Version 1.0
Adopt This Application!
SOURCE CODE AVAILABLE
SPLICER is a genetic algorithm tool which can be used to solve search
and optimization problems. Genetic algorithms are adaptive search procedures
(i.e. problem solving methods) based loosely on the processes of
natural selection and Darwinian "survival of the fittest."
the underlying framework and structure for building a genetic algorithm
application. These algorithms apply genetically-inspired operators
to populations of potential solutions in an iterative fashion, creating
new populations while searching for an optimal or near-optimal solution
to the problem at hand.
SPLICER 1.0 was created using a modular architecture
that includes a Genetic Algorithm Kernel, interchangeable Representation
Libraries, Fitness Modules and User Interface Libraries, and
well-defined interfaces between these components. The architecture supports
portability, flexibility, and extensibility.
SPLICER comes with all
source code and several examples. For instance, a "traveling salesperson"
example searches for the minimum distance through a number of cities visiting
each city only once. Stand-alone SPLICER applications can be used without
any programming knowledge. However, to fully utilize SPLICER within
new problem domains, familiarity with C language programming is essential.
SPLICER's genetic algorithm (GA) kernel was developed independent
of representation (i.e. problem encoding), fitness function or user interface
type. The GA kernel comprises all functions necessary for the manipulation
of populations. These functions include
In addition, miscellaneous functions are included in
the kernel (e.g., random number generators).
- the creation of populations
and population members,
- the iterative population model,
- parent selection and sampling,
- and the generation of population
schemes and functions are defined and stored in interchangeable representation
libraries. This allows the GA kernel to be used with any representation
The SPLICER tool provides representation libraries for binary
strings and for permutations. These libraries contain functions for the
definition, creation, and decoding of genetic strings, as well as multiple
crossover and mutation operators. Furthermore, the SPLICER tool defines
the appropriate interfaces to allow users to create new representation libraries.
Fitness modules are the only component of the SPLICER system a user
will normally need to create or alter to solve a particular problem. Fitness
functions are defined and stored in interchangeable fitness modules
which must be created using C language.
Within a fitness module, a user can
create a fitness (or scoring) function, set the initial values for various
SPLICER control parameters (e.g., population size), create a function
which graphically displays the best solutions as they are found, and provide
descriptive information about the problem. The tool comes with several
example fitness modules, while the process of developing a fitness
module is fully discussed in the accompanying documentation.
The user interface is event-driven and provides graphic output in windows.
SPLICER carries the NASA case number MSC-21904 for the Macintosh version, and MSC-22009 for the SUN version. It was originally released as part of the NASA COSMIC collection.
More software from National Technology Transfer Center