LoslegenKostenlos loslegen

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

Kurs anzeigen

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 die visited_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())
Code bearbeiten und ausführen