samin (optim_doc)

### 1.5 Simulated annealing backend samin of scalar optimization ¶

A simulated annealing (stochastic) optimizer, changing each parameter separately, so not suitable for non-bound constraints. Requires specification of lower and upper bounds for each parameter and attempts to scan the whole region so defined.

No gradient or hessian of the objective function is used. The settings `fract_prec` and `max_fract_change` are not honoured.

Maximal stepwidth is continuously adjusted according to the ratio of accepted steps. Temperature is increased at the start until accepted steps cover the whole parameter range, if this is not the case at the initial temperature.

Accepts the additional settings `T_init` (initial temperature, default 0.1), `mu_T` (factor of temperature decrease, default 1.2), `iters_fixed_T` (subiterations within one temperature step, default 100), `iters_adjust_step` (number of subiterations after which maximal stepwidth is adjusted, default 5), `niter_check_tolfun` (number of iterations to compare with if checking the value of the objective function for convergence, default 5), `trace_steps` (set field `trace` of outp with a matrix with a row for each step, first column iteration number, second column repeat number within iteration, third column value of objective function, fourth column temperature, rest columns parameter values, default `false`), and `siman_log` (set field `log` of outp with a matrix with a row for each iteration, first column temperature, second column value of objective function, rest columns numbers of tries with decrease, no decrease but accepted, no decrease and rejected, steps corrected back into bounds, and steps yielding a new best value of the objective function).

Steps with increase `diff` of objective function are accepted if `rand (1) < exp (- diff / T)`, where `T` is the temperature of the current iteration.

If converged, the returned value of cvg will be `1`, if `MaxIters` is exceeded before convergence, cvg will be `0`. The returned structure outp, additionally to the possible fields `trace` and `log` described above, will have the fields `niter` and `user_interaction`.

Interpretation of `Display`: if set to `"iter"`, informational text is printed after each iteration and at the end of optimization. If set to `"final"`, informational text is printed only at the end of optimization.

No parallel execution is performed in this backend.

Options `save_state` and `recover_state` are not honoured.