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

การนำ Value Iteration ไปใช้งาน

Value iteration เป็นวิธีสำคัญใน RL สำหรับค้นหา policy ที่ดีที่สุด โดยปรับปรุง value function ของแต่ละ state ซ้ำๆ จนกว่าจะ converge และได้ optimal policy ในที่สุด โดยจะเริ่มต้นด้วย value function V และ policy ที่โหลดไว้ให้แล้ว จากนั้นอัปเดตค่าในลูปจนกว่า value function จะ converge แล้วดูผลลัพธ์ของ policy

ฟังก์ชัน get_max_action_and_value(state, V) ถูกโหลดไว้ให้แล้ว

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

Reinforcement Learning with Gymnasium ใน Python

ดูคอร์ส

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

  • สำหรับแต่ละ state ให้หา action ที่มี Q-value สูงสุด (max_action) พร้อมค่า (max_q_value) ที่สอดคล้องกัน
  • อัปเดต dictionary new_V และ policy โดยอิงจาก max_action และ max_q_value
  • ตรวจสอบการ converge โดยดูว่าผลต่างระหว่าง new_v กับ V ของทุก state นั้นน้อยกว่า threshold หรือไม่

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

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

threshold = 0.001
while True:
  new_V = {}
  for state in range(num_states-1):
    # Get action with maximum Q-value and its value 
    max_action, max_q_value = ____
    # Update the value function and policy
    new_V[state] = ____
    policy[state] = ____
  # Test if change in state values is negligeable
  if all(abs(____ - ____) < ____ for state in ____):
    break
  V = new_V
render_policy(policy)
แก้ไขและรันโค้ด