LoslegenKostenlos loslegen

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

Kurs anzeigen

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_V und die policy basierend auf max_action und max_q_value.
  • Prüfe die Konvergenz, indem du kontrollierst, ob der Unterschied zwischen new_v und V für jeden Zustand kleiner als threshold ist.

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)
Code bearbeiten und ausführen