Old¶
- optimizeCardinalityOld(problem, param)[source]¶
DC programming for solving the cardinality optimization problem The l0 norm is approximated by a capped-l1 function.
\(min c'(x, y, z) + lambda_0*||k.*x||_0 + lambda_1*||x||_1 . - delta_0*||d.*y||_0 + delta_1*||y||_1\) s.t. \(A*(x, y, z) <= b\) \(l <= (x,y,z) <= u\) \(x in R^p, y in R^q, z in R^r\)
- USAGE
solution = optimizeCardinality (problem, param)
- INPUT
problem – Structure containing the following fields describing the problem:
.p - size of vector x OR a size(A,2) x 1 boolean indicating columns of A corresponding to x (min zero norm).
.q - size of vector y OR a size(A,2) x 1 boolean indicating columns of A corresponding to y (max zero norm).
.r - size of vector z OR a `size(A,2) x 1`boolean indicating columns of A corresponding to z .
.A - s x size(A,2) LHS matrix
.b - s x 1 RHS vector
.csense - s x 1 Constraint senses, a string containing the constraint sense for each row in A (‘E’, equality, ‘G’ greater than, ‘L’ less than).
.lb - size(A,2) x 1 Lower bound vector
.ub - size(A,2) x 1 Upper bound vector
.c - size(A,2) x 1 linear objective function vector
- OPTIONAL INPUTS
problem – Structure containing the following fields describing the problem: * .osense - Objective sense for problem.c only (1 means minimise (default), -1 means maximise) * .k - p x 1 OR a size(A,2) x 1 strictly positive weight vector on minimise ||x||_0 * .d - q x 1 OR a size(A,2) x 1 strictly positive weight vector on maximise ||y||_0 * .lambda0 - trade-off parameter on minimise ||x||_0 * .lambda1 - trade-off parameter on minimise ||x||_1 * .delta0 - trade-off parameter on maximise ||y||_0 * .delta1 - trade-off parameter on minimise `||y||_1
param – Parameters structure: * .printLevel - greater than zero to recieve more output * .nbMaxIteration - stopping criteria - number maximal of iteration (Default value = 100) * .epsilon - stopping criteria - (Default value = 1e-6) * .theta - starting parameter of the approximation (Default value = 0.5)
For a sufficiently large parameter , the Capped-L1 approximate problem and the original cardinality optimisation problem are have the same set of optimal solutions
.thetaMultiplier - at each iteration: theta = theta*thetaMultiplier
.eta - Smallest value considered non-zero (Default value feasTol*1000)
- optimizeCardinality_RF(problem, params)[source]¶
DC programming for solving the weighted cardinality optimization problem
In general, the l0 norm is approximated by capped-l1 function. \(min c'(x, y, z) + diag(lambda)*||x||_0 - diag(delta)*||y||_0\) s.t. \(A*(x, y, z) <= b\) \(l <= (x,y,z) <= u\) \(x in R^p, y in R^q, z in R^r\)
In the particular case where the problem is sparse minimisation, then a variety of approximations to the ‘l0’ norm are available. \(min diag(lambda)*||x||_0 s.t. :math:\) \(l <= (x,y,z) <= u\) \(x in R^p, y in R^q, z in R^r\)
- USAGE
solution = optimizeCardinality (problem, params)
- INPUT
problem – Structure containing the following fields describing the problem:
.p - size of vector x
.q - size of vector y
.r - size of vector z
.c - (p+q+r) x 1 linear objective function vector
- .lambda - trade-off parameter of ||x||_0
scalar, or size of vector x
- .delta - trade-off parameter of ||y||_0
scalar, or size of vector y
.A - s x (p+q+r) LHS matrix
.b - s x 1 RHS vector
.csense - s x 1 Constraint senses, a string containting the constraint sense for each row in A (‘E’, equality, ‘G’ greater than, ‘L’ less than).
.lb - (p+q+r) x 1 Lower bound vector
.ub - ``(p+q+r) x 1` Upper bound vector
- OPTIONAL INPUTS
params – Parameters structure:
.nbMaxIteration - stopping criteria - number maximal of iteration (Default value = 1000)
.epsilon - stopping criteria - (Defautl value = 10e-6)
.theta - parameter of the approximation (Default value = 2)
- OUTPUT
solution – Structure containing the following fields:
.x - p x 1 solution vector
.y - q x 1 solution vector
.z - r x 1 solution vector
.stat - status
1 = Solution found
2 = Unbounded
0 = Infeasible
-1= Invalid input
- optimizeCardinality_old(problem, params)[source]¶
DC programming for solving the cardinality optimization problem The l0 norm is approximated by capped-l1 function. \(min c'(x, y, z) + lambda*||x||_0 - delta*||y||_0\) s.t. \(A*(x, y, z) <= b\) \(l <= (x,y,z) <= u\) \(x in R^p, y in R^q, z in R^r\)
- USAGE
solution = optimizeCardinality (problem, params)
- INPUT
problem – Structure containing the following fields describing the problem:
.p - size of vector x
.q - size of vector y
.r - size of vector z
.c - (p+q+r) x 1 linear objective function vector
.lambda - trade-off parameter of ||x||_0
.delta - trade-off parameter of ||y||_0
.A - s x (p+q+r) LHS matrix
.b - s x 1 RHS vector
.csense - s x 1 Constraint senses, a string containting the constraint sense for each row in A (‘E’, equality, ‘G’ greater than, ‘L’ less than).
.lb - (p+q+r) x 1 Lower bound vector
.ub - ``(p+q+r) x 1` Upper bound vector
- OPTIONAL INPUTS
params – Parameters structure:
.nbMaxIteration - stopping criteria - number maximal of iteration (Default value = 1000)
.epsilon - stopping criteria - (Defautl value = 10e-6)
.theta - parameter of the approximation (Default value = 2)
- OUTPUT
solution – Structure containing the following fields:
.x - p x 1 solution vector
.y - q x 1 solution vector
.z - r x 1 solution vector
.stat - status
1 = Solution found
2 = Unbounded
0 = Infeasible
-1= Invalid input
- optimizeCardinality_weighted_Minh(problem, params)[source]¶
DC programming for solving the cardinality optimization problem The l0 norm is approximated by capped-l1 function. :math:`min c’(x, y, z) + lambda_0*||k.*x||_0 - delta_0*||d.*y||_0
lambda_1*||x||_1 + delta_1*||y||_1`
s.t. \(A*(x, y, z) <= b\) \(l <= (x,y,z) <= u\) \(x in R^p, y in R^q, z in R^r\)
- USAGE
solution = optimizeCardinality (problem, params)
- INPUT
problem – Structure containing the following fields describing the problem:
.p - size of vector x
.q - size of vector y
.r - size of vector z
.c - (p+q+r) x 1 linear objective function vector
.lambda_0 - trade-off parameter of ||x||_0
.delta_0 - trade-off parameter of ||y||_0
.lambda_1 - trade-off parameter of ||x||_1
.delta_1 - trade-off parameter of ||y||_1
.k - p x 1 strictly possitive weight vector of x
.d - q x 1 strictly possitive weight vector of y
.A - s x (p+q+r) LHS matrix
.b - s x 1 RHS vector
.csense - s x 1 Constraint senses, a string containting the constraint sense for each row in A (‘E’, equality, ‘G’ greater than, ‘L’ less than).
.lb - (p+q+r) x 1 Lower bound vector
.ub - ``(p+q+r) x 1` Upper bound vector
- OPTIONAL INPUTS
params – Parameters structure:
.nbMaxIteration - stopping criteria - number maximal of iteration (Default value = 1000)
.epsilon - stopping criteria - (Defautl value = 10e-6)
.theta - parameter of the approximation (Default value = 2)
- OUTPUT
solution – Structure containing the following fields:
.x - p x 1 solution vector
.y - q x 1 solution vector
.z - r x 1 solution vector
.stat - status
1 = Solution found
2 = Unbounded
0 = Infeasible
-1= Invalid input