On some models symmetry poses a real problem for solvers. Here is an example of a sports related scheduling problem. We achieve a speedup of 35x by adding constraints that break a number of symmetries in the model. The results here are with Gurobi.
![image image]()
Modern solvers have also built-in facilities to detect and do something about symmetry. E.g. Gurobi has the option Symmetry which can be set to 2 (aggressive). I never had much luck with this. Indeed the results are:
Cplex shows very similar behavior:
Note that Cplex provides a large number of settings for the symmetry option:
That is probably just an educational tool to teach the user a lesson about combinatorial explosion: finding the right settings for your model.