简体   繁体   English

Cplex 错误:添加微不足道的不可行线性约束

[英]Cplex Error: Adding trivial infeasible linear constraint

I want to solve an integer programming model with cplex python.我想用 cplex python 解决整数编程模型。 I have this model:我有这个模型:

在此处输入图片说明

a and h are matrixes with 0s and 1s. a 和 h 是具有 0 和 1 的矩阵。 p is a set of numbers. p 是一组数字。 here is a part of my cplex code for this model:这是我用于此模型的 cplex 代码的一部分:

p=[i for i in range (len(h))]
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)

When I run the program I get this error:当我运行程序时,我收到此错误:

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

'h' is a 600*22 matrix and 'a' is reverse of h(if there's a 1 (or 0) in h, it is 0 (or 1) in a). 'h' 是一个 600*22 的矩阵,'a' 是 h 的倒序(如果 h 中有 1(或 0),则 a 中的值为 0(或 1))。 A sample of h: h 的样本:


 [1, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0],
 [1, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0, 1, 1, 0, 0, 1, 0, 1, 0],
 [1, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0, 1, 0],
 [1, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0],
 [1, 1, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0],
 [1, 1, 0, 1, 0, 1, 0, 1, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0, 1, 0],
 [1, 1, 0, 1, 0, 1, 0, 1, 1, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0],
 [1, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0],
 [1, 1, 0, 1, 0, 1, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0],
 [1, 1, 0, 1, 0, 1, 1, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0, 1, 0],
 [1, 1, 0, 1, 0, 1, 1, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0],
 [1, 1, 0, 1, 0, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0, 1, 0],
 [1, 1, 0, 1, 0, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0],
 [1, 1, 0, 1, 0, 1, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0]]

I don't understand where is the problem.我不明白问题出在哪里。

The error messages tells you what happens: you added a constraint that is trivially infeasible, ie, that can obviously not be satisfied.错误消息会告诉您发生了什么:您添加了一个非常不可行的约束,即,显然无法满足。 From the error message it seems you added some == 4 constraints with an empty left-hand side.从错误消息看来,您添加了一些== 4约束,左侧为空。

From your code it looks that this would happen if p is empty.从您的代码看来,如果p为空,则会发生这种情况。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM