我正在做一个优化任务,其中成本函数评估非常昂贵,有些错误是可以容忍的。我正在使用一些预先打包的scipy方法scipy.optimize公司开始吧。我使用的第一个是fmin,它实现了nelder-mead单纯形算法。在
此函数有两个与收敛相关的参数xtol和ftol,这两个参数(as I understand it)指定了一个收敛条件,如果x或f(参数集和代价)在一次迭代中的变化小于xtol或ftol,则函数返回。在
但是,由于成本函数对我来说太贵了,我还希望能够指定一个成本阈值,如果它找到一个成本低于阈值的点,它将立即返回。在
是否可以为指定此阈值scipy.optimize.fmin?在
另外一个问题:我还没有详细研究过其他很多方法,但是对于那些方法,这个阈值选项似乎也不存在。这是典型的scipy优化方法吗?我尝试贡献这个功能是否有价值?在
可以停止任何可以表示为
x
函数的条件的迭代。这里的想法是劫持callback
方法并使用异常进行流控制。以下是两种利用这一理念的解决方案:解决方案1:
^{pr2}$解决方案2:
^{3}$相关问题 更多 >
编程相关推荐