問題描述如下:
有n個男生和n個女生,找出一種穩定的匹配方式,滿足以下條件:
1. 每個男生能且只能匹配乙個女生。
2. 每個男生將所有女生排序形成乙個列表,從最喜歡到最不喜歡依次排列。
3. 每個女生將所有男生排序形成乙個列表,從最喜歡到最不喜歡依次排列。
不穩定因素:如果在已經匹配好的方案中,存在某個男生,更喜歡他配偶以外的女生,且那個女生也更喜歡他,則該男生與女生則為一對不穩定因素。注意,單方面更喜歡並不是不穩定因素。
穩定匹配:保證完美匹配且不存在不穩定因素。
一種穩定匹配演算法:propose-and-reject algorithm. [gale-shapley 1962]
while (some man is free and hasn't proposed to
every woman)
通俗來講就是:
從男生集合中選擇一位男生,根據他的偏好列表,從沒有嘗試過的第一位女生開始嘗試匹配。
如果對應的女生沒有配偶,或者該女生有配偶但更喜歡當前男生。那麼這個女生就會答應當前男生,並t掉之前的配偶。
否則,女生拒絕當前男生,進行下一次迴圈。
演算法的時間複雜度為o(n^2)
注意,穩定匹配不一定存在,如果待匹配的兩個集合互不相關,則一定存在穩定匹配;如果是乙個集合中的元素互相匹配,則不一定有穩定匹配。
乙個反例:
穩定匹配問題
讀自 演算法設計 問題描述 在n個男人和n個女人之間進行匹配,使得匹配結果是穩定的,即假設存在m偏愛w而不偏愛w 存在w偏愛m,而不偏愛m 若存在 m,w 和 m w 屬於匹配結果s,由於m會掙脫w 去找w,w會掙脫m 去找m,所以該匹配結果是不穩定的。g s演算法如下 初始時所有的m m和w w都...
穩定匹配問題
完美匹配 假設有n個男人和n個女人,如果男人和女人匹配結成一對,是為完美匹配 不穩定匹配 假設有兩對夫婦 while 存在乙個男人m且還有他未求婚的婦人 else 已經和其他男人約會了 else 那麼如何證明這個演算法的有效性呢?一,證明其為完美匹配 用反證法,假如最後還余乙個單身男性,那麼自然以餘...
男女穩定匹配問題 貪心
今天上課研究生學長講了乙個問題,男女穩定匹配問題,作為乙隻單身狗覺得這個問題很有意思,下課就試著自己寫了下 現有n個男生與n個女生,一男一女配對,要求 配對的男生與女生互相都是稱心的 中意的,且配偶中任乙個人都不能有其他彼此更中意的異性。即若給定 a,b 和 c,d 分別是兩對配偶,若a和d彼此的喜...