Đề tài BÀI TOÁN GHÉP CẶP VÀ ỨNG DỤNG

35 898 3
Đề tài BÀI TOÁN GHÉP CẶP VÀ ỨNG DỤNG

Đ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

Đề tài BÀI TOÁN GHÉP CẶP VÀ ỨNG DỤNG NHÓM 8 STT Họ tên Công việc (theo mục lục) Chữ ký Nhận xét của giáo viên 1 Lê Diêm Hùng Chương 1: Đại cương về đồ thị 2 Hồ Thị Mộng Điệp Chương 2: Bài toán ghép cặp 3 Đào Thị Anh Thư Chương 3: Ứng dụng 4 Nguyễn Thị Phương Anh Chương 3: Ứng dụng và báo cáo MỤC LỤC Chương 1. ĐẠI CƯƠNG VỀ ĐỒ THỊ 1.1 Các khái niệm cơ bản 3 1.2 Các loại đồ thị 5 1.3 Bậc, nửa bậc vào, nửa bậc ra 5 1.4 Đường đi, chu trình, tính liên thông 8 Chương 2. BÀI TOÁN GHÉP CẶP 2.1 Mạng 10 2.2 Bài toán ghép cặp 11 2.2.1 Phát biểu bài toán 11 2.2.2 Một số định nghĩa 12 2.2.3 Thuật toán giải bài toán ghép cặp 16 2.2.4 Bài toán ghép cặp tối ưu 23 Chương 3. ỨNG DỤNG CỦA BÀI TOÁN GHÉP CẶP 3.1 Bài toán phân công công việc 27 3.1.1 Phát biểu bài toán 27 3.1.2 Cách giải 27 3.2 Bài toán xếp thời khóa biểu ở trường học 30 3.2.1 Phát biểu bài toán 30 3.2.2 Cách giải 30 3.3 Bài toán dịch vụ hôn nhân 31 3.3.1 Phát biểu bài toán 31 3.3.2 Cách giải 31 KẾT LUẬN 33 DANH MỤC TÀI LIỆU THAM KHẢO 34 CHƯƠNG 1 ĐẠI CƯƠNG VỀ ĐỒ THỊ 1.1 CÁC KHÁI NIỆM CƠ BẢN 1.1.1 Đồ thị, đỉnh, cạnh, cung Định nghĩa 1.1. Đồ thị vô hướng G = (V, E) gồm tập V các đỉnh và tập E các cạnh. Mỗi cạnh được liên kết với một cặp đỉnh v, w (không kể thứ tự). Nếu cạnh e liên kết v, w thì ta nói cạnh e liên thuộc đỉnh v, w và các đỉnh v, w liên thuộc cạnh e. Ví dụ 1.1 Hình 1.1 là đồ thị vô hướng có tập đỉnh và tập cạnh E = {(1, 4), (3, 4), (3, 3), (3, 5), (4, 5), (5, 6)} Định nghĩa 1.2. Đồ thị có hướng G = (V, E) gồm tập V các đỉnh và tập E các cạnh có hướng gọi là cung. Mỗi cung được liên kết với một cặp đỉnh (v, w) có thứ tự.

Đề tài BÀI TOÁN GHÉP CẶP ỨNG DỤNG NHÓM 8 STT Họ tên Công việc (theo mục lục) Chữ ký Nhận xét của giáo viên 1 Lê Diêm Hùng Chương 1: Đại cương về đồ thị 2 Hồ Thị Mộng Điệp Chương 2: Bài toán ghép cặp 3 Đào Thị Anh Thư Chương 3: Ứng dụng 4 Nguyễn Thị Phương Anh Chương 3: Ứng dụng báo cáo 1 MỤC LỤC Chương 1. ĐẠI CƯƠNG VỀ ĐỒ THỊ 1.1 Các khái niệm cơ bản 3 1.2 Các loại đồ thị 5 1.3 Bậc, nửa bậc vào, nửa bậc ra 5 1.4 Đường đi, chu trình, tính liên thông 8 Chương 2. BÀI TOÁN GHÉP CẶP 2.1 Mạng 10 2.2 Bài toán ghép cặp 11 2.2.1 Phát biểu bài toán 11 2.2.2 Một số định nghĩa 12 2.2.3 Thuật toán giải bài toán ghép cặp 16 2.2.4 Bài toán ghép cặp tối ưu 23 Chương 3. ỨNG DỤNG CỦA BÀI TOÁN GHÉP CẶP 3.1 Bài toán phân công công việc 27 3.1.1 Phát biểu bài toán 27 3.1.2 Cách giải 27 3.2 Bài toán xếp thời khóa biểu ở trường học 30 3.2.1 Phát biểu bài toán 30 3.2.2 Cách giải 30 3.3 Bài toán dịch vụ hôn nhân 31 3.3.1 Phát biểu bài toán 31 3.3.2 Cách giải 31 KẾT LUẬN 33 DANH MỤC TÀI LIỆU THAM KHẢO 34 2 CHƯƠNG 1 ĐẠI CƯƠNG VỀ ĐỒ THỊ 1.1 CÁC KHÁI NIỆM CƠ BẢN 1.1.1 Đồ thị, đỉnh, cạnh, cung Định nghĩa 1.1. Đồ thị vô hướng G = (V, E) gồm tập V các đỉnh tập E các cạnh. Mỗi cạnh e E ∈ được liên kết với một cặp đỉnh v, w (không kể thứ tự). Nếu cạnh e liên kết v, w thì ta nói cạnh e liên thuộc đỉnh v, w các đỉnh v, w liên thuộc cạnh e. Ví dụ 1.1 Hình 1.1 là đồ thị vô hướng có tập đỉnh { } 1,2,3,4,5,6V = tập cạnh E = {(1, 4), (3, 4), (3, 3), (3, 5), (4, 5), (5, 6)} Định nghĩa 1.2. Đồ thị có hướng G = (V, E) gồm tập V các đỉnh tập E các cạnh có hướng gọi là cung. Mỗi cung e E ∈ được liên kết với một cặp đỉnh (v, w) có thứ tự. 3 1 2 3 4 5 6 Hình 1.1 Ví dụ 1.2 Hình 1.2 Hình 1.2 là một đồ thị có hướng với tập đỉnh V = {1, 2, 3, 4, 5, 6} tập cung E = {(1, 2), (2,3), (2, 4), (3, 4), (4, 5), (3, 5), (5, 6)} Định nghĩa 1.3. Nếu thay mỗi cung của đồ thị có hướng G bằng một cạnh, thì đồ thị vô hướng nhận được là đồ thị lót của G. Ví dụ 1.3 Đồ thị lót của đồ thị có hướng ở hình 1.2 là Hình 1.3 1.1.2 Các khái niệm cơ bản khác • Hai cạnh kề nhau là hai cạnh cùng liên thuộc một đỉnh. • Hai đỉnh kề nhau là hai đỉnh cùng liên thuộc một cạnh. • Hai cạnh gọi là song song nếu chúng liên kết với cùng một cặp đỉnh. • Khuyên là cạnh có hai đỉnh liên kết trùng nhau. • Đỉnh cô lập là đỉnh không liên kết với bất kỳ đỉnh nào khác. 4 1 2 3 4 5 6 1 2 3 4 5 6 • Đỉnh treo là đỉnh chỉ liên kết với một đỉnh duy nhất. • Số đỉnh của đồ thị gọi là bậc của đồ thị, ký hiệu d(G). • Số cạnh của đồ thị gọi là cỡ của đồ thị, ký hiệu card(G). Ví dụ 1.4 Trong hình 1.4 đồ thị G có tập đỉnh { } 1,2,3,4,5,6,7V = tập cạnh E = {(1, 2), (2, 3), (2, 4), (3, 3), (3, 4), (3, 5), (5, 6) }. Đồ thị có khuyên là (3,3), có đỉnh treo là đỉnh 6, đỉnh cô lập là đỉnh 7. Bậc của đồ thị d(G) = 7 cỡ của đồ thị card(G) = 7. 1.2 CÁC LOẠI ĐỒ THỊ Đồ thị hữu hạn Đơn đồ thị, đa đồ thị Đồ thị đủ Đồ thị lưỡng phân Đồ thị thuần nhất Đồ thị con, đồ thị đẳng cấu Đồ thị bù, đồ thị đường Đồ thị phẳng Đồ thị đối ngẫu 1.3. BẬC, NỬA BẬC VÀO, NỬA BẬC RA 5 1 2 4 5 6 7 3 3 Hình 1.4 1.3.1 Định nghĩa bậc, nửa bậc vào, nửa bậc ra • Bậc: Cho đồ thị G = (V, E). Bậc của đỉnh v V∈ là tổng số cạnh liên thuộc với nó ký hiệu là d(v). Nếu đỉnh có khuyên thì khuyên được tính là 2 khi tính bậc, như vậy: d(v) = số cạnh liên thuộc đỉnh v + 2* số khuyên. Như vậy đỉnh cô lập trong đồ thị đơn là đỉnh có bậc bằng 0. Đỉnh treo là đỉnh có bậc bằng 1. Bậc lớn nhất của các đỉnh trong đồ thị G ký kiệu là ( )G∆ bậc nhỏ nhất của các đỉnh trong G ký hiệu là ( )G δ . • Nửa bậc: Cho đồ thị có hướng G = (V,E), v V∈ . Nửa bậc ra của đỉnh v, kí hiệu d 0 (v) là số cung đi ra từ đỉnh v (v là đỉnh đầu). Nửa bậc vào của đỉnh v, kí hiệu d I (v) là số cung đi tới đỉnh v (v là đỉnh cuối). 1.3.2. Các định lý về bậc Định lý 1.5 Cho đơn đồ thị G có số đỉnh lớn hơn 1. Khi đó G có ít nhất hai đỉnh có cùng bậc Chứng minh Xét đồ thị G có n đỉnh. Trong G không thể có đồng thời một đỉnh bậc 0 một đỉnh bậc n. Thật vậy, nếu G có một đỉnh bậc 0 thì không có cạnh nào nối đỉnh này với n-1 đỉnh còn lại trong G, do đó n-1 đỉnh còn lại của G có bậc là một trong n-2 số 1,2,3,…,n-2. Nếu G không có đỉnh bậc 0 thì n đỉnh có bậc là một trong n-1 số 1,2,3,…,n-1. Theo nguyên lý Dirichlet trong cả hai trường hợp G có ít nhất hai đỉnh có cùng bậc. Định lý 1.6 Cho đồ thị G = (V,E). Khi đó tổng bậc các đỉnh của đồ thị là số chẵn ( ) 2. ard(E) v V d v c ∈ = ∑ . 6 Chứng minh Mỗi cạnh ( , )e u v E= ∈ tham gia tính 1 bậc ở đỉnh u 1 bậc ở đỉnh v. Do đó ta có ( ) 2. ard(E) v V d v c ∈ = ∑ . Hệ quả 1.1 Số đỉnh bậc lẻ của đồ thị vô hướng là số chẵn. Chứng minh Cho đồ thị G=(V,E). Ký hiệu 1 V là tập các đỉnh bậc lẻ, 2 V là tập các đỉnh bậc chẵn. Theo định lý 1.2 ta có: 1 2 v V 2. ard(E)= d(v) ( ) ( ) v V v V c d v d v ∈ ∈ ∈ = + ∑ ∑ ∑ 1 2 v V ( ) 2. ard(E)- d(v) v V d v c ∈ ∈ ⇒ = ∑ ∑ : là số chẵn Các số hạng d(v) trong tổng 1 ( ) v V d v ∈ ∑ đều là số lẻ. Vì vậy để cho tổng 1 ( ) v V d v ∈ ∑ là số chẵn thì số các số hạng đó phải là số chẵn. Vậy số đỉnh bậc lẻ trong V là số chẵn. Mệnh đề 1.1 Mọi đỉnh của đồ thị n K có bậc là n-1 n K có ( 1) 2 n n − cạnh. Chứng minh Từ định nghĩa của đồ thị n K suy ra mọi đỉnh của đồ thị n K có bậc n-1. Ta có ( ) ( 1) ( ) 2 2 2 v V v V d v n n d v E E ∈ ∈ − = ⇒ = = ∑ ∑ 7 Mệnh đề 1.2 Cho đồ thị lưỡng phân đủ { } ( ) , 1 2 , , m n K V V E= . Khi đó mỗi đỉnh trong tập 1 V có bậc là n, mỗi đỉnh trong tập 2 V có bậc là m ,m n K có m.n cạnh. Chứng minh Đồ thị lưỡng phân đủ { } ( ) , 1 2 , , m n K V V E= có số bậc của mỗi đỉnh trong 1 V , 2 V được suy ra từ định nghĩa của đồ thị lưỡng phân. 1 2 1 2 ( ) ( ) 2 ( ) ( ) . . . 2 2 v V v V v V v V d v d v E d v d v m n n m E m n ∈ ∈ ∈ ∈ + = + + ⇒ = = = ∑ ∑ ∑ ∑ 1.4. ĐƯỜNG ĐI, CHU TRÌNH, TÍNH LIÊN THÔNG 1.4.1. Các định nghĩa Định nghĩa 1.15. Cho đồ thị ( , )G V E= . Dãy µ từ đỉnh v đến đỉnh w là dãy các đỉnh cạnh nối tiếp nhau bắt đầu từ đỉnh v kết thúc tại đỉnh w. Số cạnh trên dãy µ gọi là độ dài của dãy µ . Dãy µ từ đỉnh v đến đỉnh w có độ dài n được biểu diễn như sau: ( ) 1 1 2 2 1 , , , , , , , ,w n n v e v e v v e µ − = trong đó , 1, 1 i v i n= − là các đỉnh trên dãy , 1, i e i n= là các cạnh trên dãy liên thuộc đỉnh kề trước kề sau nó. Các đỉnh cạnh trên dãy có thể lặp lại. Định nghĩa 1.16 Đường đi từ đỉnh v đến đỉnh w là dãy từ đỉnh v đến đỉnh w trong đó các cạnh không lặp lại. Định nghĩa 1.17 Đường đi sơ cấp là đường đi không qua một đỉnh quá một lần. Định nghĩa 1.18 Vòng là dãy có đỉnh đầu đỉnh cuối trùng nhau. 8 Định nghĩa 1.19 Chu trình là đường đi có đỉnh đầu đỉnh cuối trùng nhau. Định nghĩa 1.20 Chu trình sơ cấp là chu trình không đi qua một đỉnh quá một lần. Định nghĩa 1.21 Đồ thị vô hướng được gọi là liên thông nếu mọi cặp đỉnh của nó đều có đường đi nối chúng với nhau. 1.4.2. Các định lý Định lý 1.7. Đồ thị G lưỡng phân khi chỉ khi G không chứa chu trình có độ dài lẻ. Định lý 1.8 Cho đơn đồ thị ( , )G V E= với n đỉnh k thành phần liên thông. Khi đó số cạnh m của đồ thị thỏa bất đẳng thức: ( )( 1) 2 n k n k n k m − − + − ≤ ≤ Hệ quả 1.2 Mọi đơn đồ thị n đỉnh với số cạnh lớn hơn ( 1)( 2) 2 n n− − là liên thông. Định lý 1.9 Mọi chu trình đồ thị phẳng có độ dài chẵn khi chỉ khi mọi mặt của đồ thị có bậc chẵn. Định lý 1.10 (Công thức Euler) Cho G là đồ thị liên thông phẳng có e cạnh, v đỉnh f mặt. Khi đó ta có công thức: f=e-v+2. Định lý 1.11 Cho G là đơn đồ thị liên thông phẳng có e cạnh, v đỉnh đai g, không có đỉnh treo. Khi đó ta có ( 2) 2 g e v g ≤ − − ( 3)g ≥ . Hệ quả 1.3 Cho G là đơn đồ thị phẳng liên thông với e cạnh v đỉnh ( 3v ≥ ), không có đỉnh treo Khi đó ta có: 3 6.e v≤ − Hệ quả 1.4 Cho G là đơn đồ thị phẳng liên thông với e cạnh v đỉnh ( 3v ≥ ), không có đỉnh treo không có chu trình độ dài 3. Khi đó ta có: 9 2 4.e v≤ − 10 [...]... của bài toán ghép cặp bài toán luồng cực đại Quá trình nghiên cứu luận văn đã đạt được những kết quả sau: - Với bản thân đã hệ thống được một số kiến thức về Lý Thuyết Đồ Thị hiểu sâu hơn về bài toán ghép cặp, bài toán luồng cực đại - Xây dựng được một số ứng dụng các bài toán giải được bằng cách vận dụng những kết quả của bài toán ghép cặp bài toán luồng cực đại Hệ thống bài toán xây dựng... ghép đối với M* đã ghép đối với M Như vậy, mỗi đỉnh a đã ghép đối với M * chưa ghép đối với M đều tương ứng 1-1 với 1 đỉnh b đã ghép đối với M chưa ghép đối với M * Điều này chứng tỏ M* không thể chứa nhiều đỉnh hơn M được Nói cách khác M là bộ ghép cực đại Lưu ý: Ta có thể áp dụng giải thuật này bắt đầu với 1 bộ ghép bất kì, giải thhuật sẽ sửa mở rộng M dần để sau cùng trở thành 1 bộ ghép. .. lực lượng của X Bộ ghép hoàn hảo là bộ ghép đầy đủ từ X vào Y từ Y vào X (suy ra card(X) = card(Y)) • Đưa bài toán ghép cặp về mạng chuẩn Xét đơn đồ thị lưỡng phân G = (X, Y, E) Ta sẽ đưa bài toán ghép cặp cuả đồ thị G về bài toán luồng cực đại như sau Từ đồ thị G ta xây dựng mạng G’ gồm tập các đỉnh V’ = {s} ∪ X ∪ Y ∪ {t } Tập các cung E’ = {(s,x)│x ∈ X } ∪ E ∪ {(y,t)│y ∈ Y} khả năng thông qua... mạng G Giá trị của luồng f là đại lượng 11 v(f) = ∑ ( a ,i )∈G f ai = ∑ ( i , z )∈G f iz 2.2 BÀI TOÁN GHÉP CẶP 2.2.1 Phát biểu bài toán Ta xét bài toán sau Cho tập X 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 Ví dụ 2.3 Có 4 người A, B, C, D xếp làm các công việc 1, 2, 3, 4, 5 Giả sử:... thành một ghép cặp tối ưu M thỏa w(M) = P.A, trong đó P.A = ∑ p ij.aij Ma trận P gọi là ghép cặp với ma trận A Bây giờ ta cho số nguyên c xây dựng ma trận A’ bằng cách cộng thêm c vào tất cả phần tử trên một hàng hoặc một cột của A Khi đó P.A’ = P.A + c 24 Như vậy ghép cặp tối ưu của ma trận A cũng là ghép cặp tối ưu của ma trận A’ ngược lại Từ phân tích trên ta suy ra phương pháp tìm ghép cặp tối... Tiếp tục quá trình này cho đến khi ta nhận được n hàng cột phủ 27 CHƯƠNG 3 ỨNG DỤNG CỦA BÀI TOÁN GHÉP CẶP 3.1 BÀI TOÁN PHÂN CÔNG CÔNG VIỆC 3.1.1 Phát biểu bài toán Trong 1 công ty, có n người công nhân x 1, x2, …, xn n công việc y1, y2,…,yn Mỗi người công nhân là có thể làm được 1 hoặc nhiều hơn một việc Tìm điều kiện để tất cả công nhân đều có việc phù hợp 3.1.2 Cách giải Dựng 1 đồ thị lưỡng... bậc của đỉnh thuộc X 1 bậc của đỉnh thuộc Y Vì vậy tổng bậc các đỉnh trong X 16 bằng tổng bậc các đỉnh trong Y ( bằng số cạnh) Vì các đỉnh trong G đều có bậc k > 0, nên X Y có số đỉnh bằng nhau Suy ra tồn tại bộ ghép hoàn hảo của G 2.2.3 Thuật toán giải bài toán ghép cặp Định nghĩa 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ác cạnh không... định lý 13 Định lý 2.5 Xét bài toán ghép cặp của G = (X, Y, E) bài toán luồng cực đại trên mạng G’ Khi đó (i) Mọi luồng f = {fxy} của G’ sinh bởi thuật toán tìm luồng cực đại xác định một bộ ghép của G (ii) Mọi luồng cực đại f = {fxy} của G’ sinh bởi thuật toán tìm luồng cực đại xác định một bộ ghép cực đại của G (iii) Mọi luồng cực đại f = {f xy} của G’ sinh bởi thuật toán tìm luồng cực đại có giá... n người công nhân, Y = { y1,y2,…,yn} biểu thị n công việc xi là kết hợp với yj nếu chỉ nếu người công nhân x i là làm được công việc yj Bài toán trở thành xác định có hay không một bộ ghép hoà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 trong chương 2 Ví dụ 3.1 Có 8 người công nhân {A, B, C, D, E, F, G, H} các công việc {a, b, c, d, e, f, g, h} Mỗi người công... nghĩa Cho đồ thị G Một bộ ghép (matching) của đồ thị G là một tập hợp các cạnh (cung) của G, đôi một không kề nhau Bài toán ghép cặp (Matching problem) của G là tìm bộ ghép có số cạnh (cung) lớn nhất của G Bộ ghép cực đại là bộ ghép có số cạnh (cung) lớn nhất Lực lượng của bộ ghép cực đại kí hiệu là α1(G) Cho G = (X,Y,E) là đơn đồ thị lưỡng phân Bộ ghép đầy đủ từ X vào Y là bộ ghép cực đại có lực lượng . 12 2.2.3 Thuật toán giải bài toán ghép cặp 16 2.2.4 Bài toán ghép cặp tối ưu 23 Chương 3. ỨNG DỤNG CỦA BÀI TOÁN GHÉP CẶP 3.1 Bài toán phân công công việc 27 3.1.1 Phát biểu bài toán 27 3.1.2. ),( f iz 2.2 BÀI TOÁN GHÉP CẶP 2.2.1 Phát biểu bài toán Ta xét bài toán sau. 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. phân Bộ ghép đầy đủ từ X vào Y là bộ ghép cực đại có lực lượng bằng lực lượng của X. Bộ ghép hoàn hảo là bộ ghép đầy đủ từ X vào Y và từ Y vào X (suy ra card(X) = card(Y)). • Đưa bài toán ghép cặp

Ngày đăng: 31/05/2014, 09:25

Tài liệu cùng người dùng

Tài liệu liên quan