首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >创建模型(实例)抽象模型

创建模型(实例)抽象模型
EN

Stack Overflow用户
提问于 2017-01-21 20:21:28
回答 1查看 1.3K关注 0票数 0

我正在使用Pyomo 4.4.1 (VOTD) (CPython 2.7.12),并且我处于抽象模型中。如果我使用:instance = model.create('datos.dat')

我得到了:

代码语言:javascript
复制
WARNING: DEPRECATION WARNING: the Model.create() method is deprecated.  Call
        Model.create_instance() to create a concrete instance from an abstract
        model.  You do not need to call Model.create() for a concrete model.
Model unknown

但是它返回了好的解决方案!

我更改了这一行,写下:Model.create_instance(datos.dat),但我得到了一个错误:

代码语言:javascript
复制
results = opt.solve(instance)
NameError: name 'instance' is not defined

有人能帮我吗?

谢谢你,玛丽亚

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-01-22 00:14:44

更正:“弃用警告”是一种警告,说明方法、属性或函数正在更改,旧方法将在未来的版本中删除。因此,就目前而言,旧方法(在本例中,create()仍然像以前一样工作,但您应该开始更改模型以使用新接口(在本例中为create_instance()),以便您的模型在未来的版本中继续工作。

也就是说,您仍然需要将create()create_instance()的结果赋给一个变量,稍后可以将该变量传递给求解器。所以,你可能想要这样的东西:

代码语言:javascript
复制
instance = model.create_instance('datos.dat')
opt = SolverFactory('cbc')
solver_results = opt.solve(instance)

这些只是Python变量,所以您可以很容易地完成

代码语言:javascript
复制
a = model.create_instance('datos.dat')
b = SolverFactory('cbc')
c = b.solve(a)

Pyomo示例通常使用instanceopt (或solver)和results来帮助使示例更清晰。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41779272

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档