# MultistartOptimization

`MultistartOptimization.MinimizationProblem`

— Type`struct MinimizationProblem{F, T}`

Wrapper for a minimization problem.

**Fields**

`objective`

The function to be minimized.

`lower_bounds`

Lower bounds (a vector of real numbers).

`upper_bounds`

Upper bounds (a vector of real numbers).

`MultistartOptimization.LocationValue`

— Type`struct LocationValue{T<:(AbstractArray{#s280,1} where #s280<:Real), S<:Real}`

A location-value pair.

**Fields**

`location`

Location (a vector of real numbers).

`value`

The value of the objective at

`location`

.

`MultistartOptimization.NLoptLocalMethod`

— Type```
NLoptLocalMethod(algorithm; options...)
```

A wrapper for algorithms supported by `NLopt`

. Used to construct the corresponding optimization problem.

See the NLopt documentation for the options. Defaults are changed slightly.

`MultistartOptimization.local_minimization`

— Function```
local_minimization(local_method, minimization_problem, x)
```

Solve `minimization_problem`

using `local_method`

, starting from `x`

. Return a `LocationValue`

.

`MultistartOptimization.TikTak`

— Type```
TikTak(quasirandom_N; keep_ratio, θ_min, θ_max, θ_pow)
```

The “TikTak” multistart method, as described in *Arnoud, Guvenen, and Kleineberg (2019)*.

This implements the *multistart* part, can be called with arbitrary local methods, see `multistart_minimization`

.

**Arguments**

`quasirandom_N`

: the number of quasirandom points for the first pass (using a Sobol sequence).

**Keyword arguments**

`keep_ratio`

: the fraction of best quasirandom points which are kept`θ_min`

and`θ_max`

clamp the weight parameter,`θ_pow`

determines the power it is raised to.

The defaults are from the paper cited above.

`MultistartOptimization.multistart_minimization`

— Function```
multistart_minimization(multistart_method, local_method, minimization_problem)
```

Solve `minimization_problem`

by using `local_method`

within `multistart_method`

.