假設有三男(分別是 A ,B ,C )和三女(分別是 x,y ,z ),他(她)們對異性的心儀程度如對話框所示。算法
好比對於男 A 來講,心儀對象排名爲 x 排第一,y 排第二,z 排第三。設計
今天是特殊節日,你化身爲丘比特,來設計一個算法分配對象。對象
下面以男生主動追求對象爲例來說解 當即接受算法。blog
一開始男生們都去追求本身 最 心儀的女生,而女生們面對追求者們馬上作出決定肯定對象(若是有多個追求者則選擇他們以前心儀程度更高的那個,只有一個的話那就只能選他)。it
而後,被拒絕的男生們立刻再去追求第二心儀的女生,以此類推,直到配對完畢,如動圖所示。im
這樣作法有一個很嚴重的問題:當你被你的 No.1拒絕後,再去追求你的 No.2 的時候,你心中的 No.2 可能已經在第一輪中選擇了其餘人,好比男生 B 在第一輪去表白女生 x,表白失敗後想去追求 y,但女生 y 已經和 C 在一塊兒了,悲劇的是 y 眼中的真命天子正是一開始沒來表白的男生 B。d3
最終的匹配狀況以下圖所示。img
雖然如今匹配結束出結果了,每一個男生和女生都有對象,可是會出現如下狀況。時間
對於男生 B 來講,雖然他和女生 z 在一塊兒,但其實他更指望和 y 在一塊兒(注意 A 與 x 都是雙方的摯愛,拆不開的)。co
同時,對於女生 y 來講,雖然她和男生 C 在一塊兒,但其實她更指望和 B 在一塊兒。
即男生 B 和女生 y 都更願意離開本身的現任對象而彼此在一塊兒。
因此,使用當即接受算法匹配後的結果是一種不穩定的狀態結果。
「蓋爾-沙普利算法」(the Gale-Shapley algorithm),也被稱爲「延遲接受算法」(deferred-acceptance algorithm),簡稱「GS算法」。
目前該算法在 高中擇校系統、腎臟移植 等實際應用上起到了巨大的做用,你甚至能夠在 2012 年諾貝爾經濟學獎中看到它的身影。
這個算法一個核心之處在於,合意的要約不會當即被接受,而只是被「抓住」(hold on to),也就是「延遲接受」。
仍是以男生主動追求對象爲例來說解 延遲接受算法。
首先每一個男生在第一輪中向本身最心儀的女生表白,可是各位女生不用當即作決定,而是先 hold 住。
第一輪,男生 A 和男生 B 都跟女生 x 表白,女生 x 按捺激動的心情,矜持沒有表態直接選男生 A,只是把男生 A 放入考察範圍
男生 C 跟女生 y 表白,女生 y 略顯失望,但把男生 C 放入了考察範圍。
第二輪,每一個男生再向心中的 No.2 示愛。而且從第二輪開始,每位女生們只保留本身到如今爲止所收穫的最心儀的男生(可是不用答應他,只hold在內心),而拒絕其餘全部人。
而被拒絕的男生(也就是如今尚沒有女生 hold 你的男生)則繼續在下一輪中向心中排名的下一個女生表白。
以此類推,一輪輪繼續下去,直到全部想示愛的男生都示完爲止。
最後,每一個女生手裏都有 hold 的對象。
使用 延遲接受算法 後,最終 A - x ,B - y ,C - z 在一塊兒,而且在這 6 人中,你不可能找到一男一女符合如下條件:他(她)們都更願意拋棄已有的對象而與彼此在一塊兒。
使用 延遲接受算法 匹配後的結果是一種穩定的狀態結果。
最後回到標題,對於愛情問題,上面的蓋爾-沙普利算法告訴咱們一點:
主動追求比被動等待更有但願得到幸福。
因此,若是你沒法讓表白成爲你勝利的號角,那倒在進攻的衝鋒號上也何嘗不可。
若是你以爲該文章不錯,不妨:
一、點贊,讓更多的人也能看到這篇內容(收藏不點贊,都是耍流氓 -_-)
二、關注我,讓咱們成爲長期關係
三、關注公號「五分鐘學算法」,裏面已有 100 多篇算法類原創文章,歡迎各位的關注,第一時間閱讀個人文章。