เริ่มต้นใช้งานเริ่มต้นใช้งานได้ฟรี

แก้ปัญหา Frozen Lake ขนาด 8x8 ด้วย Q-learning

ในแบบฝึกหัดนี้ จะได้นำอัลกอริทึม Q-learning มาใช้เพื่อเรียนรู้นโยบายที่เหมาะสมสำหรับการนำทางในสภาพแวดล้อม Frozen Lake ขนาด 8x8 โดยเปิดใช้งานเงื่อนไข "slippery" ซึ่งทำให้การเคลื่อนที่ของ agent เป็นแบบสุ่ม ไม่สามารถคาดเดาได้ จึงจำลองสถานการณ์ที่ใกล้เคียงกับโลกความเป็นจริงมากขึ้น

มีการกำหนดค่าเริ่มต้นและโหลด Q-table Q ไว้ให้แล้ว พร้อมกับฟังก์ชัน update_q_table() จากแบบฝึกหัดก่อนหน้า และลิสต์ว่าง rewards_per_episode สำหรับเก็บผลรวมของ reward ที่สะสมในแต่ละ episode

แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร

Reinforcement Learning with Gymnasium ใน Python

ดูคอร์ส

คำแนะนำการฝึกหัด

  • ในแต่ละ episode ให้รัน action ที่เลือกและสังเกต reward กับ next state
  • อัปเดต Q-table
  • เพิ่ม total_reward เข้าไปในลิสต์ rewards_per_episode

แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ

ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์

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))
แก้ไขและรันโค้ด