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

Ця вправа є частиною курсу
Reinforcement Learning з Gymnasium у Python
Інструкції до вправи
- Отримайте поточне Q-значення для заданої пари «стан-дія».
- Визначте максимальне Q-значення для наступного стану серед усіх можливих дій у
actions. - Оновіть Q-значення для поточної пари «стан-дія» за формулою Q-learning.
- Оновіть 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)