Дима, какой бы ты порекомендовал оптимизатор, если производные не достутны, она гладкая и наверно похожа на регрессию (канавы), одно вычивление около 2мин (C++), параметров от 10 до 100.
1. Please don't post comments unrelated to topic. All my coords are available here http://scipy.org/scipy/scikits/wiki/OOFeedback, as I had answered to your 1st post.
2. The info you have provide is not enough. Do you have any constraints, box-bound (lb <= x <= ub), general linear (Ax < b, Aeq x = beq), general non-linear (c(x)<=0, h(x)=0). Is numerical noise value sufficient for the problem? (This is rather common situation if you have so much calculations - 2 min). Is the problem ill-conditioned? Convex? Is your function defined in whole R^nVars?
3. OpenOpt is Python toolbox. If all your code is C++, using other soft is recommended (low-level languages written). If you want free software first of all IPOPT (license: CLP, code: C++) should be taken into account, ALGENCAN (license: GLP, code: Fortran, has C++ interface) would be a good choice as well. Of course, there is a huge number of other NLP free solvers, especially unconstrained.
4. If you still intend to involve Python code (+OpenOpt), just connect C++ code to Python (using Cython/SWIG/Ctypes etc) and try using r=p.solve('ralg'), r=p.solve('scipy_cg'), r=p.solve('scipy_ncg'), r=p.solve('ipopt') etc (see OO NLP page for more details). Only experiment can reveal which one is more appropriate.
This comment has been removed by the author.
ReplyDeleteДима, какой бы ты порекомендовал оптимизатор, если производные не достутны, она гладкая и наверно похожа на регрессию (канавы), одно вычивление около 2мин (C++), параметров от 10 до 100.
ReplyDelete1. Please don't post comments unrelated to topic. All my coords are available here http://scipy.org/scipy/scikits/wiki/OOFeedback, as I had answered to your 1st post.
ReplyDelete2. The info you have provide is not enough. Do you have any constraints, box-bound (lb <= x <= ub), general linear (Ax < b, Aeq x = beq), general non-linear (c(x)<=0, h(x)=0). Is numerical noise value sufficient for the problem? (This is rather common situation if you have so much calculations - 2 min). Is the problem ill-conditioned? Convex? Is your function defined in whole R^nVars?
3. OpenOpt is Python toolbox. If all your code is C++, using other soft is recommended (low-level languages written). If you want free software first of all IPOPT (license: CLP, code: C++) should be taken into account, ALGENCAN (license: GLP, code: Fortran, has C++ interface) would be a good choice as well. Of course, there is a huge number of other NLP free solvers, especially unconstrained.
4. If you still intend to involve Python code (+OpenOpt), just connect C++ code to Python (using Cython/SWIG/Ctypes etc) and try using r=p.solve('ralg'), r=p.solve('scipy_cg'), r=p.solve('scipy_ncg'), r=p.solve('ipopt') etc (see OO NLP page for more details). Only experiment can reveal which one is more appropriate.
Regards, D.