穩定婚姻是組合數學裡面的乙個問題。
問題大概是這樣:有乙個社團裡有n個女生和n個男生,每位女生按照她的偏愛程度將男生排序,同時每位男生也按照自己的偏愛程度將女生排序。然後將這n個女生和n個男生配成完備婚姻。
如果存在兩位女生a和b,兩位男生a和b,使得a和a結婚,b和b結婚,但是a更偏愛b而不是a,b更偏愛a而不是b,則這個婚姻就是不穩定的,a和b可能揹著別人相伴而走,因為他倆都認為,與當前配偶比起來他們更偏愛各自的新伴侶。
如果完備婚姻不是不穩定的,則稱其是穩定的。通過證明,可以得到每乙個n女n男的社團,都存在穩定婚姻的結論。但是這種情況只在異性的社團中存在。也就是說在同性的社團裡面,穩定婚姻的存在性將不再被保證。
gale-shapley 演算法
while 存在男人m是自由的且還沒對每個女人都求過婚
選擇這個男人
m 令w是m的優先表中還沒求過婚的最高排名的女人
if w
是自由的
(m,w)變成約會狀態
else w
當前與m1約會
if w
更偏愛m1而不愛
mm保持自由
else w
更偏愛m而不愛
m1 (m,w)變成約會狀態
m1變成自由
endif
endif
endwhile
poj 3487
穩定婚姻問題
著名的穩定婚姻問題是美國數學家 經濟學家lloyd stowell shapley 1923 提出的。下面介紹一下背景 某單位有n個姑娘w1,w2,wn和n個小伙m1,m2 mn。每位姑娘對所有小伙有乙個滿意度排序,每位小伙對所有姑娘也有一滿意度排序。m1 w2 w1 w3 w1 m1 m3 m2 ...
穩定婚姻問題模板
題目鏈結 這題寫的一把辛酸淚,第一次用getchar 讀入,再加上很少用scanf 讀入字元,被輸入輸出緩衝安排的明明白白,最後放棄 用cin,還是死活沒有輸出,最後才發現是因為for迴圈多加了一步,白被坑了有一天。演算法分析 首先把每個男士加入佇列,讓每乙個沒配對的男士去向女士請求配對,如果女士沒...
穩定婚姻匹配
要求按照書中 page 5 的 g s 演算法寫乙個匹配程式 由男方發起邀請 第一行資料表示 man woman 的數目 n 接下來的資料中,第乙個 n n 的資料塊表示 man 的優先列表 另乙個 n n 的資料塊表示 woman 的優先列表 5 man woman 的數目 n 2 1 4 5 3...