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

Pyomo优化中含输入变量求和表达式的正确写法咨询

Pyomo中求和表达式的正确构建方式

错误原因

你遇到的TypeError是因为列表无法直接与Pyomo的SumExpression对象执行除法运算。代码里左侧是包含变量表达式的列表,右侧是sum()生成的求和表达式,Pyomo不支持这种操作逻辑。

正确实现方式

先计算所有元素的总和,再通过列表推导式让每个元素分别除以这个总和,这样每个运算都会生成合法的Pyomo表达式:

x = [k * model.input[i] for i in range(3)]
total = sum(x)
return [xi / total for xi in x]

补充说明

  • 这里的total是Pyomo的SumExpression对象,每个xi是变量或变量表达式,xi / total会自动生成Pyomo支持的除法表达式,可直接用于后续模型构建。
  • 如果需要避免除以0的风险,需在模型中添加约束total >= 1e-6(或其他极小正数),确保总和不为0。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 06:47:00