Mountain Car Continuous¶

此环境是 Classic Control(经典控制)环境的一部分,其中包含有关环境的常规信息。
动作空间 |
|
观测空间 |
|
import |
|
描述¶
Mountain Car MDP 是一个确定性 MDP,由一辆随机放置在正弦波谷底部的汽车组成,唯一的可能动作是可以应用于汽车在任一方向的加速度。MDP 的目标是策略性地加速汽车以到达右侧山顶的目标状态。gymnasium 中有 Mountain Car 域的两个版本:一个具有离散动作,另一个具有连续动作。此版本是具有连续动作的版本。
此 MDP 首次出现在Andrew Moore 的博士论文 (1990)
@TECHREPORT{Moore90efficientmemory-based,
author = {Andrew William Moore},
title = {Efficient Memory-based Learning for Robot Control},
institution = {University of Cambridge},
year = {1990}
}
观测空间¶
观测是一个形状为 (2,)
的 ndarray
,其中元素对应于以下内容
编号 |
观测 |
最小值 |
最大值 |
单位 |
---|---|---|---|---|
0 |
汽车沿 x 轴的位置 |
-1.2 |
0.6 |
位置 (米) |
1 |
汽车的速度 |
-0.07 |
0.07 |
位置 (米) |
动作空间¶
动作是一个形状为 (1,)
的 ndarray
,表示应用于汽车的方向力。动作被裁剪到范围 [-1,1]
并乘以 0.0015 的幂。
转移动力学:¶
给定一个动作,Mountain Car 遵循以下转移动力学
速度t+1 = 速度t+1 + 力 * self.power - 0.0025 * cos(3 * 位置t)
位置t+1 = 位置t + 速度t+1
其中力是裁剪到范围 [-1,1]
的动作,power 是常数 0.0015。两端的碰撞是非弹性的,与墙壁碰撞时速度设置为 0。位置被裁剪到范围 [-1.2, 0.6],速度被裁剪到范围 [-0.07, 0.07]。
奖励¶
每个时间步都会收到 -0.1 * action2 的负奖励,以惩罚采取大幅度动作。如果 Mountain Car 到达目标,则在该时间步的负奖励中增加 +100 的正奖励。
起始状态¶
汽车的位置在 [-0.6 , -0.4]
中分配一个均匀随机值。汽车的起始速度始终设置为 0。
эпизод 结束¶
如果发生以下任一情况,则 эпизод 结束
终止:汽车的位置大于或等于 0.45(右侧山顶的目标位置)
截断: эпизод 的长度为 999。
参数¶
Continuous Mountain Car 对于 gymnasium.make
有两个参数:render_mode
和 goal_velocity
。在重置时,options
参数允许用户更改用于确定新随机状态的边界。
>>> import gymnasium as gym
>>> env = gym.make("MountainCarContinuous-v0", render_mode="rgb_array", goal_velocity=0.1) # default goal_velocity=0
>>> env
<TimeLimit<OrderEnforcing<PassiveEnvChecker<Continuous_MountainCarEnv<MountainCarContinuous-v0>>>>>
>>> env.reset(seed=123, options={"low": -0.7, "high": -0.5}) # default low=-0.6, high=-0.4
(array([-0.5635296, 0. ], dtype=float32), {})
版本历史¶
v0:初始版本发布