This is not really a combinatorial problem, I'll use small letters
instead of caps.

Arrange the r referees in a circle.

start <- 1
Replicate k times{
end <- (start + m-1)%% r
output: c(start,end)
start <- (end+1)%% r
}

Bert Gunter
Genentech Nonclinical Biostatistics
(650) 467-7374

"Data is not information. Information is not knowledge. And knowledge
is certainly not wisdom."
H. Gilbert Welch




On Wed, Apr 30, 2014 at 10:48 AM, Ravi Varadhan <ravi.varad...@jhu.edu> wrote:
> Hi,
>
> I have this problem:  K candidates apply for a job.  There are R referees 
> available to review their resumes and provide feedback.  Suppose that we 
> would like M referees to review each candidate (M < R).  How would I assign 
> candidates to referees (or, conversely, referees to candidates)?  There are 
> two important cases:  (a) K > (R choose M) and (b) K < (R chooses M).
>
> Case (a) actually reduces to case (b), so we only have to consider case (b).  
> Without any other constraints, the problem is quite easy to solve.  Here is 
> an example that shows this.
>
> require(gtools)
> set.seed(12345)
> K <- 10  # number of candidates
> R <- 7    # number of referees
> M <- 3   # overlap, number of referees reviewing  each candidate
>
> allcombs <- combinations(R, M, set=TRUE, repeats.allowed=FALSE)
> assignment <- allcombs[sample(1:nrow(allcombs), size=K, replace=FALSE), ]
> assignment
>> assignment
>       [,1] [,2] [,3]
> [1,]    3    4    5
> [2,]    3    5    7
> [3,]    5    6    7
> [4,]    3    5    6
> [5,]    1    6    7
> [6,]    1    2    7
> [7,]    1    4    5
> [8,]    3    6    7
> [9,]    2    4    5
> [10,]    4    5    7
>>
>
> Here each row stands for a candidate and the column stands for the referees 
> who review that candidate.
>
> Of course, there are some constraints that make the assignment challenging.  
> We would like to have an even distribution of the number of candidates 
> reviewed by each referee.  For example, the above code produces an assignment 
> where referee #2 gets only 2 candidates and referee #5 gets 7 candidates.  We 
> would like to avoid such uneven assignments.
>
>> table(assignment)
> assignment
> 1 2 3 4 5 6 7
> 3 2 4 4 7 4 6
>>
>
> Note that in this example there are 35 possible triplets of referees and 10 
> candidates.  Therefore, a perfectly even assignment is not possible.
>
> I tried some obvious, greedy search methods but they are not guaranteed to 
> work.   Any hints or suggestions would be greatly appreciated.
>
> Best,
> Ravi
>
>
>         [[alternative HTML version deleted]]
>
> ______________________________________________
> R-help@r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.

______________________________________________
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.

Reply via email to