如何打印出 Gurobi C++ 中的所有约束?
How to print out all constraints in Gurobi C++?
我现在用的是Gurobi,但是发现模型不可行,所以我试着把所有的约束都打印出来,看看是不是我弄错了。我知道一些关于如何打印出每个约束名称的函数,但就是找不到打印约束本身(数学表达式)的最终解决方案。
GRBConstr *c=0;
c = model.getConstrs();
for(int i=0;i<model.get(GRB_IntAttr_NumConstrs);++i){
cout << c[i].get(GRB_StringAttr_ConstrName) << endl;
}
要调试模型,最好的选择是将模型文件写成LP格式。在您的示例中,添加代码:
model.update();
model.write("debug.lp");
然后在您最喜欢的文本编辑器中浏览文件 debug.lp。
我现在用的是Gurobi,但是发现模型不可行,所以我试着把所有的约束都打印出来,看看是不是我弄错了。我知道一些关于如何打印出每个约束名称的函数,但就是找不到打印约束本身(数学表达式)的最终解决方案。
GRBConstr *c=0;
c = model.getConstrs();
for(int i=0;i<model.get(GRB_IntAttr_NumConstrs);++i){
cout << c[i].get(GRB_StringAttr_ConstrName) << endl;
}
要调试模型,最好的选择是将模型文件写成LP格式。在您的示例中,添加代码:
model.update();
model.write("debug.lp");
然后在您最喜欢的文本编辑器中浏览文件 debug.lp。