Value Iteration implementieren
Value Iteration ist eine zentrale Methode im RL, um die optimale Policy zu finden. Dabei wird die Wertfunktion für jeden Zustand iterativ verbessert, bis sie konvergiert – so wird die optimale Policy ermittelt. Du startest mit einer initialisierten Wertfunktion V und einer policy, beides ist für dich vorgeladen. Dann aktualisierst du sie in einer Schleife, bis die Wertfunktion konvergiert, und siehst die Policy in Aktion.
Die Funktion get_max_action_and_value(state, V) wurde bereits für dich geladen.
Diese Übung ist Teil des Kurses
Reinforcement Learning mit Gymnasium in Python
Anleitung zur Übung
- Finde für jeden Zustand die Aktion mit dem maximalen Q-Wert (
max_action) und den zugehörigen Wert (max_q_value). - Aktualisiere das Dictionary
new_Vund diepolicybasierend aufmax_actionundmax_q_value. - Prüfe die Konvergenz, indem du kontrollierst, ob der Unterschied zwischen
new_vundVfür jeden Zustand kleiner alsthresholdist.
Interaktive Übung
Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.
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)