Compare commits
2 Commits
4342803211
...
70fd714340
Author | SHA1 | Date | |
---|---|---|---|
70fd714340 | |||
29617dd604 |
@ -42,7 +42,7 @@ gpLoop pushArgs@(PushArgs {trainingData = tData}) = do
|
||||
-- holds the evaluation count. The list of Individuals is the population. The last parameter is
|
||||
-- the training data (possibly downsampled).
|
||||
gpLoop' :: PushArgs -> Int -> Int -> [Individual] -> [PushData] -> IO ()
|
||||
gpLoop' pushArgs generation evaluations population indexedTrainingData = do
|
||||
gpLoop' pushArgs@(PushArgs {enableDownsampling = enableDS, solutionErrorThreshold = seThresh}) generation evaluations population indexedTrainingData = do
|
||||
print "Put information about each generation here."
|
||||
when bestIndPassesDownsample $ print $ "Semi Success Generation: " <> show generation
|
||||
let nextAction
|
||||
@ -95,6 +95,6 @@ gpLoop' pushArgs generation evaluations population indexedTrainingData = do
|
||||
bestInd :: Individual
|
||||
bestInd = case uncons evaledPop of Just (x, _) -> x; _ -> error "Error: Population is empty!"
|
||||
bestIndPassesDownsample :: Bool
|
||||
bestIndPassesDownsample = False -- TODO: fix this later
|
||||
bestIndPassesDownsample = enableDS && (extractTotalFitness bestInd <= seThresh)
|
||||
epsilonPushArgs :: PushArgs
|
||||
epsilonPushArgs = pushArgs {epsilons = Nothing} -- TODO: And this
|
||||
|
@ -28,6 +28,10 @@ extractFitnessCases :: Individual -> [Double]
|
||||
extractFitnessCases Individual {fitnessCases = Nothing} = error "Error: fitnessCases is empty!"
|
||||
extractFitnessCases Individual {fitnessCases = Just xs} = xs
|
||||
|
||||
extractTotalFitness :: Individual -> Double
|
||||
extractTotalFitness Individual {totalFitness = Nothing} = error "Error: totalFitness is empty!"
|
||||
extractTotalFitness Individual {totalFitness = Just x} = x
|
||||
|
||||
-- | Makes a random individual based on the variables in a passed PushArgs.
|
||||
makeRandomIndividual :: PushArgs -> IO Individual
|
||||
makeRandomIndividual pushArgs = do
|
||||
|
@ -2,7 +2,6 @@ module HushGP.Problems.IntegerRegression where
|
||||
|
||||
import Data.List
|
||||
import Data.Map qualified as Map
|
||||
import Control.Lens hiding (uncons)
|
||||
import HushGP.State
|
||||
import HushGP.Instructions
|
||||
import HushGP.GP.PushArgs
|
||||
@ -12,10 +11,6 @@ import HushGP.Push
|
||||
import HushGP.Instructions.Utility
|
||||
import HushGP.GP
|
||||
|
||||
-- temporary imports for testing until I get this updated.
|
||||
import HushGP.Utility
|
||||
import HushGP.GP.Downsample
|
||||
|
||||
testPlushy :: [Gene]
|
||||
testPlushy = [
|
||||
PlaceInput 0,
|
||||
@ -24,17 +19,6 @@ testPlushy = [
|
||||
-- GeneFloat 3.2
|
||||
]
|
||||
|
||||
-- |Equivalent to ds-data
|
||||
testIntDsData :: [PushData]
|
||||
testIntDsData = [
|
||||
(head intTrainData){_downsampleIndex = Just 3, _caseDistances = Just [2,2,2,2,2]},
|
||||
(intTrainData !! 1){_downsampleIndex = Just 4, _caseDistances = Just [2,2,2,2,2]}
|
||||
]
|
||||
|
||||
-- This is the map-indexed call in the update-case-distances function.
|
||||
tempFunc :: [PushData]
|
||||
tempFunc = mapIndexed (\idx dCase -> dCase{_caseDistances = Just (updateAtIndices (extractDistance dCase) (map (\other -> getDistanceBetweenCases [[0,0],[0,0]] idx other) [0..(length [3,4] - 1)]) [3,4])}) testIntDsData
|
||||
|
||||
-- | The target function for this run. The function the gp
|
||||
-- is trying to evolve.
|
||||
targetFunction :: Integer -> Integer
|
||||
|
Loading…
x
Reference in New Issue
Block a user