IBM ILOG Solver User's Manual > Developing Solver Applications > Designing Models > Remove symmetries > Group by type

When two or more variables have identical characteristics, it is pointless to differentiate them artificially.

Principle

Rather, it is preferable to design a model that takes into account not simply the elementary entities but instead the types into which the elementary entities can be meaningfully grouped. Each such type, of course, quantitatively handles the elementary entities that belong to it.

Example

For example, let's say that we want to plug electronic cards into racks. We'll assume that there are five types of cards. Each rack may contain only a finite number of cards according to some constraints. We want to use Solver to minimize the number of racks used. This problem may be formulated in two different ways:

In the first model, we define one variable per card. Once we have a solution, any permutation of two cards of the same type defines a "new" solution. The search space is consequently large and contains many such symmetrical solutions that don't really interest us.

In the second model, we manipulate the number of cards of a given type, rather than the cards themselves. This model suppresses the symmetries introduced by the previous one and thus reduces the search space.