79496383

Date: 2025-03-09 18:22:10
Score: 0.5
Natty:
Report link

You may agonize over the choice of the methods. But, the rules of thumb are pretty easy to figure out. Here is my advice:
- You can always try all 3. Just don't expect more than Evolutionary to work.
- Simplex LP will generally tell you right away if your problem isn't well-suited because it isn't linear throughout. I think of it as "either you're in or you're out".
- GRG Nonlinear deals best with "smooth" nonlinear problem expressions and I wouldn't use it with BINARY variables.
- Evolutionary is very flexible but can take a "long time". With today's computers larger problems with lots of nonlinearities can take 10 minutes. And, some could take longer. But, it does a good job of finding a "good" solution. but not THE UNIQUELY MIN or MAX or =. (By this, I don't mean a unique set of variables as there can be multiple solutions to some problems).
- On the chance that GRG Nonlinear can work, it's generally much faster.
Because I almost always have highly nonlinear problems, I always use Evolutionary.
- Usually have to be looking for "good" solutions, not absolute due to the nonlinearities.
- Trades patience vs. compute.
- One can use BINARY variables as solution "switches". e.g. use a binary variable to allow or disallow the use of an integer or continuous variable - and push the optimization to useful or interesting areas. Sometimes I combine a binary variable this way alongside a "manual binary" variable "control" so one can turn on and turn off the use of another variable before the optimization runs. This is handy for focusing in on one or a few of the other variables in getting to an acceptable solution and might be useful for "kicking" the solution space.
- Because Evolutionary will vary the solution space, it's often useful to run it more than once. I have an "iterative" sub that runs until there is no further improvement in the objective. There can be more elegant approaches to this of course.

Reasons:
  • Long answer (-1):
  • No code block (0.5):
  • Low reputation (1):
Posted by: fred