2017-10-10 Version 5.8-1.0
* fixing the reproducibility bug. Now the seed is set from within
R which allows reproducibility
* rgenoud.R, genoud.cpp: Setting the seed to be a random draw from a uniform
instead of it being randomized independenlty from R
* Adding new unit tests.
2015-07-19 Version: 5.7-12.4
* genoud.R: creating visible binding for variable "indx"
2015-07-18 Version: 5.7-12.3
* genoud.R: import non-base functions explicitly
2015-07-17 Version: 5.7-12.2
* DESCRIPTION: improves description
2013-06-28 Version: 5.7-12.1
* test.R: suppress message on load
2013-06-28 Version: 5.7-12
* genoud.Rd: Updated the documentation to reflect the usage of the
'parallel' package instead of the deprecated package 'snow'
* vignettes: moved vignettes from /inst/doc to /vignettes.
2013-06-28 Version: 5.7-10
* genoud.R: now uses the 'parallel' package instead of the
deprecated package 'snow'
2013-06-27 Version: 5.7-9.2
* evaluate.cpp: JaIntegerOptimization(), Correct memory
issue. When reading in an old population file a segmentation fault
could result when an old population file was read that had a
larger population than the new population. Issue only arose for
integer optimization.
2013-05-06 Version: 5.7-9.1
* operators.cpp: oper5(), Simple Crossover, always hit the maximum
unique individual limit. Corrected the logic to only check for
unique children in the crossover portion. Note that this makes
results different from previous versions even if the random number
seeds are set.
2012-06-03 Version: 5.7-8
* rgenoud.R: Added the following options back in for backward
compatibility, but a warning is printed if they are used:
output.path and output.append. Please use 'sink' instead.
2012-06-03 Version: 5.7-7
* rgenoud.R: Call to optimHess() now explicitly names the arguments to be matched.
2012-06-03 Version: 5.7-6
* evaluate.cpp: output streams are no longer flushed because of
R's rules about calling stdout.
* rgenoud.pdf: has been compacted to save space.
* .Rinstignore: new file has been added to sure that
inst/doc/Figures are not installed to save space.
2012-06-03 Version: 5.7-5
* rgenoud.R: Because of the switch to Rprintf (see below), the
'output.path' and 'output.append' options have been removed.
* evaluate.cpp: Routed printing calls through Rprintf rather than
fprintf. Made sure all error handling is done by R's error()
function. Many cpp files affected: genoud.cpp, genoud.h,
gradient.cpp, operators.cpp, math.cpp, numerics.cpp,
print_format.cpp.
2012-06-02 Version: 5.7-4
* rgenoud.R: Removes calls to .Internal(optimhess). Now calls optimHess().
* zzz.R: Now uses packageStartupMessage() to display .onAttach message.
2011-05-04 Version: 5.7-3
* rgenoud.Rd: Update for Journal of Statistical Software
* inst/CITATION: Final update for Journal of Statistical Software
2011-04-16 Version: 5.7-2
* inst/CITATION: Updated for Journal of Statistical Software
2010-08-26 Version: 5.7-1
* operators.cpp: Fixed boundary issue for integer optimization
(when 'data.type.int=TRUE') created by changes in the GNU CC
compiler, operators P3,P4,P5,P7 were affected.
* evaluate.cpp: See above and corrected printing of population means and variances when doing integer optimization.
* genound.h: See above
* print_format.cpp: Changed longs to ints to prevent warnings produced by the call to fscanf() in the ReadPopulation() file.
2010-06-01 Version: 5.6-7
* rgenoud.R: Improved handling of the parent environment when the 'transform' option is used
* operators.ccp: Fixed boundary issue for the integer version of the Polytope Crossover operator (P5 and function JaIntegeroper4).
2009-08-14 Version: 5.6-6
* rgenoud.Rd: Improved the documentation of the 'transform' option.
2009-08-07 Version: 5.6-5
* rgenoud.Rnw: created vignette file to generate rgenoud.pdf,
rgenoud.tex and rgenoud.R. Support files also added---i.e.,
rgenoud.bib and figures in the inst/doc/Figures directory
added.
* COPYRIGHTS: file added
* COPYING: file added
* THANKS: file added
2009-08-06 Version: 5.6-4
* evaluate.cpp: Adds boundary checking for the parameters returned
by the 'transform' option. For the transform option, only checks bounds in generation 0 because of computational efficiency
concerns. The standard bounds checking remains unchanged.
* genoud.Rd: Documentation updated to reflect above.
2009-08-04 Version: 5.6-3
* print_format.cpp: Corrects issue when 'share.type=1' and
'starting.values' are provided.
* evaluate.cpp and multiple other files: Some warning messages are
now simply notes.
2009-08-03 Version: 5.6-2
* multiple files: optim() can now be called by any valid method
using the 'optim.method' option: namely one of "BFGS", "L-BFGS-B",
"Nelder-Mead", "CG", or "SANN".
* rgenoud.R: The error checking of user provided starting values has been improved.
2009-08-03 Version: 5.6-1
* multiple files: Major revision. Adds the transform option which is required by the FAiR package by Ben Goodrich
.
* pint_format.cpp: share.type=1 works correctly again.
* multiple files: Printing is cleaning up when share.type=1, and relevant warning messages are improved.
2009-03-13 Version: 5.5-1
* genoud.Rd: Corrected formatting issues in the help page.
* evaluate.cpp: Corrected overloading ambiguity between
"std::fmod(double, double)" and "std::fmod(long double, long
double)" which prevented building on Solaris.
2008-01-04 Version: 5.4-7
* evaluate.cpp, rgenoud.cpp: The 'BFGSburnin' option may now be
set to a negative value. If \code{BFGSburnin < 0}, the BFGS will
be used if and when \code{wait.generations} is doubled because at
least one gradient is too large, which can only occur when
\code{gradient.check = TRUE}. Note that 'BFGSburnin' was an option
added in version 5.3-3. Premature use of the BFGS can lead to
convergence to a local minimum instead of the global one. This
option allows the user to control how many generations are run
before the BFGS is started. This option delays the use of both
the BFGS on the best individual and of the P9 operator.
* multiple files: Better interrupt handling. When genoud is
interrupted, it now prints a message on how to recover the best
individual found so far.
* multiple files: Helper function of analytical gradients is
enabled. Better checking to make sure that input parameters are
legal.
* rgenoud.R and other files: User may now pass in "control" (a
list of control parameters) for optim including control$fnscale.
* rgenoud.Rd: Updated rgenoud.Rd project.path description. It is
now noted in genoud.Rd that with boundary.enforcement=2, no
out-of-bounds evaluations will ever be requested. In this case,
boundary enforcement is also applied to the BFGS algorithm, which
prevents candidates from straying beyond the bounds defined by
\code{Domains}. Note that this forces the use of the "L-BFGS-B"
algorithm for \code{\link[stats]{optim}}. This algorithm requires
that all fit values and gradients be defined and finite for all
function evaluations. If this causes an error, it is suggested
that the "BFGS" algorithm be used instead by setting
\code{boundary.enforcement=1}.
2007-11-19 Version: 5.3-4
* multiple files: Made some changes for the Portland Group
Compiler (pgCC). Converted some longs to ints.
2007-10-18 Version: 5.3-3
* multiple files: A number of starting values can now be provided
by passing a matrix to the 'starting.values' option.
* multiple files: A new option has been added named 'BFGSburnin'
which control the number of generations which are run before the
BFGS is first used. Premature use of the BFGS can lead to
convergence to a local minimum instead of the global one. This
option allows the user to control how many generations are run
before the BFGS is started. This option delays the use of both
the BFGS on the best individual and of the P9 operator.
* rgenoud.R: The dimensions of the 'Domains' object are now
checked both if they have the correct number of dimensions and if
the values are sane.
* evaluate.cpp and other files: Fixed warnings in gcc >4.2:
evaluate.cpp:304: warning: deprecated conversion from string
constant to 'char*'
* evaluate.cpp: Fixed a MemoryMatrix issue with
data.type.int=TRUE. MemoryMatrix now gives the same results as
!MemoryMatrix. The issues was that the number of UniquePairs that
were hunted down for P6 and P8 were different between the two
setups.
2007-08-04 Version: 5.1-14
* multiple files: Minor changes. Changed #includes so that the
package now compiles with Sun Studio compilers: extern "C" is not
needed for R header files. Added a regression suite to the "tests"
directory.
2007-03-23 Version: 5.1-9
Major changes:
* multiple files: Lexical searching now allows for one of the fit
functions to be optimized by the derivative based optimizer. This
functionality is made available via the "BFGSfn" option. Also see
the "BFGShelp" option.
* multiple files: The 9th operator which takes the convex
combination of the parent and its BFGS fit can now by tuned via
the "P9mix" option. If this is set to equal 1, then the BFGS fit
is simply used.
Minor changes:
* multiple files: If BFGS results in out-of-bounds individuals,
warning is only printed if print.level > 1
2007-02-20 Version: 5.0-5
* zzz.R: Prints version and build date on load.
* rgenoud.R: If starting values are provided and the lexical
option is TRUE, then the starting values instead of domains[,1]
are used to figure out how many return fits the function provides.
2007-02-11 Version: 5.0-2
* genoud.Rd: Improved documentation file.
2007-01-30 Version: 5.0-1
* evaluate.cpp: remove needless if statement in evaluate.cpp
2007-01-30 Version: 5.0-0
* genoud.Rd: Multiple point crossover now accurately called simple crossover in docs
* operators.cpp: corrected whole mutation to actually do whole mutation
* evaluate.cpp: fixed minor no improvement bug which involved going from gen0 to gen1
* multiple files: simplified printing
Copyright 1997-2012 Walter R. Mebane, Jr. and Jasjeet S. Sekhon.
Copying and distribution of this file, without modification, are
permitted provided the copyright notice and this notice are
preserved.