Skip to content

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:

Source: Schola/Source/Schola/Public/Brains/AbstractBrain.h (line 26, column 1)