Package org.opt4j.core.optimizer

Provides the classes for the optimizer.

The Optimizer represents an optimization algorithm. Usually, all iteration-based Optimizers are derived from the IterativeOptimizer.

The IterativeOptimizer initializes the Population by using the IndividualFactory to get new Individuals. In each iteration, the IterativeOptimizer uses Operators to vary the Genotypes. The package org.opt4j.operators contains predefined Operator classes which are applicable for different Genotypes.

The IterativeOptimizer is managed by the OptimizationMediator which itself is an AbstractOptimizer. The AbstractOptimizer implements some essential methods for coupling optimizers with the framework. It interacts with the OptimizerIterationListeners which are informed whenever an iteration is complete, the OptimizerStateListeners which are informed whenever the optimization starts or stops, and the Control: The Control allows to pause and resume, stop, or terminate the optimization process. While the Population contains the Individuals of the current Iteration, the Archive contains the non-dominated Individuals that were obtained throughout the whole optimization process. The AbstractOptimizer updates the Archive with the current Population and triggers the Iteration count. Instead of using the Decoder and Evaluator directly, the IndividualCompleter is used by Optimizers to determine the phenotype and the Objectives of new Individuals in the Population.