我有一个抽象模型,它从.dat文件加载数据
set T := 1 2 3 4 5 6 7 8 9 10;
set F := f1 f2 f3;
set K := A B C;
set S := I II III IV;
set C := f2 f3;
param D_k :=
A 1
B 1
C 1;
param A_k :=
A 1
B 1
C 1;
我希望能够从.py文件中的.dat文件可视化我调用的集合和参数,如下所示:
from __future__ import division
from pyomo.environ import *
from coopr.pyomo import *
from objbrowser import *
import os
model = AbstractModel()
model.T = Set()
model.F = Set()
model.K = Set()
model.S = Set()
model.C = Set()
model.D_k = Param(model.K)
model.A_k = Param(model.K)
我正在使用spyder,但是在变量资源管理器中没有显示任何内容,我也尝试使用model.pprint但是我得到了这个:
4 Set Declarations
C : Dim=0, Dimen=1, Size=0, Domain=None, Ordered=False, Bounds=None
Not constructed
F : Dim=0, Dimen=1, Size=0, Domain=None, Ordered=False, Bounds=None
Not constructed
K : Dim=0, Dimen=1, Size=0, Domain=None, Ordered=False, Bounds=None
Not constructed
S : Dim=0, Dimen=1, Size=0, Domain=None, Ordered=False, Bounds=None
Not constructed
2 Param Declarations
A_k : Size=0, Index=K, Domain=Any, Default=None, Mutable=False
Not constructed
D_k : Size=0, Index=K, Domain=Any, Default=None, Mutable=False
Not constructed
6 Declarations: F K S C D_k A_k
有谁知道如何能够查看集合和参数以了解它们是否在.py文件中被良好导入和调用?
非常感谢你,Cristobal
答案 0 :(得分:1)
在您的脚本中,model.pprint()
正在应用于尚未构建的模型;你需要明确告诉它加载数据。这就是为什么你只看到说Not Constructed
的声明。
要在脚本中构建模型,可以使用create_instance
。因此,'abs_data.dat'
是数据文件的名称:
from pyomo.environ import *
model = AbstractModel()
model.T = Set()
model.F = Set()
model.K = Set()
model.S = Set()
model.C = Set()
model.D_k = Param(model.K)
model.A_k = Param(model.K)
instance = model.create_instance('abs_data.dat')
instance.pprint()
运行它会得到输出:
5 Set Declarations
C : Dim=0, Dimen=1, Size=2, Domain=None, Ordered=False, Bounds=None
['f2', 'f3']
F : Dim=0, Dimen=1, Size=3, Domain=None, Ordered=False, Bounds=None
['f1', 'f2', 'f3']
K : Dim=0, Dimen=1, Size=3, Domain=None, Ordered=False, Bounds=None
['A', 'B', 'C']
S : Dim=0, Dimen=1, Size=4, Domain=None, Ordered=False, Bounds=None
['I', 'II', 'III', 'IV']
T : Dim=0, Dimen=1, Size=10, Domain=None, Ordered=False, Bounds=(1, 10)
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
2 Param Declarations
A_k : Size=3, Index=K, Domain=Any, Default=None, Mutable=False
Key : Value
A : 1
B : 1
C : 1
D_k : Size=3, Index=K, Domain=Any, Default=None, Mutable=False
Key : Value
A : 1
B : 1
C : 1
7 Declarations: T F K S C D_k A_k