You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

疑问:find_min_box_constrained是否会在边界处直接终止?

关于find_min_box_constrained是否会在边界直接终止的解答

嘿,我来帮你梳理下这个问题~

先看你给出的调用代码和迭代输出:
你设置的盒约束是lb = {0,0,0,0}、ub = {2,2,2,2},用了L-BFGS搜索策略(最多100次迭代),还有目标函数变化停止策略(阈值1e-15,且开启了verbose模式),优化的目标函数是targetf,同时传入了它的导数。

从你的迭代输出能看到,迭代到第5次还在继续(输出被截断了),而且目标函数值一直在逐步减小——从初始的3786.68降到了294.481,这就说明这个函数并不会碰到边界就直接终止。

再给你拆解下它的行为逻辑:

  • find_min_box_constrained是带盒约束的优化函数,它的终止完全由你指定的停止策略决定,不是碰到边界就停。你用的objective_delta_stop_strategy(1e-15),意思是只有当相邻迭代间目标函数的变化量小于1e-15时,才会停止优化;同时你还设置了L-BFGS的最大迭代次数是100次,这也是一个终止条件。
  • 当优化过程中某个参数要超出你设定的上下界时,函数会把参数强行拉回可行域(比如参数要超过2就拉回2,低于0就拉回0),但这不会触发终止,它会继续基于这个可行的参数值,在盒约束范围内继续搜索更优的目标函数值,直到满足你设定的停止条件之一。

举个直观的例子:假设某次迭代中某个参数计算后变成了2.1,函数会把它修正为2,但接下来的迭代还是会围绕这个修正后的参数值继续调整其他参数,或者微调这个参数(当然不会超出2),尝试让目标函数再降一点,直到目标函数的变化小到你设定的阈值,或者迭代次数用完。

你的输出正好印证了这一点——迭代还在进行,目标函数还在下降,说明就算碰到了边界(如果有的话),它也没停下来,而是在继续优化。


内容的提问来源于stack exchange,提问作者bonifaz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 11:34:19