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