Začněte nyníZačněte zdarma

Implementace aktualizačního pravidla SARSA

SARSA je on-policy algoritmus v RL, který aktualizuje funkci hodnoty akce na základě provedené akce a akce zvolené v dalším stavu. Tento přístup umožňuje učit se hodnotu nejen aktuální dvojice stav–akce, ale i té následující, a tím nacházet strategie, které zohledňují budoucí akce. Níže je zobrazeno aktualizační pravidlo SARSA – tvým úkolem je implementovat funkci, která podle tohoto pravidla aktualizuje Q-tabulku.

Knihovna NumPy je dostupná jako np.

Image showing the mathematical formula of the SARSA update rule.

Toto cvičení je součástí kurzu

Reinforcement Learning with Gymnasium in Python

Zobrazit kurz

Pokyny k cvičení

  • Načti aktuální Q-hodnotu pro danou dvojici stav–akce.
  • Zjisti Q-hodnotu pro následující dvojici stav–akce.
  • Aktualizuj Q-hodnotu aktuální dvojice stav–akce pomocí vzorce SARSA.
  • Aktualizuj Q-tabulku Q pro situaci, kdy agent provede akci 0 ve stavu 0, obdrží odměnu 5, přejde do stavu 1 a provede akci 1.

Interaktivní cvičení na vyzkoušení si v praxi

Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.

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)
Upravit a spustit kód