[Python] What do limit and symmetry mean in OR-Tools CP-SAT?

Discussão em 'Python' iniciado por Stack, Setembro 16, 2025.

  1. Stack

    Stack Membro Participativo

    I have a problem I am trying to optimize with about 1 million variables and 10 million constraints. CP-SAT takes a long time to find a feasible solution. I was reading the output and I see a few things I don't understand.

    • It tells me that I need to increase symmetry to at least 3. Looking at this link (and assuming it is relevant to the latest version of CP-SAT and using Python) it says

    // Whether we try to automatically detect the symmetries in a model and // exploit them. Currently, at level 1 we detect them in presolve and try // to fix Booleans. At level 2, we also do some form of dynamic symmetry // breaking during search.
    ​

    But it doesn't say anything about symmetry at 3 or above. What does it do if you set it to 3?

    • I tried setting symmetry to 3 and now that message has gone but I am left with

    [Symmetry] GraphSymmetryFinder error: During the initial refinement.
    ​

    Is this something I should try to resolve, and if so how?

    • There is also a line like:

    [Probing] deterministic_time: 1.00001 (limit: 1) wall_time: 1.21766 (Aborted 10197/201810)
    ​

    Is that something to worry about and can I increase limit to make the probing complete rather than abort? limit isn't one of the parameters in solver.parameters it seems. Is limit setting a cap on the number of seconds Probing can run for? What is happening in this probing step?

    Continue reading...

Compartilhe esta Página