懸崖漫步¶

此環境是玩具文字環境的一部分,其中包含關於環境的一般資訊。
動作空間 |
|
觀察空間 |
|
import |
|
懸崖漫步涉及穿越網格世界,從起點到終點,同時避免掉下懸崖。
描述¶
遊戲開始時,玩家位於 4x12 網格世界的 [3, 0] 位置,目標位於 [3, 11]。如果玩家到達目標,則回合結束。
懸崖沿著 [3, 1..10] 延伸。如果玩家移動到懸崖位置,它會返回起始位置。
玩家持續移動直到他們到達目標。
改編自 Sutton 和 Barto 的《Reinforcement Learning: An Introduction》範例 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,“Reinforcement Learning: An Introduction” 2020。[線上]。可於:http://www.incompleteideas.net/book/RLbook2020.pdf
版本歷史¶
v1:新增懸崖漫步的滑溜版本
v0:初始版本發佈