(* http://www.hrz.uni-dortmund.de/A1/software/mathematica.html *) (* Mathematica available on HRZ server zx3 *) <= parentFitness, objParent = objOffspring; parentFitness = offspringFitness; (* Print["gen = ", gen, *) (* del *) (* " Fitness = ", parentFitness]; *) (* del *) success = success + 1] , {lEvo} ]; pSuccess = success/lEvo; If[pSuccess > pOpt, sigma = sigma*a]; If[pSuccess < pOpt, sigma = sigma/a]; (* Print[" "]; *) (* del *) (* Print["sigma = ", sigma, " P-success = ", pSuccess]; *) (* del *) If[ gen > genStop || sigma < sigmaStop, Break[] ] ]; {parentFitness, objParent, sigma} ) (* ************************************************************************** *) (* ************************************************************************** *) (* Experiment 1 *) (* Initialization *) sigmaInitial = 0.1 objInitial = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0} parentFitness = f[objInitial] individual = {parentFitness, objInitial, sigmaInitial} fitnlist = {parentFitness} sigmalist = {sigmaInitial} xx = OnePlusOneES[individual, 4000, 0.0001] pf1=LogListPlot[1-fitnlist, AxesLabel -> {"g", "1-f"}] ps1=LogListPlot[sigmalist, AxesLabel -> {"g", "sigma"}] Show[pf1, ps1] (* ************************************************************************** *) (* Experiment 2: changing a to a=1.0 *) (* Initialization *) sigmaInitial = 0.1 objInitial = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0} parentFitness = f[objInitial] individual = {parentFitness, objInitial, sigmaInitial} fitnlist = {parentFitness} sigmalist = {sigmaInitial} xx = OnePlusOneES[individual, 4000, 0.0001, 1.0] pf2=LogListPlot[1-fitnlist, AxesLabel -> {"g", "1-f"}] ps2=LogListPlot[sigmalist, AxesLabel -> {"g", "sigma"}] Show[pf1,ps1, pf2, ps2] (* ************************************************************************** *)