Позвольте мне поделиться крошечным примером:
from docplex.mp.model import Model
# Data
r=range(1,3)
i=[(a,b,c,d) for a in r for b in r for c in r for d in r]
print(i)
mdl = Model(name='model')
#decision variables
mdl.x=mdl.integer_var_dict(i,name="x")
# Constraint
for it in i:
mdl.add_constraint(mdl.x[it] == it[0]+it[1]+it[2]+it[3], 'ct')
mdl.solve()
# Dislay solution
for it in i:
print(" x ",it," --> ",mdl.x[it].solution_value);
, который дает
[(1, 1, 1, 1), (1, 1, 1, 2), (1, 1, 2, 1), (1, 1, 2, 2), (1, 2, 1, 1), (1, 2, 1, 2), (1, 2, 2, 1), (1, 2, 2, 2), (2, 1, 1, 1), (2, 1, 1, 2), (2, 1, 2, 1), (2, 1, 2, 2), (2, 2, 1, 1), (2, 2, 1, 2), (2, 2, 2, 1), (2, 2, 2, 2)]
x (1, 1, 1, 1) --> 4.0
x (1, 1, 1, 2) --> 5.0
x (1, 1, 2, 1) --> 5.0
x (1, 1, 2, 2) --> 6.0
x (1, 2, 1, 1) --> 5.0
x (1, 2, 1, 2) --> 6.0
x (1, 2, 2, 1) --> 6.0
x (1, 2, 2, 2) --> 7.0
x (2, 1, 1, 1) --> 5.0
x (2, 1, 1, 2) --> 6.0
x (2, 1, 2, 1) --> 6.0
x (2, 1, 2, 2) --> 7.0
x (2, 2, 1, 1) --> 6.0
x (2, 2, 1, 2) --> 7.0
x (2, 2, 2, 1) --> 7.0
x (2, 2, 2, 2) --> 8.0