- Add unit test for forced topics
- When a schedule is a success (better than previous one), try to re-assign everyone a few times to see if you can improve it further
- Better handling of constraints
- Incompatibility reward should be in the preference (in the config), not in settings
- Create a max-unassigned or max-nothing, and use a topic-exclusive ? It's not a personal pref though, so it doesn't work that well
- Keep and display schedules that are close to the current one, to give some alternatives (or fix a target score and give all that are above the score)
- Simulated cooling
- Generate a better base configuration, depending on what the user asks for