Skip to main content

OBCDO

Module: opytimizer.optimizers.single_objective.science.cdo

Opposition-Based Chernobyl Disaster Optimizer.

This variant implements multiple Opposition-Based Learning strategies:

  • Basic OBL (BOBL)
  • Quasi OBL (QOBL)
  • Generalized OBL (GOBL)
  • Partial OBL (POBL)
  • Center-Based OBL (COBL)
  • Enhanced OBL (EOBL)
  • Time-Varying OBL (TVOBL)
  • Elite OBL (Elite-OBL)

Constructor​

OBCDO(params: Optional[Dict[str, Any]] = None) -> None

Parameters​

ParameterTypeDefaultDescription
paramsOptional[Dict[str, Any]]None—

Methods​

adapt_obl_rate​

adapt_obl_rate(self, success_rate: float) -> None

Adapt opposition rate based on success rate.

Parameters​

ParameterTypeDefaultDescription
success_ratefloatRate of successful oppositions

get_center_opposite_position​

get_center_opposite_position(self, position: numpy.ndarray, space: opytimizer.core.space._SingleObjectiveSpace) -> numpy.ndarray

Center-Based Opposition-Based Learning (COBL).

Returns: Center-based opposite position

Parameters​

ParameterTypeDefaultDescription
positionnumpy.ndarrayCurrent position
spaceopytimizer.core.space._SingleObjectiveSpaceSpace object containing bounds

get_elite_opposite_position​

get_elite_opposite_position(self, position: numpy.ndarray, space: opytimizer.core.space._SingleObjectiveSpace) -> numpy.ndarray

Elite Opposition-Based Learning (Elite-OBL).

Returns: Elite-based opposite position

Parameters​

ParameterTypeDefaultDescription
positionnumpy.ndarrayCurrent position
spaceopytimizer.core.space._SingleObjectiveSpaceSpace object containing bounds

get_enhanced_opposite_position​

get_enhanced_opposite_position(self, position: numpy.ndarray, space: opytimizer.core.space._SingleObjectiveSpace) -> numpy.ndarray

Enhanced Opposition-Based Learning (EOBL).

Returns: Enhanced opposite position

Parameters​

ParameterTypeDefaultDescription
positionnumpy.ndarrayCurrent position
spaceopytimizer.core.space._SingleObjectiveSpaceSpace object containing bounds

get_generalized_opposite_position​

get_generalized_opposite_position(self, position: numpy.ndarray, space: opytimizer.core.space._SingleObjectiveSpace) -> numpy.ndarray

Generalized Opposition-Based Learning (GOBL).

Returns: Generalized opposite position

Parameters​

ParameterTypeDefaultDescription
positionnumpy.ndarrayCurrent position
spaceopytimizer.core.space._SingleObjectiveSpaceSpace object containing bounds

get_opposite_position​

get_opposite_position(self, position: numpy.ndarray, space: opytimizer.core.space._SingleObjectiveSpace) -> numpy.ndarray

Basic Opposition-Based Learning (BOBL).

Returns: Opposite position

Parameters​

ParameterTypeDefaultDescription
positionnumpy.ndarrayCurrent position
spaceopytimizer.core.space._SingleObjectiveSpaceSpace object containing bounds

get_partial_opposite_position​

get_partial_opposite_position(self, position: numpy.ndarray, space: opytimizer.core.space._SingleObjectiveSpace) -> numpy.ndarray

Partial Opposition-Based Learning (POBL).

Returns: Partial opposite position

Parameters​

ParameterTypeDefaultDescription
positionnumpy.ndarrayCurrent position
spaceopytimizer.core.space._SingleObjectiveSpaceSpace object containing bounds

get_quasi_opposite_position​

get_quasi_opposite_position(self, position: numpy.ndarray, space: opytimizer.core.space._SingleObjectiveSpace) -> numpy.ndarray

Quasi Opposition-Based Learning (QOBL).

Returns: Quasi-opposite position

Parameters​

ParameterTypeDefaultDescription
positionnumpy.ndarrayCurrent position
spaceopytimizer.core.space._SingleObjectiveSpaceSpace object containing bounds

get_time_varying_opposite_position​

get_time_varying_opposite_position(self, position: numpy.ndarray, space: opytimizer.core.space._SingleObjectiveSpace, iteration: int, n_iterations: int) -> numpy.ndarray

Time-Varying Opposition-Based Learning (TVOBL).

Returns: Time-varying opposite position

Parameters​

ParameterTypeDefaultDescription
positionnumpy.ndarrayCurrent position
spaceopytimizer.core.space._SingleObjectiveSpaceSpace object containing bounds
iterationintCurrent iteration
n_iterationsintMaximum iterations

select_strategy​

select_strategy(self, iteration: int, n_iterations: int) -> str

Select OBL strategy based on current state.

Returns: Selected strategy name

Parameters​

ParameterTypeDefaultDescription
iterationintCurrent iteration
n_iterationsintMaximum iterations

update​

update(self, space: opytimizer.core.space._SingleObjectiveSpace, function: opytimizer.core.function.Function, iteration: int, n_iterations: int) -> None

Updates using Opposition-Based Learning.

Parameters​

ParameterTypeDefaultDescription
spaceopytimizer.core.space._SingleObjectiveSpaceSpace containing agents and update-related information
functionopytimizer.core.function.FunctionObjective function
iterationintCurrent iteration
n_iterationsintMaximum iterations

update_elite_solutions​

update_elite_solutions(self, space: opytimizer.core.space._SingleObjectiveSpace, function: opytimizer.core.function.Function) -> None

Update elite solutions pool.

Parameters​

ParameterTypeDefaultDescription
spaceopytimizer.core.space._SingleObjectiveSpace—
functionopytimizer.core.function.Function—