UsefulnessCriterionIntegerMateSelectionProblem#

class pybrops.breed.prot.sel.prob.UsefulnessCriterionSelectionProblem.UsefulnessCriterionIntegerMateSelectionProblem(ucmat, ndecn, decn_space, decn_space_lower, decn_space_upper, decn_space_xmap, nobj, obj_wt=None, obj_trans=None, obj_trans_kwargs=None, nineqcv=None, ineqcv_wt=None, ineqcv_trans=None, ineqcv_trans_kwargs=None, neqcv=None, eqcv_wt=None, eqcv_trans=None, eqcv_trans_kwargs=None, **kwargs)[source]#

Bases: UsefulnessCriterionSelectionProblemMixin, IntegerMateSelectionProblem

Class representing Usefulness Criterion (UC) selection problems in integer search spaces.

Constructor for UsefulnessCriterionIntegerSelectionProblem

Parameters:
  • ucmat (numpy.ndarray) –

    An usefulness criterion matrix of shape (s,t).

    Where:

    • s is the number of cross candidates.

    • t is the number of traits.

  • ndecn (Integral) – Number of decision variables.

  • decn_space (numpy.ndarray, None) – An array of shape (2,ndecn) defining the decision space. If None, do not set a decision space.

  • decn_space_lower (numpy.ndarray, Real, None) – An array of shape (ndecn,) containing lower limits for decision variables. If a Real is provided, construct an array of shape (ndecn,) containing the Real. If None, do not set a lower limit for the decision variables.

  • decn_space_upper (numpy.ndarray, Real, None) – An array of shape (ndecn,) containing upper limits for decision variables. If a Real is provided, construct an array of shape (ndecn,) containing the Real. If None, do not set a upper limit for the decision variables.

  • decn_space_xmap (numpy.ndarray) – Cross map corresponding to the decision space.

  • nobj (Integral) – Number of objectives.

  • obj_wt (numpy.ndarray) – Objective function weights.

  • obj_trans (Callable, None) – A transformation function transforming a latent space vector to an objective space vector. The transformation function must be of the form: obj_trans(x: numpy.ndarray, **kwargs) -> numpy.ndarray If None, use the identity transformation function: copy the latent space vector to the objective space vector.

  • obj_trans_kwargs (dict, None) – Keyword arguments for the latent space to objective space transformation function. If None, an empty dictionary is used.

  • nineqcv (Integral,) – Number of inequality constraints.

  • ineqcv_wt (numpy.ndarray,) – Inequality constraint violation weights.

  • ineqcv_trans (Callable, None) – A transformation function transforming a latent space vector to an inequality constraint violation vector. The transformation function must be of the form: ineqcv_trans(x: numpy.ndarray, **kwargs) -> numpy.ndarray If None, use the empty set transformation function: return an empty vector of length zero.

  • ineqcv_trans_kwargs (Optional[dict],) – Keyword arguments for the latent space to inequality constraint violation space transformation function. If None, an empty dictionary is used.

  • neqcv (Integral) – Number of equality constraints.

  • eqcv_wt (numpy.ndarray) – Equality constraint violation weights.

  • eqcv_trans (Callable, None) – A transformation function transforming a latent space vector to an equality constraint violation vector. The transformation function must be of the form: eqcv_trans(x: numpy.ndarray, **kwargs) -> numpy.ndarray If None, use the empty set transformation function: return an empty vector of length zero.

  • eqcv_trans_kwargs (dict, None) – Keyword arguments for the latent space to equality constraint violation space transformation function. If None, an empty dictionary is used.

  • kwargs (dict) – Additional keyword arguments passed to the parent class (IntegerMateSelectionProblem) constructor.

Methods

bounds

do

evalfn

Evaluate a candidate solution for the given Problem.

evaluate

from_pgmat_gpmod

rtype:

UsefulnessCriterionIntegerMateSelectionProblem

from_pgmat_gpmod_xmap

rtype:

UsefulnessCriterionIntegerMateSelectionProblem

has_bounds

has_constraints

ideal_point

latentfn

Score a subset of individuals based on Usefulness Criterion (UC) selection.

nadir_point

name

pareto_front

pareto_set

Attributes

callback

A callback function to be called after every evaluation.

data

Type of the variable to be evaluated.

decn_space

Decision space boundaries.

decn_space_lower

Lower boundary of the decision space.

decn_space_upper

Upper boundary of the decision space.

decn_space_xmap

Decision space cross map.

elementwise

Whether the evaluation function should be run elementwise.

elementwise_func

A class that creates the function that evaluates a single individual.

elementwise_runner

A function that runs the function that evaluates a single individual.

eqcv_trans

Function which transforms outputs from latentfn to equality constraint violation values.

eqcv_trans_kwargs

Keyword arguments for the latent space to equality constraint violation transformation function.

eqcv_wt

Equality constraint violation function weights.

exclude_from_serialization

attributes which are excluded from being serialized.

ineqcv_trans

Function which transforms outputs from latentfn to inequality constraint violation values.

ineqcv_trans_kwargs

Keyword arguments for the latent space to inequality constraint violation transformation function.

ineqcv_wt

Inequality constraint violation function weights.

n_constr

n_eq_constr

n_eq_constr.

n_ieq_constr

Number of inequality constraints.

n_obj

Number of objectives.

n_var

Number of decision variables.

ndecn

Number of decision variables.

neqcv

Number of equality constraint violations.

nineqcv

Number of inequality constraint violation functions.

nlatent

Number of latent variables.

nobj

Number of objectives.

obj_trans

Function which transforms outputs from latentfn to objective function values.

obj_trans_kwargs

Keyword arguments for the latent space to objective space transformation function.

obj_wt

Objective function weights.

replace_nan_values_by

replace_nan_values_by.

strict

Whether the shapes are checked strictly.

ucmat

Usefulness criterion matrix of shape (s,t).

vars

Variables provided in their explicit form.

vtype

The variable type.

xl

Lower boundary of the decision space.

xu

Upper boundary of the decision space.

property callback: Callable | None#

A callback function to be called after every evaluation.

property data: dict#

Type of the variable to be evaluated.

property decn_space: ndarray | None#

Decision space boundaries.

property decn_space_lower: ndarray | None#

Lower boundary of the decision space.

property decn_space_upper: ndarray | None#

Upper boundary of the decision space.

property decn_space_xmap: ndarray#

Decision space cross map.

property elementwise: bool#

Whether the evaluation function should be run elementwise.

property elementwise_func: type#

A class that creates the function that evaluates a single individual.

property elementwise_runner: Callable#

A function that runs the function that evaluates a single individual.

property eqcv_trans: Callable[[ndarray, ndarray, dict], ndarray]#

Function which transforms outputs from latentfn to equality constraint violation values.

property eqcv_trans_kwargs: dict#

Keyword arguments for the latent space to equality constraint violation transformation function.

property eqcv_wt: ndarray#

Equality constraint violation function weights.

evalfn(x, *args, **kwargs)#

Evaluate a candidate solution for the given Problem.

This calculates three vectors which are to be minimized:

\[\mathbf{v_{obj}} = \mathbf{w_{obj} \odot T_{obj}(L(x))} \ \mathbf{v_{ineqcv}} = \mathbf{w_{ineqcv} \odot T_{ineqcv}(L(x))} \ \mathbf{v_{eqcv}} = \mathbf{w_{eqcv} \odot T_{eqcv}(L(x))}\]
Parameters:
  • x (numpy.ndarray) – A candidate solution vector of shape (ndecn,).

  • args (tuple) – Additional non-keyword arguments.

  • kwargs (dict) – Additional keyword arguments.

Returns:

out – A tuple (obj, ineqcv, eqcv).

Where:

  • obj is a numpy.ndarray of shape (nobj,) that contains

    objective function evaluations. This is equivalent to \(\mathbf{v_{obj}}\)

  • ineqcv is a numpy.ndarray of shape (nineqcv,) that contains

    inequality constraint violation values. This is equivalent to \(\mathbf{v_{ineqcv}}\)

  • eqcv is a numpy.ndarray of shape (neqcv,) that contains

    equality constraint violation values. This is equivalent to \(\mathbf{v_{eqcv}}\)

Return type:

tuple

property exclude_from_serialization: Iterable | None#

attributes which are excluded from being serialized.

property ineqcv_trans: Callable[[ndarray, ndarray, dict], ndarray]#

Function which transforms outputs from latentfn to inequality constraint violation values.

property ineqcv_trans_kwargs: dict#

Keyword arguments for the latent space to inequality constraint violation transformation function.

property ineqcv_wt: ndarray#

Inequality constraint violation function weights.

latentfn(x, *args, **kwargs)[source]#

Score a subset of individuals based on Usefulness Criterion (UC) selection.

Scoring for UC selection is defined as the negative mean of UC values for a selected subset. A smaller value indicates a better UC score.

Parameters:
  • x (numpy.ndarray) – A candidate solution vector of shape (s,) == (ndecn,) == (ntaxa,). On entry, this vector is scaled to have a unit sum, such that latentfn(x) == latentfn(ax) where a is any number.

  • args (tuple) – Additional non-keyword arguments.

  • kwargs (dict) – Additional keyword arguments.

Returns:

out – An EMBV selection matrix of shape (t,).

Where:

  • t is the number of traits.

Return type:

numpy.ndarray

property n_eq_constr: Integral#

n_eq_constr.

property n_ieq_constr: Integral#

Number of inequality constraints.

property n_obj: Integral#

Number of objectives.

property n_var: Integral#

Number of decision variables.

property ndecn: Integral#

Number of decision variables.

property neqcv: Integral#

Number of equality constraint violations.

property nineqcv: Integral#

Number of inequality constraint violation functions.

property nlatent: Integral#

Number of latent variables.

property nobj: Integral#

Number of objectives.

property obj_trans: Callable[[ndarray, ndarray, dict], ndarray]#

Function which transforms outputs from latentfn to objective function values.

property obj_trans_kwargs: dict#

Keyword arguments for the latent space to objective space transformation function.

property obj_wt: ndarray#

Objective function weights.

property replace_nan_values_by: Real | None#

replace_nan_values_by.

property strict: bool#

Whether the shapes are checked strictly.

property ucmat: ndarray#

Usefulness criterion matrix of shape (s,t).

property vars: Container | None#

Variables provided in their explicit form.

property vtype: type | None#

The variable type. So far, just used as a type hint.

property xl: ndarray | None#

Lower boundary of the decision space.

property xu: ndarray | None#

Upper boundary of the decision space.