開始使用免費開始

實作 value iteration

Value iteration 是在 RL 中用來尋找最佳策略的關鍵方法。它會反覆改進每個狀態的價值函式,直到收斂,從而得到最佳策略。你會從已初始化並為你預先載入的價值函式 Vpolicy 開始。接著,在迴圈中持續更新它們直到價值函式收斂,並觀察策略的實際表現。

get_max_action_and_value(state, V) 函式已為你預先載入。

本練習屬於課程

使用 Python 的 Gymnasium 進行強化學習

檢視課程

練習說明

  • 對每個狀態,找出具有最大 Q 值的動作(max_action)及其對應的值(max_q_value)。
  • 依據 max_actionmax_q_value 更新 new_V 字典與 policy
  • 透過檢查每個狀態中 new_vV 的差是否小於 threshold 來判斷是否收斂。

動手互動練習

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

threshold = 0.001
while True:
  new_V = {}
  for state in range(num_states-1):
    # Get action with maximum Q-value and its value 
    max_action, max_q_value = ____
    # Update the value function and policy
    new_V[state] = ____
    policy[state] = ____
  # Test if change in state values is negligeable
  if all(abs(____ - ____) < ____ for state in ____):
    break
  V = new_V
render_policy(policy)
編輯並執行程式碼