Frozen Lake (冷凍湖)¶

此環境是 Toy Text (玩具文字) 環境的一部分,其中包含關於環境的通用資訊。
動作空間 |
|
觀察空間 |
|
import (導入) |
|
Frozen Lake (冷凍湖) 涉及穿越冷凍湖從起點到終點,同時避免掉入冰洞。由於冷凍湖的滑溜特性,玩家可能不會總是朝預期的方向移動。
Description (描述)¶
遊戲開始時,玩家位於冷凍湖網格世界的 [0,0] 位置,目標位於世界的遠端,例如 4x4 環境的 [3,3]。
當使用預先確定的地圖時,冰洞分佈在設定的位置;當生成隨機地圖時,冰洞則分佈在隨機位置。
玩家持續移動直到抵達目標或掉入冰洞。
湖面是滑溜的(除非禁用),因此玩家有時可能會垂直於預期方向移動(請參閱 is_slippery
)。
隨機生成的世界將始終有一條通往目標的路徑。
Elf (精靈) 和 stool (凳子) 來自 https://franuka.itch.io/rpg-snow-tileset。所有其他素材由 Mel Tillery 提供 http://www.cyaneus.com/。
Action Space (動作空間)¶
動作形狀為 (1,)
,範圍在 {0, 3}
之間,表示玩家移動的方向。
0:向左移動
1:向下移動
2:向右移動
3:向上移動
Observation Space (觀察空間)¶
觀察值是一個代表玩家目前位置的值,計算方式為 current_row * ncols + current_col (其中 row 和 col 都從 0 開始)。
例如,4x4 地圖中的目標位置可以計算如下:3 * 4 + 3 = 15。可能的觀察數量取決於地圖的大小。
觀察值以 int()
形式回傳。
Starting State (起始狀態)¶
回合開始時,玩家位於狀態 [0]
(位置 [0, 0])。
Rewards (獎勵)¶
獎勵方案
抵達目標:+1
掉入冰洞:0
踩到冰面:0
Episode End (回合結束)¶
在以下情況下,回合會結束
Termination (終止)
玩家移動到冰洞中。
玩家抵達目標,位置在
max(nrow) * max(ncol) - 1
(位置[max(nrow)-1, max(ncol)-1]
)。
Truncation (截斷) (當使用 time_limit wrapper (時間限制封裝器) 時)
對於 4x4 環境,回合長度為 100;對於 FrozenLake8x8-v1 環境,回合長度為 200。
Information (資訊)¶
step()
和 reset()
回傳一個 dict (字典),包含以下鍵
p - 狀態的轉移機率。
有關轉移機率的資訊,請參閱 is_slippery
。
Arguments (參數)¶
import gymnasium as gym
gym.make('FrozenLake-v1', desc=None, map_name="4x4", is_slippery=True)
desc=None
:用於指定非預載地圖。
指定自訂地圖。
desc=["SFFF", "FHFH", "FFFH", "HFFG"].
圖塊字母表示
“S” 代表 Start tile (起點圖塊)
“G” 代表 Goal tile (目標圖塊)
“F” 代表 frozen tile (冷凍圖塊)
“H” 代表 tile with a hole (有冰洞的圖塊)
可以透過呼叫函數 generate_random_map
來指定隨機生成的地圖。
from gymnasium.envs.toy_text.frozen_lake import generate_random_map
gym.make('FrozenLake-v1', desc=generate_random_map(size=8))
map_name="4x4"
:ID 用於使用任何預載地圖。
"4x4":[
"SFFF",
"FHFH",
"FFFH",
"HFFG"
]
"8x8": [
"SFFFFFFF",
"FFFFFFFF",
"FFFHFFFF",
"FFFFFHFF",
"FFFHFFFF",
"FHHFFFHF",
"FHFFHFHF",
"FFFHFFFG",
]
如果 desc=None
,則將使用 map_name
。如果 desc
和 map_name
均為 None
,則將生成一個隨機的 8x8 地圖,其中 80% 的位置為冷凍。
is_slippery=True
:如果為 true,則玩家將以 1/3 的機率朝預期方向移動,否則將以相等的 1/3 機率朝任一垂直方向移動。
例如,如果動作是向左移動且 is_slippery 為 True,則
P(向左移動)=1/3
P(向上移動)=1/3
P(向下移動)=1/3
Version History (版本歷史)¶
v1:修復了獎勵的錯誤
v0:初始版本發布