“一切算法都是从实际问题出发,深入理解问题内在的组合结构,从算法性着手进行设计。”
Problem
学生申请不同的大学,大学接收不同的学生,能否找到一个自我完善的算法来解决这个问题,使得最终的结果是一个稳定的匹配结果?同样的可以用在求职者与公司的招聘工作中。
稳定匹配(Stable Matching)结果:不能找到一个申请方与一个接收方,使得他们各自都更喜欢彼此而胜过他们当前的匹配。
Formalization:
输入:n个男生与n个女生,每个人都对所有的异性有一个排名,共有2个n*n的排名矩阵。
输出:每个男生和女生的匹配结果,结果中不存在不稳定的匹配。
Key Observation:
结果是一个完整的稳定匹配。
Basic idea:
从一小部分的匹配逐步增长到完整的匹配,并保证没有不稳定的匹配出现在增长的过程中。