Sobre el proyecto
decisionrl es una biblioteca de aprendizaje por refuerzo diseñada específicamente para problemas de toma de decisiones operativas, como fijación de precios, gestión de inventarios, despacho de energía, admisión en colas y optimización de cadenas de suministro. A diferencia de los marcos de RL de propósito general orientados a juegos y robótica, decisionrl presenta cada problema aplicado como un entorno de primera clase junto con la línea base clásica de investigación operativa, de modo que una política aprendida puede medirse frente al método estándar en lugar de asumirse como buena.
La biblioteca ofrece 31 algoritmos que abarcan métodos tabulares (Q-Learning, SARSA, Expected SARSA, Dyna-Q), RL profundo basado en valores (DQN, Rainbow, C51, QR-DQN), métodos actor-crítico (PPO, A2C, TRPO, GRPO, IMPALA, Recurrent PPO), control continuo (DDPG, TD3, SAC, SACDiscrete), RL fuera de línea (TD3+BC, IQL, CQL, Decision Transformer), enfoques basados en modelos (MBPO, Dreamer, DreamerRSSM), aprendizaje orientado a objetivos (HER+DQN) y aprendizaje por imitación (Diffusion Policy). Cada agente expone una interfaz unificada de predict/learn/save/load, ya sea tabular o profundo, discreto o continuo, on-policy u off-policy.
El núcleo es ligero en dependencias: los entornos, las líneas base clásicas y los solucionadores son NumPy puro, mientras que PyTorch es un extra opcional necesario solo para algoritmos que entrenan. Los entornos integrados incluyen GridWorld, CartPole, Pendulum, PointMass y bandits, lo que permite entrenamiento de extremo a extremo sin instalaciones adicionales. Los entornos Gymnasium están disponibles como extra opcional.
Los entornos aplicados cubren inventario no estacionario con demanda fluctuante, cadenas de suministro de dos niveles, control de admisión en colas, gestión de baterías en microrredes de energía, control de termostato/HVAC, inventario estacionario, fijación de precios dinámica y fijación de precios más inventario conjunta. Cada uno incluye la mejor línea base clásica de regla fija encontrada por búsqueda, no un valor predeterminado ingenuo. Los resultados muestran que la política aprendida supera a la línea base clásica en tareas no estacionarias (por ejemplo, aproximadamente un 16% de mejora en inventario fluctuante, 20% en microrred de energía, 15% en reducción de costos de cadena de suministro) y coincide con el óptimo exacto de programación dinámica en tareas estacionarias. Un estudio de caso impulsa el entorno de inventario con datos reales trimestrales de consumo de EE. UU. de 1959 a 2009, mostrando que la política aprendida mejora la mejor base fija porque la demanda real tiene tendencias y ningún nivel de pedido único se ajusta a cada era.
La biblioteca también incluye bandits contextuales (LinUCB, muestreo de Thompson lineal, epsilon-greedy) para decisiones de una sola vez, como precios y recomendaciones, RLHF y DPO en tareas de control y un GPT a nivel de caracteres, aprendizaje por imitación (BC, DAgger, GAIL), exploración impulsada por curiosidad (RND, ICM), optimización sin gradientes (12 métodos de evolución y enjambre con interfaz ask/tell más un NeuroevolutionAgent), AlphaZero con MCTS y auto-juego para juegos de información perfecta de dos jugadores, meta-RL (RL²) para adaptación en línea a través de una distribución de tareas, auto-juego multiagente con IPPO, actores distribuidos estilo IMPALA que alimentan un aprendiz central V-trace, y exportación ONNX y TorchScript con un contenedor de servicio FastAPI sin torch.
Una interfaz de línea de comandos admite entrenamiento, evaluación y visualización de tablero en vivo. Los experimentos pueden declararse en YAML o JSON y ejecutarse con decisionrl run o decisionrl.config.run. La reproducibilidad se garantiza mediante RNG sembrables en Python, NumPy y PyTorch, con una suite de más de 400 pruebas que cubren la corrección de componentes (espacios, buffers, sum-tree, horarios, GAE, normalización, ciclos de guardado/carga) y el comportamiento de aprendizaje (los métodos tabulares alcanzan la política óptima de GridWorld; DQN y PPO aprenden CartPole; SAC, TD3 y DDPG resuelven la tarea PointMass). Un flujo de trabajo de CI programado re-ejecuta la verificación aplicada multi-semilla cada noche y falla si cualquier resultado reportado regresa por debajo de su línea base.
El proyecto está licenciado bajo MIT y se inspira en CleanRL, Stable-Baselines3, Tianshou y la interfaz Gymnasium de la Fundación Farama.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.