LoslegenKostenlos starten

Die SARSA-Aktualisierungsregel implementieren

SARSA ist ein On-Policy-Algorithmus im RL, der die Aktionswertfunktion anhand der gewählten Aktion und der im nächsten Zustand ausgewählten Aktion aktualisiert. Dieses Verfahren hilft, nicht nur den Wert des aktuellen Zustand-Aktions-Paares zu lernen, sondern auch den des folgenden, und ermöglicht so das Erlernen von Policies, die zukünftige Aktionen berücksichtigen. Unten findest du die SARSA-Aktualisierungsregel; deine Aufgabe ist es, eine Funktion zu implementieren, die eine Q-Tabelle basierend auf dieser Regel aktualisiert.

Die NumPy-Bibliothek wurde als np importiert.

Image showing the mathematical formula of the SARSA update rule.

Diese Übung ist Teil des Kurses

<Kurs>Reinforcement Learning mit Gymnasium in Python</Kurs>
Kurs ansehen

Übungsanweisungen

  • Hole den aktuellen Q-Wert für das gegebene Zustand-Aktions-Paar.
  • Ermittle den Q-Wert für das nächste Zustand-Aktions-Paar.
  • Aktualisiere den Q-Wert für das aktuelle Zustand-Aktions-Paar mithilfe der SARSA-Formel.
  • Aktualisiere die Q-Tabelle Q, gegeben, dass ein Agent in Zustand 0 die Aktion 0 ausführt, eine Belohnung von 5 erhält, zu Zustand 1 wechselt und dort Aktion 1 ausführt.

Interaktive praktische Übung

Versuche dich an dieser Übung, indem du diesen Beispielcode vervollständigst.

def update_q_table(state, action, reward, next_state, next_action):
  	# Get the old value of the current state-action pair
    old_value = ____
    # Get the value of the next state-action pair
    next_value = ____
    # Compute the new value of the current state-action pair
    Q[(state, action)] = ____

alpha = 0.1
gamma  = 0.8
Q = np.array([[10,0],[0,20]], dtype='float32')
# Update the Q-table for the ('state1', 'action1') pair
____
print(Q)
Code bearbeiten und ausführen