我已经创建了一个参数,用于在迭代程序中的每个实例求解后报告值。我希望我的参数能够被定义迭代次数的集合索引,并且还有两个其他自由索引,如下所示: / p>
model.report=Param(model.iter,[],[])
然后我想创建一个函数,它将被调用到while循环中,它将创建我的模型,解决一个实例并为某些变量赋予一些值,这些变量的名称将用作我的索引报告参数,如下:
report(model.iter,'cost',model.i)=model.cost[i]
其中model.cost是我的成本变量,由set i索引。 有可能吗?
答案 0 :(得分:0)
最好只让model.report
成为Python dict
。然后,您可以使用您喜欢的任何键为其分配条目:
model.report = dict()
...
for j in range(10):
# assumes model.i is a simple built-in type and not a Param
# (otherwise you would need to use model.i.value)
model.report[j,'cost',model.i] = model.cost[j]
除非您在某种表达式中使用这些值,并且希望以后能够通过更改{的值来更新表达式,否则没有理由在此上下文中使用Param
{1}}(即,在声明Param
时使用mutable=True
。