Aan de slagGa gratis aan de slag

Value-iteratie implementeren

Value-iteratie is een kernmethode in RL om het optimale beleid te vinden. Je verbetert iteratief de waarde­functie voor elke toestand totdat deze convergeert, waardoor je het optimale beleid ontdekt. Je begint met een geïnitialiseerde waardefunctie V en policy, allebei al voor je geladen. Daarna werk je ze bij in een lus totdat de waardefunctie convergeert en zie je het beleid in actie.

De functie get_max_action_and_value(state, V) is alvast voor je geladen.

Deze oefening maakt deel uit van de cursus

Reinforcement Learning met Gymnasium in Python

Cursus bekijken

Oefeninstructies

  • Zoek voor elke toestand de actie met de maximale Q-waarde (max_action) en de bijbehorende waarde (max_q_value).
  • Werk het new_V-woordenboek en de policy bij op basis van max_action en max_q_value.
  • Controleer op convergentie door na te gaan of het verschil tussen new_v en V voor elke toestand kleiner is dan threshold.

Praktische interactieve oefening

Probeer deze oefening eens door deze voorbeeldcode in te vullen.

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)
Code bewerken en uitvoeren