有人知道为什么标量类型参数值不可打印吗?我有以下代码:
dtab = {
('seattle', 'new-york') : 2.5,
('seattle', 'chicago') : 1.7,
('seattle', 'topeka') : 1.8,
('san-diego','new-york'): 2.5,
('san-diego','chicago') : 1.8,
('san-diego','topeka') : 1.4,
}
model.d = Param(model.i, model.j, initialize=dtab, doc='Distance in thousands of miles')
model.f = Param(initialize=90, doc='Freight in dollars per case per thousand miles')
print model.d.values()
print model.f.values()
当我运行它时,我得到以下结果:
[1.4, 1.8, 2.5, 2.5, 1.8, 1.7]
[<pyomo.core.base.param.SimpleParam object at 0x000000000B018438>]
任何人都可以帮助我真的需要能够打印标量进行调试。
答案 0 :(得分:0)
这是由于对不可变索引Params进行的内存优化。如果使用mutable=True
初始化索引的Param,您将看到与单例情况相同的行为。访问任何Param值的建议方法是使用Pyomo提供的value
函数。如,
print([value(v) for v in model.d.values()])
print([value(v) for v in model.f.values()])