Değer yinelemesini (value iteration) uygulama
Value iteration, en iyi politikayı bulmak için RL'de kullanılan temel bir yöntemdir. Her durum için değer fonksiyonunu yinelemeli olarak iyileştirir ve yakınsadığında, en iyi politikayı bulmuş olursun. Senin için önceden yüklenmiş başlatılmış bir değer fonksiyonu V ve bir policy ile başlayacaksın. Ardından, değer fonksiyonu yakınsayana kadar bunları bir döngüde güncelleyecek ve politikayı çalışırken göreceksin.
get_max_action_and_value(state, V) fonksiyonu senin için önceden yüklendi.
Bu egzersiz, kursun bir parçasıdır
Python ile Gymnasium'da Reinforcement Learning
Egzersiz talimatları
- Her durum için, en yüksek Q-değerine sahip eylemi (
max_action) ve buna karşılık gelen değeri (max_q_value) bul. new_Vsözlüğünü vepolicy'yimax_actionvemax_q_value'a göre güncelle.- Yakınsamayı kontrol etmek için, her durum için
new_vileVarasındaki farkınthresholddeğerinden küçük olup olmadığını denetle.
Uygulamalı etkileşimli egzersiz
Bu egzersizi bu örnek kodu tamamlayarak deneyin.
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)