<div dir="ltr"><div><div>Dear mailing list,<br><br></div></div>when we manually change a variable of a feasible solution which was found by the scip solver, the solution becomes infeasible, even though it was feasible before and we know that it has to be feasible afterwards, from problem-knowledge.<br><br>    SCIP_ERR(SCIPsetSolVal(scip, mysol, var, 0), "error setting solution value");<br>    SCIP_ERR(SCIPcheckSol(scip, mysol, 1, 1, 1, 1, &isSolFeasible), "Error checking sol");<br><br><div>Is it possible to change solution variables that way and check for feasibility?<br><br></div><div>We tried to copy the solution, transformed the variables, checked that the variables we change are active, tried SCIPtrySol(),...<br></div><div><br></div><div>Our reasoning behind this approach:<br><br>Due to numerical inaccuracies, scip sometimes finds inaccurate solutions
 for our binary integer problem. We would like 
to round non-integer variables manually after the solution is found. But simple rounding to the nearest value (e.g. 0.99999999 to 1.0)
 leads to infeasible solutions in some cases. From the knowledge about our problem, we
 know which variables we can set to guarantee feasible but poor solutions. To improve our solutions, we would like to try to round 
variables first, check if the resulting solution is feasible and if not 
choose the poor variables as a last option.<br><br></div><div>Kind regards,<br></div><div>Jan</div></div>