Richtlinie auf einem rutschigen Frozen Lake evaluieren
In einer rutschigen Frozen-Lake-Umgebung reicht es nicht aus, die Richtlinie einfach aus einer gelernten Q-Tabelle abzuleiten, um ihre Wirksamkeit zu beurteilen. Um die Eignung einer gelernten Richtlinie korrekt zu bewerten, musst du mehrere Episoden spielen und den durchschnittlich erzielten Reward beobachten. In dieser Übung wird die Wirksamkeit der gelernten Richtlinie mit einer Basislinie verglichen, die während des Trainings durch das Befolgen einer zufälligen Richtlinie entstand. Deine Aufgabe ist es, die gelernte Richtlinie über mehrere Episoden auszuführen und ihre Leistung anhand der gesammelten durchschnittlichen Rewards zu analysieren und sie den durchschnittlichen Rewards aus der Phase mit der zufälligen Richtlinie gegenüberzustellen.
Die Q-Tabelle Q, num_states, num_actions und avg_reward_per_random_episode wurden für dich vorab geladen.
Die NumPy-Bibliothek wurde als np importiert.
Diese Übung ist Teil des Kurses
Reinforcement Learning mit Gymnasium in Python
Anleitung zur Übung
- Wähle in jeder Iteration die beste Aktion basierend auf der gelernten Q-Tabelle
Q. - Berechne den durchschnittlichen Reward pro gelernter Episode
avg_reward_per_learned_episode.
Interaktive Übung
Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.
for episode in range(10000):
state, info = env.reset()
terminated = False
episode_reward = 0
while not terminated:
# Select the best action based on learned Q-table
action = ____
new_state, reward, terminated, truncated, info = env.step(action)
state = new_state
episode_reward += reward
reward_per_learned_episode.append(episode_reward)
# Compute and print the average reward per learned episode
avg_reward_per_learned_episode = ____
print("Average reward per learned episode: ", avg_reward_per_learned_episode)
print("Average reward per random episode: ", ____)