using System.Collections.Generic; using UnityEngine; namespace MLAgents { /// /// Interface for implementing the behavior of an Agent that uses a Heuristic /// Brain. The behavior of an Agent in this case is fully decided using the /// implementation of these methods and no training or inference takes place. /// Currently, the Heuristic Brain does not support text observations and actions. /// public abstract class Decision : ScriptableObject { public BrainParameters brainParameters; /// /// Defines the decision-making logic of the agent. Given the information /// about the agent, returns a vector of actions. /// /// Vector action vector. /// The vector observations of the agent. /// The cameras the agent uses for visual observations. /// The reward the agent received at the previous step. /// Whether or not the agent is done. /// /// The memories stored from the previous step with /// /// public abstract float[] Decide( List vectorObs, List visualObs, float reward, bool done, List memory); /// /// Defines the logic for creating the memory vector for the Agent. /// /// The vector of memories the agent will use at the next step. /// The vector observations of the agent. /// The cameras the agent uses for visual observations. /// The reward the agent received at the previous step. /// Whether or not the agent is done. /// /// The memories stored from the previous call to this method. /// public abstract List MakeMemory( List vectorObs, List visualObs, float reward, bool done, List memory); } }