Я использую docplex в Python для решения ILP.
Я хотел бы перевести следующее ограничение в docplex.
[Constraint][1]
https://i.stack.imgur.com/OPhwe.png
Я попробовал следующий код:
#decision variables
X_var = {(p, w, c, j): opt_model.binary_var(name="X_{0}_{1}_{2}_{3}".format(p, w, c, j))
for p in set_OP for w in set_W for c in set_C for j in set_J}
T_var = {(w, w1, j-1, j): opt_model.binary_var(name="T_{0}_{1}_{2}_{3}".format(w, w1, j-1, j))
for w in set_W for w1 in set_W for j in set_J}
#constraint
cnrt_10 = {(p, w, w1, j-1, j): opt_model.add_constraint(ct=opt_model.sum(X_var[p-1, w, c, j-1] for c in set_C) + opt_model.sum(X_var[p, w1, c, j] for c in set_C) <= 1 + T_var[w, w1, j-1, j],
ctname="cnrt10_{0}_{1}_{2}_{3}_{4}".format(p, w, w1, j-1, j)) for p in set_OP for w in set_W for w1 in set_W for j in set_J}
Но он выдает следующую ошибку:
KeyError: (0, 1, 1, 0)
Я искал, и кажется, что это ошибка, связанная с пустым словарем. Я пробовал много разных способов, чтобы решить это, автобус я не смог. Поскольку я новичок в Python и CPLEX, я думаю, что это не очень сложно. Если кто-то может мне помочь, я буду очень благодарен.
Заранее спасибо,