Class ConditionalParameter<T>

java.lang.Object
org.uma.evolver.parameter.ConditionalParameter<T>
Type Parameters:
T - the type of the parent parameter's value that will be evaluated by the condition

public class ConditionalParameter<T> extends Object
Represents a parameter that becomes active only when a specified condition is satisfied by the value of another parameter in a multi-objective metaheuristic parameter space.

This class is designed to model conditional parameter relationships commonly found in metaheuristic algorithm configurations, where certain parameters are only relevant when a parent parameter takes specific values. For example, archive-related parameters might only be applicable when the algorithm variant is set to use an external archive.

The conditional relationship is defined through a Predicate that evaluates the parent parameter's value. When the predicate returns true, the associated parameter becomes active and should be considered during parameter space exploration or algorithm configuration.

Example usage in YAML configuration:


 algorithmResult:
   type: categorical
   values:
     population: {}
     externalArchive:
       conditionalParameters:
         populationSizeWithArchive:
           type: integer
           range: [10, 200]
 

In this example, populationSizeWithArchive is a conditional parameter that only becomes active when algorithmResult equals "externalArchive".

This class is immutable and thread-safe once constructed.

Since:
1.0
Version:
1.0
Author:
[Author Name]
See Also: