懸崖尋路¶
此環境屬於玩具文字環境,其中包含關於環境的一般資訊。
動作空間 |
|
觀測空間 |
|
匯入 |
|
懸崖尋路涉及穿過一個網格世界,從起點到達目標,同時避免掉下懸崖。
描述¶
遊戲開始時,玩家位於 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: 初始版本釋出