Я новичок в SCIP, поэтому не уверен, ошибка ли это или я просто что-то делаю не так.
У меня есть экземпляр MIP, который отлично решает с помощью SCIP, однако, когда я пытаюсь решить копию модели, SCIP говорит, что это невозможно. Вроде бы заметнее, когда preolve выключен.
Я использую Windows со встроенным SCIP v3.2.0. В модели есть только двоичные и целочисленные переменные.
Следующий код описывает мою попытку:
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
Что-то, что может быть связано (и кажется мне странным), заключается в том, что после решения исходной проблемы (и получения возможного решения) проверка решения сообщает о недопустимом результате. т.е.
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
Есть идеи, почему это могло происходить? Спасибо!