Major release: `v0.4.0` is here! 🚀
This release adds several new features and major refactorings in both modeling and environment sides!
Changelog
✨ Features
- DeepACO + ACO Furffico henry-yeh
- Non-autoregressive (NAR) models and NARGNN Furffico henry-yeh
- Add modular environment data generator with support to new distributions cbhua
- New decoding techniques based on the decoding strategy class LTluttmann
- Top-p (nucleus sampling)
- Top-k
- Select start nodes functions LTluttmann
⚙️ Refactoring
- **Major modeling refactoring** (summarized [here](https://github.com/ai4co/rl4co/pull/165)). Now we categorize NCO approaches (which are not necessarily trained with RL!) into the following: 1) constructive (AR and NAR), 2) improvement, 3) transductive. This translates into code, which is now fully customizable. For instance, in constructive methods, now encoders / decoders can be fully replaced or removed in an abstract way!
- **Major environment refactoring** (summarized [here](https://github.com/ai4co/rl4co/pull/169)): we further modularize the environments into components (logic under `env`, data generation under `generator`, and so on), with several components moved inside the `RL4COEnvBase`. Importantly, we introduce data generators that can be customized!
- Use Abstract classes if class should not be ngastzepeda
📝 Documentation
- Hydra documentation and tutorial LTluttmann
- New modularized examples under `examples/`
- Updated RL4CO structure in ReadTheDocs
- Move to MIT license with AI4CO for inclusiveness
- New RL4CO / AI4CO swag. You may also find them [here](https://github.com/ai4co/assets)!
🐛 Bug Fixes
- MatNet and FFSP bugfix LTluttmann
- Best solution gathering from POMO ahottung
- Tests now passing on MPS; compatibility with TorchRL https://github.com/pytorch/rl/pull/2125
- Miscellaneuous LTluttmann , bokveizen , tycbony