我是 SCIP 的新手,所以我不确定这是一个错误还是我做错了什么。
我有一个使用 SCIP 完美解决的 MIP 实例,但是当我尝试解决模型 SCIP 的副本时说它是不可行的。当 presolve 关闭时,它似乎更明显。
我正在使用带有预构建 SCIP v3.2.0 的 windows。该模型只有二进制和整数变量。
以下代码概述了我的尝试:
SCIP* _scip, subscip;
SCIPcreate(&_scip);
SCIPincludeDefaultPlugins(_scip);
SCIPcreateProbBasic(_scip, "interval_solver")); // create an empty problem
SCIPsetPresolving(_scip, SCIP_PARAMSETTING_OFF, true); //disable presolving
// build model (snipped)
SCIPsolve(_scip); // succeeds and gives feasible solution
SCIP_Bool valid = FALSE;
SCIPcreate(&subscip);
SCIPcopy(_scip, subscip, NULL, NULL, "1", TRUE, FALSE, TRUE, &valid);
SCIPsolve(subscip); // infeasible
可能相关(对我来说似乎很奇怪)的事情是,在解决了原始问题(并获得了可行的解决方案)之后,检查解决方案会报告不可行的结果。IE
SCIP_SOL* sol = SCIPgetBestSol(_scip);
SCIPcheckSol(_scip, sol, TRUE, TRUE, TRUE, TRUE, &valid);
给出:
solution value 1 violates bounds of <t_x71_(6,1275,6805)_(9,1275,6805)>[-0,0] by 1
任何想法为什么会发生这种情况?谢谢!