opytimizer.optimizers.misc.nds

Non-Dominated Sorting.

class opytimizer.optimizers.misc.nds.NDS(params: Optional[Dict[str, Any]] = None)

An NDS class, inherited from Optimizer.

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

References

P. Godfrey, R. Shipley and J. Gryz. Algorithms and Analyses for Maximal Vector Computation. The VLDB Journal (2007).

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

Initialization method.

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

Number of points in the frontier.

count

Array of domination counts.

set

Array of dominating set.

status

Array of pareto status.

compile(space: opytimizer.core.space.Space) → None

Compiles additional information that is used by this optimizer.

Parameters:space – A Space object containing meta-information.
_compare_domination(agent_i: opytimizer.core.agent.Agent, agent_j: opytimizer.core.agent.Agent) → bool

Calculates whether i dominates j.

Parameters:
  • agent_i – Agent i.
  • agent_j – Agent j.
Returns:

Boolean indicating whether i dominated j or not.

Return type:

(bool)

update(space: opytimizer.core.space.Space) → None

Wraps Non-Dominated Sorting over all agents and variables.

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