IniziaInizia gratis

Implementare la regola di aggiornamento SARSA

SARSA è un algoritmo on-policy nell'RL che aggiorna la funzione valore-azione in base all'azione effettuata e all'azione selezionata nello stato successivo. Questo metodo aiuta a imparare il valore non solo della coppia stato-azione corrente ma anche di quella successiva, permettendo di apprendere politiche che considerano le azioni future. Di seguito trovi la regola di aggiornamento di SARSA: il tuo compito è implementare una funzione che aggiorni una Q-table seguendo questa regola.

La libreria NumPy è stata importata come np.

Image showing the mathematical formula of the SARSA update rule.

Questo esercizio fa parte del corso

Reinforcement Learning con Gymnasium in Python

Visualizza il corso

Istruzioni dell'esercizio

  • Recupera il valore Q corrente per la coppia stato-azione indicata.
  • Trova il valore Q per la coppia stato-azione successiva.
  • Aggiorna il valore Q della coppia stato-azione corrente usando la formula SARSA.
  • Aggiorna la Q-table Q, sapendo che un agente esegue l'azione 0 nello stato 0, riceve una ricompensa di 5, passa allo stato 1 ed esegue l'azione 1.

Esercizio pratico interattivo

Prova a risolvere questo esercizio completando il codice di esempio.

def update_q_table(state, action, reward, next_state, next_action):
  	# Get the old value of the current state-action pair
    old_value = ____
    # Get the value of the next state-action pair
    next_value = ____
    # Compute the new value of the current state-action pair
    Q[(state, action)] = ____

alpha = 0.1
gamma  = 0.8
Q = np.array([[10,0],[0,20]], dtype='float32')
# Update the Q-table for the ('state1', 'action1') pair
____
print(Q)
Modifica ed esegui il codice