Aan de slagGa gratis aan de slag

De SARSA-update regel implementeren

SARSA is een on-policy algoritme in RL dat de actie-waardefunctie bijwerkt op basis van de uitgevoerde actie en de in de volgende toestand gekozen actie. Deze methode helpt niet alleen de waarde van het huidige toestand-actie-paar te leren, maar ook van het daaropvolgende paar, zodat je beleid kunt leren dat rekening houdt met toekomstige acties. Hieronder staat de SARSA-update regel, en jouw taak is een functie te implementeren die een Q-tabel bijwerkt op basis van deze regel.

De NumPy-bibliotheek is voor je geïmporteerd als np.

Image showing the mathematical formula of the SARSA update rule.

Deze oefening maakt deel uit van de cursus

Reinforcement Learning met Gymnasium in Python

Cursus bekijken

Oefeninstructies

  • Haal de huidige Q-waarde op voor het gegeven toestand-actie-paar.
  • Zoek de Q-waarde voor het volgende toestand-actie-paar.
  • Werk de Q-waarde voor het huidige toestand-actie-paar bij met de SARSA-formule.
  • Werk de Q-tabel Q bij, gegeven dat een agent actie 0 uitvoert in toestand 0, een beloning van 5 ontvangt, naar toestand 1 gaat en actie 1 uitvoert.

Praktische interactieve oefening

Probeer deze oefening eens door deze voorbeeldcode in te vullen.

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 bewerken en uitvoeren