- Bumped dependencies (#9).
- Made LAPACK dependency optional, defaulting to using
nalgebra
. This allows the library to be built on Windows (#8).
- Added
restart
module that implements theLR
,IPOP
, andBIPOP
automatic restart algorithms. - Added
ParallelObjectiveFunction
trait andCMAES::run_parallel
andCMAES::next_parallel
methods to allow parallel execution of objective functions. - Added
mode
option to choose whether to minimize or maximize the objective function. - Added
fmin
,fmax
,fmin_parallel
, andfmax_parallel
functions for convenience in cases where configuration is not required. - Added
Scale
wrapper type for objective functions that scales the search space. - Added
parallel_update
option to choose whether to perform the state update in parallel, which can improve performance for large population sizes. - Added the following termination criteria:
MaxFunctionEvals
,MaxGenerations
,MaxTime
,FunTarget
,TolFunRel
. - Added options to configure the following termination criteria:
TolXUp
,TolConditionCov
,TolFunHist
(formerlyEqualFunValues
),TolStagnation
. - Added median objective function value to data plots.
- Added
Plot::len
,Plot::is_empty
, andPlot::capacity
methods to retrieve the number of data points stored and allocated for.
- Made
initial_mean
andinitial_step_size
the required options forCMAESOptions
.dimensions
is now taken frominitial_mean
. Also removedInvalidOptionsError::MeanDimension
to reflect these changes. - Switched to static dispatch for objective function types.
- Renamed
CMAESState
toCMAES
. - Removed the
max_generations
argument ofCMAES::run
(covered by a termination criterion now). - Renamed
reason
field ofTerminationData
toreasons
and changed its type fromTerminationReason
toVec<TerminationReason>
. - Changed the types of the
current_best
andoverall_best
fields ofTerminationData
fromIndividual
toOption<Individual>
. - Renamed
ConditionCov
termination criterion toTolConditionCov
. - Renamed
Stagnation
termination criterion toTolStagnation
. - Replaced
EqualFunValues
termination criterion withTolFunHist
. - Changed signature of
CMAES::print_final_info
to take&[TerminationReason]
instead ofOption<TerminationReason>
.
- Fixed
TolFun
termination criterion checking whether the current generation's function values are all belowtol_fun
instead of whether the range of them is. - Fixed panic occurring when the algorithm immediately terminates with
InvalidFunctionValue
.
- Improved overall performance. Iteration times are reduced by between ~10% and ~65% depending on the problem dimension and population size.
- Exposed
nalgebra-lapack
features to allow choosing the LAPACK provider (#5).
- Initial release