Giải bài toán Frozen Lake 8x8 với Q-learning
Trong bài tập này, bạn sẽ áp dụng thuật toán Q-learning để học một chính sách tối ưu nhằm di chuyển trong môi trường Frozen Lake 8x8, lần này với điều kiện "trơn trượt" được bật. Thử thách này đưa vào các chuyển trạng thái ngẫu nhiên, khiến chuyển động của tác tử khó đoán hơn và mô phỏng sát thực tế hơn.
Một Q-table Q đã được khởi tạo và nạp sẵn cho bạn, cùng với hàm update_q_table() từ bài trước và một danh sách rỗng rewards_per_episode sẽ chứa tổng phần thưởng tích lũy qua mỗi tập (episode).
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
- Với mỗi tập (episode), thực thi hành động đã chọn và quan sát phần thưởng cùng trạng thái tiếp theo.
- Cập nhật Q-table.
- Thêm
total_rewardvào danh sáchrewards_per_episode.
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 episode in range(10000):
state, info = env.reset()
total_reward = 0
terminated = False
while not terminated:
action = env.action_space.sample()
# Execute the action
next_state, reward, terminated, truncated, info = ____
# Update the Q-table
____
state = next_state
total_reward += reward
# Append the total reward to the rewards list
rewards_per_episode.____(____)
print("Average reward per random episode: ", np.mean(rewards_per_episode))