1
のうち、私のコード:ERROR GUROBI:リスト指数範囲
import sys
import gurobipy as grb
GRB = grb.GRB
m = grb.Model()
m.Params.timeLimit = 3600
b = m.addVars(10,10,15, vtype=GRB.BINARY)
F = m.addVars(vtype=GRB.INTEGER)
m.addConstrs(F == (b.sum(x,y,z) for x in range(10) for y in range(10) for z in range(15)))
for x in range(10):
for y in range(10):
m.addConstrs(sum(b[x][y][z] for z in range(15)) <= 1)
for z in range(15):
for y in range(10):
m.addConstrs(sum(b[x][y][z] for x in range(10)) <= 1)
for x in range(10):
for z in range(15):
m.addConstrs(sum(b[x][y][z] for y in range(10)) <= 1)
m.setObjective(F, GRB.MAXIMIZE)
m.update()
result = m.optimize()
コードは、10教師、10組の教室、15時間を取り、など、見つけることができるユニークなスケジュールの数を返すことになっていますすべての(x、y、z)に対して、(x!= x ')、(y!= y')、および(z!= z ')の(x'、y '、z')が存在する。
ここでのアイデアは、2進数の3D「マトリックス」でした。 1の場合、教師xは時間zで教室yにあり、0なら無料です。
問題は、IndexError:リストのインデックスが範囲外です。私はxが1から10、yが1から10、zが1から15まで動いています。
私はすべての助けに感謝します。
編集:念のために、私はここでエラーを貼り付けています:Model.addConstrs()はPythonのジェネレータ式をとりながら
Changed value of parameter timeLimit to 3600.0
Prev: 1e+100 Min: 0.0 Max: 1e+100 Default: 1e+100
Traceback (most recent call last):
File "exec2.py", line 14, in <module>
F = m.addVars(vtype=GRB.INTEGER)
File "model.pxi", line 2261, in gurobipy.Model.addVars (../../src/python/gurobipy.c:73898)
File "model.pxi", line 198, in gurobipy.__listify.__init__ (../../src/python/gurobipy.c:47440)
IndexError: list index out of range