開始使用免費開始

實作首次訪問 Monte Carlo

Monte Carlo 演算法的目標是估計 Q-table,從而導出最適策略。本練習中,你將實作「首次訪問 Monte Carlo」方法以估計動作-價值函式 Q,接著計算最適策略來解決你在前一個練習中看過的自訂環境。計算回報時,請假設折扣因子為 1。

已為你初始化並預先載入 numpy 陣列 Qreturns_sumreturns_count,分別用來儲存 Q 值、獎勵的累積總和,以及各狀態-動作組合的造訪次數。

本練習屬於課程

使用 Python 的 Gymnasium 進行強化學習

檢視課程

練習說明

  • 定義首次訪問 Monte Carlo 演算法中需要檢查的 if 條件。
  • 更新回報(returns_sum)、其計數(returns_count)以及 visited_states

動手互動練習

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

for i in range(100):
  episode = generate_episode()
  visited_states = set()
  for j, (state, action, reward) in enumerate(episode):
    # Define the first-visit condition
    if ____ not in ____:
      # Update the returns, their counts and the visited states
      returns_sum[state, action] += ____([____ for ____ in ____])
      returns_count[state, action] += ____
      visited_states.____(____)

nonzero_counts = returns_count != 0

Q[nonzero_counts] = returns_sum[nonzero_counts] / returns_count[nonzero_counts]
render_policy(get_policy())
編輯並執行程式碼