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

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

Xem khóa học

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_reward vào danh sách rewards_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))
Chỉnh sửa và Chạy Mã