IniziaInizia gratis

Valutare una policy su un Frozen Lake scivoloso

In un ambiente Frozen Lake scivoloso, limitarsi a dedurre la policy da una Q-table appresa non basta per valutarne l'efficacia. Per valutare con precisione l'adeguatezza di una policy appresa, devi giocare più episodi, osservando la ricompensa media ottenuta. Questo esercizio confronta l'efficacia della policy appresa con una baseline stabilita seguendo una policy casuale durante l'addestramento. Il tuo compito è eseguire la policy appresa per diversi episodi e analizzarne le prestazioni sulla base delle ricompense medie raccolte, mettendole a confronto con le ricompense medie raccolte durante la fase con policy casuale.

La Q-table Q, num_states, num_actions e avg_reward_per_random_episode sono già state caricate per te. La libreria NumPy è stata importata come np.

Questo esercizio fa parte del corso

Reinforcement Learning con Gymnasium in Python

Visualizza il corso

Istruzioni dell'esercizio

  • A ogni iterazione, seleziona la migliore azione da intraprendere in base alla Q-table appresa Q.
  • Calcola la ricompensa media per episodio appreso avg_reward_per_learned_episode.

Esercizio pratico interattivo

Prova a risolvere questo esercizio completando il codice di esempio.

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: ", ____)
Modifica ed esegui il codice