Spaces:
Running
Running
# Cycle through regularized evolution many times, | |
# printing the fittest equation every 10% through | |
function run( | |
pop::Population, | |
ncycles::Integer, | |
curmaxsize::Integer, | |
frequencyComplexity::Array{Float32, 1}; | |
verbosity::Integer=0 | |
)::Population | |
allT = LinRange(1.0f0, 0.0f0, ncycles) | |
for iT in 1:size(allT)[1] | |
if annealing | |
pop = regEvolCycle(pop, allT[iT], curmaxsize, frequencyComplexity) | |
else | |
pop = regEvolCycle(pop, 1.0f0, curmaxsize, frequencyComplexity) | |
end | |
if verbosity > 0 && (iT % verbosity == 0) | |
bestPops = bestSubPop(pop) | |
bestCurScoreIdx = argmin([bestPops.members[member].score for member=1:bestPops.n]) | |
bestCurScore = bestPops.members[bestCurScoreIdx].score | |
debug(verbosity, bestCurScore, " is the score for ", stringTree(bestPops.members[bestCurScoreIdx].tree)) | |
end | |
end | |
return pop | |
end |