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

在scipy.optimize.minimize中处理x < y < z这类变量依赖约束的最优实现方式咨询

在scipy.optimize.minimize中处理x < y < z这类变量依赖约束的最优实现方式咨询

我现在要用到scipy.optimize.minimize来最小化一个三元函数f(x,y,z),但有个约束条件必须满足:x < y < z。

我琢磨着bounds参数应该搞不定这个,因为它好像不支持这种和其他变量挂钩的边界限制,我没搞错吧?

后来我想了个变通办法:重新包装一下目标函数,当不满足x < y < z这个条件时,就让函数返回一个极大值,代码大概是这样的:

import numpy as np

f = lambda x,y,z: x**2 + y**2 + z**2

def new_f(x,y,z):
    if x < y < z:
        res = f(x,y,z)
    else:
        res = np.inf

    return res

这种方式对于非梯度类的优化器应该是能用的,但我总觉得可能还有更规范、更稳健的实现方式,想问问各位大佬有没有什么经验或者更好的方案?

备注:内容来源于stack exchange,提问作者Ben

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.14 09:49:37