rl4co
rl4co copied to clipboard
Adding support for improvement method (draft version)
Description
This PR is to make RL4CO support the improvement method for VRPs. The changes includes:
- Add new features for improvement methods:
- improvement env classes
- improvement base model, encoder, and decoder classes
- Positional encoding/embedding support
- Minor changes to augment existing features
- nn.attention, nn.ops
- decoding strategy
- a new type of normalization method
- ADD the N2S implementation
- [To do] modify the PPO training part for improvement methods
Motivation and Context
This PR is to make RL4CO support the improvement methods.
- [x] I have raised an issue to propose this change (required for new features and bug fixes)
Types of changes
What types of changes does your code introduce? Remove all that do not apply:
- [x] New feature (non-breaking change which adds core functionality)
- [x] Breaking change (fix or feature that would cause existing functionality to change)
- [x] Documentation (update in the documentation)
- [x] Example (update in the folder of examples)
Checklist
Go over all the following points, and put an x
in all the boxes that apply.
If you are unsure about any of these, don't hesitate to ask. We are here to help!
- [x] My change requires a change to the documentation.
- [ ] I have updated the tests accordingly (required for a bug fix or a new feature).
- [ ] I have updated the documentation accordingly.