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);
}
}