`pub struct NelderMead<P, F> { /* fields omitted */ }`
Expand description

The Nelder-Mead method a heuristic search method for nonlinear optimization problems which does not require derivatives.

The method is based on simplices which consist of n+1 vertices for an optimization problem with n dimensions. The function to be optimized is evaluated at all vertices. Based on these cost function values the behaviour of the cost function is extrapolated in order to find the next point to be evaluated.

The following actions are possible:

1. Reflection: (Parameter `alpha`, default `1`)
2. Expansion: (Parameter `gamma`, default `2`)
3. Contraction: (Parameter `rho`, default `0.5`)
4. Shrink: (Parameter `sigma`, default `0.5`)

Example

# References:

Wikipedia

## Implementations

### `impl<P, F> NelderMead<P, F> where    P: Clone + ArgminAdd<P, P> + ArgminSub<P, P> + ArgminMul<F, P>,    F: ArgminFloat, `[src]

Constructor

#### `pub fn sd_tolerance(self, tol: F) -> Self`[src]

Set Sample standard deviation tolerance

set alpha

set gamma

set rho

set sigma

## Trait Implementations

### `impl<P: Clone, F: Clone> Clone for NelderMead<P, F>`[src]

#### `fn clone(&self) -> NelderMead<P, F>`[src]

Returns a copy of the value. Read more

#### `fn clone_from(&mut self, source: &Self)`1.0.0[src]

Performs copy-assignment from `source`. Read more

### `impl<P, F> Default for NelderMead<P, F> where    P: Clone + ArgminAdd<P, P> + ArgminSub<P, P> + ArgminMul<F, P>,    F: ArgminFloat, `[src]

#### `fn default() -> NelderMead<P, F>`[src]

Returns the “default value” for a type. Read more

### `impl<'de, P, F> Deserialize<'de> for NelderMead<P, F> where    P: Deserialize<'de>,    F: Deserialize<'de>, `[src]

#### `fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error> where    __D: Deserializer<'de>, `[src]

Deserialize this value from the given Serde deserializer. Read more

### `impl<P, F> Serialize for NelderMead<P, F> where    P: Serialize,    F: Serialize, `[src]

#### `fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error> where    __S: Serializer, `[src]

Serialize this value into the given Serde serializer. Read more

### `impl<O, P, F> Solver<O> for NelderMead<P, F> where    O: ArgminOp<Output = F, Param = P, Float = F>,    P: Clone + Serialize + DeserializeOwned + ArgminScaledSub<O::Param, O::Float, O::Param> + ArgminSub<O::Param, O::Param> + ArgminAdd<O::Param, O::Param> + ArgminMul<O::Float, O::Param>,    F: ArgminFloat + Sum<O::Float>, `[src]

#### `const NAME: &'static str`[src]

Name of the solver

#### `fn next_iter(    &mut self,     op: &mut OpWrapper<O>,     _state: &IterState<O>) -> Result<ArgminIterData<O>, Error>`[src]

Computes one iteration of the algorithm.

#### `fn terminate(&mut self, _state: &IterState<O>) -> TerminationReason`[src]

Checks whether the algorithm must be terminated

#### `fn terminate_internal(&mut self, state: &IterState<O>) -> TerminationReason`[src]

Checks whether basic termination reasons apply. Read more

## Blanket Implementations

### `impl<T> Any for T where    T: 'static + ?Sized, `[src]

#### `pub fn type_id(&self) -> TypeId`[src]

Gets the `TypeId` of `self`. Read more

### `impl<T> Borrow<T> for T where    T: ?Sized, `[src]

#### `pub fn borrow(&self) -> &T`[src]

Immutably borrows from an owned value. Read more

### `impl<T> BorrowMut<T> for T where    T: ?Sized, `[src]

#### `pub fn borrow_mut(&mut self) -> &mut T`[src]

Mutably borrows from an owned value. Read more

### `impl<T> From<T> for T`[src]

#### `pub fn from(t: T) -> T`[src]

Performs the conversion.

### `impl<T, U> Into<U> for T where    U: From<T>, `[src]

#### `pub fn into(self) -> U`[src]

Performs the conversion.

### `impl<T> ToOwned for T where    T: Clone, `[src]

#### `type Owned = T`

The resulting type after obtaining ownership.

#### `pub fn to_owned(&self) -> T`[src]

Creates owned data from borrowed data, usually by cloning. Read more

#### `pub fn clone_into(&self, target: &mut T)`[src]

🔬 This is a nightly-only experimental API. (`toowned_clone_into`)

Uses borrowed data to replace owned data, usually by cloning. Read more

### `impl<T, U> TryFrom<U> for T where    U: Into<T>, `[src]

#### `type Error = Infallible`

The type returned in the event of a conversion error.

#### `pub fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>`[src]

Performs the conversion.

### `impl<T, U> TryInto<U> for T where    U: TryFrom<T>, `[src]

#### `type Error = <U as TryFrom<T>>::Error`

The type returned in the event of a conversion error.

#### `pub fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>`[src]

Performs the conversion.