Skip to content

FBoxSpace

A struct representing a box (continuous) space of possible observations or actions.

A BoxSpace is a Cartesian product of BoxSpaceDimensions, where each dimension defines a continuous range with upper and lower bounds. This is commonly used for continuous control problems where actions or observations are real-valued vectors within specified ranges.

struct FBoxSpace : public FSpace

Methods

FBoxSpace

FBoxSpace()

Constructs an empty BoxSpace with no dimensions.


FBoxSpace

FBoxSpace(const TArray<float> &Low, const TArray<float> &High,
const TArray<int> &Shape = TArray<int>())

Constructs a BoxSpace with the given bounds arrays.

Parameters

  • Low (const TArray<float>)

  • High (const TArray<float>)

  • Shape (const TArray<int>, default: TArray<int>())


FBoxSpace

FBoxSpace(const TArray<FBoxSpaceDimension> &Dimensions,
const TArray<int> &Shape = TArray<int>())

Constructs a BoxSpace from an array of BoxSpaceDimensions.

Parameters

  • Dimensions (const TArray<FBoxSpaceDimension>)

  • Shape (const TArray<int>, default: TArray<int>())


FBoxSpace

FBoxSpace(std::initializer_list<float> Low, std::initializer_list<float> High,
std::initializer_list<int> Shape = std::initializer_list<int>())

Constructs a BoxSpace from initializer lists.

Parameters

  • Low (std::initializer_list<float>)

  • High (std::initializer_list<float>)

  • Shape (std::initializer_list<int>, default: std::initializer_list<int>())


FBoxSpace

FBoxSpace(const TArray<int> &Shape)

Constructs a BoxSpace with a specific shape and uninitialized dimensions.

Parameters

  • Shape (const TArray<int>)

Copy

void Copy(const FBoxSpace &Other)

Copies the contents of another BoxSpace into this one.

Parameters

  • Other (const FBoxSpace)

GetNormalizedObservationSpace

FBoxSpace GetNormalizedObservationSpace() const

Gets a normalized version of this BoxSpace with all dimensions in [0, 1].


FBoxSpace

virtual ~FBoxSpace()

Virtual destructor.


Add

void Add(float Low, float High)

Adds a dimension to this BoxSpace.

Parameters

  • Low (float)

  • High (float)


Add

void Add(const FBoxSpaceDimension &Dimension)

Adds a dimension to this BoxSpace.

Parameters

  • Dimension (const FBoxSpaceDimension)

GetNumDimensions

virtual int GetNumDimensions() const override

Gets the number of dimensions in this space.


GetFlattenedSize

virtual int GetFlattenedSize() const override

Gets the flattened size of this space.


IsEmpty

virtual bool IsEmpty() const override

Checks if this space is empty.


Validate

virtual ESpaceValidationResult
Validate(const TInstancedStruct<FPoint> &Point) const override

Validates that a point conforms to this space.

Parameters

  • Point (const TInstancedStruct<FPoint>)

Accept

inline virtual void Accept(SpaceVisitor &InVisitor)

Accepts a mutable visitor for the visitor pattern.

Parameters

  • InVisitor (SpaceVisitor)

Accept

inline virtual void Accept(ConstSpaceVisitor &InVisitor) const

Accepts a const visitor for the visitor pattern.

Parameters

  • InVisitor (ConstSpaceVisitor)

NormalizeObservation

FBoxPoint NormalizeObservation(const FBoxPoint &Observation) const

Normalizes an observation in this space to the range [0, 1].

Parameters

  • Observation (const FBoxPoint)

Attributes

Dimensions

TArray<FBoxSpaceDimension> Dimensions = TArray<FBoxSpaceDimension>()

The dimensions of this BoxSpace.


Shape

TArray<int> Shape = TArray<int>()

The shape of the Box Space.

Source: Source/Schola/Public/Spaces/BoxSpace.h