C++ Cplex C+中的不可行行+;

C++ Cplex C+中的不可行行+;,c++,math,model,cplex,C++,Math,Model,Cplex,我有一个小问题;我正在解决MIP模型,用C++编码,用CPLEX求解器求解。我记得当我用相对较小的实例测试模型时,它给了我“不可行行…”;现在,我在一个大型实例上测试了同一个模型,得到了不可行性,但它没有告诉我哪一行导致了不可行性。如何找到导致不可行的参数或约束?当测试较大的实例时,执行预解算,是否会导致不可行性?我在谷歌上搜索了一下conflict refiner,但找不到一个小而清晰的例子来解释如何调用它?如果您有任何建议或想法,我将非常高兴 在C++中,你应该看看FeasOpt 在文档中

我有一个小问题;我正在解决MIP模型,用C++编码,用CPLEX求解器求解。我记得当我用相对较小的实例测试模型时,它给了我“不可行行…”;现在,我在一个大型实例上测试了同一个模型,得到了不可行性,但它没有告诉我哪一行导致了不可行性。如何找到导致不可行的参数或约束?当测试较大的实例时,执行预解算,是否会导致不可行性?我在谷歌上搜索了一下conflict refiner,但找不到一个小而清晰的例子来解释如何调用它?如果您有任何建议或想法,我将非常高兴


在C++中,你应该看看FeasOpt

在文档中,请参见

CPLEX>CPLEX>不可行性和无限性用户手册


如果你在OPL中建模,你可以从音乐会C++中放松,即ApIS

< P>另一种方法,找到不可行的地方是将你的模型作为LP文件或类似的方式导出,然后尝试用独立的CPLEX解决它。如果您合理地命名变量和约束,这会有所帮助。然后,您就可以使用cplex中的所有交互式工具来帮助您找到问题所在。

你好@Alex,非常感谢,您再次拯救了我。只是我在您建议的示例(fesaopt)中有一个小问题。在feasopt调用的示例中,他们使用con.getsize()获取约束大小,因为他们以以下方式对约束进行建模:con.add(..)等。但是,在我的模型中,我以以下方式添加了约束:for(…)IloExp x(env)for(…)x+=S[I][j]model.add(x