[Math] Deferred Acceptance Algorithm
一.立即接受算法:
对于约会的配对,大家都去追自己最心仪的女生。而这个女生面对几位追求者,要立刻做个决定。
被拒绝的男生们调整一下心情,再去追求心中的 No. 2。以此类推。
这样做法有一个严重的问题:当你被你的No.1拒绝后,再去追求你的No.2的时候,你心中的No.2可能已经在第一轮中选择了其他人。
但坑爹的是,有可能你正是你心中No.2心中的No.1,但是她并不知道。所以她在第一轮中,因为没有被你追求,而屈就他人。比及你在第一轮中表白失败,再去找你的No.2 时,已然晚矣。
假设班上三男(分别是A,B,C),三女(分别是x,y,z),见图一(左女右男):
他们心中对异性的排名见图二。在女x的心中A>B,意味着A要好于B。
第一轮中,男生们向心中的No.1女示好,即A,B两男向心中最喜欢的x女示好,而C男向y女示好。如图三所示。
(在第一轮,女y 只有一个追求者,只能屈就)
如果采用立即接受算法,此轮之后的结果是,x-A,y-C两对结成情侣。注意,y女虽然心中首选是B男,但是由于B男在此轮中正在追逐x女,无奈下y女屈就于唯一来献殷勤的C男。比及第二轮开始时,唯一还没配对的就是z女和B男了,所以B男只能接受z女。
最后的结果是x-A,y-C,z-B三对恋人。
注意:y女和B男两人都更愿意离开自己的现任伴侣而彼此在一起。
这种不稳定的状态就是很多文学影视作品的来源哈。在数学上,这也恰恰被称为是“不稳定”的组合。顾名思义,我们希望能够有种算法,给我们的结果是所有配对都是稳定的。
二.延迟接受算法
延迟接受算法的操作:每个男生在第一轮中向自己心中的No.1示爱。但是各位姑娘们不用立即决定,而是先hold住了。
在第二轮中,每个男生再向心中的No.2示爱。从第二轮开始,每位姑娘们只保留自己到现在为止所收获的最心仪的男生(但是不用答应他,只hold在心理),而拒绝其他所有人。
而被拒绝的男生(也就是现在尚没有人hold着你的男生)则继续在下一轮中向心中排名的下一个姑娘表白。
以此类推,一轮轮继续下去,直到所有想示爱的男生都示完为止。此时,每个手中有offer的姑娘,可以选择接受。
(感觉就是先让女生获得完全信息)
以上就是立即接受算法的做法。大家算一下,就会发现,在我们这个简单的例子中,最后的结果是x-A,y-B,z-C三组恋人终成眷侣。而这是一稳定的结果。
所有6人中,你不可能找到一男一女符合以下条件:他们都更愿意抛弃已有的伴侣而与彼此在一起。
延迟接受算法能够从数学上证明是一定会产生稳定配对的算法。这使它成为一个重要的工具,因为这类的配对问题在现实生活中太常见了。罗斯在《共享经济》中介绍了他将延迟接受算法分别运用于肾脏移植市场,全国住院医生配对程市场和高中择校系统,实现了稳定的配对,取得了非常好的成果。
Nice.
[Math] Deferred Acceptance Algorithm的更多相关文章
- [Algorithm] Deferred Acceptance Algorithm
约会配对问题 一.立即接受算法: 对于约会的配对,大家都去追自己最心仪的女生.而这个女生面对几位追求者,要立刻做个决定. 被拒绝的男生们调整一下心情,再去追求心中的 No. 2.以此类推. 这样做法有 ...
- [algorithm] My rookie plan to start
若干年后,经验有一些,但根基不牢靠.[algorithm] series 借助学习Standard Template Library: Algorithms的这段时期,在自己的算法和c++基础方面加些 ...
- 本人AI知识体系导航 - AI menu
Relevant Readable Links Name Interesting topic Comment Edwin Chen 非参贝叶斯 徐亦达老板 Dirichlet Process 学习 ...
- [Code] 烧脑之算法模型
把博客的算法过一遍,我的天呐多得很,爱咋咋地! 未来可考虑下博弈算法. 基本的编程陷阱:[c++] 面试题之犄角旮旯 第壹章[有必要添加Python] 基本的算法思想:[Algorithm] 面试题之 ...
- BestCoder Round #70 Jam's math problem(hdu 5615)
Problem Description Jam has a math problem. He just learned factorization. He is trying to factorize ...
- hdu 5615 Jam's math problem(判断是否能合并多项式)
方法一:由十字相乘相关理论我们能知道,如果要有p,k,q,m,那么首先要有解,所以b*b-4*a*c要>0,然而因为p,k,q,m是正整数,所以代表x1,x2都是有理数,有理数是什么鬼呢?就是解 ...
- hdu 5595 GTW likes math(暴力枚举查询)
思路:直接暴力枚举区间[l,r]的整数值,然后max和min就可以了. AC代码: #pragma comment(linker, "/STACK:1024000000,1024000000 ...
- Boost 1.61.0 Library Documentation
http://www.boost.org/doc/libs/1_61_0/ Boost 1.61.0 Library Documentation Accumulators Framework for ...
- iOS苹果官方Demo合集
Mirror of Apple’s iOS samples This repository mirrors Apple’s iOS samples. Name Topic Framework Desc ...
随机推荐
- 如何使用代码动态的获取和设置ImageView的宽度和高度?
http://blog.csdn.net/wulianghuan/article/details/8644144 国内某金融企业的一道面试题:如何在代码中获得一个ImageVIew的高度和宽度? 相信 ...
- 騰訊RTX的API開發,給RTX開個天窗
好多人可能沒聽說RTX這個軟件,在此我簡單說明一下,這個軟件是騰訊為企業開發的一個內部聊天軟件,服務端不是在騰訊那邊,而是需要企業自己安裝到自己公司內部的服務器上,以供企業內部員工交流使用,功能和QQ ...
- git在分支上创建目录和文件
创建一个空目录,在其中初始化git git init 创建一个新文件,此时默认在master分支上 touch file1.txt add到staging area git add file1.txt ...
- iOS javascript js 交互
//JS里的一个回调.比如网页上的某个按钮点一下之后.JS会调用setKey这个方法. JSContext *context1 = [self.startView valueForKeyPath:@& ...
- 如何成为一位优秀的创业CEO
英文原文:How to Be Startup CEO 编者按:本文来自 Ryan Allis,是一位来自旧金山的创业者和投资人.在 2003 年创立了 iContact,并任 CEO. 做创业公司的 ...
- Selenium3笔记-WebDriver源码初探
Selenium3 有哪些变化? 其实相对于与Selenium2,Selenium3没有做太多的改动.下面给出官方的文档说明,供参考. 参考文档:https://seleniumhq.wordpres ...
- 解决方案: scp/ssh 的登陆提示很慢 (Linux)
看着用 windows 的 scp 命令很快很是羡慕. 这个问题让我实实郁闷了好几天. 在 Linux 下不管是用 ssh 还是用 scp, 连接速度都很慢 (登陆提示框的弹出时间). 确切地讲, 每 ...
- how to read from __consumer_offsets topic
来自:http://grokbase.com/t/kafka/users/15bs2r0m83/kafka-0-8-2-1-how-to-read-from-consumer-offsets-topi ...
- “Adobe Flash Player因过期而遭到阻止”的解决办法
谷歌浏览器总是提示“Adobe Flash Player因过期而遭到阻止”,然后点进去,又更新不了,因为伟大的TC已经把谷歌屏蔽了. 解决办法就是到flash官网更新到最新的Flash https:/ ...
- java代写
Computer Science, Claremont McKenna CollegeCS51.2 - Introduction to Computer Science, Fall 2014Probl ...