ÎncepețiÎncepe gratuit

Implementarea regulii de actualizare SARSA

SARSA este un algoritm on-policy în RL care actualizează funcția de valoare a acțiunii pe baza acțiunii efectuate și a acțiunii selectate în starea următoare. Această metodă permite învățarea valorii nu doar a perechii stare-acțiune curente, ci și a celei ulterioare, oferind o modalitate de a învăța politici care iau în considerare acțiunile viitoare. Regula de actualizare SARSA este prezentată mai jos, iar sarcina ta este să implementezi o funcție care actualizează un tabel Q pe baza acestei reguli.

Biblioteca NumPy a fost importată ca np.

Image showing the mathematical formula of the SARSA update rule.

Acest exercițiu face parte din cursul

Reinforcement Learning cu Gymnasium în Python

Vezi cursul

Instrucțiuni pentru exercițiu

  • Extrage valoarea Q curentă pentru perechea stare-acțiune dată.
  • Găsește valoarea Q pentru perechea stare-acțiune următoare.
  • Actualizează valoarea Q pentru perechea stare-acțiune curentă folosind formula SARSA.
  • Actualizează tabelul Q Q, știind că agentul efectuează acțiunea 0 în starea 0, primește o recompensă de 5, trece în starea 1 și execută acțiunea 1.

Exercițiu interactiv practic

Încearcă acest exercițiu completând acest cod de exemplu.

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)
Editează și rulează codul