Skip to content

Struct FMultiDiscreteSpace

Struct FMultiDiscreteSpace

  • Defined in File MultiDiscreteSpace.h

Inheritance Relationships

Base Type

struct FMultiDiscreteSpace : public FSpace

Source: Source/Schola/Public/Common/Spaces/MultiDiscreteSpace.h

Dependencies: ConstSpaceVisitor, FPoint, SpaceVisitor

A struct representing a multi-discrete space (vector of integers) of possible observations or actions.

A multi-discrete space represents multiple independent discrete choices, where each dimension can have a different number of options. This is useful for representing multiple independent categorical selections, where each category may have a different number of choices.


Public Functions

SymbolDetails
FMultiDiscreteSpaceConstructs an empty MultiDiscreteSpace.
FMultiDiscreteSpaceConstructs a MultiDiscreteSpace from an array of upper bounds.
FMultiDiscreteSpaceConstructs a MultiDiscreteSpace from a raw array.
FMultiDiscreteSpaceCopy constructor.
MergeMerges another MultiDiscreteSpace into this one.
AddAdds a dimension to this MultiDiscreteSpace.
~FMultiDiscreteSpaceVirtual destructor.
GetMaxValueGets the index of the maximum value in an array.
GetNumDimensionsGets the number of dimensions in this space.
ValidateValidates that a point conforms to this space.
GetFlattenedSizeGets the flattened size of this space.
IsEmptyChecks if this space is empty.
AcceptAccepts a mutable visitor for the visitor pattern.
AcceptAccepts a const visitor for the visitor pattern.

FMultiDiscreteSpace

FMultiDiscreteSpace()

Constructs an empty MultiDiscreteSpace.

Source: Source/Schola/Public/Common/Spaces/MultiDiscreteSpace.h

Implementation: Source/Schola/Private/Common/Spaces/MultiDiscreteSpace.cpp

FMultiDiscreteSpace

FMultiDiscreteSpace(const TArray<int> &High)

Constructs a MultiDiscreteSpace from an array of upper bounds.

Parameters

High – [in] Array of exclusive upper bounds for each dimension.

Source: Source/Schola/Public/Common/Spaces/MultiDiscreteSpace.h

Implementation: Source/Schola/Private/Common/Spaces/MultiDiscreteSpace.cpp

FMultiDiscreteSpace

inline FMultiDiscreteSpace(const int *Data, int Size)

Constructs a MultiDiscreteSpace from a raw array.

Parameters

  • Data – [in] Raw array of upper bounds.

  • Size – [in] Size of the array.

Source: Source/Schola/Public/Common/Spaces/MultiDiscreteSpace.h

Implementation: Source/Schola/Private/Common/Spaces/MultiDiscreteSpace.cpp

FMultiDiscreteSpace

FMultiDiscreteSpace(FMultiDiscreteSpace &Other)

Copy constructor.

Parameters

Other – [in] The MultiDiscreteSpace to copy from.

Source: Source/Schola/Public/Common/Spaces/MultiDiscreteSpace.h

Implementation: Source/Schola/Private/Common/Spaces/MultiDiscreteSpace.cpp

Merge

void Merge(const FMultiDiscreteSpace &Other)

Merges another MultiDiscreteSpace into this one.

Parameters

Other – [in] The space to merge.

#DirectionNameTypeDescription
1Otherconst FMultiDiscreteSpace &The space to merge.

Source: Source/Schola/Public/Common/Spaces/MultiDiscreteSpace.h

Implementation: Source/Schola/Private/Common/Spaces/MultiDiscreteSpace.cpp

Add

void Add(int DimSize)

Adds a dimension to this MultiDiscreteSpace.

Parameters

DimSize – [in] The exclusive upper bound for the new dimension.

#DirectionNameTypeDescription
1DimSizeintThe exclusive upper bound for the new dimension.

Source: Source/Schola/Public/Common/Spaces/MultiDiscreteSpace.h

Implementation: Source/Schola/Private/Common/Spaces/MultiDiscreteSpace.cpp


~FMultiDiscreteSpace

virtual ~FMultiDiscreteSpace()

Virtual destructor.

Attributes: virtual

Source: Source/Schola/Public/Common/Spaces/MultiDiscreteSpace.h

Implementation: Source/Schola/Private/Common/Spaces/MultiDiscreteSpace.cpp

GetMaxValue

int GetMaxValue(const TArray<float> &Vector) const

Gets the index of the maximum value in an array.

Parameters

Vector – [in] The vector to find the maximum value in.

Returns:

The index of the maximum value.

#DirectionNameTypeDescription
1Vectorconst TArray< float > &The vector to find the maximum value in.

Attributes: const

Source: Source/Schola/Public/Common/Spaces/MultiDiscreteSpace.h

Implementation: Source/Schola/Private/Common/Spaces/MultiDiscreteSpace.cpp

GetNumDimensions

virtual int GetNumDimensions() const override

Gets the number of dimensions in this space.

Returns:

The number of dimensions in the High array.

Attributes: const, virtual

Source: Source/Schola/Public/Common/Spaces/MultiDiscreteSpace.h

Implementation: Source/Schola/Private/Common/Spaces/MultiDiscreteSpace.cpp

Validate

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

Validates that a point conforms to this space.

Parameters

InPoint – [in] The point to validate.

Returns:

Validation result indicating success or failure reason.

#DirectionNameTypeDescription
1InPointconst TInstancedStruct< FPoint > &The point to validate.

Attributes: const, virtual

Source: Source/Schola/Public/Common/Spaces/MultiDiscreteSpace.h

Implementation: Source/Schola/Private/Common/Spaces/MultiDiscreteSpace.cpp

GetFlattenedSize

virtual int GetFlattenedSize() const override

Gets the flattened size of this space.

Returns:

The sum of all High values.

Attributes: const, virtual

Source: Source/Schola/Public/Common/Spaces/MultiDiscreteSpace.h

Implementation: Source/Schola/Private/Common/Spaces/MultiDiscreteSpace.cpp

IsEmpty

virtual bool IsEmpty() const override

Checks if this space is empty.

Returns:

True if High array is empty, false otherwise.

Attributes: const, virtual

Source: Source/Schola/Public/Common/Spaces/MultiDiscreteSpace.h

Implementation: Source/Schola/Private/Common/Spaces/MultiDiscreteSpace.cpp

Accept

inline virtual void Accept(SpaceVisitor &InVisitor)

Accepts a mutable visitor for the visitor pattern.

Parameters

InVisitor – [inout] The visitor to accept.

#DirectionNameTypeDescription
1InVisitorSpaceVisitor &The visitor to accept.

Attributes: inline, virtual

Source: Source/Schola/Public/Common/Spaces/MultiDiscreteSpace.h

Accept

inline virtual void Accept(ConstSpaceVisitor &InVisitor) const

Accepts a const visitor for the visitor pattern.

Parameters

InVisitor – [inout] The const visitor to accept.

#DirectionNameTypeDescription
1InVisitorSpaceVisitor &The visitor to accept.

Attributes: inline, virtual

Source: Source/Schola/Public/Common/Spaces/MultiDiscreteSpace.h


Public Members

SymbolDetails
HighArray of exclusive upper bounds (maximum value + 1) for each dimension.

High

TArray<int> High = TArray<int>()

Array of exclusive upper bounds (maximum value + 1) for each dimension.

The lower bound for each dimension is always 0. For example, High[i]=2 gives valid values {0,1} for dimension i.