Tillämpa dubbel Q-inlärning
I den här övningen ska du tillämpa algoritmen för dubbel Q-inlärning i samma anpassade miljö som du löste med Expected SARSA, för att undersöka skillnaden. Dubbel Q-inlärning använder två Q-tabeller och minskar därigenom den överskattningsbias som finns i den traditionella Q-inlärningsalgoritmen – det ger också mer stabilitet i inlärningen jämfört med andra metoder för temporal-difference-inlärning. Du använder den här metoden för att navigera genom rutnätsmiljön med målet att uppnå högsta möjliga belöning, undvika berg och nå målet så snabbt som möjligt.

Den här övningen är en del av kursen
Reinforcement Learning med Gymnasium i Python
Övningsinstruktioner
- Uppdatera Q-tabellerna med funktionen
update_q_tables()som du kodade i föregående övning. - Kombinera Q-tabellerna genom att summera dem.
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
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)