問(wèn)題來(lái)自于一場(chǎng)“3分鐘相親”活動(dòng),參加活動(dòng)的有n位男士和n位女士。要求每位男士都要和所有的女士進(jìn)行短暫的單獨(dú)交流,并為她們打分,然后按照喜歡程度,對(duì)每一位女士進(jìn)行排序;同樣的,每位女士也要對(duì)所有男士進(jìn)行打分和排序。
在這之后我們?yōu)檫x擇策略為這n位男士和n位女士配對(duì)。使得在婚后不會(huì)有“出軌”的情況發(fā)生。
這里的“出軌”是什么意思:
圖片來(lái)自網(wǎng)絡(luò),僅作舉例之用
定婚姻問(wèn)題.png)
如果以下兩種情況之一發(fā)生,則會(huì)發(fā)生出軌:
- 如果第一對(duì)夫妻中的妻子在婚后覺(jué)得自己的丈夫沒(méi)有第二對(duì)夫妻中的丈夫帥;第二對(duì)夫妻中的丈夫同樣也覺(jué)得自己的妻子沒(méi)有第一對(duì)夫妻中的妻子漂亮
- 如果第一對(duì)夫妻中的丈夫在婚后覺(jué)得自己的妻子沒(méi)有第二對(duì)夫妻中的妻子美;第二對(duì)夫妻中的妻子同樣也覺(jué)得自己的丈夫沒(méi)有第一對(duì)夫妻中的丈夫帥
解決穩(wěn)定婚姻的算法之一:
延遲認(rèn)可算法(Gale-Shapley算法)
先對(duì)所有男士進(jìn)行落選標(biāo)記,稱(chēng)其為自由男。當(dāng)存在自由男時(shí),進(jìn)行以下操作:
- 每一位自由男在所有尚未拒絕她的女士中選擇一位被他排名最優(yōu)先的女士;
- 每一位女士將正在追求她的自由男與其當(dāng)前男友進(jìn)行比較,選擇其中排名優(yōu)先的男士作為其男友,即若自由男優(yōu)于當(dāng)前男友,則拋棄前男友;否則保留其男友,拒絕自由男。
- 若某男士被其女友拋棄,重新變成自由男。
在算法執(zhí)行期間,自由男們
主動(dòng)出擊,依次對(duì)最喜歡和次喜歡的女人求愛(ài),一旦被接受,即失去自由身,進(jìn)入訂婚狀態(tài);而女人們則采取
“守株待兔”和
“喜新厭舊”策略,對(duì)前來(lái)求愛(ài)的男士進(jìn)行選擇:若該男子比未婚夫強(qiáng),則悔婚,選擇新的未婚夫;否則拒絕該男子的求婚。被女友拋棄的男人重獲自由身,重新?lián)碛辛俗非笈说臋?quán)利——當(dāng)然,新的追求對(duì)象比不過(guò)前女友。
這樣,在算法執(zhí)行期間,每個(gè)人都有可能訂婚多次——也有可能一開(kāi)始就找到了自己的最?lèi)?ài),從一而終——每訂一次婚,女人們的選擇就會(huì)更有利,而男人們的品味則越來(lái)越差。只要男女生的數(shù)量相等,則經(jīng)過(guò)多輪求婚,訂婚,悔婚和再訂婚之后,每位男女最終都會(huì)找到合適的伴侶——雖然不一定是自己的最?lèi)?ài)(男人沒(méi)能追到自己的最?lèi)?ài),或女人沒(méi)有等到自己的最?lèi)?ài)來(lái)追求),但絕對(duì)不會(huì)出現(xiàn)“雖然彼此相愛(ài),卻不能在一起”的悲劇,所有人都會(huì)組成穩(wěn)定的婚姻。
posted on 2015-03-09 18:57
JulyRina 閱讀(345)
評(píng)論(0) 編輯 收藏 引用 所屬分類(lèi):
算法專(zhuān)題