IniziaInizia gratis

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

Visualizza il corso

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_V e la policy in base a max_action e max_q_value.
  • Verifica la convergenza controllando che la differenza tra new_v e V per ogni stato sia inferiore a threshold.

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)
Modifica ed esegui il codice