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, | |
15 | prefIsExpert :: Wt -> Bool, | |
16 | prefIsKnowledgeable :: Wt -> Bool, | |
17 | prefIsBoring :: Wt -> Bool, | |
18 | prefIsVeryBoring :: Wt -> Bool, | |
19 | prefIsConflict :: Wt -> Bool, | |
20 | loadTolerance :: Int, | |
21 | marginalLoadCost :: Wt -> Wt, | |
22 | marginalBoringCost :: Wt -> Wt, | |
23 | marginalVeryBoringCost :: Wt -> Wt, | |
24 | assignmentCost :: Wt -> Wt, | |
25 | knowledgeableBonus :: Wt, | |
8723ed6a MM |
26 | expertBonus :: Wt, |
27 | numTopics :: Int, | |
35ce78e3 MM |
28 | topicZipfExponent :: Wt, |
29 | reviewEvalWeights :: [Wt] | |
bc14b3b3 | 30 | } |