ПочатиПочніть безкоштовно

Реалізація ітерації значень

Ітерація значень — це ключовий метод у RL для знаходження оптимальної політики. Вона поетапно покращує функцію цінності для кожного стану, доки та не збіжиться, і в результаті дає оптимальну політику. Ви почнете з ініціалізованих функції цінності V і policy, які вже завантажено для вас. Потім оновлюватимете їх у циклі, доки функція цінності не збіжиться, і побачите роботу політики на практиці.

Функцію get_max_action_and_value(state, V) уже попередньо завантажено для вас.

Ця вправа є частиною курсу

Reinforcement Learning з Gymnasium у Python

Переглянути курс

Інструкції до вправи

  • Для кожного стану знайдіть дію з максимальною Q-цінністю (max_action) і відповідне значення (max_q_value).
  • Оновіть словник new_V і policy на основі max_action і max_q_value.
  • Перевірте збіжність, переконавшись, що різниця між new_v і V для кожного стану менша за threshold.

Інтерактивна практична вправа

Спробуйте виконати цю вправу, доповнивши цей зразок коду.

threshold = 0.001
while True:
  new_V = {}
  for state in range(num_states-1):
    # Get action with maximum Q-value and its value 
    max_action, max_q_value = ____
    # Update the value function and policy
    new_V[state] = ____
    policy[state] = ____
  # Test if change in state values is negligeable
  if all(abs(____ - ____) < ____ for state in ____):
    break
  V = new_V
render_policy(policy)
Редагувати та запускати код