module PMConfig where import PMInstance import IMinCostFlow -- A PMConfig structure has a bunch of configuration values used by -- many functions in PMInstanceGenerator, ProposalMatcher, and Evaluation, which -- take a PMConfig as their first argument. Module PMDefaults defines a sane -- default configuration `pmDefaults'; it can be used as-is or individual fields -- can be overridden, e.g., pmDefaults{loadTolerance = 2} . See module -- PMDefaults for documentation of each field. data PMConfig = PMConfig { minCostFlow :: MinCostFlowImpl, reviewsEachProposal :: Int, prefIsExpert :: Wt -> Bool, prefIsKnowledgeable :: Wt -> Bool, prefIsBoring :: Wt -> Bool, prefIsVeryBoring :: Wt -> Bool, prefIsConflict :: Wt -> Bool, loadTolerance :: Int, marginalLoadCost :: Wt -> Wt, marginalBoringCost :: Wt -> Wt, marginalVeryBoringCost :: Wt -> Wt, assignmentCost :: Wt -> Wt, knowledgeableBonus :: Wt, expertBonus :: Wt, numTopics :: Int, topicZipfExponent :: Wt, reviewEvalWeights :: [Wt] }