Implementera värdesiteration
Värdesiteration är en central metod inom RL för att hitta den optimala policyn. Metoden förbättrar iterativt värdefunktionen för varje tillstånd tills den konvergerar, vilket leder till att den optimala policyn kan fastställas. Du börjar med en initierad värdefunktion V och policy, båda förladdade åt dig. Sedan uppdaterar du dem i en loop tills värdefunktionen konvergerar och ser policyn i praktiken.
Funktionen get_max_action_and_value(state, V) är förladdad åt dig.
Den här övningen är en del av kursen
Reinforcement Learning med Gymnasium i Python
Övningsinstruktioner
- För varje tillstånd, hitta den åtgärd som har det högsta Q-värdet (
max_action) och dess motsvarande värde (max_q_value). - Uppdatera ordlistan
new_Vochpolicybaserat påmax_actionochmax_q_value. - Kontrollera konvergens genom att kontrollera om skillnaden mellan
new_vochVför varje tillstånd är mindre änthreshold.
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
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)