Реалізація Монте-Карло першого відвідування
Мета алгоритмів Монте-Карло — оцінити Q-таблицю, щоб вивести оптимальну політику. У цій вправі ви реалізуєте метод Монте-Карло першого відвідування для оцінювання функції цінності дій Q, а потім обчислите оптимальну політику, щоб розв'язати спеціальне середовище, з яким ви вже працювали у попередній вправі. Під час обчислення повернення припускайте коефіцієнт дисконтування, що дорівнює 1.
Масиви numpy Q, returns_sum та returns_count, які зберігають відповідно Q-значення, накопичену суму винагород і кількість відвідувань для кожної пари „стан–дія", уже ініціалізовано та попередньо завантажено для вас.
Ця вправа є частиною курсу
Reinforcement Learning з Gymnasium у Python
Інструкції до вправи
- Визначте умову
if, яку слід перевіряти в алгоритмі Монте-Карло першого відвідування. - Оновіть повернення (
returns_sum), їхню кількість (returns_count) таvisited_states.
Інтерактивна практична вправа
Спробуйте виконати цю вправу, доповнивши цей зразок коду.
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())