Implementare Monte Carlo a prima visita
L'obiettivo degli algoritmi Monte Carlo è stimare la Q-table per ricavare una policy ottimale. In questo esercizio, implementerai il metodo Monte Carlo a prima visita per stimare la funzione valore-azione Q e poi calcolare la policy ottimale per risolvere l'ambiente personalizzato che hai visto nell'esercizio precedente. Quando calcoli il ritorno, assumi un fattore di sconto pari a 1.
Gli array numpy Q, returns_sum e returns_count, che memorizzano rispettivamente i valori Q, la somma cumulativa delle ricompense e il numero di visite per ogni coppia stato-azione, sono già stati inizializzati e precaricati per te.
Questo esercizio fa parte del corso
Reinforcement Learning con Gymnasium in Python
Istruzioni dell'esercizio
- Definisci la condizione
ifda verificare nell'algoritmo Monte Carlo a prima visita. - Aggiorna i ritorni (
returns_sum), i loro conteggi (returns_count) evisited_states.
Esercizio pratico interattivo
Prova a risolvere questo esercizio completando il codice di esempio.
for i in range(100):
episode = generate_episode()
visited_states = set()
for j, (state, action, reward) in enumerate(episode):
# Define the first-visit condition
if ____ not in ____:
# Update the returns, their counts and the visited states
returns_sum[state, action] += ____([____ for ____ in ____])
returns_count[state, action] += ____
visited_states.____(____)
nonzero_counts = returns_count != 0
Q[nonzero_counts] = returns_sum[nonzero_counts] / returns_count[nonzero_counts]
render_policy(get_policy())