Crate metaheuristics_nature[−][src]
Expand description
A collection of nature-inspired metaheuristic algorithms.
Algorithm
There are two traits Algorithm
and
Setting
.
The previous is used to design the optimization method,
and the latter is the setting interface.
Solver
is a simple interface for obtaining the solution, or analyzing the result.
This type allows you to use the API without importing any traits.
Objective Function
You can define your question as a objective function through implementing ObjFunc
.
First of all, the array types are ndarray::ArrayBase
.
And then you should define the upper bound, lower bound, and objective function ObjFunc::fitness
by yourself.
The final answer is ObjFunc::result
, which is generated from the design parameters.
Random Function
This crate use 32bit PRNG algorithm to generate random value, before that,
a random seed is required.
The seed is generated by getrandom
, please see its support platform.
Features
std
: Default feature. Enable standard library function, such as timing and threading.parallel
: Enable parallel function, let objective function running without ordered, usesstd::thread::spawn
. Disable it for the platform that doesn’t supported threading, or if your objective function is not complicate enough. This feature requiredstd
.wasm
: Support for webassembly, especial for random seed generating.
Re-exports
pub use crate::methods::*;
Modules
Pre-implemented optimization methods.
The random function for building algorithm.
This module provides a thread pool to spawn the objective function and collect the results.
The utility API used to create a new algorithm.
Macros
Define a data structure and its builder functions.
Structs
Enums
The terminal condition of the algorithm setting.