Triển khai value iteration
Value iteration là một phương pháp quan trọng trong RL để tìm chính sách tối ưu. Phương pháp này cải thiện dần hàm giá trị cho mỗi trạng thái cho đến khi hội tụ, từ đó tìm ra chính sách tối ưu. Bạn sẽ bắt đầu với hàm giá trị V và policy đã được khởi tạo sẵn. Sau đó, bạn sẽ cập nhật chúng trong một vòng lặp cho đến khi hàm giá trị hội tụ và quan sát chính sách hoạt động.
Hàm get_max_action_and_value(state, V) đã được tải 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
- Với mỗi trạng thái, tìm hành động có Q-value lớn nhất (
max_action) và giá trị tương ứng (max_q_value). - Cập nhật từ điển
new_Vvàpolicydựa trênmax_actionvàmax_q_value. - Kiểm tra hội tụ bằng cách xem chênh lệch giữa
new_vvàVở mọi trạng thái có nhỏ hơnthresholdhay không.
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.
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)