獲得諾獎(jiǎng)的穩(wěn)定匹配理論之TTC算法與GS算法

引言

在生活和工作中經(jīng)常會(huì)遇到一些需要資源分配的時(shí)候,例如

  1. 公司發(fā)的禮物不喜歡崔列,想跟其他人換
  2. 在線扭蛋機(jī)的交換系統(tǒng)實(shí)現(xiàn)
  3. 求職offer的選擇
  4. 高考投檔系統(tǒng)實(shí)現(xiàn)

其中1腊满、2屬于單邊匹配钢拧,匹配由單邊期望決定,即“買方”決定最蕾;3依溯、4屬于雙邊匹配問題,匹配過程需考慮“買賣雙方”的期望瘟则。

在通常情況下黎炉,我們期望獲得一個(gè)盡可能合理而穩(wěn)定的分配結(jié)果,使得最終整體收益最大化醋拧。

羅伊德-沙普利(Lloyd S. Shapley)與他人提出了一系列市場(chǎng)的穩(wěn)定配置機(jī)制慷嗜,為博弈論和經(jīng)濟(jì)學(xué)領(lǐng)域做出了巨大的貢獻(xiàn)淀弹,最終與艾爾文-羅斯(Alvin E. Roth)一同獲得2012年獲諾貝爾經(jīng)濟(jì)學(xué)獎(jiǎng)。

背景

之前寫過在業(yè)務(wù)中遇到了判定業(yè)務(wù)庆械,而該判定業(yè)務(wù)實(shí)際上是一組給定對(duì)象與另一組給定對(duì)象的匹配問題:

  • 集合(a, b, c, d)與集合(A, B, C, D, E)的匹配問題薇溃,最終得到的結(jié)果是多組一對(duì)一關(guān)系
  • 在匹配過程中,有可能出現(xiàn)匹配錯(cuò)誤導(dǎo)致的多對(duì)一匹配結(jié)果
  • 為解決匹配沖突缭乘,需要對(duì)匹配結(jié)果進(jìn)行調(diào)整沐序,做到“盡可能讓每個(gè)對(duì)象都滿意”,即達(dá)到局部最優(yōu)堕绩,資源分配合理的狀態(tài)

在調(diào)整匹配的過程為達(dá)到資源分配的穩(wěn)定性考慮了結(jié)果的優(yōu)先級(jí)排序策幼。當(dāng)時(shí)并不清楚這樣做是否能達(dá)到最優(yōu)效果,在無意間了解到資源分配的“強(qiáng)核配置”這一概念后逛尚,發(fā)現(xiàn)自行實(shí)現(xiàn)的分配算法邏輯與博弈中的GS算法相同垄惧。確認(rèn)該方式可以做到資源分配穩(wěn)定的同時(shí)刁愿,也了解到適用于其他分配場(chǎng)景的實(shí)用算法绰寞,在此希望能通俗易懂地介紹給大家。

強(qiáng)核配置

強(qiáng)核配置即滿足個(gè)體合理性的同時(shí)滿足帕累托最優(yōu)狀態(tài)铣口。
強(qiáng)核配置在匹配中不僅是存在的滤钱,而且是唯一的,具有抗策略性脑题,即私下交易或說謊都不會(huì)使得結(jié)果變得比強(qiáng)核配置的結(jié)果更好件缸。

帕累托最優(yōu)

帕累托最優(yōu)(Pareto Optimality),也稱為帕累托效率(Pareto Efficiency)叔遂,是指資源分配的一種理想狀態(tài)他炊,假定固有的一群人和可分配的資源,從一種分配狀態(tài)到另一種狀態(tài)的變化中已艰,在沒有使任何人境況變壞的前提下痊末,使得至少一個(gè)人變得更好,這就是帕累托改進(jìn)或帕累托最優(yōu)化哩掺。

帕累托最優(yōu)狀態(tài)就是不可能再有更多的帕累托改進(jìn)的余地凿叠;換句話說,帕累托改進(jìn)是達(dá)到帕累托最優(yōu)的路徑和方法嚼吞。

——百度百科

算法介紹

Top Trading Cycle Algorithm

首位交易循環(huán)算法算法盒件,在1974年提出,下稱TTC算法舱禽。

適用于“分配”或“交易”場(chǎng)景炒刁,即單邊匹配問題。

問題引入

一些公司在節(jié)日時(shí)給員工發(fā)不同顏色的禮品誊稚,員工在抽到獎(jiǎng)品后對(duì)顏色不滿意翔始,希望跟其他人交換更喜歡顏色的獎(jiǎng)品飒筑。

對(duì)于員工而言,喜歡的顏色不盡相同绽昏,或許與其他人交換之后能獲得各方更滿意的結(jié)果协屡。

問題定義

簡(jiǎn)單起見,我們把問題簡(jiǎn)化全谤,定義一些限制條件:

  1. 給定員工集合E=e1, e2, e3, e4
  2. 給定員工對(duì)應(yīng)的禮物G=<e1, g1>, <e2, g2>, <e3, g3>, <e4, g4>
  3. 參與的各方都滿意才能交換
  4. 可以不與他人交換

TTC算法步驟

  1. 每位員工對(duì)每個(gè)禮物的滿意程度排序
  2. 員工提出當(dāng)前最滿意的禮物肤晓,將員工與期望禮物間建立一條邊,同時(shí)將禮物與其主人間建立一條邊
  3. 尋找建立的邊是否形成了循環(huán)认然,允許自循環(huán)补憾,可能有多個(gè)循環(huán)
  4. 循環(huán)中的員工交換禮物,停止參與交換
  5. 剩余員工將循環(huán)中的名單從表中去除卷员,繼續(xù)提出當(dāng)前最滿意的禮物盈匾,迭代尋找循環(huán)
  6. 交換全部完成,結(jié)束

案例演示

根據(jù)滿意程度組成的表格毕骡,按滿意度從高(左)到低(右)排序削饵,以及建立的有向圖
<e1, g3>與<e3, g1>形成了循環(huán),達(dá)成交易并離場(chǎng)
<e2, g4>與<e4, g2>形成了循環(huán)未巫,達(dá)成交易并離場(chǎng)窿撬,所有交易都已完成

算法的核心思想:根據(jù)當(dāng)前優(yōu)先級(jí)順序形成交換循環(huán),意見達(dá)成一致的員工與禮物優(yōu)先交換并離場(chǎng)叙凡,剩下的員工從滿意度表中去除已離場(chǎng)禮物后繼續(xù)嘗試形成交換循環(huán)劈伴。

問題解決

TTC有一些特點(diǎn):

  1. 每次迭代一定存在循環(huán),即使是自循環(huán)
  2. 多個(gè)循環(huán)之間一定不會(huì)出現(xiàn)相交握爷,因?yàn)槊總€(gè)節(jié)點(diǎn)只有一條出邊
  3. 能換到的禮物一定不比已有的差跛璧,因?yàn)樽畈钋闆r下會(huì)形成自循環(huán)而離場(chǎng)

盡管我們平常交換公司禮物的方式也是使用TTC算法,但通常來說卻少足夠的候選交易池和一定的規(guī)則新啼,最終的結(jié)果不一定能達(dá)到最優(yōu)追城。

補(bǔ)充

TTC算法可以獲得強(qiáng)核配置,強(qiáng)核配置具有抗策略性师抄,說謊或私下交易都不會(huì)讓結(jié)果變得更好漓柑。

做個(gè)不嚴(yán)謹(jǐn)?shù)暮?jiǎn)單證明:

  1. 第一輪交易成功的員工們,說謊或私下交易只會(huì)讓結(jié)果更壞叨吮,畢竟已獲得最滿意結(jié)果了
  2. 第二輪交易成功的員工辆布,無論自身的滿意度排序如何也無法改變一輪交易成功的循環(huán),因此不可能變得更好茶鉴;私下交易也會(huì)損害全局利益
  3. 類推第三輪等

Gale-Shaply Algorithm

蓋爾-沙普利算法锋玲,又稱Deffered Acceptance Algorithm,延遲接受算法涵叮,在1962年提出惭蹂,下稱GS算法或延遲接受算法伞插。

適用于“配對(duì)”場(chǎng)景(并非必須一對(duì)一),即雙邊匹配問題盾碗。

問題引入

求職是一個(gè)雙向選擇的過程媚污,需要公司認(rèn)可求職者并下發(fā)offer之后,求職者基于手中的offer對(duì)比廷雅,并做出接受或拒絕的判斷耗美。
對(duì)于求職者而言,offer明顯需要基于多重考量后選取最優(yōu)的結(jié)果航缀;對(duì)于公司而言商架,職位是有限的,因此招到的員工在公司能力評(píng)估排序中越靠前越好芥玉。
雙方都希望從這個(gè)匹配中達(dá)到最大化收益蛇摸,那么怎樣的發(fā)/接offer策略會(huì)達(dá)到整體收益最大化即帕累托最優(yōu)呢?

問題定義

同樣簡(jiǎn)單起見灿巧,定義一些限制條件:

  1. 給定公司集合C=c1, c2, c3, c4
  2. 給定求職者集合E=e1, e2, e3, e4赶袄,對(duì)C中每個(gè)公司都提出求職申請(qǐng)
  3. 每個(gè)公司只錄取一名求職者,每個(gè)求職者只接受一個(gè)offer

GS算法步驟

  1. 每個(gè)公司為每名求職者進(jìn)行滿意度排序砸烦,求職者對(duì)每個(gè)公司的offer進(jìn)行滿意度排序
  2. 每家公司優(yōu)先給排序靠前的求職者發(fā)offer弃鸦,如果被拒絕則繼續(xù)給下一位發(fā)offer
  3. 求職者在收到offer后并不馬上決定绞吁,而是等待收到其他offer后進(jìn)行對(duì)比幢痘,僅保留最滿意的offer,回絕其他offer
  4. 計(jì)算過程為:C方發(fā)一輪offer->E方?jīng)Q策->C方發(fā)一輪offer->E方?jīng)Q策......
  5. 當(dāng)所有決定不再變動(dòng)時(shí)家破,分配結(jié)束颜说,求職者接受手中offer

案例演示

C方與E方滿意度排序組成的表格以及第一輪offer發(fā)放情況,其中 n, m 表示公司對(duì)求職者的排位(左)及求職者對(duì)公司的排位(右)
e1獲得了2個(gè)offer并通過比較拒絕了c2的offer
c2給下一候選人e4發(fā)offer汰聋,e4通過比較拒絕了c4的offer
c4給下一候選人e2發(fā)offer门粪,e2通過比較拒絕了c3的offer
c3給下一候選人e1發(fā)offer,e1通過比較拒絕了c1的offer
c1給下一候選人e2發(fā)offer烹困,e2通過比較拒絕了c1的offer
c1給下一候選人e3發(fā)offer玄妈,此時(shí)匹配達(dá)到穩(wěn)定狀態(tài)

達(dá)到穩(wěn)定狀態(tài)后,資源得到最大化利用髓梅。

算法的核心思想:主動(dòng)方(C方)按照優(yōu)先級(jí)申請(qǐng)匹配拟蜻,而被動(dòng)方(E方)根據(jù)優(yōu)先級(jí)進(jìn)行比較,只保留最合適的匹配申請(qǐng)最后統(tǒng)一決定枯饿,最終達(dá)到穩(wěn)定匹配酝锅,因此被稱為“延遲接受”。

問題解決

GS算法被證明不會(huì)無限循環(huán)執(zhí)行奢方,最終狀態(tài)會(huì)達(dá)到穩(wěn)定的匹配狀態(tài)搔扁。這一點(diǎn)比較好理解爸舒,畢竟任何公司發(fā)offer的對(duì)象不會(huì)重復(fù)且在排序表上越來越靠后,最差情況下需執(zhí)行n^2次稿蹲,其他一些證明在參考文獻(xiàn)中有提到扭勉。

當(dāng)然,實(shí)際情況下受到崗位數(shù)量苛聘、offer期限剖效、發(fā)offer時(shí)間等的影響問題會(huì)變得復(fù)雜很多,但核心還是保持不變的焰盗。

仔細(xì)想想璧尸,我們?cè)趯?shí)際發(fā)/接offer時(shí)不也幾乎都是這樣決策的嗎?這說明在長(zhǎng)期的勞資雙方博弈下延遲接受算法確實(shí)是一種實(shí)現(xiàn)各方利益最大化的良好選擇熬拒,也經(jīng)受住了市場(chǎng)的考驗(yàn)爷光。

在最理想的狀態(tài)下,所有C方統(tǒng)一發(fā)offer澎粟,E方統(tǒng)一接受/拒絕蛀序,可以達(dá)到整體利益的最大化。但對(duì)于競(jìng)爭(zhēng)力弱的主動(dòng)方公司來說活烙,自身需求可能得不到較好的滿足徐裸,因此出現(xiàn)offer決策時(shí)間短(不允許延遲決策的情況可以參考秘書問題)、提前發(fā)offer搶人等操作啸盏,導(dǎo)致整體資源分配不穩(wěn)定不合理重贺,甚至產(chǎn)生惡性競(jìng)爭(zhēng)。

補(bǔ)充

有趣的是回懦,對(duì)于上文給出的案例數(shù)據(jù)气笙,會(huì)發(fā)現(xiàn)各位求職者拿到的都不是最滿意的那個(gè)offer,各公司招到的員工也不是最滿意的那個(gè)怯晕,比如最優(yōu)秀的e1求職者和c4公司潜圃。這也沒辦法,誰讓你在最心儀的公司/員工面前表現(xiàn)那么差(末位)呢舟茶?這說明也許匹配的過程中雙方看對(duì)眼或許比自身?xiàng)l件還重要谭期。(同樣適用于找對(duì)象場(chǎng)景)

在如下場(chǎng)景中,由C方主動(dòng)發(fā)起匹配和由E方主動(dòng)發(fā)起匹配最終GS算法的結(jié)果是不一樣的吧凉。由C發(fā)起的穩(wěn)定匹配對(duì)于C而言結(jié)果更好隧出;而由E發(fā)起的則完全相反。所以客燕,盡量在這樣的匹配場(chǎng)景中掌握主動(dòng)權(quán)鸳劳,或許會(huì)給自己帶來更好的結(jié)果。(這條在找對(duì)象場(chǎng)景也適用也搓,hhh)

image

GS算法對(duì)于主動(dòng)方具有抗策略性赏廓。

總結(jié)

穩(wěn)定匹配理論在不增減資源的前提下涵紊,僅僅對(duì)現(xiàn)有資源進(jìn)行重新排列組合,就能使各方都達(dá)到相對(duì)滿意狀態(tài)幔摸,整體達(dá)到最優(yōu)摸柄。在升學(xué)志愿、學(xué)校分配既忆、捐獻(xiàn)器官交換驱负、崗位分配等領(lǐng)域,這些理論思想都有得到廣泛應(yīng)用患雇,在匹配問題也比較常見的計(jì)算機(jī)領(lǐng)域應(yīng)該也有不少應(yīng)用場(chǎng)景跃脊。

參考資料

SF2972: Game theory - www.kth.se

蓋爾-沙普利算法 - 百度百科

雙邊匹配理論及其應(yīng)用研究新進(jìn)展[張衛(wèi)東,黃春華]pdf下載

Stable Matching-穩(wěn)定匹配問題 - 橡膠大口吃のBlog

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末苛吱,一起剝皮案震驚了整個(gè)濱河市酪术,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌翠储,老刑警劉巖绘雁,帶你破解...
    沈念sama閱讀 217,542評(píng)論 6 504
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異援所,居然都是意外死亡庐舟,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,822評(píng)論 3 394
  • 文/潘曉璐 我一進(jìn)店門住拭,熙熙樓的掌柜王于貴愁眉苦臉地迎上來挪略,“玉大人,你說我怎么就攤上這事废酷∥灵荩” “怎么了?”我有些...
    開封第一講書人閱讀 163,912評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵澈蟆,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我卓研,道長(zhǎng)趴俘,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,449評(píng)論 1 293
  • 正文 為了忘掉前任奏赘,我火速辦了婚禮寥闪,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘磨淌。我一直安慰自己疲憋,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,500評(píng)論 6 392
  • 文/花漫 我一把揭開白布梁只。 她就那樣靜靜地躺著缚柳,像睡著了一般埃脏。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上秋忙,一...
    開封第一講書人閱讀 51,370評(píng)論 1 302
  • 那天彩掐,我揣著相機(jī)與錄音,去河邊找鬼灰追。 笑死堵幽,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的弹澎。 我是一名探鬼主播朴下,決...
    沈念sama閱讀 40,193評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼苦蒿!你這毒婦竟也來了桐猬?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,074評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤刽肠,失蹤者是張志新(化名)和其女友劉穎溃肪,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體音五,經(jīng)...
    沈念sama閱讀 45,505評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡惫撰,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,722評(píng)論 3 335
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了躺涝。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片厨钻。...
    茶點(diǎn)故事閱讀 39,841評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖坚嗜,靈堂內(nèi)的尸體忽然破棺而出夯膀,到底是詐尸還是另有隱情,我是刑警寧澤苍蔬,帶...
    沈念sama閱讀 35,569評(píng)論 5 345
  • 正文 年R本政府宣布诱建,位于F島的核電站,受9級(jí)特大地震影響碟绑,放射性物質(zhì)發(fā)生泄漏俺猿。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,168評(píng)論 3 328
  • 文/蒙蒙 一格仲、第九天 我趴在偏房一處隱蔽的房頂上張望押袍。 院中可真熱鬧,春花似錦凯肋、人聲如沸谊惭。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,783評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽圈盔。三九已至豹芯,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間药磺,已是汗流浹背告组。 一陣腳步聲響...
    開封第一講書人閱讀 32,918評(píng)論 1 269
  • 我被黑心中介騙來泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留癌佩,地道東北人木缝。 一個(gè)月前我還...
    沈念sama閱讀 47,962評(píng)論 2 370
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像围辙,于是被迫代替她去往敵國(guó)和親我碟。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,781評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容