Orbital library

orbital.algorithm.evolutionary Interface GeneticAlgorithmProblem

All Superinterfaces:
AlgorithmicProblem

`public interface GeneticAlgorithmProblemextends AlgorithmicProblem`

Hook class for problems solved by GeneticAlgorithm.

Prior to using a genetic algorithm to solve a problem you need to decide:

1. Which `genetic representation` to use for the members in state space.
2. What `fitness-evaluation` to use as an objective function to maximize and guide search.
3. Perhaps, define customized `reproduction` operators for the gene representation, in order to support convergence with domain knowledge.
4. Decide which `selection` function to apply.
These decisions characterizing a problem are encapsulated by an implementation of `GeneticAlgorithmProblem`.

Author:
André Platzer
`GeneticAlgorithm`, `GeneralSearchProblem`

Method Summary
` Function` `getEvaluation()`
Get the evaluation objective function.
` Population` `getPopulation()`
Generate (create) the initial population of genomes.
` boolean` `isSolution(Population pop)`
Check whether the given population of choices is a valid solution to the problem.

Method Detail

getEvaluation

`Function getEvaluation()`
Get the evaluation objective function. Specifies the algorithm for evaluating of a Genome's fitness.

A genetic algorithm will maximize this objective function.

`EvaluativeAlgorithm.getEvaluation()`

getPopulation

`Population getPopulation()`
Generate (create) the initial population of genomes.

Returns:
the initial population created with an initial set of problem-specific genomes defining the genetic representation for the members in the state space.
`Population.create(Genome, int)`

isSolution

`boolean isSolution(Population pop)`
Check whether the given population of choices is a valid solution to the problem.

Returns:
whether we found a solution to the problem. Often implemented with a convergence criterion.
Preconditions:
partialSolutions resulted in repeated calls of solve after a single call to getInitialPartialSolutions.
Postconditions:
RES indicates whether we found a solution to the problem

Orbital library
1.3.0: 11 Apr 2009