| Interface | Description |
|---|---|
| Creator<G extends Genotype> | |
| Decoder<G extends Genotype,P> | |
| Evaluator<P> |
The
Evaluator evaluates phenotypes to Objectives. |
| Class | Description |
|---|---|
| MultiEvaluator |
The
MultiEvaluator takes all registered Evaluators and uses
them to evaluate the phenotype. |
| ProblemModule |
The
ProblemModule is an abstract module class for the binding of the
Creator, Decoder, and Evaluator. |
| Annotation Type | Description |
|---|---|
| Priority |
Provides the classes for the optimization problem. To define a new
optimization problem, the Creator, the
Decoder, and the
Evaluator must be implemented.
CreatorCreator is the creation of
random Genotypes. It is typically used at the
beginning of an optimization by the
Optimizer to create the initial
Population. The
Genotypes, the Creator
creates, define the search space for the
Optimizer. The package
org.opt4j.core.genotype contains predefined
Genotype classes that allow a modular assembly. Thus,
usually you do not have to write your custom Genotype.
DecoderDecoder is the decoding
from a given Genotype to a corresponding phenotype.
The phenotype is the object you expect as a solution of the optimization.EvaluatorEvaluator is the
evaluation of phenotypes to the Objectives. These are
typically used by the Optimizer to determine
the fitness of the Individual or by the
Archive to determine if the
Individual Pareto-dominates another one.
Inherit from the ProblemModule to bind a
Creator,
Decoder, and
Evaluator belonging together.
For multi-objective optimization, one
Evaluator can set several
Objectives or - to allow a separation of concerns -
also several Evaluators can be added using the
ProblemModule. They are managed by the
MultiEvaluator. The order in which the
MultiEvaluator calls the
Evaluators can be influenced by the
Priority.