Cài đặt Monte Carlo lần đầu ghé thăm
Mục tiêu của các thuật toán Monte Carlo là ước lượng Q-table để suy ra một chính sách tối ưu. Trong bài tập này, bạn sẽ cài đặt phương pháp Monte Carlo lần đầu ghé thăm để ước lượng hàm giá trị hành động Q, sau đó tính chính sách tối ưu để giải bài toán trong môi trường tùy biến bạn đã thấy ở bài trước. Khi tính return, giả sử hệ số chiết khấu bằng 1.
Các mảng numpy Q, returns_sum và returns_count, lần lượt lưu trữ các Q-value, tổng phần thưởng tích lũy và số lần ghé thăm cho mỗi cặp trạng thái–hành động, đã được khởi tạo và nạp sẵn cho bạn.
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
- Xác định điều kiện
ifcần kiểm tra trong thuật toán Monte Carlo lần đầu ghé thăm. - Cập nhật các return (
returns_sum), số đếm của chúng (returns_count) vàvisited_states.
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.
for i in range(100):
episode = generate_episode()
visited_states = set()
for j, (state, action, reward) in enumerate(episode):
# Define the first-visit condition
if ____ not in ____:
# Update the returns, their counts and the visited states
returns_sum[state, action] += ____([____ for ____ in ____])
returns_count[state, action] += ____
visited_states.____(____)
nonzero_counts = returns_count != 0
Q[nonzero_counts] = returns_sum[nonzero_counts] / returns_count[nonzero_counts]
render_policy(get_policy())