Implementare la value iteration
La value iteration è un metodo chiave nel RL per trovare la policy ottimale. Migliora iterativamente la funzione di valore di ogni stato fino alla convergenza, portando alla scoperta della policy ottimale. Partirai da una funzione di valore V e da una policy già inizializzate e pre-caricate. Poi le aggiornerai in un ciclo fino a quando la funzione di valore converge e vedrai la policy in azione.
La funzione get_max_action_and_value(state, V) è già stata caricata per te.
Questo esercizio fa parte del corso
Reinforcement Learning con Gymnasium in Python
Istruzioni dell'esercizio
- Per ogni stato, trova l'azione con il Q-value massimo (
max_action) e il relativo valore (max_q_value). - Aggiorna il dizionario
new_Ve lapolicyin base amax_actionemax_q_value. - Verifica la convergenza controllando che la differenza tra
new_veVper ogni stato sia inferiore athreshold.
Esercizio pratico interattivo
Prova a risolvere questo esercizio completando il codice di esempio.
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)