在 OpenAI Gym 中,我想知道同一状态下不同动作的下一个状态。例如,我想获得 s_1, s_2 我的环境动态是:
(s, a_1) -> s_1, (s, a_2) -> s_2
我找不到撤消操作或在不更改环境的情况下向我显示下一个状态的方法。我有什么明显的遗漏吗?
如果有帮助,我这样做是为了区分 LQR 的动态和奖励,并使用 InvertedPendulum 环境。
在 OpenAI Gym 中,我想知道同一状态下不同动作的下一个状态。例如,我想获得 s_1, s_2 我的环境动态是:
(s, a_1) -> s_1, (s, a_2) -> s_2
我找不到撤消操作或在不更改环境的情况下向我显示下一个状态的方法。我有什么明显的遗漏吗?
如果有帮助,我这样做是为了区分 LQR 的动态和奖励,并使用 InvertedPendulum 环境。
我找到了一个名为 set_state 的方法,它正是这样做的。它可以在以下位置找到: https ://github.com/openai/gym/blob/12e8b763d5dcda4962cbd17887d545f0eec6808a/gym/envs/mujoco/mujoco_env.py#L86-L92
尝试克隆环境。
from copy import deepcopy
import gym
env1 = gym.make("InvertedPendulum-v1")
s = env.reset()
env2 = deepcopy(env1)
s_1 = env.step(a_1)
s_2 = env.step(a_2)