0

我正在制作一个 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)

请让我知道是否有人可以帮助解决此问题。

4

1 回答 1

0

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

def init_c(m, i, j):
    return random.randint(100,500)
model.c = Param(model.V, model.L, initialize=init_c)
于 2017-03-31T14:06:53.147 回答