Double Q-learning anwenden
In dieser Übung wendest du den Double-Q-learning-Algorithmus in derselben benutzerdefinierten Umgebung an, die du mit Expected SARSA gelöst hast, um den Unterschied zu untersuchen. Double Q-learning reduziert mithilfe von zwei Q-Tabellen die im traditionellen Q-learning-Algorithmus angelegte Überschätzungsneigung und sorgt für mehr Stabilität beim Lernen als andere Verfahren der zeitlichen Differenz. Du nutzt diese Methode, um dich durch die Gitterumgebung zu bewegen, das höchste Reward zu erzielen und dabei Berge zu vermeiden, um das Ziel so schnell wie möglich zu erreichen.

Diese Übung ist Teil des Kurses
Reinforcement Learning mit Gymnasium in Python
Anleitung zur Übung
- Aktualisiere die Q-Tabellen mit der Funktion
update_q_tables(), die du in der vorherigen Übung implementiert hast. - Fasse die Q-Tabellen zusammen, indem du sie addierst.
Interaktive Übung
Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.
Q = [np.zeros((num_states, num_actions))] * 2
for episode in range(num_episodes):
state, info = env.reset()
terminated = False
while not terminated:
action = np.random.choice(num_actions)
next_state, reward, terminated, truncated, info = env.step(action)
# Update the Q-tables
____
state = next_state
# Combine the learned Q-tables
Q = ____
policy = {state: np.argmax(Q[state]) for state in range(num_states)}
render_policy(policy)