private static Driving2DAiTrainer CreateDriving2DAiTrainer() { var neuralNetworkSpecification = Driving2DNeuralNetworkSpecification.Specification; var trainingSpec = new TrainingSpecification { PopulationSize = 100, TopFractionToKeep = 0.05, ChildrenFractionToGenerate = 0.92, MutationRate = 0.05, FittestKeptScoreThreshold = 0 }; var geneticAlgorithm = CreateGeneticAlgorithm(neuralNetworkSpecification, trainingSpec); var trainingTextPosition = new Vector2(10, 75); var trainingTextColor = Color.Blue; IDriving2DController createController(int id, NeuralNetwork neuralNetwork) => new Driving2DAiController(id, neuralNetwork); var aiTrainingFramework = new AiTrainingFramework <IDriving2DController>(neuralNetworkSpecification, geneticAlgorithm, trainingTextPosition, trainingTextColor, createController); var controllers = aiTrainingFramework.CreateNewControllers(new List <(int id, int score)>()); return(new Driving2DAiTrainer(aiTrainingFramework, controllers)); }
private static SnakeAiTrainer CreateSnakeAiTrainer() { var neuralNetworkSpecification = SnakeNeuralNetworkSpecification.Specification; var geneticAlgorithm = CreateGeneticAlgorithm(neuralNetworkSpecification, DefaultTrainingSpecification); var trainingTextPosition = new Vector2(25, 25); var trainingTextColor = Color.Green; ISnakeController createController(int id, NeuralNetwork neuralNetwork) => new SnakeAiController(id, neuralNetwork); var aiTrainingFramework = new AiTrainingFramework <ISnakeController>(neuralNetworkSpecification, geneticAlgorithm, trainingTextPosition, trainingTextColor, createController); var controllers = aiTrainingFramework.CreateNewControllers(new List <(int id, int score)>()); return(new SnakeAiTrainer(aiTrainingFramework, controllers)); }
private static FlappyBirdAiTrainer CreateFlappyBirdAiTrainer() { var neuralNetworkSpecification = FlappyBirdNeuralNetworkSpecification.Specification; var trainingSpec = DefaultTrainingSpecification; trainingSpec.FittestKeptScoreThreshold = 500; var geneticAlgorithm = CreateGeneticAlgorithm(neuralNetworkSpecification, trainingSpec); var trainingTextPosition = new Vector2(25, 25); var trainingTextColor = Color.Red; IFlappyBirdController createController(int id, NeuralNetwork neuralNetwork) => new FlappyBirdAiController(id, neuralNetwork); var aiTrainingFramework = new AiTrainingFramework <IFlappyBirdController>(neuralNetworkSpecification, geneticAlgorithm, trainingTextPosition, trainingTextColor, createController); var controllers = aiTrainingFramework.CreateNewControllers(new List <(int id, int score)>()); return(new FlappyBirdAiTrainer(aiTrainingFramework, controllers)); }
internal Driving2DAiTrainer(AiTrainingFramework <IDriving2DController> aiTrainingFramework, IReadOnlyList <IDriving2DController> controllers) : base(controllers) { this.aiTrainingFramework = aiTrainingFramework; maxLapTime = TimeSpan.FromSeconds(15); }
internal SnakeAiTrainer(AiTrainingFramework <ISnakeController> aiTrainingFramework, IReadOnlyList <ISnakeController> controllers) : base(controllers) { this.aiTrainingFramework = aiTrainingFramework; }
internal FlappyBirdAiTrainer(AiTrainingFramework <IFlappyBirdController> aiTrainingFramework, IReadOnlyList <IFlappyBirdController> controllers) : base(controllers) { this.aiTrainingFramework = aiTrainingFramework; }