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.

Questo esercizio fa parte del corso
Reinforcement Learning con Gymnasium in Python
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’azione0nello stato0, riceve una ricompensa di5e si sposta allo stato1.
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)