Chọn hành động epsilon-greedy với một số ngẫu nhiên
Epsilon-greedy là cách cân bằng khám phá và khai thác trong học tăng cường: với xác suất
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
Epsilon-greedy là cách cân bằng khám phá và khai thác trong học tăng cường: với xác suất epsilon ta thử một hành động ngẫu nhiên, ngược lại ta chọn hành động có giá trị cao nhất. Trong bài này số ngẫu nhiên được cho sẵn để kết quả tất định và kiểm tra được.
Yêu cầu
Viết hàm epsilon_greedy_action(q_values, epsilon, u): nếu u < epsilon trả về chỉ số khám phá int(u * n) (với n = len(q_values)), ngược lại trả về chỉ số của giá trị lớn nhất (argmax, lấy chỉ số nhỏ nhất khi bằng nhau).
Quy ước nộp bài
Nộp hàm epsilon_greedy_action trong solution.py. Hệ thống gọi hàm trực tiếp và so kết quả với sai số 1e-6; không đọc stdin và không in ra stdout.
Input
- q_values: danh sách giá trị hành động, khác rỗng.
- epsilon: xác suất khám phá trong [0, 1].
- u: số ngẫu nhiên trong [0, 1).
Output
Một số nguyên là chỉ số hành động được chọn.
Ràng buộc
- q_values phải khác rỗng; nếu không, ném ValueError.
- argmax lấy chỉ số nhỏ nhất khi có nhiều giá trị lớn nhất bằng nhau.
- Chỉ dùng Python thuần, không cần thư viện ngoài.
Ví dụ 1
Input
epsilon_greedy_action(q_values=[1, 3, 2], epsilon=0.1, u=0.9)
Output
1
Ví dụ 2
Input
epsilon_greedy_action(q_values=[1, 3, 2], epsilon=0.6, u=0.2)
Output
0
Giải thích
Với q_values = [1, 3, 2], epsilon = 0.6, u = 0.2: vì 0.2 < 0.6 nên khám phá và trả về int(0.2 * 3) = 0.
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.
