# Constrained Optimization library for equality and inequality constraints

Any recommendations for choice of a constrained optimization library suitable for my optimization function? I am minimizing a i) non-linear function with linear equality and inequality constraints, and ii) have available the gradient and the hessian of the function.

If it helps, the function I am minimizing is the Kullback-Liebler divergence.

constrOptim only deals with inequality constraints. Quadprog handles quadratics. Trust does not support constraints. So the KL divergence does not fit into these solutions.

There are quite a few solutions on the R Cran Task page for Optimization. Iam able to perform the optimization in MATLAB using the fmincon() function which seems to use an interior-point or a trust-region-reflective. Ideally there is a library that is well-suited to the problem defined.

-
Are the constraints linear? –  cardinal Dec 14 '11 at 2:05
@cardinal - yes - the constraints are linear –  Quant Guy Dec 14 '11 at 2:12
So, if your equality constraints are $A x = b$, at least a work-around for constrOptim would be to include both $A x \leq b$ and $A x \geq b$. No? –  cardinal Dec 14 '11 at 2:14
That is very clever. I will explore this and see how it performs. You should consider posting this as an answer. I'll keep the question open for a couple days to see what other tools are available –  Quant Guy Dec 14 '11 at 2:55
add comment

## 1 Answer

Both packages, alabama and Rsolnp, contain "[i]mplementations of the augmented lagrange multiplier method for general nonlinear optimization" --- as the optimization task view says --- and are quite reliable and robust. The can handle equality and inequality constraints defined as (nonlinear) functions again.

I have worked with both packages. Sometimes, constraints are a bit easier to formulate with Rsolnp, whereas alabama appears to be a bit faster at times.

There is also the package Rdonlp2 that relies on an external and in the optimization community well-known software library. Unfortunately, its license status is a bit uncertain at the moment.

-
add comment