Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Algorithm for judge assignments #14

Open
the12thbenyoung opened this issue Apr 15, 2021 · 0 comments
Open

Algorithm for judge assignments #14

the12thbenyoung opened this issue Apr 15, 2021 · 0 comments

Comments

@the12thbenyoung
Copy link
Contributor

Given each judge's first, second, and third prize preferences in Judge and the list of projects submitted for each prize in ProjectForPrize, find an optimal assignment of judges to prizes and projects that maximizes the number of judges assigned to their highest-preference prizes, and also maximizes the number of times each project is judged for each prize (favor the second if you can't simultaneously maximize both). Each judge can score for multiple prizes and does not have to score every project submitted for a prize they're assigned to. The assignment should satisfy the following constraints:

  1. No judge should score more than a given total number N of projects
  2. No judge should be assigned to more than 2 (preferably) or 3 prizes
  3. No judge should score < 5 projects for a given prize (unless there are < 5 projects submitted for that prize)
  4. All projects submitted for a prize should be judged the same number (> 2) of times for that prize
  5. If possible, minimize the number of times a judge scores the same project for multiple different prizes. It's ok to have this, but they count as distinct scorings for point 1.

Enter the resulting assignments into JudgesProject.

For example, if projects 1-5 are submitted for the following prizes

Fintech Health Maker
1 2 1
3 4 2
5 3
4
5

and there are 7 judges A-G and N=5, then the following assignment is valid (ignoring constraint 3 because the example is small)

Fintech Health Maker
A 1,3 - 2,4,5
B 1,3 - 2,4,5
C - 2,4,5 1,3
D - 2,4,5 1,3
E 1,3 2,4,5 -
F - - 1,2,3,4,5
G 1,3 2,4,5 -

because no judge scores more than 5 projects, every project in Fintech and Health are scored 4 times and every project in Maker is scored 3 times, every judge scores for at most 2 prizes, and as a bonus no judge scores the same project twice (this could happen if, for example, A scores 1 for both Fintech and Maker)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant