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

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