二分網絡-匹配問題-G-S算法



返回 我的研究方向(Research Interests)



二分圖( Bipartite graph)

給定圖G = (V,E)。如果頂點集V可分為兩個互不相交的非空子集 X 和 Y ,並且圖中的每條邊(i,j)的兩個端點i和j分別屬於這兩個不同的頂點子集,那么就稱圖 G 為一個二分圖( Bipartite graph),記為G= (X,E,Y)。

如果在子集X中的任一頂點i和子集Y中的任一頂點j之間都存在一條邊,那么就稱 圖G 為一個完全二分圖( Complete bipartite graph)

在網絡科學研究中,二分圖也稱為二分網絡(Bipartite network )、從屬網絡( Affiliation network)或二模網絡( Two-mode network )

判斷任意一個連通的網絡是否為二分網絡的一般方法如下:在網絡中任意選取一點,把該節點以及與該節點距離為偶數的所有其他節點的集合記為X,把與該節點的距離為奇數的節點的集合記為Y。如果在集合X和Y的內部都不存在邊,即所有的邊都只存在於集合X和Y之間,那么該網絡就是二分網絡。
下圖中的初始節點為0,箭頭表示尋找集合X 和 Y中的節點時的次序。
image

在通俗的理解下:
二分網絡(或二分圖)是這樣一種網絡:其節點可以分成兩個不相交的節點集合U和V,使得每個鏈接都連接着一個U中的節點和一個V中的節點。換句話說,如果我們把集合U中的節點塗成綠色,把集合V中的節點塗成紫色,則每個鏈接連接着顏色不同的兩個節點。

image-20210401183404113

網絡科學研究中,我們會碰到很多二分網絡。一個著名的例子是好萊塢電影演員網絡,其中一個節點集合對應着電影(記為U),另一個節點集合對應着演員(記為V)。如果某個演員出演了某部電影,則二者之間有一個鏈接。該二分網絡的一個映射網絡是演員網絡——出演過同一部電影的兩個演員之間彼此相連。另一個映射網絡是電影網絡——至少有一個演員相同的兩部電影彼此相連。

二分圖的匹配

二分圖是一種十分有用的網絡模型,許多涉及資源和人員分配的實際問題都可以歸結為二分圖的匹配問題(Matching problem) ,具體定義如下:

(1)匹配(Matching):設G=(X,E,Y)為二分圖,F為邊集 E 的一個子集,即F 包含於 E。如果F中任意兩條邊都沒有公共端點,那么就稱F為圖 G 的一個匹配。

(2)最大匹配(Maximal matching):圖 G 的所有匹配中邊數最多的匹配。

(3) X-完全匹配( X-Perfect matching):集合X中任一頂點均為匹配F中 邊的端點。

(4)Y-完全匹配( Y-Perfect matching):集合Y中任一頂點均為匹配F中 邊的端點。

(5)完全匹配( Perfect matching):F既是X-完全匹配又是Y-完全匹配,此時,集合X和集合Y中的頂點恰好 一 一 對應。

例如,在下圖中,粗線表示匹配中的邊(簡稱匹配邊)。
圖( a)中的匹配不是最大的;圖(b)中的匹配是最大的,X-完全匹配;圖(c)中的匹配是完全的(從而也是最大的)。
image


穩定匹配

穩定匹配的定義

尋找二分圖的一種特定的完全匹配
穩定的完全匹配的算法是由兩個數理經濟學家Gale和Shapley於20世紀60年代提出的,因此稱為Gale-Shapley 算法(簡稱G-S算法)。

這里以碩士研究生與導師之間的雙向選擇為例來說明穩定匹配問題及其求解算法。

師生分配問題

假設碩士研究生人學后的前兩周是師生雙向選擇的時間,通常學生人數要比教師人數多,系里會對每位老師當年能夠招收的研究生設定一個上限,例如至多招3名學生。

師生分配方案的基本要求是:每位學生必須有且只能有一名導師,每位導師至多只能帶3名學生。

系里每年會把所有研究生指導教師的信息提供給所有學生,然后每位學生根據對這些教師的了解及其個人興趣挑選一些老師,並前去與這些老師面談。面談期間往往會發生類似如下的情形:
學生S1、先是去找教師P1,教師P1覺得該學生不錯就考慮接受該學生;
后來學生S1、又去找了教師P2並覺得更願意跟隨教師P2,而教師P2也覺得該學生不錯,於是學生S1就選了教師P2,
這時教師P1會從他面試過的學生中再挑選一名學生S2,而本來教師P3已經答應接受學生S2的,現在學生S2覺得教師P1,更適合他,於是學生S2可能就選擇教師P1而離開教師P3,如此下去有可能引發一系列的連鎖反應。問題是最終能否得到一個穩定的分配方案?

我們首先對問題做進一步的簡化而又保持其本質特征。這里的核心問題是要在許多種可能的分配方案中找到一種穩定的分配方案,學生數比教師數多多少並不是本質問題。

因此,我們不妨假設學生數和教師數一樣多且每位教師恰好帶一名學生。

現在可以給出該問題的完全二分圖表示 G = (X,E,Y),其中X是所有學生的集合,Y是所有教師的集合,兩個集合的人數都為 N 且任一學生和任一教師之間都有一條邊相連。
例如,下圖是一個包含3個學生和3個教師的完全二分圖。
image

一種師生分配方案就對應於完全二分圖G的一個完全匹配(即一一對應)。圖G共有N!種完全分配,對應於N!種可能的師生分配方案。
用蠻力方法比較每一種分配方案顯然是不切實際的。在介紹G-S算法之前,我們先給出穩定的分配方案的如下定義。

一種師生分配方案稱為是穩定的( Stable) ,如果該方案能夠保證:
1、如果有學生想要換導師,那么沒有其他教師願意接受這位學生;
2、如果有教師想要換學生,那么沒有其他學生願意跟隨這位教師。

我們可以對穩定分配方案的定義做進一步的形式化處理。為此,假設:
每個學生都有一個優先表用於對所有教師進行排名:在這個學生的優先表中排名越靠前的教師就是這個學生越想跟隨的教師。
每個教師也有一個優先表用於對所有學生排名:在這個教師的優先表中排名越靠前的學生就是這個教師越想招的學生。
假設所有優先表都不允許出現並列排名。

一種師生分配方案是穩定的,如果對每一個教師Р和每一個沒有跟隨教師P的學生S,至少出現下列兩種情形之一:
1、教師Р對他已經接受的每位學生都比對學生S更滿意;
2、學生S對他目前的導師比對教師Р更滿意。

由這一形式化的定義,我們可以立即知道什么是不穩定的分配方案:
一種師生分配方案是不穩定的(Unstable) ,如果至少存在一個教師Р和一個沒有跟隨教師P的學生S,使得以下兩點均滿足:
1、教師Р對學生S至少比他所接受的學生中的一位更滿意;
2、學生S對教師P比對他目前的導師更滿意。
我們稱教師Р和學生S是這種分配方案的一對不穩定的因素。

穩定匹配的求解

對每組給定的優先表,是否一定存在穩定的分配方案?如果存在,是否能夠有效地求出來?
為了進一步獲得感性認識,我們先看一下最簡單的例子:
假設只有兩個學生{S1,S2}和兩個教師{Pl,P2}。
此時只有兩種可能的分配方案:
方案一:(S1,P1),(S2,P2);
方案二:(S1,P2),(S2,P1)。
假設學生和教師的優先表如下:

  • 學生S1,更想跟隨教師P1而不是P2;學生S2更想跟隨教師P1而不是P2。
    兩個學生對教師的排序完全一致:都更想跟隨教師P1。
  • 教師P1,更想招收學生S1而不是S2;教師P2更想招收學生S1而不是S2。
    兩個教師對學生的排序也完全一致:都更想招收學生S1。

此時,
方案一是唯一的穩定分配方案:學生S1和教師P1都很滿意,他們不會想分開,而學生S2和教師P2想分開也辦不到;
方案二則是不穩定的:學生S1想離開教師P2而跟隨教師P1,而教師P1也想放棄學生S2而接收學生S1。

現在假設學生和教師的優先表如下:

  • 學生S1更想跟隨教師P1而不是P2;學生S2更想跟隨教師P2而不是P1
    各自更想跟隨不同的教師。
  • 教師P1更想招收學生S2而不是S1;教師Р2更想招收學生S1而不是S2
    各自更想招收不同的學生。

此時,
方案一是穩定的分配方案:兩個學生已經得到最滿意的結果;
方案二也是穩定的分配方案:兩個教師已經得到最滿意的結果。

這個簡單的例子說明有可能存在不止一種穩定的分配方案。

在目前實際采用的師生面談過程中,一批學生可能會同時與一批教師面談。
為進一步簡化,我們假設每次只有一位學生與教師面談。在前述簡化假設條件下,求解穩定的師生分配方案的G-S算法敘述如下:
每次只選擇一位學生S,讓他(她)按照自己的優先表從高到低依次找還沒有面談過的教師面談。
為公平起見,我們假設這位學生是通過完全隨機的方式選出來的。如果與他(她)面談的教師目前沒有候選的學生,那么這位教師最安全的做法就是把這位學生列為候選學生,即使這個學生未必是這位老師的優先表中靠前的學生,因為每位教師必須要帶一名學生。如果這名教師已經有了候選學生S',那么他將應該比較學生S和學生S',並從中挑選一個作為他的候選學生。按照這一程序,學生S必然在這一輪面談后被某個教師考慮為候選學生。
然后,再隨機選擇一位自由的(即還沒有成為候選對象的)學生,讓他(她)按照自己的優先表從高到低依次找自己還沒有面談過的教師面談,直到成為候選學生。這一迭代過程一直進行下去,直到所有學生都成為候選學生或每一個自由的學生都與所有教師面談過為止。
在研究上述算法性質時,首先要注意到,盡管只有N個學生,該算法一般說來未必在N步之后就終止。這是因為,已經成為候選學生的人有可能在后面的某次迭代中被另一位同學頂替掉而再次成為完全自由的學生。因此,針對該算法我們依次需要考察如下問題:該算法是否會終止?如果會,迭代多少步之后終止?該算法是否能夠得到一個完全匹配?如果能,這個完全匹配是否一定為穩定匹配?
在回答這些問題之前,首先注意到算法的幾個似乎是讓學生越來越沮喪,教師越來越高興的基本事實:

  • 事實一:教師Р從第一次有學生去和他面談開始,就一直會有候選學生,而且他的候選學生只會越變越好(按照教師Р的優先表);
  • 事實二:學生S可能會在候選學生和自由學生狀態之間交替,而且他(她)去面談的教師只會越變越差(按照學生S的優先表)。
  • 事實三:如果學生S在算法的某一步是自由的,那么此時,必至少存在一位該學生沒有面談過的教師。

事實三意味着算法終止的唯一條件為所有的學生都是候選學生,即找不到自由的學生。
現在我們有如下結論:
G-S算法在至多\(N^2\)次迭代之后終止,且算法終止時所得到的集合是一個完全匹配。
G-S算法終止時所得到的集合一定是一個穩定匹配。


參考:

[1] 汪小帆,李翔,陳關榮.網絡科學導論[M].北京:高等教育出版社,2012


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM