Hi!

I am interested in an algorithmic question. I'm not at all a specialist but I'm interested in this for very pragmatic reasons that you will understand. Maybe the problem is well known.

In a recruitment procedure, some candidates apply to several positions at different Universities. Each university ranks the candidates. Each candidate indicates its ordered preference list.

First question: What is an optimal solution of this problem?

Second question: Are there algorithms that find optimal solutions?

Let me give you an example of the bad things that can happen

Assume there are 2 positions and 2 candidates only. Each candidate is ranked second at its prefered university. Then the algorithm should give to each one its prefered university (although the candidate is ranked second).

Here the solution looks quite easy, but if there are 100 positions and a 100 candidates with each one a different "first choice", and if each candidate is ranked 100th at the university he/she prefers, then the algorithm should be able to figure it out and give every candidate its first choice.

I know the ministry of education has one algorithm, but I don't know if it is optimal (it actually relies on the fact that usually everyone has more or less the same "first choice" and so the best candidates choose, then the seconds, etc...)