首页 > 学院 > 开发设计 > 正文

稳定匹配问题

2019-11-11 05:16:57
字体:
来源:转载
供稿:网友

完美匹配:假设有N个男人和N个女人,如果男人和女人匹配结成一对,是为完美匹配 不稳定匹配: 假设有两对夫妇

while(存在一个男人m且还有他未求婚的妇人){ w=m未求婚过的最喜欢的女人 if(w是自由身) { 将(w,m)设置为约会状态 } else //已经和其他男人约会了 { m*=w当前约会的女人 if(w更喜欢m*) { m保挂单身 } else { m和W约会 m'就自由了 } }}

那么如何证明这个算法的有效性呢? 一,证明其为完美匹配: 用反证法,假如最后还余一个单身男性,那么自然以余下的一女子匹配了 二,证明其为最稳定匹配: 用反证法,假如有两个匹配(m1,w1),(m2,w2),m1更喜欢w2,w2更喜欢m1。然后由于m1更喜欢w2,所以m1必然向w2求过婚。假如w2拒绝的话,那么原因必然是存在一个她更喜欢的m*的存在。倘若W*存在的话,也论不到资格更低的w2的存在了。


上一篇:建造者模式

下一篇:Ruby的gem是什么

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表