ĐẠI HỌC THÁI NGUYÊN
ứ
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG
Style Definition: TOC 1: Justified, Right:
-0.02", Tab stops: 6.13", Right,Leader: … +
Not at 6.33"
Style Definition: TOC 2: Tab stops: 0.38",
Left
Style Definition: TOC 3: Right: -0.02", Tab
stops: 6.13", Right,Leader: … + Not at 6.38"
NGUYỄN HỒNG HẢI
BÀI TOÁN GHÉP CẶP VÀ ỨNG DỤNG
TRONG CÔNG TÁC TUYỂN SINH
LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH
Thái Nguyên - 2015
2
MỤC LỤC
LỜI CẢM ƠN ....................................................................................................... 64
DANH MỤC VIẾT TẮT ....................................................................................... 75
DANH MỤC CÁC HÌNH ..................................................................................... 86
DANH MỤC CÁC BẢNG .................................................................................. 107
Lời nói đầu .......................................................................................................... 118
Chương 1: TỔNG QUAN MỘT SỐ VẤN ĐỀ VỀ ĐỒ THỊ................................1511
1.1.Các khái niệm cơ bản....................................................................................1511
1.1.1.Đồ thị ........................................................................................................1511
1.1.2.Đồ thị hai phía ...........................................................................................1511
1.1.3.Đồ thị hai phía đầy đủ ................................................................................1612
1.2.Bài toán ghép cặp không trọng......................................................................1814
1.2.1. Bài toán ....................................................................................................1814
1.2.2.Thuật toán đường mở .................................................................................2016
1.3.Bài toán ghép cặp với trọng số cực tiểu.........................................................2217
1.3.1.Bài toán .....................................................................................................2217
1.3.2.Các khái niệm ............................................................................................2318
1.3.3.Thuật toán Hungari ....................................................................................2419
1.4. Bài toán ghép cặp với trọng số cực đại.........................................................2621
1.4.1.Bài toán .....................................................................................................2622
1.4.2.Thuật toán..................................................................................................2722
1.5.Kết luận chương ...........................................................................................2924
Chương 2: BÀI TOÁN GHÉP CẶP....................................................................3025
2.1.Giới thiệu bài toán ........................................................................................3025
2.1.1.Phát biểu bài toán ......................................................................................3025
2.2.Bài toán hôn nhân bền vững .........................................................................3227
Formatted: Font: 14 pt
Formatted: Font: Not Bold
3
2.2.1.Giới thiệu bài toán .....................................................................................3227
2.2.2.Đặt bài toán ...............................................................................................3328
2.2.3.Các đặc trưng của bài toán .........................................................................3429
2.2.4.Điều kiện giải bài toán ...............................................................................3530
2.2.5.Thuật toán cho bài toán hôn nhân bền vững ...............................................3530
2.2.5.1.Ý tưởng và lược đồ thuật toán .................................................................3630
2.2.5.2.Tính ổn định và bền vững .......................................................................4135
2.2.6.Triển khai thuật toán ..................................................................................4540
2.3.Một số ứng dụng phát triển dựa trên thuật toán hôn nhân bền vững ..............4842
2.3.1.Bài toán ghép tạng (cho và nhận thận) .......................................................4942
2.3.2.Bài toán ghép cặp bác sĩ thực tập và bệnh viện ..........................................4943
2.4.Kết luận chương ...........................................................................................5043
Chương 3: ỨNG DỤNG THUẬT TOÁN GHÉP CẶP TRONG BỐI CẢNH
TUYỂN SINH ĐẠI HỌC Ở NƯỚC TA .............................................................5145
3.1.Giới thiệu bài toán tuyển sinh ở nước ta ........................................................5145
3.2.Ý nghĩa bài toán ...........................................................................................5246
3.3.Đặt bài toán ..................................................................................................5448
3.4.Ý tưởng giải quyết bài toán ...........................................................................5549
3.5.Áp dụng bài toán hôn nhân bền vững ............................................................5549
3.6.Sự khác nhau giữa bài toán hôn nhân bền vững và tuyển sinh đại học...........5650
3.7.Thuật toán.....................................................................................................5851
3.8.Tính ổn định của thuật toán...........................................................................6256
3.9.Kết luận chương ...........................................................................................6660
KẾT LUẬN ........................................................................................................6861
TÀI LIỆU THAM KHẢO ..................................................................................6962
LỜI CẢM ƠN ......................................................................................................... 4
Formatted: Tab stops: Not at 6.13"
4
DANH MỤC CÁC HÌNH ....................................................................................... 5
Chương 1: TỔNG QUAN MỘT SỐ VẤN ĐỀ VỀ ĐỒ THỊ................................... 10
1.1.
Các khái niệm cơ bản................................................................................... 10
1.1.1. Đồ thị........................................................................................................... 10
1.1.2. .................................................................................................. Đồ thị hai phía
Formatted: Font: Times New Roman, 13 pt
10
Formatted: Font: Times New Roman, 13 pt
Formatted: Font: Times New Roman, 13 pt
1.1.3. ....................................................................................... Đồ thị hai phía đầy đủ 12
Formatted: Font: Times New Roman, 13 pt
1.1.4. .......................................................................... Bài toán ghép cặp không trọng
Formatted: Font: Times New Roman, 13 pt
a.
Bài toán ......................................................................................................... 14
b.
Thuật toán đường mở .................................................................................... 15
14
Formatted: Font: Times New Roman, 13 pt
Formatted: Font: Times New Roman, 13 pt
Formatted: Font: Times New Roman, 13 pt
Formatted: Tab stops: Not at 6.13"
1.1.5. .............................................................Bài toán ghép cặp với trọng số cực tiểu 17
Formatted: Font: Times New Roman, 13 pt
a.
Bài toán ......................................................................................................... 17
Formatted: Font: Times New Roman, 13 pt
b.
Các khái niệm................................................................................................ 18
c.
Thuật toán Hungari ........................................................................................ 19
Formatted: Tab stops: Not at 6.13"
1.1.6. Bài toán ghép cặp với trọng số cực đại ......................................................... 20
Formatted: Font: Times New Roman, 13 pt
Formatted: Font: Times New Roman, 13 pt
a. Bài toán 21
Formatted: Tab stops: Not at 6.13"
b. Thuật toán ......................................................................................................... 21
1.2. Kết luận chương ............................................................................................. 23
Formatted: Font: Not Bold
Chương 2: BÀI TOÁN GHÉP CẶP....................................................................... 24
Formatted: Font: Times New Roman, 13 pt,
Not Bold
2.1. Giới thiệu bài toán .......................................................................................... 24
Formatted: Font: Times New Roman, 13 pt
Formatted: Font: Times New Roman, 13 pt
2.1.1. Phát biểu bài toán ........................................................................................ 24
Formatted: Font: Times New Roman, 13 pt
2.1.2. Các định nghĩa ............................................................................................. 24
Formatted: Not Highlight
Formatted: Font: Times New Roman, 13 pt
2.1.3. Các trường hợp giải bài toán ghép cặp ......................................................... 25
Formatted: Tab stops: Not at 6.13"
2.2. Bài toán hôn nhân bền vững............................................................................ 26
Formatted: Font: Times New Roman, 13 pt
Formatted: Font: Times New Roman, 13 pt
2.2.1. Giới thiệu bài toán ....................................................................................... 26
Formatted: Font: Times New Roman, 13 pt
2.2.2. Đặt bài toán ................................................................................................. 26
Formatted: Font: Times New Roman, 13 pt
Formatted: Font: Times New Roman, 13 pt
2.2.3. ................................................................................ Các đặc trưng của bài toán
28
2.2.4. ...................................................................................... Điều kiện giải bài toán
28
Formatted: Font: Times New Roman, 13 pt
2.2.5. ...................................................... Thuật toán cho bài toán hôn nhân bền vững
29
Formatted: Font: Times New Roman, 13 pt
Formatted: Font: Times New Roman, 13 pt
Formatted: Font: Times New Roman, 13 pt
5
a. Ý tưởng và lược đồ thuật toán ...................................................................... 29
Formatted: Font: Times New Roman, 13 pt
b. Tính ổn định và bền vững ............................................................................. 34
Formatted: Font: Times New Roman, 13 pt
2.2.6. ......................................................................................... Triển khai thuật toán
38
Formatted: Font: Times New Roman, 13 pt
Formatted: Font: Times New Roman, 13 pt
a. Thiết kế chương trình ......................................................................................... 38
Formatted: Tab stops: Not at 6.13"
b. Hệ thống 38
c. Chương trình...................................................................................................... 39
2.3.
Một số ứng dụng phát triển dựa trên thuật toán hôn nhân bền vững ............. 40
2.3.1. .............................................................. Bài toán ghép tạng (cho và nhận thận) 40
2.3.2. ................................................. Bài toán ghép cặp bác sĩ thực tập và bệnh viện
2.4.
Kết luận chương .......................................................................................... 41
40
Formatted: Font: Times New Roman, 13 pt
Formatted: Font: Times New Roman, 13 pt
Formatted: Font: Times New Roman, 13 pt
Formatted: Font: Times New Roman, 13 pt
Formatted: Tab stops: Not at 6.13"
Chương 3: ỨNG DỤNG THUẬT TOÁN GHÉP CẶP TRONG BỐI CẢNH
TUYỂN SINH ĐẠI HỌC Ở NƯỚC TA. ............................................................... 42
3.1.
Giới thiệu bài toán tuyển sinh ở nước ta. ...................................................... 42
3.2.
Ý nghĩa bài toán .......................................................................................... 43
3.3.
Đặt bài toán ................................................................................................. 45
3.4.
Ý tưởng giải quyết bài toán .......................................................................... 46
3.5.
Áp dụng bài toán hôn nhân bền vững ........................................................... 46
3.6.
Sự khác nhau giữa bài toán hôn nhân bền vững và tuyển sinh đại học.......... 46
3.7.
Thuật toán.................................................................................................... 48
3.8.
Tính ổn định của thuật toán ......................................................................... 52
Formatted: Font: 12 pt
Formatted: Centered
6
LỜI CẢM ƠN
Để hoàn thành luận văn này, emtôi xin bày tỏ lòng biết ơn sâu sắc đến cô
Formatted: Font: 14 pt
giáo hướng dẫn TS. Nguyễn Thị Hồng Minh đã tận tình hướng dẫn em tôi
trong suốt quá trình thực hiện luận văn.
EmTôi xin chân thành cảm ơn quý Thầy, Cô trong trường Đại học Công
nghệ Tthông tin & Truyền thông - Đại học Thái Nguyên; quý Thầy, Cô trong
Viện Công nghệ thông tin đã tận tình truyền đạt kiến thức cho chúng emtôi
trong 2 năm học tập và nghiên cứu. Với vốn tiếp thu trong khóa học không
chỉ là nền tảng cho quá trình nghiên cứu luận văn này mà còn là hành trang
quý báu, nền tảng vững chắc để emtôi tiếp tục nghiên cứu, hoạt động trong
lĩnh vực công nghệ thông tin.
Cuối cùng Em xixin cảm ơn gia đình, bạn bè, đồng nghiệp đã giúp đỡ
và động viên tôi em trong công việc và học tập cũng như trong quá trình thực
Formatted: Font: 14 pt, Font color: Auto
Formatted: Font: 14 pt
Formatted: Font: 14 pt, Font color: Auto
Formatted: Font: 14 pt
hiện luận văn này.
Formatted: Font: 14 pt, Font color: Auto
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!
Formatted: Font: 14 pt
Trân trọng cảm ơn!
Thái Nguyên, ngày 12 tháng 5 năm 2015
Tác giả
Nguyễn Hồng Hải
Formatted Table
Formatted: Font: Bold, Not Italic
Formatted: Font: Bold, Not Italic
Formatted: Centered
7
Formatted: Font: Not Bold
DANH MỤC VIẾT TẮT
Viết tắt
Viết đầy đủ
Ý nghĩa
Đpcm
Điều phải chứng minh
Điều phải chứng minh
THPT
Trung học phổ thông
Trường trung học phổ thông
Formatted: Font: Times New Roman, 13 pt
Formatted: Indent: Left: 0"
Formatted Table
Formatted: Font: Times New Roman, 13 pt
Formatted: Font: Times New Roman, 13 pt
Formatted: Centered, Indent: Left: 0"
Formatted: Font: Times New Roman, 13 pt
Formatted: Indent: Left: 0"
Formatted: Centered, Indent: Left: 0"
Formatted: Font: Times New Roman, 13 pt
Formatted: Indent: Left: 0"
Formatted: Font: Times New Roman, 13 pt
Formatted: Font: Times New Roman, 13 pt
8
DANH MỤC CÁC HÌNH
Hình 1. Đồ thị.................................................................................................... 1511
Hình 2. Đồ thị hai phía không có chu trình ........................................................ 1612
Hình 3. Đồ thị hai phía có chu trình ................................................................... 1612
Hình 4.Đồ thị không phải đồ thị hai phía ........................................................... 1612
Formatted: Font: Times New Roman, 13 pt
Formatted: Font: 13 pt
Formatted: Font: Times New Roman, 13 pt
Formatted: Font: 13 pt
Formatted: Font: Times New Roman, 13 pt
Formatted: Font: 13 pt
Hình 5.Đồ thị hai phía đầy đủ hình sao .............................................................. 1713
Formatted: Font: Times New Roman, 13 pt
Hình 6. Đồ thị hai phía đầy đủ hình vuốt cây ..................................................... 1713
Formatted: Font: 13 pt
Hình 7. Đồ thị hai phía đầy đủ m≠n ................................................................... 1814
Hình 8.Đồ thị hai phía đầy đủ m=n .................................................................... 1814
Formatted: Font: Times New Roman, 13 pt
Formatted: Font: 13 pt
Formatted: Font: Times New Roman, 13 pt
Formatted: Font: 13 pt
Hình 9. Đồ thị hai phía và bộ ghép M ................................................................ 2016
Hình 10. Chú thích trong 1 ô của bảng.............................................................. 3832
Formatted: Font: Times New Roman, 13 pt
Formatted: Font: 13 pt
Formatted: Font: Times New Roman, 13 pt
Hình 11. Khai báo số lượng người đàn ông và số lượng người phụ nữ tham gia
Formatted: Font: 13 pt
ghép cặp ............................................................................................................ 4741
Formatted: Font: Times New Roman, 13 pt
Formatted: Font: 13 pt
Hình 12. Khai báo tập có thứ tự về tiêu chuẩn lựa chọn của mỗi người đàn ông 4741
Hình 13. Khai báo tập có thứ tự về tiêu chuẩn lựa chọn của mỗi người phụ nữ .. 4841
Formatted: Font: Times New Roman, 13 pt
Formatted: Font: 13 pt
Formatted: Font: Times New Roman, 13 pt
Hình 14. Kết quả thực hiện chương trình ........................................................... 4842
Formatted: Font: 13 pt
Hình 15. Chú thích trong 1 ô của bảng............................................................... 6053
Formatted: Font: Times New Roman, 13 pt
Formatted: Font: 13 pt
Hình 1. Đồ thị............................................................................................................. 11
Formatted: Font: Times New Roman, 13 pt
Formatted: Font: 13 pt
Hình 2. Đồ thị hai phía không có chu trình ................................................................. 12
Hình 3. Đồ thị hai phía có chu trình ............................................................................ 12
Hình 4.Đồ thị không phải đồ thị hai phía .................................................................... 13
Hình 5.Đồ thị hai phía đầy đủ hình sao ....................................................................... 13
Formatted: Font: Times New Roman, 13 pt
Formatted: Font: 13 pt
Formatted: Font: Times New Roman, 13 pt
Formatted: Font: 13 pt
Formatted: Default Paragraph Font
Formatted: Default Paragraph Font
Formatted: Default Paragraph Font
Hình 6. Đồ thị hai phía đầy đủ hình vuốt cây .............................................................. 14
Formatted: Default Paragraph Font
Formatted: Default Paragraph Font
Hình 7. Đồ thị hai phía đầy đủ m≠n ............................................................................ 14
Formatted: Default Paragraph Font
Formatted: Default Paragraph Font
Hình 8.Đồ thị hai phía đầy đủ m=n ............................................................................. 15
Formatted: Default Paragraph Font
Hình 9. Đồ thị hai phía và bộ ghép M ......................................................................... 16
Formatted: Default Paragraph Font
9
Hình 10. Chú thích trong 1 ô của bảng....................................................................... 32
Formatted: Default Paragraph Font
Hình 11. Khai báo những người đàn ông và những người phụ nữ tham gia ghép đôi .. 40
Formatted: Default Paragraph Font
Hình 12. Khai báo tập có thứ tự về tiêu chuẩn lựa chọn của mỗi người đàn ông ......... 40
Formatted: Default Paragraph Font
Hình 13. Khai báo tập có thứ tự về tiêu chuẩn lựa chọn của mỗi người phụ nữ ........... 40
Formatted: Default Paragraph Font
Hình 14. Kết quả thực hiện chương trình .................................................................... 40
Formatted: Default Paragraph Font
Hình 15. Chú thích trong 1 ô của bảng........................................................................ 51
Formatted: Default Paragraph Font
Formatted: Heading 1, Space Before: 0 pt,
After: 0 pt
10
Formatted: Font: 14 pt
DANH MỤC CÁC BẢNG
Bảng 1. Tập có thứ tự về tiêu chuẩn lựa chọn của 3 người đàn ông m1, m2, m3 và 3
Formatted: Tab stops: 6.13", Right,Leader:
… + Not at 6.33"
người phụ nữ w1, w2, w3 ............................................................................. 38333332
Formatted: Font color: Auto
Bảng 2.Tập có thứ tự về tiêu chuẩn lựa chọn của 4 người đàn ông m1, m2, m3, m4 và
Formatted: Font color: Auto
4 người phụ nữ w1, w2, w3, w4. ................................................................... 38333332
Bảng 3.Tập có thứ tự về tiêu chuẩn lựa chọn của 4 người đàn ông m1, m2, m3, m4 và
Formatted: Font color: Auto
3 người phụ nữ w1, w2, w3: ......................................................................... 40343434
Bảng 4. Tập có thứ tự về tiêu chuẩn lựa chọn của 5 người đàn ông m1, m2, m3, m4,
Formatted: Font color: Auto
m5 và 5 người phụ nữ w1, w2, w3, w4, w5 .................................................... 42363636
Bảng 5. Tập có thứ tự về tiêu chuẩn lựa chọn 2 người phụ nữ w1, w2 và 2 người đàn
Formatted: Font color: Auto
ông m1, m2 .................................................................................................. 44393938
Bảng 6. Tập có thứ tự về tiêu chuẩn lựa chọn của 3 trường đại học u1, u2, u3 và 4 thí
Formatted: Font color: Auto
sinh s1, s2, s3, s4 ........................................................................................... 60545451
Bảng 7. Tập có thứ tự về tiêu chuẩn lựa chọn của 3 trường đại học u1, u2, u3 và 6 thí
Formatted: Font color: Auto
sinh s1, s2, s3, s4, s5, s6 ................................................................................. 61555552
Bảng 8. Tập có thứ tự về tiêu chuẩn lựa chọn của 3 trường đại học u1, u2, u3 và 6 thí
Formatted: Font color: Auto
sinh s1, s2, s3, s4, s5, s6 ................................................................................. 62565654
Bảng 9. :Tập có thứ tự về tiêu chuẩn lựa chọn của ba trường đại học: u1, u2, u3 và
bốn thí sinh: s1, s2, s3, s4 ........................................................................... 64585855
Formatted: Font color: Auto
Formatted: Font color: Auto
11
Formatted: Font: 14 pt
Lời nói đầu
Lý thuyết đồ thị là một lĩnh vực nghiên cứu đã có từ lâu và có nhiều
ứng dụng hiện đại. Những tư tưởng cơ bản của lý thuyết đồ thị được đề xuất
từ những năm đầu của thế kỷ 18 bởi nhà toán học lỗi lạc người Thụy Sĩ
Leonhard Euler. Chính ông là người đã sử dụng đồ thị để giải bài toán nổi
tiếng về các cái cầu ở thành phố Konigsberg. Từ đó lý thuyết đồ thị ngày càng
khẳng định được vị trí quan trọng trong việc áp dụng để giải quyết các bài
toán thực tế nhờ vào việc tìm ra ngày càng nhiều các định lý, công thức và
thuật toán. Các bài toán, thuật toán trong lý thuyết đồ thị không những có
nhiều ứng dụng trong thực tế mà nó còn giúp cho chúng ta mô tả một cách dễ
dàng các bài toán phức tạp cụ thể, để từ đó có thể mã hóa các bài toán đó vào
máy tính.
Thuật toán ghép cặp trong lý thuyết đồ thị là một ví dụ cụ thể: Thuật toá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í toán học vào năm 1962. Sau này, thuật toán còn được biết đến với tên gọi
thuật toán Gale-Shapley. Tuy nhiên, nghiên cứu của hai nhà khoa học David
Gale và Lloyd Shapley chỉ có vẻ đẹp thuần túy về mặt lý thuyết mà khó có thể
áp dụng vào trong thực tiễn. Nhà kinh tế học Alvin Roth đã đi xa hơn bằng
việc sáng tạo ra các luật chơi áp dụng được trong thực tế. Ông và các cộng sự
đã tổ chức các trò chơi kinh tế nho nhỏ để sinh viên tham gia. Sau đó các ông
thu thập và phân tích kết quả thu được 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ói cách khác, ông thiết
Formatted: Heading 1, Space Before: 0 pt,
After: 0 pt
12
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ả.
Gần đây nhất, năm 2012, ứng dụng của thuật toán này đã mang lại giải
thưởng Nobel kinh tế cho hai nhà khoa học người Mỹ là Alvin E.Roth và
Lloyd Shapley với nghiên cứu “Lý thuyết phân phối ổn định và thực tiễn thiết
kế thị trường” có khả năng ứng dụng rộng rãi trên khắp thế giới.
Thực tế các lĩnh vực trong cuộc sống có liên quan đến giao dịch có yêu
cầu ghép cặp là rất nhiều như: ghép cặp giữa các cặp đôi trong trung tâm môi
giới hôn nhân, ghép cặp 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…
Trong các lĩnh vực nêu trên, ở nước ta việc áp dụng thuật toán ghép cặp
vào các lĩnh vực đó là chưa nhiều và chưa phổ biến mặc dù có rất nhiều lĩnh
vực giao dịch có yêu cầu. Tuyển sinh đại học cũng là một trong nhiều lĩnh
vực có yêu cầu giao dịch ghép cặp, đặc biệt là trong khâu tuyển sinh Đại học.
Công tác tuyển sinh ở nước ta hiện đang được áp dụng đó là: Kết thúc kỳ
thi tốt nghiệp THPT quốc gia, các thí sinh sẽ tìm hiểu chỉ tiêu tuyển sinh,
điểm xét tuyển và các điều kiện tuyển sinh khác để lựa chọn những ngành
học, trường học phù hợp với nhu cầu của mình. Sau đó sẽ nộp hồ sơ xét dự thi
vào những trường có khả năng trúng tuyển cao. Mỗi thí sinh đăng ký xét
tuyển đại học sẽ gửi kết quả điểm thi tốt nghiệp THPT và các ngành học đăng
ký vào các trường mà mình muốn học (cho phép thí sinh đăng ký tối đa 4
ngành (hoặc nhóm ngành) của một trường cho mỗi đợt xét tuyển; Các nguyện
vọng này được xếp theo thứ tự ưu tiên từ 1 đến 4). Ngoài ra thí sinh còn
dùng 3 bản chính Giấy chứng nhận kết quả thi dùng cho xét tuyển các nguyện
vọng bổ sung để đăng ký; Kết thúc mỗi đợt xét tuyển nguyện vọng bổ sung,
Formatted: Font: 14 pt, Not Highlight
Formatted: Font: 14 pt
Formatted: Font: 14 pt, Not Highlight
13
thí sinh không trúng tuyển được quyền rút hồ sơ đăng ký xét tuyển để đăng ký
xét tuyển đợt tiếp theo.
Các trường đại học tiếp nhận hồ sơ ứng tuyển của các thí sinh và sẽ lựa
Formatted: Font: 14 pt
Formatted: Font: 14 pt, Font color: Auto
chọn những thí sinh có điểm từ cao xuống thấp cho đến khi hết chỉ tiêu.
Mô hình tuyển sinh đại học này có rất nhiều điểm tương đồng với mô
hình tuyển sinh đại học và vào các trường trung học ở Mỹ trước năm 2003:
các học sinh trung học được yêu cầu liệt kê 5 trường mà mình ưa thích, tiếp
theo danh sách này được gửi đến các trường đại học. Các trường học sẽ lựa
chọn xem học sinh nào phù hợp và từ chối những học sinh khác. Quá trình
này lặp lại khoảng hơn 2 vòng, và các trường sẽ lựa chọn được những thí sinh
phù hợp với trường mình.
Nhưng với hình thức tuyển sinh như vậy, kết quả là hơn 30.000 thí sinh
phải theo học ở trường mà mình không liệt kê trong danh sách, các trường học
bị loại bớt cơ hội lựa chọn những thí sinh mình mong muốn. Hơn nữa, cơ chế
này dẫn đến việc trình bày sai sở thích của mỗi sinh viên.
Với hình thức tuyển sinh ở nước ta cộng với mối liên quan mật thiết và
Formatted: Font: 14 pt
tính áp dụng thực tế rất cao như giới thiệu trên của bài toán ghép cặp tôi xin
lựa chọn đề tài: “ Bài toán ghép cặp và ứng dụng trong công tác tuyển
sinh” nhằm mục đích định hướng cho công tác tuyển sinh của các trường đại
học đạt chất lượng và hiệu quả, giúp hỗ trợ các em học sinh được học theo
đúng sở trường, năng lực để có một điều kiện tốt hơn trong tương lai.
Bố cục của luận văn gồm 3 chương.:
Formatted: Font: 14 pt, Font color: Auto
Formatted: Indent: First line: 0.32"
Formatted: Font: 14 pt, Font color: Auto
Formatted: Not Expanded by / Condensed by
Formatted: Font: 14 pt, Font color: Auto, Not
Expanded by / Condensed by
Formatted: Font: 14 pt, Font color: Auto, Not
Expanded by / Condensed by
Formatted: Not Expanded by / Condensed by
CChương 1: Ttrình bày nội dung tìm hiểu tổng quan về lý thuyết đồ thhị:
Các định nghĩa, các loại đồ thị, bậc của đồ thị, đường đi, chu trình, tính liên
thông trong đồ thị.. Tiếp theo
Formatted: Font: 14 pt, Font color: Auto, Not
Expanded by / Condensed by
Formatted: Font: 14 pt, Font color: Auto, Not
Expanded by / Condensed by
Formatted: Not Expanded by / Condensed by
Formatted: Font: 14 pt, Font color: Auto, Not
Expanded by / Condensed by
14
Cchương 2 2: Giới thiệu một số bài toán trên đồ thị:
Formatted: Font: 14 pt, Font color: Auto
Formatted: Font: 14 pt, Font color: Auto
trình bày bài toán ghép cặp, bài toán hôn nhân bền vững và các ứng dụng
của bài toán hôn nhân bền vững. Trong - Bài toán ghép cặp:
+ Bài toán ghép cặp không trọng
Formatted: Font: 14 pt, Font color: Auto
Formatted: Font: 14 pt, Font color: Auto
Formatted: Indent: Left: 0", First line: 0.32"
+ Bài toán ghép cặp với trọng số cực tiểu
+ Bài toán ghép cặp với trọng số cực đại
+ Bài toán ghép cặp tối ưu
- Bài toán hôn nhân bền vững: trình bày bài toán và sử dụng thuật toán
ghép cặp.
Cchương 3 l: lấy chương 2 làm tiền đề cho chương 3 xây dựng ý tưởng,
mô tả thuật toán ghép cặp ứng dụng cho bài toán tuyển sinh.
Formatted: Font: 14 pt, Font color: Auto, Not
Expanded by / Condensed by
Formatted: Indent: First line: 0.32"
Formatted: Font: 14 pt, Font color: Auto
Formatted: Font: 14 pt, Font color: Auto
Formatted: Font: 14 pt, Font color: Auto
Formatted: Font: 14 pt, Font color: Auto
Formatted: Font: 14 pt, Font color: Auto
Formatted: Font: 14 pt
Formatted: Centered, Indent: First line: 0"
Formatted: Font: Times New Roman, 14 pt,
Bold
15
Chương 1: TỔNG QUAN MỘT SỐ VẤN ĐỀ VỀ ĐỒ THỊ
VÀ ĐỒ THỊ HAI PHÍA
2.2.1.1. Các khái niệm cơ bản
Formatted: Font: 14 pt
Formatted: Outline numbered + Level: 1 +
Numbering Style: 1, 2, 3, … + Start at: 1 +
Alignment: Left + Aligned at: 0" + Tab after:
0.25" + Indent at: 0.25"
1.1.1. Đồ thị
Đồ thị vô hướng G = (V,E) gồm[4]:
- V là 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.
Formatted: Tab stops: 0.5", List tab + Not at
0.25"
Formatted: Bullets and Numbering
Formatted: Indent: First line: 0.25"
- 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ó khuyên gọi là đồ
Formatted
... [1]
Formatted
... [2]
Formatted: Indent: First line: 0.13"
Formatted
... [3]
Formatted: Indent: First line: 0.32"
thị đơn vô hướng.
Ví dụ:
Hình 1111. Đồ thị
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 X1 và X2 độc lập, rời nhau sao cho bất
kì cạnh nào của đồ thị cũng nối một đỉnh thuộc X1 với một đỉnh thuộc X2. Khi
đó người ta còn kí hiệu là: G:=(X1X2,E) với các phân hoạch X1, X2 và gọi
một tập (chẳng hạn X1) là tập các đỉnh trái và tập còn lại (chẳng hạn X2) là tập
Formatted: Font: 14 pt
Formatted: Outline numbered + Level: 3 +
Numbering Style: 1, 2, 3, … + Start at: 1 +
Alignment: Left + Aligned at: 0" + Tab after:
0.25" + Indent at: 0.25", Tab stops: 0.5", List
tab + Not at 0.25"
Formatted
... [4]
16
các đỉnh phải của đồ thị hai phía G. Các đỉnh thuộc X1 gọi là các X1_đỉnh, các
đỉnh thuộc X2 gọi là các X2_đỉnh.
Nếu |X1|=|X2| thì G được gọi là đồ thị hai phía cân bằng.
Formatted: Font: 14 pt, Italic
Formatted: Font: 14 pt
Formatted: Font: 14 pt, Italic
Formatted: Font: 14 pt
Formatted: Font: 14 pt, Italic
Formatted: Font: 14 pt
Ví dụ:
Formatted: Font: 14 pt, Italic
Formatted: Font: 14 pt
Formatted: Font: 14 pt, Italic
Formatted: Font: 14 pt
Formatted: Font: 14 pt, Italic
Formatted: Font: 14 pt
Hình 2222. Đồ thị hai phía không có chu trình
Hình 3333. Đồ thị hai phía có chu trình
Hình 4444.Đồ thị không phải đồ thị hai phía
1.1.2.1.1.3. Đồ thị hai phía đầy đủĐồ thị hai phía đầy đủ
17
Cho G = (V,E) là một đồ thị vô hướng hai phía, một phân hoạch V thành
Formatted
... [5]
Formatted
... [8]
Formatted
... [6]
Formatted
... [7]
Formatted
... [9]
Formatted
... [10]
Formatted
... [11]
Formatted
... [12]
Formatted
... [13]
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
Formatted
... [14]
Formatted
... [15]
|X1| = m, |X2| = n được kí hiệu là Km,n . Hai đồ thị mà có kí hiệu giống nhau thì
Formatted
... [16]
Formatted
... [17]
Formatted
... [18]
Formatted
... [19]
Formatted
... [20]
Formatted
... [21]
Field Code Changed
... [22]
Formatted
... [23]
Formatted
... [24]
Formatted
... [25]
Formatted
... [26]
Formatted
... [27]
Formatted
... [28]
Formatted
... [29]
Formatted
... [30]
Formatted
... [31]
Formatted
... [32]
Formatted
... [33]
Formatted
... [34]
Formatted
... [35]
Formatted
... [36]
Formatted
... [37]
Formatted
... [38]
Formatted
... [39]
Formatted
... [40]
Formatted
... [41]
Formatted
... [42]
Formatted
... [43]
Formatted
... [44]
Formatted
... [45]
Formatted
... [46]
Formatted
... [47]
Formatted
... [48]
Formatted
... [49]
Formatted
... [50]
hai tập con X1 và X2 (X1 ≠ ≠ X2 và X1 X2 = ), sao cho không có cạnh
nối giữa 2 đ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à iX1 và j X2 thì có đúng một cạnh nối i và j, ij
chúng đẳng cấu.
- Đồ thị hai phía đầy đủ Km,n có: m+n đỉnh, m.n cạnh.
- Các dạng đồ thị đầy đủ hai phía:
K1,n với đồ thị hình sao
Hình 5555.Đồ thị hai phía đầy đủ hình sao
K1,n với đồ thị hình vuốt cây
Hình 6666. Đồ thị hai phía đầy đủ hình vuốt cây
18
Km,n với m≠n
Formatted: Font: Italic
Formatted: Font: Italic
Formatted: Bullets and Numbering
Formatted: Indent: Left: 0.13", No bullets or
numbering
Formatted: Font: 14 pt
Formatted: Indent: First line: 0.25"
Formatted: Indent: Left: 0.13", First line:
0.25"
Formatted: Indent: First line: 0.25"
Hình 7777. Đồ thị hai phía đầy đủ m≠n
Formatted: Font: 14 pt, Italic
Formatted: Font: 14 pt
Km,n với m = n
Formatted: Font: 14 pt, Italic
Formatted: Font: 14 pt
Formatted: Font: 14 pt
Formatted: Font: 14 pt, Italic
Formatted: Font: 14 pt, Italic
Formatted: Font: 14 pt
Formatted: Font: 14 pt
Formatted: Font: 14 pt, Italic
Formatted: Font: 14 pt
Formatted: Font: 14 pt, Italic
Formatted: Font: 14 pt
Formatted: Font: 14 pt, Italic
Formatted: Font: 14 pt
Formatted: Font: 14 pt, Italic
Hình 8888. Đồ thị hai phía đầy đủ m=n
Formatted: Font: 14 pt
Formatted: Font: 14 pt, Italic
1.2. Bài toán ghép cặp không trọng
1.2.1. Bài toán ghép cặp không trọngBài toán
Formatted: Font: 14 pt
Formatted: Font: 14 pt, Italic
Formatted: Font: 14 pt
Formatted: Font: 14 pt, Italic
Formatted: Font: 14 pt
Bài toán
Cho một đồ thị hai phía G = (X1X2,E) ở đây X1 là các tập đỉnh trái và X2
là tập các đỉnh phải của G. X1={x1[1], x1[2],…, x1[m]}, X2={x2[1], x2[2],…,
Formatted: Font: 14 pt, Italic
Formatted: Font: 14 pt
Formatted: Font: 14 pt, Italic
Formatted: Font: 14 pt
Formatted: Font: 14 pt, Italic
Formatted: Font: 14 pt
x2[n]}.
Formatted: Font: 14 pt, Italic
Formatted: Font: 14 pt
19
Một bộ ghép (matching) của G là một tập các cạnh của G đôi một không
Formatted
... [51]
là có số cạnh lớn nhất) của G.
Formatted
... [52]
Xét một bộ ghép M của G.
Formatted
... [53]
Formatted
... [54]
Formatted
... [55]
Formatted
... [56]
Formatted
... [57]
Formatted
... [58]
Formatted
... [59]
có đỉnh chung.
Bài toán ghép cặp (matching problem) là tìm một bộ ghép lớn nhất (nghĩa
- 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ừ X1 sang X2, những cạnh đã ghép định hướng từ X2 về X1
.Trên đồ thị định hướng đó: Một đường đi xuất phát từ một X1_đỉnh chưa
ghép gọi là đường pha (alternating path), một đường đi từ một X1_đỉnh chưa
ghép tới một X2_đỉnh chưa ghép gọi là đường mở (augmenting path).
Một cách dễ hiểu, có thể quan niệm như sau:
-
Một đường pha là một đường đi đơn trong G bắt đầu bằng một
X1_đỉnh chưa ghép, đi theo một cạnh chưa ghép sang X2 , rồi đến một cạnh đã
ghép về X1, rồi lại đến một cạnh chưa ghép sang X2… cứ xen kẽ nhau như
vậy.
-
Một đường mở là một đường pha. Bắt đầu từ một X1_đỉnh chưa ghép
kết thúc bằng một X2_đỉnh chưa ghép.
Ví dụ: Với đồ thị hai phía trong hình 9 và bộ ghép
M ={(x1[1],x2[1]),(x1[2],x2[2])}
x1[3] và x2[3] là những đỉnh chưa ghép, các đỉnh khác là đã ghép.
Đường (x1[3], x2[3], x1[2], x2[1]) là đường pha.
20
Đường (x1[3], x2[3], x1[2], x2[1], x1[1], x2[3]) là đường mở.
Formatted: Font: 14 pt, Italic
Formatted: Font: 14 pt
Formatted: Font: 14 pt, Italic
Formatted: Font: 14 pt
Formatted: Font: 14 pt, Italic
Formatted: Font: 14 pt
Formatted: Font: 14 pt, Italic
Formatted: Font: 14 pt
Formatted: Font: 14 pt, Italic
Formatted: Font: 14 pt
Hình 9999. Đồ thị hai phía và bộ ghép M
1.2.2. Thuật toán đường mở
Thuật toán đường mở
Formatted: Outline numbered + Level: 3 +
Numbering Style: 1, 2, 3, … + Start at: 2 +
Alignment: Left + Aligned at: 0.38" + Tab
after: 0.88" + Indent at: 0.88"
Formatted: Font: 14 pt
Thuật toán đường mở để tìm một bộ ghép lớn nhất cho bài toán ghép cặp
phát biểu như sau:
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 toá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.
Formatted: Level 2, Outline numbered +
Level: 2 + Numbering Style: 1, 2, 3, … + Start
at: 1 + Alignment: Left + Aligned at: 0" + Tab
after: 0.25" + Indent at: 0.25"
Formatted: Indent: First line: 0.25"
21
Nếu bước 2 không tìm được đường mở thì thuật toán kết thúc.
* Mã giả thuật toán:
Formatted: Font: Arial Narrow, Bold
Input: Đồ thị hai phía G = (X1X2,E), X1={x1[1], x1[2],…, x1[m]}, X2={x2[1], x2[2],…, x2[n]}.
Output: Một bộ ghép M lớn nhất của G.
Matching1()
Khởi tạo một bộ ghép M;
n = số cạnh đã ghép;
While (có đường mở xuất phát từ x1 tới một đỉnh x2 chưa ghép X2)
xóa các cạnh đã ghép khỏi M;
ghép (x1, x2);
n++;
End.
Formatted: Indent: First line: 0", Space After:
0 pt, Line spacing: single
Formatted
... [60]
Formatted
... [61]
Formatted
... [62]
Formatted
... [63]
Formatted
... [64]
Formatted
... [65]
Formatted: Space After: 0 pt, Line spacing:
single
Formatted
... [66]
Formatted
... [67]
Formatted: Indent: First line: 0", Space After:
0 pt, Line spacing: single
Formatted: Space After: 0 pt, Line spacing:
single
Formatted
... [68]
Formatted: Font: 14 pt
Formatted: Indent: First line: 0.38"
Như ví dụ trên, với bộ ghép hai cạnh M ={(x1[1],x2[1]),(x1[2],x2[2])} và
đường mở tìm được gồm các cạnh:
(x1[3], x2[2]) M
Formatted: Font: (Default) Arial, 14 pt
Formatted: Indent: First line: 0.38", Space
After: 0 pt, Line spacing: single
Formatted: Font: 14 pt
Formatted: Indent: First line: 0.38"
Formatted
... [69]
Formatted
... [70]
Formatted
... [71]
(x1[2], x2[1]) M
Formatted
... [72]
(x2[1], x1[1]) M
Formatted
... [73]
(x1[1], x2[3]) M
Formatted
... [74]
(x2[2], x1[2]) M
22
Vậy thì ta sẽ loại đi các cạnh (x2[2], x1[2]) và (x2[1], x1[1]) trong bộ
Formatted
... [75]
ghép cũ và thêm vào đó các cạnh (x1[3], x2[2]), (x1[2], x2[1]), (x1[1], x2[3])
được bộ ghép 3 cạnh.
1.3. Bài toán ghép cặp với trọng số cực tiểu
1.3.1. Bài toán
1.11.1. Bài toán ghép cặp với trọng số cực tiểu
Bài toán
Formatted: Bullets and Numbering
Formatted: Indent: Left: 0.13", Hanging:
0.75", Outline numbered + Level: 3 +
Numbering Style: 1, 2, 3, … + Start at: 1 +
Alignment: Left + Aligned at: 0.5" + Tab after:
1" + Indent at: 1", Tab stops: Not at 1"
Formatted: Font: 14 pt
Formatted: None, No bullets or numbering
Cho một đồ thị hai phía G = (X1X2,E). X1={x1[1], x1[2],…, x1[m]},
X2={x2[1], x2[2],…, x2[n]}. Được cho bởi ma trận vuông C cỡ kk, c[i, j] =
trọng số cạnh nối đỉnh x1[i] với x2[j]. Giả thiết c[i, j]0 (i, j)
Bài toán ghép cặp với trọng số cực tiểu là tìm một bộ ghép đầy đủ trọng số
Formatted: Indent: Left: 0", First line: 0.25",
Outline numbered + Level: 3 + Numbering
Style: 1, 2, 3, … + Start at: 5 + Alignment: Left
+ Aligned at: 0" + Tab after: 0.25" + Indent
at: 0.25"
Formatted
... [76]
Formatted: Indent: First line: 0.25"
nhỏ nhất.
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ở cho thuật toá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ấy 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 x1[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 x1[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.
Formatted
... [77]
23
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 x1[i]. Nên việc cộng thêm vào tất cả các cạnh liên thuộc với x1[i]
Formatted: Font: 14 pt, Italic, Portuguese
(Brazil)
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
Formatted: Font: 14 pt, Portuguese (Brazil)
Formatted: Font: 14 pt
đầy đủ trọng số nhỏ nhất thì sau thao tác trên, M vẫn là bộ ghép đầy đủ trọng
Formatted: Font: 14 pt, Portuguese (Brazil)
số nhỏ nhất.
Formatted: Font: 14 pt, Italic, Portuguese
(Brazil)
Formatted: Font: 14 pt, Portuguese (Brazil)
1.3.2. Các khái niệm
Formatted: Font: 14 pt
Formatted: Font: 14 pt, Portuguese (Brazil)
Formatted: Font: 14 pt
Các khái niệm
Để cho gọn, ta gọi những cạnh trọng số 0 của G là những 0_cạnh.
Formatted: Indent: Left: 0.25", Outline
numbered + Level: 3 + Numbering Style: 1, 2,
3, … + Start at: 1 + Alignment: Left + Aligned
at: 0.5" + Tab after: 1" + Indent at: 1", Tab
stops: Not at 1"
Formatted: Font: 14 pt, Portuguese (Brazil)
Xét một bộ ghép M chỉ gồm những 0_cạnh.
Formatted: Indent: Left: 0.25", First line: 0"
Formatted: Font: 14 pt
- Những đỉnh M gọi là những đỉnh đã ghép, những đỉnh còn lại gọi là
Formatted: Indent: Left: 0.25"
Formatted: Indent: Left: 0.25", First line: 0"
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 0_cạnh chưa ghép.
Formatted: Indent: First line: 0.25"
Formatted: Indent: First line: 0.29"
Formatted: Font: Times New Roman, 14 pt
Formatted: Font: 14 pt
Formatted: Font: Times New Roman, 14 pt
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 X1 sang tập X2, những 0_cạnh đã ghép cho hướng từ tập X2
về tập X1. Khi đó:
- Đường pha là một đường đi cơ bản xuất phát từ một X1_ đỉ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
Formatted: Font: 14 pt
Formatted: Font: 14 pt, Italic
Formatted: Font: 14 pt
Formatted: Font: 14 pt, Italic
Formatted: Font: 14 pt
Formatted: Font: 14 pt, Italic
Formatted: Font: 14 pt
Formatted: Font: 14 pt, Italic
0_cạnh chưa ghép và những 0_cạnh đã ghép xen kẽ nhau. Vì đường pha chỉ là
Formatted: Font: 14 pt
đường đi cơ bản trên đồ thị định hướng nên việc xác định những đỉnh nào có
Formatted: Font: 14 pt, Italic
thể đến được từ x X1 bằng một đường pha có thể sử dụng các thuật toán tìm
Formatted: Font: Times New Roman, 14 pt
Formatted: Font: 14 pt
Formatted: Font: 14 pt
kiếm trên đồ thị. Những đỉnh và những cạnh được duyệt qua tạo thành một
cây pha gốc x.
Formatted: Font: 14 pt, Italic
Formatted: Font: 14 pt
24
a.
- Một đường mở là một đường pha đi từ một X1_ đỉnh chưa ghép tới
một X2_đỉnh chưa ghép.
Formatted: Font: 14 pt
Formatted: Indent: First line: 0.29", No
bullets or numbering
Formatted: Font: 14 pt, Italic
Như vậy:
Formatted: Font: 14 pt
Formatted: Font: 14 pt, Italic
b.
- Đường đi trực tiếp từ một X1_đỉnh chưa ghép tới một X2_đỉ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.
Formatted: Font: 14 pt
Formatted: Indent: First line: 0.29"
Formatted: Indent: First line: 0.29", No
bullets or numbering
Formatted: Font: 14 pt
Formatted: Font: 14 pt, Italic
Formatted: Font: 14 pt
1.3.3. Thuật toán Hungari
Formatted: Font: 14 pt, Italic
Formatted: Font: 14 pt
a. Thuật toán Hungari
Formatted: Indent: First line: 0.25", No
bullets or numbering
Formatted: Font: 14 pt
Bước 1: Khởi tạo
Một bộ ghép M :=
Formatted: Indent: Hanging: 0.88", Outline
numbered + Level: 3 + Numbering Style: 1, 2,
3, … + Start at: 1 + Alignment: Left + Aligned
at: 0.5" + Tab after: 1" + Indent at: 1", Tab
stops: 0.63", List tab + Not at 1"
Formatted: Font: 14 pt
Bước 2: với mọi đỉnh x X1, 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 toán tìm kiếm
Formatted: Indent: First line: 0.29"
trên đồ thị. Có hai khả năng có thể xảy ra:
c.
- 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ộ
Formatted: Indent: First line: 0.29", No
bullets or numbering
Formatted: Font: 14 pt
ghép mới nhiều hơn bộ ghép cũ 1 cạnh và đỉnh x trở thành đã ghép.
d.
- Hoặc không tìm được đường mở thì có thể xác định được:
VisitedX1= {Tập những X1_đỉnh có thể đến được từ x bằng một đường
pha}
VisitedX2= {Tập những X2_đỉnh có thể đến được từ x bằng một đường
pha}
Formatted: Font: 14 pt
Formatted: Indent: First line: 0.29"
Formatted: Font: 14 pt, Italic
Formatted: Font: 14 pt
Formatted: Font: 14 pt, Italic
Formatted: Font: 14 pt
Formatted: Font: 14 pt, Italic
Formatted: Font: 14 pt
Formatted: Font: 14 pt, Italic
Formatted: Font: 14 pt
25
Gọi là trọng số nhỏ nhất của các cạnh nối giữa một đỉnh thuộc VisitedX1
Formatted
... [78]
Formatted
... [79]
Formatted
... [80]
Formatted
... [81]
với một đỉnh không thuộc VisitedX2. Dễ thấy >0 bởi nếu =0 thì tồn tại một
0_cạnh (x1, x2) với x1VisitedX1 và x2VisitedX2. Vì x đến được x1 bằng một
đường pha và (x1, x2) là một 0_cạnh nên x cũng đến được x2 bằng một đường
pha, dẫn tới x2 VisitedX2, điều này vô lý.
Biến đổi đồ thị G: với x1 VisitedX1, trừ vào trọng số những cạnh liên
thuộc với x1, với x2 VisitedX2, cộng vào trọng số những cạnh liên thuộc
với x2.
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ở.
Bước 3: Sau bước 2 thì mọi X1_đỉnh đều được ghép, in kết quả về bộ ghép
tìm được.
* Mã giả thuật toán
Formatted: Font: Arial Narrow
Mã giả thuật toán
Formatted
... [82]
Input: Đồ thị hai phía G = (X1X2,E). X1={x1[1], x1[2],…, x1[m]}, X2={x2[1], x2[2],…,
Formatted
... [83]
Ma trận vuông C cỡ kk, c[i, j] = trọng số cạnh nối đỉnh x1[i] với x2[j]. Giả thiết c[i,
Formatted
... [84]
Formatted
... [85]
Khởi tạo M:=;
Formatted
... [86]
While (xX1)
Formatted
... [87]
x2[n]}.
j]0 (i, j)
Output: Bộ ghép đầy đủ trọng số nhỏ nhất.
Matching2()