НачатьНачать бесплатно

Реализация метода Монте-Карло с первым посещением

Цель алгоритмов Монте-Карло — оценить Q-таблицу, чтобы на её основе вывести оптимальную политику. В этом упражнении вы реализуете метод Монте-Карло с первым посещением для оценки функции ценности действий Q, а затем вычислите оптимальную политику для пользовательской среды из предыдущего упражнения. При вычислении доходности используйте коэффициент дисконтирования, равный 1.

Массивы numpyQ, 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())
Редактировать и запускать код