Реализация метода Монте-Карло с первым посещением
Цель алгоритмов Монте-Карло — оценить Q-таблицу, чтобы на её основе вывести оптимальную политику. В этом упражнении вы реализуете метод Монте-Карло с первым посещением для оценки функции ценности действий Q, а затем вычислите оптимальную политику для пользовательской среды из предыдущего упражнения. При вычислении доходности используйте коэффициент дисконтирования, равный 1.
Массивы numpy — Q, returns_sum и returns_count — хранят Q-значения, накопленную сумму наград и количество посещений для каждой пары «состояние–действие» соответственно. Они уже инициализированы и предварительно загружены для вас.
Это упражнение является частью курса
Обучение с подкреплением с 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())