This little program can be used to sort a bunch of people into groups, based on the peoples own preferences. A person can have 3 preferences, arranges as 1st, 2nd and 3rd priority. Its really simple to use, since all you need to do is edit some CSV files.
Here is a little guide to how the program works.
Either compile the program or take the one in the latest release (It will make some default csv files if none exist)
Take a look in the settings.csv
file next to the executable.
It contains some general settings to limit the sorting algorithm a bit:
- MinGroupSize: Is the minimum size a group is allowed to be
- MaxGroupSize: Is the maximum size a group is allowed to be
- NumberOfGroups: Is the amount of groups the algorithm should split the people into
- OptimiseType: Is a litte addition to the satisfaction level of a group. The choices are:
- None: Dont do anything
- EqualiseGroups: Adjusting the satisfaction of a group depending on how equal their size is. This will make more "equal" sized groups.
- Runs: How many randomized runs to make (adds additional randomisaton to the algorithm)
- Threads: How many threads the algorithm should run on
Take a look in the input.csv
file, also next to the executable.
Here you can add the people to be sorted, and their preferences.
- The ID should start from 0 and go up by each row
- The name is just there for you to know who is who
- Preference1 is the first preference for the person. This is a ID to another person that they wanna be in group with.
- Preference2 is the second preference for the person. This is a ID to another person that they wanna be in group with.
- Preference3 is the third preference for the person. This is a ID to another person that they wanna be in group with.
Run the GroupSorter.exe
and wait for it to finish. The output best group will be put in the output.csv
file.