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

Реалізація правила оновлення SARSA

SARSA — це on-policy алгоритм у RL, який оновлює функцію значень дій на основі виконаної дії та дії, обраної в наступному стані. Цей метод допомагає навчитися оцінювати не лише поточну пару «стан–дія», а й наступну, що дає змогу вивчати політики, які враховують майбутні дії. Нижче наведено правило оновлення SARSA, а ваше завдання — реалізувати функцію, яка оновлює Q-таблицю за цим правилом.

Бібліотеку NumPy імпортовано для вас як np.

Image showing the mathematical formula of the SARSA update rule.

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

Reinforcement Learning з Gymnasium у Python

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

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

  • Отримайте поточне значення Q для заданої пари «стан–дія».
  • Знайдіть значення Q для наступної пари «стан–дія».
  • Оновіть значення Q для поточної пари «стан–дія» за формулою SARSA.
  • Оновіть Q-таблицю Q, враховуючи, що агент виконує дію 0 у стані 0, отримує винагороду 5, переходить у стан 1 і виконує дію 1.

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

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

def update_q_table(state, action, reward, next_state, next_action):
  	# Get the old value of the current state-action pair
    old_value = ____
    # Get the value of the next state-action pair
    next_value = ____
    # Compute the new value of the current state-action pair
    Q[(state, action)] = ____

alpha = 0.1
gamma  = 0.8
Q = np.array([[10,0],[0,20]], dtype='float32')
# Update the Q-table for the ('state1', 'action1') pair
____
print(Q)
Редагувати та запускати код