連續山地車¶
此環境屬於經典控制環境的一部分,其中包含有關環境的一般資訊。
動作空間 |
|
觀測空間 |
|
匯入 |
|
描述¶
山地車 MDP 是一個確定性 MDP,其中一輛汽車隨機放置在正弦波谷的底部,唯一可能的動作是沿任一方向施加到汽車上的加速度。MDP 的目標是策略性地加速汽車,使其到達右側山頂上的目標狀態。Gymnasium 中山地車領域有兩個版本:一個具有離散動作,另一個具有連續動作。此版本是具有連續動作的版本。
此 MDP 最初出現在 Andrew Moore 的博士論文 (1990) 中
@TECHREPORT{Moore90efficientmemory-based,
author = {Andrew William Moore},
title = {Efficient Memory-based Learning for Robot Control},
institution = {University of Cambridge},
year = {1990}
}
觀測空間¶
觀測值是一個形狀為 (2,) 的 ndarray,其中元素對應如下
編號 |
觀測 |
最小值 |
最大值 |
單位 |
|---|---|---|---|---|
0 |
汽車沿 x 軸的位置 |
-1.2 |
0.6 |
位置 (米) |
1 |
汽車的速度 |
-0.07 |
0.07 |
速度 (v) |
動作空間¶
動作是一個形狀為 (1,) 的 ndarray,表示施加在汽車上的方向力。動作被截斷在 [-1,1] 範圍內,並乘以 0.0015 的功率。
轉移動力學:¶
給定一個動作,山地車遵循以下轉移動力學
速度t+1 = 速度t + 力 * self.power - 0.0025 * cos(3 * 位置t)
位置t+1 = 位置t + 速度t+1
其中力是截斷在 [-1,1] 範圍內的動作,功率是常數 0.0015。兩端的碰撞是非彈性的,與牆壁碰撞後速度設為 0。位置被截斷在 [-1.2, 0.6] 範圍內,速度被截斷在 [-0.07, 0.07] 範圍內。
獎勵¶
每個時間步都會收到一個 -0.1 * 動作2 的負獎勵,以懲罰採取大幅度動作。如果山地車到達目標,則該時間步的負獎勵會增加 +100 的正獎勵。
初始狀態¶
汽車的位置被賦予 [-0.6 , -0.4] 範圍內的一個均勻隨機值。汽車的初始速度始終設為 0。
劇集結束¶
如果發生以下任一情況,劇集結束
終止:汽車的位置大於或等於 0.45(右側山頂上的目標位置)
截斷:劇集長度為 999。
引數¶
連續山地車有兩個 gymnasium.make 引數:render_mode 和 goal_velocity。在重置時,options 引數允許使用者更改用於確定新隨機狀態的邊界。
>>> import gymnasium as gym
>>> env = gym.make("MountainCarContinuous-v0", render_mode="rgb_array", goal_velocity=0.1) # default goal_velocity=0
>>> env
<TimeLimit<OrderEnforcing<PassiveEnvChecker<Continuous_MountainCarEnv<MountainCarContinuous-v0>>>>>
>>> env.reset(seed=123, options={"low": -0.7, "high": -0.5}) # default low=-0.6, high=-0.4
(array([-0.5635296, 0. ], dtype=float32), {})
版本歷史¶
v0:初始版本釋出