内容简介:连续数月的阴雨绵绵,江南烟雨似乎没有停止的迹象,近日又迎来了下半年目前为止最猛烈的寒潮,无论哪一个都是我超级期待和喜欢的,这样的天气,不适合睡觉。一个很不错的算法,先给出一个概念,来自百度百科:
连续数月的阴雨绵绵,江南烟雨似乎没有停止的迹象,近日又迎来了下半年目前为止最猛烈的寒潮,无论哪一个都是我超级期待和喜欢的,这样的天气,不适合睡觉。
一个很不错的算法, 稳定婚姻算法 。
先给出一个概念,来自百度百科:
稳定婚姻问题 : https://baike.baidu.com/item/稳定婚姻问题/12760040
再给出一篇博客链接:
什么是算法:如何寻找稳定的婚姻搭配 : http://www.matrix67.com/blog/archives/2976
这个话题起源于一次相亲活动,最终落实到了一个算法。算法简要记述如下:
初始:两个单身集合:男-M,女-F 算法过程: while M非空 m = M取出一个 f = 未拒绝过m的F集合中自己最心仪的 if f是单身 f嫁给m m从M集合移除 else if f比现有丈夫m'更喜欢m f和m'离婚 f重新嫁给m m'进入单身集合M else m重新进入单身集合M end-if end-if end-while
算法本身本文不再赘述,本文聊一些不那么技术的东西,来看看这个稳定婚姻匹配算法都用在什么场合。
名字说是 稳定婚姻算法 ,但实际上,这个算法 最不适用 的场景就是配婚的场景,或者说,真正的婚姻可能一辈子都在实施这个算法,而不是在配婚的当时。至少可以肯定的是,婚姻完全是一个超级复杂的话题,不可能用算术加加减减就能理清的…
这个算法有点名不符实了。
本质上,这个名不符实的算法是一个 m对n的资源/用户配对 算法。典型的场景就是房产中介,互联网公司猎头,GSLB,推荐系统等。
-
房产中介
如果M集合为一群要买房子的人,F集合为一堆房子资源,那么m对f的心仪程度要综合考虑是否学区方,价格是否够低,周边配套设施等。
如果M集合是一堆房子资源,F集合是一群要买房子的人,那么m对f的心仪程度则变成了是否能承受高价,付款是否快,是否全款等。
房产中介作为算法的实施者,最终需要将房子卖给最适合的人,同时为找房子的人找到合适的房子。
-
互联网公司猎头
为什么要加上定语“互联网公司”?因为这个行业存在大量的公司,同时存在大量时刻蠢蠢欲动的从业人员,每年都会有固定的几个月,海量的从业人员在海量的公司之间大洗牌,这个时候,猎头就要实施稳定婚姻算法了。具体就不描述了。
-
GSLB
随着CDN的逐渐流行,当你访问一个站点的时候,为你提供服务的已经不再是那唯一的源站或者运行着反向代理负载均衡的源站了,而是离你最近的CDN节点!
那么,如果和来自各地的访问不同资源的请求在分布于各地的CDN节点中分配一个最适合它的,就需要DNS服务去实施稳定婚姻算法了,当然这里面可能是一个双向实施的过程,即既要为用户请求分配一个最适合的CDN节点,也要为CDN节点受理一个最合适的请求。
-
推荐系统
这个比较有意思。以广告投放为例。
大量的商品如何精准对应大量的人群,这就需要推荐系统运行实施稳定婚姻算法了。
当然,推荐系统本身复杂得很,不仅仅是一个稳定婚姻算法就能覆盖的
-
…
事实上,只要是m对n的匹配系统,均可以用稳定婚姻算法来求最优解,这个和1对n的系统是不同的。我来简单说明一下。
1对n系统,典型就是LVS负载均衡,当一个请求来到时,显而易见,需要在n个服务器中选择一个最适合的,算法就结束了。然而如果同时来了m个请求,就不能这么简单了,我们为这m个请求中的其中1个请求假设为c1,按照负载均衡算法分配了一台服务器k,但是k是不是更适合服务另一个请求c2呢?这就是一个问题,所以为c1这个请求分配服务器的过程并没有就此结束,c1只是 暂时 和k配成了对,搞不好最终的结果会推翻这个结论,让c2和k配成一对。
这里要解释的一点是,如果k已经许给了c1,那么k为什么不能再许给c2呢?并不是因为这可能会增加k的负载,构成一个非最优的匹配,而是因为 k许给了c1这件事会改变系统的稳定性 。
所以,m对n的匹配系统必须执行某种程度的 双向匹配 机制,但是匹配的过程必然是按照某种顺序在进行,每一轮的过程必然会沉淀下来一定的稳定组合,所以 必然存在匹配集合双方一方越来越高概率匹配到更好的,而另一方则越来越高概率匹配到更差的 。因此,没有什么所谓的双向选择机制是 完全对等 的!这可以很好的解释甲方和乙方的非对等性。
一直在下雨,非常爽!有几多皮鞋:mans_shoe:进水湿,更有几多皮鞋进水胖?
浙江温州皮鞋湿,下雨进水不会胖!
以上所述就是小编给大家介绍的《“稳定婚姻算法”雨夜谈-M/N资源匹配问题》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
系统程序员成长计划
李先静 / 人民邮电出版社 / 2010-04 / 45.00
在学习程序开发的过程中,你是否总是为自己遇到的一些问题头疼不已,你是否还在为写不出代码而心急如焚?作为软件开发人员,你是否时时为自己如何成为一名合格的程序员而困惑不已?没关系,本书将为你排忧解难。 这是一本介绍系统程序开发方法的书。书中结合内容详尽的代码细致讲述了不少底层程序开发基础知识,并在逐步深入的过程中介绍了一些简单实用的应用程序,最后还讲述了一些软件工程方面的内容,内容全面,语言生动......一起来看看 《系统程序员成长计划》 这本书的介绍吧!