2 Các bài toán cặp ghép
2.2 Bài toán hôn nhân bền vững
Trong bài toán hôn nhân, việc ghép cặp chỉ đơn thuần ghép một cô gái với một chàng trai mà họ thích, nhưng trong thực tế việc ghép đôi như vậy xuất hiện nhược điểm là mối quan hệ của các cặp đôi sẽ không bền vững. Nếu hai cặp đôi bất kì
(a1;b1), (a2;b2) màa1 lại thích b2 hơn b1 và b2 cũng thích a1 hơn a2 thì có thể dẫn đến sự tan vỡ của hai cặp đôi. Vấn đề đặt ra là làm thế nào để có thể sắp xếp hôn nhân chonchàng trai vàn cô gái sao cho không tồn tại hai người khác giới thích nhau hơn người được ghép đôi với họ. Đó là nội dung của bài toán hôn nhân bền vững.
Lloyd Stowell Shapley và David Gale là hai người đầu tiên nghiên cứu và đưa ra lời giải cho bài toán này. Cũng đã có nhiều người giải quyết bài toán này, nhưng cách giải của Gale và Shapley có ý nghĩa thực tiễn nhất. Từ việc đưa ra thuật toán giải quyết bài toán này họ đã tìm ra thuật toán DAA (Deferred Acceptance Algorithm), nhờ việc sử dụng thuật toán DAA để giải quyết các vấn đề thực tiễn mà Alvin Elliot Roth đã nhận được giải thưởng Nobel Kinh tế.
Trong bài toán hôn nhân bền vững, mỗi chàng trai sẽ có một danh sách các cô gái mà họ thích theo thứ tự tăng nghiêm ngặt, ngược lại mỗi cô gái cũng có một danh sách các chàng trai mà họ thích theo thứ tự tăng nghiêm ngặt. Thuật toán mà Gale và Shapley đưa ra để giải quyết bài toán hôn nhân bền vững được thực hiện như sau:
(1) Tất cả các chàng trai chưa đính hôn sẽ cầu hôn người đang đứng đầu danh sách những cô gái mà họ chưa cầu hôn.
(2) Các cô gái được cầu hôn sẽ chọn người đứng đầu trong danh sách những người cầu hôn cô để đính hôn và từ chối những người còn lại kể cả người đang đính hôn với cô (nếu có) cũng có thể bị tự chối.
(3) Các chàng trai bị từ chối sẽ xóa những cô gái đã từ chối họ khỏi danh sách. Thuật toán sẽ kết thúc khi tất cả các chàng trai đều được đính hôn.
Sau khi thực hiện vòng lặp thì tất cả mọi người đều được ghép đôi. Thật vậy ta xét một cô gái bất kì, do các chàng trai duyệt danh sách từ trên xuống dưới nên sau một số vòng lặp hữu hạn thì cô gái đó sẽ được cầu hôn. Mặt khác mỗi người chỉ được đính hôn với một người khác giới nên rõ ràng tại một thời điểm nào đó thì tất cả mọi người đều được ghép cặp. Ta sẽ chứng minh với thuật toán ghép cặp trên ta thu được cặp ghép bền vững. Giả sử sau khi thực hiện ghép cặp tồn tại hai cặp đôi(a1;b1),(a2;b2)
màa1 thíchb2 hơn b1 và b2 cũng thícha1 hơn a2. Vì b2 thícha1 hơna2 nên khi thực hiện thuật toán , b2 cầu hôn a1 trước a2. Vì b2 kết hôn với a2 nên chứng tỏ a1 đã từ chối b2. Mặt khác a1 kết hôn với b1 chứng tỏ a1 thíchb1 hơn b2, mâu thuẫn với giả thuyết. Vậy không tồn tại cặp đôi khác giới nào thích nhau hơn người được ghép đôi với họ, tức là cặp ghép thu được từ thuật toán là bền vững.
Trên đây là thuật toán mà Gale và Shapley đưa ra để giải quyết bài toán hôn nhân bền vững. Để tổng quát hơn ta cùng tìm hiểu bài toán thông qua ngôn ngữ của Lý thuyết đồ thị. Gọi một họ (≤v)v∈V của chuỗi thứ tự ≤v trên E(v) là một tập các ưu tiên (set of preferences) củaG. Một cặp ghépM trongGgọi là bền vững (stable) nếu với mọi cạnhe∈ E\M tồn tại cạnhm ∈M màevàmcó chung đỉnhv thìe <v m. Kết quả sau đây thường được gọi là định lý hôn nhân bên vững:
Định lý 2.2.1. (Gale và Shapley 1962)
Với mọi tập các ưu tiên (set of preferences),Gchứa một cặp ghép bền vững.
Chứng minh:Một cặp ghép M trongGgọi là tốt hơn một cặp ghép M0 6=M nếu M làm các đỉnh trongB hạnh phúc hơn so vớiM, tức là với mọi đỉnhbliên thuộc với một cạnh m0 ∈ M0 cũng liên thuộc với một số cạnhm ∈ M sao cho m0 6b m. Cho
một cặp ghépM, một đỉnha ∈ A gọi là chấp nhận đượcb ∈ B nếu e =ab ∈ E\M và với bất kì cạnhm ∈ M liên thuộc với đỉnh bthìm6b e. Gọi đỉnhalà hạnh phúc với M nếua chưa được ghép hoặc cạnh ghép m ∈ M của nó thỏa mãn m >b e với mọi cạnhe =abmàachấp nhận đượcb.
Bắt đầu với cặp ghép rỗng, ta xây dựng một chuỗi cặp ghép trong đó mỗi cặp ghép giữ tất cả các đỉnh trongA hạnh phúc. Cho cặp ghépM, ta xét một đỉnha ∈ Achưa được ghép nhưng chấp nhận được một số đỉnhb∈ B. ( Nếu không tồn tại ta chấm dứt chuỗi). Thêm vào cặp ghépM một cạnhe = ab sao chof 6a evới mọi cạnhf liên thuộc vớiavàachập nhận đượcb, loại bỏ khỏiM tất cả các cạnh liên thuộc với b. Rõ ràng mỗi cặp ghép trong chuỗi là tốt hơn trước đó, và tất cả các cặp ghép trong chuỗi đều giữ cho các đỉnh trong A hạnh phúc. Vì vậy ta xây dựng chuỗi cặp ghép cho đến khi kết thúc với một cặp ghépM sao cho mọi đỉnh không được ghép trong a không thể chấp nhận được tất cả các đỉnh mà nó liên thuộc trong B. Vì mọi đỉnh trongAđều hạnh phúc vớiM nênM là cặp ghép bền vững.