saealib.Termination

class saealib.Termination(*conditions)[source]

Bases: object

Termination class to determine when to stop the optimization process.

Accepts one or more callable conditions. Each condition receives an OptimizationContext and returns True when the process should terminate. The optimization stops when any condition evaluates to True.

Parameters:

*conditions (TerminationCondition) – One or more callable conditions. Each must accept an OptimizationContext and return bool.

Raises:
  • ValueError – If no conditions are provided.

  • TypeError – If any condition is not callable.

Examples

>>> termination = Termination(max_fe(2000))
>>> termination = Termination(max_fe(2000), max_gen(100))
>>> termination = Termination(
...     max_fe(2000),
...     lambda ctx: ctx.archive.get("f").min() < 1e-6,
... )

Methods

__init__

is_terminated

Check if any termination condition is met.

Method Details

Termination.__init__(*conditions)[source]
Parameters:

conditions (TerminationCondition)

Termination.is_terminated(ctx)[source]

Check if any termination condition is met.

Parameters:

ctx (OptimizationContext) – The current optimization context.

Returns:

True if any termination condition is met, False otherwise.

Return type:

bool