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

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

SARSA — это алгоритм обучения с подкреплением на основе текущей политики (on-policy). Он обновляет функцию ценности действий с учётом как текущего действия, так и действия, выбранного в следующем состоянии. Такой подход позволяет оценивать не только текущую пару «состояние — действие», но и последующую, что даёт возможность обучать политики, принимающие во внимание будущие действия. Ниже приведено правило обновления SARSA. Ваша задача — реализовать функцию, которая обновляет Q-таблицу в соответствии с этим правилом.

Библиотека NumPy уже импортирована как np.

Image showing the mathematical formula of the SARSA update rule.

Это упражнение является частью курса

Обучение с подкреплением с 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)
Редактировать и запускать код