optimization - Why could a SCIPcopy model be infeasible a when original model is feasible? -


i'm new scip, i'm not sure if bug or if i'm doing wrong.

i have mip instance solves using scip, when try solve copy of model scip says infeasible. seems more noticeable when presolve turned off.

i'm using windows pre-built scip v3.2.0. model has binary , integer variables.

the following code outlines attempt:

scip* _scip, subscip; scipcreate(&_scip); scipincludedefaultplugins(_scip); scipcreateprobbasic(_scip, "interval_solver"));     // create empty problem scipsetpresolving(_scip, scip_paramsetting_off, true);   //disable presolving  // build model (snipped)  scipsolve(_scip);  // succeeds , gives feasible solution  scip_bool valid = false; scipcreate(&subscip); scipcopy(_scip, subscip, null, null, "1", true, false, true, &valid);  scipsolve(subscip);  // infeasible 

something might related (and seems weird me) after solving original problem (and getting feasible solution), checking solution reports infeasible result. i.e.

scip_sol* sol = scipgetbestsol(_scip); scipchecksol(_scip, sol, true, true, true, true, &valid); 

gives:

solution value 1 violates bounds of <t_x71_(6,1275,6805)_(9,1275,6805)>[-0,0] 1 

any ideas why happening? thanks!

propagation in scip may take account best solution known far , reductions valid problem of finding solution better this. example, if have minimization problem n variables x_1,...,x_n objective coefficients c_1,...,c_n >= 0 , found solution x_1 = 1, x_2 = ... = x_n = 0, propagation globally fix x_1 0, because objective of solution x_1 = 1 @ least large objective of solution found.

this means solutions found far may not feasible anymore remaining problem (which looks strictly better solution). in order check solution, should check in original problem space, can scipchecksolorig().

disabling presolving propagation might help, not guarantee global presolved problem not changed. presolving in lp solver should not problem, might have changed reported optimal lp solution (if there multiple optima) , therefore caused change in solving process. might have avoided issue in case, pure luck , issue may still appear again on other instances. moreover, more features disable, more have negative impact on performance.

however, there easy solution problem: can copy original unchanged problem using scipcopyorig().


Comments

Popular posts from this blog

Android : Making Listview full screen -

javascript - Parse JSON from the body of the POST -

javascript - How to Hide Date Menu from Datepicker in yii2 -