You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This it not really a bug - the code seems to work well (thank you, it looks useful)- but it feels as though there ought to be a way to use information about the local correlation structure of the variables. e.g. I usually run minimization after also running an MCMC, at which point I can make a guess at the local covariance. In some cases one or more parameters are very tightly correlated for physical reasons, and BOBYQA is rather inefficient/unstable if you don't use this information. If the problem is unbounded you can of course just rotate the parameter space, but with bounds, BOBYQA does not support bounds on linear parameter combinations, only on individual parameters, so you can't then impose the bounds consistently. So a) could the function return value support a None value to indicate "out of bounds" very generally, or b) could it be generalized to support bounds on a rotated parameter basis rather than the original parameters? or c) if not, could it at least support an input guess at the local covariance/Hessian which could be used instead of random directions to exploit known degeneracy structure. More generally is there something like LINCOA that could also be added to support more general constraint bounds?
[
The text was updated successfully, but these errors were encountered:
Hi, thanks for the suggestion. I agree it would be a good idea to be able to support bound constraints on rotated coordinates. I've started looking into incorporating the methods from LINCOA to handle general linear constraints, as this is the best long-term solution, but this won't be ready for a little while.
For now, my suggestion would be similar to your (a) option - if a value is out of bounds in the rotated basis, return a very large value. You could either use a fixed value (simple) or something like a quadratic penalty function.
Thanks, great you are looking at it. I've found that in practice just returning a fixed large number for out of bounds doesn't really work reliably; I guess the algorithm would need to internally set the large number based on the recent properties of the quadratic model for it to do something sensible in general.
This it not really a bug - the code seems to work well (thank you, it looks useful)- but it feels as though there ought to be a way to use information about the local correlation structure of the variables. e.g. I usually run minimization after also running an MCMC, at which point I can make a guess at the local covariance. In some cases one or more parameters are very tightly correlated for physical reasons, and BOBYQA is rather inefficient/unstable if you don't use this information. If the problem is unbounded you can of course just rotate the parameter space, but with bounds, BOBYQA does not support bounds on linear parameter combinations, only on individual parameters, so you can't then impose the bounds consistently. So a) could the function return value support a None value to indicate "out of bounds" very generally, or b) could it be generalized to support bounds on a rotated parameter basis rather than the original parameters? or c) if not, could it at least support an input guess at the local covariance/Hessian which could be used instead of random directions to exploit known degeneracy structure. More generally is there something like LINCOA that could also be added to support more general constraint bounds?
[
The text was updated successfully, but these errors were encountered: