Implementación de una Q-Table en Python
Un ejemplo sencillo de Q-learning.
Implementación de una Q-Table en Python es una lección gratuita de Learn AI with Python en CoddyKit. Esta es la lección 3 de 5. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Learn AI with Python, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Learn AI with Python incluye 5 lecciones en total.
Implementación de Q-Learning en Python
Implementación de Q-Learning en Python
En esta lección implementaremos un algoritmo sencillo de Q-Learning en Python. El agente aprenderá a desplazarse por un mundo cuadriculado para maximizar sus recompensas.

Definición del entorno
Definición del entorno
Definimos un mundo cuadriculado sencillo de 4×4 en el que el agente comienza en la esquina superior izquierda y debe llegar a la esquina inferior derecha para recibir una recompensa.
import numpy as np
# Define the environment
num_states = 16 # 4x4 grid
num_actions = 4 # Up, Down, Left, Right
# Define rewards (-1 for each step, +10 for the goal)
rewards = np.zeros(num_states)
rewards[-1] = 10Inicialización de la Q-Table
Inicialización de la Q-Table
La Q-Table se inicializa con ceros para todos los pares estado-acción.
# Initialize the Q-Table
q_table = np.zeros((num_states, num_actions))
print("Initial Q-Table:")
print(q_table)Implementación del algoritmo Q-Learning
Implementación del algoritmo Q-Learning
Utilizamos los siguientes parámetros:
- α (tasa de aprendizaje): Controla cuánto sustituye la información nueva a la antigua.
- γ (factor de descuento): Pondera las recompensas futuras con respecto a las recompensas inmediatas.
- ε (tasa de exploración): Equilibra la exploración y la explotación.
# Parameters
alpha = 0.1 # Learning rate
gamma = 0.9 # Discount factor
epsilon = 0.1 # Exploration rate
# Q-Learning loop
num_episodes = 1000
for episode in range(num_episodes):
state = 0 # Start at the first state
done = False
while not done:
# Exploration or exploitation
if np.random.rand() < epsilon:
action = np.random.randint(num_actions) # Explore
else:
action = np.argmax(q_table[state]) # Exploit
# Transition to the next state
next_state = (state + action) % num_states # Simplified transition logic
reward = rewards[next_state]
# Update Q-value
q_table[state, action] = q_table[state, action] + alpha * (
reward + gamma * np.max(q_table[next_state]) - q_table[state, action]
)
# Move to the next state
state = next_state
done = state == num_states - 1Evaluación de la política aprendida
Evaluación de la política aprendida
Después del entrenamiento, evaluamos la política siguiendo las acciones óptimas almacenadas en la Q-Table:
# Evaluate the policy
state = 0
optimal_path = [state]
while state != num_states - 1:
action = np.argmax(q_table[state])
state = (state + action) % num_states # Simplified transition logic
optimal_path.append(state)
print("Optimal Path:", optimal_path)Visualización de la Q-Table
Visualización de la Q-Table
Podemos visualizar la Q-Table para comprender los valores aprendidos para cada par estado-acción:
import matplotlib.pyplot as plt
import seaborn as sns
# Visualize Q-Table
plt.figure(figsize=(10, 8))
sns.heatmap(q_table, annot=True, fmt=".2f", cmap="coolwarm")
plt.title("Q-Table Heatmap")
plt.xlabel("Actions")
plt.ylabel("States")
plt.show()Ventajas de Q-Learning
Ventajas de Q-Learning
Q-Learning ofrece varias ventajas:
- Es sencillo y fácil de implementar.
- Puede gestionar entornos estocásticos.
- Converge hacia la política óptima con suficiente exploración.
Limitaciones de Q-Learning
Limitaciones de Q-Learning
Q-Learning presenta algunas limitaciones:
- No escala bien en entornos con espacios de estados-acciones grandes.
- El aprendizaje puede ser lento en entornos complejos.
- Requiere una representación de estados y acciones bien definida.
Resumen y próximos pasos
Resumen y próximos pasos
En esta lección:
- Implementamos un algoritmo Q-Learning sencillo en Python.
- Entrenamos un agente para desplazarse por un mundo cuadriculado mediante una Q-Table.
- Evaluamos la política aprendida y visualizamos la Q-Table.
A continuación, exploraremos Deep Q-Learning, que utiliza redes neuronales para gestionar entornos con espacios de estados-acciones grandes.

Preguntas frecuentes
¿La lección «Implementación de una Q-Table en Python» es gratis?
Sí — el texto completo de «Implementación de una Q-Table en Python» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Learn AI with Python, actualiza a CoddyKit PRO. El curso de Learn AI with Python incluye 5 lecciones en total.
¿Qué aprenderé en «Implementación de una Q-Table en Python»?
Un ejemplo sencillo de Q-learning. Practicas Learn AI with Python con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.
¿Necesito experiencia previa para empezar Learn AI with Python?
No se requiere experiencia previa. Learn AI with Python en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 3 de 5.
¿Cuánto tiempo toma la lección «Implementación de una Q-Table en Python»?
La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.
¿Puedo escribir y ejecutar código en esta lección de Learn AI with Python?
Sí. Cada lección de Learn AI with Python incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.
Todas las lecciones de este curso
- Conceptos básicos del aprendizaje por refuerzo
- Concepto de tabla Q
- Implementación de una Q-Table en Python
- Q-Learning profundo
- Exploración de OpenAI Gym