開始使用免費開始

套用 Expected SARSA

現在你要在一個自訂環境中套用 Expected SARSA 演算法,如下圖所示。目標是讓代理在格狀地圖中前進,盡快抵達目標。規則與先前相同:代理到達鑽石時獲得 +10 獎勵,穿越山脈時為 -2,其餘每個狀態為 -1。

new_cust_env.png

此環境已匯入為 env

本練習屬於課程

使用 Python 的 Gymnasium 進行強化學習

檢視課程

練習說明

  • 以 0 為每個「狀態-動作」組合初始化 Q-table Q
  • 使用 update_q_table() 函式更新 Q-table。
  • 從訓練後的 Q-table 萃取出 policy,並以字典形式表示。

動手互動練習

試著完成這個範例程式碼,體驗一下這個練習。

# Initialize the Q-table with random values
Q = ____
for i_episode in range(num_episodes):
    state, info = env.reset()    
    done = False    
    while not done: 
        action = env.action_space.sample()               
        next_state, reward, done, truncated, info = env.step(action)
        # Update the Q-table
        ____
        state = next_state
# Derive policy from Q-table        
policy = {state: ____ for state in range(____)}
render_policy(policy)
編輯並執行程式碼