Tải bản đầy đủ (.pdf) (69 trang)

Nghiên cứu áp dụng giải thuật tối ưu hóa đàn kiến cho bài toán hôn nhân ổn định

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (866.79 KB, 69 trang )

BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƢỜNG ĐẠI HỌC VINH
NGUYỄN LÊ HẢI

LUẬN VĂN THẠC SỸ
Chuyên ngành: CÔNG NGHỆ THÔNG TIN

NGHIÊN CỨU ÁP DỤNG GIẢI THUẬT TỐI ƢU HÓA ĐÀN KIẾN
CHO BÀI TỐN HƠN NHÂN ỔN ĐỊNH

Giáo viên hƣớng dẫn: TS. HỒNG HỮU VIỆT

Vinh, 5/2018

1


MỤC LỤC
MỞ ĐẦU .......................................................................................................... 9
CHƢƠNG 1. TỔNG QUAN ......................................................................... 12
1.1. Bài tốn hơn nhân ổn định ....................................................................... 12
1.1.1. Phát biểu bài toán .................................................................................. 12
1.1.2. Các định nghĩa....................................................................................... 13
1.1.3. Các biến thể của bài tốn hơn nhân ổn định ......................................... 14
1.2. Các hướng tiếp cận giải bài tốn hơn nhân ổn định ................................. 18
1.3. Một số ứng dụng bài tốn hơn nhân ổn định ........................................... 20
1.3.1. Bài tốn phân cơng giảng viên hướng dẫn sinh viên thực tập .............. 20
1.3.2. Bài toán ghép cặp sinh viên ở ký túc xá ............................................... 21
1.3.3. Bài tốn phân cơng bác sĩ thực tập tại các bệnh viện ........................... 22
1.4. Kết luận Chương ...................................................................................... 22
CHƢƠNG 2. THUẬT TỐN VÉT CẠN CHO BÀI TỐN HƠN NHÂN


ỔN ĐỊNH ....................................................................................................... 23
2.1. Thuật toán Gale – Shapley ....................................................................... 23
2.1.1. Mơ tả thuật tốn .................................................................................... 23
2.1.2. Ví dụ minh họa ...................................................................................... 24
2.2. Biểu diễn bài toán theo danh sách ngắn (short-list) ................................. 27
2.3. Thủ tục Breakmarriage ............................................................................. 29
2.4. Thuật toán vét cạn tìm tất cả các phép ghép ổn định ............................... 30
2.5. Kết luận chương ....................................................................................... 38

2


CHƢƠNG 3. THUẬT TỐN TỐI ƢU HĨA ĐÀN KIẾN CHO BÀI
TỐN HƠN NHÂN ỔN ĐỊNH .................................................................... 39
3.1. Giới thiệu về thuật tốn tối ưu hóa đàn kiến ............................................ 39
3.2. Thuật tốn tối ưu hóa đàn kiến cho bài tốn người du lịch ..................... 41
3.2.1. Bài toán người du lịch ........................................................................... 41
3.2.2. Thuật toán AS ....................................................................................... 42
3.2.3. Thuật toán ACS ..................................................................................... 44
3.3. Áp dụng thuật tốn tối ưu hóa đàn kiến cho bài tốn hơn nhân ổn định . 46
3.3.1. Định nghĩa heuristic cho hàm tìm kiếm tối ưu theo tập nam ................ 49
3.3.2. Định nghĩa heuristic cho hàm tìm kiếm tối ưu theo tập nữ .................. 49
3.3.3. Định nghĩa heuristic cho hàm tìm kiếm tối ưu cân bằng nam-nữ......... 50
3.3.4. Định nghĩa heuristic cho hàm tìm kiếm tối ưu bình đẳng nam-nữ ....... 50
3.4. Cài đặt và đánh giá các thuật toán............................................................ 51
3.4.1. Thực nghiệm kiểm tra sự thực hiện của thuật toán ............................... 51
3.4.2. Thực nghiệm so sánh thuật toán vét cạn với ACS ................................ 53
3.5. Một số đánh giá các thuật toán ................................................................. 57
3.6. Kết luận chương ....................................................................................... 58
KẾT LUẬN VÀ HƢỚNG PHÁT TRIỂN ................................................... 59

1. Kết luận ....................................................................................................... 59
2. Kiến nghị và hướng phát triển..................................................................... 60
TÀI LIỆU THAM KHẢO ............................................................................ 61

3


DANH MỤC CÁC TỪ VIẾT TẮT
1.

ACO

Ant colony optimization

2.

ACS

Ant Colony System

3.

AS

Ant System

4.

GA


Genetic Algorithm

5.

NP

Non-deterministic Polynomial-time

6.

SM

Stable Marriage

7.

TSP

Travelling Salesman Problem

4


DANH MỤC HÌNH ẢNH
Bảng 2.1. Danh sách "thích" của 8 nam và 8 nữ ……………………………25
Bảng 2.2. Danh sách ngắn "thích" của 8 nam và 8 nữ theo hướng nam ……28
Bảng 2.3. Danh sách ngắn "thích" của 8 nam và 8 nữ theo hướng nữ ……...29
Bảng 2.4. Danh sách ngắn "thích" của 8 nam và 8 nữ ………………………..32
Bảng 2.5. Các bộ ghép ổn đinh của ví dụ 1 ……………………………………36


5


DANH MỤC BẢNG
Hình 2.2. Cây mơ tả các bộ ghép ổn định được sinh ra bởi thủ tục
breakmarriage ……………………………………………………………….38
Hình 3.1. Cách đàn kiến tìm đường ngắn nhất dựa trên vết mùi ……………39
Hình 3.1. Giá trị hàm đánh giá F(M) của các bộ ghép và giá trị trung bình của
các hàm đánh giá theo các vịng lặp thuật tốn để tìm bộ ghép cân bằng tối ưu
……………………………………………………………………………….52
Hình 3.2. Giá trị hàm đánh giá F(M) của các bộ ghép và giá trị trung bình của
các hàm đánh giá theo các vịng lặp thuật tốn để tìm bộ ghép bình đẳng tối
ưu ……………………………………………………………………………52
Bảng 3.1. Thực nghiệm cho bài tốn hơn nhân ổn định với kích thước 50…53
Bảng 3.2. Thực nghiệm cho bài tốn hơn nhân ổn định với kích thước 100 ..55
Bảng 3.3. Thực nghiệm cho bài tốn hơn nhân ổn định với kích thước 150..56

6


LỜI CẢM ƠN
Tôi xin chân thành cảm ơn Trường đại học Vinh đã tạo điều kiện về môi
trường cũng như cơ sở vật chất cho công việc học tập và nghiên cứu. Đồng
cảm ơn các Thầy, Cô giáo Ngành Công nghệ thông tin đã giảng dạy và giúp
đỡ tôi trong quá trình học tập và nghiên cứu về chuyên ngành CNTT, cùng
với Thầy TS. Hồng Hữu Việt nhiệt tình và tâm huyết hướng dẫn và giúp đỡ
tơi hồn thành luận văn này.
Tôi chân thành cảm ơn các bạn học viên cao học K24 tại Trường đại học
Vinh đã giúp tôi trao đổi các vấn đề thuộc lĩnh vực mà tôi nghiên cứu.
Vinh, ngày tháng năm 2018

Học viên

Nguyễn Lê Hải

7


LỜI CAM ĐOAN

Tôi xin cam đoan luận văn “Nghiên cứu áp dụng giải thuật tối ƣu hóa
đàn kiến cho bài tốn hơn nhân ổn định” là cơng trình nghiên cứu của tơi
với sự hướng dẫn khoa học của TS. Hồng Hữu Việt, những tài liệu sử dụng
cho việc nghiên cứu được ghi rõ ở phần tài liệu tham khảo, các kết quả thực
nghiệm được nghiên cứu thực tế trên cùng một môi trường thực nghiệm, các
kết quả thực nghiệm được ghi nhận một cách khách quan, trung thực và chưa
được cơng bố dưới bất kỳ hình thức nào trước đây.

Vinh, ngày tháng năm 2018
Học viên

Nguyễn Lê Hải

8


MỞ ĐẦU

1. Sự cần thiết của vấn đề nghiên cứu
Bài tốn ghép đơi (two-sided matching problem) là bài tốn nhận được
nhiều sự quan tâm nghiên cứu vì vai trị quan trọng của nó trong nhiều ứng

dụng như bài tốn phân công bác sĩ đến thực tập tại các bệnh viện, bài tốn
phân cơng giảng viên hướng dẫn sinh viên thực hiện đề tài, bài toán ghép cặp
sinh viên ở trọ ký túc xá, v.v. Bài tốn hơn nhân ổn định (stable marriage
problem) là một bài toán kinh điển của bài tốn ghép đơi và việc giải quyết
bài tốn hơn nhân bền vững sẽ mở ra nhiều hướng giải quyết cho bài tốn
ghép đơi.
Bài tốn hơn nhân bền vững (stable marriage problem) được giới thiệu
bởi Gale và Shapley năm 1962 là một bài toán ghép cặp của 2 tập hợp nam
và nữ có số phân tử bằng nhau để thỏa mãn một tiêu chuẩn nào đó. Gale và
Shapley đã đề xuất một thuật tốn Gale-Shapley để tìm ra các cặp ghép bền
vững tối ưu từ một phía (man-optimal hoặc woman-optimal). Hiện nay bài
tốn hơn nhân ổn định được giải quyết bằng các phương pháp vét cạn,
phương pháp tìm kiếm cục bộ,... để giải bài tốn này nhằm tìm ra các cặp
ghép bền vững tối ưu theo một tiêu chuẩn nào đó, tuy nhiên phương pháp đề
xuất nói chung chưa hiệu quả cho bài tốn với kích thước lớn.
Trong luận văn này chúng tôi thực hiện một thử nghiệm nghiên cứu áp
dụng giải thuật tối ưu hóa đàn kiến cho bài tốn hôn nhân ôn định với đề tài
"Nghiên cứu áp dụng giải thuật tối ưu hóa đàn kiến cho bài tốn ghép đôi".
Chúng tôi hy vọng với nghiên cứu này sẽ mở rộng ứng dụng của giải thuật
tối ưu hóa đàn kiến cũng như đề xuất một giải thuật hiệu quả giải quyết bài
tốn hơn nhân ổn định.
9


2. Mục tiêu nghiên cứu
2.1. Mục tiêu tổng quát
Nghiên cứu áp dụng giải thuật tối ưu hóa đàn kiến cho bài tốn hơn nhân
ổn định với số lượng nam và nữ bằng nhau.
2.2. Mục tiêu cụ thể
Đề tài tập trung vào các mục tiêu chính sau:

(i) Nghiên cứu tổng quan về bài tốn hơn nhân ổn định.
(ii) Nghiên cứu thuật toán Gale-Shapley
(iii) Nghiên cứu biểu diễn danh sách ngắn (short-lists) biểu diễn bài toán
(iv) Nghiên cứu thuật toán vét cạn cho bài tốn hơn nhân ổn định.
(v) Nghiên cứu thuật tốn tối ưu hóa đàn kiến cho bài tốn hơn nhân ổn
định.
(vi) Cài đặt thuật toán vét cạn và thuật tốn tối ưu hóa đàn kiến cho bài
tốn hơn nhân ổn định, đưa ra nhận xét và đề xuất.
3. Đối tƣợng và phạm vi nghiên cứu
3.1. Đối tƣợng nghiên cứu
(a) Nghiên cứu lý thuyết
Nghiên cứu các tài liệu về bài tốn hơn nhân ổn định đã cơng bố ở trong
và ngồi nước; nghiên cứu thuật tốn tối ưu hóa đàn kiến; nghiên cứu áp dụng
thuật tốn tối ưu hóa đàn kiến cho bài tốn hơn nhân ổn định; nghiên cứu
ngơn ngữ lập trình, MATLAB để thực thi thuật tốn.
(b) Nghiên cứu thực nghiệm

10


Cài đặt các thuật toán vét cạn và thuật toán tối ưu hóa đàn kiến cho bài
tốn hơn nhân ổn định. Đánh giá hiệu quả của các thuật toán dựa trên thực
nghiệm.
3.2 Phạm vi nghiên cứu
Trong phạm vi luận văn này, chúng tơi tập trung áp dụng thuật tốn tìm
kiếm tối ưu hóa đàn kiến để giải quyết bài tốn hôn nhân ổn định với số lượng
nam và nữ bằng nhau.
4. Nội dung nghiên cứu
- Nghiên cứu bài tốn hơn nhân ổn định với số lượng nam và nữ bằng
nhau.

- Nghiên cứu các thuật tốn Gale-Shapley cho bài tốn hơn nhân ổn
định.
- Nghiên cứu tổng quan các phương pháp giải bài tốn hơn nhân ổn định.
- Nghiên cứu biểu diễn bài toán theo dạng danh sách ngắn (short-lists).
- Nghiên cứu thuật tốn vét cạn và thuật tốn tối ưu hóa đàn kiến cho bài
tốn hơn nhân ổn định.
- Cài đặt các thuật toán vét cạn và thuật toán tối ưu hóa đàn kiến cho bài
tốn hơn nhân ổn định.
- Đánh giá hiệu quả của các thuật toán đã cài đặt dựa trên số liệu thực
nghiệm.

11


CHƢƠNG 1. TỔNG QUAN
1.1. Bài tốn hơn nhân ổn định
1.1.1. Phát biểu bài tốn
Bài tốn hơn nhân ổn định (the stable marriage problem) là một bài toán
ghép cặp của một số tương đương giữa nam và nữ để thõa mãn một điều kiện
ổn định nào đó. Bài tốn này được giới thiệu bởi Gale and Shapley [1] và đã
nhận được nhiều sự quan tâm của nhiều nhà nghiên cứu vì vai trị quan trọng
của nó trong nhiều ứng dụng như bài tốn phân cơng giảng viên hướng dẫn đề
tài/dự án cho sinh viên [2], bài toán ghép cặp sinh viên ở ký túc xá [3], v.v.
Bài tốn hơn nhân ổn định kích thước n gồm một tập n nam và một tập n
nữ trong đó mỗi người xếp hạng thứ tự "thích" những người khác giới theo
một thứ tự ưu tiên từ 1 đến n trong một danh sách. Một phép ghép M là một
tập n cặp (nam, nữ) trong đó mỗi nam chỉ được ghép với một nữ duy nhất và
ngược lại. Nếu một nam m và một nữ w là một cặp trong phép ghép M thì m
và w được gọi là "bạn" hay cặp ghép trong M và được ký hiệu là m = M(w)
và w = M(m). Một nam m và một nữ w tạo thành một cặp khối (blocking pair)

trong M nếu m "thích" w hơn M(m) (tức là thứ tự ưu tiên của w bé hơn M(m)
trong danh sách thích của m) và w thích m hơn M(w). Một phép ghép M mà
khơng chứa mọi cặp khối thì M được gọi là phép ghép ổn định, ngược lại M
được gọi là không ổn định. Ký hiệu mr(m,w) là thứ tự của nữ w trong danh
sách thích của nam m và wr(w,m) là thứ tự của nam m trong danh sách thích
của nữ w. Với một bộ ghép M, giá của phép ghép M theo tập nam giới, ký
hiệu là sm(M), và giá của ghép ghép M theo tập nữ giới, ký hiệu là sw(M),
được định nghĩa như sau:

12


( )


(

( )

)

(1.1)

(

)

(1.2)

)



(

(

)

1.1.2. Các định nghĩa
Định nghĩa 1 (tối ƣu cho tập nam giới): Một phép ghép M được gọi là
phép ghép tối ưu cho tập nam giới (man-optimal) nếu M có giá trị sm(M) là
bé nhất trong tất cả các phép ghép ổn định.
Định nghĩa 2 (tối ƣu cho tập nữ giới): Một phép ghép M được gọi là
phép ghép tối ưu cho tập nữ giới (woman-optimal) nếu M có giá trị sw(M) là
bé nhất trong tất cả các phép ghép ổn định.
Cho bài tốn hơn nhân ổn định kích thước n, Gale and Shapley đã đề
nghị một thuật tốn, gọi là thuật tốn Gale-Shapley [1], để tìm một nghiệm tối
ưu cho tập nam giới trong thời gian O(n2). Về cơ bản, thuật toán là một dãy
các đề nghị từ mỗi nam tới những người nữ giới để tìm phép ghép tối ưu cho
tập nam giới. Nếu vai trò của nam giới được thay đổi cho nữ giới, tức là đề
nghị từ mỗi nữ tới các nam giới, thì nghiệm của thuật toán Gale-Shapley là
nghiệm tối ưu theo tập nữ giới. Chú ý rằng, trong phép tối ưu theo tập nam
giới thì mỗi nam chọn được một nữ mà mình thích nhất nhưng mỗi nữ sẽ có
người nam mà mình ít thích nhất. Tương tự, trong phép tối ưu theo tập nữ giới
thì mỗi nữ chọn được một nam mà mình thích nhất nhưng mỗi nam sẽ có
người nữ mà mình ít thích nhất. Với bài tốn hơn nhân ổn định kích thước n,
có thể có nhiều phép ghép ổn định khác với phép ghép ổn định tối ưu theo tập
nam và phép ghép ổn định tối ưu theo tập nữ. Hơn nữa, có thể nói rằng phép
ghép ổn định tối ưu theo tập nam và phép ghép ổn định tối ưu theo tập nữ là
13



những phép ghép "ích kỷ" cho tập nam và tập nữ. Do đó cần tìm các phép
ghép ổn định tối ưu khác mà cân bằng cho cả tập nam và tập nữ. Cho một
phép ghép ổn định M, giá của phép ghép M theo tương đương theo giới tính
(egalitarian cost), ký hiệu là c(M), và giá của ghép ghép M cân bằng theo giới
tính (sex-equality cost), ký hiệu là d(M), được định nghĩa như sau:
( )

( )

( )

(1.3)

( )

( )

( )

(1.4)

Định nghĩa 3 (tối ƣu tƣơng đƣơng theo giới tính): Một phép ghép M
được gọi là phép ghép tối ưu tương đương theo giới tính (egalitarian cost) nếu
M có giá trị c(M) là bé nhất trong tất cả các phép ghép ổn định.
Định nghĩa 4 (tối ƣu cân bằng theo giới tính): Một phép ghép M được
gọi là phép ghép tối ưu cân bằng theo giới tính (sex-equality cost) nếu M có
giá trị d(M) là bé nhất trong tất cả các phép ghép ổn định.
1.1.3. Các biến thể của bài tốn hơn nhân ổn định

Câu hỏi đặt ra là với số lượng tương đương nam và nữ thì có thể tìm ra
một sự ổn định hay khơng? Để trả lời câu hỏi này ta xét các bài toán dưới đây:
Bài tốn 1. Có tồn tại hay khơng cách ghép cặp n phụ nữ với n đàn ông
sao cho ai cũng lấy được người mình có cảm tình. Một người có thể có cảm
tình với nhiều người khác giới.
Bài tốn này được giải bởi nhà Toán học Philip Hall (11/4/1904 30/12/1982) vào năm 1935. Ơng đã tìm ra điều kiện cần và đủ để tồn tại một
cách ghép đàn ông và phụ nữ thỏa yêu cầu.
Định lý (Định lý Hall). Xét đồ thị lưỡng phân G = (V,E), trong đó
V = A  B. Với mỗi tập S  A, N(S) biểu thị tập hợp các đỉnh (nhất thiết trong
14


B) tiếp giáp với ít nhất một đỉnh trong S. Sau đó, A có một kết hợp hồn hảo
đến B khi và chỉ khi |N(S)| ≥ |S| với mọi S  A.
Xét định lý trong trường hợp |A| =|B| = N: Ta nói rằng phụ nữ w được
gán (ghép nối) với đàn ơng m nếu cả hai người có tình cảm với nhau. Như vậy
một phụ có thể được gán với nhiều người đàn ông và ngược lại. Gọi N(S) là
tập hợp những đàn ơng mà ít nhất một phụ nữ thuộc tập S nối với anh ấy (S là
tập con bất kì của tập N phụ nữ ban đầu). Khi đó, tồn tại cách ghép đơi sao
cho ai cũng lấy được người mình có tình cảm khi và chỉ khi |N(S)| ≥ |S| với
mọi S là tập con của tập N phụ nữ.
Bài toán 2. Hãy chỉ ra cách ghép cặp n phụ nữ với n đàn ông sao cho ai
cũng lấy được người mình có tình cảm (nếu có).
Hƣớng giải quyết: Gọi tập hợp các phụ nữ là S, tập hợp các đàn ông là
S'. Các quan hệ, kí hiệu sử dụng như lời giải bài tốn 1.
Dựa vào cách chứng minh quy nạp của định lý Hall ở trên, ta c ó
thuật tốn:
Ta xác định n phụ nữ và n đàn ơng có thỏa mãn điều kiện của định lý
Hall bằng cách duyệt từng tập con của S. Nếu không thỏa mãn, hiển nhiên
không tồn tại cách ghép, kết thúc. Nếu thỏa mãn, ta thực hiện bước hai.

Xác định có tồn tại tập con X của S sao cho |N(X)| = |X| hay không. Nếu
tồn tại, ta thực hiện thuật toán với các cặp tập hợp X và N(X), S\X và S'\N(X).
Nếu không, ghép đôi một phụ nữ w bất kì với một nam giới m bất kì mà cơ ấy
được nối. Ta thực hiện thuật tốn với S\{w} và S'\{m}.
Nhược điểm của việc ghép đôi kiểu này là sự không ổn định nếu ta xét
đến việc phụ nữ (nam giới) có cảm tình với người này hơn người kia. Giả sử
tồn tại cặp m1 – w1 và cặp m2 – w2 mà m1 thích w2 hơn w1 và w2 thích m1 hơn
15


m2, khi đó có khả năng dẫn đến hiện tượng ghép đơi, cách ghép đơi khơng cịn
hiệu quả. Ta xét đến thứ tự "thích" của các phụ nữ và đàn ông.
Xét n phụ nữ và n đàn ông, ta giả sử rằng mỗi phụ nữ xếp thứ tự cảm
tình với n nam giới và mỗi đàn ơng cũng có một thứ tự "thích" với N phụ nữ.
Các thứ tự này tăng nghiêm ngặt.
Bài toán 3 (Stable Marriage Theorem). Một cách ghép cặp ổn định
luôn luôn tồn tại, với mọi đồ thị lưỡng phân và mọi bộ sắp thứ tự ưa thích.
Ở đây ta xét trường hợp |A| = |B| = N, trường hợp tổng quát tương
tự: Luôn tồn tại một cách ghép đôi ổn định cho mọi n phụ nữ và n đàn ông với
n là số tự nhiên bất kì.
Bài tốn 4. Hãy chỉ ra cách ghép đơi n phụ nữ với n đàn ông sao cho
không xuất hiện cặp nào ngoại tình.
Đã có nhiều người giải quyết bài tốn này, trong đó cách giải của Gale
và Shapley có ý nghĩa thực tiễn nhất, được gọi là thuật toán Gale - Shapley
hay thuật toán GS và được thực hiện như sau:
Mọi đàn ông chưa ghép cặp sẽ đồng thời đề nghị ghép cặp với người
đang đứng đầu danh sách "thích" những phụ nữ mà họ chưa đề nghị ghép cặp.
Mỗi phụ nữ được đề nghị ghép cặp sẽ so sánh những người đề nghị ghép
cặp và người mà đang ghép cặp (nếu có) với nhau. Trong những người đó, ai
có thứ hạng cao hơn trong danh sách "thích" thì sẽ được ghép cặp, còn những

người còn lại bị từ chối và người đang ghép cặp (nếu có) bị hủy ghép cặp.
Mỗi đàn ông bị từ chối trong lần lặp này xóa tên phụ nữ từ chối họ trong
danh sách "thích". Mỗi đàn ơng bị hủy ghép cặp xóa tên phụ nữ đã hủy ghép
cặp với mình trong danh sách.

16


Vịng lặp được thực hiện cho đến khi nào khơng cịn đàn ơng nào chưa
được ghép cặp. Khi đó ta ghép đôi mỗi đàn ông với phụ nữ mà họ "thích" .
Kết thúc thuật tốn.
Bài tốn 5. Chứng minh với thuật tốn trên, mọi người đều được
ghép đơi.
Chứng minh (tóm tắt). Dễ thấy rằng mọi người chỉ ghép cặp với tối đa
một người khác giới. Ta xét một phụ nữ bất kì. Dễ thấy rằng sau khi được đề
nghị ghép cặp, vào mọi thời điểm kết thúc vòng lặp sau này, phụ nữ đó ln
được ghép cặp. Ngồi ra, đối với một phụ nữ bất kì, do các chàng trai duyệt
danh sách "thích" của họ từ trên xuống nên sau một số hữu hạn vịng lặp, phụ
nữ đó sẽ được đề ghị ghép cặp.
Bài toán 6. Chứng minh với cách ghép đơi nhận được từ thuật tốn,
khơng xuất hiện sự phá vỡ cặp.
Chứng minh (tóm tắt). Theo thuật tốn, đối với một phụ nữ bất kì, vào
thời điểm bất kì, người ghép cặp với họ có thứ hạng cao hơn những người đã
bị họ từ chối và hủy ghép cặp trong danh sách của họ.
Giả sử phản chứng: sau khi thực hiện thuật toán, tồn tại hai cặp phụ nữ đàn ông là m1 – w1 và m2 – w2 mà w2 xếp hạng cao hơn w1 trong danh sách
của m1 và m1 xếp hạng cao hơn m2 trong danh sách của w2 (m1 và w2 phá vỡ
cặp).
Do w1 xếp trước w2 trong danh sách "thích" của m1 nên khi thực hiện
thuật toán, m1 đề nghị ghép cặp w1 trước w2. Sau đó m2 ghép cặp w2 chứng tỏ
m1 đã từ chối hoặc hủy ghép cặp với w2. Khi kết thúc thuật tốn, m1 kết hơn

với w1 chứng tỏ w1 có thứ hạng cao hơn w2 trong danh sách của m1, mâu
thuẫn!
17


Vậy giả thiết phản chứng sai, mệnh đề được chứng minh.
1.2. Các hƣớng tiếp cận giải bài tốn hơn nhân ổn định
Đối với các trường hợp SM có kích thước n, Gusfield [4] đề xuất một
thuật toán O(n2) để xác định mỗi cặp ổn định (nam, nữ) được chứa trong ít
nhất một kết hợp ổn định. Sau đó, ơng đề xuất một thuật toán liệt kê tất cả các
kết hợp ổn định trong thời gian O(n2 + n |S|), trong đó |S| là số kết hợp ổn định
của các trường hợp SM. Irving và cộng sự [5] khai thác một cấu trúc mạng
tinh thể của tập hợp của tất cả các kết hợp ổn định và các phương pháp lý
thuyết đồ thị được sử dụng để đề xuất một thuật toán O(n4) để xác định sự cân
bằng của các trường hợp SM. Bởi vì các thuật tốn trên khám phá không gian
của tất cả các sự kết hợp ổn định, họ cung cấp cho chính xác giải pháp của các
trường hợp SM cho một tiêu chuẩn nhất định. Tuy nhiên, số lượng kết hợp ổn
định của các trường hợp SM tăng lên theo hàm mũ nói chung [9], chúng
khơng hiệu quả đối với các giải pháp tìm kiếm của các trường hợp SM có
kích thước lớn.
Có một số cách tiếp cận heuristic để tìm ra sự phù hợp ổn định hoặc bình
đẳng giới tính. Nakamura và cộng sự [10] đã đề xuất một thuật toán di truyền
(GA) để xác định sự kết hợp ổn định của các trường hợp SM (tức là, cân bằng
giới tính). Trong cách tiếp cận của họ, vấn đề được chuyển thành một bài toán
đồ thị và GA được sử dụng để tìm ra giải pháp trong biểu đồ. Vien và cộng sự
[12] trình bày một thuật toán hệ thống quần đảo (ACS) cho các trường hợp
SM. Dựa vào các tính năng heuristic được xác định để có được các tiêu chuẩn
phù hợp ổn định tối ưu, một nhóm các tác nhân phối hợp, được gọi là kiến
nhân tạo, hợp tác để tìm ra các kết hợp ổn định tối ưu cho con người, tối ưu
cho phụ nữ, cân bằng bình đẳng và cân bằng giới tính. Thật khơng may, thuật

tốn ACS cho phép tối ưu kết hợp ổn định theo một tiêu chí nhất định cho các
18


trường hợp SM nhỏ (n ≤ 30) vì thuật tốn ACS phải tìm nhiều cặp (nam, nữ),
các cặp n2 cụ thể (nam, nữ), để tạo thành một kết hợp ổn định. Zavidovique và
cộng sự [12] trình bày một thuật tốn ZigZag để tìm ra sự bình đẳng về giới
tính và sự hài lịng tồn cầu (nghĩa là bình đẳng). Để làm như vậy, chúng đại
diện cho vấn đề SM dưới dạng "bảng kết hôn" của (n + 1) hàng và (n + 1) cột,
trong đó hàng đại diện cho thứ tự ưu tiên của đàn ông (phụ nữ). Các ô (p, q)
có cặp (m, w), trong đó p là thứ hạng của w trong danh sách thích m và q là
thứ hạng của m trong w của danh sách thích w. Sau đó, thuật tốn ZigZag
được thiết kế để qt bảng kết hôn theo các hướng phù hợp để đáp ứng các
tiêu chí nhất định. Thuật tốn này rất đơn giản để thực hiện, nhưng nó khơng
đảm bảo để có được sự kết hợp ổn định. Iwama và cộng sự [13] đề xuất một
thuật toán trong thời gian chạy của O(n3 + 1) đạt được sự kết hợp ổn định M
sao cho |d(M) | ≤ Δ, trong đó Δ = min {d(M0), d(Mt)}, M0 và Mt là kết hợp ổn
định tối ưu giữa đàn ông và phụ nữ. Thêm vào đó, họ đề xuất một biến thể để
xác định một kết hợp ổn định M giảm thiểu c(M) trong điều kiện |d(M) | ≤ Δ,
chạy trong thời gian O(n3 + 2 (1+ δ)) cho một δ tùy ý sao cho 0 < δ.
Gần đây, Everaere và cộng sự [14] đề xuất một phương pháp Swing,
trong đó nam giới và phụ nữ thay thế đóng vai trị của những người đề xuất
tương tự như thuật tốn Gale-Shapley. Khi Swing dừng, nó đảm bảo để đạt
được một kết hợp ổn định. Thật không may, Swing là phương pháp duy nhất
để xác định các kết hợp ổn định giống nhau về giới tính của các trường hợp
SM có kích thước nhỏ, và nó cũng khơng hiệu quả về mặt chi phí giới tính
thấp. Giannakopoulos và cộng sự. [15] đã đưa ra một giải pháp để xác định
kết hợp ổn định giống nhau về giới tính tránh được sự tìm kiếm tồn diện
trong khơng gian của tất cả các kết hợp ổn định. Về cơ bản, ý tưởng về cách
tiếp cận của họ cũng tương tự như của Swing. Để nam giới và phụ nữ là hai

nhóm, thuật tốn cho phép cả hai nhóm hoạt động như là những người đề xuất
19


và chấp nhận. Cụ thể, thuật tốn gán vai trị của người đề xuất cho một nhóm
và chấp nhận cho người kia ở mỗi lần lặp. Vai trò của các nhóm được trao đổi
qua các lần lặp lại vì mục đích cơng bằng. Cơ chế của cách tiếp cận này cho
phép thuật toán chấm dứt và mang lại kết quả ổn định, tương tự hoặc tốt hơn
so với kết quả của Swing về chi phí bình đẳng giới.
Tìm ra phương pháp tiếp cận để giải quyết các trường hợp SM Các
trường hợp có kích thước lớn đã được nghiên cứu trong nhiều năm, do các
ứng dụng thực tiễn. Cách tiếp cận có thể hữu ích là tìm kiếm cục bộ. Gelain
và cộng sự [16] đề xuất một thuật tốn tìm kiếm cục bộ cho vấn đề SM nhằm
đẩy nhanh quá trình tìm ra các giải pháp. Cách tiếp cận của họ có sự kết hợp
ổn định tùy ý khác với những người tối ưu hóa đàn ơng hay phụ nữ, nhưng
không cung cấp bất kỳ kết quả nào về chất lượng giải pháp như cân bằng bình
thường hoặc bình đẳng. Việt và các cộng sự [17] đưa ra một sự tìm kiếm thực
nghiệm tại địa phương để tìm ra một giải pháp gần như tối ưu về sự phù hợp
ổn định .
1.3. Một số ứng dụng bài tốn hơn nhân ổn định
1.3.1. Bài tốn phân cơng giảng viên hƣớng dẫn sinh viên thực tập
Bài tốn phân cơng giảng viên hướng dẫn sinh viên thực hiện đề tài là
bài toán thường gặp trong các trường đại học. Bài toán này thường được thực
hiện bằng cách phân công trực tiếp giảng viên hướng dẫn sinh viên hoặc sinh
viên xin xác nhận của giảng viên và sau đó đăng ký giảng viên hướng dẫn với
khoa đào tạo. Khi mỗi giảng viên bị hạn chế về số lượng hướng dẫn sinh viên
thì hướng giải quyết này khơng hiệu quả vì khó đáp ứng thỏa mãn đồng thời
yêu cầu chọn sinh viên của giảng viên và chọn giảng viên của sinh viên. Vì
vậy, dựa vào thuật tốn Gale-Shapley đã tìm hiểu, chúng ta áp dụng để tìm
một lời giải ổn định và tốt hơn cho bài toán đặt ra.

20


Mơ tả bài tốn: Bài tốn trở thành bài tốn ghép cặp giữa sinh viên và giảng
viên sao cho sự ghép đôi này là ổn định, thỏa mãn yêu cầu giống như bài tốn
hơn nhân ổn định đưa ra. Trong đó mỗi sinh viên đề xuất một danh sách giảng
viên theo thứ tự ưu tiên và ngược lại mỗi giảng viên cũng đề xuất một danh
sách các sinh viên theo thứ tự ưu tiên. Cùng với đó giảng viên cũng đưa ra số
lượng tối đa sinh viên (chỉ tiêu) có thể hướng dẫn.
Trong thực tế, việc mỗi giảng viên và sinh viên đưa ra danh sách ưu tiên sẽ
dựa vào những tiêu chí khác nhau.
Phân tích bài tốn: Trong bài tốn phân cơng giảng viên hướng dẫn sinh viên
thực hiện đề tài, mỗi giảng viên sẽ đề xuất một danh sách các sinh viên được
sắp xếp theo thứ tự ưu tiên và mỗi sinh viên cũng đề xuất một danh sách các
giảng viên theo thứ tự ưu tiên. Như vậy bài toán trở thành bài toán ghép cặp
các phần tử của 2 tập hợp T (tập giảng viên) và S (tập sinh viên) khơng giao
nhau. Tức là tìm các cặp ghép (giảng viên - sinh viên) sao cho các cặp đơi này
là ổn định nhất.
1.3.2. Bài tốn ghép cặp sinh viên ở ký túc xá
Bài toán ghép cặp sinh viên ở ký túc xá, các sinh viên nhập học đăng ký
ở ký túc xá đưa ra các nguyện vọng và sở thích, mỗi sinh viên có thể lựa
chọn cho mình phịng có các thành viên có cùng nguyện vọng và sở thích.
Mỗi sinh viên sẽ đề xuất một danh sách các sinh viên khác để ở cùng phòng
theo thứ tự ưu tiên của ngyện vọng và ở thích, Sinh viên thứ nhất (x) đề nghị
người đầu tiên trong danh sách của mình về cùng phịng, nếu trong danh
sách của sinh viên được đề nghị có người khác có thứ hạng cao hơn thì họ sẻ
từ chối đề nghị, lúc này sinh viên (x) sẽ tiếp tục đề nghị người thứ 2 trong
danh sách và bài toán này trở nên bài toán ghép cặp của 2 sinh viên trong tập
n sinh viên.
21



1.3.3. Bài tốn phân cơng bác sĩ thực tập tại các bệnh viện
Các bệnh viện cạnh tranh sớm để có các sinh viên thực tập, trước khi họ
ra trường. Sinh viên chưa thể đưa ra kết quả về trình độ của mình, và cũng
khơng thế biết đâu là bệnh viện thích hợp. Nếu bị từ chối, bệnh viện thường
khơng cịn cơ hội mời sinh viên khác.
1.4. Kết luận Chƣơng
Chương 1 đã trình bày tổng quan về bài tốn hơn nhân ổn định. Nội dung
chương đã trình bày về bài tốn, các định nghĩa liên quan đến hôn nhân ổn
định, các biến thể của bài toán và các hướng tiếp cận của bài tốn. Chương
này cịn trình bày một số ứng dụng bài tốn hơn nhân ổn định trong thực tiễn
như: Bài tốn phân cơng giảng viên hướng dẫn sinh viên thực hiện đề tài, bài
toán ghép cặp sinh viên ở ký túc xá, bài tốn phân cơng bác sĩ thực tập tại các
bệnh viện.

22


CHƢƠNG 2. THUẬT TỐN VÉT CẠN CHO BÀI TỐN HƠN NHÂN
ỔN ĐỊNH
2.1. Thuật tốn Gale – Shapley
2.1.1. Mơ tả thuật tốn
Cho bài tốn hơn nhân ổn định kích thước n, thuật tốn Gale-Shapley [1]
để tìm một nghiệm tối ưu cho tập nam giới trong thời gian O(n2) được mô tả
như thuật toán 2.1.
Thuật toán 2.1: Thuật toán Gale-Shapley
1:

Vào: danh sách "thích" của tập nam và tập nữ


2:

Ra: phép ghép ổn định tối ưu cho tập nam

3:

Khởi tạo tất cả các nam và nữ độc thân, tức là chưa được ghép cặp.

4:

while (tồn tại một nam m chưa được ghép cặp) do

5:

Nam m đề cử nữ w là người thích nhất mà chưa đề cử

6:

if (w chưa được ghép cặp) then

7:
8:
9:

Gán (m,w) trở thành một cặp ghép
else
if (w thích m hơn M(w)) then

10:


Gán (m,w) trở thành một cặp ghép

11:

Gán m' = M(w) trở thành độc thân

12:
13:

else
Nữ w từ chối nam m
23


14:

endif

15:

endif

16: endwhile
Về cơ bản, thuật toán là một dãy các đề nghị từ mỗi nam tới những
người nữ giới để tìm phép ghép tối ưu cho tập nam giới. Ban đầu, thuật toán
khởi tạo mỗi nam và mỗi nữ là độc thân (free). Ở mỗi vịng lặp, thuật tốn
chọn một nam m đang cịn độc thân và tìm một nữ w mà anh ta thích nhất
trong danh sách "thích" của nam m mà m chưa chọn. Nếu nữ w đang cịn độc
thân thì m và w được tạo thành một cặp. Nếu nữ w đã được ghép cặp với một

nam m' nào đó thì nữ w sẽ từ chối một trong 2 nam m hoặc m' mà nữ w ít
thích hơn để ghép cặp với nam cịn lại. Sau đó người nam bị loại sẽ trở thành
độc thân. Thuật toán kết thúc khi tất cả mọi nam đểu được ghép cặp.
2.1.2. Ví dụ minh họa
Xét ví dụ về bài tốn hơn nhân ổn định kích thước 8 (tức là có 8 nam và
8 nữ), trong đó danh sách "thích" của các nam và nữ được cho trong bảng 2.1.
Ví dụ nam m1 xếp hạng "thích" các cơ gái theo thứ tự từ 1 đến 8 tương ứng là
w5, w3, w1, w4, w2, w6, w8, w7 và nữ w1 xếp hạng "thích" các chàng trai theo
thứ tự từ 1 đến 8 tương ứng là m4, m7, m3, m8, m1, m5, m2, m6. Các bước thực
hiện của thuật toán Gale-Shapley như sau:
- Khởi tạo: tất cả các nam và nữ chưa được ghép cặp.
- Lặp 1: m1 chưa được ghép cặp do đó m1 chọn w5, tức là M = {(m1,w5)}.
- Lặp 2: m2 chưa được ghép cặp do đó m2 chọn w8, tức là M = {(m1,w5),
(m2,w8)}.

24


- Lặp 3: m3 chưa được ghép cặp do đó m3 chọn w5. Vì w5 đã được ghép
với m1 nhưng w5 thích m1 hơn m3 do đó w5 vẫn được ghép với m1 và m3 chưa
được ghép cặp.
- Lặp 4: m3 chưa được ghép cặp và do đó m3 chọn tiếp w8. Vì w8 đã được
ghép với m2 nhưng w8 thích m2 hơn m3 do đó w8 vẫn được ghép với m2 và m3
vẫn chưa được ghép cặp.
Bảng 2.1. Danh sách "thích" của 8 nam và 8 nữ
Nam

Danh sách thích

Nữ


Danh sách thích

m1

5 3 1 4 2 6 8 7

w1

4 7 3 8 1 5 2 6

m2

8 2 4 5 3 7 1 6

w2

5 3 4 2 1 8 6 7

m3

5 8 1 4 2 3 6 7

w3

6 8 2 4 3 7 5 1

m4

8 4 3 2 5 6 1 7


w4

5 6 8 3 4 7 1 2

m5

6 5 4 8 1 7 2 3

w5

1 3 5 2 8 6 4 7

m6

7 4 2 5 6 8 1 3

w6

8 6 2 5 1 7 4 3

m7

8 5 6 3 7 2 1 4

w7

2 5 8 3 6 4 7 1

m8


4 7 1 3 5 8 2 6

w8

7 5 4 1 6 2 8 3

- Lặp 5: m3 chưa được ghép cặp và do đó m3 chọn tiếp w1. Vì w1 chưa
được ghép cặp nên m3 ghép với w1, tức là: M = {(m1,w5), (m2,w8), (m3,w1)}.

25


×