我正在运行一个优化,它优化了约10个参数的函数。函数本身需要相当长的时间(几秒钟)来评估,而且它的环境非常多变。它可以取0到1之间的值,其中0是理论上的最佳值,但我预计最佳值约为0.01
我正在使用basinhopping算法来评估它的最小值,但是在每个盆地内,函数似乎都在为大约10^-9的非常小的ftol进行优化
我不需要这么精确,相反,我想更彻底地搜索风景。我想调整算法,使局部极小值只优化到10^-4左右的最佳值
我以为这会是一个传递一些ftol到最小函数的问题,但我似乎无法让它工作。我要把这个传给贝辛霍普:
minimizer_kwargs = {"method": "L-BFGS-B","options": {"ftol":1e-2}}
但这似乎没有任何效果,函数仍在评估最佳值微小增加10^-9的值
我怎样才能避免这种情况?如果函数不能在这个值之上求值,那么我宁愿它只输出值为“0.10”,而不是计算它是“0.100000001”还是“0.100000002”
目前没有回答
相关问题 更多 >
编程相关推荐