From 5012cb2ce152661cb50422680d266cbba20ccbe8 Mon Sep 17 00:00:00 2001 From: Rowan Torbitzky-Lane Date: Tue, 25 Feb 2025 18:48:05 -0600 Subject: [PATCH] GP skeleton almost done --- src/HushGP/GP.hs | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/HushGP/GP.hs b/src/HushGP/GP.hs index 5f74f19..3bc4853 100644 --- a/src/HushGP/GP.hs +++ b/src/HushGP/GP.hs @@ -7,6 +7,8 @@ import Data.List (sort, uncons) import HushGP.GP.PushArgs import HushGP.Genome import HushGP.State +import HushGP.GP.Variation +import HushGP.GP.Downsample -- import Debug.Trace (trace, traceStack) @@ -58,7 +60,8 @@ gpLoop' pushArgs generation evaluations population indexedTrainingData = do print "Incomplete Run, saving the best so far." | otherwise = gpLoop' pushArgs (succ generation) (evaluations + (populationSize pushArgs * length (fst $ trainingData pushArgs)) + (if generation `mod` downsampleParentsGens pushArgs == 0 then length parentReps * (length (fst indexedTrainingData) - length (fst $ trainingData pushArgs)) else 0) + (if bestIndPassesDownsample then length (fst indexedTrainingData) - length (fst $ trainingData pushArgs) else 0)) - (if elitism then bestInd : ) + (if elitism pushArgs then bestInd : replicate (populationSize epsilonPushArgs - 1) (newIndividual epsilonPushArgs evaledPop) else replicate (populationSize epsilonPushArgs) (newIndividual epsilonPushArgs evaledPop)) + (if enableDownsampling pushArgs then if (generation `mod` downsampleParentsGens pushArgs) == 0 then updateCaseDistances repEvaluatedPop indexedTrainingData indexedTrainingData (informedDownsamplingType pushArgs) (solutionErrorThreshold pushArgs / fromIntegral @Int @Double (length $ fst indexedTrainingData)) else indexedTrainingData else indexedTrainingData) nextAction where -- \| This will have downsampling added to it later.