Commit | Line | Data |
---|---|---|
8c5ee850 | 1 | module PMDefaults where |
05a6f0ed | 2 | import PMInstance |
bc14b3b3 | 3 | import PMConfig |
8c5ee850 MM |
4 | |
5 | import qualified NaiveMinCostFlow | |
6 | import qualified CS2MinCostFlow | |
7 | ||
8 | pmDefaults = PMConfig { | |
fd0d2377 MM |
9 | |
10 | -- Choose a min-cost flow implementation (timings on mattlaptop2): | |
11 | ||
12 | -- A naive implementation that is slow for all but the smallest instances | |
13 | -- (30s on a 20x50 example). | |
8c5ee850 | 14 | minCostFlow = NaiveMinCostFlow.minCostFlow, |
fd0d2377 MM |
15 | |
16 | -- Uses CS2 (http://www.igsystems.com/cs2/), which requires a license for | |
17 | -- non-research use but is faster (<1s on a 20x50 example, 64s on a 60x500 | |
59fcd59d MM |
18 | -- example). Configure the path to cs2.exe in CS2MinCostFlow.hs. Remember to |
19 | -- compile CS2 with -DPRINT_ANS, or this won't work! | |
8c5ee850 | 20 | --minCostFlow = CS2MinCostFlow.minCostFlow, |
d7d9561e | 21 | |
8c5ee850 | 22 | reviewsEachProposal = 3, |
2e7d5426 | 23 | |
8c5ee850 MM |
24 | prefIsExpert = \p -> p <= 10, |
25 | prefIsKnowledgeable = \p -> p <= 20, | |
2e7d5426 | 26 | |
8c5ee850 MM |
27 | prefIsBoring = \p -> p > 15, |
28 | prefIsVeryBoring = \p -> p > 25, | |
2e7d5426 | 29 | |
8c5ee850 | 30 | prefIsConflict = \p -> p >= 40, |
d7d9561e | 31 | |
2e7d5426 MM |
32 | -- For now this is absolute. Later it might be proportional to a reviewer's |
33 | -- target load. | |
8c5ee850 | 34 | loadTolerance = 1, |
d7d9561e | 35 | |
2e7d5426 MM |
36 | -- Cost to overload by one review. |
37 | -- tx = 0 at target load, 1 at end of tolerance. | |
8c5ee850 | 38 | marginalLoadCost = \tx -> 1000 + tx*1000, |
2e7d5426 MM |
39 | |
40 | -- Cost to review a boring (or very boring) proposal. | |
41 | -- lx = 0 at no load, 1 at target load. | |
8c5ee850 | 42 | marginalBoringCost = \lx -> 1000 + lx*1000, |
2e7d5426 | 43 | -- Additional cost to review a very boring proposal. |
8c5ee850 | 44 | marginalVeryBoringCost = \lx -> 1000 + lx*1000, |
2e7d5426 MM |
45 | |
46 | -- Cost to make a review. | |
d7d9561e | 47 | -- I'm using quadratic cost functions as a first attempt. |
8c5ee850 | 48 | assignmentCost = \pref -> (numAsWt 10 + pref) ^ 2, |
2e7d5426 MM |
49 | |
50 | -- Bonus for a first knowledgeable or expert review. | |
8c5ee850 | 51 | knowledgeableBonus = 1000, |
2e7d5426 MM |
52 | |
53 | -- Bonus for an additional expert review. | |
8c5ee850 MM |
54 | expertBonus = 1000 |
55 | ||
56 | } |