6
$\begingroup$

I am considering minpack software package to solve my optimization problem ( this is the kind of question that I am facing), but I don't quite know what is the memory requirement and the speed of this package.

Any idea?

$\endgroup$
2
  • $\begingroup$ The referenced problem is about solving an equation system with just three equations. No non-linear solver package including minpack will have any problems with memory requirements here. But why are you calling this an optimization problem? I somehow get the impression that your current problem is not really identical to the referenced problem. $\endgroup$ Commented Jun 3, 2012 at 12:59
  • 2
    $\begingroup$ @ThomasKlimpel: Any system of equations is equivalent to an optimization problem, which is why Newton-based methods in optimization look a lot like Newton-based methods for solving systems of nonlinear equations. Graviton is calling it an optimization problem because of the box constraints on some of the variables, which sounds like a logical choice to me. $\endgroup$ Commented Jun 3, 2012 at 17:05

1 Answer 1

7
$\begingroup$

Don't use MINPACK. It's over 30 years old, and better, more modern optimization software exists out there. More importantly, I've searched the MINPACK source code and perused the documentation (the PDFs are scanned images, and can't be searched), I don't see any options to accommodate the constraints in your problem.

It's not clear to me that your problem is convex. However, before considering global optimization algorithms, I'd try more modern optimization packages. The standard open-source constrained nonlinear optimization package is IPOPT, which has an excellent reputation in the optimization community. Its authors (primarily Andreas Wächter and Carl Laird) have won an award from INFORMS based on the quality of the software. It's probably overkill for your particular problem, but if you have any interest in solving similar case studies that are larger, it's well worth your while to use IPOPT.

There are also several other solvers out there. Arnold Neumaier has a web page listing many solvers; you should also check the solvers used by GAMS and AMPL, since Professor Neumaier's list does not contain some of those solvers. Since your problem is a constrained nonlinear least squares problem, you should also consider solvers that exploit that structure as well.

GAMS is an excellent modeling language for optimization problems; if you just need to solve the optimization problem, or you want to do some prototyping, it is a very good tool. The trial license should suffice for your small problem.

Given the size of your example, it's unlikely that any optimization package will have trouble with your problem with respect to memory and processing power requirements. Memory will definitely not be an issue, and processing power could only be an issue in cases where the problem is nonconvex and has nonzero local minima, or if your objective function is expensive to evaluate. Given that you're considering solving an optimization problem with this objective function using MINPACK, I'm going to assume that the objective function is not expensive to evaluate.

However, for large examples, more modern packages like IPOPT take advantage of sparsity, whereas MINPACK does not. Taking advantage of sparsity in the optimization algorithm reduces memory requirements and generally decreases the time it takes to solve a given problem.

$\endgroup$
6
  • 1
    $\begingroup$ This answer may contain quite some (interesting) information, but how does this answer relate to the question? I fear that just pouring out information based on some keywords in a question risks degrading the quality of questions in the long run. $\endgroup$ Commented Jun 3, 2012 at 13:09
  • 1
    $\begingroup$ @ThomasKlimpel: My answer relates to the user's choice of solver package, which, as I said, is decades old. If the OP wants to solve larger related problems, IPOPT will take advantage of sparsity where MINPACK will not. IPOPT is also currently supported, and is more likely to have users that will respond to queries for help with the package. Based on my experience in optimization and in using software, using MINPACK doesn't seem like a good idea, and answering that aspect of the question seemed like the most important part, because as you pointed out, the example is small. $\endgroup$ Commented Jun 3, 2012 at 17:12
  • $\begingroup$ That being said, I still use Minpack, either through SciPy or from Fortran directly. It's and old package (f77) but certainly well written (no common block, all parameters explicit, ...). Here is my current Minpack package: github.com/certik/minpack $\endgroup$ Commented Jun 6, 2012 at 19:32
  • $\begingroup$ @OndřejČertík: I noticed that you had a copy of it at GitHub. You should include the docs I linked to in your repo. I believe MINPACK works, and that there's a place for its use in nonlinear least-squares problems. I've been burned in the past by "mature" Fortran software with decade-plus-old bugs in it, which is why I'm wary of using it. I don't trust any research software package that doesn't have unit tests to back it up. $\endgroup$ Commented Jun 6, 2012 at 20:47
  • $\begingroup$ (Sorry, I should add that I linked to the docs in my answer to this question.) $\endgroup$ Commented Jun 6, 2012 at 21:15

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.