Commit | Line | Data |
---|---|---|
bc14b3b3 MM |
1 | module PMConfig where |
2 | ||
3 | import PMInstance | |
4 | import IMinCostFlow | |
5 | ||
8723ed6a MM |
6 | -- A PMConfig structure has a bunch of configuration values used by |
7 | -- many functions in PMInstanceGenerator, ProposalMatcher, and Evaluation, which | |
8 | -- take a PMConfig as their first argument. Module PMDefaults defines a sane | |
9 | -- default configuration `pmDefaults'; it can be used as-is or individual fields | |
10 | -- can be overridden, e.g., pmDefaults{loadTolerance = 2} . See module | |
11 | -- PMDefaults for documentation of each field. | |
bc14b3b3 MM |
12 | data PMConfig = PMConfig { |
13 | minCostFlow :: MinCostFlowImpl, | |
14 | reviewsEachProposal :: Int, | |
578d7d98 | 15 | pcReviewsEachProposal :: Int, |
56b565b1 MM |
16 | expIsExpert :: Wt -> Bool, |
17 | expIsKnowledgeable :: Wt -> Bool, | |
bc14b3b3 MM |
18 | prefIsBoring :: Wt -> Bool, |
19 | prefIsVeryBoring :: Wt -> Bool, | |
20 | prefIsConflict :: Wt -> Bool, | |
21 | loadTolerance :: Int, | |
578d7d98 | 22 | ercLoadTolerance :: Int, |
bc14b3b3 MM |
23 | marginalLoadCost :: Wt -> Wt, |
24 | marginalBoringCost :: Wt -> Wt, | |
25 | marginalVeryBoringCost :: Wt -> Wt, | |
26 | assignmentCost :: Wt -> Wt, | |
27 | knowledgeableBonus :: Wt, | |
8723ed6a MM |
28 | expertBonus :: Wt, |
29 | numTopics :: Int, | |
35ce78e3 MM |
30 | topicZipfExponent :: Wt, |
31 | reviewEvalWeights :: [Wt] | |
bc14b3b3 | 32 | } |