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

ses*_*sli 5 python reinforcement-learning discretization openai-gym

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

有没有办法在 openai 健身房自定义环境中使用 Discrete、Box、MultiDiscrete 或其他空间等空间来做到这一点?离散需要一个整数,而 Box 似乎没有某种步骤参数。

a_g*_*est 5

您可以使用以下方法实现您自己的空间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)
Run Code Online (Sandbox Code Playgroud)