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

使用Pyomo Kernel调用HiGHS求解器时返回错误

问题解答

HiGHS求解器本身没问题,但Pyomo的appsi_highs求解器(包括appsi.solvers.Highs类)不支持Pyomo Kernel建模接口,这是触发AttributeError: unreadable attribute 'domain'错误的原因。Appsi模块目前仅兼容Pyomo的传统建模方式(ConcreteModel/AbstractModel)。

修改后的可运行代码

将你的Kernel建模代码替换为传统Pyomo建模方式即可正常使用HiGHS:

import pyomo.environ as pyo
from pyomo.contrib import appsi

m = pyo.ConcreteModel()
m.x1 = pyo.Var(domain=pyo.NonNegativeReals)
m.c = pyo.Constraint(expr=m.x1 == 5)
m.o = pyo.Objective(expr=m.x1*10, sense=pyo.minimize)

# 两种调用方式都可行
opt = pyo.SolverFactory("appsi_highs")
# opt = appsi.solvers.Highs()

result = opt.solve(m)
print(result)
# 查看求解结果
print(f"x1 = {pyo.value(m.x1)}")

错误原因说明

Pyomo Kernel接口的组件(如pmo.variable)与传统接口的组件(如pyo.Var)内部属性结构不同,appsi求解器的代码是针对传统接口设计的,尝试读取Kernel变量的domain属性时无法正确访问,因此抛出了属性不可读的错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 08:22:16