Crate metaheuristics_nature[−][src]
Expand description
A collection of nature-inspired meta-heuristic 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.
All provided methods are listed in the module methods
.
For making your owned method, please see utility::prelude
.
Objective Function
You can define your question as a objective function through implementing ObjFunc
,
and then the upper bound, lower bound, and objective function ObjFunc::fitness
should be defined.
The final answer is ObjFunc::result
, which is calculated 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, usesrayon
. 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.libm
: If the standard library is not provided, some math functions might missing. This will disable some pre-implemented algorithms. However, there is a math library implemented in pure Rust, the name is same aslibm
. This feature can re-enable (or replace) the math functions by using thelibm
crate.
Re-exports
pub use crate::methods::*;
Modules
Pre-implemented optimization methods.
The random function for building algorithm.
The utility API used to create a new algorithm.
Macros
A tool macro used to build the builder function.