CQAlgorithm#
- class CQAlgorithm(A, C_projection, Q_projection, algorithmic_relaxation=1.0, proximity_flag=True)[source]#
Bases:
SplitFeasibilityImplementation for the CQ algorithm to solve split feasibility problems.
- Parameters:
A (
ndarray[tuple[Any,...],dtype[TypeVar(_ScalarT, bound=generic)]] |sparray) – Matrix connecting input and target space.C_projection (
Projection) – The projection operator onto the set C.Q_projection (
Projection) – The projection operator onto the set Q.algorithmic_relaxation (
float) – The relaxation parameter used by the algorithm, by default 1.0.proximity_flag (
bool) – A flag indicating whether to use this object for proximity calculations, by default True.
- Attributes:
- ALinearMapping
Linear mapping between input and target space.
- C_projectionProjection
The projection operator onto the set C.
- Q_projectionProjection
The projection operator onto the set Q.
- proximitieslist
A list to store proximity values during the solve process.
- algorithmic_relaxationnpt.NDArray or float, optional
The relaxation parameter used by the algorithm, by default 1.0.
- proximity_flagbool
A flag indicating whether to use this object for proximity calculations.
Methods
map(x)Maps the input space array to the target space via matrix multiplication.
map_back(y)Transposed map of the target space array to the input space.
project(x[, y])Projects the input array onto the feasible set.
proximity(x, proximity_measures)Calculate proximity measures of point x to the set.
solve(x[, max_iter, prox_tol, del_prox_tol, ...])Solves the split feasibility problem for a given input array.
step(x[, y])Perform the (possibly relaxed) projection of input array 'x' onto the constraint.
- map(x)#
Maps the input space array to the target space via matrix multiplication.
- Parameters:
x (
ndarray[tuple[Any,...],dtype[TypeVar(_ScalarT, bound=generic)]]) – The input space array to be mapped.- Return type:
ndarray- Returns:
The corresponding target space array.
- map_back(y)#
Transposed map of the target space array to the input space.
- Parameters:
y (
ndarray[tuple[Any,...],dtype[TypeVar(_ScalarT, bound=generic)]]) – The target space array to map.- Return type:
ndarray- Returns:
The corresponding array in input space.
- project(x, y=None)#
Projects the input array onto the feasible set.
- Parameters:
x (
ndarray[tuple[Any,...],dtype[TypeVar(_ScalarT, bound=generic)]]) – The input array to project.y (
ndarray[tuple[Any,...],dtype[TypeVar(_ScalarT, bound=generic)]] |None) – An optional array for projection (default is None).
- Return type:
tuple- Returns:
A (x, y) pair of projected arrays; y may be None.
- 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.
- solve(x, max_iter=10, prox_tol=1e-06, del_prox_tol=1e-08, del_prox_n=5, storage=False, storage_iters=None, proximity_measures=None, alternative_stopping_criterion=None, alternative_stopping_criterion_initial_call=None)#
Solves the split feasibility problem for a given input array.
- Parameters:
x (
ndarray[tuple[Any,...],dtype[TypeVar(_ScalarT, bound=generic)]]) – Starting point for the algorithm.max_iter (
int) – The maximum number of iterations (default is 10).prox_tol (
float) – Stopping criterium for the feasibility seeking algorithm. Solution deemed feasible if the proximity drops below this value (default is 1e-6).del_prox_tol (
float) – The tolerance for the change in proximity over the last del_prox_n iterations, by default 1e-8.del_prox_n (
int) – The number of iterations to check for the change in proximity, by default 5.storage (
bool) – A flag indicating whether to store all intermediate solutions (default is False).storage_iters (
Union[List[int],int,None]) – Controls which iterations are stored (when storage=True). If None, all iterations are stored. If a list of ints, only those iteration indices are stored (0 = initial point). If an int, storage occurs every that many iterations.proximity_measures (
Optional[List]) – The proximity measures to calculate, by default None. Right now only the first in the list is used to check the feasibility.alternative_stopping_criterion (
Optional[Callable]) – Alternative stopping criterion.alternative_stopping_criterion_initial_call (
Optional[Callable]) – Initial call for an alternative stopping criterion.
- Return type:
ndarray- Returns:
The solution after applying the feasibility seeking algorithm.
- step(x, y=None)#
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:
tuple- Returns:
The (possibly relaxed) projection of ‘x’ onto the constraint.