Пользовательская среда OpenAI Gym: дискретное пространство наблюдения с реальными значениями - PullRequest
2 голосов
/ 10 июня 2019

Я хотел бы создать пользовательскую среду для занятий в тренажерном зале openai, которая имеет дискретное пространство состояний, но с плавающими значениями.Чтобы быть более точным, это должен быть диапазон значений с шагом 0,25: 10,0, 10,25, 10,5, 10,75, 11,0, ..., 19,75, 20,0

Есть ли способ сделать это в Openai Gym Customокружение, используя такие пространства, как Discrete, Box, MultiDiscrete или некоторые другие?Дискретное требует целое число, и Box, похоже, не имеет какой-то параметр шага.

1 Ответ

1 голос
/ 11 июня 2019

Вы можете реализовать свое собственное пространство, используя 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)
...