Esempio n. 1
0
        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);
        }
Esempio n. 2
0
        private Task TrainingTask()
        {
            EnableControls(false);
            this.Refresh();
            _agentPrimary.Train();
            EnableControls(true);
            this.DialogResult = DialogResult.OK;

            _agentPrimary.TrainingEpisodeCompleted -= _maze_TrainingEpisodeCompleted;

            return(Task.CompletedTask);
        }
Esempio n. 3
0
 private Task TrainAgent(MazeAgent agent)
 {
     agent.Train();
     return(Task.CompletedTask);
 }