IniziaInizia gratis

Definire la funzione epsilon-greedy

In RL, la strategia epsilon-greedy bilancia esplorazione e sfruttamento. Questo metodo sceglie un'azione casuale con probabilità epsilon e l'azione migliore conosciuta con probabilità 1 - epsilon. Implementare la funzione epsilon_greedy() è fondamentale per algoritmi come Q-learning e SARSA: facilita l'apprendimento dell'agente garantendo sia l'esplorazione dell'ambiente sia lo sfruttamento delle ricompense note, ed è proprio l'obiettivo di questo esercizio.

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

  • All'interno della funzione, scrivi la condizione adeguata per far esplorare l'ambiente all'agente.
  • Scegli un'action casuale durante l'esplorazione.
  • Scegli la migliore action in base alla q_table durante lo sfruttamento.

Esercizio pratico interattivo

Prova a risolvere questo esercizio completando il codice di esempio.

epsilon = 0.2
env = gym.make('FrozenLake')
q_table = np.random.rand(env.observation_space.n, env.action_space.n)

def epsilon_greedy(state):
    # Implement the condition to explore
    if ____ < ____:
      	# Choose a random action
        action = ____
    else:
      	# Choose the best action according to q_table
        action = ____
    return action
Modifica ed esegui il codice