0

有人知道为什么标量类型参数值不可打印吗?我有以下代码:

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>]

任何人都可以帮助我真的需要能够打印标量进行调试。

4

1 回答 1

0

这是由于不可变索引参数发生的内存优化。mutable=True如果用于初始化索引参数,您将看到与单例情况相同的行为。访问任何 Param 值的建议方法是使用valuePyomo 提供的函数。例如,

print([value(v) for v in model.d.values()])
print([value(v) for v in model.f.values()])
于 2017-03-07T14:15:59.290 回答