复杂错误:添加琐碎的不可行线性约束

问题描述 投票:0回答:1

我想用cplex python解决一个整数编程模型。我有这个模型:

enter image description here

a和h是0和1s的矩阵。 p是一组数字。这是该模型的我的Cplex代码的一部分:

x=mdl.binary_var_dict(p,name='x')

#objective
mdl.minimize(0)

#constraints
#1
mdl.add_constraints(mdl.sum(h[i][k]*x[i] for  i  in p)==4  for k in T)

#2    
mdl.add_constraints(mdl.sum(a[i][k]*x[i] for i in p)==4  for k in T)

mdl.print_information()
Solution = mdl.solve(log_output=False)
mdl.get_solve_status()
print(Solution)

运行程序时出现此错误:

Error: Adding trivial infeasible linear constraint: 0 == 4, rank: 1
Error: Adding trivial infeasible linear constraint: 0 == 4, rank: 1
Error: Adding trivial infeasible linear constraint: 0 == 4, rank: 23
Error: Adding trivial infeasible linear constraint: 0 == 4, rank: 23

我不知道问题出在哪里。

python cplex integer-programming mixed-integer-programming docplex
1个回答
0
投票

错误消息告诉您发生了什么:您添加了一个不可行的约束,即显然无法满足的约束。从错误消息看来,您似乎添加了一些== 4约束,并且左侧为空。

从您的代码看来,如果p为空,则会发生这种情况。

© www.soinside.com 2019 - 2024. All rights reserved.