Positive directional derivative for linesearch的四种解决方案

问题背景

在使用spicy的minimize对规划问题进行求解时,如果未能成功求解问题的最优值,并且出现了Positive directional derivative for linesearch,那么可以尝试以下的四种方案,希望可以帮助到你。

方案一

将问题理解为目标函数是非凸函数,只存在局部最优值。因为选择的那些优化算法通常通过选择下降方向,然后对该方向执行线搜索来工作。我认为Positive directional derivative for linesearch代表着优化器进入了一个位置,它无法找到目标函数值减小的方向(足够快),但也无法验证当前位置是否为最小值。

方案二

尝试将优化的目标值降低几个数量级,如:

Objective(x):
    ...
    return value / 10000000

方案三

对目标函数的返回值,重新设计加平方后开平方,希望能够提高整体目标函数的稳健程度,如:

Objective(x):
    ...
    return np.sqrt(value ** 2)

方案四

调整参数ftol。minimize() 函数中的 ftol 参数用于控制优化过程的收敛条件。它指定在函数值不再显著变化时停止迭代的相对容忍度。具体来说,当两次迭代之间的相对误差小于 ftol 时,算法将被认为已经收敛,进而终止迭代。默认情况下,ftol 的值为 1e-8,尝试将此参数调整为1e-4或者更大。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值