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

Thuật toán ghép đôi với thông tin không đầy đủ

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 (1.51 MB, 66 trang )

ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƢỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN
---------------------

Lê Văn Đức

THUẬT TỐN GHÉP ĐƠI
VỚI THƠNG TIN KHƠNG ĐẦY ĐỦ

LUẬN VĂN THẠC SĨ KHOA HỌC

Hà Nội – Năm2017


ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƢỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN
---------------------

LÊ VĂN ĐỨC

THUẬT TỐN GHÉP ĐƠI
VỚI THƠNG TIN KHƠNG ĐẦY ĐỦ

Chuyên ngành: Cơ sở toán cho tin học
Mã số:60460110

LUẬN VĂN THẠC SĨ KHOA HỌC
NGƢỜI HƢỚNG DẪN KHOA HỌC: TS. Nguyễn Thị Hồng Minh

Hà Nội – Năm 2017



LỜI CẢM ƠN
Em xin gửi lời cảm ơn tới các thầy giáo, cơ giáo, cán bộ khoa Tốn - Cơ Tin học, trường Đại học Khoa học tự nhiên, Đại học Quốc gia Hà Nội đã tận tình
dạy dỗ và giúp đỡ em trong suốt thời gian học cao học.
Trong quá trình thực hiện luận văn này cũng như trong suốt những năm học
vừa qua, em đã nhận được sự chỉ bảo và hướng dẫn nhiệt tình của TS. Nguyễn Thị
Hồng Minh. Em xin gửi tới Cô lời cảm ơn chân thành nhất.
Em cũng xin gửi lời cảm ơn tới gia đình, bạn bè đã động viên, khuyến khích
và tạo điều kiện cho em trong quá trình học tập và thực hiện luận văn này.
Mặc dù đã cố gắng để hoàn thành luận văn, nhưng do hạn chế về kinh
nghiệm và thời gian, nên luận văn không thể tránh khỏi những thiếu sót. Em mong
nhận được sự cảm thơng và những ý kiến đóng góp của các thầy cơ và các bạn.
Xin chúc mọi người luôn mạnh khoẻ, đạt được nhiều thành tích cao trong
cơng tác, học tập và nghiên cứu khoa học!
Trân trọng cảm ơn!
Hà Nội, tháng 11 năm 2017
Học viên
Lê Văn Đức


MỤC LỤC
LỜI MỞ ĐẦU ............................................................................................................................... 1
Chƣơng 1.LÝ THUYẾT ĐỒ THỊ VÀ BÀI TỐN GHÉP ĐƠI ................................. 3
1.1 Khái niệm cơ bản ..................................................................................................3
1.1.1 Đồ thị vô hướng ................................................................................................3
1.1.2 Đồ thị hai phía..................................................................................................3
1.1.3 Đồ thị hai phía đầy đủ ......................................................................................5
1.2 Bài tốn ghép đơi ..................................................................................................6
1.2.1 Bài tốn ghép đơi khơng trọng và các khái niệm .............................................6
1.2.2 Bài tốn tìm bộ ghép đầy đủ với trọng số cực tiểu trên đồ thị hai phía ..........8

1.2.3 Bài tốn tìm bộ ghép đầy đủ với trọng số cực đại trên đồ thị hai phía .........11
1.3 Thuật tốn ghép đơi với thơng tin đầy đủ ...........................................................12
1.3.1 Phát biểu bài tốn ..........................................................................................12
1.3.2 Bài tốn hơn nhân bền vững ..........................................................................12
1.4 Kết luận chương .................................................................................................17
Chƣơng 2.GHÉP ĐÔI VỚI THÔNG TIN KHƠNG ĐẦY ĐỦ .................................18
2.1 Giới thiệu bài tốn ..............................................................................................18
2.1.1 Các đặc trưng của bài toán ............................................................................19
2.1.2 Điều kiện cần giải bài toán ............................................................................20
2.2 Phát biểu bài toán, các khái niệm .......................................................................21
2.2.1 Đặt bài tốn ....................................................................................................21
2.2.2 Khái niệm thơng tin khơng đầy đủ .................................................................23
2.3 Tính ổn định thuật tốn ghép đơi với thơng tin khơng đầy đủ ...........................28
2.3.1 Tính hợp lý riêng ............................................................................................28
2.3.2 Tính ổn định với thơng tin đầy đủ ..................................................................28
2.3.3 Tính ổn định với thơng tin khơng đầy đủ .......................................................29
2.3.4 Mô tả về điểm cố định ....................................................................................33
2.4 Các phép suy luận của sự ổn định thông tin không đầy đủ ................................34
2.4.1 Giả định về mức thù lao .................................................................................34


2.4.2 Hiệu suất theo tính siêu modul .......................................................................35
2.4.3 Hiệu suất theo tính nghịch biến .....................................................................37
2.4.4 Đối xử khơng bình đẳng .................................................................................38
2.4.5 Mối quan hệ ổn định với thông tin không đầy đủ ..........................................40
2.5 Thuật tốn ghép đơi đảm bảo tính ổn định .........................................................43
2.5.1 Ý tưởng ...........................................................................................................43
2.5.2 Thuật toán ......................................................................................................43
2.6 Minh họa với bài toán cụ thể ..............................................................................44
2.6.1 Bài toán ghép đơi người lao động với cơng ty ...............................................44

2.6.2 Bài tốn hôn nhân bền vững không đầy đủ thông tin ....................................45
2.6.3 Bài toán tuyển sinh đại học ............................................................................47
Chƣơng 3.THỰC NGHIỆM BÀI TỐN GHÉP ĐƠI THƠNG TIN
KHƠNG ĐẦY ĐỦ ...................................................................................................................52
3.1 Bài tốn ...............................................................................................................52
3.2 Phân tích u cầu bài tốn ..................................................................................52
3.3 Thiết kế chương trình .........................................................................................53
3.3.1 Ngơn ngữ thực nghiệm ...................................................................................53
3.3.2 Kết quả thực nghiệm ......................................................................................53
KẾT LUẬN .............................................................................................................. 57
TÀI LIỆU THAM KHẢO ...................................................................................... 58


DANH SÁCH HÌNH VẼ
Hình 1: Đồ thị vơ hướng .............................................................................................3
Hình 2: Đồ thị hai phía khơng có chu trình.................................................................4
Hình 3: Đồ thị hai phía có chu trình ............................................................................4
Hình 4: Đồ thị khơng phải đồ thị hai phía ...................................................................4
Hình 5: Đồ thị hai phía đầy đủ hình sao .....................................................................5
Hình 6: Đồ thị hai phía đầy đủ với m = n ...................................................................5
Hình 7: Đồ thị hai phía đầy đủ với m ≠ n ...................................................................6
Hình 8: Đồ thị hai phía và bộ ghép M .........................................................................7
Hình 9: Chú thích trong 1 ơ của 1 bảng bài tốn hơn nhân bền vững.......................16
Hình 10: Ghép đơi thơng tin đầy đủ khơng ổn định..................................................24
Hình 11: Ghép đơi với thơng tin khơng đầy đủ ........................................................25
Hình 12: Loại người lao động thấp nhất không ghép với công ty loại thấp nhất. ....27
Hình 13: Một kết quả ghép cặp khơng phải là Σ0-ổn định ........................................31
Hình 14: Các khoản thanh tốn và cặp ghép từ hình 11 với sự thực hiện loại người
lao động khác nhau....................................................................................................32
Hình 15: Ghép đơi khi khơng có siêu modul. ...........................................................36

Hình 16: Người lao đơng theo tính nghịch biến và giá trị lao động của công ty ......37
Hình 17: Kết quả cặp ghép bên trái ổn định với thơng tin đầy đủ ............................38
Hình 18: Kết quả của cặp ghép bên phải là không hiệu quả, bị chi phối bởi cặp ghép
bên trái trong hình này. .............................................................................................38
Hình 19: Lỗi trong việc đối xử bình đẳng. ................................................................40
Hình 20: Một kết quả cặp ghép ổn đinh với thông tin không đầy đủ .......................42
Hình 21: Kết quả đảm bảo tính ổn định với thơng tin khơng đầy đủ........................45
Hình 22: Chú thích trong 1 ơ của 1 bảng bài tốn tuyển sinh ...................................50
Hình 23: Bộ dữ liệu thực nghiệm thứ nhất trong file input.txt .................................53
Hình 24: Kết quả thực nghiệm ghép đơi với 20 người lao động và 10 cơng ty ........54
Hình 25: Bộ dữ liệu thực nghiệm thứ hai trong file input1.txt .................................55
Hình 26: Kết quả thực nghiệm ghép đơi với 5 người lao động và 10 cơng ty ..........55
Hình 27: Bộ dữ liệu thực nghiệm thứ ba trong file input2.txt ..................................56
Hình 28: Kết quả ghép đơi với 20 người lao động và 20 công ty .............................56



LỜI MỞ ĐẦU
Lý thuyết Đồ thị là một trong những ngành khoa học ra đời khá sớm và có nhiều
ứng dụng trong hiện đại. Một trong những kết quả đầu tiên trong lý thuyết đồ thị
xuất hiện trong bài báo của Leonhard Euler về Bảy cây cầu ở Königsberg. Lý thuyết
Đồ thị giúp mơ tả hình học và giải quyết nhiều bài toán thực tế phức tạp liên quan
đến các khái niệm như: đường đi, chu trình, tập ổn định, chu số, sắc số, duyệt đồ thị,
đường đi ngắn nhất, tâm đồ thị, luồng vận tải, đồ thị phẳng, cây bao trùm, cây biểu
thức, cây mã tối ưu…. Bằng các thuật tốn ngắn gọn và lý thú, nó đã gắn kết nhiều
ngành khoa học với nhau.
Thuật toán ghép cặp trong lý thuyết đồ thị là một ví dụ cụ thể: Thuật tốn ghép
cặp đạt được những thành cơng nhất định và được áp dụng tại nhiều nước châu Âu
là thuật toán được nghiên cứu bởi hai nhà khoa học David Gale và Lloyd Shapley.
Thuật toán này đã được giới thiệu và đăng tải trên một tạp chí tốn học vào năm

1962. Sau này, thuật tốn cịn được biết đến với tên gọi thuật toán Gale-Shapley.
Một trong những người tiên phong, và dũng cảm nhất, trong việc phát triển lý
thuyết của Gale - Shapley là Alvin Roth, nhà kinh tế học của Trường đại học
Harvard, khi đó ơng đang phát triển các nghiên cứu kinh tế học thí nghiệm - tức là
mô phỏng các tương tác kinh tế trong môi trường có kiểm sốt. Ơng cùng một số
giáo sư khác như giáo sư Dale Stalh tổ chức các trò chơi kinh tếnhỏ và có thưởng để
sinh viên tham gia. Sau đó, các ơng thu thập và phân tích kết quả của các trị chơi
này và mơ hình hóa các tương tác giữa những người chơi với nhau dựa trên quan sát
thực tế
Năm 2012, Alvin Roth được nhận giải Nobel vì các cơng trình liên quan đến
việc “thiết kế thị trường”. Lưu ý là thuật toán Dale - Shapley bản chất cũng là việc
thiết kế một luật chơi cho một dạng thị trường, tuy nhiên, trong ví dụ về gán ghép
áp dụng cho thị trường hôn nhân ở trên, khả năng áp dụng trên thực tế của nó hầu
như khơng có mà chỉ có vẻ đẹp thuần túy về mặt lý thuyết. Alvin đi xa hơn bằng
việc sáng tạo ra các luật chơi áp dụng được, và đã áp dụng trong thực tế. Nói cách

1


khác, ông thiết kế ra các thị trường mà nếu khơng có các phát minh của ơng thì đã
khơng tồn tại hoặc tồn tại dưới một dạng rất không hiệu quả.
Trong thực tế, các lĩnh vực trong cuộc sống có liên quan đến giao dịch có u
cầu ghép đơi là rất nhiều như: ghép đôi giữa các cặp đôi trong trung tâm môi giới
hôn nhân, ghép đôi trong trường hợp hiến và ghép tạng, phân công công tác cho các
sinh viên tốt nghiệp ngành y tới các bệnh viện, công tác tuyển sinh đại học, bài toán
tuyển dụng lao động của các cơng ty,….Luận văn này sẽ tập trung trình bày về thuật
tốn ghép đơi với thơng tin đầy đủ được áp dụng với bài tốn hơn nhân bền vững,
thuật tốn ghép đơi với thơng tin khơng đầy đủ được áp dụng với bài tốn tuyển
sinh đại học và thơng tin khơng đầy đủ, tính ổn định trong bài tốn tuyển dụng lao
động của các công ty, đưa ra các ví dụ minh họa để có thể hiểu rõ hơn về thuật tốn

đối với cả thơng tin đầy đủ và khơng đầy đủ.
Cấu trúc của luận văn gồm có 3 Chương:
Chương 1: Tổng quan một số vấn đề về lý thuyết đồ thị: Các định nghĩa, các loại
đồ thị, đường đi, thuật tốn ghép đơi, thuật tốn giải quyết với thơng tin đầy đủ.
Chương 2:Phát biểu bài tốn với thơng tin khơng đầy đủ, tính ổn định với thơng
tin khơng đầy đủ, trình bày một số bài tốn thực tế với thông tin không đầy đủ,
minh họa thông tin không đầy đủ với bài toán tuyển dụng lao động của các cơng ty,
bài tốn tuyển sinh đại học.
Chương 3:Thực nghiệm: Là chương trình bày về một số thực nghiệm của thuật
tốn ghép đơi với thơng tin khơng đầy đủ. Trong đó, thực nghiệm và đưa ra kết quả
đánh giá đối với bài tốn đã trình bày trong Chương 2.

2


Chƣơng 1. LÝ THUYẾT ĐỒ THỊ VÀ BÀI TOÁN GHÉP ĐƠI
Trong tốn học và tin học, lý thuyết đồ thị nghiên cứu các tính chất của đồ thị.
Đồ thị là một tập hợp các đối tượng được gọi là các đỉnh (hoặc nút) nối với nhau
bằng các cạnh (hoặc cung). Cạnh có thể có hướng hoặc vơ hướng. Đồ thị thường
được vẽ dưới dạng một tập các điểm (các đỉnh nối với nhau bằng các đoạn thẳng
(các cạnh).
Đồ thị biểu diễn được rất nhiều cấu trúc, nhiều bài toán thực tế có thể được biểu
diễn bằng đồ thị. Ví dụ, cấu trúc liên kết của một website có thể được biểu diễn
bằng một đồ thị có hướng như sau: các đỉnh là các trang web hiện có tại website,
tồn tại một cạnh có hướng nối từ trang X tới trang Y khi và chỉ khi X có chứa một
liên kết tới Y. Do vậy, sự phát triển của các thuật toán xử lý đồ thị là một trong các
mối quan tâm chính của khoa học máy tính.
Kiến thức trong chương này được trình bày dựa vào các tài liệu [1], [2], [3], [4], [15].
1.1 Khái niệm cơ bản
1.1.1 Đồ thị vô hướng

Đồ thị vô hướng G = (V,E) gồm:
-

Vlà tập hợp khác rỗng mà các phần tử của nó gọi là đỉnh (vertex) của G.

-

E là đa tập hợp gồm các cặp không sắp thứ tự của hai đỉnh. Mỗi phần tử của
E được gọi là một cạnh (edge) của G.

Đồ thị vơ hướng khơng có cạnh song song và khơng có khun gọi là đồ thị đơn
vơ hướng.

Hình 1: Đồ thị vơ hướng
1.1.2 Đồ thị hai phía
Một đồ thị đơn vơ hướng G:=(V,E) được gọi là hai phía nếu tồn tại một phân
hoạch tập đỉnh V thành hai tập con X và Y độc lập, rời nhau sao cho bất kì cạnh nào

3


của đồ thị cũng nối một đỉnh thuộc X với một đỉnh thuộc Y. Khi đó người ta cịnkí
hiệu là: G:=(X Y,E) với các phân hoạch X, Y và gọi một tập (chẳng hạn X) là tập
các đỉnh trái và tập còn lại (chẳng hạn Y) là tập các đỉnh phải của đồ thị hai phía G.
Các đỉnh thuộc X gọi là các X_đỉnh, các đỉnh thuộc Y gọi là các Y_đỉnh [4].
Nếu |X|=|Y| thì G được gọi là đồ thị hai phía cân bằng.

Hình 2: Đồ thị hai phía khơng có chu trình

Hình 3: Đồ thị hai phía có chu trình


Hình 4: Đồ thị khơng phải đồ thị hai phía

4


1.1.3 Đồ thị hai phía đầy đủ
Cho G =(V,E) là một đồ thị vơ hướng hai phía, một phân hoạch V thành hai tập
con Xvà Y(X≠≠Yvà X Y =), sao cho khơng có cạnh nối giữa hai điểm trong
cùng một tập con. Khi đó G được gọi là hai phía đầy đủ nếu: Với mọi cặp đỉnh (i,j)
mà i Xvà jYthì có đúng một cạnh nối i và j, ij là một cạnh trong E.
Một đồ thị hai phía đầy đủ với các phân chia kích thước |X| = m, |Y| = n được kí
hiệu là Km, n. Hai đồ thị mà có kí hiệu giống nhau thì chúng đẳng cấu.Đồ thị hai phía
đầy đủ Km, ncó: m+n đỉnh, m.n cạnh.
Ta có các dạng đồ thị đầy đủ hai phía:
-

K1,n với đồ thị hình sao

Hình 5: Đồ thị hai phía đầy đủ hình sao
-

Km,n với m = n

Hình 6: Đồ thị hai phía đầy đủ với m = n

5


-


Km,n với m ≠ n

Hình 7: Đồ thị hai phía đầy đủ với m ≠ n
Đồ thị hai phía gặp rất nhiều mơ hình trong thực tế. Chẳng hạn quan hệ hôn
nhân giữa tập những người đàn ông và tập những người phụ nữ, việc sinh viên chọn
trường, thầy giáo chọn tiết dạy trong thời khóa biểu hay người lao động chọn cơng
ty làm việc.
1.2 Bài tốn ghép đơi
1.2.1 Bài tốn ghép đơi khơng trọng và các khái niệm
1.2.1.1 Bài tốn
Cho một đồ thị hai phía G =(X Y, E)ở đây X là tập các đỉnh trái và Y là tập các
đỉnh phải của G[4]. X={x[1], x[2],…, x[m]}, Y = {y[1], y[2],…, y[n]}.
Bộ ghép (matching):Một bộ ghép của G là một tập hợp các cạnh của G đơi một
khơng có đỉnh chung.
Bài tốn ghép đơi (matching problem): Là tìm một bộ ghép lớn nhất (nghĩa là
có số cạnh lớn nhất) của G.
Xét một bộ ghép M của G:
-

Các đỉnh trong M gọi là các đỉnh đã ghép (matched vertices), các đỉnh khác
là chưa ghép.

-

Các cạnh trong M gọi là các cạnh đã ghép, các cạnh khác là chưa ghép.

Nếu định hướng lại các cạnh của đồ thị thành cung, những cạnh chưa ghép được
định hướng từX sang Y, những cạnh đã ghép định hướng từY về X.Trên đồ thị định
hướng đó:

-

Một đƣờng pha: Là một đường đi đơn trong G bắt đầu bằng một

6


X_đỉnhchưa ghép, đi theo một cạnh chưa ghép sang Y, rồi đến một cạnh đã
ghép về X, rồi lại đến một cạnh chưa ghép sang Y… cứ xen kẽ nhau như vậy.
-

Một đƣờng mở: Là một đường pha. Bắt đầu từ một X_đỉnh chưa ghép kết
thúc bằng một Y_đỉnh chưa ghép.

Ví dụ 1: Với đồ thị hai phía trong (hình 8) và bộ ghép
M ={(x[1], y[1]),(x[2], y[2])}
x[3] và y[3] là những đỉnh chưa ghép, các đỉnh khác là đã ghép.
Đường (x[3], y[2], x[2], y[1]) là đường pha.
Đường (x[3], y[2], x[2], y[1], x[1], y[3]) là đường mở.

Hình 8: Đồ thị hai phía và bộ ghép M
1.2.1.2 Thuật tốn đường mở
Thuật tốn đường mở để tìm một bộ ghép lớn nhất cho bài tốn ghép đơi được
phát biểu như sau [4]:
Bƣớc 1: Bắt đầu từ một bộ ghép bất kỳ M (thông thường bộ ghép được khởi gán
bằng bộ ghép rỗng hay được tìm bằng các thuật tốn tham lam).
Bƣớc 2: Tìm một đường mở
Bƣớc 3:
 Nếu bước 2 tìm được đường mở thì mở rộng bộ ghép M: Trên đường mở,
loại bỏ những cạnh đã ghép khỏi M và thêm vào M những cạnh chưa ghép.

Sau đó lặp lại bước 2.
 Nếu bước 2 khơng tìm được đường mở thì thuật toán kết thúc.

7


Mã giả cho bài tốn ghép đơi khơng trọng:
Input: Đồ thị hai phía G =(X Y, E),
X={x[1], x[2],…, x[m]},Y={y[1], y[2],…, y[n]}.
Output: Một bộ ghép M lớn nhất của G.
1. Matching()
2.

Khởi ta ̣o: Một bộ ghép M;

3.

n = số cạnh đã ghép;

4.

While (có đường mở xuất phát từ x tới một đỉnh y chưa ghép  Y)

5.

xóa các cạnh đã ghép khỏi M;

6.

ghép (x, y);


7. End
Quay lại ví dụ 1, với bộ ghép hai cạnh M = {(x[1], y[1]), (x[2], y[2])} và đường
mở tìm được gồm các cạnh:
(x[3], y[2])  M
(y[2], x[2])  M
(x[2], y[1]) M
(y[1], x[1])  M
(x[1], y[3]) M
Vậy thì ta sẽ loại đi các cạnh (y[2], x[2]) và (y[1], x[1]) trong bộ ghép cũ và
thêm vào đó các cạnh (x[3], y[2]), (x[2], y[1]), (x[1], y[3]) được bộ ghép 3 cạnh.
1.2.2 Bài tốn tìm bộ ghép đầy đủ với trọng số cực tiểu trên đồ thị hai phía
1.2.2.1 Bài tốn
Input: Đồ thị hai phía đầy đủG = (X Y,E).
X={x[1], x[2],…, x[m]}, Y = {y[1], y[2],…, y[n]}
Được cho bởi ma trận vuông C cỡ kk, c[i, j] bằng trọng số cạnh nối đỉnh x[i]
với y[j]. Giả thiết c[i, j]0 (i, j).
Output: Bộ ghép đầy đủ trọng số cực tiểu.
Hai định lý sau đây tuy rất đơn giản nhưng là những định lý quan trọng tạo cơ sở

8


cho thuật tốn sẽ trình bày:
Định lý 1: Loại bỏ khỏi G những cạnh trọng số lớn hơn 0. Nếu những cạnh
trọng số 0 còn lại tạo ra bộ ghép k cạnh trong G thì đây là bộ ghép cần tìm.
Chứng minh: Theo giả thiết, các cạnh của G mang trọng số không âm nên bất
kỳ bộ ghép nào trong G cũng có trọng số khơng âm, mà bộ ghép ở trên mang trọng
số 0, nên tất nhiên đó là bộ ghép đầy đủ trọng số nhỏ nhất.
Định lý 2: Với đỉnh x[i], nếu ta cộng thêm một số (dương hay âm) vào tất cả

những cạnh liên thuộc với x[i] (tương đương với việc cộng thêm  vào tất cả các
phần tử thuộc hàng i của ma trận C) thì không ảnh hưởng tới bộ ghép đầy đủ trọng
số nhỏ nhất.
Chứng minh: Với một bộ ghép đầy đủ bất kỳ thì có một và chỉ một cạnh ghép
với x[i]. Nên việc cộng thêm  vào tất cả các cạnh liên thuộc với x[i] sẽ làm tăng
trọng số bộ ghép đó lên . Vì vậy nếu như ban đầu, M là bộ ghép đầy đủ trọng số
nhỏ nhất thì sau thao tác trên, M vẫn là bộ ghép đầy đủ trọng số nhỏ nhất.
1.2.2.2 Các khái niệm
Ta gọi những cạnh trọng số 0 của G là những 0_cạnh.
Xét một bộ ghép M chỉ gồm những 0_cạnh.
-

Những đỉnh thuộc M gọi là những đỉnh đã ghép, những đỉnh còn lại gọi là
những đỉnh chưa ghép.

-

Những 0_cạnh  M gọi là những 0_cạnh đã ghép, những 0_cạnh cịn lại là
những khơng cạnh chưa ghép.

Nếu ta định hướng lại các 0_cạnh theo cách: Những 0_cạnh chưa ghép cho hướng
từ tập X sang tập Y, những 0_cạnh đã ghép cho hướng từ tập Y về tập X. Khi đó:
-

Đƣờng pha: Là một đường đi cơ bản xuất phát từ một X_ đỉnh chưa ghép đi
theo các 0_cạnh đã định hướng ở trên. Như vậy dọc trên đường pha, các
0_cạnh chưa ghép và những 0_cạnh đã ghép xen kẽ nhau. Vì đường pha chỉ
là đường đi cơ bản trên đồ thị định hướng nên việc xác định những đỉnh nào
có thể đến được từ x  X bằng một đường pha có thể sử dụng các thuật tốn
tìm kiếm trên đồ thị. Những đỉnh và những cạnh được duyệt qua tạo thành


9


một cây pha gốc x.
-

Đƣờng mở: Là một đường pha đi từ một X_ đỉnh chưa ghép tới một Y_đỉnh
chưa ghép.

Như vậy:
 Đường đi trực tiếp từ một X_đỉnh chưa ghép tới một X_đỉnh chưa ghép qua
một 0_cạnh chưa ghép cũng là một đường mở.
 Dọc trên đường mở, số 0_cạnh chưa ghép nhiều hơn số 0_cạnh đã ghép đúng
1 cạnh.
1.2.2.3 Thuật toán Hungari
Bƣớc 1: Khởi tạo
Một bộ ghép M:=
Bƣớc 2: Với mọi đỉnh x* X, ta tìm cách ghép x*:
Bắt đầu từ đỉnh x*, thử tìm đường mở bắt đầu ở x* bằng thuật tốn tìm kiếm trên
đồ thị. Có hai khả năng có thể xảy ra:
-

Hoặc tìm được đường mở thì dọc theo đường mở, ta loại bỏ những cạnh đã
ghép khỏi M và thêm vào M những cạnh chưa ghép, ta được một bộ ghép
mới nhiều hơn bộ ghép cũ 1 cạnh và đỉnh x* trở thành đã ghép.

-

Hoặc khơng tìm được đường mở thì có thể xác định được:


VisitedX= {Tập những X_đỉnh có thể đến được từ x* bằng một đường pha}
VisitedY= {Tập những Y_đỉnh có thể đến được từ x* bằng một đường pha}
Gọi  là trọng số nhỏ nhất của các cạnh nối giữa một đỉnh thuộc VisitedX với
một đỉnh không thuộc VisitedY. Dễ thấy >0 bởi nếu =0 thì tồn tại một 0_cạnh (x,
y) với xVisitedX và yVisitedY. Vì x* đến được x bằng một đường pha và (x, y) là
một 0_cạnh nên x* cũng đến được y bằng một đường pha, dẫn tới y VisitedY, điều
này vô lý.
Biến đổi đồ thịG với x VisitedX, trừ  vào trọng số những cạnh liên thuộc
với x, với yVisitedY, cộng  vào trọng số những cạnh liên thuộc với y.
Lặp lại thủ tục tìm kiếm trên đồ thị thử tìm đường mở xuất phát ở x* cho tới khi
tìm ra đường mở.

10


Bƣớc 3: Sau bước 2 thì mọi X_đỉnh đều được ghép, in kết quả về bộ ghép tìm được.
1.2.3 Bài tốn tìm bộ ghép đầy đủ với trọng số cực đại trên đồ thị hai phía
1.2.3.1 Bài tốn
Input: Đồ thị hai phía đầy đủG = (X Y,E).
X={x[1], x[2],…, x[m]}, Y = {y[1], y[2],…, y[n]}
Được cho bởi ma trận vuông C cỡ kk, c[i, j]bằng trọng số cạnh nối đỉnh x[i]
với y[j]. Giả thiết c[i, j]0 (i, j).
Output: Bộ ghép đầy đủ trọng số cực đại.
1.2.3.2 Thuật tốn
Bài tốn tìm bộ ghép cực đại với trọng số cực đại cũng có thể giải nhờ phương
pháp Hungari bằng cách đổi dấu tất cả các phần tử ma trận chi phí.
Bƣớc 1: Khởi tạo:
-


M:=;

-

Khởi tạo hai dãy Fx và Fythỏa mãn: i, j: Fx[i] + Fy[j] c[i, j]; chẳng hạn
ta có thể đặt Fx[i] := Phần tử lớn nhất trên dòng i của ma trận C và đặt các
Fy[j] :=0.

Bƣớc 2: Với mọi đỉnh x* X ta tìm cách ghép x*:
Bắt đầu từ đỉnh x*, thử tìm đường mở bắt đầu ở x*. Có hai khả năng xảy ra:
-

Hoặc tìm đường mở thì dọc theo đường mở, ta loại bỏ những cạnh đã ghép
khỏi M và thêm vào M những cạnh chưa ghép.

-

Hoặc khơng tìm được đường mở thì xác định được:
VisitedX = {Tập những X_đỉnh có thể đến được từ x* bằng một đường pha}
VisitedY = {Tập những Y_đỉnh có thể đến được từ x* bằng một đường pha}

Đặt :=min{Fx[i] + Fy[j] – c[i,j] |  x[i]  VisitedX; y[j]  VisitedY}
Xoay trọng số cạnh:
Với x[i]  VisitedX: Fx[i]:= Fx[i] - 
Với y[j]  VisitedY: Fy[j]:= Fy[j] + 
Lặp lại thủ tục tìm đường mở xuất phát tại x* cho tới khi tìm ra đường mở.
Bƣớc 3: Sau bước 2 thì mọi X_đỉnh đều đã ghép, ta được một bộ ghép đầy đủ k
cạnh với trọng số lớn nhất.

11



1.3 Thuật tốn ghép đơi với thơng tin đầy đủ
1.3.1 Phát biểu bài toán
Cho tập X = {x[1], x[2],…, x[n]} và Y = {y[1], y[2],…, y[n]}
Mỗi phần tử của X có thể ghép với một số phần tử của Y. Vấn đề đặt ra là tìm
cách ghép mỗi phần tử của X với một số phần tử của Y sao cho số cặp ghép là lớn
nhất.
Bài tốn ghép đơi với thơng tin đầy đủ là bài tốn ghép đơi đầy đủ thông tin các
phần tử củaX và Y.
Một số định nghĩa sau đây được sử dụng trong bài toán ghép đôi([2], [15], [8]).
Định nghĩa 1 (Ghép đôi): Cho 2 tập rời nhau X và Y.
Một phép ghép : X∪ Y → X∪ Y∪ {∅} là một phép ghép m ột đối tượng trong
một tập cho một hoặc nhiều đối tượng trong tập khác hoặc một đối tượng rỗng. Nếu
một đối tượng được ghép đôi với một đối tượng rỗng, chúng ta nói rằng các đối
tượng là "khơng ghép đơi được".
Định nghĩa 2 (Tính hợp lý riêng): Một phép ghép μ là hợp lý riêng nếu không
tồn tại trường hợp: đối tượng i đã được ghép đôi với μ(i) nhưng đối tượng này lại
không thỏa mãn với μ(i).
Định nghĩa 3 (Ghép cặp ổ n đinh):
Một phép ghép  được gọi là ổn định nếu và
̣
chỉ nếu nó là hợp lý riêng và không tồn tại một đối tượng i, mà với μ(i) ≠ j nhưng i
thích j hơn μ(i) và j cũng thích i hơn μ(i).
Một cặp ghép khơng ổn định là một phép ghép cặp mà nó không ổn định.
Định nghĩa 4 (Ghép cặp tố i ưu): Một phép ghép c ặp ổn định là tối ưu nếu tất
cả các đối tượng được ghép đều tốt hơn so với bất kỳ phép ghép cặp ổn định khác.
1.3.2 Bài tốn hơn nhân bền vững
1.3.2.1 Giới thiệu bài toán
Năm 1962 hai nhà kinh tế David Gale và Lloyd Shapley [8] đã nghiên cứu thuật

tốn ghép đơi giữa nhưng người đàn ơng và phụ nữ độc thân muốn kết hơn.
Có số lượng như nhau người đàn ông và người phụ nữ độc thân. Mỗi người đàn
ơng có tiêu chuẩn lựa chọn nhưng người phụ nữ mà anh ta muốn ghép đôi. Đối với

12


phụ nữ cũng vậy, họ có lựa chọn nhưng người đàn ơng mà họ muốn ghép đơi.
Thực tế khơng có trường hợp tất cả người đàn ông đều lấy được người phụ nữ
tuyệt vời vì người đó chỉ có một. Và ngược lại, không phải người phụ nữ nào cũng
lấy được người đàn ơng lý tưởng nhất.
Bài tốn giải quyết vần đề tìm số lượng tối đa các cặp vợ chồng phù hợp với
nhau, giảm thiểu tình trạng độc thân.
1.3.2.2 Mơ tả bài tốn
Cho một tập những người đàn ơng M = {m1,..., mn}
Một tập những người phụ nữW = {w1,.., wn}.
Một tập có thứ tự về tiêu chuẩn lựa chọn của mỗi người đàn ông:
SMi W, i = 1, n .
Một tập có thứ tự về tiêu chuẩn lựa chọn của mỗi người phụ nữ:
SWj M , j = 1, n .
Những người này được ghép đôi với nhau sao cho không tồn tại một cặp nào mà
người chồng bên cặp này lại thích người vợ bên cặp kia hơn vợ mình, đồng thời
người vợ bên cặp kia lại cũng thích người chồng bên cặp này hơn chồng mình. Nếu
khơng tồn tại những người như vậy thì tất cả các cuộc hơn nhân là "bền vững."
Do con người có những đặc điểm khác biệt, phức tạp về tâm lý, tình cảm nên bài
tốn hơn nhân bền vững có nhưng đặc trưng riêng:
-

Những người đàn ông và những người phụ nữ trong thị trường hôn nhân đều
muốn kết hôn người thích kết hơn với họ. Tập có thứ tự về tiêu chuẩn lựa

chọn của mỗi người có thể khơng rõ ràng nếu họ biết thứ tự của mình trong
tiêu chuẩn lựa chọn của những người khác.

-

Trong quá trình trao đổi gặp gỡ, sự thay đổi về tâm lí, suy nghĩ, cảm xúc là
điều không thể tránh khỏi. Những thay đổi trong suy nghĩ này sẽ dẫn đến sự
thay đổi về tập có thứ tự về tiêu chuẩn lựa chọn của mỗi người.

-

Trong số những người muốn kết hôn, chắc chắn sẽ có những người sẽ được
u thích hơn, người được u thích này sẽ chỉ thích nhiều nhất một người.
Vì vậy tối đa sẽ chỉ có một người đạt được lựa chọn u thích nhất của mình

13


Vì nhưng đặc trưng trên dẫn tới việc thực hiện bài tốn hơn nhân bền vững phải
có điều kiện bắt buộc:
-

Những người tham gia ghép đơi đưa ra tập có thứ tự về tiêu chuẩn lựa chọn
của mình trước khi thực hiện thuật tốn ghép đơi.

-

Tập có thứ tự này phải được cố định, không được phát sinh trong quá trình
thực hiện thuật tốn.


-

Tập có thứ tự này phải hồn toàn xuất phát từ bản thân những người tham gia
ghép đơi, nó khơng bị ảnh hưởng bởi bất kì yếu tố bên ngồi nào khác. Nếu
điều này khơng được thực hiện, kết quả bài toán sẽ bị ảnh hưởng về lâu dài.

-

Khi thực hiện thuật toán, chỉ xét tới những người nằm trong tập có thứ tự về
tiêu chuẩn lựa chọn của mỗi người. Không xét tới những người nằm ngồi
tập có thứ tự về tiêu cuẩn lựa chọn này.

Các điều kiện trên phải bắt buộc thực hiện mới dẫn đến kết quả ổn định bền
vững của bài toán.
1.3.2.3 Thuật toán Gale-Shapley
Thuật toán Gale-Shapley được xây dựng để giải quyết bài tốn, là một dạng
thuật tốn khác để tìm bộ ghép cực đại trong bài tốn ghép đơi khơng trọng.
Kết quả bài toán sẽ khác nhau với trường hợp ai là người đề nghị trước. Trong
phần này, luận văn trình bày thuật tốn với trường hợp những người đàn ơng đề
nghị trước.
Thuật toán hoạt động theo cách sau đây:
Bƣớc 1:
Sau khi mỗi người đưa ra tập có thứ tự về tiêu chuẩn lựa chọn của mình.
Nhưng người đàn ơng chưa đính hơn sẽ đồng thời 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.
Mỗi cô gái được cầu hôn sẽ so sánh những người cầu hơn và người mà cơ đang
đính hơn (nếu có) với nhau. Trong những người đó, ai có thứ hạng cao hơn trong
danh sách của cơ thì sẽ đính hơn với cơ, cịn những người cịn lại bị từ chối và
người đang đính hơn (nếu có) với cơ bị hủy hôn.


14


Bƣớc 2:
Những người đàn ơng bị từ chối ở vịng trước sẽ tiếp tục ngỏ lời tới người mà
mình thích tiếp theo.
Cơ chế chấm dứt và mỗi người nhận được lời đề nghị sẽ kết hơn với người có
trên danh sách của mình.
Thuật tốn Gale-Shapley sẽ dẫn đến một bộ ổn định của kết quả. Đó là tối ưu
cho "các bên đề xuất" trong một cách ghép că ̣p phù hợp với cả hai bên.
Mã giả bài tốn hơn nhân bền vững:
1.

StableMatching()

2.

Khởi tạo: (mi, ) ; (, wj) với  miM và wjW;

3.

While ( mi | (mi,) và Smi ≠ )

4.

w = người phụ nữ m thích nhất mà vẫn chưa cầu hôn;

5.

if (,w)


6.

ghép (m, w);
else ( 1 cặp (w,m’)) {

7.
8.

if(w thích m hơn m’)

9.

ghép (w, m);

10.

< khôi phục trạng thái (m’, ) >;

11.

else

12.

(w, m’) vẫn là một đôi;

13.

endif;


14.
15.

endif;
End

Các định lý sau được đưa ra từ thuất toán Gale-Shapley.
Định lý 3: Đối với bất kỳ sở thích nào được đặt ra t ừ cả hai bên, luôn luôn tồn
tại một tập hợp các cuộc hôn nhân ổn định.
Chứng minh: Giả sử tồn tại một cuộc hôn nhân không ổn định, tức là tồn tại
trường hợp tuy một người đàn ông và một người phụ nữ đã kết hôn nhưng người
đàn ông này lại thích người phụ nữ khác hơn vợ của mình, và đồng thời người phụ
nữ đó cũng thích anh ta hơn người chồng của mình.

15


Theo các bước thực hiện thực hiện thuật toán, kết quả thu được sẽ ngày càng tốt
hơn đối với người phụ nữ. Điều này có nghĩa, kết quả cuối cùng người phụ nữ này
sẽ lấy người đàn ông mà cô ấy thích nhất, chắc chắn người phụ nữ này sẽ thích
người chồng hiện tại của mình hơn bất kỳ người đàn ơng nào khác.
Thực hiện thuật tốn Gale-Shapley, vì người đàn ơng này thích cơ gái này nên
tại một bước nào đó người đàn ơng sẽ ngỏ lời tới người phụ nữ này. Vì người phụ
nữ này cũng thích anh ta nên cô ấy sẽ chấp nhận lời đề nghị của người đàn ơng đó.
Nếu người đàn ơng này là người mà cơ ấy thích nhất đến cuối cùng họ sẽ phải là
một đôi. Điều này mâu thuẫn với giả thiết: người phụ nữ này thích người đàn ơng
hơn chồng của mình (Đpcm).
Ví dụ 2:
Cho một tập gồm 3 người đàn ông: M= {m1,m2,m3}

Cho một tập gồm 3 người đàn ông: W= {w1, w2, w3}
Tập có thứ tự về tiêu chuẩn lựa chọn của người đàn ông m1: Sm1 = {w1, w2, w3}
Tập có thứ tự về tiêu chuẩn lựa chọn của người đàn ông m2: Sm2 = {w1, w2, w3}
Tập có thứ tự về tiêu chuẩn lựa chọn của người đàn ơng m3: Sm3 = {w2, w1, w3}
Tập có thứ tự về tiêu chuẩn lựa chọn của người đàn ông w1: Sw1 = {m3, m2, m1}
Tập có thứ tự về tiêu chuẩn lựa chọn của người đàn ông w2: Sw2 = {m2, m1, m3}
Tập có thứ tự về tiêu chuẩn lựa chọn của người đàn ông w3: Sw3 = {m2, m3, m1}
Chú thích: trong 1 ơ của 1 bảng

Hình 9: Chú thích trong 1 ơ của 1 bảng bài tốn hơn nhân bền vững
16


Dựa vào tiêu chuẩn lựa chọn của nhưng người đàn ông m1, m2, m3 và phụ nữ w1,
w2, w3 ta có tập thứ tự lựa chọn theo bảng sau:
m1
m2
m3

w1
(1, 3)
(1, 2)
(2, 1)

w2
(2, 2)
(2, 1)
(1, 3)

w3

(3, 3)
(3, 1)
(3, 2)

w1
m1 , m2
m2
m2, m3
m3
m3

w2
m3
m1 , m3
m1
m1 , m2
m2

w3

Các bước thực hiện:
Bước 1
Bước 2
Bước 3
Bước 4
Bước 5







m1

Các bước thực hiện người đàn ông sẽ lần lượt ngỏ lời với người phụ nữ trong
lựa trọn của mình, người phụ nữ sẽ giữ lại lời đính hơn của người đàn ơng mà mình
ưu tiên nhất trong tập lựa chọn của họ. Ta có kết quả sau các bước ghép đôi:
Lần 1
Lần 2
Lần 3
Lần 4
Lần 5

(m2, w1)
(m2, w1)
(m3, w1)
(m3, w1)
(m3, w1)

(m1,)
(m1, w2)
(m1, w2)
(m2, w2)
(m2, w2)

(m3, w2)
(m3, )
(m3,)
(m1, )
(m3, w3)


(,w3)
(,w3)
( ,w3)
( ,w3)

1.4 Kết luận chƣơng
Trong chương 1 đã trình bày tổng quan một số vấn đề liên quan tới đồ thị vơ
hướng, đồ thị hai phía. Đây là những kiến thức cơ sở chuẩn bị cho nhưng nghiên
cứu tiếp theo của luận văn này.
Phần đầu của chương giới thiệu những khái niệm cơ bản về đồ thị vàđồ thị hai
phía, một số dạngđồ thị. Tiếp theo là các bài tốn ghép đơi trên đồ thị hai phía.
Sau đó, trình bày về thuật tốn ghép đơi với thơng tin đầy đủ, áp dụng thuật tốn
ghép đơi với bài tốn hơn nhân bền vững, thuật tốn này rất quan trọng trong phần
phân tích tính khơng đầy đủ của chương sau.

17


Chƣơng 2.

GHÉP ĐÔI VỚI THÔNG TIN KHÔNG ĐẦY ĐỦ

Trong chương này, sẽ trình bày các khái niệm của thơng tin khơng đầy đủ trong
bài tốn ghép đơi, tiếp theo chúng tơi tập trung chính vào tính ổn định cho các vấn
đề ghép đôi với điều kiện thông tin không đầy đủ. Trong điều kiện chung, các kết
quả ổn định với thông tin không đầy đủ tồn tại trong môi trường thơng tin khơng
được cân xứng [16].
2.1 Giới thiệu bài tốn
Ghép đôi với thông tin không đầy đủ là một bài tốn ghép đơi sử dụng thuật tốn

Gale-Shapley để giải quyết.
Cho hai tập rời nhauX và Y. Mỗi phần tử của X có thể ghép với một số phần tử
của Y. Tìm cách ghép mỗi phần tử của X với một số phần tử của Y sao cho số cặp
ghép là lớn nhất.
Trong bài tốn ghép đơi này thơng tin khơng đầy đủ bao gồm các dạng sau:
-

Lực lượng ghép đôi hai bên của hai tậpX và Ykhông bằng nhau

-

Lực lượng ghép đôi hai bên của hai tậpX và Y bằng nhau nhưng thông tin lựa
chọn giữa các phần tử trong X và Ykhông đầy đủ và thiếu thông tin.

-

Lực lượng ghép đôi hai bên X và Ykhông bằng nhau và thông tin lựa chọn
giữa các phần tử trong X và Ykhơng đầy đủ và thiếu thơng tin.

Hiện nay có khá nhiều ứng dụng mơ hình ghép đơi được giới thiệu bởi Gale Shapley (1962) và Shapley-Shubik (1971)([8], [17]) vào phân tích thị trường với hai
bên khơng đồng nhất, nghiên cứu các vấn đề như ghép đôi giữa sinh viên với trường
đại học, vợ với chồng, người lao động với công ty. Phân tích điển hình trong luận
văn này giả định rằng các phần tử có đầy đủ thơng tin, và kiểm chứng, xem xétkết
quả ổn đinh của các cặp ghép này. Cặp ghép dự kiến được coi là ổn định khi ghép
đôi từng công ty với một người lao động dựa trên cùng một tiêu chí ghép (ví dụ như
tiêu chí về số tiền thù lao) sao cho khơng có một cặp đôi không cân xứng nào kết
hợp với nhau để tạo ra mức thù lao chấp nhận được và làm tăng lợi ích của cả hai
bên.

18



×