无法转换类型' list'的对象到数值

时间:2017-03-30 23:15:22

标签: random numbers typeerror pyomo

我正在制作一个pyomo模型,我想在我的二维参数中使用随机数。我为随机数放了一个小python脚本,看起来我想要看到的二维参数。我得到一个TypeError: Cannot convert object of type 'list'(value =[[....]]数字值。在我的目标函数中。下面是我的目标函数和随机数脚本。

model.obj = Objective(expr=sum(model.C[v,l] * model.T[v,l] for v in model.V for l in model.L) + \
            sum(model.OC[o,l] * model.D[o,l] for o in model.O for l in model.L), sense=minimize)

import random
C = [[] for i in range(7)]
for i in range(7):
     for j in range(5):
        C[i]+= [random.randint(100,500)]
model.C = Param(model.V, model.L, initialize=C)

如果有人可以帮忙解决这个问题,请告诉我。

1 个答案:

答案 0 :(得分:0)

您应该使用函数而不是嵌套列表来初始化参数

def init_c(m, i, j):
    return random.randint(100,500)
model.c = Param(model.V, model.L, initialize=init_c)