Implementace first-visit Monte Carlo
Cílem algoritmů Monte Carlo je odhadnout Q-tabulku a na jejím základě odvodit optimální politiku. V tomto cvičení implementuješ metodu First-Visit Monte Carlo pro odhad funkce hodnoty akcí Q a pak vypočítáš optimální politiku pro vlastní prostředí z předchozího cvičení. Při výpočtu výnosu předpokládej diskontní faktor rovný 1.
Pole numpy — Q, returns_sum a returns_count — uchovávají Q-hodnoty, kumulativní součet odměn a počet návštěv pro každý pár stav–akce. Jsou pro tebe již inicializována a připravena k použití.
Toto cvičení je součástí kurzu
Reinforcement Learning with Gymnasium in Python
Pokyny k cvičení
- Definuj podmínku
if, která se má testovat v algoritmu first-visit Monte Carlo. - Aktualizuj výnosy (
returns_sum), jejich počty (returns_count) a proměnnouvisited_states.
Interaktivní cvičení na vyzkoušení si v praxi
Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.
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())