BoxProjection#

class BoxProjection(lb, ub, relaxation=1, idx=None, proximity_flag=True, use_gpu=False)[source]#

Bases: BasicProjection

BoxProjection class for projecting points onto a box defined by lower and upper bounds.

Parameters:
  • lb (ndarray[tuple[Any, ...], dtype[TypeVar(_ScalarT, bound= generic)]]) – Lower bounds of the box.

  • ub (ndarray[tuple[Any, ...], dtype[TypeVar(_ScalarT, bound= generic)]]) – Upper bounds of the box.

  • idx (ndarray[tuple[Any, ...], dtype[TypeVar(_ScalarT, bound= generic)]] | None) – Subset of the input vector to apply the projection on.

  • relaxation (float) – Relaxation parameter for the projection, by default 1.

  • proximity_flag (bool) – Flag to indicate whether to take this object into account when calculating proximity, by default True.

Attributes:
lbnpt.NDArray

Lower bounds of the box.

ubnpt.NDArray

Upper bounds of the box.

relaxationfloat

Relaxation parameter for the projection.

proximity_flagbool

Flag to indicate whether to take this object into account when calculating proximity.

idxnpt.NDArray

Subset of the input vector to apply the projection on.

Methods

get_xy()

Generate the coordinates for the edges of a box if it is 2D.

project(x)

Perform the (possibly relaxed) projection of input array 'x' onto the constraint.

proximity(x, proximity_measures)

Calculate proximity measures of point x to the set.

step(x)

Perform the (possibly relaxed) projection of input array 'x' onto the constraint.

visualize([ax, color])

Visualize the box if it is 2D on a given matplotlib Axes.

get_xy()[source]#

Generate the coordinates for the edges of a box if it is 2D.

This method creates four edges of a 2D box defined by the lower bounds (lb) and upper bounds (ub). The edges are generated using 100 points each.

Returns:

A 2D array of shape (2, 400) containing the concatenated coordinates of the four edges.

Raises:

ValueError – If the box is not 2-dimensional.

project(x)#

Perform the (possibly relaxed) projection of input array ‘x’ onto the constraint.

Parameters:

x (ndarray[tuple[Any, ...], dtype[TypeVar(_ScalarT, bound= generic)]]) – The input array to be projected.

Return type:

ndarray

Returns:

The (possibly relaxed) projection of ‘x’ onto the constraint.

proximity(x, proximity_measures)#

Calculate proximity measures of point x to the set.

Parameters:

x (ndarray[tuple[Any, ...], dtype[TypeVar(_ScalarT, bound= generic)]]) – Input array for which the proximity measure is to be calculated.

Return type:

float

Returns:

The proximity measures of the input array x.

step(x)#

Perform the (possibly relaxed) projection of input array ‘x’ onto the constraint.

Parameters:

x (ndarray[tuple[Any, ...], dtype[TypeVar(_ScalarT, bound= generic)]]) – The input array to be projected.

Return type:

ndarray

Returns:

The (possibly relaxed) projection of ‘x’ onto the constraint.

visualize(ax=None, color=None)[source]#

Visualize the box if it is 2D on a given matplotlib Axes.

Parameters:
  • ax (Axes | None) – The matplotlib Axes to plot on. If None, a new figure and axes are created.

  • color (str or None, optional) – The color to fill the box with. If None, the box will be filled with the default color.

Raises:

ValueError – If the box is not 2-dimensional.