1. Trang chủ
  2. » Công Nghệ Thông Tin

Bài toán ghép cặp và ứng dụng trong công tác tuyển sinh

130 279 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 130
Dung lượng 1,07 MB

Nội dung

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

Trang 1

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

Style Definition: TOC 3: Right: -0.02", Tab

stops: 6.13", Right,Leader: … + Not at 6.38"

Style Definition: TOC 2: Tab stops: 0.38",

Left

Trang 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

Trang 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"

Trang 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 10 1.1.3 Đồ thị hai phía đầy đủ 12 1.1.4 Bài toán ghép cặp không trọng 14 a Bài toán 14

b Thuật toán đường mở 15

1.1.5 Bài toán ghép cặp với trọng số cực tiểu 17 a Bài toán 17

b Các khái niệm 18

c Thuật toán Hungari 19

1.1.6 Bài toán ghép cặp với trọng số cực đại 20

a Bài toán 21 b Thuật toán 21

1.2 Kết luận chương 23

Chương 2: BÀI TOÁN GHÉP CẶP 24

2.1 Giới thiệu bài toán 24

2.1.1 Phát biểu bài toán 24

2.1.2 Các định nghĩa 24

2.1.3 Các trường hợp giải bài toán ghép cặp 25

2.2 Bài toán hôn nhân bền vững 26

2.2.1 Giới thiệu bài toán 26

2.2.2 Đặt bài toán 26

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

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 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: Font: Times New Roman, 13 pt Formatted: Tab stops: Not at 6.13" Formatted: Font: Times New Roman, 13 pt Formatted: Font: Times New Roman, 13 pt Formatted: Tab stops: Not at 6.13"

Formatted: Font: Times New Roman, 13 pt Formatted: Font: Times New Roman, 13 pt Formatted: Tab stops: Not at 6.13"

Formatted: Font: Not Bold Formatted: Font: Times New Roman, 13 pt,

Not Bold

Formatted: Font: Times New Roman, 13 pt Formatted: Font: Times New Roman, 13 pt Formatted: Font: Times New Roman, 13 pt Formatted: Not Highlight

Formatted: Font: Times New Roman, 13 pt Formatted: Tab stops: Not at 6.13" 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: 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: Font: Times New Roman, 13 pt

Trang 5

a Ý tưởng và lược đồ thuật toán 29

b Tính ổn định và bền vững 34

2.2.6 Triển khai thuật toán 38 a Thiết kế chương trình 38

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 40 2.4 Kết luận chương 41

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: 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"

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"

Formatted: Font: 12 pt

Formatted: Centered

Trang 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ô

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

hiện luận văn này

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: Bold, Not Italic Formatted: Centered

Trang 7

DANH MỤC VIẾT TẮT

Formatted: Font: Not Bold

Formatted: Font: Times New Roman, 13 pt Formatted: Indent: Left: 0"

Formatted Table

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

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

Trang 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

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

Hình 6 Đồ thị hai phía đầy đủ hình vuốt cây 1713

Hình 7 Đồ thị hai phía đầy đủ m≠n 1814

Hình 8.Đồ thị hai phía đầy đủ m=n 1814

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

Hình 11 Khai báo số lượng người đàn ông và số lượng người phụ nữ tham gia ghép cặp 4741

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

Hình 14 Kết quả thực hiện chương trình 4842

Hình 15 Chú thích trong 1 ô của bảng 6053

Hình 1 Đồ thị 11

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

Hình 6 Đồ thị hai phía đầy đủ hình vuốt cây 14

Hình 7 Đồ thị hai phía đầy đủ m≠n 14

Hình 8.Đồ thị hai phía đầy đủ m=n 15

Hình 9 Đồ thị hai phía và bộ ghép M 16

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

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

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

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

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

Formatted: Default Paragraph Font Formatted: Default Paragraph Font Formatted: Default Paragraph Font Formatted: Default Paragraph Font Formatted: Default Paragraph Font Formatted: Default Paragraph Font Formatted: Default Paragraph Font Formatted: Default Paragraph Font

Formatted: Default Paragraph Font

Trang 9

Hình 10 Chú thích trong 1 ô của bảng 32

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

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

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

Hình 14 Kết quả thực hiện chương trình 40

Hình 15 Chú thích trong 1 ô của bảng 51

Formatted: Default Paragraph Font

Formatted: Default Paragraph Font

Formatted: Default Paragraph Font

Formatted: Default Paragraph Font

Formatted: Default Paragraph Font

Formatted: Default Paragraph Font

Formatted: Heading 1, Space Before: 0 pt,

After: 0 pt

Trang 10

Formatted: Font color: Auto

Formatted: Font color: Auto

Formatted: Font color: Auto

Formatted: Font color: Auto

Formatted: Font color: Auto

Formatted: Font color: Auto

Formatted: Font color: Auto

Formatted: Font color: Auto

Formatted: Font color: Auto Formatted: Font color: Auto

Trang 11

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: Font: 14 pt Formatted: Heading 1, Space Before: 0 pt,

After: 0 pt

Trang 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

Trang 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

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à

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.:

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

Trang 14

Cchương 2 2: Giới thiệu một số bài toán trên đồ thị:

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

+ 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 Formatted: Font: 14 pt, Font color: Auto Formatted: Font: 14 pt, Font color: Auto Formatted: Font: 14 pt, Font color: Auto

Formatted: Indent: Left: 0", First line: 0.32"

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

Trang 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

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

- 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à đồ

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:=(X1X2,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: 1 +

Numbering Style: 1, 2, 3, … + Start at: 1 + Alignment: Left + Aligned at: 0" + Tab after: 0.25" + Indent at: 0.25"

Formatted: Tab stops: 0.5", List tab + Not at

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"

Trang 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

Ví dụ:

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

1.1.2.1.1.3 Đồ thị hai phía đầy đủĐồ thị hai phía đầy đủ

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 Formatted: Font: 14 pt, Italic Formatted: Font: 14 pt

Trang 17

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 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à iX1 và j X2 thì 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

|X1| = m, |X2| = 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,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

 K1,n với đồ thị hình vuốt cây

Trang 18

 Km,n với m≠n

 Km,n với m = n

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

Bài toán

Cho một đồ thị hai phía G = (X1X2,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],…,

x2[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" Formatted: Font: 14 pt, Italic Formatted: Font: 14 pt 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 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 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

Trang 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

- 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

X 1 _đỉ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ư

Trang 20

Đường (x1[3], x2[3], x1[2], x2[1], x1[1], x2[3]) là đường mở

1.2.2 Thuật toán đường mở

Thuật toán đường mở

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: 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

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 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"

Trang 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:

Input: Đồ thị hai phía G = (X1X2,E), X1={x1[1], x1[2],…, x1[m]}, X2={x2[1], x2[2],…, x2[n]}

Formatted: Indent: First line: 0", Space After:

0 pt, Line spacing: single

Formatted: Space After: 0 pt, Line spacing:

single

Formatted: Font: 14 pt Formatted: Indent: First line: 0.38" 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"

Trang 22

Vậy thì ta sẽ loại đi các cạnh (x2[2], x1[2]) và (x2[1], x1[1]) trong bộ

Cho một đồ thị hai phía G = (X1X2,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ỡ kk, 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ố

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ộ

Formatted: Font: 14 pt Formatted: None, No bullets or numbering 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: Indent: First line: 0.25"

Trang 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]

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

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

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  X1 bằng một đường pha có thể sử dụng các thuật toán tìm

kiếm trên đồ thị Những đỉnh và những cạnh được duyệt qua tạo thành một

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) Formatted: Indent: Left: 0.25", First line: 0" Formatted: Font: 14 pt

Formatted: Indent: Left: 0.25"

Formatted: Indent: Left: 0.25", First line: 0" 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 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 Formatted: Font: 14 pt, Italic Formatted: Font: 14 pt Formatted: Font: Times New Roman, 14 pt Formatted: Font: 14 pt

Formatted: Font: 14 pt, Italic Formatted: Font: 14 pt

Trang 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

Như vậy:

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

1.3.3 Thuật toán Hungari

a 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  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

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ộ

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

bullets or numbering

Formatted: Font: 14 pt Formatted: Font: 14 pt, Italic Formatted: Font: 14 pt Formatted: Font: 14 pt, Italic Formatted: Font: 14 pt Formatted: Indent: First line: 0.25", No

bullets or numbering

Formatted: Font: 14 pt 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

Formatted: Indent: First line: 0.29"

Formatted: Indent: First line: 0.29", No

Trang 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

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 x1VisitedX1 và x2VisitedX2 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

Mã giả thuật toán

Input: Đồ thị hai phía G = (X1X2,E) X1={x1[1], x1[2],…, x1[m]}, X2={x2[1], x2[2],…,

Trang 26

Cho một đồ thị hai phía G = (X1X2,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ỡ kk, 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 đại nhằm tìm ra một bộ ghép đầy đủ

Formatted: Indent: Left: 0", Hanging: 0.25",

Outline numbered + Level: 1 + Aligned at: 0" + Tab after: 0.25" + Indent at: 0"

Formatted: Indent: Hanging: 0.75", Outline

numbered + Level: 3 + Numbering Style: 1, 2,

3, … + Start at: 1 + Alignment: Left + Aligned at: 0.38" + Tab after: 0.88" + Indent at: 0.88", Tab stops: 0.63", List tab + Not at 0.88"

Formatted: Font: 14 pt Formatted: Indent: First line: 0.25" Formatted: Indent: Left: 0", First line: 0.25" Formatted: Indent: First line: 0.25"

Trang 27

1.4.2 Thuật toán

Thuật toán

Bài toán ghép cặp 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 Fx1 và Fx2 thỏa mãn: i, j: Fx1[i] + Fx2[j]  c[i, j];

chẳng hạn ta có thể đặt Fx1[i] := Phần tử lớn nhất trên dòng i của ma trận C và

đặt các Fx2[j] :=0

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, có hai khả năng xảy ra:

f - 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

g - Hoặc không tìm được đường mở thì xác định được:

VisitedX1 = {Tập những X1_đỉnh có thể đến được từ x bằng một đường

Với  x1[i]  VisitedX1: Fx1[i]:= Fx1[i] - 

Formatted: Indent: Hanging: 0.75", Outline

numbered + Level: 3 + Numbering Style: 1, 2,

3, … + Start at: 1 + Alignment: Left + Aligned at: 0.38" + Tab after: 0.88" + Indent at: 0.88", Tab stops: 0.63", List tab + Not at 0.88"

Formatted: Font: 14 pt, Portuguese (Brazil) Formatted: Indent: First line: 0.25" Formatted: Font: 14 pt

Formatted: Font: Times New Roman, 14 pt Formatted: List Paragraph, Level 3, Indent:

First line: 0.25"

Formatted: Font: 14 pt Formatted: Font: 14 pt, Italic Formatted: Indent: First line: 0.32"

Formatted: Indent: First line: 0.29"

Formatted: Indent: First line: 0.29", No

bullets or numbering

Formatted: Font: 14 pt Formatted: Font: 14 pt

Formatted: Indent: First line: 0.25"

Trang 28

Với x2[j] VisitedX2: Fx2[j]:= Fx2[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 X1_đỉnh đều đã ghép, ta được một bộ ghép đầy

đủ k cạnh với trọng số lớn nhất

* Mã giả thuật toán:

* Mã giả thuật toán:

Input: Một đồ thị hai phía G = (X1X2,E) X1={x1[1], x1[2],…, x1[m]}, X2={x2[1],

x2[2],…, x2[n]} Được cho bở ma trận vuông C cỡ kk, 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)

Output: Bộ ghép đầy đủ trọng số cực đại

if (Không tìm thấy đường mở)

:= min{Fx1[i] + Fx2[j] – c[i,j];

Trang 29

thêm vào M những cạnh chưa ghép;

endif;

End

1.5 Kết luận chương

1.2 Kết luận chương

Như vậy, chương 1 đã tổng quan một số vấn đề về đồ thị và đồ 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 bản 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 toán ghép cặp trên đồ thị

hai phía

Nội dung chính của chương tập trung vào tìm hiểu về đồ thị hai phía và

các bài toán ghép cặp cơ bản trên đồ thị hai phía Đây là những cơ sở quan

trọng để tiến hành ứng dụng thuật toán ghép cặp vào bài toán tuyển sinh sẽ

được trình bày ở các chương tiếp theo

Formatted: Font: Arial Narrow Formatted: Font: Arial Narrow Formatted: Font: Arial Narrow Formatted: Font: 13 pt

Formatted: Space Before: 2 pt, After: 3 pt

Formatted: Indent: Hanging: 0.69", Tab

stops: 0.38", List tab + Not at 0.69"

Formatted: Bullets and Numbering Formatted: Font: 14 pt

Formatted: None

Trang 30

Chương 2: BÀI TOÁN GHÉP CẶP

Trong chương 2 trình bày bài toán ghép cặp tổng quát và bài toán hôn

nhân bền vững Bài toán hôn nhân bền vững là một trường hợp cụ thể của bài

toán ghép cặp và đây cũng là cơ sở để ứng dụng vào bài toán tuyển sinh đại

học ở nước ta

3.5.2.1 Giới thiệu bài toán

2.1.1 Phát biểu bài toán

Cho tập X 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 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

2.1.2 Các định nghĩa

Các định nghĩa dưới đây được sử dụng cho bài toán ghép cặp:

Định nghĩa 1 (Ghép cặp): Cho 2 tập rời nhau C và S Một phép ghép :

C ∪ S → C ∪ S ∪ { } 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 cặp 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 cặp được"

Một cách lý tưởng nhất đó là chúng ta phải thiết kế một thuật toán có thể

đáp ứng được những định nghĩa dưới cho bài toán ghép đôi:

Đị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 cặp với μ(i) nhưng đối

tượng này lại thấy không phù hợp với μ(i)

Formatted: Font: 14 pt Formatted: None

Formatted: Indent: Left: 0", First line: 0",

Numbered + Level: 1 + Numbering Style: 1, 2,

3, … + Start at: 1 + Alignment: Left + Aligned at: 0.25" + Tab after: 0.5" + Indent at: 0.5", Tab stops: Not at 0.5"

Formatted: None

Formatted: Bullets and Numbering

Formatted: Font: 14 pt Formatted: Font: 14 pt Formatted: Font: 14 pt Formatted: Font: (Default) Times New

Roman, 14 pt

Formatted: Font: 14 pt

Trang 31

Định nghĩa 3 (Ghép cặp ổn định): 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 s ≠

μ(i) nhưng s  i(i) và i  s(s)

Trong đó : i : thích đối tượng i hơn

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

Định nghĩa 5 (Chiến lược trung thực): Một cơ chế chi phối chiến lược

trung thực nếu nó chi phối tất cả các đối tượng đưa ra tập có thứ tự về tiêu

chuẩn lựa chọn thực sự của mình

2.1.3 Các trường hợp giải bài toán ghép cặp

Xét một bộ ghép M của G

Các đỉnh trong M gọi là các đỉnh đã ghép Các cạnh thuộc M gọi là cạnh

ghép, cạnh không thuộc M gọi là cạnh tự do

- Ý tưởng của giải thuật: Chúng ta bắt đầu với một bộ ghép M bất kỳ, nếu

M chứa mọi đỉnh trong X thì nó là bộ ghép cực đại Nếu không, ta chọn một

đỉnh U chưa ghép thuộc X và tìm kiếm một cách hệ thống cho một đường mở

M với gốc u

- Để tìm bộ ghép tối đa của một đồ thị hai phía G, ta dùng giải thuật

đường mở sau:

* Giải thuật đường mở:

- Mã giả thuật toán:

* Mã giả thuật toán:

Formatted: Font: 14 pt, Not Highlight Formatted: None

Formatted: Bullets and Numbering

Formatted: Indent: First line: 0.32" Formatted: Font: 14 pt, Not Highlight Formatted: Font: 14 pt, Not Highlight Formatted: Not Highlight

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: Not Highlight

Formatted: Font: Arial Narrow, 12.5 pt, Not

Trang 32

Input: Đồ thị hai phía G = (X 1 X 2 ,E), X 1 ={x 1 [1], x 1 [2],…, x 1 [m]}, X 2 ={x 2 [1], x 2 [2],…, x 2 [n]}

3.7.2.2 Bài toán hôn nhân bền vững

2.2.1 Giới thiệu bài toán

Hai nhà kinh tế David Gale và Lloyd Shapley đã nghiên cứu thuật toán

ghép cặp từ quan sát hết sức đơn giản: Trong một cộng đồng có một số lượng

như nhau người đàn ông và người phụ nữ độc thân muốn kết hôn Mỗi người

đàn ông đều có tiêu chuẩn lựa chọn riêng, dẫn tới chuyện có những người phụ

nữ mà anh ta muốn ghép đôi Những người phụ nữ cũng vậy, họ cũng có

những tiêu chuẩn riêng về những người đàn ông mà họ muốn ghép đôi

Rõ ràng không thể có chuyện người đàn ông nào cũng lấy được người

phụ nữ tuyệt vời nhất thế gian bởi người đó chỉ có một Và mỗi người phụ nữ

cũng không thể lấy được người đàn ông lý tưởng nhất vì anh chàng đó cũng

Numbered + Level: 1 + Numbering Style: 1, 2,

3, … + Start at: 2 + Alignment: Left + Aligned at: 0.25" + Tab after: 0.5" + Indent at: 0.5", Tab stops: Not at 0.5"

Trang 33

Câu hỏi đặt ra trong các trường hợp đó là làm sao để thực hiện việc

ghép cặpmột cách có hiệu quả?

Có rất nhiều phương pháp được đưa ra để giải quyết cho vấn đề này

nhưng trong chương 2 này, em xin trình bày về bài toán hôn nhân bền vững

sử dụng thuật toán ghép cặp trong đồ thị hai phía

Việc sử dụng thuật toán ghép cặp đối với bài toán hôn nhân bền vững

đều mang lại những ý nghĩa nhất định:

- Trong một cộng đồng những người đến tuổi kết hôn, tìm được 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 đến mức thấp nhất

- Hơn nữa, nếu nguyện vọng của mỗi người được biết đến, thì chúng ta

có thể chọn lựa được người hưởng lợi nhiều hơn trong quá trình lựa chọn hôn

nhân?

Bài toán này có thể áp dụng hữu ích đối với những trung tâm môi giới

hôn nhân hay những trang web hẹn hò qua mạng

2.2.2 Đặt bài toán

Bài toán ghép cặp là một dạng của bài toán ghép cặp không trọng:

Cho một tập những người đàn ông M = {m1, , mn}

Trang 34

Ví dụ: Một tập gồm 3 người đàn ông: M= {m1 ,m2 ,m3 }

Một tập gồm 3 người phụ nữ: 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 ={w2 ,w3 ,w1 }

Tập có thứ tự về tiêu chuẩn lựa chọn của người đàn ông m2: Sm2 ={w1 ,w3 ,w2 }

Tập có thứ tự về tiêu chuẩn lựa chọn của người đàn ông m3: Sm3 ={w3 ,w2 ,w1 }

Tập có thứ tự về tiêu chuẩn lựa chọn của người phụ nữ w1: Sw1 = {m1 ,m2 ,m3 }

Tập có thứ tự về tiêu chuẩn lựa chọn của người phụ nữ w2: Sw2 = {m2 ,m1 ,m3 }

Tập có thứ tự về tiêu chuẩn lựa chọn của người phụ nữ w3: Sw3 = {m2 ,m3, m1 }

- Mục đích của bài toán hôn nhân bền vững là để tìm thấy một phép ghép cặp

tối ưu một-một giữa những người đàn ông và phụ nữ càng nhiều càng tốt

- Những người này được ghép cặp với nhau sao cho các cuộc hôn nhân này

bền vững theo nghĩa hôn nhân, tức là 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

2.2.3 Các đặc trưng của bài toán

Do con người có những đặc điểm khác biệt, phức tạp về tâm lý, nên bài

toá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

Formatted: Font: 14 pt, Condensed by 0.3 pt

Formatted: Font: 14 pt Formatted: Indent: First line: 0"

Trang 35

- 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 yêu thích hơn, người được yê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 yêu thích nhất của mình

2.2.4 Điều kiện giải bài toán

- Do có các yếu tố đặc trưng trên, nên khi thực hiện thuật toán ghép cặp trong bài toán hôn nhân bền vững phải có những điều kiện bắt buộc:

- Những người tham gia ghép cặp đư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 toá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 toán

- Tập có thứ tự này phải hoà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 ngoà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 ngoà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

2.2.5 Thuật toán cho bài toán hôn nhân bền vững

Trang 36

2.2.5.1 a Ý tưởng và lược đồ thuật toán

Thuật toán Gale-Shapley được xây dựng để giải quyết bài toán 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

đầu tiên, em xin trình bày thuật toá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 Mỗi người đàn ông sẽ ngỏ lời với người phụ nữ mà mình thích

nhất

Vì trong nhiều trường hợp một số người phụ nữ sẽ cùng được yêu thích

nên họ sẽ nhận được nhiều đề nghị Bởi vây, những người phụ nữ được nhiều

người đàn ông ngỏ lời sẽ chỉ giữ lại đề nghị của người mà cô ấy thấy thích

nhất trên danh sách và từ chối những người khác

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

Quá trình này tiếp tục cho đến khi min{n, k} người đều đã nhận được một

đề nghị, 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 toá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

Có thể thấy rằng, thuật toán Gale-Shapley là một dạng thuật toán khác để

tìm bộ ghép cực đại trong bài toán ghép cặp không trọng

* Mã giả:

Formatted: Indent: Left: 0.5", First line:

0.13", Outline numbered + Level: 2 + Numbering Style: 1, 2, 3, … + Start at: 1 + Alignment: Right + Aligned at: 0" + Tab after: 0.25" + Indent at: 0.25", Tab stops: 0.63", List tab + Not at 0.25"

Formatted: Font: Times New Roman, 14 pt Formatted: Font: 14 pt

Formatted: Font: Times New Roman, 14 pt Formatted: Font: 14 pt

Formatted: Font: Arial Narrow

Trang 37

Formatted: Font: Arial Narrow

Formatted: Space After: 0 pt

Trang 38

Hình 10101010 Chú thích trong 1 ô của bảng

 Ví dụ 1: Trường hợp số người đàn ông và số người phụ nữ bằng nhau:

Bảng 1111 Tập có thứ tự về tiêu chuẩn lựa chọn của 3 người đàn ông m 1 , m 2 ,

Trang 40

 Ví dụ 3: Trường hợp số người đàn ông và số người phụ nữ không bằng nhau:

Bảng 3333 Tập có thứ tự về tiêu chuẩn lựa chọn của 4 người đàn ông m 1 , m 2 , m 3 ,

Bước 5 M3 m4, m2 m1Bước 6 M3 m2 m1, m4

Formatted: Indent: Left: 0.25", Hanging:

0.25", Bulleted + Level: 1 + Aligned at: 0.25" + Indent at: 0.5"

Ngày đăng: 15/04/2017, 21:01

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w