Cài đặt quy tắc cập nhật Q-learning
Q-learning là một thuật toán off-policy trong reinforcement learning (RL) nhằm tìm hành động tốt nhất cần thực hiện tại trạng thái hiện tại. Khác với SARSA, vốn xét đến hành động tiếp theo thực sự được thực hiện, Q-learning cập nhật các giá trị Q bằng phần thưởng tương lai lớn nhất, không phụ thuộc vào hành động đã chọn. Sự khác biệt này cho phép Q-learning học được chính sách tối ưu ngay cả khi đang theo một chính sách khám phá, thậm chí ngẫu nhiên. Nhiệm vụ của bạn là cài đặt một hàm cập nhật Q-table theo quy tắc Q-learning dưới đây.
Thư viện NumPy đã được nhập với bí danh np.

Bài tập này là một phần của khóa học
Reinforcement Learning với Gymnasium trong Python
Hướng dẫn bài tập
- Lấy giá trị Q hiện tại cho cặp trạng thái–hành động đã cho.
- Xác định giá trị Q lớn nhất cho trạng thái tiếp theo trên tất cả các hành động khả dĩ trong
actions. - Cập nhật giá trị Q cho cặp trạng thái–hành động hiện tại bằng công thức Q-learning.
- Cập nhật Q-table
Q, giả sử agent thực hiện hành động0ở trạng thái0, nhận phần thưởng5, và chuyển sang trạng thái1.
Bài tập tương tác thực hành trực tiếp
Hãy thử làm bài tập này bằng cách hoàn thành đoạn mã mẫu này.
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)