Value-iteratie implementeren
Value-iteratie is een kernmethode in RL om het optimale beleid te vinden. Je verbetert iteratief de waardefunctie 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
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 depolicybij op basis vanmax_actionenmax_q_value. - Controleer op convergentie door na te gaan of het verschil tussen
new_venVvoor elke toestand kleiner is danthreshold.
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)