First-Visit Monte Carlo implementieren
Ziel von Monte-Carlo-Algorithmen ist es, die Q-Tabelle zu schätzen, um daraus eine optimale Policy abzuleiten. In dieser Übung implementierst du die First-Visit-Monte-Carlo-Methode, um die Aktionswertfunktion Q zu schätzen, und berechnest anschließend die optimale Policy, um die benutzerdefinierte Umgebung aus der vorherigen Aufgabe zu lösen. Wenn du den Return berechnest, verwende einen Diskontfaktor von 1.
Die numpy-Arrays Q, returns_sum und returns_count, die jeweils die Q-Werte, die kumulierte Summe der Belohnungen und die Anzahl der Besuche für jedes Zustands-Aktions-Paar speichern, wurden bereits initialisiert und für dich geladen.
Diese Übung ist Teil des Kurses
Reinforcement Learning mit Gymnasium in Python
Anleitung zur Übung
- Definiere die
if-Bedingung, die im First-Visit-Monte-Carlo-Algorithmus geprüft werden soll. - Aktualisiere die Returns (
returns_sum), deren Zähler (returns_count) und dievisited_states.
Interaktive Übung
Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.
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())