Definir la función epsilon-greedy
En RL, la estrategia epsilon-greedy busca equilibrar la exploración y la explotación. Este método elige una acción aleatoria con probabilidad epsilon y la mejor acción conocida con probabilidad 1-epsilon. Implementar la función epsilon_greedy() es clave en algoritmos como Q-learning y SARSA, ya que facilita el aprendizaje del agente asegurando tanto la exploración del entorno como la explotación de las recompensas conocidas. Ese será el objetivo de este ejercicio.
La biblioteca numpy se ha importado como np.
Este ejercicio forma parte del curso
Reinforcement Learning con Gymnasium en Python
Instrucciones del ejercicio
- Dentro de la función, escribe la condición adecuada para que el agente explore el entorno.
- Elige una
actionaleatoria cuando explore. - Elige la mejor
actionsegún laq_tablecuando explote.
Ejercicio interactivo práctico
Prueba este ejercicio y completa el código de muestra.
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