Documentation
¶
Index ¶
- Constants
- Variables
- func PrepareSimulation(params evolution.EvolutionParams, count int) *evolution.EvolutionEngine
- func WriteIndexProgressToFile(indexProgress IndexProgress, indexFile string) error
- func WriteRunStrategy(runStrat []RunStrategyStatistics, outputPath string) error
- type GenerationalAverages
- type IndexProgress
- type RunBasedStatistics
- type RunBestIndividualStatistic
- type RunBestIndividualStatistics
- type RunEpochalStatistic
- type RunEpochalStatistics
- type RunGenerationalStatistic
- type RunGenerationalStatistics
- type RunStrategyStatistic
- type RunStrategyStatistics
- type Simulation
- func (s *Simulation) Begin(params evolution.EvolutionParams) (evolution.EvolutionParams, error)
- func (s *Simulation) BestIndividualsInRun(params evolution.EvolutionParams) (runBest RunBestIndividualStatistics, err error)
- func (s *Simulation) EpochalInRun(params evolution.EvolutionParams) (runEpochal RunEpochalStatistics, err error)
- func (s *Simulation) GenerationalInRun(params evolution.EvolutionParams) (runGen RunGenerationalStatistics, err error)
- func (s *Simulation) RunRScript(RPath, dirPath string, RFiles []string, logChan chan evolog.Logger, ...)
- func (s *Simulation) SimulationBestActualIndividuals(params evolution.EvolutionParams) (bestActualIndividuals SimulationBestActualIndividual, err error)
- func (s *Simulation) SimulationBestEpochal(params evolution.EvolutionParams) (bestEpochs SimulationBestEpochs, err error)
- func (s *Simulation) SimulationBestIndividual(params evolution.EvolutionParams) (simulationBestIndividuals SimulationBestIndividuals, err error)
- func (s *Simulation) SimulationBestIndividuals(params evolution.EvolutionParams) (simulationBestIndividuals SimulationBestIndividuals, err error)
- func (s *Simulation) SimulationBestStrategy(params evolution.EvolutionParams) (simulationStrategy SimulationStrategyStatistics, err error)
- func (s *Simulation) SpewJSONNoSplit(projectAbsolutePath, paramsDir string) error
- func (s *Simulation) StartEngine(engine *evolution.EvolutionEngine) error
- func (s *Simulation) StrategyInRun(params evolution.EvolutionParams) (runStrategy RunStrategyStatistics, err error)
- type SimulationBestActualIndividual
- type SimulationBestEpoch
- type SimulationBestEpochs
- type SimulationBestIndividual
- type SimulationBestIndividuals
- type SimulationRunStats
- type SimulationStrategyStatistic
- type SimulationStrategyStatistics
Constants ¶
const ( ProgressCounterSimulation = 11 ProgressRunStats = 5 )
Variables ¶
var AllAntagonistStrategyCount = []int{16}
var AllDepthOfRandomNewTree = []int{1}
var AllDivByZeroPenalty = []float64{-1}
var AllDivByZeroStrategy = []string{ evolution.DivByZeroSteadyPenalize, }
var AllEachPopulationSize = []int{64}
var AllExpressions = []string{
"x",
"x*x*x*x*x*x*x*x",
"x*x*x+2*x/3*x*x+5",
}
var AllFitStratAntThreshMult = []float64{16}
var AllFitStratProThreshMult = []float64{1}
var AllFitnessStrategyType = []string{evolution.FitnessDualThresholdedRatio}
var AllGenerationsCount = []int{50}
var AllMaxGenerations = []int{500}
var AllMinimumGenerationMeanBeforeTerminate = []float64{0.05}
var AllMinimumTopProtagonistMeanBeforeTerminate = []float64{0.1}
var AllPossibleStrategies = [][]evolution.Strategy{ AllStrategies, }
var AllProtagonistMinGenAvgFit = []float64{0.7}
var AllProtagonistStrategyCount = []int{16}
var AllRanges = []int{20}
var AllReproduction = []evolution.Reproduction{ { CrossoverStrategy: evolution.CrossoverSinglePoint, ProbabilityOfMutation: 0.3, }, { CrossoverStrategy: evolution.CrossoverUniform, ProbabilityOfMutation: 0.3, }, }
var AllSeed = []int{-10}
var AllSelectionParentType = []evolution.ParentSelection{ { Type: evolution.ParentSelectionTournament, TournamentSize: 3, }, }
var AllStrategies = []evolution.Strategy{ evolution.StrategyDeleteNonTerminal, evolution.StrategyDeleteTerminal, evolution.StrategyMutateNonTerminal, evolution.StrategyMutateTerminal, evolution.StrategyReplaceBranch, evolution.StrategyReplaceBranchX, evolution.StrategyAddRandomSubTree, evolution.StrategyAddToLeaf, evolution.StrategyAddToLeafX, evolution.StrategyAddTreeWithMult, evolution.StrategyAddTreeWithSub, evolution.StrategyAddTreeWithAdd, evolution.StrategySkip, evolution.StrategyFellTree, evolution.StrategyMultXD, evolution.StrategyAddXD, evolution.StrategySubXD, evolution.StrategyDivXD, evolution.StrategyAddTreeWithDiv, }
var AllSurvivorSelection = []evolution.SurvivorSelection{ { Type: evolution.SurvivorSelectionFitnessBased, SurvivorPercentage: 0.3, }, { Type: evolution.SurvivorSelectionFitnessBased, SurvivorPercentage: 0.7, }, }
var AllTopologies = []evolution.Topology{ { Type: evolution.TopologyHallOfFame, HoFGenerationInterval: 0.1, }, { Type: evolution.TopologySingleEliminationTournament, SETNoOfTournaments: 0.2, }, { Type: evolution.TopologyRoundRobin, }, { Type: evolution.TopologyKRandom, KRandomK: 3, }, }
Functions ¶
func PrepareSimulation ¶
func PrepareSimulation(params evolution.EvolutionParams, count int) *evolution.EvolutionEngine
PrepareSimulation takes in the given evolution parameters and a count variable and returns the engine that can be started run the simulation. The evolution engine will run count times.
func WriteIndexProgressToFile ¶
func WriteIndexProgressToFile(indexProgress IndexProgress, indexFile string) error
func WriteRunStrategy ¶
func WriteRunStrategy(runStrat []RunStrategyStatistics, outputPath string) error
Types ¶
type GenerationalAverages ¶
type GenerationalAverages struct { Antagonists []evolution.Individual `csv:"A"` Protagonists []evolution.Individual `csv:"A"` }
type IndexProgress ¶
type IndexProgress struct { ExpressionIndex int `expressionIndex` RangesIndex int `json:"rangesIndex"` SeedIndex int `json:"seedIndex"` GenerationsCountIndex int `json:"generationsCountIndex"` EachPopulationIndex int `json:"eachPopulationIndex"` ReproductionIndex int `json:"reproductionIndex"` AllDepthOfRandomNewTreeIndex int `json:"allDepthOfRandomNewTreeIndex"` AntagonistStrategyCountIndex int `json:"antagonistStrategyCountIndex"` ProStratCountInd int `json:"protagonisttStrategyCountIndex"` FitnessStrategyTypeIndex int `json:"fitnessStrategyTypeIndex"` FitStratAntThresMultIndex int `json:"fitStratAntThresMultIndex"` FitStratProtThreshMultIndex int `json:"fitStratProtThreshMultIndex"` SelectParentTypeIndex int `json:"selectParentTypeIndex"` SelectSurvivorPercentIndex int `json:"selectSurvivorPercentIndex"` StrategiesAntagonistIndex int `json:"strategiesAntagonistIndex"` StrategiesProtagonistIndex int `json:"strategiesProtagonistIndex"` DivByZeroStrategy int `json:"divByZeroStrategy"` DivByZeroPenalty int `json:"divByZeroPenalty"` TournamentSelectionIndex int `json:"tournamentSelectionIndex"` NumberOfRunsPerState int `json:"numberOfRunsPerState"` }
type RunBasedStatistics ¶
type RunBasedStatistics struct { TopAntagonist float64 `csv:"runTopA"` TopProtagonist float64 `csv:"runTopP"` TopAntagonistDelta float64 `csv:"runTopADelta"` TopProtagonistDelta float64 `csv:"runTopPDelta"` TopAntagonistStrategy string `csv:"runTopAStrategy"` TopProtagonistStrategy string `csv:"runTopPStrategy"` TopAntagonistEquation string `csv:"runTopAEquation"` TopProtagonistEquation string `csv:"runTopPEquation"` FinalAntagonist float64 `csv:"runFinalA"` FinalProtagonist float64 `csv:"runFinalP"` FinalAntagonistDelta float64 `csv:"runFinalADelta"` FinalProtagonistDelta float64 `csv:"runFinalPDelta"` FinalAntagonistStrategy string `csv:"runFinalAStrategy"` FinalProtagonistStrategy string `csv:"runFinalPStrategy"` FinalAntagonistEquation string `csv:"runFinalAEquation"` FinalProtagonistEquation string `csv:"runFinalPEquation"` Run int `csv:"run"` }
type RunBestIndividualStatistic ¶
type RunBestIndividualStatistic struct { SpecEquation string `csv:"specEquation"` SpecRange int `csv:"range"` SpecSeed int `csv:"seed"` AntagonistID string `csv:"AID"` ProtagonistID string `csv:"PID"` Antagonist float64 `csv:"AAvg"` Protagonist float64 `csv:"PAvg"` MeanCorrelation float64 `csv:"meanCorrInRun"` MeanCovariance float64 `csv:"meanCovInRun"` AntagonistBestFitness float64 `csv:"ABestFit"` ProtagonistBestFitness float64 `csv:"PBestFit"` AntagonistStdDev float64 `csv:"AStdDev"` ProtagonistStdDev float64 `csv:"PStdDev"` AntagonistAverageDelta float64 `csv:"AAvgDelta"` ProtagonistAverageDelta float64 `csv:"PAvgDelta"` AntagonistBestDelta float64 `csv:"ABestDelta"` ProtagonistBestDelta float64 `csv:"PBestDelta"` AntagonistEquation string `csv:"AEquation"` ProtagonistEquation string `csv:"PEquation"` AntagonistStrategy string `csv:"AStrat"` ProtagonistStrategy string `csv:"PStrat"` AntagonistDominantStrategy string `csv:"ADomStrat"` ProtagonistDominantStrategy string `csv:"PDomStrat"` AntagonistGeneration int `csv:"AGen"` ProtagonistGeneration int `csv:"PGen"` AntagonistBirthGen int `csv:"ABirthGen"` ProtagonistBirthGen int `csv:"PBirthGen"` AntagonistAge int `csv:"AAge"` ProtagonistAge int `csv:"PAge"` AntagonistNoOfCompetitions int `csv:"ANoC"` ProtagonistNoOfCompetitions int `csv:"PNoC"` FinalAntagonist float64 `csv:"finAAvg"` FinalProtagonist float64 `csv:"finPAvg"` FinalAntagonistBestFitness float64 `csv:"finABestFit"` FinalProtagonistBestFitness float64 `csv:"finPBestFit"` FinalAntagonistStdDev float64 `csv:"finAStdDev"` FinalProtagonistStdDev float64 `csv:"finPStdDev"` FinalAntagonistAverageDelta float64 `csv:"finAAvgDelta"` FinalProtagonistAverageDelta float64 `csv:"finPAvgDelta"` FinalAntagonistBestDelta float64 `csv:"finABestDelta"` FinalProtagonistBestDelta float64 `csv:"finPBestDelta"` FinalAntagonistEquation string `csv:"finAEquation"` FinalProtagonistEquation string `csv:"finPEquation"` FinalAntagonistStrategy string `csv:"finAStrat"` FinalProtagonistStrategy string `csv:"finPStrat"` FinalAntagonistDominantStrategy string `csv:"finADomStrat"` FinalProtagonistDominantStrategy string `csv:"finPDomStrat"` FinalAntagonistBirthGen int `csv:"finABirthGen"` FinalProtagonistBirthGen int `csv:"finPBirthGen"` FinalAntagonistAge int `csv:"finAAge"` FinalProtagonistAge int `csv:"finPAge"` FinalAntagonistNoOfCompetitions int `csv:"finANoC"` FinalProtagonistNoOfCompetitions int `csv:"finPNoC"` Run int `csv:"run"` }
type RunBestIndividualStatistics ¶
type RunBestIndividualStatistics []RunBestIndividualStatistic
func (*RunBestIndividualStatistics) ToCSV ¶
func (e *RunBestIndividualStatistics) ToCSV(outputPath string) error
type RunEpochalStatistic ¶
type RunEpochalStatistic struct { SpecEquation string `csv:"specEquation"` SpecRange int `csv:"range"` SpecSeed int `csv:"seed"` AntagonistID string `csv:"AID"` ProtagonistID string `csv:"PID"` Antagonist float64 `csv:"A"` Protagonist float64 `csv:"P"` AntagonistDelta float64 `csv:"ADelta"` ProtagonistDelta float64 `csv:"PDelta"` AntagonistStdDev float64 `csv:"AStdDev"` ProtagonistStdDev float64 `csv:"PStdDev"` AntagonistAverageDelta float64 `csv:"AAvgDelta"` ProtagonistAverageDelta float64 `csv:"PAvgDelta"` AntagonistBestDelta float64 `csv:"ABestDelta"` ProtagonistBestDelta float64 `csv:"PBestDelta"` AntagonistEquation string `csv:"AEquation"` ProtagonistEquation string `csv:"PEquation"` AntagonistStrategy string `csv:"AStrat"` ProtagonistStrategy string `csv:"PStrat"` AntagonistDominantStrategy string `csv:"ADomStrat"` ProtagonistDominantStrategy string `csv:"PDomStrat"` AntagonistGeneration int `csv:"AGen"` ProtagonistGeneration int `csv:"PGen"` FinalAntagonist float64 `csv:"finA"` FinalProtagonist float64 `csv:"finP"` FinalAntagonistStdDev float64 `csv:"finAStdDev"` FinalProtagonistStdDev float64 `csv:"finPStdDev"` FinalAntagonistDelta float64 `csv:"finADelta"` FinalProtagonistDelta float64 `csv:"finPDelta"` FinalAntagonistBestDelta float64 `csv:"finABestDelta"` FinalProtagonistBestDelta float64 `csv:"finPBestDelta"` FinalAntagonistEquation string `csv:"finAEquation"` FinalProtagonistEquation string `csv:"finPEquation"` FinalAntagonistStrategy string `csv:"finAStrat"` FinalProtagonistStrategy string `csv:"finPStrat"` FinalAntagonistDominantStrategy string `csv:"finADomStrat"` FinalProtagonistDominantStrategy string `csv:"finPDomStrat"` Epoch int `csv:"epoch"` Run int `csv:"run"` }
type RunEpochalStatistics ¶
type RunEpochalStatistics []RunEpochalStatistic
func (*RunEpochalStatistics) ToCSV ¶
func (e *RunEpochalStatistics) ToCSV(outputPath string) error
type RunGenerationalStatistic ¶
type RunGenerationalStatistic struct { Generation int `csv:"gen"` SpecEquation string `csv:"specEquation"` SpecRange int `csv:"range"` SpecSeed int `csv:"seed"` AntagonistEquation string `csv:"topAEquation"` ProtagonistEquation string `csv:"topPEquation"` // Generation Stats Correlation float64 `csv:"correlation"` Covariance float64 `csv:"covariance"` AntagonistMean float64 `csv:"AMean"` ProtagonistMean float64 `csv:"PMean"` AntagonistStdDev float64 `csv:"AStd"` ProtagonistStdDev float64 `csv:"PStd"` AntagonistVariance float64 `csv:"AVar"` ProtagonistVariance float64 `csv:"PVar"` AntagonistSkew float64 `csv:"ASkew"` ProtagonistSkew float64 `csv:"PSkew"` AntagonistExKurtosis float64 `csv:"AExKur"` ProtagonistExKurtosis float64 `csv:"PExKur"` // Top Individual In Generation Stats TopAntagonistMeanFitness float64 `csv:"topAMean"` TopProtagonistMeanFitness float64 `csv:"topPMean"` AntagonistBestFitness float64 `csv:"topABest"` ProtagonistBestFitness float64 `csv:"topPBest"` AntagonistAverageDelta float64 `csv:"topAMeanDelta"` ProtagonistAverageDelta float64 `csv:"topPMeanDelta"` AntagonistBestDelta float64 `csv:"topABestDelta"` ProtagonistBestDelta float64 `csv:"topPBestDelta"` AntagonistStrategy string `csv:"topAStrat"` ProtagonistStrategy string `csv:"topPStrat"` AntagonistDominantStrategy string `csv:"topADomStrat"` ProtagonistDominantStrategy string `csv:"topPDomStrat"` AntagonistBirthGen int `csv:"topABirthGen"` ProtagonistBirthGen int `csv:"topPBirthGen"` AntagonistAge int `csv:"topAAge"` ProtagonistAge int `csv:"topPAge"` Run int `csv:"run"` }
RunGenerationalStatistics refer to statistics per generation. So Top or Bottom refer to the best or worst in the given generation and not a cumulative of the evolutionary process.
type RunGenerationalStatistics ¶
type RunGenerationalStatistics []RunGenerationalStatistic
func (*RunGenerationalStatistics) ToCSV ¶
func (g *RunGenerationalStatistics) ToCSV(outputPath string) error
type RunStrategyStatistic ¶
type RunStrategyStatistics ¶
type RunStrategyStatistics []RunStrategyStatistic
func (*RunStrategyStatistics) ToCSV ¶
func (e *RunStrategyStatistics) ToCSV(outputPath string) error
type Simulation ¶
type Simulation struct { Mutext sync.Mutex CurrentEvolutionState evolution.EvolutionParams `json:"currentEvolutionState"` NumberOfRunsPerState int `json:"numberOfRunsPerState"` Name string `json:"name"` StatsFiles []string `json:"statsFiles"` ProgressBar *uiprogress.Bar // Output-Only OutputDir string `json:"outputDir"` RPath string `json:"rPath"` SimulationStats []SimulationRunStats `json:"simulationStats"` DataPath string }
func (*Simulation) Begin ¶
func (s *Simulation) Begin(params evolution.EvolutionParams) (evolution.EvolutionParams, error)
func (*Simulation) BestIndividualsInRun ¶
func (s *Simulation) BestIndividualsInRun(params evolution.EvolutionParams) (runBest RunBestIndividualStatistics, err error)
BestIndividualInRun returns a CSV type of the best antagonist and protagonist in the given run, as well as the final individuals produced
func (*Simulation) EpochalInRun ¶
func (s *Simulation) EpochalInRun(params evolution.EvolutionParams) (runEpochal RunEpochalStatistics, err error)
func (*Simulation) GenerationalInRun ¶
func (s *Simulation) GenerationalInRun(params evolution.EvolutionParams) (runGen RunGenerationalStatistics, err error)
BestIndividualInRun returns a CSV type of the best antagonist and protagonist in the given run, as well as the final individuals produced
func (*Simulation) RunRScript ¶
func (*Simulation) SimulationBestActualIndividuals ¶
func (s *Simulation) SimulationBestActualIndividuals(params evolution.EvolutionParams) (bestActualIndividuals SimulationBestActualIndividual, err error)
SimulationBestActualIndividuals returns the best actual individuals in the entire simulation
func (*Simulation) SimulationBestEpochal ¶
func (s *Simulation) SimulationBestEpochal(params evolution.EvolutionParams) (bestEpochs SimulationBestEpochs, err error)
func (*Simulation) SimulationBestIndividual ¶
func (s *Simulation) SimulationBestIndividual(params evolution.EvolutionParams) (simulationBestIndividuals SimulationBestIndividuals, err error)
SimulationBestIndividual returns the best antagonist and protagonist in all runs
func (*Simulation) SimulationBestIndividuals ¶
func (s *Simulation) SimulationBestIndividuals(params evolution.EvolutionParams) ( simulationBestIndividuals SimulationBestIndividuals, err error)
SimulationBestIndividual returns the best antagonist and protagonist in all runs
func (*Simulation) SimulationBestStrategy ¶
func (s *Simulation) SimulationBestStrategy(params evolution.EvolutionParams) (simulationStrategy SimulationStrategyStatistics, err error)
func (*Simulation) SpewJSONNoSplit ¶
func (s *Simulation) SpewJSONNoSplit(projectAbsolutePath, paramsDir string) error
SpewJSON enables the creation of multiple JSON files containing parameter information. baseRelDir is the relative directory to the parameter folder. Should be within the project. Split should be the number of files per folder. It will try split them evenly
func (*Simulation) StartEngine ¶
func (s *Simulation) StartEngine(engine *evolution.EvolutionEngine) error
func (*Simulation) StrategyInRun ¶
func (s *Simulation) StrategyInRun(params evolution.EvolutionParams) (runStrategy RunStrategyStatistics, err error)
type SimulationBestActualIndividual ¶
type SimulationBestActualIndividual struct { Antagonist evolution.Individual Protagonist evolution.Individual AntagonistGeneration int ProtagonistGeneration int AntagonistRun int ProtagonistRun int Correlation float64 Covariance float64 }
########################################### BEST INDIVIDUAL ##############
type SimulationBestEpoch ¶
type SimulationBestEpoch struct { SpecEquation string `csv:"specEquation"` SpecRange int `csv:"range"` SpecSeed int `csv:"seed"` Epoch int `csv:"epoch"` Antagonist float64 `csv:"AAvg"` Protagonist float64 `csv:"PAvg"` AntagonistBestDelta float64 `csv:"ABestDelta"` ProtagonistBestDelta float64 `csv:"PBestDelta"` AntagonistAverageDelta float64 `csv:"PAverageDelta"` ProtagonistAverageDelta float64 `csv:"PAverageDelta"` AntagonistBestFitness float64 `csv:"ABestFit"` ProtagonistBestFitness float64 `csv:"PBestFit"` AntagonistStdDev float64 `csv:"AStdDev"` ProtagonistStdDev float64 `csv:"PStdDev"` AntagonistEquation string `csv:"AEquation"` ProtagonistEquation string `csv:"PEquation"` AntagonistStrategy string `csv:"AStrat"` ProtagonistStrategy string `csv:"PStrat"` AntagonistDominantStrategy string `csv:"ADomStrat"` ProtagonistDominantStrategy string `csv:"PDomStrat"` AntagonistGeneration int `csv:"AGen"` ProtagonistGeneration int `csv:"PGen"` AntagonistBirthGen int `csv:"ABirthGen"` ProtagonistBirthGen int `csv:"PBirthGen"` AntagonistAge int `csv:"AAge"` ProtagonistAge int `csv:"PAge"` AntagonistRun int `csv:"ARun"` ProtagonistRun int `csv:"PRun"` }
type SimulationBestEpochs ¶
type SimulationBestEpochs []SimulationBestEpoch
func (*SimulationBestEpochs) ToCSV ¶
func (s *SimulationBestEpochs) ToCSV(outputPath string) error
type SimulationBestIndividual ¶
type SimulationBestIndividual struct { SpecEquation string `csv:"specEquation"` SpecRange int `csv:"range"` SpecSeed int `csv:"seed"` Correlation float64 `csv:"corr"` Covariance float64 `csv:"cov"` AntagonistID string `csv:"AID"` ProtagonistID string `csv:"PID"` Antagonist float64 `csv:"AAvg"` Protagonist float64 `csv:"PAvg"` AntagonistBestFitness float64 `csv:"ABestFit"` ProtagonistBestFitness float64 `csv:"PBestFit"` AntagonistStdDev float64 `csv:"AStdDev"` ProtagonistStdDev float64 `csv:"PStdDev"` AntagonistAverageDelta float64 `csv:"AAverageDelta"` ProtagonistAverageDelta float64 `csv:"PAverageDelta"` AntagonistBestDelta float64 `csv:"ABestDelta"` ProtagonistBestDelta float64 `csv:"PBestDelta"` AntagonistEquation string `csv:"AEquation"` ProtagonistEquation string `csv:"PEquation"` AntagonistStrategy string `csv:"AStrat"` ProtagonistStrategy string `csv:"PStrat"` AntagonistDominantStrategy string `csv:"ADomStrat"` ProtagonistDominantStrategy string `csv:"PDomStrat"` AntagonistGeneration int `csv:"AGen"` ProtagonistGeneration int `csv:"PGen"` AntagonistBirthGen int `csv:"ABirthGen"` ProtagonistBirthGen int `csv:"PBirthGen"` AntagonistAge int `csv:"AAge"` ProtagonistAge int `csv:"PAge"` AntagonistRun int `csv:"ARun"` ProtagonistRun int `csv:"PRun"` AntagonistNoOfCompetitions int `csv:"ANoC"` ProtagonistNoOfCompetitions int `csv:"PNoC"` }
type SimulationBestIndividuals ¶
type SimulationBestIndividuals []SimulationBestIndividual
func (*SimulationBestIndividuals) ToCSV ¶
func (s *SimulationBestIndividuals) ToCSV(outputPath string) error
type SimulationRunStats ¶
type SimulationRunStats struct { TopAntagonist evolution.Individual TopProtagonist evolution.Individual TopAntagonistByDelta evolution.Individual TopProtagonistByDelta evolution.Individual TopAntagonistByDeltaAvg evolution.Individual TopProtagonistByDeltaAvg evolution.Individual TopAntagonistGeneration int TopProtagonistGeneration int FinalAntagonist evolution.Individual FinalProtagonist evolution.Individual Generational evolution.Generational MeanCorrelation float64 MeanCovariance float64 }
type SimulationStrategyStatistic ¶
type SimulationStrategyStatistic struct { Antagonist string `csv:"A"` Protagonist string `csv:"P"` AntagonistEquation string `csv:"AEquation"` ProtagonistEquation string `csv:"PEquation"` AntagonistGeneration int `csv:"AGen"` ProtagonistGeneration int `csv:"PGen"` AntagonistRun int `csv:"ARun"` ProtagonistRun int `csv:"PRun"` StrategyCount int `csv:"count"` Run int `csv:"run"` }
type SimulationStrategyStatistics ¶
type SimulationStrategyStatistics []SimulationStrategyStatistic
func (*SimulationStrategyStatistics) ToCSV ¶
func (e *SimulationStrategyStatistics) ToCSV(outputPath string) error