Date: Aug 24, 2012 5:14 PM
Author: kumar vishwajeet
Subject: Re: convex optimization problem
Alan_Weiss <aweiss@mathworks.com> wrote in message <k17tbp$k7a$1@newscl01ah.mathworks.com>...

> On 8/24/2012 4:25 AM, kumar vishwajeet wrote:

> > Hi,

> > I have an objective function of the following type:

> > J = x log(x/k) + cx Subject to : f1(x) = alpha and f2(x) = beta

> > where alpha, beta, k and c are constants and x is a vector to be

> > solved for. So, it is a convex function. Which is the best

> > optimization routine in MATLAB to solve such problems. I'm currently

> > using fmincon and it is slower than snail.

> >

> > Thanks.

> This is a convex problem only with restrictions on the functions f1 and

> f2. I mean, there can be multiple local minima, depending on the

> functions f1 and f2.

>

> But as far as your question goes, the only solver in the toolbox to

> handle this type of problem is fmincon. If you are dissatisfied with its

> speed, you might want to try some of the suggestions in

> http://www.mathworks.com/help/toolbox/optim/ug/br44iv5-1.html#br44pif

> You might also want to try various algorithms, such as sqp.

>

> Good luck,

>

> Alan Weiss

> MATLAB mathematical toolbox documentation

I'm sorry. The actual cost function is :

J = summmation(i = 1:N) (x_i log(x_i/k_i) + c_i*x_i

Subject to : x_i >= 0 and summation(i=1:N) (x_i) = 1

where x_i and c_i are scalars.

Is it a good idea to change the constraint "x_i >= 0" to "x_i >= eps", where eps is epsilon. I knew that x log x is not defined at x = 0. So I intentionally made x log x = 0 for x = 0. This is valid for maximum entropy problems.