-1

我正在努力使用 4 维数组python(然后在 Gurobi 中进行优化)

我的目标函数是:

model.setObjective((quicksum(r[i,j,k,l]*x[i,j,k,l] for i,j,k,l in XXX

受到一些限制:

使用以下变量:

# Define variables
x = {}
for i in range(N):
for j in range(M):
for k in range(O):
for l in range(P):
x[i,j,k,l]

我需要为我的 r[i,j,k,l] 输入一个 4 维数组,它看起来像这样:

SUPPLIER[i], CUSTOMER[j], COLOR[k], TRANSPORT[l],  r[i,j,k,l]

[1,           1,           1,         1,             12]
[1,           1,           1,         2,             34]
[1,           1,           2,         1,             34]
[1,           1,           2,         2,             23]
[1,           2,           1,         1,             67]
[1,           2,           1,         2,             34]
[1,           2,           2,         1,             87]
[1,           1,           2,         2,             53]
[2,           1,           1,         1,             12]
[2,           1,           1,         2,             34]
[2,           1,           2,         1,             23]
[2,           1,           2,         2,             12]
[2,           2,           1,         1,             24]
[2,           2,           1,         2,             78]
[2,           2,           2,         1,             09]
[2,           1,           2,         2,             12]

我已经用 2D 和 3D 完成了它,但是对于 4D 数组,我缺少一些东西。

你有类似的例子可以分享让我学习吗?你能帮我做语法吗?我想我需要使用 numpy,但仍然不确定。

谢谢!

4

1 回答 1

0

我认为您只是有范围问题,因为 i 在范围(N)中意味着 i = 0,1,2...N-1。你为 i range(1,N+1) 写,也为 j,k,l...

于 2018-02-09T23:33:40.270 回答