opytimizer.optimizers.social.bso

Brain Storm Optimization.

class opytimizer.optimizers.social.bso.BSO(params: Optional[Dict[str, Any]] = None)

A BSO class, inherited from Optimizer.

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

References

Y. Shi. Brain Storm Optimization Algorithm. International Conference in Swarm Intelligence (2011).

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

Initialization method.

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

Number of clusters.

p_replacement_cluster

Probability of replacing a random cluster.

p_single_cluster

Probability of selecting a single cluster.

p_single_best

Probability of selecting the best idea from a single cluster.

p_double_best

Probability of selecting the best idea from a pair of clusters.

k

Controls the sigmoid’s slope.

_clusterize(agents: List[opytimizer.core.agent.Agent]) → Tuple[numpy.ndarray, numpy.ndarray]

Performs the clusterization over the agents’ positions.

Parameters:agents – List of agents.
Returns:Agents indexes and best agent index per cluster.
Return type:(Tuple[np.ndarray, np.ndarray])
_sigmoid(x: float) → float

Calculates the sigmoid function.

Parameters:x – Input value.
Returns:Output value.
update(space: opytimizer.core.space.Space, function: opytimizer.core.function.Function, iteration: int, n_iterations: int) → None

Wraps Brain Storm Optimization over all agents and variables.

Parameters:
  • space – Space containing agents and update-related information.
  • function – A Function object that will be used as the objective function.
  • iteration – Current iteration.
  • n_iterations – Number of iterations.s