private Task RunAgentTrainingSessions() { if (_agentSecondary != null) { if (_agentPrimary.LearningStyle == QLearning.Core.LearningStyles.QLearning) { _agentSecondary.LearningStyle = QLearning.Core.LearningStyles.SARSA; } else { _agentSecondary.LearningStyle = QLearning.Core.LearningStyles.QLearning; } } Task[] tasks; if (_agentSecondary != null) { tasks = new Task[] { TrainingTask(), Task.Run(() => _agentSecondary.Train()) }; } else { tasks = new Task[] { TrainingTask() }; } Task.WaitAll(tasks); return(Task.CompletedTask); }
private Task TrainingTask() { EnableControls(false); this.Refresh(); _agentPrimary.Train(); EnableControls(true); this.DialogResult = DialogResult.OK; _agentPrimary.TrainingEpisodeCompleted -= _maze_TrainingEpisodeCompleted; return(Task.CompletedTask); }
private Task TrainAgent(MazeAgent agent) { agent.Train(); return(Task.CompletedTask); }