Inizia subitoInizia 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 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 interattivo pratico

Prova questo esercizio completando questo 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