The proposal matcher. It works on a small example.
[match/match.git] / ProposalMatchConfig.hs
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