GLPK的输出需要帮助。某些约束无法满足(有意)GLPK打印"问题没有整数可行解决方案"但仍返回"最佳"作为解决方案的状态。
我已将所有容差级别设置为 0
glpk.options['feastol']=0
solvers.options['feastol']=0
glpk.options['abstol']=0
solvers.options['abstol']=0
glpk.options['reltol']=0
solvers.options['reltol']=0
这是输出
GLPK Integer Optimizer, v4.43
10 rows, 5 columns, 19 non-zeros
5 integer variables, none of which are binary
Preprocessing...
1 hidden covering inequaliti(es) were detected
5 rows, 5 columns, 14 non-zeros
5 integer variables, all of which are binary
Scaling...
A: min|aij| = 1.000e+00 max|aij| = 1.000e+00 ratio = 1.000e+00
Problem data seem to be well scaled
Constructing initial basis...
Size of triangular part = 4
Solving LP relaxation...
GLPK Simplex Optimizer, v4.43
5 rows, 5 columns, 14 non-zeros
0: obj = 2.000000000e+00 infeas = 1.000e+00 (1)
* 2: obj = -2.500000000e+00 infeas = 0.000e+00 (0)
* 3: obj = -4.000000000e+00 infeas = 0.000e+00 (0)
OPTIMAL SOLUTION FOUND
Integer optimization begins...
+ 3: mip = not found yet >= -inf (1; 0)
+ 3: mip = not found yet >= tree is empty (0; 1)
PROBLEM HAS NO INTEGER FEASIBLE SOLUTION
想要的行为是在"问题没有整数可行解决方案"时指示失败
谢谢。
我只知道C API,但我想你可以很容易地找出Python的等价物。
在 C API 中,您使用glp_mip_status()
,在这种情况下你会得到GLP_NOFEAS
,这意味着"问题没有整数可行的解决方案"。请参阅文档中确定 MIP 解决方案的状态。
我不会弄乱公差。