NEWS
DEoptim 2.2-8 (2022-11-11)
- Fixed uninitialized variable issue found via valgrind. Thanks to Prof
Ripley for the report.
DEoptim 2.2-7 (2022-11-06)
- Added if(is.null(args$.combine)) args$.combine <- c to DEoptim.R to allow
for optional custom .combine
- Set default mapping function to NULL; This improves performance by
allowing us to avoid one R call during the optimization if there is no
mapping function.
- Remove unused variable par in de4_0.c
- Remove unnecessary allocation of sexp_t_tmpC, sexp_gta_oldC in
de4_0.c that led to stack imbalance, potential crash.
- Update comments in de4_0.c to reflect variable names that were
changed when objects were converted from arrays to SEXPs.
- Refactor the loop that populates t_bestC from the initial
population, so there's no longer the potential for t_bestC to be
uninitialized.
- Fix call to parallel::clusterExport
- Use full names to avoid partial matching; Partial argument name
matching could cause confusing errors if the user's objective
function contains arguments similar to the MARGIN and FUN
arguments in apply().
- Added tests/ directory; tests.R now tests for problems in
arguement names
- Import from parallelly package; use parallelly::availableCores()
instead of parallel::detectCores() in extension suggested by
Henrik Bengtsson
- The 'parallelType' argument to DEoptim.control() now may be
specified using numeric values (as before), or using "none",
"auto", "parallel", or "foreach"; "none" corresponds to the
numeric value 0, "parallel" with 1, and "foreach" with 2; "auto"
will attempt to decide which package to use
DEoptim 2.2-6 (2021-05-05)
- README modified
- DESCRIPTION modified
- References updated
DEoptim 2.2-5 (2020-02-23)
- Used tools::package_native_routine_registration_skeleton(".") to create
src/DEoptim_init.c
- In NAMESPACE, changed useDynLib(DEoptim) to useDynLib(DEoptim,
.registration = TRUE))
- removed unused variables from de4_0.c: tmp_best, t_tmpC, same,
i_xav, i_nstorepop, tempP, gta_newC, gta_oldC, popC, d_par
- definition of popEvaluate(long *l_nfeval, SEXP parMat, SEXP fcall,
SEXP env) changed to include a 5th integer argument, to remove warning
about type mismatch with previous definition
DEoptim 2.2-4 (2016-12-19)
- Vignette source code included in package.
- New option 'cluster' allows passing existing parallel cluster, using
code by Alexey Stukalov.
- As pointed out by Jason Thorpe: "parallel:::.onLoad() makes a call
to stats::runif(1L) depending on whether or not
Sys.getenv("R_PARALLEL_PORT") returns an integer, which appears to
be platform dependent. The result of this bug is that the return
value of DEoptim() will differ by platform the first time it is
called, even when taking care to call set.seed() prior to calling
DEoptim()." We now require 'parallel' (to ensure it is loaded)
to avoid this behaviour.
DEoptim 2.2-3 (2014-12-16)
- DESCRIPTION updated.
- Change to steptol interpretation in C, thanks to Alec Solway.
- Change to foreach logic, thanks to Jonathan Owen.
- Change to NP setting when initialpop provided, thanks to Tobias KD Weber.
- More flexible passing of args to foreach.
- Makefile changed to remove references to shell
DEoptim 2.2-2 (2013-04-20)
- Change to de4_0.c to replace memcpy with memmove
DEoptim 2.2-1 (2012-07-01)
- Invisible-to-users changes to evaluate.c to fix misuse of isnan
DEoptim 2.2-0 (2012-04-06)
- Thanks to Joshua Ulrich and Kris Boudt, parallel operation is possible,
using foreach.
- sandbox directory added, with example parallel code
- Kris Boudt added as a contributor
- foreach added as suggested package
- foreachArgs arguement added to DEoptim.control() function
- Fixed typo in box constraint example in DEoptim.Rd
- VignetteDepends metadata added to .Rnw
- Added mapping function for integer / cardinality constraints
- checkWinner and avWinner options have been removed. If the user desires
averaging (to deal with a stochastic objective function) then a wrapper
function may be used to give the average value over several calls.
DEoptim 2.1-2 (2011-11-21)
- Modified CITATION file and Rd files.
- Joshua Ulrich fixed the crash caused by a stack overflow when optimizing
many parameters. Thanks to Suraj Gupta for pointing out the problem.
DEoptim 2.1-1 (2011-05-16)
- Added portfolio optimization vignette.
- Bug with reltol / steptol stopping criteria fixed.
- Changed JADE to be 'on' when c > 0 for *any* strategy and set c=0
as default in DEoptim.control (JADE is 'off').
DEoptim 2.1-0 (2011-04-06)
- Added documentation of strategy six.
- Fixed typos in vignette.
- Modified CITATION file and Rd files.
DEoptim 2.0-9 (2011-03-01)
DEoptim 2.0-8 (2011-01-12)
- Many improvements in the C code, thanks to Dirk Eddelbuettel's detailed
code review. Dirk's contributions include:
- fixed gd_bestmemit and gd_bestval initialization to avoid segfaults
- propegate nfeval back to DEoptimC function
- allocate parameter vector once, rather than once per evaluate call
- allocate ia_urn1 once, rather than once per permute call
- replace strategy if/else block with switch statement
- More bug fixes and optimizations when bs=TRUE
- Fixed bug in initial population check. Thanks to Vinecius Veloso.
- Added '...' to objective function call in evaluate rather than in DEoptim
R function. This yields a speed gain, since it avoids an extra function
call. Thanks to Dirk Eddelbuettel for the idea.
DEoptim 2.0-7 (2010-10-15)
- Many improvements in the C code, including removal of all global variables
thanks to Joshua Ulrich.
- Thanks to Ralf Tautenhahn and Joshua Ulrich, a bug with bs=TRUE is removed.
- Thanks to Dirk Eddelbuettel several bugs (some possibly causing segfaults)
removed.
- Added DE/current-to-p-best/1 strategy.
- Added ability to only print every "trace" iterations.
DEoptim 2.0-6 (2010-08-25)
- Added dataset documentation now required by R CMD check.
DEoptim 2.0-5 (2010-04-19)
- CITATION file modified, updated references.
- Removed check on length of parameter vector (it was left over from versions
prior to 2.0-3, thanks to Jean-Luc Jannink.
DEoptim 2.0-4 (2010-03-05)
- added check to prevent the C code being called with NP<4, thanks to Joshua
Ulrich.
- fixed bug introduced in version 2.0-3 that made the objective function
values associated with the winning population members incorrect
- added new options checkWinner and avWinner to the 'control' arguement.
DEoptim 2.0-3 (2009-11-29)
- Re-write of much of the underlying C code. Now dynamically allocate
storage, so can optimize on parameter vectors of arbitrary size, in a
population of arbitrary size. Changed the documentation to reflect the
new lack of limitations.
- Stop with an error right away if a NaN objective function value occurs.
- Default value of CR changed to .9 from .5.
- Added reference and minor changes to documentation.
DEoptim 2.0-2
- The maximum number of parameters that can be optimized (set
statically in de.h with #define MAXDIM) was changed from 20 to
200.
- zzz.R file removed and replaced with call to ‘useDynLib(DEoptim)’ in
NAMESPACE
- Brian Peterson pointed out problems occurring when the objective
function returns a NaN value. Error messages are now added to
report when this happens.
- permute patched, see below. Thanks to Hans Werner Borchers for pointing
out that the problem was not fixed in the CRAN version.
DEoptim 2.0-1 (2009-10-07)
- Soren Macbeth and Joshua Ulrich pointed out and patched bugs in the
function 'permute'. Note that the version 2.0-1 on CRAN does not patch
these bugs correctly. The correction is made in the next version.
DEoptim 2.0-0 (2009-10-01)
- The R-based implementation of Differential Evolution has been
replaced with a C-based implementation similar to the MS Visual C++
v5.0 implementation accompanying the book ‘Differential Evolution -
A Practical Approach to Global Optimization’,downloaded from
http://www.icsi.berkeley.edu/~storn/DeWin.zip.
The new C implementation is significantly faster.
- The S3 method for plotting has been enhanced. It allows now to plot
the intermediate populations if provided.
- The package maintainer has been changed to Katharine Mullen,
<[email protected]>.
- A NAMESPACE has been added.
- Argument FUN for DEoptim is now called fn for compatibility with optim.
- demo file has been removed
- CITATION file modified
DEoptim 1.3-3 (2009-05-14)
DEoptim 1.3-2
DEoptim 1.3-1
- new plotting argument 'storepop' which displays intermediate
population locations.
DEoptim 1.3-0 (2008-12-04)
- the function 'DEoptim' has two arguments: 'storepopfrom' and
'storepopfreq', for tracking intermediate populations; the output
contains also the list 'storepop' which belongs to the 'member'
list's element.
- small bug fixed for the number of iterations.
DEoptim 1.2-1 (2007-09-12)
- fix a bug in the optimization procedure. Thanks to Tarmo Leinonen
for pointing out this bug.
- add a demo to show how to increase the number of printed digits
while performing the optimization.
DEoptim 1.2-0 (2007-09-10)
- the function 'DEoptim' has the new argument 'initial', which is an
initial or starting population. You can therefore introduce a
starting population in the optimization procedure. This can be
useful when the optimization has to be run many times on data sets
which differ sligthly. Thanks to Tarmo Leinonen for this nice
suggestion.
- the function 'DEoptim' outputs now 'pop' in the 'member' list's
element. This is the population obtained at the last iteration
which can be used as a starting population in 'DEoptim' via the
argument 'initial'.
- the function stops if any 'NA' or 'NaN' value is returned by the
function 'FUN' to be optimized.
- the function DEoptim does not handle exponential crossover
anymore. This is so to simplify and accelerate the optimization
procedure. Thanks to Vladimir Eremeev for pointing out a bug with
the exponential crossover.
- the function 'DEoptim' outputs a list of lists. This is more
natural and in the same spirit of usual optimization functions.
Thanks to Vladimir Eremeev for proposing this change.
- documentation for the 'digits'. Thanks to Eugene Demidenko for
pointing out this.