# What is the solution pool?

Defines the solution pool for storing multiple solutions of a MIP model.

The *solution pool* allows
you to generate and store multiple solutions to a mixed integer programming
(MIP) model. This feature uses an extension of the IBM ILOG CPLEX branch-and-cut
algorithm to generate multiple solutions in addition to the optimal
solution.

For example, some constraints may be difficult to formulate efficiently as linear expressions, or the objective may be difficult to quantify exactly. In such cases, obtaining multiple solutions will help you choose one which best fits all your criteria, including the criteria that could not be expressed easily in a conventional MIP model.

Furthermore, you can use the solution pool and tools associated with it to explore and evaluate alternative solutions in a variety of ways:

You can collect solutions within a given percentage of the optimal solution. To do so, apply the solution pool gap parameters (relative or absolute), as explained in Parameters of the solution pool.

You can collect a set of diverse solutions. To do so, use the solution pool replacement strategy parameter (

`SolnPoolReplace`,`CPX_PARAM_SOLNPOOLREPLACE`) to set the solution pool replacement strategy to`CPX_SOLNPOOL_DIV`, as explained in the documentation of that parameter in the*CPLEX Parameters Reference Manual*. In order to control the diversity of solutions even more finely, apply a diversity filter, as explained in Diversity filters.In an advanced application of this feature, you can collect solutions with specific properties. To do so, see Filtering the solution pool

You can collect all solutions or all optimal solutions to a MIP model. To do so, see Enumerating all solutions.

The solution pool distinguishes solutions by the values of their discrete variables only. For more explanation of this point, see Limitations due to continuous variables and finite precision