OpenAI Gym自定义环境:具有真实价值的离散观察空间

时间:2019-06-10 20:26:43

标签: python reinforcement-learning openai-gym discretization

我想创建具有离散状态空间但具有浮点值的自定义openai体育馆环境。更精确地说,它应该是0.25步长范围内的值: 10.0、10.25、10.5、10.75、11.0,...,19.75、20.0

在openai健身房自定义环境中,是否有一种方法可以使用离散,盒子,多离散或其他一些空间?离散需要整数,Box似乎没有某种step参数。

1 个答案:

答案 0 :(得分:1)

您可以使用np.linspace来实现自己的空间(例如以spaces.Box为指导):

from gym.spaces.space import Space
import numpy as np

class Incremental(Space):
    def __init__(self, start, stop, num, **kwargs):
        self.values = np.linspace(start, stop, num, **kwargs)
        super().__init__(self.values.shape, self.values.dtype)

    def sample(self):
        return np.random.choice(self.values)

    def contains(self, x):
        return x in self.values

space = Incremental(10, 20, 41)