Which optimization package should I use?

One approach that I have used (described a bit more in the thread I linked to earlier) is a heuristic that combines a cheap/ approximate global search with Nelder-Mead for the local. Depending on the details of your problem, this may or may not help you.
The problem that I face is that global optimziation is too expensive. But then, most of the points in the parameter space that the global optimizer tries are “obviously not promising”. This is a subjective judgement on my part.

So the algorithm is:

  1. For 1 million quasi random points, compute a heuristic that decides how promising the points are. This is an approximation of the objective function that is cheap to compute.
  2. For the “best” 10k of those points: compute the objective.
  3. Run the local optimizer on the point with the best objective.

This only works if there is a cheap, approximate objective function that can be computed. In my case, the model has to do with human capital accumulation. I have strong priors that college increases human capital, but not by a big factor. That’s the kind of thing I use for the heuristic step.

In your case, infeasible points could be thrown out during the heuristic global search. With some luck, you don’t encounter too many infeasible points during the local search (Nelder Mead can handle those by returning a big value for the objective).

Drawbacks:

  1. No guarantee of global optimum. But I don’t think that can be guaranteed anyway in the kinds of problems that economists solve these days. I settle for reproducible good fit.
  2. Nelder Mead is (I am told) inefficient as a local solver. It could be replaced, but then it may not help you with those infeasible points.
3 Likes