import numpy as np
import gym
from gym.spaces import Discrete
[docs]class DiscreteExtended(Discrete):
[docs] def __init__(self, n, seed=None):
super(DiscreteExtended, self).__init__(n)
super(DiscreteExtended, self).seed(seed=seed)
[docs] def sample(self, max=None, prob=None, size=1, replace=True):
if max == None: #hack This was done when diameter was introduced as a dimension so as not to have to change the tests which would fail.
max = self.n
sampled = np.squeeze(self.np_random.choice(max, size=size, p=prob, replace=replace))
if sampled.shape == ():
sampled = int(sampled) #TODO Just made it an int otherwise np.array(scalar) looks ugly in output.
return sampled