Edit: typo
Edit: typo
>Why did such errors occur?
>When the algorithm finds an ideal candidate for a position, it does not reset the list of remaining candidates before commencing the search to fill the next vacancy. Thus, those candidates who missed out on the first role that matched their preferences are definitively discarded from the pool of available teachers, with no possibility of employment. The algorithm classes those discarded teachers as “drop-outs”, ignoring the possibility of matching them with new vacancies.
And (possibly) also incorrect data:
>Often teachers input the wrong data on the system because of an interface that is not very transparent, complex and difficult to access. The scores can therefore already be distorted upstream, without taking into account human errors by the school offices.” Aspiring teachers often find themselves alone in facing complex procedures and error is often inevitable and sometimes irreparable.
From the sound of things, that may have been happening:
> Moreover, recruitment is not keeping pace with schools' need for teachers, thus leaving hundreds of classroom positions vacant which is affecting the educational progress of students all over Italy.
For example, consider two roles and two applicants, with fit scores as below:
Role 1 Role 2
----- ----- -----
Applicant A 96% 95%
Applicant B 95% 50%
Ignoring the "drop out" bug, under the algorithm described the system would evaluate all candidates for Role 1, determine Applicant A is the best, then move on. At that point, Applicant B is the best candidate for Role 2... even though they're not a very good one. Overall, not a great outcome (73% avg.).You'd think the algorithm would want to maximize outcomes across all roles: the more optimal "best fit" solution would be Applicant B in Role 1 and Applicant A in Role 2 (95% avg).
(I'm assuming the reality here is that Role B isn't available at time of evaluation, so there's no way to evaluate the universe without waiting, which may be sub-optimal.)
This is a very important point. Especially for any algorithm/policy change that affects people's pay, time off, scheduling, etc., it may seem like a reasonable change to you and to management but a lot of people will have a visceral reaction anyway. Not everyone may be happy at the end but it's important they're at least part of the process.
I can write some useful formal properties right here:
- there are n openings and m qualified applicants. At the end of assignment, there should be (m-n) applicants without a role.
- if (m>n), all roles should be filled
- if there are n identical average candidates and m identical ideal candidates, if there are p roles where (p>m), all ideal candidates should get a role
- every candidate not selected should be worse than every candidate selected
- every candidate not selected should have participated in n trials where n is the number of openings
- etc