悬崖寻路¶

此环境属于玩具文本环境,其中包含关于环境的一般信息。
动作空间 |
|
观测空间 |
|
导入 |
|
悬崖寻路涉及穿过一个网格世界,从起点到达目标,同时避免掉下悬崖。
描述¶
游戏开始时,玩家位于 4x12 网格世界的 [3, 0] 位置,目标位于 [3, 11]。如果玩家到达目标,回合结束。
悬崖位于 [3, 1..10] 区域。如果玩家移动到悬崖位置,将返回起始位置。
玩家持续移动直到达到目标。
改编自 Sutton 和 Barto 的《强化学习:导论》例 6.6 (第 132 页) [1]。
悬崖可以选择为湿滑(默认禁用),因此玩家有时可能会垂直于预期方向移动(参见 is_slippery
)。
灵感来源:https://github.com/dennybritz/reinforcement-learning/blob/master/lib/envs/cliff_walking.py
动作空间¶
动作形状为 (1,)
,范围在 {0, 3}
之间,表示玩家移动的方向。
0: 向上移动
1: 向右移动
2: 向下移动
3: 向左移动
观测空间¶
共有 3 x 12 + 1 种可能的状体。玩家不能处于悬崖处,也不能处于目标处,因为后者会导致回合结束。剩余的是前 3 行的所有位置加上左下角的单元格。
观测值是一个表示玩家当前位置的值,计算方式为 current_row * ncols + current_col(其中行和列都从 0 开始)。
例如,起始位置可以这样计算:3 * 12 + 0 = 36。
观测值以 int()
类型返回。
起始状态¶
回合开始时,玩家处于状态 [36]
(位置 [3, 0])。
奖励¶
每个时间步奖励为 -1,除非玩家踏入悬崖,此时奖励为 -100。
回合结束¶
当玩家进入状态 [47]
(位置 [3, 11]) 时,回合终止。
信息¶
step()
和 reset()
返回一个包含以下键的字典
“p” - 状态的转移概率。
由于悬崖寻路不是随机的,返回的转移概率始终为 1.0。
参数¶
import gymnasium as gym
gym.make('CliffWalking-v1')
参考文献¶
[1] R. Sutton 和 A. Barto,《强化学习:导论》2020。[在线]。获取地址:http://www.incompleteideas.net/book/RLbook2020.pdf
版本历史¶
v1: 添加湿滑版本悬崖寻路
v0: 初始版本发布