Kom igångKom igång gratis

Implementera värdesiteration

Värdesiteration är en central metod inom RL för att hitta den optimala policyn. Metoden förbättrar iterativt värdefunktionen för varje tillstånd tills den konvergerar, vilket leder till att den optimala policyn kan fastställas. Du börjar med en initierad värdefunktion V och policy, båda förladdade åt dig. Sedan uppdaterar du dem i en loop tills värdefunktionen konvergerar och ser policyn i praktiken.

Funktionen get_max_action_and_value(state, V) är förladdad åt dig.

Den här övningen är en del av kursen

Reinforcement Learning med Gymnasium i Python

Visa kurs

Övningsinstruktioner

  • För varje tillstånd, hitta den åtgärd som har det högsta Q-värdet (max_action) och dess motsvarande värde (max_q_value).
  • Uppdatera ordlistan new_V och policy baserat på max_action och max_q_value.
  • Kontrollera konvergens genom att kontrollera om skillnaden mellan new_v och V för varje tillstånd är mindre än threshold.

Interaktiv övning med praktiskt arbete

Testa den här övningen genom att slutföra den här exempelkoden.

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)
Redigera och kör kod