Package org.opt4j.core.problem

Provides the classes for the optimization problem. To define a new optimization problem, the Creator, the Decoder, and the Evaluator must be implemented.

Creator
The task of the Creator 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.
Decoder
The task of the Decoder is the decoding from a given Genotype to a corresponding phenotype. The phenotype is the object you expect as a solution of the optimization.
Evaluator
The task of the Evaluator 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.