UAbstractBrain
class UAbstractBrain : public UObject
An AbstractBaseClass for subclasses representing different ways of synchronizing policy, observations and actions.
Dependencies
This type depends on:
Inherits from: public UObject
Subclassed by: USynchronousBrain
Public Interface
Constructor:
UAbstractBrain
UAbstractBrain()
Source: Schola/Source/Schola/Public/Brains/AbstractBrain.h
(line 35, column 1)
Implementation: Schola/Source/Schola/Private/Brains/AbstractBrain.cpp
(lines 5-7)
Public Functions:
IncrementStep
void IncrementStep()
Increment the current agent step.
Source: Schola/Source/Schola/Public/Brains/AbstractBrain.h
(line 60, column 6)
Implementation: Schola/Source/Schola/Private/Brains/AbstractBrain.cpp
(lines 9-12)
SetStep
void SetStep(int NewStep)
Set the current agent step.
Parameters:
NewStep
(int
) – the value to update the step too
Source: Schola/Source/Schola/Public/Brains/AbstractBrain.h
(line 66, column 6)
Implementation: Schola/Source/Schola/Private/Brains/AbstractBrain.cpp
(lines 14-17)
ResetStep
void ResetStep()
Reset the agent’s count of steps to 0.
Source: Schola/Source/Schola/Public/Brains/AbstractBrain.h
(line 71, column 6)
Implementation: Schola/Source/Schola/Private/Brains/AbstractBrain.cpp
(lines 19-22)
IsActive
bool IsActive()
Check if this brain is active (e.g.
Not closed or errored out)
Returns: true iff this brain is functional (e.g. Not closed or errored out)
Returns: bool
Source: Schola/Source/Schola/Public/Brains/AbstractBrain.h
(line 77, column 6)
Implementation: Schola/Source/Schola/Private/Brains/AbstractBrain.cpp
(lines 24-27)
Reset
inline virtual void Reset()
Reset this brain.
Attributes: inline
, virtual
Source: Schola/Source/Schola/Public/Brains/AbstractBrain.h
(line 82, column 14)
IsDecisionStep
virtual bool IsDecisionStep(int StepToCheck)
Check whether a specific step will require a brain decision.
Returns: true iff the agent should be requesting a decision
Parameters:
StepToCheck
(int
) – the timestep to check
Returns: bool
Attributes: virtual
Source: Schola/Source/Schola/Public/Brains/AbstractBrain.h
(line 89, column 14)
Implementation: Schola/Source/Schola/Private/Brains/AbstractBrain.cpp
(lines 29-32)
IsDecisionStep
virtual bool IsDecisionStep()
If the current step is a decision step, as defined by the step frequency.
Returns: true iff the current step is a decision step
Returns: bool
Attributes: virtual
Source: Schola/Source/Schola/Public/Brains/AbstractBrain.h
(line 95, column 14)
Implementation: Schola/Source/Schola/Private/Brains/AbstractBrain.cpp
(lines 34-37)
Init
void Init(UAbstractPolicy *InjectedPolicy)
Initialize this brain by supplying a policy.
Note: this is so that we can avoid having massively nested structs in the editor when opening the Agent
Parameters:
InjectedPolicy
(UAbstractPolicy *
) – [inout] The policy that this brain will use to make decisions
Source: Schola/Source/Schola/Public/Brains/AbstractBrain.h
(line 102, column 6)
Implementation: Schola/Source/Schola/Private/Brains/AbstractBrain.cpp
(lines 39-42)
HasAction
inline virtual bool HasAction()
Check if this brain has an action prepared.
Returns: true iff this brain has an action prepared (e.g. a GetAction() call on this step will suceed)
Returns: bool
Attributes: inline
, virtual
Source: Schola/Source/Schola/Public/Brains/AbstractBrain.h
(line 108, column 14)
GetAction
inline virtual FAction * GetAction()
get an action from this brain
Returns: A pointer to the current action
Returns: FAction *
Attributes: inline
, virtual
Source: Schola/Source/Schola/Public/Brains/AbstractBrain.h
(line 114, column 17)
RequestDecision
inline virtual bool RequestDecision(const FDictPoint &Observations)
Request that the brain determine a new action.
Returns: Status True if decision request suceeded and False otherwise
Parameters:
Observations
(const FDictPoint &
) – [in] The current state of the agent used to inform the brains choice of action
Returns: bool
Attributes: inline
, virtual
Source: Schola/Source/Schola/Public/Brains/AbstractBrain.h
(line 120, column 14)
GetAbstractSettingsVisibility
virtual bool GetAbstractSettingsVisibility() const const
Use by subclasses to set whether the settings are visible or not.
Returns: true if settings in this class are visible in the editor.
Returns: bool
Attributes: const
, virtual
Source: Schola/Source/Schola/Public/Brains/AbstractBrain.h
(line 125, column 14)
Implementation: Schola/Source/Schola/Private/Brains/AbstractBrain.cpp
(lines 44-47)
GetStatus
virtual EBrainStatus GetStatus()
Get the last status of the brain.
Returns: the last status
Returns: EBrainStatus
Attributes: virtual
Source: Schola/Source/Schola/Public/Brains/AbstractBrain.h
(line 131, column 22)
Implementation: Schola/Source/Schola/Private/Brains/AbstractBrain.cpp
(lines 49-52)
SetStatus
virtual void SetStatus(EBrainStatus NewStatus)
Update the status of the brain.
Parameters:
NewStatus
(EBrainStatus
) – [in] The new status to set
Attributes: virtual
Source: Schola/Source/Schola/Public/Brains/AbstractBrain.h
(line 137, column 14)
Implementation: Schola/Source/Schola/Private/Brains/AbstractBrain.cpp
(lines 54-57)
UpdateStatusFromDecision
virtual void UpdateStatusFromDecision(const FPolicyDecision &Decision)
Update the status of the brain from a PolicyDecision.
Parameters:
Decision
(const FPolicyDecision &
) – [in] The PolicyDecision to unpack and use when updating the status
Attributes: virtual
Source: Schola/Source/Schola/Public/Brains/AbstractBrain.h
(line 143, column 14)
Implementation: Schola/Source/Schola/Private/Brains/AbstractBrain.cpp
(lines 59-71)
ResolveDecision
inline virtual void ResolveDecision()
Inform the policy that you will require a response decision iminently, so it should resolve the open decision and update it’s status accordingly.
Attributes: inline
, virtual
Source: Schola/Source/Schola/Public/Brains/AbstractBrain.h
(line 148, column 14)
IsActionStep
virtual bool IsActionStep()
Check if brain has an action, and it’s an action step.
Returns: true if the brain has an action and it’s an action step
Returns: bool
Attributes: virtual
Source: Schola/Source/Schola/Public/Brains/AbstractBrain.h
(line 154, column 14)
Implementation: Schola/Source/Schola/Private/Brains/AbstractBrain.cpp
(lines 73-76)
Public Members:
UAbstractPolicy * Policy
UAbstractPolicy * Policy
The underlying policy this brain wraps.
Source: Schola/Source/Schola/Public/Brains/AbstractBrain.h
(line 33, column 17)
bool bTakeActionBetweenDecisions
bool bTakeActionBetweenDecisions = = true
If true the agent will repeat it’s last action each step between decision requests.
Source: Schola/Source/Schola/Public/Brains/AbstractBrain.h
(line 39, column 6)
int Step
int Step = = 0
The current step of the simulation.
Source: Schola/Source/Schola/Public/Brains/AbstractBrain.h
(line 43, column 5)
int DecisionRequestFrequency
int DecisionRequestFrequency = = 5
The number of steps between requests for new actions.
If this is different across agents it may cause issues training in some frameworks (e.g. Stable Baselines 3).
Source: Schola/Source/Schola/Public/Brains/AbstractBrain.h
(line 47, column 5)
bool bAbstractSettingsVisibility
bool bAbstractSettingsVisibility = = true
Toggle for whether the user can see the settings for this class.
Use to hide in subclass if they aren’t relevant
Source: Schola/Source/Schola/Public/Brains/AbstractBrain.h
(line 51, column 6)
EBrainStatus Status
EBrainStatus Status = = EBrainStatus::Running
The status of the brain.
Source: Schola/Source/Schola/Public/Brains/AbstractBrain.h
(line 55, column 14)
Used By
This type is used by:
- AInferenceController
- AInferencePawn
- IInferenceAgent
- UAsyncBrain
- UBTTask_AgentStep
- UDiscreteBrain
- UInferenceComponent
- USynchronousBrain
Source: Schola/Source/Schola/Public/Brains/AbstractBrain.h
(line 26, column 1)