1. Trang chủ
  2. » Luận Văn - Báo Cáo

Bài toán ghép cặp trên đồ thị hai phần và ứng dụng (2018)

64 307 3

Đ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 64
Dung lượng 1,16 MB

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

Nội dung

KIẾN THỨC CHUẨN BỊ 13Đường đi duyệt các đỉnh bằng thuật toán DF S: v1v2v3v5 và v1v2v4v6.Minh họa thuật toán BFS Bước Hàng đợi Đỉnh v lấy ra từ hàngđợi Hàng đợisau khi lấy v ra Các đỉnh u

Trang 1

TRƯỜNG ĐẠI HỌC SƯ PHẠM HÀ NỘI 2

KHOA TOÁN

***********

NGUYỄN THỊ MINH PHƯƠNG

BÀI TOÁN GHÉP CẶP TRÊN

ĐỒ THỊ HAI PHẦN VÀ ỨNG DỤNG

KHÓA LUẬN TỐT NGHIỆP ĐẠI HỌC

HÀ NỘI - 2018

Trang 2

TRƯỜNG ĐẠI HỌC SƯ PHẠM HÀ NỘI 2

KHOA TOÁN

NGUYỄN THỊ MINH PHƯƠNG

BÀI TOÁN GHÉP CẶP TRÊN

Trang 3

LỜI CẢM ƠN

Trước khi trình bày nội dung chính của khóa luận, tôi xin bày tỏlòng cảm ơn tới các thầy cô khoa Toán, trường Đại học Sư phạm HàNội 2, các thầy cô trong tổ bộ môn Toán ứng dụng, các thầy cô thamgia giảng dạy đã tận tình truyền đạt những tri thức quý báu, luônđộng viên, quan tâm, tạo điều kiện thuận lợi để tôi hoàn thành tốtnhiệm vụ khóa học và khóa luận

Bên cạnh đó, tôi cũng xin bày tỏ lòng cảm ơn tới các thầy cô trongViện Toán học đã tạo điều kiện cho tôi được học tập và làm việc, cácanh chị trong nhóm nghiên cứu đã giúp đỡ, trao đổi để tôi hiểu vấn

đề Đặc biệt, tôi xin bày tỏ sự kính trọng và lòng biết ơn sâu sắc tớiPGS TSKH Phan Thị Hà Dương, người đã trực tiếp hướng dẫn,chỉ bảo tận tình giúp đỡ để tôi có thể hoàn thành khóa luận này

Hà Nội, tháng 5 năm 2018

Sinh viên

Nguyễn Thị Minh Phương

Trang 4

LỜI CAM ĐOAN

Tôi xin cam đoan đề tài này là do tôi thực hiện Khóa luận là kếtquả quá trình tìm tòi, nghiên cứu của tôi dưới sự hướng dẫn tận tìnhcủa PGS.TSKH Phan Thị Hà Dương và đề tài này không trùngvới các kết quả của tác giả khác

Hà Nội, tháng 5 năm 2018

Sinh viên

Nguyễn Thị Minh Phương

Trang 5

Mục lục

1.1 Các khái niệm cơ sở 3

1.2 Các loại đồ thị 5

1.3 Đường đi, chu trình, tính liên thông 7

1.4 Biểu diễn đồ thị bằng ma trận 8

1.5 Các thuật toán tìm kiếm trên đồ thị 10

1.5.1 Thuật toán tìm kiếm đồ thị theo chiều sâu (DFS) 10 1.5.2 Thuật toán tìm kiếm đồ thị theo chiều rộng (BFS) 11 1.6 Kết luận chương 13

2 BÀI TOÁN GHÉP CẶP TRÊN ĐỒ THỊ HAI PHẦN 14 2.1 Các khái niệm 14

2.2 Thuật toán tìm ghép cặp lớn nhất 16

2.3 Một số kết quả của bài toán ghép cặp trên đồ thị hai phần 20

2.4 Mở rộng bài toán ghép cặp với đồ thị hai phần có trọng số 28

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

ii

Trang 6

MỤC LỤC iii

2.4.2 Bài toán ghép cặp với trọng số lớn nhất 35

3 MỘT SỐ ỨNG DỤNG CỦA BÀI TOÁN GHÉP CẶP TRÊN ĐỒ THỊ HAI PHẦN 38 3.1 Bài toán hôn nhân bền vững 38

3.1.1 Giới thiệu bài toán 38

3.1.2 Giải quyết bài toán 40

3.1.3 Tính đúng đắn của thuật toán 45

3.1.4 Tính tối ưu của kết quả 46

3.1.5 Mở rộng bài toán 48

3.2 Một số bài toán THPT có thể giải được bằng bài toán ghép cặp trong đồ thị hai phần 48

3.3 Kết luận chương 54

Trang 7

LỜI MỞ ĐẦU

1 Lí do chọn đề tài

Cùng với sự phát triển không ngừng của công nghệ thông tin, lý thuyết

đồ thị đã trở thành một lĩnh vực toán học quan trọng và cần thiếtcho nhiều ngành khoa học và ứng dụng Những tư tưởng của lý thuyết

đồ thị được đề xuất từ những năm đầu thế kỉ 18 bởi nhà toán họcLeonhard Euler Ông là người đã sử dụng đồ thị để giải bài toán nổitiếng về bảy cây cầu ở thành phố Konigsberg Từ đó, lý thuyết đồ thịngày càng khẳng định được tầm quan trọng trong việc ứng dụng đểgiải các bài toán vật lý, kinh tế

Đồ thị hai phần là một cặp G = (X ∪ Y, E) trong đó X, Y là haitập hữu hạn các đỉnh rời nhau, còn E là tập hữu hạn các cạnh Đồthị hai phần được gặp rất nhiều trong mô hình thực tế như quan hệhôn nhân, giáo viên chọn tiết trong thời khóa biểu Khi đó việc giảinhiều bài toán thực tế sẽ được đưa về việc giải các bài toán trên đồthị hai phần

Bài toán ghép cặp trên đồ thị hai phần là một bài toán nổi tiếng trong

lý thuyết đồ thị Thuật toán ghép cặp được nghiên cứu bởi hai nhàkhoa học David Gale và Lloyd Shapley từ năm 1962 Từ đó đã có rấtnhiều công trình nghiên cứu về vấn đề này Gần đây nhất, năm 2012ứng dụng của thuật toán này đã mang lại giải Nobel kinh tế cho hainhà khoa học người Mỹ Alvin E.Roth và Lloyd Shapley với nghiêncứ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

Trang 8

MỤC LỤC 2

Với lòng yêu thích và mong muốn tìm hiểu sâu nội dung này trongphạm vi của một khóa luận tốt nghiệp, chúng tôi xin trình bày nhữnghiểu biết của mình về đề tài “Bài toán ghép cặp trên đồ thị hai phần

và ứng dụng”

2 Mục đích nghiên cứu

- Nghiên cứu một bài toán ghép cặp trên đồ thị hai phần;

- Ứng dụng bài toán ghép cặp trên đồ thị hai phần trong bài toánhôn nhân bền vững và các bài toán thi học sinh giỏi THPT

3 Phương pháp và công cụ nghiên cứu

- Nghiên cứu tổng hợp tài liệu

4 Cấu trúc khóa luận

Nội dung đề tài bao gồm các chương sau:

• Chương 1: Kiến thức chuẩn bị

Chương này chúng tôi trình bày các khái niệm cơ bản về đồ thị,cách biểu diễn đồ thị bằng ma trận và các thuật toán duyệt đồ thị

• Chương 2: Bài toán ghép cặp trên đồ thị hai phần

Chương này chúng tôi trình bày về bài toán ghép cặp trên đồ thịhai phần và đồ thị hai phần có trọng số

• Chương 3: Một số ứng dụng của bài toán ghép cặp trên đồ thị haiphần

Chương này chúng tôi trình bày về bài toán hôn nhân bền vững vàmột số bài toán thi học sinh giỏi (HSG) ở bậc trung học phổ thông(THPT) có thể giải được bằng các kết quả của bài toán ghép cặptrên đồ thị hai phần

Trang 9

Định nghĩa 1.1 (3) Một đồ thị vô hướng là G là một cặp có thứ tự

3

Trang 10

CHƯƠNG 1 KIẾN THỨC CHUẨN BỊ 4

G = (V, E) với V là một tập và E là một tập con của tích Đề-các

V × V Các phần tử của V được gọi là đỉnh, các phần tử của E đượcgọi là cung của đồ thị có hướng G Nếu e = {a, b} thì a được gọi làđỉnh đầu, b được gọi là đỉnh cuối của e hay các đỉnh liên thuộc với e

b a

Hình 1.2: Đồ thị có hướng G2 với các đỉnh a, b, c, d và các cung e1, e2, e3, e4, e5, e6

Định nghĩa 1.3 (3) Cho một đồ thị vô hướng không có khuyên G =(V, E) và v ∈ V Kí hiệu:

N (v) = {x ∈ V | x 6= v và {x, v} ∈ E}

Khi đó, N (v) được gọi là tập các láng giềng của v

Bậc của đỉnh v ∈ V trong đồ thị G, kí hiệu deg(v), deg(v) = |N (v)|

Trang 11

CHƯƠNG 1 KIẾN THỨC CHUẨN BỊ 5

Định nghĩa 1.5 (3) Đồ thị G = (V, E) được gọi là đồ thị có trọng

số nếu ít nhất một trong hai hàm f : V → WV, g : E → WE được xácđịnh, ở đây WV và WE là các tập nào đấy Các phần tử của WV và

WE định lượng giá trị f (v), v ∈ V được gọi là trọng số của đỉnh v,giá trị g(e), e ∈ V được gọi là trọng số của cung hay cạnh e, có thể

kí hiệu trọng đồ G = (V, E, f ) hay G = (V, E, g) hay G = (V, E, f, g)tùy thuộc vào việc chỉ có một hàm f , một hàm g hay cả hai hàm f và

g xác định

Trang 12

CHƯƠNG 1 KIẾN THỨC CHUẨN BỊ 6

4

6 7

Định nghĩa 1.7 (2) Một đồ thị hai phần là một đơn đồ thị vô hướng

G = (X ∪ Y, E) trong đó X, Y là hai tập hữu hạn các đỉnh rời nhau,còn E là tập hữu hạn các cạnh Mỗi cạnh nối một đỉnh của X với Y Định nghĩa 1.8 (2) Đồ thị hai phần G = (X ∪ Y, E) với |X| =

m, |Y | = n được gọi là đồ thị hai phần đầy đủ, kí hiệu Km,n nếu mọiđỉnh trong tập X được nối với tất cả các đỉnh trong tập Y

K2,3

Hình 1.6: Đồ thị hai phần đầy đủ (hình bên trái) và không đầy đủ (hình bên phải)

Trang 13

CHƯƠNG 1 KIẾN THỨC CHUẨN BỊ 7

Định nghĩa 1.9 (3) Đồ thị vô hướng H = (V0, E0) được gọi là một

đồ thị con của đồ thị vô hướng G = (V, E) nếu V0 ⊆ V và E0 ⊆ E

Đồ thị con cảm sinh bởi tập đỉnh V0 ⊆ V của G được kí hiệu G[V0] là

đồ thị con của G với tập đỉnh V0 và các cạnh là tất cả các cạnh của

G có hai đầu mút thuộc V0

Chu trình là một đường đi bắt đầu và kết thúc tại cùng một đỉnh

Định nghĩa 1.11 (10) Cho đồ thị có hướng G = (V, E)

Một đường đi độ dài n, n ∈ Z+ trong G là một dãy v0e1v1e2 envnsao cho vi ∈ V ∀i = 1, n còn ei ∈ E ∀i = 1, n và ei = (vi−1, vi) v0được gọi là đỉnh đầu, vn được gọi là đỉnh cuối

Đường đi đơn là đường đi không đi qua một cung quá một lần

Ví dụ 1.3.1 Trong đồ thị vô hướng ở Hình 1.1 ta thấy

a) v1e1v2e4v3e2v1e1v2 là một đường đi của G1

b) v1e2v3e4v2 là một đường đi đơn của G1

c) v1e1v2e4v3e2v1 là một chu trình của G1

Trang 14

CHƯƠNG 1 KIẾN THỨC CHUẨN BỊ 8

Định nghĩa 1.12 (3) Đồ thị vô hướng G được gọi là liên thông nếu

có đường đi giữa hai đỉnh bất kì

Định nghĩa 1.13 (3) Đồ thị con liên thông G0 = (V0, E0) của một

đồ thị vô hướng G = (V, E) được gọi là một thành phần liên thông của

G nếu G0 = G[V0] và với mọi V00 6⊆ V0 đồ thị G[V00] không liên thông.Định lý 1.1 (2) Đồ thị G là đồ thị hai phần khi và chỉ khi G khôngchứa chu trình có độ dài lẻ

Định nghĩa 1.14 (10) Ma trận kề A(G) của một đơn đồ thị vô hướng

G với thứ tự các đỉnh v1, v2, , vn là ma trận [Aij] vuông cấp n trongđó

1 nếu viliên thuộc ej;

0 nếu ngược lại

Ví dụ 1.4.1 Trong hình 1.1, ma trận kề và ma trận liên thuộc của

đồ thị G được thể hiện như sau:

Trang 15

CHƯƠNG 1 KIẾN THỨC CHUẨN BỊ 9

Trang 16

CHƯƠNG 1 KIẾN THỨC CHUẨN BỊ 10

Khi giải quyết nhiều bài toán lý thuyết đồ thị, ta luôn phải duyệt quatất cả các đỉnh của đồ thị đó Vậy nên, cần có thuật toán duyệt toàn

bộ các đỉnh của đồ thị Gọi chung là thuật toán duyệt đồ thị

1.5.1 Thuật toán tìm kiếm đồ thị theo chiều sâu (DFS)

Từ đỉnh gốc đang xét, thuật toán duyệt đi xa nhất theo từng nhánh,khi nhánh đã duyệt hết, lùi về từng đỉnh để tìm và duyệt những nhánhtiếp theo Quá trình duyệt chỉ dừng lại khi tìm thấy đỉnh cần tìm hoặctất cả đỉnh đều đã được duyệt qua

Thuật toán

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

Các đỉnh đều ở trạng thái chưa đánh dấu, ngoại trừ đỉnh s.Ngăn xếp (Stack), ban đầu chỉ có s Ngăn xếp dùng để chứacác đỉnh sẽ được duyệt theo thứ tự ưu tiên chiều sâu

Bước 2 Lặp các bước sau đến khi ngăn xếp chỉ còn s

Lấy v nằm cuối ngăn xếp ra khỏi ngăn xếp, thăm đỉnh v.Xét tất cả các đỉnh u kề với v chưa được đánh dấu, khi đó:

(1) Nếu tồn tại u, đánh dấu thăm u, ghi nhận vết đường đi

từ v tới u và đẩy u vào ngăn xếp;

(2) Nếu không tồn tại u, quay lại đỉnh đã thăm ngay trước

v và tiếp tục quá trình trên

Trang 17

CHƯƠNG 1 KIẾN THỨC CHUẨN BỊ 11

Bước 3 Truy vết tìm đường đi

Thuật toán sẽ dừng khi ngăn xếp rỗng

1.5.2 Thuật toán tìm kiếm đồ thị theo chiều rộng (BFS)

Từ một đỉnh gốc đang xét, xác định và lần lượt duyệt các đỉnh kềxung quanh đỉnh gốc Tiếp tục quá trình duyệt qua các đỉnh kề đỉnhvừa xét cho đến khi đạt được kết quả cần tìm hoặc duyệt qua tất cảcác đỉnh

Thuật toán

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

Các đỉnh đều ở trạng thái chưa đánh dấu, ngoại trừ đỉnh s

đã đánh dấu

Hàng đợi (Queue), ban đầu chỉ có s Hàng đợi dùng để chứacác đỉnh sẽ được duyệt theo thứ tự ưu tiên chiều rộng

Bước 2 Lặp các bước sau đến khi hàng đợi rỗng

Lấy v khỏi hàng đợi, thông báo thăm v

Xét tất cả các đỉnh u kề với v chưa được đánh dấu, với mỗiđỉnh u đó:

(1) Đánh dấu u;

(2) Ghi nhận vết đường đi từ v tới u;

(3) Đẩy u vào hàng đợi

Bước 3 Truy vết tìm đường đi

Trang 18

CHƯƠNG 1 KIẾN THỨC CHUẨN BỊ 12

Thuật toán sẽ dừng khi hàng đợi rỗng

Ví dụ 1.5.1 Duyệt đồ thị sau đây, xuất phát từ đỉnh v1

v kề u ngăn xếp

sau mỗibước

Giải thích

1 v1 v1 v2 v1, v2 Tiến sâu thăm v2

2 v1, v2 v2 v3 v1, v2, v3 Tiến sâu thăm v3

3 v1, v2, v3 v3 v5 v1, v2, v3, v5 Tiến sâu thăm v5

4 v1, v2, v3, v5 v5 Không có v1, v2, v3 Lùi lại

5 v1, v2, v3 v3 Không có v1, v2 Lùi lại

6 v1, v2 v2 v4 v1, v2, v4 Tiến sâu thăm v4

7 v1, v2, v4 v4 v6 v1, v2, v4, v6 Tiến sâu thăm v6

8 v1, v2, v4, v6 v6 Không có v1, v2, v4 Lùi lại

9 v1, v2, v4 v4 Không có v1, v2 Lùi lại

10 v1, v2 v2 Không có v1 Lùi lại

Trang 19

CHƯƠNG 1 KIẾN THỨC CHUẨN BỊ 13

Đường đi duyệt các đỉnh bằng thuật toán DF S: v1v2v3v5 và v1v2v4v6.Minh họa thuật toán BFS

Bước Hàng đợi Đỉnh v lấy

ra từ hàngđợi

Hàng đợisau khi lấy

v ra

Các đỉnh u

kề với v vàchưa lên lịch

Hàng đợisau khi đưa

Các kết quả quan trọng trong chương này gồm:

(1) Một số khái niệm cơ sở của lý thuyết đồ thị: các loại đồ thị, bậccủa đồ thị, đường đi, chu trình, tính liên thông;

(2) Cách biểu diễn đồ thị bằng ma trận;

(3) Các thuật toán duyệt trên đồ thị

Những đóng góp của chúng tôi là sắp xếp và trình bày lại một số kiếnthức về đồ thị Ngoài ra tôi còn đưa ra các ví dụ minh họa để làm rõcác định nghĩa

Trang 20

Định nghĩa 2.1 (10) Cho G = (V, E) là một đồ thị vô hướng.

Một ghép cặp của G là một tập hợp M gồm các cạnh trong G đôi mộtkhông có đỉnh chung

Đỉnh của các cạnh trong ghép cặp M gọi là đỉnh đã ghép, những đỉnhkhác là đỉnh chưa ghép

Định nghĩa 2.2 (10) Cho G là một đồ thị vô hướng Trong G:Ghép cặp hoàn hảo là một ghép cặp chứa mọi đỉnh của đồ thị

Ghép cặp cực đại là ghép cặp mà ta không thể thêm cạnh nào vào

14

Trang 21

CHƯƠNG 2 BÀI TOÁN GHÉP CẶP TRÊN ĐỒ THỊ HAI PHẦN 15

Ghép cặp lớn nhất là ghép cặp có nhiều cạnh nhất (trong số các ghépcặp)

Bài toán ghép cặp trên G là bài toán tìm ghép cặp lớn nhất của G

Hình 2.1: Ghép cặp hoàn hảo của K4,4

Ví dụ 2.1.2 Phân biệt ghép cặp cực đại và ghép cặp lớn nhất

Trang 22

CHƯƠNG 2 BÀI TOÁN GHÉP CẶP TRÊN ĐỒ THỊ HAI PHẦN 16

Để xác định ghép cặp lớn nhất, chúng ta xây dựng dần dần từng bướcmột, mỗi bước lại cải thiện để có ghép cặp lớn hơn, chúng ta dùng cácđường mở để cải thiện ghép cặp

Định nghĩa 2.3 (10) Cho đồ thị vô hướng G và M là một ghép cặpcủa G

Đường xen kẽ của ghép cặp M là một đường đi đơn trên đồ thị saocho với bất kì hai cạnh kề nào trên đường đi, đúng một trong hai cạnhthuộc M

Đường mở của ghép cặp M là một đường xen kẽ mà đỉnh đầu và đỉnhcuối là hai đỉnh chưa ghép

Ví dụ 2.2.1 Xét đồ thị hai phần G như Hình 2.2, ghép cặp M ={X1Y1, X2Y2}

Đường (X3, Y2, X2, Y1) là một đường xen kẽ của M

Đường (X3, Y2, X2, Y1, X1, Y3) là một đường mở của M

Trong đường mở (X3, Y2, X2, Y1, X1, Y3), nếu ta xóa đi các cạnh củaghép cặp M thì các cạnh còn lại sẽ tạo thành một ghép cặp có nhiềucạnh hơn ghép cặp M ban đầu

Từ ví dụ trên, ta thấy được ý tưởng thuật toán "đường mở" của Bàitoán ghép cặp

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

Cho đồ thị vô hướng G

Bước 1 Tìm một ghép cặp M bất kì trong G

Trang 23

CHƯƠNG 2 BÀI TOÁN GHÉP CẶP TRÊN ĐỒ THỊ HAI PHẦN 17

Bước 2 Tìm đường mở của M :

(1) Nếu tìm được một đường mở của M thì ta xóa bỏ nhữngcạnh đã ghép trên đường mở đó, các cạnh còn lại trên đường

mở và các cạnh đã ghép của M không nằm trên đường mởtạo thành một ghép cặp có số phần tử lớn hơn số phần tửcủa ghép cặp M là 1

(2) Nếu không tìm được đường mở thì ghép cặp hiện tại làlớn nhất

Tính đúng đắn của thuật toán sẽ được đảm bảo bởi định lí 2.1

Trong thuật toán Đường mở đã trình bày ở trên, bước quan trọngnhất là bước tìm đường mở

Thuật toán "Tìm đường mở" trên đồ thị hai phần

Bước 2 Lấy một đỉnh v khỏi Queue và đẩy lại Queue những đỉnh kề

v chưa được thăm:

(1) Nếu thăm tới một đỉnh chưa ghép thuộc Y thì ta đã tìm

Trang 24

CHƯƠNG 2 BÀI TOÁN GHÉP CẶP TRÊN ĐỒ THỊ HAI PHẦN 18

được một đường mở, quá trình tìm kiếm dừng lại ngay.Cải thiện ghép cặp và quay lại bước 1

(2) Nếu thăm tới một đỉnh j ∈ Y đã ghép, ta đánh dấuthăm j , thăm luôn cả đỉnh đã ghép kề với j (thăm liền

2 bước), tiếp tục quá trình duyệt

Bước 3 Truy vết tìm đường đi

c) Tính đúng đắn của thuật toán

Thuật toán kết thúc sau hữu hạn bước Do số đỉnh của đồ thị

là hữu hạn nên quá trình duyệt đồ thị sẽ kết thúc sau hữu hạn bước.Thuật toán "Tìm đường mở" tìm hết tất cả các đường mởđối với ghép cặp M trong G

Chứng minh bằng phản chứng, giả sử thuật toán kết thúc mà trong Gvẫn còn đường mở đối với ghép cặp M Đường mở này phải xuất phát

từ một đỉnh v0 chưa ghép thuộc X và kết thúc tại một đỉnh u0 chưaghép thuộc Y Do thuật toán BF S tìm đường mở đã kết thúc nên ta

đã duyệt tất cả các đỉnh có thể đến từ v ∈ Queue qua một đường điđơn Như vậy thuật toán BF S tìm đường mở đã duyệt qua đỉnh u0,

mà u0 chưa ghép, nên cần cải thiện ghép cặp (Bước 1) Điều này vô

lý với giả thiết thuật toán "Tìm đường mở" đã kết thúc

Ví dụ 2.2.2 Tìm đường mở đối với ghép cặp M = {(X1, Y1)} trong

đồ thị G ở Hình 2.2

Bước Hàng đợi Đỉnh v lấy

ra từ hàngđợi

Hàng đợisau khi lấy

v ra

Các đỉnh u

kề với v vàchưa lên lịch

Hàng đợisau khi đưa

u vào

Trang 25

CHƯƠNG 2 BÀI TOÁN GHÉP CẶP TRÊN ĐỒ THỊ HAI PHẦN 19

Chúng ta tiếp tục sử dụng thuật toán tìm đường mở:

Bước Hàng đợi Đỉnh v lấy

ra từ hàngđợi

Hàng đợisau khi lấy

v ra

Các đỉnh u

kề với v vàchưa lên lịch

Hàng đợisau khi đưa

Trang 26

CHƯƠNG 2 BÀI TOÁN GHÉP CẶP TRÊN ĐỒ THỊ HAI PHẦN 20

thị hai phần

Định lý 2.1 (Berge,1957) (10) Ghép cặp M của đồ thị G là ghép cặplớn nhất khi và chỉ khi trong G không tồn tại đường mở đối với M

Để chứng minh định lí trên ta sử dụng bổ đề:

Bổ đề 2.1 Cho đồ thị vô hướng G, M và M0 là 2 ghép cặp trong G.Khi đó hiệu đối xứng M4M0 có mỗi thành phần liên thông là mộtđường xen kẽ hoặc một chu trình có số cạnh chẵn

Đầu tiên, ta nhắc lại khái niệm hiệu đối xứng của hai tập hợp:Cho 2 tập hợp A và B Hiệu đối xứng của A và B, kí A4B là tậphợp xác định như sau:

A4B = (A\B) ∪ (B\A)

Chứng minh Bổ đề 2.1

Xét các ghép cặp M và M0, đặt F = M4M0 Vì M và M0 là các ghépcặp nên mỗi đỉnh của F có nhiều nhất một cạnh liên thuộc trong mỗighép cặp Vì vậy, trong F có nhiều nhất là hai cạnh qua mỗi đỉnh

Vì ∆(F ) ≤ 2 nên mỗi thành phần liên thông của F phải là mộthành trình hoặc một chu trình Hơn nữa, mỗi hành trình hoặc chutrình của F có sự xen kẽ giữa các cạnh của M \M0 và M0\M Vì vậy,mỗi chu trình đều có độ dài chẵn với số cạnh trong M và M0 là bằngnhau

Ví dụ 2.3.1 Trong đồ thị gồm các cạnh nét liền và nét đứt dưới đây,

Trang 27

CHƯƠNG 2 BÀI TOÁN GHÉP CẶP TRÊN ĐỒ THỊ HAI PHẦN 21

M là một ghép cặp với 5 cạnh nét liền và M0 là ghép cặp với 6 cạnhnét đậm Hai ghép cặp có chung cạnh e, cạnh này không thuộc hiệuđối xứng của M và M0 Các cạnh của M4M0 tạo thành một chu trình

độ dài bằng 6 và một đường đi có độ dài bằng 3

e

Hình 2.3: M 4 M0

Chứng minh định lí 2.1

Ta chứng minh phản chứng cho mỗi chiều

⇒] Giả sử M là một ghép cặp lớn nhất trong đồ thị vô hướng G, P

là một đường mở đối với M Khi đó M4P là một ghép cặp có nhiềuhơn M 1 cạnh Vậy giả sử M là ghép cặp lớn nhất là sai

⇐] Giả sử ghép cặp M trong đồ thị G không có đường mở nào, nhưng

M không phải ghép cặp lớn nhất Trong G, tồn tại M0 là ghép cặplớn nhất Đặt F = M4M0 Theo Bổ đề 2.1, F gồm các đường đi vàchu trình có số chẵn cạnh Mỗi chu trình có số cạnh từ M và M0 bằngnhau Vì |M0| > |M | nên F phải có một thành phần với nhiều cạnhcủa M0 hơn của M Thành phần này chỉ có thể là một đường đi màkhởi đầu và kết thúc với một cạnh của M0, và đó là một đường mởđối với M trong G

Định lý 2.2 (P Hall,1935) (10) Cho G = (X ∪ Y, E) là đồ thị haiphần với |X| ≤ |Y | Khi đó đồ thị G có một ghép cặp có lực lượngbằng lực lượng của X khi và chỉ khi |N (S)| ≥ |S| với mọi tập S ⊆ X

Trang 28

CHƯƠNG 2 BÀI TOÁN GHÉP CẶP TRÊN ĐỒ THỊ HAI PHẦN 22

Chứng minh

Giả sử G = (X ∪ Y, E) là đồ thị hai phần với |X| ≤ |Y |

⇒] Giả sử M là một ghép cặp có lực lượng bằng lực lượng của X, tức

là mỗi đỉnh v ∈ X đều là đỉnh đã ghép

Với mỗi tập con S ⊆ X, có ít nhất |S| đỉnh trong Y là láng giềng củacác đỉnh đã ghép trong S, vì mỗi đỉnh nối tới S phải được chọn từ tậphợp các đỉnh đó Ta dùng N (S) để kí hiệu tập hợp các đỉnh có lánggiềng trong S Vì vậy, |N (S)| ≥ |S| Rõ ràng |S| đỉnh nối tới S phảithuộc tập N (S)

⇐] Ta chứng minh bằng phản chứng

Nếu M là một ghép cặp cực đại trong G mà |M | < |X|, thì ta có đượcmột tập S ⊆ X mà |N (S)| < |S|

Bắt đầu từ đỉnh u ∈ X là đỉnh chưa ghép, xét tất cả các đường xen

kẽ xuất phát từ u Kí hiệu S là tập hợp các đỉnh chứa trong X củatất cả các đường xen kẽ trên, T là tập hợp các đỉnh chứa trong Y củatất cả các đường xen kẽ trên Chú ý rằng u ∈ S

Ta chỉ ra rằng M nối T với S\{u} Do M đã là ghép cặp lớn nhất nêntheo định lí Berge, trong G không tồn tại đường mở đối với M Vìvậy, đường xen kẽ từ u đến Y theo cạnh không có trong M và quaylại X theo cạnh ghép trong M Vì mỗi đỉnh của S\{u} được nối bởimột cạnh ghép trong M từ một đỉnh trong T nên số cạnh này của Mxác định một song ánh từ T vào S\{u} và |T | = |S\{u}|

Sự ghép cặp giữa T và S\{u} chỉ ra rằng T ⊆ N (S) Thực sự thì

T = N (S) Thật vậy, giả sử rằng tồn tại y ∈ Y \T có láng giềng

v ∈ S vy /∈ M , nếu ngược lại vy ∈ M thì v ∈ (S\{u}), mà số cạnh

Trang 29

CHƯƠNG 2 BÀI TOÁN GHÉP CẶP TRÊN ĐỒ THỊ HAI PHẦN 23

|T | = |S\{u}| của M xác định một song ánh từ S\{u} vào T nên

y ∈ T Điều này trái với giả thiết y /∈ T , vì thế vy /∈ M Vậy tồn tạiđường mở từ đỉnh u chưa ghép tới y chưa ghép, trái với giả thiết M

Hệ quả 2.2 Cho G = (X ∪ Y, E) là đồ thị hai phần với |X| = |Y |

và cho d là một số tự nhiên Khi đó đồ thị G có ghép cặp có lực lượng

|X| − d khi và chỉ khi |S| − d ≤ |N (S)| với mọi tập S ⊆ X

Hệ quả 2.3 Cho G = (X ∪ Y, E) là đồ thị hai phần chính quy Khi

đó đồ thị G có ghép cặp hoàn hảo

Nhận xét 2.2 Định lí 2.2 cho ta cách chứng minh đồ thị hai phần

G = (X ∪ Y, E) không có ghép cặp nào bao phủ X bằng cách chỉ ramột tập con của X với rất ít láng giềng hơn |X|

Định nghĩa 2.4 (10) Cho đồ thị vô hướng G

Tập hợp Q ⊆ V (G) được gọi là bộ đỉnh phủ nếu mọi cạnh của đồ thịđều chứa ít nhất một đỉnh trong tập đỉnh phủ

Bộ đỉnh phủ tối tiểu là bộ đỉnh phủ mà không thể thêm đỉnh nào vào

Bộ đỉnh phủ cực tiểu là bộ đỉnh phủ có ít đỉnh nhất (trong các bộ đỉnhphủ)

Trang 30

CHƯƠNG 2 BÀI TOÁN GHÉP CẶP TRÊN ĐỒ THỊ HAI PHẦN 24

Ví dụ 2.3.2 Trong đồ thị dưới đây, hình bên trái thể hiện một bộphủ đỉnh có kích thước bằng 2 và một ghép cặp có kích thước 2 đượcthể hiện bằng nét đậm Trong hình bên phải, bộ phủ đỉnh có kích thướcbằng 3 và một ghép cặp có kích thước 2 được thể hiện bằng nét đậm

Hình 2.4: Bộ đỉnh phủ và ghép cặp

Định lý 2.3 (Konig-Evervary,1931) (10)

Nếu G là đồ thị hai phần thì lực lượng của ghép cặp lớn nhất trong

G bằng lực lượng của bộ đỉnh phủ cực tiểu trong G

Chứng minh Xét đồ thị hai phần G = (X ∪ Y, E) Dễ thấy |Q| ≥ |M |với Q là một bộ đỉnh phủ và M là một ghép cặp trong G Xét bộ đỉnhphủ Q có kích thước nhỏ nhất trong G, ta xây dựng một ghép cặp cókích thước |Q| để chứng minh định lí trên

Phân chia Q thành các tập R = Q ∩ X và T = Q ∩ Y Gọi H và H0 lầnlượt là các đồ thị con của G cảm sinh trên R ∪ (Y \T ) và T ∪ (X\R)

∀S ⊆ R, ta xét tập NH(S), chứa trong Y \T Nếu |NH(S)| < |S| thì

ta có thể thay thế NH(S) cho tập S trong Q để tạo ra một bộ đỉnhphủ nhỏ hơn, vì NH(S) bao phủ toàn bộ các cạnh trong S mà chưađược phủ trong T Điều này trái với giả thiết Q là bộ đỉnh phủ nhỏnhất Như vậy ∀S ⊆ R, |S| ≤ |NH(S)| Đồ thị H thỏa mãn điều kiệncần của Định lí 2.2, do đó H có một ghép cặp lực lượng |R| Áp dụnglập luận tương tự với H0 ta có một ghép cặp lực lượng |T |

Trang 31

CHƯƠNG 2 BÀI TOÁN GHÉP CẶP TRÊN ĐỒ THỊ HAI PHẦN 25

Vì H và H0 rời nhau nên hai ghép cặp của H và H0 tạo thành ghépcặp có kích thước |Q| trong G

Ví dụ

Bài toán phân công công việc

Trong một công ty có n công nhân x1, x2, , xn và n công việc

y1, y2, , yn Mỗi người công nhân có thể làm được một hoặc nhiềuhơn một việc Liệu có thể sắp xếp cho tất cả công nhân mỗi người làmmột công việc hay không?

Cách giải

Dựng một đồ thị hai phần G = (X, Y, E) với X = {x1, x2, , xn}biểu thị n người công nhân, Y = {y1, y2, , yn} biểu thị n công việc

và xi là kết hợp với yj nếu và chỉ nếu người công nhân xi làm đượccông việc yj Bài toán trở thành xác định có hay không một ghép cặphoàn hảo trong đồ thị G

Áp dụng thuật toán giải bài toán ghép cặp đã trình bày ở trên

Ví dụ 2.3.3 Có 8 người công nhân {A, B, C, D, E, F, G, H} và cáccông việc {a, b, c, d, e, f, g, h} Mỗi người công nhân là có thể làm đượccác công việc được cho trong đồ thị dưới đây Hãy tìm một ghép cặptối đại cho đồ thị hai phần này

Trang 32

CHƯƠNG 2 BÀI TOÁN GHÉP CẶP TRÊN ĐỒ THỊ HAI PHẦN 26

A B C D E F G H

a b c d e f g h

Ngày đăng: 28/08/2018, 05:40

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[5] Vũ Hà Văn, The Stable Marriage Problem, Mini-course: The Sta- ble Marriage Problem, Viện Nghiên cứu cao cấp về Toán, 15- 16/01/2016.[B.] - Tài liệu Tiếng Anh Sách, tạp chí
Tiêu đề: The Stable Marriage Problem
Tác giả: Vũ Hà Văn
Nhà XB: Viện Nghiên cứu cao cấp về Toán
Năm: 2016
[6] Pablo Soberón Bravo, Problem-Solving Methods in Combinatorics.An Approach to Olympiad Problems, Birkh¨ auser, 2013 Sách, tạp chí
Tiêu đề: Problem-Solving Methods in Combinatorics.An Approach to Olympiad Problems
Tác giả: Pablo Soberón Bravo
Nhà XB: Birkhäuser
Năm: 2013
[8] Emily Riehl, A solution to the stable marriage problem, 20 April 2018, from: http://www.math.jhu.edu/ eriehl/ pechakucha.pdf Sách, tạp chí
Tiêu đề: A solution to the stable marriage problem
Tác giả: Emily Riehl
Năm: 2018
[7] Po-Shen Loh, Graph Theory, 24 June 2008, from:http://www.math.cmu.edu/ lohp/ docs/math/mop2008/graph- theory-soln.pdf Link
[9] Adrian Tang, IMO Training 2008: Graph Theory, 2013, from:http://euclid.ucc.ie/mathenr/IMOTraining/2008SummerCamp-AdrianTang-GraphTheory.pdf Link
[1] Lê Minh Hoàng, Giải thuật và lập trình, NXB Đại học sư phạm Hà Nội, 2000 Khác
[2] Nguyễn Đức Nghĩa, Nguyễn Tô Thành, Toán rời rạc, NXB Đại học quốc gia Hà Nội, 2003 Khác
[3] Ngô Đắc Tân, Lý thuyết tổ hợp và đồ thị, NXB Đại học quốc gia Hà Nội, 2003 Khác
[4] Kenneth H.Rosen, Toán rời rạc ứng dụng trong tin học, NXB Giáo dục, 2007 Khác
[10] Douglas B.West, Introduction to Graph Theory-2nd Edition, Prentice Hall, 2001 Khác

TỪ KHÓA LIÊN QUAN

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

w