Basis Pursuit Denoising with additional constraint function
5 views (last 30 days)
Show older comments
I want to solve optimization problem of the type basis pursuit denoising (BPDN). What I want to minimize is the l_1 norm of vector x (length N), |x|_1, subject to |Ax - B|_2 <= sigma, where A is an MxN matrix, B is length M vector, and sigma is a positive scalar. In addition to that constraint, there is also another one, namely I want also, let's say, x(1:P) = 0 where P < N obviouisly.
That's what I want to do and now I have already found a MATLAB code designed specially to solve BPDN problem but it's the standard one I think, it can only assume the first constraint involving inequality with sigma. What I want to do now is that I want to add the second constraint while using the code I'm having without modifying it, that is I would like to add my own constraint directly in my MATLAB script in which the BPDN problem will be executed.
Could somebody give an idea?
EDIT: My idea is to set the first up to the P-th column of matrix A to have zero entries because this way the product Ax is the same as the original problem. In coming up with this idea I also assume that the BPDN code I found will automatically set the elements x(1:P) to zero because it will have the full freedom in deciding the values of these elements due to the multiplication with zero-entries columns and it must also minimize the |x|_1. Will this way equivalent with the original problem?
0 Comments
Answers (1)
Matt J
on 4 May 2015
Edited: Matt J
on 5 May 2015
Your "constraints" aren't really constraints. What you're saying in fact is that you already know the values of x(1:P) already. Since they are not unknowns, you shouldn't treat them as such and should just remove them from the problem.
Just delete the first P columns of A and replace B with the apriori known quantity,
B-A(:,1:P)*x(1:P)
Then everything will reduce to a standard BP problem in the remaining N-P variables.
4 Comments
See Also
Categories
Find more on Denoising and Compression in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!