MountainCarEnv(gym.Env)

环境文件位置:

D:\pytorch\anaconda\anaconda_file\envs\GYAM\Lib\site-packages\gymnasium\envs\classic_control\mountain_car.py

说明注解:

mountain car这个环境是一个确定性的马尔可夫决策过程MDP。它包括一辆随机放置在正弦谷底部的汽车,唯一可能的动作是可以在任何方向上应用于汽车的加速度。

这个MDP的目标是策略性地给汽车加速,以实现目标:使汽车到达正确的山顶。

gymnasium的山地车域car domain有两种形式:一种是离散动作,一种是连续动作。

这个版本是具有离散动作的版本。该MDP最早出现的文章:

Andrew Moore's PhD Thesis (1990)](https://www.cl.cam.ac.uk/techreports/UCAM-CL-TR-209.pdf)
Observation Space

观察到的是一个形状为‘(2,)’的‘ narray ’,其中的元素对应如下:

序号 | 观察Observation | 最小值 | 最大值 | 符号

0 | car在x轴上的位置 | -1.2 | 0.6 | position (m)

1| car的速度 | -0.07 | 0.07 | velocity (v)

Action Space

有3种离散的确定性行为:

0:向左加速
- 1:不要加速
- 2:向右加速

Transition Dynamics:

给定一个动作,山地车遵循以下过渡动态:

velocity_{t+1}=

                 velocity_{t}+(action-1)*force-cos(3*position_{t})*gravity

position_{t+1} = position_{t} + velocity_{t+1}

其中force= 0.001,gravity= 0.0025。
两端的碰撞是非弹性的,与壁面碰撞时velocity设为0。

position被剪辑到范围‘[-1.2,0.6]’,velocity被剪辑到范围‘[-0.07,0.07]’。

Reward:

目标是尽可能快地到达放置在正确的山顶上的旗帜,因此代理在每个时间步中都会受到-1的奖励。

Starting State:

汽车的位置在*[-0.6,-0.4]*中被分配一个均匀的随机值。
汽车的起始速度总是被赋值为0。

Episode End:

如果发生以下任何一种情况,本集结束:
1. 终止:车的位置大于等于0.5(目标在右坡上的位置)
2. 截断:这一集的长度是200。

Arguments:

Mountain Car有两个gym参数。用‘ render_mode ’和‘ goal_velocity ’制作'。
在重置时,‘ options ’参数允许用户更改用于确定新随机状态的边界。

更多推荐