🎮 Aprendizaje por Refuerzo
🎮 Aprendizaje por Refuerzo

Agente Q-learning en Taxi-v3

Aprender a conducir un taxi en una cuadrícula: recoger pasajeros y dejarlos en el destino correcto minimizando pasos, sin conocer las reglas del entorno de antemano.

Problema

Aprender a conducir un taxi en una cuadrícula: recoger pasajeros y dejarlos en el destino correcto minimizando pasos, sin conocer las reglas del entorno de antemano. El agente descubre la política óptima únicamente a partir de recompensas positivas/negativas por ensayo y error.

Solución

Q-learning tabular implementado desde cero con una clase QLearningAgent. El agente mantiene una Q-tabla que estima el valor esperado de cada acción en cada estado, actualizada con la ecuación de Bellman. Se compara ε-greedy con decaimiento de epsilon frente a epsilon constante para analizar el impacto en la convergencia.

Implementación QLearningAgent

  • Clase QLearningAgent con métodos get_value(), update() (Bellman), get_best_action() y get_action() (ε-greedy)
  • Inicialización de Q-tabla a ceros para todos los pares (estado, acción)
  • Actualización de Bellman: Q(s,a) ← Q(s,a) + α [r + γ·max_a'Q(s',a') - Q(s,a)]
  • Hiperparámetros: tasa de aprendizaje α, factor de descuento γ y tasa de exploración ε

Entrenamiento y análisis

  • Gymnasium Taxi-v3: 500 estados discretos, 6 acciones (4 direcciones + recoger + dejar)
  • Comparativa epsilon decay vs. epsilon constante — impacto en velocidad de convergencia y política final
  • Curva de recompensa por episodio: evolución visible desde exploración aleatoria hasta política estable
  • Q-tabla final: valores aprendidos para cada par (estado, acción) del entorno

Más proyectos en Aprendizaje por Refuerzo