<div dir="ltr"><div><div><div><div><div><div>Dear SCIP community,<br><br></div>I am working on a  stable set problem in graphs, where a set packing constraint <br></div>x_u+x_v <= 1<br></div>is added for each edge (u,v) in a graph, with x_v indicating if a node is chosen for a stable set. In many IP solvers such as Gurobi and CPLEX, these are strengthened to the clique inequalities<br></div> \sum_{v\in C} x_v <= 1 for some clique C in the graph, eliminating many rows from the LP.<br></div>I'd like SCIP to do the same during presolving, but unfortunately I cannot seem to find the right parameters in order to do so. During separation these cliques are found, but for my application I still observe a significant slowdown due to all the original edge inequalities being included in the initial LP.<br><br></div><div>I tried changing the following parameters (individually), but could not seem to find successful settings:</div><div><br><pre style="background-color:rgb(39,40,34);color:rgb(248,248,242);font-family:"JetBrains Mono",monospace;font-size:10.5pt"><span style="color:rgb(144,139,37)">SCIP_CALL</span>(<span style="color:rgb(102,217,239)">SCIPsetBoolParam</span>(<span style="color:rgb(174,129,255)">scip</span>,<span style="color:rgb(230,219,116)">"constraints/setppc/cliquelifting"</span>,TRUE));<br><span style="color:rgb(144,139,37)">SCIP_CALL</span>(<span style="color:rgb(102,217,239)">SCIPsetBoolParam</span>(<span style="color:rgb(174,129,255)">scip</span>,<span style="color:rgb(230,219,116)">"constraints/setppc/cliqueshrinking"</span>,FALSE));<br><span style="color:rgb(144,139,37)">SCIP_CALL</span>(<span style="color:rgb(102,217,239)">SCIPsetIntParam</span>(<span style="color:rgb(174,129,255)">scip</span>,<span style="color:rgb(230,219,116)">"heuristics/clique/priority"</span>,<span style="color:rgb(174,129,255)">1'000'000</span>));<br><span style="color:rgb(144,139,37)">SCIP_CALL</span>(<span style="color:rgb(102,217,239)">SCIPsetIntParam</span>(<span style="color:rgb(174,129,255)">scip</span>,<span style="color:rgb(230,219,116)">"separating/clique/priority"</span>,<span style="color:rgb(174,129,255)">1'000'000</span>));<br><span style="color:rgb(144,139,37)">SCIP_CALL</span>(<span style="color:rgb(102,217,239)">SCIPsetBoolParam</span>(<span style="color:rgb(174,129,255)">scip</span>,<span style="color:rgb(230,219,116)">"constraints/setppc/addvariablesascliques"</span>,TRUE));<br><span style="color:rgb(144,139,37)">SCIP_CALL</span>(<span style="color:rgb(102,217,239)">SCIPsetBoolParam</span>(<span style="color:rgb(174,129,255)">scip</span>,<span style="color:rgb(230,219,116)">"propagating/vbounds/usecliques"</span>,FALSE));<br><span style="color:rgb(144,139,37)">SCIP_CALL</span>(<span style="color:rgb(102,217,239)">SCIPsetRealParam</span>(<span style="color:rgb(174,129,255)">scip</span>,<span style="color:rgb(230,219,116)">"presolving/clqtablefac"</span>,<span style="color:rgb(174,129,255)">1000.0</span>));<br><span style="color:rgb(144,139,37)">SCIP_CALL</span>(<span style="color:rgb(102,217,239)">SCIPsetRealParam</span>(<span style="color:rgb(174,129,255)">scip</span>,<span style="color:rgb(230,219,116)">"separating/clique/cliquetablemem"</span>,<span style="color:rgb(174,129,255)">2'000'000</span>));<br><span style="color:rgb(144,139,37)">SCIP_CALL</span>(<span style="color:rgb(102,217,239)">SCIPsetIntParam</span>(<span style="color:rgb(174,129,255)">scip</span>,<span style="color:rgb(230,219,116)">"separating/clique/maxsepacuts"</span>,<span style="color:rgb(174,129,255)">1'000</span>));<br><span style="color:rgb(144,139,37)">SCIP_CALL</span>(<span style="color:rgb(102,217,239)">SCIPsetIntParam</span>(<span style="color:rgb(174,129,255)">scip</span>,<span style="color:rgb(230,219,116)">"separating/clique/maxzeroextensions"</span>,<span style="color:rgb(249,38,114)">-</span><span style="color:rgb(174,129,255)">1</span>));</pre></div><div>Additionally, I tried changing initial=FALSE for the edge constraints, but this still didn't make the presolver find maximal cliques. If someone could point me to the correct settings/functions, or knows if such a functionality does not exist and I need to implement it manually, I would be grateful.<br><br></div><div>With kind regards,<br><br></div><div>Rolf van der Hulst<br></div></div>