Cập nhật một giá trị Q (Q-learning)
Q-learning cập nhật giá trị hành động theo sai lệch thời gian:
Tiến độ của tôi ở bài này
Điểm và code bạn nộp được lưu vào tài khoản sau khi chấm bài.
Đang tải điểm của bạn…
Kiến thức và chủ đề
Kiến thức tiên quyết: python-basics, ai-action-value.
Nội dung đề bài
Mô tả bài toán
Q-learning cập nhật giá trị hành động theo sai lệch thời gian: Q <- Q + alpha * (r + gamma * max Q' - Q). Khi trạng thái kế là kết thúc (done), ta không bootstrap giá trị tương lai và mục tiêu chỉ còn phần thưởng r.
Yêu cầu
Viết hàm q_update(q, reward, gamma, max_next_q, alpha, done=False) trả về giá trị Q mới.
Quy ước nộp bài
Nộp hàm q_update trong solution.py. Hệ thống gọi hàm trực tiếp và so với sai số 1e-6; không đọc stdin và không in ra stdout.
Input
- q: giá trị Q(s, a) hiện tại.
- reward: phần thưởng nhận được r.
- gamma: hệ số chiết khấu.
- max_next_q: max_a Q(s', a) của trạng thái kế.
- alpha: tốc độ học trong [0, 1].
- done: True nếu trạng thái kế là kết thúc (mặc định False).
Output
Một số thực là Q mới.
Ràng buộc
- alpha phải trong [0, 1]; nếu không, ném ValueError.
- Khi done = True, mục tiêu chỉ là reward, không cộng gamma * max_next_q.
Ví dụ 1
Input
q_update(q=1.0, reward=1.0, gamma=0.9, max_next_q=2.0, alpha=0.5)
Output
1.9
Ví dụ 2
Input
q_update(q=0.0, reward=5.0, gamma=0.5, max_next_q=0.0, alpha=1.0)
Output
5.0
Giải thích
Với q = 1, reward = 1, gamma = 0.9, max_next_q = 2, alpha = 0.5: mục tiêu = 1 + 0.9 * 2 = 2.8, Q mới = 1 + 0.5 * (2.8 - 1) = 1.9.
Gợi ý và lời giải chỉ mở sau khi bạn bấm Nộp bài. Giáo viên và quản trị viên mở được ngay.
Góp ý & báo lỗi bài tập
Đề bài chưa rõ, test có vấn đề hay bạn có ý tưởng giúp bài tốt hơn? Gửi cho đội ngũ AI Empire nhé — mỗi góp ý đều được đọc.
