Univariate Marginal Distribution Algorithm.

class opytimizer.optimizers.boolean.umda.UMDA(params: Optional[Dict[str, Any]] = None)

An UMDA class, inherited from Optimizer.

This is the designed class to define UMDA-related variables and methods.


H. Mühlenbein. The equation for response to selection and its use for prediction. Evolutionary Computation (1997).

__init__(params: Optional[Dict[str, Any]] = None) → None

Initialization method.

Parameters:params – Contains key-value parameters to the meta-heuristics.

Probability of selection.


Distribution lower bound.


Distribution upper bound.

_calculate_probability(agents: List[opytimizer.core.agent.Agent]) → numpy.ndarray

Calculates probabilities based on pre-selected agents’ variables occurrence (eq. 47).

Parameters:agents – List of pre-selected agents.
Returns:Probability of variables occurence.
Return type:(np.ndarray)
_sample_position(probs: numpy.ndarray) → numpy.ndarray

Samples new positions according to their probability of ocurrence (eq. 53).

Parameters:probs – Array of probabilities.
Returns:New sampled position.
Return type:(np.ndarray)
update(space: opytimizer.core.space.Space) → None

Wraps Univariate Marginal Distribution Algorithm over all agents and variables.

Parameters:space – Space containing agents and update-related information.