1. Trang chủ
  2. » Khoa Học Tự Nhiên

Bài toán ghép cặp và ứng dụng trong công tác tuyển sinh (LV thạc sĩ)

62 500 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 62
Dung lượng 1,39 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Bài toán ghép cặp và ứng dụng trong công tác tuyển sinh (LV thạc sĩ)Bài toán ghép cặp và ứng dụng trong công tác tuyển sinh (LV thạc sĩ)Bài toán ghép cặp và ứng dụng trong công tác tuyển sinh (LV thạc sĩ)Bài toán ghép cặp và ứng dụng trong công tác tuyển sinh (LV thạc sĩ)Bài toán ghép cặp và ứng dụng trong công tác tuyển sinh (LV thạc sĩ)Bài toán ghép cặp và ứng dụng trong công tác tuyển sinh (LV thạc sĩ)Bài toán ghép cặp và ứng dụng trong công tác tuyển sinh (LV thạc sĩ)Bài toán ghép cặp và ứng dụng trong công tác tuyển sinh (LV thạc sĩ)Bài toán ghép cặp và ứng dụng trong công tác tuyển sinh (LV thạc sĩ)Bài toán ghép cặp và ứng dụng trong công tác tuyển sinh (LV thạc sĩ)Bài toán ghép cặp và ứng dụng trong công tác tuyển sinh (LV thạc sĩ)Bài toán ghép cặp và ứng dụng trong công tác tuyển sinh (LV thạc sĩ)Bài toán ghép cặp và ứng dụng trong công tác tuyển sinh (LV thạc sĩ)

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

Trang 2

MỤC LỤC

LỜI CẢM ƠN 4

DANH MỤC VIẾT TẮT 5

DANH MỤC CÁC HÌNH 6

DANH MỤC CÁC BẢNG 7

Lời nói đầu 8

Chương 1: TỔNG QUAN MỘT SỐ VẤN ĐỀ VỀ ĐỒ THỊ 11

1.1.Các khái niệm cơ bản 11

1.1.1.Đồ thị 11

1.1.2.Đồ thị hai phía 11

1.1.3.Đồ thị hai phía đầy đủ 12

1.2.Bài toán ghép cặp không trọng 14

1.2.1 Bài toán 14

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

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

1.3.1.Bài toán 17

1.3.2.Các khái niệm 18

1.3.3.Thuật toán Hungari 19

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

1.4.1.Bài toán 22

1.4.2.Thuật toán 22

1.5.Kết luận chương 24

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

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

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

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

Trang 3

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

2.2.2.Đặt bài toán 28

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

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

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

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

2.2.5.2.Tính ổn định và bền vững 35

2.2.6.Triển khai thuật toán 40

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 42

2.3.1.Bài toán ghép tạng (cho và nhận thận) 42

2.3.2.Bài toán ghép cặp bác sĩ thực tập và bệnh viện 43

2.4.Kết luận chương 43

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 45

3.1.Giới thiệu bài toán tuyển sinh ở nước ta 45

3.2.Ý nghĩa bài toán 46

3.3.Đặt bài toán 48

3.4.Ý tưởng giải quyết bài toán 49

3.5.Áp dụng bài toán hôn nhân bền vững 49

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 50

3.7.Thuật toán 51

3.8.Tính ổn định của thuật toán 56

3.9.Kết luận chương 60

KẾT LUẬN 61

TÀI LIỆU THAM KHẢO 62

Trang 4

LỜI CẢM ƠN

Để hoàn thành luận văn này, tô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 tôi trong suốt quá trình thực hiện luận văn

Tôi xin chân thành cảm ơn quý Thầy, Cô trong trường Đại học Công nghệ Thô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 tô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 để tô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 xin cảm ơn gia đình, bạn bè, đồng nghiệp đã giúp đỡ và động viên tôi 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!

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

Trang 5

DANH MỤC VIẾT TẮT

Đ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

Trang 6

DANH MỤC CÁC HÌNH

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 12

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 13

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

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

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

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

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 41

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 41

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ữ 41

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

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

Trang 7

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 người phụ nữ w1, w2, w3 32 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à

4 người phụ nữ w1, w2, w3, w4 33 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à

3 người phụ nữ w1, w2, w3: 34 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, m5 và 5 người phụ nữ w1, w2, w3, w4, w5 36 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 ông m1, m2 39 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í sinh s1, s2, s3, s4 54 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í sinh s1, s2, s3, s4, s5, s6 55 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í sinh s1, s2, s3, s4, s5, s6 56 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 58

Trang 8

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

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ả

Trang 9

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

Trang 10

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ả, 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 Chương 1 trình bày nội dung tìm hiểu tổng quan về lý thuyết đồ thị Tiếp theo chương 2 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 chương 3 lấy chương 2 làm tiền đề 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.

Trang 11

Chương 1: TỔNG QUAN MỘT SỐ VẤN ĐỀ VỀ ĐỒ THỊ

VÀ ĐỒ THỊ HAI PHÍA

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

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 X ) là tập các đỉnh trái và tập còn lại (chẳng hạn X ) là tập

Trang 12

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

Trang 13

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

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

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

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

Trang 14

Km,n với m≠n

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

Km,n với m = n

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

1.2 Bài toán ghép cặp không trọng

Trang 15

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 đị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

Trang 16

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

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

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:

Trang 17

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

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

Trang 18

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

số nhỏ nhất

1.3.2 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

Trang 19

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 cây pha gốc x

- Một đường mở là một đường pha đi từ một X1_ đỉnh chưa ghép tới một

1.3.3 Thuật toán Hungari

Bước 1: Khởi tạo

Một bộ ghép M :=

Trang 20

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:

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

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}

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

Trang 21

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

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

endif;

End

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

Trang 22

1.4.1 Bài toán

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ỡ 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 đại nhằm tìm ra một bộ ghép đầy đủ trọng số cực đại

Bước 2: Với mọi đỉnh xX1 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:

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}

Trang 23

Đặt := min{Fx1[i] + Fx2[j] – c[i,j] |  x1[i]  VisitedX1; x2[j]

VisitedX2}

Xoay trọng số cạnh:

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

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:

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

Matching2() 

Khởi tạo M:= ; Khởi tạo Fx1 và Fx2 thỏa mãn:  i, j: Fx1[i] + Fx2[j]  c[i, j];

While (xX1) Tìm đường mở xuất phát ở x;

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

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

if (x1[i]  VisitedX1)

Fx1[i]:= Fx1[i] -  ; else

Fx2[j]:= Fx2[j] +  ;

Trang 24

endif;

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

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

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

Trang 25

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

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)

Trang 26

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

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

Trang 27

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 chỉ có một

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ặp một cách có hiệu quả?

Trang 28

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 29

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

- 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

Trang 30

- 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

2.2.5.1 Ý 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

Trang 31

đầ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ả:

Input: Tập những người đàn ông M={mi }, i= 1, n

Tập những người phụ nữ W={wj }, j = 1, k ) Tập Smi , Swj

Output: Phép ghép  ={  c | c= } với 1; min(n, k)  c = (mi , wj)

Ngày đăng: 06/11/2017, 14:14

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w