Thread Subject: Approaches to solve constrained mixed-norm optmization problema

Subject: Approaches to solve constrained mixed-norm optmization problema

From: Prime Mover

Date: 17 Aug, 2009 14:30:58

Message: 1 of 9

Dear friends,

What are the approaches available in MATLAB to solve a problem to find
a vector of parameters r such that the sum

|| W*r - s ||^2 + lambda1*| r | + lambda2*|| H*r - p ||^2

is minimized?

W and H are matrices with known values; s and p are vector with known
values; and lambda1 and lambda2 are a set of given weights.

Thank you all for the cooperation.


Subject: Approaches to solve constrained mixed-norm optmization problema

From: Torsten Hennig

Date: 17 Aug, 2009 14:49:15

Message: 2 of 9

> Dear friends,
>
> What are the approaches available in MATLAB to solve
> a problem to find
> a vector of parameters r such that the sum
>
> || W*r - s ||^2 + lambda1*| r | + lambda2*|| H*r - p
> ||^2
>
> is minimized?
>
> W and H are matrices with known values; s and p are
> vector with known
> values; and lambda1 and lambda2 are a set of given
> weights.
>
> Thank you all for the cooperation.
>


What norms do you mean in the expression to be
minimized ?

||.|| = 2-norm , |.| = oo-norm or 1-norm ?

Best wishes
Torsten.

Subject: Approaches to solve constrained mixed-norm optmization problema

From: Emilson

Date: 17 Aug, 2009 16:35:17

Message: 3 of 9

On 17 ago, 11:49, Torsten Hennig <Torsten.Hen...@umsicht.fhg.de>
wrote:
> > Dear friends,
>
> > What are the approaches available in MATLAB to solve
> > a problem to find
> > a vector of parameters r such that the sum
>
> > || W*r - s ||^2 + lambda1*| r | + lambda2*|| H*r - p
> > ||^2
>
> > is minimized?
>
> > W and H are matrices with known values; s and p are
> > vector with known
> > values; and lambda1 and lambda2 are a set of given
> > weights.
>
> > Thank you all for the cooperation.
>
> What norms do you mean in the expression to be
> minimized ?
>
> ||.|| = 2-norm , |.| = oo-norm or 1-norm ?
>
> Best wishes
> Torsten.- Ocultar texto das mensagens anteriores -
>
> - Mostrar texto das mensagens anteriores -

This is gonna be a mixed-norm problem:

|| Wr - s || and || Hr - p || = L2-norm; | r | = L1-norm

Thanks for asking.

Subject: Approaches to solve constrained mixed-norm optmization problema

From: Bruno Luong

Date: 17 Aug, 2009 19:21:01

Message: 4 of 9

Emilson <emilsonpl@gmail.com> wrote in message <2a703ae3-f962-43d2-b3f0-6e226ca70490@k30g2000yqf.googlegroups.com>...

>
> || Wr - s || and || Hr - p || = L2-norm; | r | = L1-norm
>

Here are few though. First without restrict the generality, let's assume there is only one L2 term (put them together):

J2(r) := || A r - b ||^2 = alpha*|| Wr - s || ^2 + beta*|| Hr - p ||^2

A, b are matrices derived from the known parameters.

Our main objective function is

J0(r) := J2(r) + |r|

Let r2/r0 are respectively solutions minimizing J2/J0. I believe (!) we can show the *sign* of r0 and r2 (components) are identical.

Thus we can replace the pb minimizing J0(r) + |r| by

Minimizing:
J0(r) + <s,r>
<s,r>>=0

where s := sign(r2)

This problem is a box quadratic least-square minimization, thus it can be solved with an appropriate algorithm.

I hope my intuition is good and I don't make any false reasoning.

Bruno

Subject: Approaches to solve constrained mixed-norm optmization problema

From: Johan L?fberg

Date: 18 Aug, 2009 11:12:01

Message: 5 of 9

The standard approach is to write it as a QP

min ||[Wr-s;sqrt(lambda2)*(Hr-p)||^2 + lambda1*sum(t)

s.t

-t < r < t

where t is a new set of variables of dimension length(r).

You decision variables are thus x=[r;t]. Write the objective in standard form 0.5*x'Q*x+c'*x and constraints as Ax<b and use, e.g., quadprog.

Or be lazy and use the modelling language YALMIP (free toolbox for MATLAB)

r = sdpvar(n,1);
objective = (W*r - s)'*(W*r-s) + lambda1*norm(r,1)+(H*r - p)'*(H*r-p)
solvesdp([],objective)
double(r)

Prime Mover <emilsonpl@gmail.com> wrote in message <26c8a015-8817-4b87-a0b3-1d22e6464c2d@z31g2000yqd.googlegroups.com>...
> Dear friends,
>
> What are the approaches available in MATLAB to solve a problem to find
> a vector of parameters r such that the sum
>
> || W*r - s ||^2 + lambda1*| r | + lambda2*|| H*r - p ||^2
>
> is minimized?
>
> W and H are matrices with known values; s and p are vector with known
> values; and lambda1 and lambda2 are a set of given weights.
>
> Thank you all for the cooperation.
>
>

Subject: Approaches to solve constrained mixed-norm optmization problema

From: Emilson

Date: 18 Aug, 2009 11:17:47

Message: 6 of 9

On 18 ago, 08:12, "Johan L?fberg" <loefb...@control.ee.ethz.ch> wrote:
> The standard approach is to write it as a QP
>
> min ||[Wr-s;sqrt(lambda2)*(Hr-p)||^2 + lambda1*sum(t)
>
> s.t
>
> -t < r < t
>
> where t is a new set of variables of dimension length(r).
>
> You decision variables are thus x=[r;t]. Write the objective in standard form 0.5*x'Q*x+c'*x and constraints as Ax<b and use, e.g., quadprog.
>
> Or be lazy and use the modelling language YALMIP (free toolbox for MATLAB)
>
> r = sdpvar(n,1);
> objective =  (W*r - s)'*(W*r-s) + lambda1*norm(r,1)+(H*r - p)'*(H*r-p)
> solvesdp([],objective)
> double(r)
>
>
>
> Prime Mover <emilso...@gmail.com> wrote in message <26c8a015-8817-4b87-a0b3-1d22e6464...@z31g2000yqd.googlegroups.com>...
> > Dear friends,
>
> > What are the approaches available in MATLAB to solve a problem to find
> > a vector of parameters r such that the sum
>
> > || W*r - s ||^2 + lambda1*| r | + lambda2*|| H*r - p ||^2
>
> > is minimized?
>
> > W and H are matrices with known values; s and p are vector with known
> > values; and lambda1 and lambda2 are a set of given weights.
>
> > Thank you all for the cooperation.- Ocultar texto das mensagens anteriores -
>
> - Mostrar texto das mensagens anteriores -

Well, thank you tow for posting. I guess I will start with quadprog
and see I why I'll get.

Cheers.


Subject: Approaches to solve constrained mixed-norm optmization problema

From: Bruno Luong

Date: 18 Aug, 2009 14:58:06

Message: 7 of 9

"Johan L?fberg" <loefberg@control.ee.ethz.ch> wrote in message <h6e2a1$h2k$1@fred.mathworks.com>...
> The standard approach is to write it as a QP
>
> min ||[Wr-s;sqrt(lambda2)*(Hr-p)||^2 + lambda1*sum(t)
>
> s.t
>
> -t < r < t
>
> where t is a new set of variables of dimension length(r).

I'm glad to learn the "standard" approach. Thanks.

Bruno

Subject: Approaches to solve constrained mixed-norm optmization problema

From: Matt

Date: 18 Aug, 2009 17:05:21

Message: 8 of 9

Prime Mover <emilsonpl@gmail.com> wrote in message <26c8a015-8817-4b87-a0b3-1d22e6464c2d@z31g2000yqd.googlegroups.com>...
> Dear friends,
>
> What are the approaches available in MATLAB to solve a problem to find
> a vector of parameters r such that the sum
>
> || W*r - s ||^2 + lambda1*| r | + lambda2*|| H*r - p ||^2
>
> is minimized?
>
> W and H are matrices with known values; s and p are vector with known
> values; and lambda1 and lambda2 are a set of given weights.
==================


The title of your post says that this is a constrained problem, yet you haven't mentioned any constraints on r. If there are no constraints, then I would be interested to know how the following Majorize-Minimize approach performs. It can easily be modified for box constraints on r:

1. First, reformulate the objective function as suggested by others to be in the form

f(x) = 1/2 *x'*Q*x+b*x


2. Proceed according to the following algorithm


MajCurvs=sum(abs(Q)<2);
ImportantQuantity=lambda1./MajCurvs;

r=InitialValue;

for ii=1:numIterations

 QuadGradient=Q*x+b;

  Center=r-QuadGradient./MajCurvs;
  Candidate1=Center-ImportantQuantity;
  Candidate2=Center+ImportantQuantity;

  r=Candidate1.*(Candidate1>0)+ Candidate2.*(Candidate2<0);

end

Subject: Approaches to solve constrained mixed-norm optmization problema

From: Matt

Date: 18 Aug, 2009 17:23:21

Message: 9 of 9

"Matt " <xys@whatever.com> wrote in message <h6en0h$7i0$1@fred.mathworks.com>...

> 1. First, reformulate the objective function as suggested by others to be in the form
>
> f(x) = 1/2 *x'*Q*x+b*x


Make that

 f(r) = 1/2 *r'*Q*r+b*r +lambda1*|r|

Tags for this Thread

Everyone's Tags:

Add a New Tag:

Separated by commas
Ex.: root locus, bode

What are tags?

A tag is like a keyword or category label associated with each thread. Tags make it easier for you to find threads of interest.

Anyone can tag a thread. Tags are public and visible to everyone.

Tag Activity for This Thread
Tag Applied By Date/Time
nonsmooth minim... Matt 28 Aug, 2009 17:17:04
mm Matt 18 Aug, 2009 13:34:58
optimisation Sprinceana 17 Aug, 2009 11:41:25
rssFeed for this Thread
 

MATLAB Central Terms of Use

NOTICE: Any content you submit to MATLAB Central, including personal information, is not subject to the protections which may be afforded information collected under other sections of The MathWorks, Inc. Web site. You are entirely responsible for all content that you upload, post, e-mail, transmit or otherwise make available via MATLAB Central. The MathWorks does not control the content posted by visitors to MATLAB Central and, does not guarantee the accuracy, integrity, or quality of such content. Under no circumstances will The MathWorks be liable in any way for any content not authored by The MathWorks, or any loss or damage of any kind incurred as a result of the use of any content posted, e-mailed, transmitted or otherwise made available via MATLAB Central. Read the complete Terms prior to use.

Contact us at files@mathworks.com