<div dir="ltr">Hi Christopher and Marc,<div><br></div><div>Thanks for the reply! Could you please give more details on how to construct the matrix for the orbitope plugin? I have essentially the same setting as in the paper "Mixed-integer programming techniques for the connected max-k-cut problem" by Hojny, Joormann, Lüthen & Schmidt. In other words, I have a graph G = (V, E) and I want to partition the vertices into k sets V_1, ..., V_k. My formulation has binary variables x_{v, i} that indicate if vertex v belongs to V_i or not. I'm a bit confused on how to construct the (p x q)-matrix M in this case. Should I set p = |V|, q = k, and set M to be the all-ones matrix?</div><div><br></div><div>Thanks for your time!</div><div>Matheus</div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Fri, Feb 23, 2024 at 3:01 PM Marc Pfetsch <<a href="mailto:pfetsch@mathematik.tu-darmstadt.de">pfetsch@mathematik.tu-darmstadt.de</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><br>
<br>
Hi Matheus,<br>
<br>
the crucial point is whether and how symmetries are detected. This <br>
depends on the SCIP version:<br>
<br>
- Beginning with the upcoming SCIP 9 your constraint handler needs to <br>
implement callbacks that give information about the symmetries of your <br>
constraints to SCIP. Then symmetries can be handled automatically.<br>
<br>
- In the "older" SCIP versiosn, your new constraint handler will disable <br>
symmetry detection, because SCIP does not have any symmetry information <br>
about your constraint. Thus you would need to add orbitope constraints. <br>
I do not think that there is an example, but you need a matrix of binary <br>
variables on which a full symmetry group acts by permuting the columns.<br>
<br>
Best<br>
<br>
Marc<br>
<br>
<br>
<br>
<br>
On 23/02/2024 15:43, Matheus Ota wrote:<br>
> Dear SCIP team,<br>
> <br>
> I've implemented in SCIP/C++ a branch-and-cut algorithm where the <br>
> cutting-planes are separated via a constraint handler. I want to add <br>
> symmetry handling methods on top of this algorithm (like shifted column <br>
> inequalities). So this leads me to the following question.<br>
> <br>
> - Looking at the documentation I can see that I may be able to do this <br>
> easily by just activating a flag <br>
> (<a href="https://www.scipopt.org/doc/html/SYMMETRY.php" rel="noreferrer" target="_blank">https://www.scipopt.org/doc/html/SYMMETRY.php</a> <br>
> <<a href="https://www.scipopt.org/doc/html/SYMMETRY.php" rel="noreferrer" target="_blank">https://www.scipopt.org/doc/html/SYMMETRY.php</a>>). However I wonder if <br>
> the additional cutting planes that I add iteratively will affect the <br>
> symmetry handling. Do I need to manually include the orbitope plugin? <br>
> And if so, how do I do that? Is there any example?<br>
> <br>
> Thank you for your time,<br>
> Matheus<br>
> <br>
> _______________________________________________<br>
> Scip mailing list<br>
> <a href="mailto:Scip@zib.de" target="_blank">Scip@zib.de</a><br>
> <a href="https://listserv.zib.de/mailman/listinfo/scip" rel="noreferrer" target="_blank">https://listserv.zib.de/mailman/listinfo/scip</a><br>
_______________________________________________<br>
Scip mailing list<br>
<a href="mailto:Scip@zib.de" target="_blank">Scip@zib.de</a><br>
<a href="https://listserv.zib.de/mailman/listinfo/scip" rel="noreferrer" target="_blank">https://listserv.zib.de/mailman/listinfo/scip</a><br>
</blockquote></div>