Kom igångKom igång gratis

Utvärdering av policy på ett halt Frozen Lake

I en hal Frozen Lake-miljö räcker det inte att härleda policyn från en inlärd Q-tabell för att bedöma dess effektivitet. För att korrekt utvärdera en inlärd policy måste du köra flera avsnitt och observera den genomsnittliga belöningen som uppnås. Den här övningen jämför den inlärda policyns prestanda med en baslinje som etablerats genom att följa en slumpmässig policy under träningen. Din uppgift är att köra den inlärda policyn över flera avsnitt och analysera dess prestanda utifrån de genomsnittliga belöningarna – och jämföra dem med de genomsnittliga belöningarna från fasen med slumpmässig policy.

Q-tabellen Q, num_states, num_actions och avg_reward_per_random_episode har förinsatts åt dig. NumPy-biblioteket har importerats som np.

Den här övningen är en del av kursen

Reinforcement Learning med Gymnasium i Python

Visa kurs

Övningsinstruktioner

  • Välj i varje iteration den bästa åtgärden baserat på den inlärda Q-tabellen Q.
  • Beräkna den genomsnittliga belöningen per inlärt avsnitt avg_reward_per_learned_episode.

Interaktiv övning med praktiskt arbete

Testa den här övningen genom att slutföra den här exempelkoden.

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: ", ____)
Redigera och kör kod