You need to enable JavaScript to run this app. Gekko中间变量求和约束下MINLP整数规划无解问题求助
优惠活动
大模型
产品
解决方案
定价
更多

Gekko中间变量求和约束下MINLP整数规划无解问题求助

问题原因
  • 成本函数混用了Numpy运算和GEKKO变量:objective_inverse中使用np.real处理GEKKO变量类型的输入xi,会导致计算结果脱离GEKKO的运算图,求解器无法正确识别成本计算逻辑,得到的总约束值远高于实际值,误判为无可行解。
  • 冗余的分支判断:你提供的reg_feats参数中所有c值均为正数,c==0的判断没有实际作用,且如果后续有c为0的场景,这种普通数值分支也无法适配GEKKO的符号运算逻辑。
  • 严格小于约束的数值兼容问题:求解器APOPT处理整数规划时,严格小于<容易受浮点数精度影响出现误判,建议改成<=。
修复方案

1. 重写成本函数,完全适配GEKKO运算

移除Numpy依赖,直接使用GEKKO内置的运算符完成计算,保证运算图完整:

def objective_inverse(x, a, b, c):
    # 线索数x为非负整数,c为正参数,计算结果必然为实数,无需np.real
    return a + (x/c)**(1/b)

2. 调整约束写法

把严格小于约束改为小于等于,避免数值精度导致的误判:

# 移除冗余的Const定义,直接写约束更清晰
m.Equation(m.sum(sums) <= max_budget)

3. 可选:降低求解收敛难度

如果还是出现收敛问题,可以先修改求解器参数先跑NLP版本确认可行解存在,再切回MINLP求解整数解:

# 先将MINLP作为NLP求解,确认可行解存在
'minlp_as_nlp 1'

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.21 13:45:05