[SCIP] SCIP finding efficacious cuts as non-efficacious

Naga Venkata Chaitanya Gudapati - nagavenkata.gudapati@studio.unibo.it nagavenkata.gudapati at studio.unibo.it
Sat Nov 21 14:27:04 CET 2020


Hello folks,

I am trying to add some cuts to my Branch-Cut and Price problem and unfortunately SCIP is reporting that a few cuts that I am adding are non-efficacious even though, I think they are efficacious. The way I have designed my code is that it is impossible to add non-efficacious cuts.

I am using the code from TSP example which I modified very slightly for my use case,

                      if (SCIPisCutEfficacious(scip, sol, row))
              {
                  SCIP_Bool infeasible;
                  SCIP_CALL(SCIPaddRow(scip, row, true, &infeasible));

                  if (infeasible)
                  {
                     *result = SCIP_CUTOFF;
                     std::cout << "Added cut is infeasible" << "\n";
                  }
                  else
                  {
                     *result = SCIP_SEPARATED;
                  }
               }
               else
               {
                  SCIP_CALL(SCIPprintRow(scip, row, nullptr));
                  SCIP_CALL(SCIPreleaseRow(scip, &row));
                  SCIPprintSol(scip, sol, nullptr, 0);
                  std::cout << "The cut is not Efficacious " << \n";
               }

This is one such cut I am trying to add

sepa_con_1_CUT_IF158: 1 <= +1<t_z[13,4]> +1<t_z[17,4]> +1<t_z[4,36]> +1<t_z[4,15]> -1<x[2][1]> -1<x[72][2]> -1<x[107][3]> <= 1e+20

and the result of +1<t_z[13,4]> +1<t_z[17,4]> +1<t_z[4,36]> +1<t_z[4,15]> -1<x[2][1]> -1<x[72][2]> -1<x[107][3]> is 0.999777059 and I think it is above the SCIP tolerance and should be added. The values of the above variables are given here

z[13,4]                             0.626832074793241 (obj:65)
z[17,4]                             0.577612369651203 (obj:54)
z[4,36]                             0.239442646530025 (obj:70)
z[4,15]                             0.612387630348795 (obj:69)
x[2][1]                             0.239442646530025 (obj:18)
x[72][2]                            0.577612369651203 (obj:22)
x[107][3]                           0.239442646530025 (obj:29)

I am attaching the output of SCIPprintSol, just in case if someone is wondering. I feel like I am missing something very trivial (and I hope it is not a calculation error). I am wondering if someone can help me debug this.

Regards,
Naga

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://listserv.zib.de/pipermail/scip/attachments/20201121/840aacb4/attachment.html>
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: scipprintsol.txt
URL: <http://listserv.zib.de/pipermail/scip/attachments/20201121/840aacb4/attachment.txt>


More information about the Scip mailing list