lanl / PyBNF

An application for parameterization of biological models available in SBML and BNGL formats. Features include parallelization, metaheuristic optimization algorithms, and an adaptive Markov chain Monte Carlo (MCMC) sampling algorithm.
Other
22 stars 18 forks source link

Simplex sanity check #207

Open emitra17 opened 6 years ago

emitra17 commented 6 years ago

While running a test problem, I noticed Simplex quickly converges to start_point + simplex_step +/- small perturbations. I would expect it to start searching a range spanning from start_point to start_point + simplex_step and narrow it from there. Is this a bug?

emitra17 commented 6 years ago

I checked this today running simple examples with a bunch of debug logs (see my branch 208-debugsimplex). It seems to be working as advertised, maybe with the exception of cases where variables try to go below 0.

A couple discoveries, though. It is not always the best to use the maximum parallel count, especially if there are multiple local minima you could end in. But in this case, random changes of algorithm settings might just let you luck into the correct minimum. For dimension 2, it is very bad to use the default simplex_reflection=1 with population_size>1, because this can cause 3 simplex points to become colinear. I'm not sure if this problem exists for higher dimensions.