My organization guarantees every applicant an interview and we always receive more applicants than all the time slots among all the interviewers combined. So we sometimes need to double or triple-up applicants in an interview.
I want to find an algorithm that
- Matches the availabilities of applicants to an interviewer
- Doubles-up the applicants as little as possible
I already tried using the Ford-Fulkerson algorithm for maximum network flow as suggested in this answer: Appointment scheduling algorithm (N people with N free-busy slots, constraint-satisfaction), but it immediately doubles-up applicants.
I've also thought of approaching the problem as a constraints problem, but I'm unsure how to model having a variable number of interviewers available at each time slot in addition to the occasional doubling up of applicants.
Does anyone know of an appropriate algorithm or way to model the problem? Or if this is the wrong direction, can you point me towards the correct terminology?