Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 27 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
27
Dung lượng
478 KB
Nội dung
MỤC LỤC LỜI MỞ ĐẦU .2 ĐẠI CƯƠNG VỀ ĐỒ THỊ Các khái niệm .4 1.1 Đồ thị vô hướng đồ thị có hướng 1.2 Bậc, nửa bậc vào, nửa bậc .5 1.3 Đường đi, chu trình, tính liên thông Biểu diễn đồ thị 2.1 Ma trận kề 2.1.1 Đồ thị vô hướng 2.1.2 Đồ thị có hướng 2.2 Danh sách cạnh (cung) 2.3 Danh sách kề Thuật toán Floyd-Warshall tìm đường ngắn cặp đỉnh đồ thị có trọng số 10 BÀITOÁNCỰCTIỂUTỔNGVÀCỰCTIỂUTRỊLỚNNHẤT 13 Bàitoáncựctiểutổngcựctiểutrịlớn .13 Thuật toáncựctiểutổngcựctiểutrịlớn 13 2.1 Thuật toáncựctiểutổng .13 2.2 Thuật toáncựctiểutrịlớn 13 Độ phức tạp thuật toán 14 Ví dụ .14 THIẾT KẾ VÀ CÀI ĐẶT CHƯƠNG TRÌNH 16 Thiết kế cấu trúc liệu 16 Cài đặt giải thuật tìm cựctiểutổngcựctiểutrịlớn 16 Chương trình C++ 18 Chương trình C# .22 KẾT LUẬN .26 TÀI LIỆU THAM KHẢO 27 Đồ án môn học Toánứng dụng Bàitoáncựctiểutổngcựctiểutrịlớn LỜI MỞ ĐẦU Trong Toán học Tin học, lý thuyết đồ thị có vai trò quan trọng, nghiên cứu tính chất đồ thị - tập đối tượng gọi đỉnh (hoặc nút) nối với cạnh (hoặc cung) Cạnh có hướng vô hướng, cạnh gán số gọi trọng số Đồ thị thường vẽ dạng tập điểm (các đỉnh) nối với đoạn thẳng (các cạnh) Trong thực tế, đồ thị biểu diễn nhiều cấu trúc Đồ thị biểu diễn mạng lưới giao thông, sở quan trọng đỉnh, đường chúng cạnh, độ dài đường trọng số Đồ thị biểu diễn mạng lưới Internet, máy chủ đỉnh, đường truyền cạnh số thời gian di chuyển độ rộng đường truyền đó,… Trong toán tìm địa điểm trung tâm để đặt sở dịch vụ (trường học, bưu điện, phòng cháy chữa cháy, vị trí đặt máy chủ, ) cho kinh tế hiệu có nhiều ứng dụng thực tế Bàitoán thường mô hình hoá mạng lưới dạng đồ thị, sở bố trí vài vị trí Nếu sở quan trường học, bưu điện nên đặt chúng vị trí cho tổng khoảng cách vùng khác đến sở nhỏ Lớp toàn gọi Bàitoáncựctiểutổng (minsum problem) Mặt khác, sở quan phòng cháy chữa cháy, nên đặt chúng vị trí cho khoảng cách từ sở đến điểm xa cộng đồng nhỏ Lớp toán gọi Bàitoáncựctiểutrịlớn (minmax problem) Trong giới hạn đề tài này, tìm hiểu khái niệm đồ thị, nghiên cứu cài đặt thuật toán để giải toán Chúng xin chân thành cảm ơn PGS.TSKH Trần Quốc Chiến giảng dạy, hướng dẫn tận tình cung cấp tài liệu tham khảo quý báu để hoàn thành đề tài Nhóm học viên thực Mai Xuân Phú Trần Hữu Phước Huỳnh Thị Hiền Thắm Hoàng Tiến Sơn GVHD: PGS.TSKH Trần Quốc Chiến Trang Đồ án môn học Toánứng dụng Bàitoáncựctiểutổngcựctiểutrịlớn YÊU CẦU CỦA ĐỀ TÀI ĐỀ TÀI 3: BÀITOÁNCỰCTIỂUTỔNGVÀCỰCTIỂUTRỊLỚNNHẤT Trình bày toáncựctiểutổngcựctiểutrịlớn Trình bày thuật toán tìm cựctiểutổngcựctiểutrịlớn Thiết kế cấu trúc liệu giải thuật tìm cựctiểutổngcựctiểutrịlớn Viết chương trình cài đặt thuật toán tìm, cựctiểutổngcựctiểutrịlớn ngôn ngữ C THÀNH VIÊN NHÓM VÀ ĐÁNH GIÁ NHẬN XÉT T T Họ tên Huỳnh Thị Hiền Thắm Trần Hữu Phước Hoàng Tiến Sơn Mai Xuân Phú Công việc (theo mục lục) - Viết chương - Tổng hợp báo cáo - Bàitoán đề tài - Chuẩn bị slide báo cáo - Bàitoán đề tài - Chuẩn bị slide báo cáo - Thiết kế cài đặt chương trình - Viết chương GVHD: PGS.TSKH Trần Quốc Chiến Chữ ký Nhận xét giáo viên Trang Đồ án môn học Toánứng dụng Bàitoáncựctiểutổngcựctiểutrịlớn CHƯƠNG ĐẠI CƯƠNG VỀ ĐỒ THỊ Các khái niệm 1.1 Đồ thị vô hướng đồ thị có hướng Đồ thị vô hướng G = (V,E) gồm tập V đỉnh tập E cạnh Mỗi cạnh e ∈ E liên kết với cặp đỉnh v, w (không kể thứ tự) v w e Ví dụ: Đồ thị có hướng G = (V,E) gồm tập V đỉnh tập E cạnh có hướng gọi cung Mỗi cung e ∈ E liên kết với cặp đỉnh (v, w) có thứ tự v w e Ví dụ: Cho đồ thị có hướng G=(V, E) Nếu ta thay cung G cạnh, đồ thị vô hướng nhận gọi đồ thị lót đồ thị có hướng G Ghi chú: Đồ thị vô hướng coi đồ thị có hướng cạnh e=(v,w) tương ứng với hai cung (v,w) (w,v) Cho đồ thị (có hướng vô hướng) G = (V,E) Nếu cạnh e liên kết đỉnh v, w ta nói cạnh e liên thuộc đỉnh v, w, đỉnh v, w liên thuộc cạnh e, đỉnh v, w đỉnh biên cạnh e đỉnh v kề đỉnh w Nếu có cạnh e liên kết với cặp đỉnh v, w , ta viết e=(v,w) Nếu e cung v gọi đỉnh đầu w gọi đỉnh cuối cung e Nếu có nhiều cạnh liên kết với cặp đỉnh ta nói cạnh song song Cạnh có hai đỉnh liên kết trùng gọi khuyên GVHD: PGS.TSKH Trần Quốc Chiến Trang Đồ án môn học Toánứng dụng Bàitoáncựctiểutổngcựctiểutrịlớn Đỉnh không kề với đỉnh khác gọi đỉnh cô lập Số đỉnh đồ thị gọi bậc đồ thị, số cạnh số cung đồ thị gọi cỡ đồ thị Đồ thị hữu hạn đồ thị có bậc cỡ hữu hạn Đồ thị đơn đồ thị khuyên cạnh song song Đồ thị vô hướng đủ đồ thị mà cặp đỉnh kề Đồ thị có hướng đủ đồ thị có đồ thị lót đủ 1.2 Bậc, nửa bậc vào, nửa bậc Cho đồ thị G = (V, E) Giả sử đỉnh v∈V có p khuyên q cạnh liên thuộc (không phải khuyên) Khi bậc đỉnh v 2p + q ký hiệu degG (v) đơn giản deg(v) Số bậc đỉnh lớn G ký hiệu Δ(G), số bậc đỉnh nhỏ G ký hiệu δ(G) Từ định nghĩa suy đỉnh cô lập đồ thị đơn đỉnh có bậc Đỉnh có bậc gọi đỉnh treo Cho G=(V,E) đồ thị có hướng, v∈V Nửa bậc đỉnh v, ký hiệu degO(v), số cung từ đỉnh v (v đỉnh đầu), nửa bậc vào đỉnh v∈V, ký hiệu degI(v), số cung tới đỉnh v (v đỉnh cuối) Ví dụ: Trong đồ thị ta có deg(x1) = 6; deg(x2) = deg(x3) = 4; deg(x4) = 3; deg(x5) = 0; deg(x6) = Đỉnh x1 có hai khuyên liên thuộc Có hai cạnh song song liên thuộc đỉnh x2 x3 Đỉnh x5 đỉnh cô lập Đỉnh x6 đỉnh treo Ví dụ: Xét đồ thị có hướng sau: x2 x1 GVHD: PGS.TSKH Trần Quốc Chiến x6 x4 Trang Đồ án môn học Toánứng dụng Bàitoáncựctiểutổngcựctiểutrịlớn x3 x5 Trong đồ thị có hướng ta có degI(x1) = 0; degO(x1) = 2; degI(x2) = 1; degO(x2) = 2; degI(x3) = 2; degO(x3) = 1; degI(x4) = 2; degO(x4) = 2; degI(x5) = 1; degO(x5) = 1; degI(x6) = 2; degO(x6) = 0; 1.3 Đường đi, chu trình, tính liên thông Cho đồ thị G=(V,E) Dây µ từ đỉnh v đến đỉnh w tập hợp đỉnh cạnh nối tiếp đỉnh v kết thúc đỉnh w Số cạnh dây µ gọi độ dài dây µ Dây µ từ đỉnh v đến đỉnh w độ dài k biểu diễn sau µ = (v, e1, v1, e2, v2, , vk-1, ek, w) vi (i = 1, , k-1) đỉnh dây e i (i=1, ,k-1) cạnh dây liên thuộc đỉnh kề trước sau Các đỉnh cạnh dây lặp lại Đường từ đỉnh v đến đỉnh w dây từ đỉnh v đến đỉnh w, cạnh không lặp lại Đường sơ cấp đường không qua đỉnh lần Ghi chú: Trong đồ thị n đỉnh, đường sơ cấp hai đỉnh khác có nhiều n-1 cạnh Vòng dây có đỉnh đầu đỉnh cuối trùng Chu trình đường có đỉnh đầu đỉnh cuối trùng Chu trình sơ cấp chu trình không qua đỉnh lần Ghi chú: Trong đồ thị n đỉnh, chu trình sơ cấp có nhiều n cạnh Dây có hướng đồ thị có hướng dãy đỉnh cung nối tiếp (e 1, e2, ,ek) thoả mãn đỉnh cuối cung ei đỉnh đầu cung ei+1 , i=1, ,k-1 Đường có hướng đồ thị có hướng dây có hướng, cung không lặp lại Đường có hướng sơ cấp đường có hướng không qua đỉnh lần Vòng có hướng dây có hướng có đỉnh đầu đỉnh cuối trùng Chu trình có hướng đường có hướng có đỉnh đầu đỉnh cuối trùng Chu trình có hướng sơ cấp chu trình có hướng không qua đỉnh lần Đồ thị vô hướng gọi liên thông, cặp đỉnh có đường nối chúng với Đồ thị có hướng gọi liên thông mạnh, cặp đỉnh (u,v) tồn đường có hướng từ u đến v từ v đến u GVHD: PGS.TSKH Trần Quốc Chiến Trang Đồ án môn học Toánứng dụng Bàitoáncựctiểutổngcựctiểutrịlớn Đồ thị có hướng gọi bán liên thông, với cặp đỉnh (u,v) tồn đường có hướng từ u đến v từ v đến u Đồ thị có hướng gọi liên thông yếu, đồ thị lót (vô hướng) liên thông Ghi Đồ thị liên thông mạnh ⇒ Đồ thị bán liên thông ⇒ Đồ thị liên thông yếu Biểu diễn đồ thị 2.1 Ma trận kề 2.1.1 Đồ thị vô hướng Cho đồ thị vô hướng G=(V,E) có n đỉnh theo thứ tự v 1,v2, , Ma trận kề đồ thị G ma trận vuông A=(a ịj)nxn, aij số cạnh (khuyên) nối vi với vj Lưu ý tính bậc đỉnh khuyên tính hai bậc Từ định nghĩa suy ma trận kề đồ thị vô hướng đối xứng qua đường chéo Ví dụ: v1 v2 v3 v4 v5 có ma trận kề là: v1 0 v1 v2 v3 v4 v5 v2 1 v3 v4 0 0 v5 1 1 2.1.2 Đồ thị có hướng Cho đồ thị có hướng G=(V,E) có n đỉnh theo thứ tự v 1, v2, , Ma trận kề đồ thị G ma trận vuông A=(a ịj)nxn, aij số cung từ vi tới vj Ví dụ: v2 v6 e1 v1 e4 e6 e3 e2 v4 e8 e5 e7 v3 Đồ thị có ma trận kề là: v5 v1 v2 v3 v4 v5 v6 v1 GVHD: PGS.TSKH Trần Quốc Chiến 1 0 Trang Đồ án môn học Toánứng dụng Bàitoáncựctiểutổngcựctiểutrịlớn v2 0 1 0 v3 0 0 v4 0 0 1 v5 0 0 v6 0 0 0 2.2 Danh sách cạnh (cung) Trong trường hợp đồ thị thưa (đồ thị có n đỉnh m cạnh cung thoả mãn m < 6n) người ta thường dùng cách biểu diễn đồ thị dạng danh sách cạnh (cung) Trong cách biểu diễn đồ thị danh sách cạnh (cung) lưu trữ danh sách tất cạnh (cung) đồ thị vô hướng (có hướng) Một cạnh (cung) e=(x,y) đồ thị tương ứng với hai biến Dau[e], Cuoi[e] Như vậy, để lưu trữ đồ thị ta cần sử dụng 2m đơn vị nhớ Nhược điểm cách biểu diễn để xác định đỉnh đồ thị kề với đỉnh cho trước phải làm cỡ m phép so sánh (khi duyệt qua danh sách tất cạnh cung đồ thị) Chú ý: Trong trường hợp đồ thị có trọng số ta cần thêm m đơn vị nhớ để lưu trữ trọng số cạnh Ví dụ: Đồ thị v1 v2 v3 v4 v5 có danh sách cạnh (v1, v2), (v1, v5), (v2, v3), (v2, v5), (v3, v3), (v3, v5), (v4, v5) lưu trữ mảng Đầu[e], Cuối[e], e=1, 7, sau: Cạn h Đầu Cuối v1 v2 v1 v5 v2 v3 v2 v5 v3 v3 v3 v5 v4 v5 Ví dụ: Xét đồ thị có hướng sau v2 e1 v1 v6 e4 e3 e6 v4 e2 e5 v3 GVHD: PGS.TSKH Trần Quốc Chiến e8 e7 v5 Trang Đồ án môn học Toánứng dụng Bàitoáncựctiểutổngcựctiểutrịlớn Đồ thị có danh sách cung [v1, v2], [v1, v3], [v2, v4], [v2, v3], [v3, v4], [v4, v6], [v4, v5], [v5, v6] lưu trữ mảng Đầu[e], Cuối[e], e=1, 8, sau: Cung Đầu Cuối v1 v2 v1 v3 v2 v4 v2 v3 v3 v4 v4 v6 v4 v5 v5 v6 2.3 Danh sách kề Trong nhiều vấn đề ứng dụng lý thuyết đồ thị, cách biểu diễn đồ thị dạng danh sách kề cách biểu diễn thích hợp Trong cách biểu diễn này, với đỉnh v đồ thị lưu trữ danh sách đỉnh kề với nó, mà ta ký hiệu Ke(v) = { u ∈ V | (v,u)∈ E} Khi vòng lặp thực với phần tử danh sách theo thứ tự phần tử xếp viết sau: Với u ∈ Ke(v) Sau ví dụ danh sách kề liên kết Ví dụ: Đồ thị Có danh sách kề liên kết là: Ví dụ: Đồ thị có hướng GVHD: PGS.TSKH Trần Quốc Chiến Trang Đồ án môn học Toánứng dụng Bàitoáncựctiểutổngcựctiểutrịlớn Có danh sách kề liên kết là: Thuật toán Floyd-Warshall tìm đường ngắn cặp đỉnh đồ thị có trọng số Thuật toán Floyd-Warshall tìm đường ngắn cặp đỉnh đồ thị (có hướng) có trọng số ◊ Đầu vào Đồ thị G=(V,E,w), V= {1, 2, , n}, có trọng số với cung (i,j) ◊ Đầu Ma trận D=[d(i,j)]nxn, d(i,j) chiều dài đường ngắn từ i đến j với cặp (i,j) Ma trận P=[p(i,j)]nxn dùng để xác định đường ngắn ◊ Phương pháp (1) Bước khởi tạo: Ký hiệu D0 ma trận xuất phát D0 = [d0(i,j)] d0(i,j) = w(i,j) tồn cung (i,j) d 0(i,j) = +∞ không tồn cung (i,j) (đặc biệt khuyên i d0(i,i) = +∞) P0 = [p0(i,j)] p0(i,j) = j có cung từ i đến j p 0(i,j) không xác định cung từ i đến j Gán k:=0; (2) Kiểm tra kết thúc: Nếu k=n, kết thúc D=Dn ma trận độ dài đường ngắn nhất, P=Pn Ngược lại, k dk−1(i,k) + dk−1(k,j), đặt dk(i,j) := dk−1(i,k) + dk−1(k,j) pk(i,j) := pk−1(i,k) ngược lại đặt dk(i,j) := dk−1(i,j) GVHD: PGS.TSKH Trần Quốc Chiến Trang 10 Đồ án môn học Toánứng dụng Bàitoáncựctiểutổngcựctiểutrịlớn CHƯƠNG BÀITOÁNCỰCTIỂUTỔNGVÀCỰCTIỂUTRỊLỚNNHẤTBàitoáncựctiểutổngcựctiểutrịlớn Trong toán tìm địa điểm trung tâm để đặt sở dịch vụ (trường học, bưu điện, phòng cháy chữa cháy, vị trí đặt máy chủ, ) cho kinh tế hiệu có nhiều ứng dụng thực tế Bàitoán thường mô hình hoá mạng lưới dạng đồ thị, sở bố trí vài vị trí Nếu sở quan trường học hay bưu điện nên đặt chúng vị trí cho tổng khoảng cách vùng khác đến sở nhỏ Lớp toàn gọi Bàitoáncựctiểutổng (minsum problem) Mặt khác, sở quan phòng cháy chữa cháy, nên đặt chúng vị trí cho khoảng cách từ sở đến điểm xa cộng đồng nhỏ Lớp toán gọi Bàitoáncựctiểutrịlớn (minmax problem) Thuật toáncựctiểutổngcựctiểutrịlớn 2.1 Thuật toáncựctiểutổng ◊ ◊ ◊ Đầu vào: Trọng đồ G = (V,E,c), V = {1, 2, , n}, với trọng số cạnh không âm Đầu ra: N cựctiểutổnglớn nhất, {v 1, v2,…, vm} tập đỉnh cựctiểutổnglớn Phương pháp: (1) Tìm D = [d(i,j)] ma trận khoảng cách nhỏ G (bằng thuật toán FloydWarshal, d(i,i)=0, ∀i) (2) Tìm S = [s(i)] danh sách tổng hàng (∀i ∈ V), s(i) tổng phần tử hàng i ma trận D (3) Kết quả: • Cựctiểutổnglớn nhất: N = min(s(i)), ∀i ∈ V • Tập đỉnh cựctiểutrịlớn nhất: {vi | s(i) ≤ N, ∀i ∈ V} (4) Kết thúc 2.2 Thuật toáncựctiểutrịlớn ◊ ◊ ◊ Đầu vào: Trọng đồ G = (V,E,c), V = {1, 2, , n}, với trọng số cạnh không âm Đầu ra: M cựctiểutrịlớn nhất, {v 1, v2,…, vm} tập đỉnh cựctiểutrịlớn Phương pháp: GVHD: PGS.TSKH Trần Quốc Chiến Trang 13 Đồ án môn học Toánứng dụng Bàitoáncựctiểutổngcựctiểutrịlớn (5) Tìm D = [d(i,j)] ma trận khoảng cách nhỏ G (bằng thuật toán FloydWarshal, d(i,i)=0, ∀i) (6) Tìm L = [l(i)] danh sách độ lệch tâm (∀i ∈ V), l(i) phần tử lớn hàng i ma trận D (7) Kết quả: • Cựctiểutrịlớn nhất: M = min(l(i)), ∀i ∈ V • Tập đỉnh cựctiểutrịlớn nhất: {vi | l(i) ≤ M, ∀i ∈ V} (8) Kết thúc Độ phức tạp thuật toán Độ phức tạp tính toán bước thuật toán: Bước (1): thuật toán Floyd-Warshall có độ phức tạp tính toán O(n3) nên thuật toán có độ phức tạp O(n3), với n = |V| số đỉnh đồ thị Bước (2): tìm phần tử lớn hàng ma trận D, sử dụng thuật toán tìm kiếm thông thường hàng có độ phức tạp O(n2) Bước (3): thực chất tìm kiếm phần tử nhỏ mảng L danh sách đỉnh thỏa mãn l(i) ≤ M nên độ thức tạp O(n) Như vậy, độ phức tạp thuật toán tìm cựctiểutrịlớn O(n3), với n = |V| số đỉnh đồ thị Ví dụ Tìm đỉnh cựctiểu tổng, cựctiểutrịlớn đồ thị sau: với trọng số tất cạnh Giải Sử dụng thuật toán Floyd-Warshal tìm ma trận khoảng cách ngắn đồ thị: 0 1 2 D = 3 4 4 4 1 3 1 2 1 1 2 2 4 3 2 1 2 2 0 Độ lệch tâm đỉnh tương ứng L = {4, 3, 2, 3, 4, 4, 4} GVHD: PGS.TSKH Trần Quốc Chiến Trang 14 Đồ án môn học Toánứng dụng Bàitoáncựctiểutổngcựctiểutrịlớn Từ mảng L ta tìm giá trị nhỏ M = (cực tiểutrịlớn nhất), đỉnh có l(3) ≤ nên đỉnh đỉnh cựctiểu độ lệch tâm tâm đồ thị {3} Tổng hàng tương ứng 18, 13, 10, 9, 14, 14, 14 (N=9) Như đỉnh đỉnh cựctiểutổng tập đỉnh cựctiểutổng {4} GVHD: PGS.TSKH Trần Quốc Chiến Trang 15 Đồ án môn học Toánứng dụng Bàitoáncựctiểutổngcựctiểutrịlớn CHƯƠNG THIẾT KẾ VÀ CÀI ĐẶT CHƯƠNG TRÌNH Thiết kế cấu trúc liệu Để giải toán “Tìm cựctiểutrịtổngcựctiểutrịlớn nhất” nhóm đề xuất sử dụng cấu trúc liệu sau: Danh sách cạnh để biểu diễn đồ thị vô hướng có trọng số không âm - Danh sách mảng chiều có m phần tử (là số cạnh đồ thị); phần tử danh sách có liệu ghi (struct) gồm field dau để ghi nhận đỉnh đầu cạnh, cuoi để ghi nhận đỉnh cuối cạnh, trongso để ghi nhận trọng số cạnh - Dau, cuoi có giá trị từ 1, ,n kí hiệu đỉnh; trongso=wij có cạnh nối từ i đến j wij=0 i=i; trongso=∞ cạnh nối từ i đến j (i≠j) typedef struct Canh { int dau; int cuoi; int trongso; }; Canh C[100]; Mảng chiều để lưu trọng số, khoảng cách đường đường (nếu cần) cặp đỉnh typedef int matran[100][100]; Mảng chiều để lưu độ lệch tâm đỉnh đồ thị typedef int dslechtam[100]; Cài đặt giải thuật tìm cựctiểutổngcựctiểutrịlớn Một số hàm cài đặt thuật toán: Đường nhỏ cặp đỉnh đồ thị (thuật toán Floyd_Warshall): Từ ma trận trọng số D thông qua thuật toán ta tìm ma trận Dn ma trận đường nhỏ cặp đỉnh void Floyd_Warshall(matran D,matran Dn,matran duongdi,int n) { //KHOI TAO for (int i=0;i[...]... ngắn nhất giữa các đỉnh Chẳng hạn, để tìm đường đi từ đỉnh d đến đỉnh c ta làm như sau: Đặt i1 := P(d,c) = b; i2 := P(b,c) = c Từ đó ta nhận được đường đi ngắn nhất từ d đến c: d→b→c với độ dài là 8 GVHD: PGS.TSKH Trần Quốc Chiến Trang 12 Đồ án môn học Toánứng dụng Bàitoáncựctiểutổngvàcựctiểutrịlớnnhất CHƯƠNG 2 BÀITOÁNCỰCTIỂUTỔNGVÀCỰCTIỂUTRỊLỚNNHẤT 1 Bàitoáncựctiểutổngvàcực tiểu. .. 10, 9, 14, 14, 14 (N=9) Như vậy đỉnh 4 là đỉnh cựctiểutổng duy nhấtvà tập đỉnh cựctiểutổng là {4} GVHD: PGS.TSKH Trần Quốc Chiến Trang 15 Đồ án môn học Toánứng dụng Bàitoáncựctiểutổngvàcựctiểutrịlớnnhất CHƯƠNG 3 THIẾT KẾ VÀ CÀI ĐẶT CHƯƠNG TRÌNH 1 Thiết kế cấu trúc dữ liệu Để giải quyết bàitoán “Tìm cựctiểutrịtổngvàcựctiểutrịlớnnhất nhóm đề xuất sử dụng cấu trúc dữ liệu như sau:... án môn học Toán ứng dụng Bàitoán cực tiểutổngvàcựctiểutrịlớnnhất Ngược lại, chương trình sẽ xuất hiện thông báo sau khi không giải được bàitoán (trường hợp đồ thị không liên thông) • Lưu đồ thị ra file: Nhấn nút sổ chọn tên tập tin và thư mục để lưu GVHD: PGS.TSKH Trần Quốc Chiến , chương trình sẽ xuất hiện cửa Trang 24 Đồ án môn học Toán ứng dụng Bàitoán cực tiểutổngvàcựctiểutrịlớn nhất. .. là tổng các phần tử trên hàng i của ma trận D (3) Kết quả: • Cựctiểutổnglớn nhất: N = min(s(i)), ∀i ∈ V • Tập các đỉnh cựctiểutrịlớn nhất: {vi | s(i) ≤ N, ∀i ∈ V} (4) Kết thúc 2.2 Thuật toáncựctiểutrịlớnnhất ◊ ◊ ◊ Đầu vào: Trọng đồ G = (V,E,c), trong đó V = {1, 2, , n}, với trọng số cạnh không âm Đầu ra: M là cựctiểutrịlớn nhất, và {v 1, v2,…, vm} là tập các đỉnh cựctiểutrịlớn nhất. .. tương ứng là L = {4, 3, 2, 3, 4, 4, 4} GVHD: PGS.TSKH Trần Quốc Chiến Trang 14 Đồ án môn học Toán ứng dụng Bàitoán cực tiểutổngvàcựctiểutrịlớnnhất Từ mảng L ta tìm được giá trị nhỏ nhất là M = 2 (cực tiểutrịlớn nhất) , chỉ đỉnh 3 có l(3) ≤ 2 nên đỉnh 3 là đỉnh cựctiểu độ lệch tâm duy nhấtvà tâm đồ thị là {3} Tổng các hàng tương ứng là 18, 13, 10, 9, 14, 14, 14 (N=9) Như vậy đỉnh 4 là đỉnh cực. .. Trang 13 Đồ án môn học Toán ứng dụng Bàitoán cực tiểutổngvàcựctiểutrịlớnnhất (5) Tìm D = [d(i,j)] là ma trận khoảng cách nhỏ nhất của G (bằng thuật toán FloydWarshal, d(i,i)=0, ∀i) (6) Tìm L = [l(i)] là danh sách độ lệch tâm (∀i ∈ V), trong đó l(i) là phần tử lớnnhất trên hàng i của ma trận D (7) Kết quả: • Cựctiểutrịlớn nhất: M = min(l(i)), ∀i ∈ V • Tập các đỉnh cựctiểutrịlớn nhất: {vi |... cho tổng khoảng cách các vùng khác nhau đến cơ sở là nhỏ nhất Lớp bàitoàn này gọi là Bàitoáncựctiểutổng (minsum problem) Mặt khác, nếu các cơ sở là các cơ quan như phòng cháy chữa cháy, thì nên đặt chúng ở các vị trí sao cho khoảng cách từ cơ sở đến điểm xa nhất của cộng đồng là nhỏ nhất Lớp bàitoán này gọi là Bàitoáncựctiểutrịlớnnhất (minmax problem) 2 Thuật toáncựctiểutổngvàcực tiểu. .. sách cạnh sắp xếp theo thứ tự đỉnh đầu và đỉnh cuối • Cho phép lưu đồ thị đã vẽ trên vùng làm việc vào file và mở lại đồ thị từ file đã lưu trước đó GVHD: PGS.TSKH Trần Quốc Chiến Trang 22 Đồ án môn học Toánứng dụng Bàitoáncựctiểutổngvàcựctiểutrịlớnnhất • Giải bàitoánCựctiểutrịlớnnhất cho đồ thị đang hiển thị tại vùng làm việc ◊ Hướng dẫn sử dụng: • Vẽ đỉnh: nhấn chuột lên vùng làm... là giá trịlớnnhất trong mỗi hàng của ma trận đường đi Dn L[i] là độ lệch tâm của đỉnh i (i=1,2,…,n) void tinhdolechtam(matran Dn,dslechtam L, int n) { int t; for (int i=0;i