Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 66 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
66
Dung lượng
2,96 MB
Nội dung
MỤC LỤC LỜI NÓI ĐẦU CHƯƠNG 1.1 Các định nghĩa 1.2.Các thuật ngữ .9 1.2.1.Các thuật ngữ mô tả đỉnh cạnh đồ thị vô hướng 1.2.2.Các thuật ngữ mô tả đồ thị có hướng .10 1.3 Đường đi, chu trình, đồ thị liên thông 11 1.3.1 Đường đi, chu trình 11 1.3.2 Đồ thị liên thông 12 1.4 Các dạng biểu diễn đồ thị 15 1.4.1 Biểu diễn hình học đồ thị .15 1.4.2 Sự đẳng cấu 15 1.4.3 Biểu diễn đồ thị máy tính .16 CHƯƠNG 22 BÀI TOÁN LUỒNG CỰC ĐẠI TRONG MẠNG .22 2.1 Mạng, Luồng mạng .22 2.2 Lát cắt, đường tăng luồng 23 2.3 Bài toán luồng cực đại mạng 27 2.3.1.Giới thiệu toán luồng cực đại mạng 27 2.3.2.Nội dung toán 27 2.4 Thuật toán tìm luồng cực đại mạng 27 2.4.1.Tư tưởng thuật toán 27 2.4.2.Sơ đồ thuật toán ford_ Fulkersol 29 2.4.3 Sơ đồ khối 32 2.4.4.Ví dụ 34 2.4.4.Ví dụ 35 CHƯƠNG 38 CÀI ĐẶT MÔ PHỎNG BÀI TOÁN LUỒNG CỰC ĐẠI TRONG MẠNG .38 3.1 Khái quát ngôn ngữ lập trình C# 38 3.1.1 Những mạnh ngôn ngữ C# 39 3.1.2 Các bước chuẩn bị cho chương trình 41 3.2 Thuật toán tìm luồng cực đại mạng 42 3.3 Các phương thức chương trình 45 3.4 Kết 48 CHƯƠNG 50 MỘT SỐ BÀI TOÁN ỨNG DỤNG 50 4.1.Một số toán luồng tổng quát 50 4.1.1 Mạng với nhiều điểm phát điểm thu 50 4.1.2 Bài toán với khả thông qua cung đỉnh .52 4.1.3.Mạng khả thông qua cung bị chặn hai phía 53 4.2 Một số toán ứng dụng tổ hợp 54 4.2.1 Bài toán đám cưới vùng quê 54 4.2.2 Bài toán hệ thống đại diện chung .54 4.2.3 Bài toán tối ưu rời rạc 56 KẾT LUẬN .64 TÀI LIỆU THAM KHẢO 66 NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN Error! Bookmark not defined LỜI NÓI ĐẦU Trong năm gần nghành khoa học công nghệ, công nghệ thông tin phát triển cách chóng mặt với nhiều loại hình dịch vụ phong phú đáp ứng ngày cao nhu cầu người Các hệ thống viễn thông đại, máy tính cá nhân, mạng máy tính quốc gia, quốc tế internet… làm cho quốc gia cá nhân giới xích lại gần Thông tin nhu cầu thiếu người dạng tài nguyên đặc biệt vô quý giá Nói đến thông tin đồng thời nói đến việc lưu trữ xử lý thông tin máy tính Trong lưu trữ xử lý thông tin máy tính toán rời rạc đóng góp tầm quan trọng không nhỏ, chất việc lưu trữ xử lý thông tin máy tính trình rời rạc Lý thuyết đồ thị lĩnh vực nghiên cứu toán rời rạc, có nhiều ứng dụng rộng rãi nhiều lĩnh vực khoa học kỹ thuật đời sống nhất, lĩnh vực khoa học máy tính Có nhiều toán ứng dụng lý thuyết đồ thị áp dụng rộng rãi thực tế như: Bài toán khung nhỏ nhất, toán tìm đường ngắn nhất, toán luồng cực đại mạng,… Bài toán luồng cực đại mạng toán tối ưu đồ thị tìm ứng dụng rộng rãi thực tế, có nhiều toán thực tế đưa toán luồng cực đại mạng để giải toán mạng với nhiều điểm phát điểm thu, toán đường ống dẫn dầu, toán tìm cường độ lớn dòng vận tải hai nút đồ giao thông,… Bài toán luồng cực đại mạng tìm nhiều ứng dụng thú vị lý thuyết tổ hợp, số toán tổ hợp toán đám cưới vùng quê, toán hệ thống đại diện chung, toán lập lịch cho hội nghị,…có thể giải cách xây dựng mạng đồ thị tương ứng, việc tìm luồng cực đại mạng tương ứng với việc giải toán tổ hợp đặt Vì vậy, em chọn đề tài “Xây dựng chương trình mô toán Luồng cực đại mạng” làm đồ án tốt nghiệp nhằm nghiên cứu hiểu rõ toán luồng cực đại mạng thuật toán tìm luồng cực đại mạng ứng dụng toán thực tế lý thuyết tổ hợp Nội dung đề tài trình bày chương Chương 1: Lý thuyết đồ thị Chương 2: Bài toán luồng cực đại mạng Chương 3: Cài đặt mô toán luồng cực đại mạng Chương 4: Một số toán ứng dụng CHƯƠNG LÝ THUYẾT ĐỒ THỊ 1.1 Các định nghĩa Định nghĩa 1: (Định nghĩa đồ thị) Đồ thị cấu trúc rời rạc bao gồm đỉnh cạnh nối đỉnh Người ta phân biệt loại đồ thị khác kiểu số lượng cạnh nối hai đỉnh đồ thị Giả sử V tập hữu hạn, không rỗng phần tử E V× V Bộ G = (V,E) gọi đồ thị hữu hạn Mỗi phần tử xV gọi đỉnh phần tử e=(x, y)E gọi cạnh đồ thị G=(V,E) Xét cạnh e tồn đỉnh x, yV cho e =(x,y), ta nói x nối với y x y thuộc e - Nếu cạnh e = (x,y) mà x y hai đỉnh phân biệt ta nói x,y hai đỉnh kề - Nếu e=(x,x) e cạnh có hai đỉnh trùng ta gọi khuyên - Nếu e=(x,y) mà x,y cặp đỉnh có phân biệt thứ tự hay có hướng từ x đến y e cung, x gốc y x đỉnh ra, y đỉnh vào - Khi cặp đỉnh (x,y) có nhiều cạnh ta nói cạnh cặp đỉnh cạnh song song cạnh bội Minh hoạ hình vẽ sau: Trong thực tế ta gặp nhiều vấn đề mà dùng mô hình đồ thị để biểu diễn, sơ đồ mạng máy tính, sơ đồ mạng lưới giao thông, sơ đồ thi công công trình Ví dụ: Sử dụng đơn đồ thị vô hướng để mô tả mạng máy tính sau: Giả sử ta có mạng gồm máy tính kênh điện thoại nối máy tính này, biểu diễn vị trí đặt máy tính điểm kênh điện thoại nối chúng đoạn thẳng nối hình đây: Ta thấy mạng hình 1, hai máy có nhiều kênh điện thoại nối chúng, kênh cho phép liên lạc hai chiều máy tính lại nối với Sơ đồ mạng máy tính cho hình gọi đơn đồ thi vô hướng Vậy ta có định nghĩa sau: Định nghĩa 2: (Định nghĩa đơn đồ thị vô hướng) Đơn đồ thị vô hướng G=(V,E) bao gồm V tập đỉnh E tập cặp thứ tự gồm hai phần tử khác V gọi cạnh Ví dụ: Sơ đồ mạng cho hình đơn đồ thị vô hướng Trong trường hợp hai máy tính thường xuyên phải truyền tải nhiều thông tin người ta phải nối hai máy với nhiều kênh thoại Mạng với đa kênh thoại máy cho hình Sơ đồ biểu diễn mạng gọi đa đồ thị vô hướng Như ta có định nghĩa sau: Định nghĩa 3( Định nghĩa đa đồ thị vô hướng) Đa đồ thị vô hướng G=(V,E) bao gồm V tập đỉnh E họ cặp thứ tự gồm hai phần tử khác V gọi cạnh Hai cạnh e1và e2 gọi cạnh lặp chúng tương ứng với cặp đỉnh Ví dụ: đa đồ thị vô hướng hình Nhận xét: Mỗi đơn đồ thị đa đồ thị điều ngược lại không Trong mạng máy tính có kênh thoại nối máy với Trong trường hợp mạng ta sử dụng khái niệm giả đồ thị vô hướng định nghĩa sau: Định nghĩa (Định nghĩa giả đồ thị vô hướng) Giả đồ thị vô hướng G=(V,E) bao gồm V tập đỉnh E họ cặp thứ tự gồm hai phần tử ( không thiết phải khác nhau) V gọi cạnh Cạnh e gọi khuyên ( cạnh nối đỉnh với nó) có dạng e= (u, u) Ví dụ: Sơ đồ hình giả đồ thị với khuyên (A,A), (B,B), (C,C) Các kênh thoại mạng máy tính cho phép truyền tin theo chiều Trong trường hợp người ta biểu diễn mạng máy tính đồ thị có hướng Ta có định nghĩa sau: Định nghĩa 5:( Định nghĩa đơn đồ thị có hướng) Đơn đồ thị có hướng G=(V,E) bao gồm V tập đỉnh E tập cặp có thứ tự gồm hai phần tử khác V gọi cung Ví dụ:Sơ đồ biểu diễn mạng máy tính hình sau đơn đồ thị có hướng Nếu mạng có nhiều kênh thoại chiều, ta phải sử dụng đến khái niệm đa đồ thị có hướng định nghĩa sau: Định nghĩa 6:( Định nghĩa đa đồ thị có hướn+g) Đa đồ thị có hướng G=(V, E) bao gồm V tập đỉnh E họ cặp có thứ tự gồm hai phần tử khác V gọi cung Hai cung e1và e2 tương ứng với cặp đỉnh gọi cung lặp Ví dụ: Sơ đồ biểu diễn mạng máy tính hình đa đồ thị có hướng 1.2.Các thuật ngữ 1.2.1.Các thuật ngữ mô tả đỉnh cạnh đồ thị vô hướng Định nghĩa 1: Hai đỉnh u v đồ thị vô hướng G gọi kề (u,v) cạnh đồ thị G Nếu e=(u,v)là cạnh đồ thị G ta nói cạnh liên thuộc với hai đỉnh u v, nói cạnh e nối đỉnh u đỉnh v, đồng thời đỉnh u v gọi đỉnh đầu cạnh (u,v) Như hình ta thấy hai đỉnh A E hai đỉnh kề cạnh e nối hai đỉnh A E cạnh đồ thị nên e liên thuộc với hai đỉnh A E, tương tự với đỉnh khác Để biết có cạnh liên thuộc với đỉnh,ta đưa vào định nghĩa sau Định nghĩa 2: Ta gọi bậc đỉnh V đồ thị vô hướng số cạnh liên thuộc với nó, ta ký hiệu deg(v) Ví dụ 1: xét đồ thị vô hướng G hình Trong hình ta có deg(a)=1,deg(b)=4, deg(c)=4, deg(e)=3, deg(f)=3, deg(d)=1, deg(g)=0 Đỉnh có bậc gọi đỉnh cô lập, đỉnh có bậc gọi đỉnh treo Trong ví dụ ta có đỉnh g đỉnh cô lập, đỉnh a đỉnh d đỉnh treo Tính chất bậc đỉnh Nếu G=(V,E) đồ thị vô hướng có m cạnh ta có 2m= deg(v) vV Ví dụ 2: đồ thị vô hướng với n đỉnh đỉnh có bậc có cạnh Giải: Theo tính chất ta có: 2m=6n m=3n số cạnh đồ thị 3n 1.2.2.Các thuật ngữ mô tả đồ thị có hướng Định nghĩa 3: Nếu e=(u,v) cung đồ thị có hướng G ta nói hai đỉnh u v kề nhau, nói cung (u,v) nối đỉnh u với đỉnh v nói cung khỏi đỉnh u vào đỉnh v Đỉnh u(v) gọi đỉnh đầu (đỉnh cuối) cung (u,v) Trong đồ thị có hướng ta có khái niệm bán bậc (vào) đỉnh định nghĩa sau Định nghĩa 4: Ta gọi bán bậc (bán bậc vào ) đỉnh v đồ thị có hướng số cung đồ thị khỏi (đi vào nó) ký hiệu deg+(v), ( deg-(v)) Ví dụ 3: Xét đồ thị có hướng G hình đây, ta có deg-(A)=2, deg-(B)=3, deg-(C)=1, deg-(D)=2, deg-(E)=2 deg+(A)=3, deg+(B)=2,deg+(C)=2, deg+(D)=2, deg+(E)=1 10 Giao diện chương trình toán mạng với nhiều điểm phát nhiều điểm thu chạy thuật toán Với toán ban đầu ta có điểm phát A, B, C, D điểm thu E, F, G, H, sau chạy thuật toán chương trình tự động thêm vào điểm phát giả điểm thu giả, đỉnh A trở thành điểm phát giả đỉnh J trở thành điểm thu giả Khi toán mạng với nhiều điểm phát nhiều điểm thu đưa toán mạng với điểm phát điểm thu 4.1.2 Bài toán với khả thông qua cung đỉnh Giả sử mạng G, khả thông qua cung c(u,v), đỉnh v V có khả thông qua đỉnh d(v), đòi hỏi tổng luồng vào đỉnh v không vượt d(v), tức f ( w, v ) d(v) cần phải tìm wV luồng cực đại mạng Xây dựng mạng G’sao cho: đỉnh v G ứng với đỉnh v+, vtrong G’, cung (u,v) G ứng với cung (u-,v+) G’, Mỗi cung (v,w) G ứng với cung (v-,w+) G’ 52 Ngoài ra, cung (v+,v-) G’có khả thông qua d(v), tức khả thông qua đỉnh v G Do luồng vào đỉnh v+phải qua cung (v+,v-) với khả thông qua d(v) nên luồng cực đại G’ luồng cực đại G với khả thông qua cung đỉnh 4.1.3.Mạng khả thông qua cung bị chặn hai phía Xét mạng G cung (u,v) có khả thông qua (cận luồng cung ) c(u,v)và cận luồng d(u,v) Bài toán đặt có tồn luồng tương thích với từ s đến t, tức luồng{ f(u,v): u,v V} thoả mãn thêm ràng buộc d(u,v) f(u,v) c(u,v), (u,v) E, hay không ? Đưa vào mạng G đỉnh phát giả savà đỉnh thu giả ta xây dựng mạng Ga theo quy tắc : Mỗi cung (u,v) tương ứng với hai cung (sa,v) (u,ta) với khả thông qua d(u,v) Giảm c(u,v) d(u,v) tức thay khả thông qua cung (u,v) c(u,v) – d(u,v) cận Ngoài thêm vào cung (t,s) với c(t,s)= Minh hoạ toán hình vẽ sau : 53 d (u , v ) Ký hiệu d* = d (u , v) Ta có kết sau: Định lý 1) Nếu luồng lớn mạng Ga từ sa đến ta d* tồn luồng tương thích G 2)Nếu luồng lớn mạng Ga từ sa đến ta khác d* không tồn luồng tương thích G 4.2 Một số toán ứng dụng tổ hợp Bài toán luồng cực đại có nhiều ứng dụng việc giải nhiều toán tổ hợp cách xây dựng đồ thị cho toán việc tìm luồng cực đại mạng tương đương với việc giải toán tổ hợp đặt Sau số toán tổ hợp 4.2.1 Bài toán đám cưới vùng quê Có m chàng trai làng quê nọ, chàng trai ta biết cô gái mà vừa ý Hỏi tổ chức đám cưới chàng trai sánh duyên với cô gái mà vừa ý Ta xây dựng đồ thị với đỉnh biểu thị chàng trai cô gái, cung biểu thị vừa ý chàng trai cô gái Khi ta thu đồ thị hai phía 4.2.2 Bài toán hệ thống đại diện chung Cho tập m phần tử X= { z1,z2,…,zm } Giả sử (A1,A2,…,An) (B1,B2,…,Bn) hai dãy tập tập X: (a1,a2,…,an) gọi hệ thống 54 đại diện chung hai dãy cho tìm hoán vị tập {1,2,…, n } cho (a1,a2,…,an) hệ thống đại diện phân biệt hai dãy (A1,A2,…,An) (B (1) ,B (2) ,…,B (n) ), tức điều kiện sau thỏa mãn: Ai B (i ) ,i=1,2,…, n Xây dựng mạngG =(G,E) với tập đỉnh V={s,t} {x1,x2,…,xn} {u1,u2,…,u n} {v1,v2,…,vm} {y1, y2,…,yn}, đỉnh xi tương ứng với tập Ai, đỉnh yi tương ứng với tập Bi, phần tử u j,vj tương ứng với phần tử zj Tập cung mạng G xác định sau: E={(s,x): i n} {(xi,ui): với zi Ai ,1 j m} { (uj,vj): j m} {(vj,yi): với zj B, i n, j m} {(yi,t): i n} Khả thông qua tất cung gán 1.Ta thấy hệ thống đại diện chung hai dãy tồn mạng G=(V,E) tìm luồng với giá trị n Để xét tồn luồng sử dụng thuật toán tìm luồng cực đại mạng G=(V,E) Ví dụ toán hệ thống đại diên chung: Bài toán tặng quà Một lớp học có n bạn nam, n bạn nữ Cho m quà lưu niệm, (n ≤ m) Mỗi bạn có sở thích số quà Hãy tìm cách phân công bạn nam tặng quà cho bạn nữ thoả mãn: +) Mỗi bạn nam tặng quà cho bạn nữ +) Mỗi bạn nữ nhận quà bạn nam +) Bạn nam tặng quà bạn nữ nhận quà, quà phải hợp sở thích hai người +) Món quà bạn nam chọn bạn nam khác không chọn Mô hình đồ thị biểu diễn toán Xây dựng mạng G= (V, E), V gồm lớp đỉnh Lớp đỉnh A[1 n], đỉnh tượng trưng cho bạn nam Lớp đỉnh B[1 m], đỉnh tượng trưng cho quà Lớp đỉnh C[1 m], đỉnh tượng trưng cho quà Lớp đinh D[1 n], đỉnh tượng trưng cho bạn nữ 55 Tập cung E xây dựng sau: Một cung nối từ lớp A tới lớp B tương ứng với bạn nam quà hợp sở thích bạn nam Một cung nối từ lớp B sang lớp C nối đỉnh tượng trưng cho quà từ lớp B tới đỉnh tượng trưng cho quà lớp C Một cung nối từ lớp C sang lớp D tương ứng với quà bạn nữ thích quà Tất cung có khả thông qua Tìm luồng cực đại mạng, giá trị luồng m cách phân công tồn cách: Trên cung có luồng qua( giá trị luồng theo định lý tính nguyên), cung nối từ lớp A sang lớp B tương đương với bạn nam quà bạn nam chọn, Mỗi cung từ lớp C sang lớp D tương đương với quà bạn nữ nhận quà Sau kết chạy toán tặng quà Giao diện chạy toán hệ đại diện phân biệt(bài toán tặng quà) 56 4.2.3 Bài toán tối ưu rời rạc Xét toán tối ưu rời rạc n f(x1,x2,…,xn)= max xij 1i m (1) j 1 với điều kiện : n a ij = pi,i=1,2,…,m (2) j 1 Xij =0 ,j=1,2,…,n (3) Trong aij {0,1},i=1,2,…,n, p i ,nguyên , i= 1,2,…,m Bài toán mô hình toán học nhiều toán tổ hợp thực tế toán phân nhóm sinh hoạt, toán lập lịch cho hội nghị nhiều toán khác mà ta biết 4.2.3.1 Bài toán lựa chọn chuyên đề Có m sinh viên n nhóm sinh họat chuyên đề Với sinh viên i biết: aij=1, sinh viên i có nguyện vong tham gia vào nhóm j, aij=0, ngược lại p i số lượng nhóm chuyên đề mà sinh viên i phải tham dự, i=1,2,…, m; j= 1,2,…,n Trong số cách phân sinh viên vào nhóm chuyên đề mà họ có nguyện vong tham gia đảm bảo sinh viên i phải tham gia p i nhóm, tìm cách phân phối với số người nhóm có nhiều sinh viên tham gia nhỏ Mô hình đồ thị biểu diễn toán -Mỗi đỉnh (Màu hồng) tượng trưng cho sinh viên Ngược lại đỉnh (màu xanh da trời) tượng trưng cho nhóm chuyên đề xij = 1, sinh viên i tham gia vào nhóm j xij = 0, ngược lại, i =1, 2, …, m; j =1, 2,…,n Khi dễ thấy mô hình toán học cho toán toán (1)-(3) Kết xây dựng chương trình mô toán lựa chọn chuyên đề cho sinh viên cách đưa toán luồng, thể qua hình 57 đây: Từ giao diện chương trình chọn vào mục số toán ứng dụng chọn vào lựa chọn chuyên đề, nhập đỉnh cung đồ thị tương ứng với số sinh viên số chuyên đề cần phải học, sau vào mục đầy đủ để nhập đầy đủ thông tin toán hình đây: Cửa sổ chương trình minh hoạ toán lựa chọn chuyên đề cho sinh viên Chạy thuật toán ta thu kết là: 58 Giao diện chương trình cài đặt mô toán lựa chọn chuyên đề cho sinh viên 4.2.3.1 Bài toán phủ đưòng tối thiểu( Minimum Path Corver ) Cho đồ thị G = (V, E) có hướng chu trình (Directed Acyclic Graph – DAG), phủ đường (PathCorver) tập P gồm đường G thoả mãn: Với đỉnh v V, tồn đường p P chứa v Đường bắt đầu kết thúc đâu, có tính đường độ dài ( gồm đỉnh) Hãy tìm phủ đường gồm đường (|p|min) Mô hình đồ thị biểu diễn toán Giả sử V= {1, …,n} Xây dựng đồ thị G’ = (V’, E’), V’ = {x0, …, xn } { y0, …, yn } E’ ={(x0, xi )|I V} {( yj, y0)| j V} {( xi, yj) |(i, j) E} Tìm luồng nguyên cực đại mạng G’ với đỉnh phát x0, đỉnh thu y0 tất khả thông qua cung gán Mỗi cung (xi, yj) G’ có luồng qua tương ứng với cung (i, j) G chọn vào đường 59 P Cuối cùng, đỉnh G chưa thuộc P đưa nốt vào P với tư cách đường độ dài Mô tả cách xây dựng toán đưa toán luồng Trước hết ta có nhận xét có tượng ứng phủ đường G luồng nguyên cực đại G’ Thật vậy: Với đường P, với đỉnh v[j] (j=1, …, q), ta đẩy đơn vị luồng từ x0 tới xv[j] qua yv[j+1] đến y0 Dễ thấy luồng G’ xây dựng thoả mãn định nghĩa luồng, đường P đôi đỉnh chung Ngược lại, với luồng nguyên G’, ta bỏ qua không xét cung nối từ x0 cung nối tới y0 G’, theo định lý tính nguyên, luồng cung G’ bão hoà ( luồng = khả thông qua = 1, 0) Khởi tạo P gồm n đỉnh V chưa có cung nào, coi P gồm n đường độ dài Mỗi đưa vào P cung (u, v) tương ứng với cung bão hoà (xu, yv) G’, đỉnh xu có nhiều cung bão hoà đỉnh yv có nhiều cung bão hoà vào, nên thêm vào P cung (u, v) tương ứng với cung bão hoà (xu, yv) G’ không làm cho bán bậc u bán bậc vào v vượt (tức không tạo thành ngã rẽ) Từ suy ra, theo thuật toán, lần thêm vào P cung số đường 60 P giảm Vì số cung bão hoà dạng (xu, yv) G’ giá trị luồng cực đại mạng G’ nên số đường P xây dựng theo cách n – f với f giá trị luồng thông qua mạng G’ Việc cực tiểu hoá số đường P tương đương với cực tiểu hoá giá trị luồng qua màng G’, tức phủ đường suy từ luồng cực đại phủ đường tối thiểu Kết xây dựng chương trình cài đặt cho toán ứng dụng thể sau:Từ giao diện chương trình chọn vào link: Một số toán ứng dụng, chọn toán phủ cạnh tối thiểu hình đây: Giao diện trước chạy chương trình 61 Giao diện sau chạy chương trình 4.2.3.2 Bài toán lập lịch cho hội nghị Một hội nghị có m tiểu ban, tiểu ban cần sinh họat ngày phòng họp phù hợp với Có n phòng họp dành cho việc sinh hoạt tiểu ban Biết aij =1, phòng họp i phù hợp với tiểu ban j, aij=0, ngược lại, i=1,2,…m, j=1,2,…,n, Hãy bố trí phòng họp cho tiểu ban cho hội nghị kết thúc sau ngày làm việc -Mỗi đỉnh (Màu hồng) tượng trưng cho hội nghị Ngược lại đỉnh (màu xanh da trời) tượng trưng cho phòng họp xij = 1, bố trí tiểu ban i làm việc phòng j, xij = 0, ngược lại i = 1, 2, …, m, j = 1, 2, …, n, dễ thấy mô hình toán học cho toán đặt toán (1) – (3), pi =1, i = 1, 2, …, m Kết cài đặt toán lập lịch cho hội nghị đây: 62 Cửa sổ trước chạy chương trình Kết sau chạy chương trình 63 KẾT LUẬN Qua thời gian làm đồ án tốt nghiệp đại học với đề tài “ Xây dựng chương trình mô toán luồng cực đại mạng ”, em thấy lĩnh vực lý thuyết đồ thị lĩnh vực thú vị, có nhiều ứng dụng thực tế lĩnh vực khoa học máy tính Bài toán luồng cực đại mạng toán tối ưu đồ thị tìm ứng dụng rộng rãi thực tế lý thuyết tổ hợp trình bày Qua thời gian tìm hiểu nghiên cứu đề tài “Xây dựng chương trình mô toán luồng cực đại mạng”, em đạt kết sau: 1) Nắm vững thêm kiến thức ngôn ngữ lập trình (Ngôn ngữ C Sharp) 2) Nghiên cứu vấn đề Lý thuyết đồ thị 3) Tìm hiểu “Bài toán luồng cực đại mạng ”và ứng dụng toán số lĩnh vực thực tế 4) Cài đặt thuật toán tìm luồng cực đại mạng - Phân tích toán, đưa thủ tục, sơ đồ thiết kế (sơ đồ khối) - Đưa kết xác (giá trị luồng cực đại, Lát cắt) - Đồ họa biểu diễn mô thuật toán 5) Ứng toán luồng cực đại mạng để giải số toán thực tế: Bài toán lựa chọn chuyên đề Bài toán lập lịch cho hội nghị Bài toán tìm phủ cạnh tối thiểu Bài toán hệ đại diện phân biệt Hướng phát triển: Vận dụng tốt kiến thức học kết nghiên cứu để áp dụng triển khai ứng dụng thực tế Qua đợt làm đồ án tốt nghiệp đại học em xin chân thành cảm ơn cô giáo Ngô Thị Lan Phương toàn thể thầy cô giáo thuộc môn Các hệ thống thông tin, thầy cô khoa công nghệ thông tin_Đại học 64 Thái Nguyên người bạn em tận tình giúp đỡ em suốt trình tìm hiểu nghiên cứu đề tài Tuy nhiên thời gian tìm hiểu nghiên cứu không nhiều, kiến thức thân có hạn nên đồ án em khó tránh khỏi thiếu xót.Vậy em kính mong thầy cô giáo đóng góp ý kiến bổ xung để báo cáo em hoàn thiện 65 TÀI LIỆU THAM KHẢO (1) Nguyễn Đức Nghĩa , Nguyễn Tô Thành -Toán Rời Rạc Nhà xuất Đại Học Quốc Gia Hà Nội (2) Trần Đức Huyên - Các thuật giải tin học Nhà xuất Giáo dục - 1991 (3) Đỗ Xuân Lôi - Cấu trúc liệu giải thuật Nhà xuất Thống Kê (4) Phạm Hữu Khang, Hoàng Đức Hải, Đoàn Thiện Ngân Window Form – Nhà xuất lao động Hà Nội (5) Nasingh Deo - Graph Theory with Applications to Engineering Prentice Hall of India Private Linited (6) Robert Sedgewick - Cẩm Nang Thuật Toán Nhà xuất Khoa Học Kỹ Thuật (7) http://www.google.com.vn (8) http://www.dđth.com.vn (9) http://www.Itgatevn.com.vn (10) http://giaoan.violet.vn 66 Lập trình [...]... với mọi luồng f và với mọi lát cắt (X,X*).Vì vậy, từ đẳng thức val(f) = c(X,X*) suy ra luồng f là luồng cực đại trong mạng Vậy định lý được chứng minh Định lý trên là cơ sở xây dựng thuật toán tìm luồng cực đại trong mạng sẽ xét ở mục sau 2.3 Bài toán luồng cực đại trong mạng 2.3.1.Giới thiệu bài toán luồng cực đại trong mạng Như trên ta đã đề cập tới bài toán luồng cực đại trong mạng Đây là một trong. .. là một trong những bài toán trên đồ thị có nhiều ứng dụng trong thực tế cũng như trong lý thuyết đồ thị Bài toán được đề xuất bởi Ford và Fulkerson vào những năm 1950 2.3.2.Nội dung bài toán Cho mạng G=(V,E), hãy tìm trong mạng G một luồng f* sao cho f*là luồng cực đại trong mạng (hay luồng ứng với giá trị luồng val(f*) là lớn nhất) 2.4 Thuật toán tìm luồng cực đại trong mạng (Thuật toán Ford- Fulkerson)... một cạnh đi từ đỉnh xi tới đỉnh xj có hay không mất O(n) Cách biểu diễn này thích hợp cho các thuật toán mà cấu trúc đồ thị hay thay đổi như thêm hoặc bớt các cạnh 21 CHƯƠNG 2 BÀI TOÁN LUỒNG CỰC ĐẠI TRONG MẠNG 2.1 Mạng, Luồng trong mạng Định nghĩa 1: (Định nghĩa về mạng) Mạng là đồ thị có hướng G=(V,E), trong đó có duy nhất một đỉnh s không có cung đi vào gọi là điểm phát, duy nhất một đỉnh t khôngcó... wX vX vX * Mặt khác do f là luồng trong mạng nên nó thoả mãn điều kiện f(e) c(e) hay là f (v, w) c(v, w) vV wX * vV w X * và - f (v, w) 0 vV wX * val ( f ) c(X,X*) (đ p c m) Hệ quả: Giá trị luồng cực đại trong mạng không vượt quá khả năng thông qua của lát cắt hẹp nhất trong mạng Giả sử f là một luồng trong mạng G=(V,E) Từ mạng G=(V,E) ta xây dựng đồ thị có trọng số trên cungGf=(V,Ef)... (u,v) P } f’ xây dựng như trên cũng là luồng trong mạng và ta có: val(f’)=val(f)+ Thủ tục biến đổi từ luồng f sang luồng f’ gọi là tăng luồng dọc theo đường tăng P Như vậy ta có khái niệm đường tăng luông được định nghĩa như sau Định nghĩa 2: (Định nghĩa đường tăng luồng) Với Gf là đồ thị tăng luồng được xây dựng như trong phần chứng minh hệ quả ở mục 2.1 trên ta định nghĩa đường tăng luồng như sau:... luồng như sau: Đường tăng luồng f là mọi đường đi từ s đến t trên đồ thị tăng luồng Gf Ví dụ: Trên đồ thị tăng luồng Gf ở hình vẽ 1 dưới đây thì đường tăng luồng là mọi đường đi từ s đến t 25 Định lý dưới đây cho mối quan hệ giữa luồng cực đại, đường tăng luồng và lát cắt Định lý 1 Các mệnh đề sau đây là tương đương: i)f là luồng cực đại trong mạng ii) Không tìm được đường tăng luồng P iii) val(f)=c(X,X*)với... 2:(Định nghĩa luồng trong mạng) Giả sử cho mạng G=(V,E), ta gọi luồng trong mạng là ánh xạ f:E R+ gán cho mỗi cung e(v,w) E một số không âm f(e)=f(v,w), gọi là luồng trên cung e, thoả mãn các điều kiện sau: 1 )Luồng trên cung e E không vượt quá khả năng thông qua của nó : 0 f(e) c(e) 2) Điều kiện cân bằng luồng trên mỗi đỉnh của mạng: Tổng luồng trên các cung đi vào đỉnh v bằng tổng luồng trên... tìm đường tăng luồng P Khi đó ta có thể tăng giá trị luồng bằng cách tăng luồng dọc theo đường P Mặt khác f là luồng cực đại trong mạng do vậy giá trị luồng của f là lớn nhất Điều này mâu thuẫn với giả thiết P là đường tăng luồng Vậy không tìm được đường tăng luồng. ( đpcm) ii iii : Giả sử ta không tìm được đường tăng luồng Ký hiệu X là tập tất cả các đỉnh có thể đến được từ đỉnh s trong đồ thị Gf... được đặt trong khuyên tròn, luồng được ghi trên các cung Tìm luồng cực đại của mạng này Luồng f có đường đi (v0, v4), (v4, v6), (v6, v8) gồm các cung chưa bão hoà nên nó chưa đầy Do đó có thể nâng luồng của các cung này lên một đơn vị, để được f1 Do mỗi đường xuất phát từ v0 đến v8 đều chứa ít nhất một cung bão hoà, nên luồng f1 là luồng đầy.Song nó chưa phải là luồng cực đai Áp dụng thuật toán Ford-Fulkerson... tương ứng là khả năng thông qua và luồng trong mạng tính chất: Cho X và Y là hai tập con của đỉnh V, ta gọi khả năng thông qua từ X đến Y là: c(u, v) c(X,Y) = uX vY Và giá trị luồng thông từ X sang Y là: f(X,Y) = f (u, v) uX ,vY Định nghĩa 3: Luồng f* là luồng cực đại trong mạng nếu nó ứng với giá trị luồng val(f*) là lớn nhất 2.2 Lát cắt, đường tăng luồng Định nghĩa 1: (Định nghĩa lát cắt)