Crate genevo [] [src]

genevo

genevo is a library for implementing and executing simulations of optimization and search problems using a genetic algorithm (GA).

Installation

You can use this library by adding the following lines to your Cargo.toml file:

Be careful when using this code, it's not being tested!
[dependencies]
genevo = "0.1"

and adding extern crate genevo; to your crate root.

Modules

algorithm

The algorithm module defines traits and structs for implementing concrete algorithms such as the ga::GeneticAlgorithm and various operators as defined in the operator module.

encoding

The encoding module provides basic scheme of encoding genetic::Genotypes.

ga

This module provides an algorithm::Algorithm which implements the genetic algorithm (GA).

genetic

The 'genetic' module defines types for the genetic algorithm. The traits defined in this module should be implemented to formulate an optimization or search problem. The types are named after terms as they are found in genetic biology.

mutation

The mutation module provides operator::MutationOps implementation of various mutation schemes for binary encoded, value encoded, permutation encoded and tree encoded genetic::Genotypes.

operator

The operator module defines the types of genetic operators as traits. A genetic operator defines a function that performs a specific stage in the genetic algorithm. Each of these genetic operator can be implemented in variety of ways using different algorithms and methods.

population

The population module defines the Population struct and the PopulationBuilder for building random populations.

prelude
random

The random module defines functions that are used to generate random values for specific purposes.

recombination

The recombination module provides default implementations of the operator::CrossoverOp. The provided crossover operators are organized in the categories: * discrete - crossover schemes working on discrete values of a bitset or or list of values. * order - crossover schemes for permutation encoded values.

reinsertion

The reinsertion module provides implementations of the operator::ReinsertionOp for basic strategies of reinsertion.

selection

The selection module provides implementations of the operator::SelectionOp genetic operator.

simulation
statistic

The statistic module provides functionality to collect and display statistic about a genetic algorithm application and its execution.

termination

Termination determines when to stop the process of the genetic algorithm. Common termination conditions are:

types

This module provides implementations of the genetic::Fitness trait for some primitive types, such as i32, i64 et cetera. This is because Rust does not allow programmers to implement a foreign trait for a foreign type, which would stop you as a library user from using primitive types as fitness values.