我正在随机代理上评估 'env =gym.make('MountainCar-v0', render_mode='rgb_array')' 并获得 100% 的成功率,这很奇怪,你能指导我吗?
意味着汽车位置始终大于 0.5,这是目标。
env = gym.make('MountainCar-v0', render_mode='rgb_array')
state, _ = env.reset()
max_position = -99
done = False
while not done:
action = env.action_space.sample()
next_state, reward, done, trun, info = env.step(action)
if next_state[0] > max_position:
max_position = next_state[0]
print(next_state[0], max_position)
0.50212365 0.50212365
我与其他问题相比,他们使用随机代理获得了 0% 的成功率
不知道我理解是否正确,但我检查了山车环境。目标是达到大于 0.5 的状态值
while
循环仅在done==true
时结束。仅当步骤函数返回大于 0.5 的 next_state 值时,布尔值 done 才为 true。
这就是为什么 max_position 始终大于 0.5,即使操作是随机选择的。智能体随机行动,直到随意达到目标。直到找到大于 0.5 的值之前循环才会结束。如果根据获得的知识(强化学习)而不是随机选择动作,循环会更快。