Commit | Line | Data |
---|---|---|
256efdfa MM |
1 | Proposal matcher implementation |
2 | ||
3 | By Matt McCutchen <matt@mattmccutchen.net> | |
4 | in collaboration with Samir Khuller <samir@cs.umd.edu> | |
5 | ||
6 | TODO: There is probably more to say here about the program, even after we add | |
7 | the paper about the algorithm/reduction. | |
8 | ||
9 | Setup | |
10 | ----- | |
11 | ||
12 | Requirements: | |
13 | - GHC on your $PATH | |
14 | - GHC "fgl" package | |
15 | ||
16 | Compile with "make". | |
17 | ||
18 | Interactive experimentation | |
19 | --------------------------- | |
20 | ||
21 | "./run" starts GHCi with all of the important definitions of the proposal | |
22 | matcher in scope. This is good for interactive experimentation. | |
23 | ||
24 | Batch front-end | |
25 | --------------- | |
26 | ||
27 | ./match is a front-end that reads an instance from stdin and prints the matching | |
28 | to stdout. | |
29 | ||
a81e8980 MM |
30 | Input: A tab-separated array with a header row followed by two rows per proposal |
31 | and a header column followed by one column per reviewer. The header row | |
32 | specifies the relative loads of the reviewers as integers. The header column | |
33 | specifies the number of reviews each proposal must receive, in the first of the | |
34 | proposal's two rows. | |
35 | ||
36 | The remainder of the array contains, for each (proposal, reviewer) pair, a | |
37 | preference value (an integer from 100, best, to -99, worst, with -100 indicating | |
38 | conflict of interest) and below it, an expertise value (an integer from 3, best, | |
39 | to 0, worst). The preference value may optionally be followed by a * to require | |
40 | that that (proposal, reviewer) pair be matched in the output. This way, if the | |
41 | user obtains a matching and the reviewers start working and then minor changes | |
42 | to the input are needed, the user can request a matching that still includes | |
43 | most of the reviews already started. | |
44 | ||
45 | See the example.in. | |
256efdfa MM |
46 | |
47 | Reviewers and proposals are numbered from 0 in the order they appear in the | |
48 | input. | |
49 | ||
50 | Output: A tab-separated array. Each row gives the reviewer number and proposal | |
51 | number of a matched pair. |