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

Gurobi中如何将Var、QuadExpr对象转换为实际数值进行计算

原因说明

你当前输出为表达式对象而非数值,是因为y[i]是Gurobi的变量对象,直接参与运算会生成Gurobi内置的二次表达式QuadExpr类型,不会自动代入求解后的变量值。

修改方案

方案1:直接提取变量值参与计算

在运算时通过y[i].X属性获取y[i]的求解后数值再做计算,代码修改如下:

for i in P:
    y_val = y[i].X
    S = (y_val - R*p[i]) ** 2 / (p[i] ** 2)
    print(S)

方案2:对已生成的二次表达式求值

如果不想修改原有计算逻辑,也可以对生成的QuadExpr对象调用.getValue()方法直接计算数值结果:

for i in P:
    S = (y[i] - R*p[i]) * (y[i] - R*p[i]) / (p[i] * p[i])
    print(S.getValue())

注意事项

  • 以上操作必须在调用模型的optimize()方法完成求解之后执行,否则无法获取到有效的变量值。
  • 常规求解最优解的场景下直接用.X属性即可,如果你有获取其他解的需求,可以替换为对应属性获取变量值。

内容的提问来源于stack exchange,提问作者炎天下修羅

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 08:15:03