parameter_optimization

Parameter optimization is used to find parameter value-combinations which give results that is chosen by the user. This is done by minimizing a scalar objective function of several variables, starting at an initial estimate. This is generally referred to as unconstrained nonlinear optimization.

To perform a parameter optimization select **Simulation | Parameter Optimization…** from the main menu.

The parameter optimization window is divided into several pages in a wizard style. The **Back** and **Next** buttons will guide you back and forth in the wizard.

In the first page of the optimization wizard one has to choose which parameters one wants to find out. The list shows all parameters in the current project. Select parameters in the list and click the **Add** button to include them in the optimization.

For each selected parameter one has to give an initial condition, this is the starting guess in the optimization algorithm. One also has the possibility to add constraints on upper and lower bounds for each selected parameter. Default values are infinity and negative infinity respectively on these bounds, therefore there won’t be any bounds.

In the second page of the optimization wizard one has to choose which output targets one wants to optimize the parameters against. An optimization target is the value for a specific output at a specific time-point. The list displays all available outputs. Select an output and click the **Add** button to add it to the table of output targets. In the table you must specify the target value for the output as well as at which time-point this target should have the value.

In the third page of the optimization wizard one can configure optimization settings and run the optimization.

The optimization algorithm used is a simplex search method called Nelder-Mead Simplex Method ^{[1]}. It is a direct search method that does not use numerical or analytic gradients.

The simplex method has some configuration settings:

**Termination tolerance on x**-*default: 1.0E-4***Termination tolerance on the function value**-*default: 1.0E-4***Maximum number of function evaluations allowed**-*default: 200 times number of parameters***Maximum number of iterations allowed***default: 200 times number of parameters***Objective function which we want to minimize**(not editable) - It is used for evaluating the goodness of fit of the optimization – the lower the value of this function, the better is the fit. It is calculated for each iteration and iterations are continued if the objective function is getting lower values, until the termination tolerance is reached or the user-specified maximum number of simulations is reached

[1] Lagarias, J.C., J. A. Reeds, M. H. Wright, and P. E. Wright, “Convergence Properties of the Nelder-Mead Simplex Method in Low Dimensions,” _SIAM Journal of Optimization_, Vol. 9 Number 1, pp. 112-147, 1998.
To start the optimization click the **Optimize** button.

In the last page of the optimization wizard one can examine the estimated parameter values of the optimization.

To update the model parameter values with the estimated values, check the corresponding checkbox **Keep estimated value**.

Apart from the estimated parameter values one can also study information about the optimization. The information consists of:

- If the optimization converged towards a solution
- Which optimization algorithm used
- The final value of the objective function
- The number of iterations
- The number of function evaluations

parameter_optimization.txt · Last modified: 2022/12/29 17:47 by mina