# This file contains settings for the CMA Evolution Strategy 
# readProperties() needs to be called to process this file
# and setFromProperties() can be extended to add more parameters. 
# 
# Required settings are 
#   1) dimension = number of variables. Also method
#     setDimension(int) or setInitialX(double[]) or the class 
#     constructor can be used.
#   2) initialX = initial solution/search point/distribution mean, 
#     alternatively typicalX can be set
#   3) initialStandardDeviations = standard deviation in each variable. 
#     Also the method setInitialStandardDeviations() can be used. 

#--- Test-Case ---
functionNumber = 50    # function number in class FunctionCollector, read in CMAExample2
functionRotate = 0     # flag
functionAxisRatio = 0  # 0 == default

#--- General ---
dimension 22           # search space dimension, number of (decision) variables

numberOfRestarts = 1   # for CMAExample2.java, restart with increasing pop-size
incPopSizeFactor = 2   # factor for increasing the population size, default=2

randomSeed = -1                             # <= 0 sets the seed depending on system time
! randomSeed = 2                            # last matching property is used
maxTimeFractionForEigendecomposition = 0.2  # only for >=1 the results will always be reproducible

#---Initialisation: X and StandardDeviation have precedence
initialX = 0.5                   # one value or dimension values, overwrites typicalX
! typicalX = 0.5                   # overwritten by initialX, initialX=typicalX+Normal(0,initialStandardDeviations^2) otherwise
initialStandardDeviations = 0.3  # one value or dimension values

#--- Termination
! stopFitness = 1e-9   # specific for the given function to be minimized
stopTolFun = 1e-12     # function value range within iteration and of past values
stopTolFunHist = 1e-13 # function value range of 10+30*N/lambda past values
stopTolX = 0.0                   # absolute x-changes
stopTolXFactor = 1e-11           # relative to initial stddev
stopTolUpXFactor = 1000          # relative to initial stddev
! stopMaxFunEvals = 33 
! stopMaxIter = 100 
! stop now             # terminate immediately unconditionally (Manual termination)


#--- Strategy parameters
! populationSize = 9
! diagonalCovarianceMatrix = 0 # number of iterations with diagonal covariance matrix, 1 == always diagonal
                               #   -1 invokes 150*dimension/populationSize which might become future default
! cCov = -1                    # negative invokes default, zero means CSA  

#--- Various
!lowerStandardDeviations = 0   # last number is recycled up to dimension
!upperStandardDeviations = 1   # last number is recycled up to dimension
outputFileNamesPrefix = outcmaes 
writeDisplayToFile  1 or 0     # flag whether to save console output from print...() functions to file 

maxTimeFractionForWriteToDefaultFiles = 0.05 # might be largely exceeded in the beginning
                                             # negative value means no file writing
checkEigenSystem = 0  # flag, checking requires O(N^3) operations, mainly for debugging purpose
