Make the evaluator's review weights configurable.
[match/match.git] / program / PMConfig.hs
CommitLineData
bc14b3b3
MM
1module PMConfig where
2
3import PMInstance
4import 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
12data 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}