IBM ILOG Solver User's Manual > Developing Solver Applications > Developing Applications > Designing the model and prototyping > Avoid symmetry

We strongly recommend that your model should not introduce symmetries that do not already exist in reality. Moreover, one of the purposes of successive prototypes is to eliminate symmetries in order to reduce the search space and to represent equivalent solutions uniquely. In constraint programming generally, symmetries in the model introduce greater computation time in the search for solutions and consequently seriously hamper performance.

This step--eliminating these kinds of symmetries--is obligatory before you can estimate execution time. If you know already on the basis of the model that the execution time is exponential with respect to the number of data (usually the number of principal variables), various trials with data sets of different sizes will give you an estimate of the constant factor in the exponential complexity.

Unfortunately, the case sometimes occurs where you cannot eliminate symmetries in the model itself; you have to eliminate them during the search for solutions. In other words, those symmetries cannot be taken into account beforehand but only afterwards.


Privacy Policy