Skip to content

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

@lau_pau

/cc @berber