Реалізація ітерації значень
Ітерація значень — це ключовий метод у 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)