IniziaInizia gratis

Implementare la regola di aggiornamento del Q-learning

Il Q-learning è un algoritmo off-policy nel reinforcement learning (RL) che cerca la migliore azione da compiere dato lo stato attuale. A differenza di SARSA, che considera la prossima azione effettivamente eseguita, il Q-learning aggiorna i suoi valori Q usando il massimo premio futuro indipendentemente dall’azione intrapresa. Questa differenza permette al Q-learning di apprendere la politica ottimale pur seguendo una politica esplorativa o persino casuale. Ecco il compito: implementare una funzione che aggiorni una Q-table in base alla regola del Q-learning. Qui sotto trovi la regola di aggiornamento del Q-learning; il tuo compito è implementare una funzione che aggiorni la Q-table seguendo questa regola.

La libreria NumPy è stata importata come np.

Image showing the mathematical formula of the Q-learning update rule.

Questo esercizio fa parte del corso

Reinforcement Learning con Gymnasium in Python

Visualizza il corso

Istruzioni dell'esercizio

  • Recupera l’attuale valore Q per la coppia stato-azione fornita.
  • Determina il valore Q massimo per lo stato successivo tra tutte le azioni possibili in actions.
  • Aggiorna il valore Q per la coppia stato-azione corrente usando la formula del Q-learning.
  • Aggiorna la Q-table Q, dato che un agente esegue l’azione 0 nello stato 0, riceve una ricompensa di 5 e si sposta allo stato 1.

Esercizio pratico interattivo

Prova a risolvere questo esercizio completando il codice di esempio.

actions = ['action1', 'action2'] 
def update_q_table(state, action, reward, next_state):
  	# Get the old value of the current state-action pair
    old_value = ____
    # Determine the maximum Q-value for the next state
    next_max = ____
    # Compute the new value of the current state-action pair
    Q[state, action] = ____

alpha = 0.1
gamma = 0.95
Q = np.array([[10, 8], [20, 15]], dtype='float32')
# Update the Q-table
____
print(Q)
Modifica ed esegui il codice