Basis Pursuit Denoising with additional constraint function

5 views (last 30 days)
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?

Answers (1)

Matt J
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
Imam
Imam on 4 May 2015
Edited: Imam on 4 May 2015
Well ok the first one does make sense, but as for the second, since the program will always try to minimize the objective function whose value is always positive, the natural choice for x(1:P) should be all-zero, shouldn't it?
Matt J
Matt J on 4 May 2015
Edited: Matt J on 5 May 2015
I don't know about BP algorithms specifically, but many optimization algorithms converge better in general when the solution is unique and well-posed.

Sign in to comment.

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!