Python Forum
Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
The Match
#1
In my line of work, residency positions (doctors) are assigned by an annual event called The Match. Students apply to programs, programs invite for interviews, then the students submit an ordered list of their favorite programs, and the programs submit a list of their favorite students. A computer algorithm then matches the students with the programs.
The rules are
Students get preference, and are matched with the program highest on their list that offers them a position
Students are only offered one position. Once matched that is final.
Not all students will match, not all programs will fill. There is an after match scramble for positions called the SOAP.
Students rank multiple programs, in order of preference. Programs rank multiple students, in order of preference, typically 10 times the number of actual positions they can offer (our program has 13 positions, ranks 130 students)

OK. so thinking about the algorithm. Remember this involves tens of thousands of people and positions.
For each student, see if their first choice ranked them high enough to be in the program (in our case, top 13). If so, consider them matched, remove them from all other program lists where they were ranked, move to the next student
If not high enough on list, move to next student to see if they got their first pick.
Once you have gone through all the first picks, now go back - the program that the first student had ranked first may now have an opening, as the top choices of that program have gone elsewhere.
Only once that top choice program is full do you move to the second choice of the student.

Complex algorithm, right? Yet it has defined where doctors do their training for many decades (I went through it in 1982).

Fun project to think about....
Reply


Forum Jump:

User Panel Messages

Announcements
Announcement #1 8/1/2020
Announcement #2 8/2/2020
Announcement #3 8/6/2020