Zacznij terazZacznij za darmo

Implementacja reguły aktualizacji SARSA

SARSA to algorytm uczenia ze wzmocnieniem typu on-policy, który aktualizuje funkcję wartości akcji na podstawie podjętej akcji oraz akcji wybranej w następnym stanie. Metoda ta pozwala uczyć się wartości nie tylko bieżącej pary stan-akcja, ale także kolejnej – dzięki temu możliwe jest wyznaczanie strategii uwzględniających przyszłe działania. Poniżej przedstawiono regułę aktualizacji SARSA. Twoim zadaniem jest zaimplementowanie funkcji, która aktualizuje tablicę Q zgodnie z tą regułą.

Biblioteka NumPy została zaimportowana jako np.

Image showing the mathematical formula of the SARSA update rule.

To ćwiczenie jest częścią kursu

Uczenie przez wzmacnianie z Gymnasium w Pythonie

Zobacz kurs

Instrukcje do ćwiczenia

  • Pobierz bieżącą wartość Q dla danej pary stan-akcja.
  • Wyznacz wartość Q dla następnej pary stan-akcja.
  • Zaktualizuj wartość Q dla bieżącej pary stan-akcja, korzystając ze wzoru SARSA.
  • Zaktualizuj tablicę Q Q, przyjmując, że agent wykonuje akcję 0 w stanie 0, otrzymuje nagrodę równą 5, przechodzi do stanu 1 i wykonuje akcję 1.

Interaktywne ćwiczenie praktyczne

Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.

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)
Edytuj i uruchom kod