Bắt đầu ngayBắt đầu miễn phí

Cài đặt quy tắc cập nhật SARSA

SARSA là một thuật toán on-policy trong RL, cập nhật hàm giá trị hành động dựa trên hành động đã thực hiện và hành động được chọn ở trạng thái kế tiếp. Cách này giúp học không chỉ giá trị của cặp trạng thái–hành động hiện tại mà còn của cặp liền sau, từ đó học được các chính sách tính đến những hành động tương lai. Quy tắc cập nhật SARSA được nêu bên dưới, và nhiệm vụ của bạn là cài đặt một hàm cập nhật Q-table dựa trên quy tắc này.

Thư viện NumPy đã được nhập sẵn với bí danh np.

Image showing the mathematical formula of the SARSA update rule.

Bài tập này là một phần của khóa học

Reinforcement Learning với Gymnasium trong Python

Xem khóa học

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 được cho.
  • Tìm giá trị Q cho cặp trạng thái–hành động kế tiếp.
  • 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 SARSA.
  • Cập nhật Q-table Q, giả sử tác tử thực hiện hành động 0 ở trạng thái 0, nhận phần thưởng 5, chuyển sang trạng thái 1, và thực hiện hành động 1.

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, 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)
Chỉnh sửa và Chạy Mã