Implementacja Monte Carlo pierwszej wizyty
Celem algorytmów Monte Carlo jest estymacja tablicy Q w celu wyznaczenia optymalnej polityki. W tym ćwiczeniu zaimplementujesz metodę Monte Carlo pierwszej wizyty, aby oszacować funkcję wartości akcji Q, a następnie wyznaczyć optymalną politykę rozwiązującą środowisko niestandardowe z poprzedniego ćwiczenia. Przy obliczaniu zwrotu przyjmij współczynnik dyskontowania równy 1.
Tablice numpy: Q, returns_sum i returns_count, przechowujące odpowiednio wartości Q, skumulowaną sumę nagród oraz liczbę wizyt dla każdej pary stan-akcja, zostały już zainicjalizowane i wczytane.
To ćwiczenie jest częścią kursu
Uczenie przez wzmacnianie z Gymnasium w Pythonie
Instrukcje do ćwiczenia
- Zdefiniuj warunek
if, który powinien być sprawdzany w algorytmie Monte Carlo pierwszej wizyty. - Zaktualizuj zwroty (
returns_sum), ich liczniki (returns_count) orazvisited_states.
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
for i in range(100):
episode = generate_episode()
visited_states = set()
for j, (state, action, reward) in enumerate(episode):
# Define the first-visit condition
if ____ not in ____:
# Update the returns, their counts and the visited states
returns_sum[state, action] += ____([____ for ____ in ____])
returns_count[state, action] += ____
visited_states.____(____)
nonzero_counts = returns_count != 0
Q[nonzero_counts] = returns_sum[nonzero_counts] / returns_count[nonzero_counts]
render_policy(get_policy())