Skip to content

schola.core.spaces.discrete.DiscreteSpace

Class Definition

class schola.core.spaces.discrete.DiscreteSpace(n)

Bases: Discrete, UnrealSpace

A Space representing a single discrete value.

See also:

  • gymnasium.spaces.Discrete – The gym space object that this class is analogous to
  • proto_spaces.DiscreteSpace – The protobuf representation of this space

Parameters

n

Type: int
The number of discrete values in the space. e.g. space is one value in interval [0,n]

Attributes

n

Type: int
The number of discrete values in the space.

is_np_flattenable

Checks whether this space can be flattened to aspaces.Box.

np_random

Lazily seed the PRNG since this is expensive and only needed if sampling from this space.

shape

Return the shape of the space as an immutable property.

proto_space

Alias ofDiscreteSpace

Methods

__init__

__init__(n)

Constructor of Discrete space.

This will construct the space {start, …, start + n - 1}.

Parameters:

  • n (int) – The number of elements of this space
  • seed – Optionally, you can use this argument to seed the RNG that is used to sample from the Dict space
  • start (int) – The smallest element of this space

contains

contains(x)

Return boolean specifying if x is a valid member of this space.

fill_proto

fill_proto(msg, value)

Convert a python representation of point in this space to a protobuf message. Mutates msg with the result.

Parameters:

  • msg (proto_points.FundamentalPoint) – The protobuf message to fill
  • value (Any) – The pythonic representation of the point

from_jsonable

from_jsonable(sample_n)

Converts a list of json samples to a list of np.int64.

from_proto

@classmethod
from_proto(message)

Create a Space Object from a protobuf representation.

is_empty_definition

@classmethod
is_empty_definition(message)

Returns True iff this space has magnitude 0.

Parameters:

  • message (proto_space) – The protobuf message to check for emptiness

Returns: True iff the space is empty.

Return type: bool

merge

@classmethod
merge(*spaces)

Merge multiple DiscreteSpaces into a single space.

Parameters:

  • *spaces (List[Union[DiscreteSpace, MultiDiscreteSpace]]) – The spaces to merge

Returns: The merged space.

Return type: MultiDiscreteSpace

Raises: TypeError – If any of the spaces are not Discrete or MultiDiscrete.

See also: merge_discrete_like_spaces – Merge multiple Discrete or MultiDiscrete spaces into a single MultiDiscrete space.

process_data

process_data(msg)

Convert a protobuf message corresponding to a point in this space to a pythonic representation.

Parameters:

  • msg (proto_points.FundamentalPoint) – The protobuf message to convert

Returns: The pythonic representation of the point.

Return type: np.ndarray

sample

sample(mask=None)

Generates a single random sample from this space.

seed

seed(seed=None)

Seed the PRNG of this space and possibly the PRNGs of subspaces.

to_jsonable

to_jsonable(sample_n)

Converts a list of samples to a list of ints.

to_normalized

to_normalized()

Returns a normalized version of the space. Is a noop if a space subclass does not implement to_normalized.

Returns: The normalized space.

Return type: UnrealSpace