<div dir="ltr">Hi everyone,<br><br>I am implementing a branch-and-cut model using C++ with SCIP 6.0.1. I am using a relaxation handler to find lower bounds for a minimization problem. The idea is providing only the lower bound value, not a relaxed solution. Therefore, I was only updating the '*lowerbound' pointer on the RELAXEXEC callback. However, when my relaxation finds a lower bound value equal to the problem's optimal objective value, the branch-and-cut ends with a solution greater than the optimal. I have no idea why this is happening.<br><br>- It can be because I am not providing a relaxed solution?<br><br>I tried to provide a relaxed solution that I know is optimal (for a restricted case of the problem). To do this, I am setting the values one by one with SCIPsetRelaxSolVal() and calling SCIPmarkRelaxSolValid() to inform SCIP that the solution is complete and valid. In this case, if I set the "includeslp" argument of SCIPmarkRelaxSolValid() as FALSE, nothing changes, and SCIP continues cutting off the optimum. When I set the "includeslp" argument to TRUE, I get the following error: <br><br>     [src/scip/cons.c:3294] ERROR: enforcing method of constraint handler <cycle-elimination> for relaxation returned an invalid result 1<br><br>However, I am sure that there are no cycles in the given solution. That is, the solution is feasible. <br><br>I followed the Relaxator example (<a href="https://www.scipopt.org/doc/html/RELAXATOR_MAIN.php">https://www.scipopt.org/doc/html/RELAXATOR_MAIN.php</a>) to implement my relaxation and add a relaxed solution to SCIP's data structure. The priority is -1, and the frequency is 1.<br><br>Have you some suggestions about what I can do?<br><br>Best regards,<br>Renato</div>