LoslegenKostenlos loslegen

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

Reinforcement Learning mit Gymnasium in Python

Kurs anzeigen

Anleitung zur Übung

  • 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 Übung

Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.

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