【问题标题】:Print scalar values打印标量值
【发布时间】:2017-03-07 11:49:45
【问题描述】:

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

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

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

【问题讨论】:

    标签: pyomo


    【解决方案1】:

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

    print([value(v) for v in model.d.values()])
    print([value(v) for v in model.f.values()])
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-12-20
      • 2017-01-14
      • 2019-08-13
      • 2018-10-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多