Sobre o projeto

decisionrl é uma biblioteca de aprendizado por reforço projetada especificamente para problemas de decisão operacional, como precificação, gestão de inventário, despacho de energia, admissão em filas e otimização de cadeias de suprimentos. Diferentemente de frameworks de RL de propósito geral que visam jogos e robótica, decisionrl entrega cada problema aplicado como um ambiente de primeira classe acompanhado do baseline clássico de pesquisa operacional, para que uma política aprendida possa ser medida contra o método padrão, em vez de ser apenas afirmada como boa. A biblioteca fornece 31 algoritmos abrangendo métodos tabulares (Q-Learning, SARSA, Expected SARSA, Dyna-Q), RL profundo baseado em valor (DQN, Rainbow, C51, QR-DQN), métodos ator-crítico (PPO, A2C, TRPO, GRPO, IMPALA, Recurrent PPO), controle contínuo (DDPG, TD3, SAC, SACDiscrete), RL offline (TD3+BC, IQL, CQL, Decision Transformer), abordagens baseadas em modelo (MBPO, Dreamer, DreamerRSSM), aprendizado orientado a objetivos (HER+DQN) e aprendizado por imitação (Diffusion Policy). Cada agente expõe uma interface unificada predict/learn/save/load, independentemente de ser tabular ou profundo, discreto ou contínuo, on-policy ou off-policy. O núcleo é leve em dependências: ambientes, baselines clássicos e solvers são NumPy puro, enquanto PyTorch é um extra opcional necessário apenas para algoritmos que treinam. Ambientes integrados incluem GridWorld, CartPole, Pendulum, PointMass e bandits, permitindo treinamento de ponta a ponta sem instalações adicionais. Ambientes Gymnasium estão disponíveis como um extra opcional. Ambientes aplicados cobrem inventário não estacionário com demanda flutuante, cadeias de suprimentos de dois níveis, controle de admissão em filas, gerenciamento de bateria em microrredes de energia, controle de termostato/HVAC, inventário estacionário, precificação dinâmica e precificação conjunta com inventário. Cada um inclui o melhor baseline clássico de regra fixa encontrado por busca, não um padrão ingênuo. Resultados mostram que a política aprendida supera o baseline clássico em tarefas não estacionárias (por exemplo, aproximadamente 16% de melhoria em inventário flutuante, 20% em microrrede de energia, 15% na redução de custos de cadeia de suprimentos) e corresponde ao ótimo exato de programação dinâmica em tarefas estacionárias. Um estudo de caso conduz o ambiente de inventário com dados reais de consumo dos EUA trimestrais de 1959 a 2009, mostrando que a política aprendida melhora o melhor estoque-base fixo porque a demanda real tem tendências e nenhum único nível de reposição atende a todas as épocas. A biblioteca também inclui bandits contextuais (LinUCB, amostragem de Thompson linear, epsilon-greedy) para decisões de uma única etapa, como precificação e recomendação, RLHF e DPO em tarefas de controle e um GPT no nível de caracteres, aprendizado por imitação (BC, DAgger, GAIL), exploração orientada por curiosidade (RND, ICM), otimização sem gradientes (12 métodos evolutivos e de enxame com interface ask/tell, além de um NeuroevolutionAgent), AlphaZero com MCTS e self-play para jogos de informação perfeita para dois jogadores, meta-RL (RL²) para adaptação online através de uma distribuição de tarefas, self-play multiagente com IPPO, atores distribuídos estilo IMPALA alimentando um aprendiz central V-trace, e exportação ONNX e TorchScript com um contêiner de serviço FastAPI sem torch. Uma interface de linha de comando suporta treinamento, avaliação e visualização de dashboard ao vivo. Experimentos podem ser declarados em YAML ou JSON e executados com decisionrl run ou decisionrl.config.run. A reprodutibilidade é garantida por RNGs com semente em Python, NumPy e PyTorch, com uma suíte de testes de mais de 400 testes cobrindo a correção de componentes (espaços, buffers, sum-tree, schedules, GAE, normalização, round-trips de save/load) e o comportamento de aprendizado (métodos tabulares alcançam a política ótima do GridWorld; DQN e PPO aprendem CartPole; SAC, TD3 e DDPG resolvem a tarefa PointMass). Um fluxo de trabalho de CI agendado reexecuta a verificação aplicada multi-semente todas as noites e falha se qualquer resultado relatado regredir abaixo do seu baseline. O projeto é licenciado sob MIT e se inspira em CleanRL, Stable-Baselines3, Tianshou e na interface Gymnasium da Fundação Farama.