Quy tắc cập nhật Expected SARSA
Trong bài tập này, bạn sẽ hiện thực quy tắc cập nhật Expected SARSA, một thuật toán model-free RL dựa trên sai khác theo thời gian (temporal difference). Expected SARSA ước lượng giá trị kỳ vọng của chính sách hiện tại bằng cách lấy trung bình trên tất cả các hành động có thể, nhờ đó cung cấp mục tiêu cập nhật ổn định hơn so với SARSA. Các công thức dùng trong Expected SARSA được hiển thị bên dưới.

Thư viện numpy đã được import với tên 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
- Tính Q-value kỳ vọng cho
next_state. - Cập nhật Q-value cho
statevàactionhiện tại bằng công thức Expected SARSA. - Cập nhật Q-table
Qgiả sử tác tử thực hiện hành động1ở trạng thái2và chuyển sang trạng thái3, nhận phần thưởng là5.
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.
def update_q_table(state, action, next_state, reward):
# Calculate the expected Q-value for the next state
expected_q = ____
# Update the Q-value for the current state and action
Q[state, action] = ____
Q = np.random.rand(5, 2)
print("Old Q:\n", Q)
alpha = 0.1
gamma = 0.99
# Update the Q-table
update_q_table(____, ____, ____, ____)
print("Updated Q:\n", Q)