Zacznij terazZacznij za darmo

Zastosowanie podwójnego Q-learningu

To ćwiczenie polega na zastosowaniu algorytmu Double Q-learning w tym samym niestandardowym środowisku, które wcześniej rozwiązałeś z użyciem Expected SARSA – dzięki temu zobaczysz różnicę między tymi podejściami. Double Q-learning korzysta z dwóch tablic Q, co pozwala ograniczyć błąd przeszacowania charakterystyczny dla klasycznego Q-learningu i zapewnia większą stabilność uczenia w porównaniu z innymi metodami różnic czasowych. Użyj tej metody, aby nawigować po środowisku siatkowym – dąż do jak najwyższej nagrody, omijaj góry i dotrzyj do celu jak najszybciej.

new_cust_env.png

To ćwiczenie jest częścią kursu

Uczenie przez wzmacnianie z Gymnasium w Pythonie

Zobacz kurs

Instrukcje do ćwiczenia

  • Zaktualizuj tablice Q za pomocą funkcji update_q_tables(), którą zaimplementowałeś w poprzednim ćwiczeniu.
  • Połącz tablice Q, sumując je.

Interaktywne ćwiczenie praktyczne

Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.

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)
Edytuj i uruchom kod