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

Это упражнение является частью курса
Обучение с подкреплением с Gymnasium на Python
Инструкции к упражнению
- Получите текущее Q-значение для заданной пары «состояние — действие».
- Определите максимальное Q-значение для следующего состояния по всем возможным действиям в
actions. - Обновите Q-значение для текущей пары «состояние — действие» по формуле Q-обучения.
- Обновите Q-таблицу
Q, при условии что агент выполняет действие0в состоянии0, получает вознаграждение5и переходит в состояние1.
Интерактивное практическое упражнение
Попробуйте выполнить это упражнение, дополнив этот пример кода.
actions = ['action1', 'action2']
def update_q_table(state, action, reward, next_state):
# Get the old value of the current state-action pair
old_value = ____
# Determine the maximum Q-value for the next state
next_max = ____
# Compute the new value of the current state-action pair
Q[state, action] = ____
alpha = 0.1
gamma = 0.95
Q = np.array([[10, 8], [20, 15]], dtype='float32')
# Update the Q-table
____
print(Q)