Dictionary 从字典键在pyomo中定义参数

Dictionary 从字典键在pyomo中定义参数,dictionary,parameters,pyomo,Dictionary,Parameters,Pyomo,我是Python/Pyomo的新手,我正在尝试从我创建的这个字典中的键('score')定义一个参数cost(n): operations[1] = {"score" : 100, "start_node": 2, "end_node": 3} operations[2] = {"score" : 120, "start_node": 4, "end_node": 3} ... operations[n] = {"score" : 155, "start_node": 5, "end_node"

我是Python/Pyomo的新手,我正在尝试从我创建的这个字典中的键('score')定义一个参数cost(n):

operations[1] = {"score" : 100, "start_node": 2, "end_node": 3}
operations[2] = {"score" : 120, "start_node": 4, "end_node": 3}
...
operations[n] = {"score" : 155, "start_node": 5, "end_node": 2}
我尝试过用这种方法,但似乎不起作用:

n_operations=len(operations) 
model = ConcreteModel()
model.O = RangeSet(1,n_operations)

def c_init(model, operations):

   for i in range(1,n_operations):
       print(i)
       cost=operations[i]['score']
       return cost

model.cost = Param(model.O, initialize=c_init)
你知道如何解决这个问题吗


谢谢

与Pyomo中的所有规则一样,当您将函数传递给Param的
initialize=
关键字时,每个索引都会调用该函数一次。因此,您应该将规则修改为:

def c_init(model, operation):
    return operations[operation]['score']