CEGO Patch Notes
Version 2.4.2 @ 2021-05-13
- Fixed: distancePermutationSwap now computes the swap distance on the provided permutations rather on the inverse permutations.
distancePermutationSwapInv reproduces the original behavior.
- Fixes an issue reported by CRAN / Prof. Ripley.
Specifically, this patch fixes an example, where the warning "data length differs from size of matrix" was produced.
Version 2.4.0 @ 2019-12-07
- Fixed a bug in optimMIES: strategy parameters are now removed correctly, before evaluating a candidate solution
with the objective function. This bug affected evaluations of the initial population.
- testFunctionGeneratorSim: now has defaults for the control lists, as well as a fixed documentation
- Compliance with changes in R 4.0.0
Version 2.3.0 @ 2019-03-05
- Fixed a bug that occured when checking for duplicates (to avoid them) in optimCEGO
- A bug in optimMIES was fixed. The wrong sigma variable was used in the self-adpation for real-valued parameters.
- optimMIES was changed to include categoricals only if they are coded as integers (but not necessarily as a sequence)
See also the changed example in optimMIES' help.
- Fixed a potential alloc/PROTECT problem in distancePermutationInterchange and distancePermutationInsert (found by rchk)
- This update now includes all methods for dealing with indefinite kernels in Kriging, as reported
in Chapter 8 of "Surrogate Models for Discrete Optimization Problems" by Martin Zaefferer (2018).
See ?modelKriging for some more details.
Version 2.2.0 @ 2017-07-12
- New functionality:
- CEGO now contains an implementation of a Mixed Integer Evolution Strategy (MIES), see optimMIES.
- Distances for numerical (binary) data as well as for string data are now included in the package. See distanceNumeric* and distanceString*
- Several new mutation* and recombination* functions (for binary, string and permutation data) have been added.
- The EA (optimEA) can now handle parts of its configuration in a self-adaptive way. See documentation.
- Objects created by modelKriging can now be used for simulation (rather than just estimation/prediction), by calling simulate.modelKriging.
Connected to this last, there are now two functions that can be used to create simulation-based test functions:
createSimulatedTestFunction and testFunctionGeneratorSim
- Other major changes:
- Changed some details (e.g., registering, interfacing) of C code calls, to satisfy recently introduced CRAN check procedures.
Incidentally, this may speed up calls to the various distance* functions that employ C code.
- Other minor changes:
- Fixed a bug in the optimInterface function: the restarts variable is now actually used (and by default TRUE)
- Feature embedding is now included in the correctionDistanceMatrix function
- The object returned by modelKriging now has a more informative print function
- Various improvements of documentation (content and formatting)
Version 2.1.0 @ 2016-08-17
- New functionality:
- By setting the control parameters indefiniteType, indefiniteMethod and indefiniteRepair,
the modelKriging function has now several options of dealing with indefinite kernels / correlation functions.
- The new functions is.CNSD, is.NSD and is.PSD check for (conditional) definiteness of matrices. These
Properties are required, e.g., for distance/kernel matrices in Kriging or Support Vector Machine Modelsmodels.
- The new functions correctionCNSD, correctionDefinite, correctionKernelMatrix and correctionDistanceMatrix take matrices that lack required
properties (definiteness) and correct the matrices to enforce the required properties.
- The new functions repairConditionsDistanceMatrix and repairConditionsCorrelationMatrix repair the diagonal as well as the value range
of the respective definite matrices, so that they are valid distance or correlation matrices.
- The new function nearCNSD computes the nearest Conditionally Negative Semi-Definite matrix, similar to the nearPD function from
the Matrix package (which computes the nearest Positive Semi-Definite matrix).
- Other major changes:
- Instead of choosing, multiple distances can now be combined in modelKriging, using a weighting scheme.
This can be done by providing several distances function (or distance matrices) and setting
control$combineDistances to TRUE.
- A new design function and a new optimizer:
designMaxMinDist creates a design of experiment, by sequentially adding samples with maximum minimum distances to the existing samples
optimMaxMinDist uses the above method as an one-shot optimizer.
- Other minor changes:
- Landscapes generated by landscapeGeneratorUNI (or *MUL, *Gaussian) now wrap non-list inputs into a list.
- Slightly changed configuration of landscapeGeneratorGaussian
- Fixed optimInterface: in case of method="L-BFGS-B", the number of function evaluations (counts) should now be calculated correctly.
- Improved the numerical stability of the maximum likelihood estimation in modelKriging.
- optim2opt now also keeps an archive of solutions (optional, default).
- Various documentation improvements.
- Switched off several warnings in likelihood estimation function for modelKriging, because they occured to frequentlty without being problematic.
Version 2.0.0 @ 2015-10-06
- General remark: This update includes some changes that are not backwards compatible.
E.g., Several of the main function interfaces changed,
to make functions more usable/flexible/understandable. See details below.
- Deprecated distancePermutationLCSeq. Replaced by distancePermutationInsert to stress edit-distance character of the function,
for better readability and to avoid confusion of LCSeq and LCStr. The deprecated distancePermutationLCSeq will be removed in the next patch.
- Variable names in optimInterface changed
- Unified the interfaces of all optim* functions in the package. Now all take x, fun and control as input. creationFunction is part of control now.
- Unfied interface for distance based landscape generators, landscapes now expect list of solutions as input. (i.e., even a single solution has to be wrapped into a list)
- Renamed all modeling functions and the corresponding objects, e.g., combinatorialKriging is now modelKriging (old functions are deprecated and will be removed in next update).
- Moved from .C to .Call interface for several permutation distance measures.
This may speed up distance calculation quite significantly in some cases:
E.g., distancePermutationInterchange and distancePermutationInsert (formerly LCSeq) are now
~3 times faster for typical test cases. Some distance measures that do not rely on
C code (e.g., Hamming, Euclidean) are not affected by this change.
- Added pivoting to Cholesky decomposition in likelihood estimation
function for modelKriging. Allows for PSD correlation matrices.
- New "control" parameter in modelKriging: control$scaling.
When this is set to TRUE, the distance matrix is divided by the
maximum distance to yield values between 0 and 1. This allows to
avoid scaling bias when distance functions may yield values larger
than one.
- Improved documentation for several functions
- Bugfix for the weighted tardiness benchmark, weight vector now handled correctly
- New mutation operator for permutations (reversal mutation): mutationPermutationReversal
- Keeping an archive of candidate solutions in the EA is now optional. See the control parameter "archive" in optimEA.
- Custom choices for duplicate removal are now in optimEA. See control parameters "duplicateFunction" and "duplicateRemoval".
- In case model building fails during a run of optimCEGO, the run stops (with a warning), giving the result so far as well as a termination message.
Version 1.0.1108 @ 2015-01-06
- Initial Release