Kom igångKom igång gratis

Implementera SARSA-uppdateringsregeln

SARSA är en on-policy-algoritm inom RL som uppdaterar aktionsvärdesfunktionen baserat på den åtgärd som vidtas och den åtgärd som väljs i nästa tillstånd. Metoden gör det möjligt att lära sig värdet av inte bara det aktuella tillstånd-åtgärdsparet, utan även det efterföljande – vilket ger ett sätt att lära sig policyer som tar hänsyn till framtida åtgärder. SARSA-uppdateringsregeln visas nedan, och din uppgift är att implementera en funktion som uppdaterar en Q-tabell enligt denna regel.

NumPy-biblioteket har importerats åt dig som np.

Image showing the mathematical formula of the SARSA update rule.

Den här övningen är en del av kursen

Reinforcement Learning med Gymnasium i Python

Visa kurs

Övningsinstruktioner

  • Hämta det aktuella Q-värdet för det givna tillstånd-åtgärdsparet.
  • Hitta Q-värdet för nästa tillstånd-åtgärdspar.
  • Uppdatera Q-värdet för det aktuella tillstånd-åtgärdsparet med hjälp av SARSA-formeln.
  • Uppdatera Q-tabellen Q, givet att en agent utför åtgärd 0 i tillstånd 0, får en belöning på 5, förflyttas till tillstånd 1 och utför åtgärd 1.

Interaktiv övning med praktiskt arbete

Testa den här övningen genom att slutföra den här exempelkoden.

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)
Redigera och kör kod