dart_rl 0.1.0-alpha.2
dart_rl: ^0.1.0-alpha.2 copied to clipboard
A Dart package implementing reinforcement learning algorithms (SARSA, Q-Learning, Expected-SARSA) for both Dart and Flutter applications.
Changelog #
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
0.1.0-alpha.2 - 2025-11-10 #
Added #
- Flutter SDK dependency for seamless Flutter integration
collectionpackage (^1.17.0) for enhanced data structuresequatablepackage (^2.0.5) for value equality in state and action classesAgentNotifierclass: ChangeNotifier wrapper for Flutter state management integrationtrainStreamextension method for reactive UI updates with stream-based training- Decay schedules:
LinearDecayScheduleandExponentialDecaySchedulefor epsilon decay TrainingStatsclass for tracking episode-level training metricsAggregatedStatsclass for computing statistics across multiple episodesQTableSerializerfor saving and loading trained Q-tables to/from disk- Comprehensive Flutter integration documentation in README with examples
- Complete Flutter demo app in
example/flutter_rl_demo/with real-time visualization - Examples for both stream-based training and ChangeNotifier pattern
- Documentation on decay schedules, training statistics, and model persistence
Features #
- Real-time training visualization for Flutter applications
- Stream-based training with reactive UI updates via
trainStream - Flutter state management integration through
AgentNotifier(ChangeNotifier pattern) - Compatible with Provider, Riverpod, and other Flutter state management solutions
- Configurable epsilon decay schedules (linear and exponential)
- Training statistics tracking with episode-level and aggregated metrics
- Q-table serialization for saving and loading trained agents
- Interactive Flutter example demonstrating real-time RL training visualization
- Support for training progress monitoring with episode, reward, steps, and epsilon tracking
- Non-blocking asynchronous training for smooth UI performance
Changed #
- Refactored
StatetoDartRLStatefor improved naming consistency - Refactored
ActiontoDartRLActionfor improved naming consistency - Refactored
StateActiontoDartRLStateActionfor improved naming consistency
0.1.0-alpha.1 2025-11-7 #
Added #
- Initial alpha release of dart_rl package
- Q-Learning algorithm implementation (
QLearningAgent) - SARSA algorithm implementation (
SarsaAgent) - Expected-SARSA algorithm implementation (
ExpectedSarsaAgent) Environmentinterface for creating custom RL environmentsAgentbase class with epsilon-greedy exploration strategyState,Action, andStateActionclasses for representing RL componentsStepResultclass for environment step results- Grid World example environment
- Frozen Lake example environment
- Comprehensive unit tests
- Documentation and README with usage examples
Features #
- Support for discrete state and action spaces
- Configurable learning rate (α), discount factor (γ), and epsilon (ε)
- Epsilon-greedy exploration with decay functionality
- Q-table access for inspection and debugging
- Training methods for single episodes and multiple episodes
- Compatible with both Dart and Flutter applications
0.1.0 2025-11-1 #
Added #
- Initial release of dart_rl package
- Q-Learning algorithm implementation (
QLearningAgent) - SARSA algorithm implementation (
SarsaAgent) - Expected-SARSA algorithm implementation (
ExpectedSarsaAgent) Environmentinterface for creating custom RL environmentsAgentbase class with epsilon-greedy exploration strategyState,Action, andStateActionclasses for representing RL componentsStepResultclass for environment step results- Grid World example environment
- Frozen Lake example environment
- Comprehensive unit tests
- Documentation and README with usage examples
Features #
- Support for discrete state and action spaces
- Configurable learning rate (?), discount factor (?), and epsilon (?)
- Epsilon-greedy exploration with decay functionality
- Q-table access for inspection and debugging
- Training methods for single episodes and multiple episodes
- Compatible with both Dart and Flutter applications