Epsilon Constraint Multiobjective Strategy
Summary
The epsilon constraint method is a method which turns MOOPs into single-objective problem by converting all objective functions but one to constraints.
Component
search/ea
Expected Behavior
Given a multi-objective problem, the user should be able to specify one main 'goal objective' (via epsilon comparator) as well as define constraints for remaining objectives (handled by epsilon handler). The EA should then optimise the goal, and all candidates should respect the specified constraints.
Use Case
Multiobjective Optimisation
Possible approach
User defines goal objective via epsilon-comparator:
'comparator' := 'epsilon-comparator' {
'goal-objective' := data 'y:0';
};
This comparator only considers the fitness value of the specified goal objective.
User then specifies an epsilon-handler
with objectives and corresponding bounds:
handlers := [
'epsilon-handler' {
objectives := [data 'y:1'];
bounds := [5.0];
}
];
These constraints are added to the constraints list as constraints of type epsilon
. Then, they are converted to Jenetics Constraints using an epsilon repair strategy. Currently, this repair strategy is just like repair with random, except random candidates with fitness values outside of the constraint are rerolled.
Contact Person
/cc @berber