CEGO Patch Notes Version 2.4.3 @ - New function: distanceSequenceLevenshtein for computing Levenshtein distances between numeric vectors or integer vectors. - Fixed: bug that prevented optimCEGO from successfully dealing with multiple distance functions simultaneously. - Fixed: computing a more appropriate penalty in the likelihood function. Thus, a rare issues with larger numbers of samples in modelKriging should be avoided. - Updates to function documentation (including a fixed error in the documentation of distancePermutationEuclidean, regarding scaling factor) (including missing/superfluous/mistyped arguments) 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. Manuel L?pez-Ib??ez kindly reported this issue. The difference in behavior between the two versions of the swap distance are discussed in the publication: Ekhine Irurozki and Manuel L?pez-Ib??ez. Unbalanced Mallows Models for Optimizing Expensive Black-Box Permutation Problems. In Proceedings of the Genetic and Evolutionary Computation Conference, GECCO 2021. ACM Press, New York, NY, 2021. doi: 10.1145/3449639.3459366 - 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