# Optimizing the model

After completing the quest dataset collection, prepare data, and setup model, the entire configuration is now fed to the solver. The solvers are the algorithms that resolve the mathematical equations by improving the solution iteratively as per the defined objective functions generating the most optimal solution.

These solvers are available:

- CBC: The COIN-OR Branch and Cut solver (CBC) is an open-source Linear program (LP) & mixed-integer program (MIP) solver. CBC is intended to be used primarily as a callable library to create customized branch-and-cut solvers.
- IPOPT is an interior point optimizer. This is an open-source solver for large-scale nonlinear optimization. It can be used to solve general nonlinear programming problems along with linear problems.
- BONMIN is an open-source C++ code for solving linear, non-linear, and general MINLP (Mixed Integer NonLinear Programming) problems.

This table describes the programming models supported by the solvers.

Solvers | Linear | Non-linear | Non-linear integer | Mixed integer |
---|---|---|---|---|

CBC | ✔ | x | x | ✔ |

IPOPT | ✔ | ✔ | ✔ | x |

BONMIN | ✔ | ✔ | ✔ | ✔ |

To set up the model:

- Drag the optimize model activity box to the canvas.
- Specify a name.
- Optionally, specify a description.
- Select the setup model.
- Select a solver to apply to the model.
- Optionally, specify the iterations. This limits the number of iterations that the solver runs.
- Click .
- Click .

Note: When a custom algorithm is applied, the Optimize Model activity
is auto-generated upon saving the custom algorithm configuration in the Setup Model
activity.