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