À propos du projet
decisionrl est une bibliothèque d'apprentissage par renforcement conçue spécifiquement pour les problèmes de prise de décision opérationnelle tels que la tarification, la gestion des stocks, la répartition de l'énergie, l'admission en file d'attente et l'optimisation de la chaîne d'approvisionnement. Contrairement aux frameworks RL généralistes qui ciblent les jeux et la robotique, decisionrl fournit chaque problème appliqué comme un environnement de première classe associé à la référence classique de recherche opérationnelle, de sorte qu'une politique apprise peut être mesurée par rapport à la méthode standard plutôt que d'être simplement déclarée bonne.
La bibliothèque propose 31 algorithmes couvrant les méthodes tabulaires (Q-Learning, SARSA, Expected SARSA, Dyna-Q), le RL profond basé sur la valeur (DQN, Rainbow, C51, QR-DQN), les méthodes acteur-critique (PPO, A2C, TRPO, GRPO, IMPALA, Recurrent PPO), le contrôle continu (DDPG, TD3, SAC, SACDiscrete), le RL hors ligne (TD3+BC, IQL, CQL, Decision Transformer), les approches basées sur un modèle (MBPO, Dreamer, DreamerRSSM), l'apprentissage conditionné par un objectif (HER+DQN) et l'apprentissage par imitation (Diffusion Policy). Chaque agent expose une interface unifiée predict/learn/save/load, qu'il soit tabulaire ou profond, discret ou continu, sur-politique ou hors-politique.
Le cœur est léger en dépendances : les environnements, les références classiques et les solveurs sont en NumPy pur, tandis que PyTorch est une option supplémentaire nécessaire uniquement pour les algorithmes qui s'entraînent. Les environnements intégrés incluent GridWorld, CartPole, Pendulum, PointMass et les bandits, permettant un entraînement de bout en bout sans installations supplémentaires. Les environnements Gymnasium sont disponibles en option.
Les environnements appliqués couvrent les stocks non stationnaires avec demande fluctuante, les chaînes d'approvisionnement à deux échelons, le contrôle d'admission en file d'attente, la gestion de batterie de micro-réseau énergétique, le contrôle thermostat/CVC, les stocks stationnaires, la tarification dynamique et la tarification conjointe avec les stocks. Chacun inclut la meilleure référence classique à règle fixe trouvée par recherche, et non une valeur par défaut naïve. Les résultats montrent que la politique apprise surpasse la référence classique sur les tâches non stationnaires (par exemple, environ 16 % d'amélioration sur les stocks fluctuants, 20 % sur le micro-réseau énergétique, 15 % sur la réduction des coûts de chaîne d'approvisionnement) et atteint l'optimum exact de programmation dynamique sur les tâches stationnaires. Une étude de cas pilote l'environnement de stocks avec des données réelles de consommation américaine trimestrielle de 1959 à 2009, montrant que la politique apprise améliore le meilleur stock de base fixe car la demande réelle a des tendances et aucun niveau de réapprovisionnement unique ne convient à chaque époque.
La bibliothèque inclut également des bandits contextuels (LinUCB, échantillonnage de Thompson linéaire, epsilon-greedy) pour les décisions ponctuelles telles que la tarification et la recommandation, RLHF et DPO sur des tâches de contrôle et un GPT au niveau caractère, l'apprentissage par imitation (BC, DAgger, GAIL), l'exploration motivée par la curiosité (RND, ICM), l'optimisation sans gradient (12 méthodes d'évolution et d'essaim avec une interface ask/tell plus un NeuroevolutionAgent), AlphaZero avec MCTS et auto-jeu pour les jeux d'information parfaite à deux joueurs, le méta-RL (RL²) pour l'adaptation en ligne sur une distribution de tâches, l'auto-jeu multi-agents avec IPPO, des acteurs distribués de type IMPALA alimentant un apprenant central V-trace, et l'export ONNX et TorchScript avec un conteneur de service FastAPI sans torch.
Une interface en ligne de commande prend en charge l'entraînement, l'évaluation et la visualisation de tableaux de bord en direct. Les expériences peuvent être déclarées en YAML ou JSON et exécutées avec decisionrl run ou decisionrl.config.run. La reproductibilité est assurée par des RNG seedables sur Python, NumPy et PyTorch, avec une suite de tests de plus de 400 tests couvrant la correction des composants (espaces, tampons, sum-tree, planifications, GAE, normalisation, allers-retours save/load) et le comportement d'apprentissage (les méthodes tabulaires atteignent la politique optimale de GridWorld ; DQN et PPO apprennent CartPole ; SAC, TD3 et DDPG résolvent la tâche PointMass). Un flux CI planifié réexécute la vérification appliquée multi-seeds chaque nuit et échoue si un résultat rapporté régresse en dessous de sa référence.
Le projet est sous licence MIT et s'inspire de CleanRL, Stable-Baselines3, Tianshou et de l'interface Gymnasium de la Fondation Farama.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.