| 1 | module ProposalMatchConfig where |
| 2 | |
| 3 | prefIsExpert p = p <= 10 |
| 4 | prefIsConflict p = p >= 40 |
| 5 | |
| 6 | {- |
| 7 | Each proposal should have 'wantExpertReviews' expert reviews plus |
| 8 | 'wantGeneralReviews' general reviews (can be by experts). If we |
| 9 | fall short on expert reviews, we give 'wantReviewsSubstForExpert' |
| 10 | additional general reviews for each expert review we fell short. |
| 11 | Values 2, 1, 2 give the ">= 3 of which >= 1 is expert, failing that >= 4" |
| 12 | criterion that Samir indicated. |
| 13 | -} |
| 14 | wantGeneralReviews = 2 |
| 15 | wantExpertReviews = 1 |
| 16 | wantReviewsSubstForExpert = 2 |
| 17 | |
| 18 | -- A hard limit that we hope will never be hit. |
| 19 | maxReviewerLoad = 10 |
| 20 | |
| 21 | -- I'm using quadratic cost functions as a first attempt. |
| 22 | prefToCost p = p ^ 2 |
| 23 | {- |
| 24 | I chose the number 225 to make the preference difference between 20 and 25 |
| 25 | approximately equivalent to one unit of load imbalance (e.g., the difference |
| 26 | between (k, k) and (k+1, k-1)); that seemed reasonable to me. |
| 27 | Adjust the number as necessary. |
| 28 | -} |
| 29 | marginalLoadCost nr = 225 * fromInteger nr |