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.

To ćwiczenie jest częścią kursu
Uczenie przez wzmacnianie z Gymnasium w Pythonie
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ę0w stanie0, otrzymuje nagrodę równą5, przechodzi do stanu1i 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)