public void Learn() { int[] s_tt = Ds.GetCurrentState(); float r_t = Ds.GetReward(); int a_t = Ds.GetLastExecutedAction(); if (a_t == this.m_prevSelectedAction) { base.SetJustExecuted(true); } if (a_t < 0) { // aciton ignored and nothing happened if (r_t == 0) { return; } // action adding, reward received as a result of unknown action List <int> toBeAdded = Ds.GetLastExecutedActions(); this.PerformActionAdding(toBeAdded); return; } if (m_setup.OnlineSubspaceVariables) { m_mlvh.monitorVariableChanges(this); } LearningAlgorithm.Learn(r_t, s_tt, a_t); if (r_t > 0) { // SRP is also an action, if the reward is received means that it just has been executed base.SetJustExecuted(true); this.ResetMotivationSource(); m_mlvh.performOnlineVariableRemoving(this); } }