Самое первое «ограничение», добавленное к классу LpProblem
, всегда будет считаться целевой функцией, как описано в этой тестовой задаче.
Также я предполагаю, что выхотите, чтобы ваши переменные решения q1x
и q2x
были целыми числами, о которых вы должны явно указать при определении своих переменных
Попробуйте это:
prob = LpProblem('myProblem', LpMinimize)
q1x = LpVariable("q1x",lowBound = 1, upBound = 8, cat = "Integer")
q2x = LpVariable("q2x",lowBound = 1, upBound = 8, cat = "Integer")
B12 = LpVariable("B12", lowBound = 0, upBound = 1, cat = "Integer")
# B12 can be also be defined by:
#B12 = LpVariable("B12", cat = "Binary")
M = 8
prob += q1x + q2x
prob += (q1x-q2x) + M * B12 >= 1
prob += -(q1x-q2x) + M * (1-B12) >= 1
prob.solve()
for v in prob.variables():
print(v.name, " = ", v.varValue)
print("Status:", LpStatus[prob.status])