介绍稳定匹配
一、穩(wěn)定匹配的定義
1、穩(wěn)定分配方案
這里以碩士研究生與導(dǎo)師之間的雙向選擇為例來說明穩(wěn)定匹配問題。
假設(shè)師生分配問題中一個(gè)老師可以帶三個(gè)學(xué)生,而一個(gè)學(xué)生只能跟一個(gè)導(dǎo)師。這里我們可能提前聯(lián)系的導(dǎo)師有好幾個(gè),可能答應(yīng)了某個(gè)導(dǎo)師后又反悔,導(dǎo)師也可能被很多學(xué)生選擇,所以這里就涉及到一個(gè)分配問題。
若最后的分配方案能保證:
(1)如果有學(xué)生想要換導(dǎo)師,那么沒有教師愿意接受這名學(xué)生。
(2)如果有教師想要換學(xué)生,那么沒有學(xué)生愿意跟隨這位教師。
那么就稱此師生分配方案是穩(wěn)定的。
我們可以對(duì)上述穩(wěn)定分配方案的定義做進(jìn)一步形式化的處理,假設(shè)學(xué)生對(duì)于想選的教師會(huì)有一個(gè)優(yōu)先排名,而教師對(duì)于想要招的學(xué)生也會(huì)有一個(gè)優(yōu)先排名。
如果對(duì)每一個(gè)教師P和每一個(gè)沒有跟隨教師P的學(xué)生S,至少出現(xiàn)下列兩種情形之一:
(1)教師P對(duì)他已經(jīng)接受的每位學(xué)生都比對(duì)學(xué)生S更滿意;
(2)學(xué)生S對(duì)他目前的導(dǎo)師比對(duì)教師P更滿意。
則稱此方案為穩(wěn)定分配方案。
2、不穩(wěn)定分配方案
如果至少存在一個(gè)教師P和一個(gè)沒有跟隨教師P的學(xué)生S,使得以下兩點(diǎn)均滿足:
(1)教師P對(duì)學(xué)生s至少比他所接受的學(xué)生中的一位更滿意;
(2)學(xué)生S對(duì)教師P比對(duì)他目前的導(dǎo)師更滿意。
那么就說明師生分配方案是不穩(wěn)定的。
二、穩(wěn)定匹配的求解
1、G-S算法說明
這里引入G-S算法。
求解穩(wěn)定的師生分配方案的G-S算法敘述如下:
每次只選擇一位學(xué)生S,讓他(她)按照自己的優(yōu)先表從高到低依次找還沒有面談過的教師面談。為公平起見,我們假設(shè)這位學(xué)生是通過完全隨機(jī)的方式選出來的。如果與他(她)面談的教師目前沒有候選的學(xué)生,那么這位教師最安全的做法就是把這位學(xué)生列為候選學(xué)生,即使這個(gè)學(xué)生未必是這位老師的優(yōu)先表中靠前的學(xué)生,因?yàn)槊课唤處煴仨氁獛б幻麑W(xué)生。如果這名教師已經(jīng)有了候選學(xué)生S’,那么他將應(yīng)該比較學(xué)生S和學(xué)生S’ ,并從中挑選一個(gè)作為他的候選學(xué)生。按照這一程序,學(xué)生S必然在這一輪面談后被某個(gè)教師考慮為候選學(xué)生。
然后,再隨機(jī)選擇一位自由的(即還沒有成為候選對(duì)象的)學(xué)生,讓他(她)按照自己的優(yōu)先表從高到低依次找自己還沒有面談過的教師面談,直到成為候選學(xué)生。這一迭代過程一直進(jìn)行下去,直到所有學(xué)生都成為候選學(xué)生或每一個(gè)自由的學(xué)生都與所有教師面談過為止。
在研究上述算法性質(zhì)時(shí),首先要注意到,盡管只有N個(gè)學(xué)生,該算法一般說來未必在N步之后就終止。這是因?yàn)?#xff0c;已經(jīng)成為候選學(xué)生的人有可能在后面的某次迭代中被另一位同學(xué)頂替掉而再次成為完全自由的學(xué)生。因此,針對(duì)該算法我們依次需要考察如下問題:該算法是否會(huì)終止?如果會(huì),迭代多少步之后終止?該算法是否能夠得到一個(gè)完全匹配?如果能,這個(gè)完全匹配是否一定為穩(wěn)定匹配?在回答這些問題之前,首先注意到算法的幾個(gè)似乎是讓學(xué)生越來越沮喪,教師越來越高興的基本事實(shí):
(1)教師P從第一次有學(xué)生去和他面談開始,就一直會(huì)有候選學(xué)生,而且他的候選學(xué)生只會(huì)越變?cè)胶?按照教師P的優(yōu)先表);
(2)學(xué)生S可能會(huì)在候選學(xué)生和自由學(xué)生狀態(tài)之間交替,而且他(她)去面談的教師只會(huì)越變?cè)讲?按照學(xué)生S的優(yōu)先表)。
(3)如果學(xué)生S在算法的某一步是自由的,那么此時(shí),必至少存在一位該學(xué)生沒有面談過的教師。
事實(shí)三意味著算法終止的唯一條件為所有的學(xué)生都是候選學(xué)生,即找不到自由的學(xué)生。
2、G-S算法定理
定理1: G-S算法在至多 N2^22次迭代之后終止,且算法終止時(shí)所得到的集合是一個(gè)完全匹配。
定理2: G-S算法終止時(shí)所得到的集合Ω\OmegaΩ一定是一個(gè)穩(wěn)定匹配。
定理3: G-S算法所有執(zhí)行得到的都是對(duì)學(xué)生最滿意、對(duì)教師最不理想的穩(wěn)定匹配。
定理4 一個(gè)左右節(jié)點(diǎn)數(shù)相同的二分圖存在完全匹配的充要條件是它不包含抑制集。
三、穩(wěn)定匹配的公平性
(1)從學(xué)生角度看,將導(dǎo)致學(xué)生之間的公平性問題:在算法執(zhí)行過程中,是否早被選上的學(xué)生更有利?
(2)因?yàn)樗惴ǖ膬蓚€(gè)基本事實(shí)是學(xué)生越來越沮喪,教師越來越高興,那么會(huì)導(dǎo)致學(xué)生與教師之間的公平性問題:該算法總體上知否對(duì)教師更有利?
對(duì)于第一個(gè)公平性問題,學(xué)生完全不必?fù)?dān)心:算法的每次執(zhí)行得到的都是同一個(gè)集合n。對(duì)于第二個(gè)公平性問題,學(xué)生更加不必?fù)?dān)心:這一算法得到的結(jié)果是對(duì)學(xué)生最有利的。
由此也得出了定理3。
四、完全匹配存在的條件
上述師生分配問題有一個(gè)前提就是每一個(gè)學(xué)生與每一個(gè)教師都有配對(duì)的可能性。但如果教師只愿意接受某幾個(gè)學(xué)生,學(xué)生也只愿意跟隨某幾個(gè)導(dǎo)師,這種情況下就可能不存在完全匹配。
所以完全匹配是存在一定條件的。
假設(shè)有5個(gè)教師和5個(gè)學(xué)生,他們的意愿用上圖左邊的圖表示。例如,教師1只愿意在學(xué)生1和學(xué)生2中做選擇。此時(shí),我們很容易發(fā)現(xiàn)并不存在完全匹配:學(xué)生1、學(xué)生2和學(xué)生3這3個(gè)學(xué)生只愿意在教師1和教師2這兩個(gè)教師之間做選擇。我們稱學(xué)生1、學(xué)生2和學(xué)生3這了個(gè)學(xué)生的集合為一個(gè)抑制集,因?yàn)樗麄兣c二分圖另一端的連接抑制了完全匹配的形成。
一般地,對(duì)于二分圖右端的一組節(jié)點(diǎn)S,如果左端某個(gè)節(jié)點(diǎn)有邊與S中的某個(gè)節(jié)點(diǎn)連接,我們就稱該節(jié)點(diǎn)為S的鄰居節(jié)點(diǎn)。S的所有鄰居節(jié)點(diǎn)的集合記為N(S)。如果S中的節(jié)點(diǎn)數(shù)目嚴(yán)格大于N(S)中的節(jié)點(diǎn)數(shù)目,則右端的節(jié)點(diǎn)集合S是抑制的。
顯然,只要一個(gè)二分圖中存在抑制集,那么就不存在完全匹配。現(xiàn)在的問題是:還有哪些其他因素導(dǎo)致不存在完全匹配?是否會(huì)存在很多這樣的因素?定理4表明,存在抑制集是不存在完全匹配的唯一理由。
總結(jié)