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
<Kurs>Reinforcement Learning mit Gymnasium in Python</Kurs>Übungsanweisungen
- 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 praktische Übung
Versuche dich an dieser Übung, indem du diesen Beispielcode vervollständigst.
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)