Tiểu luận môn toán ứng dụng trong công nghệ thông tin Bài toán chọn địa điểm

27 419 0
Tiểu luận môn toán ứng dụng trong công nghệ thông tin Bài toán chọn địa điểm

Đ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

Toán ứng dụng điểm Bài toán chọn địa MỤC LỤC GIỚI THIỆU .2 ĐỀ TÀI .3 CHƯƠNG I ĐẠI CƯƠNG VỀ ĐỒ THỊ I Các khái niệm đồ thị II Đường đi, chu trình, tính liên thông III Biểu diễn đồ thị .6 Ma trận kề .6 Ma trận liên thuộc Danh sách cạnh (cung) Danh sách kề CHƯƠNG II THUẬT TỐN TÌM ĐƯỜNG ĐI NGẮN NHẤT TRÊN ĐỒ THỊ 11 I Thuật toán tìm đường ngắn 11 Bài tốn tìm đường ngắn 11 Thuật toán Dijkstra .11 Thuật toán Floyd-Warshall 12 CHƯƠNG III BÀI TOÁN CỰC TIỂU TỔNG, CỰC TIỂU TRỊ LỚN NHẤT TRÊN ĐỒ THỊ 15 I Bài tốn tìm cực tiểu tổng, cực tiểu trị lớn đồ thị 15 Bài toán cực tiểu tổng đồ thị 15 Bài toán cực tiểu trị lớn đồ thị 15 Dữ liệu vào cho hai toán cực tiểu tổng cực tiểu trị lớn đồ thị 15 II Thuật tốn tìm cực tiểu tổng, cực tiểu trị lớn đồ thị 16 Thuật toán tìm cực tiểu tổng đồ thị .16 Thuật tốn tìm cực tiểu trị lớn đồ thị 17 CHƯƠNG IV THIẾT KẾ VÀ CÀI ĐẶT CHƯƠNG TRÌNH 18 I Thiết kế cấu trúc liệu giải thuật tìm cực tiểu tổng, cực tiểu trị lớn 18 II Cài đặt chương trình .18 KẾT LUẬN 22 TÀI LIỆU THAM KHẢO 23 Tiểu luận nhóm Tốn ứng dụng điểm Bài toán chọn địa GIỚI THIỆU Lý thuyết đồ thị lĩnh vực có từ lâu có nhiều ứng dụng đại Những tư tưởng lý thuyết đồ thị đề xuất vào năm đầu kỹ 18 nhà toán học lỗi lạc người Thụy Sỹ Lenhard Eurle Chính ơng người sử dụng đồ thị để giải toán tiếng cầu thành phố Konigsberg Đồ thị sử dụng để giải toán nhiều lĩnh vực khác Chẳng hạn, dùng đồ thị mạng máy tinh sử dụng để xác định hai máy tính mạng trao đổi thơng tin với hay khơng Đồ thị có trọng số cạnh sử dụng để giải tốn như: Tìm đường ngắn hai thành phố mạng giao thông Chúng ta sử dụng đồ thị để giải tốn lập lịch, thời khóa biểu, phân bố tần số cho trạm phát truyền hình… nhiều lĩnh vực khác Trong tiểu luận nhóm chúng tơi trình bày “Bài tốn chọn địa điểm” Tiểu luận nhóm 2 Tốn ứng dụng điểm Bài toán chọn địa ĐỀ TÀI: Bài toán chọn địa điểm NHÓM: 05 người STT Họ tên Công việc (theo mục lục) Chữ ký Nhận xét giáo viên Trần Lương Vương Lê Công Vượng Đặng Ngọc Tuấn Nguyễn Nương Quỳnh Lê Nam Trung Tiểu luận nhóm Tốn ứng dụng điểm Bài tốn chọn địa CHƯƠNG I ĐẠI CƯƠNG VỀ ĐỒ THỊ I Các khái niệm đồ thị - Đồ thị vô hướng G = (V,E) gồm tập V đỉnh tậo 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ự) - Đồ 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ự Cho đồ thị có hướng G=(V, E) Nếu thay cung G cạnh, đồ thị vô hướng nhận gọi đồ thị lót G Đồ 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 đỉ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 co nhiều cạnh liên kết với cặp đỉnh ta nói cạnh song song Tiểu luận nhóm Toán ứng dụng Bài toán chọn địa điểm - Cạnh có hai đỉnh liên kết trung gọi khuyê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ị - Bậc đỉnh vV tổng số cạnh liên thuộc với ký hiệu d(v) Nếu đỉnh có khun khun tính tính bậc Từ định nghĩa suy đỉnh cô lập đồ thị đơn đỉnh có bậc Đỉnh treo đỉnh có bậc - Cho G=(V,E) đồ thị có hướng, v  V Nửa bậc đỉnh v, ký hiệu dO(v), số cung từ đỉnh v (v đỉnh đầu), nửa bậc vào đỉnh v, ký hiệu dI(v), số cung tới đỉnh v (v đỉnh cuối) II Đường đi, chu trình, tính liên thông Cho đồ thị G=(V,E) Dãy  từ đỉnh v đến đỉnh w dãy đỉ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 n biểu diễn sau:  = (v, e1, v1, e2, v2, , vn-1, en, w) Trong vi (i = 1, ,n-1) đỉnh dãy ei (i = 1, ,n) 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 q lần - 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 khoonh qua đỉnh lần - Dãy có hướng đồ thị có hướng dãy đỉnh cung nối tiếp (e1, e2, , en) thỏa mãn đỉnh cuối cung ei đỉnh đầu cung ei+1, i = 1, ,n-1 Tiểu luận nhóm Toán ứng dụng Bài toán chọn địa điểm - Đườ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 q 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ị có 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 có đường có hướng nối chúng với - Đồ thị có hướng gọi liên thơng yếu, đồ thị lót (vơ hướng) liên thơng - Đồ 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ị con: Cho đồ thị G=(V,E) Đồ thị G'=(V',E') gọi đồ thị phủ G V'  V & E'  E Nếu V’ = V, G’ gọi đồ thị phủ G Đồ thị G'=(V',E') đồ thị (có hướng) G=(V,E) gọi thành phần liên thông (mạnh) đồ thị G, tức không tồn đồ thị liên thông (mạnh) G”=(V”,E”)  G’ G thỏa V’  V”, E’  E” III Biểu diễn đồ thị Ma trận kề * Đồ 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 vng A=(a Þj)nxn, aij số cạnh nối vi với vj Lưu ý khun tính cạnh Tiểu luận nhóm Toán ứng dụng Bài toán chọn địa điểm Từ định nghĩa suy ma trận kề đồ thị vô hướng đối xứng qua đường chéo Ví dụ Xét đồ thị vơ hướng v1 v2 v3 v4 v5 có ma trận kề v1 0 v1 v2 v3 v4 v5 v2 1 v3 v4 0 0 v5 1 1 * Đồ thị có hướng Cho đồ thị có hướng G=(V,E) có n đỉnh theo thứ tự v1, v2, , Ma trận kề đồ thị G ma trận vng A=(aij)nxn, aij số cung từ vi tới vj Ví dụ Xét đồ thị có hướng v2 v6 e1 v1 e4 e3 e6 v4 e2 e8 e5 e7 v3 v5 có ma trận kề v1 v1 v2 v3 v4 v5 v6 Ma trận liên thuộc Tiểu luận nhóm v2 0 0 v3 1 0 0 v4 1 0 v5 0 0 v6 0 1 Toán ứng dụng Bài toán chọn địa điểm * Đồ thị vơ hướng Cho đồ thị G=(V,E) có n đỉnh, V={v1, v2, , vn} m cạnh E={e1, e2, , em} Ma trận liên thuộc đồ thị G ma trận A=(aÞj)nxm thỏa mãn 1, đỉnh vi liên thuộc cạnh ej aij = 0, đỉnh vi khơng liên thuộc cạnh ej Ví dụ Xét đồ thị v1 e1 v2 e3 e4 e2 e5 v3 e7 v4 e6 v5 có ma trận liên thuộc e1 1 0 e2 0 e3 0 e3 e4 e4 1 0 e5 0 1 e6 0 1 e7 0 0 v1 v2 v3 v4 v5 * Đồ thị có hướng Cho đồ thị có hướng khơng khun G=(V,E) có n đỉnh, V={v 1, v2, , vn} m cung E={e1, e2, , em} Ma trận liên thuộc đồ thị G ma trận A=(aij)nxm thỏa mãn1, đỉnh vi đỉnh đầu cung ej aÞj = -1, đỉnh vi đỉnh cuối cung ej 0, đỉnh vi không liên thuộc cung ej Ví dụ Xét đồ thị có hướng v2 v6 e1 e4 e6 v1 v4 e3 e8 e2 e5 e7 v3 v5 có ma trận liên thuộc v1 v2 Tiểu luận nhóm e1 -1 e2 e5 0 e6 0 e7 0 e8 0 Toán ứng dụng điểm Bài toán chọn địa v3 v4 v5 0 -1 0 -1 0 -1 -1 0 0 -1 0 v6 0 0 -1 -1 Danh sách cạnh (cung) Trong trường hợp đồ thị thưa (đồ thị có n đỉnh m cạnh cung thỏa 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) Cách biểu diễn đồ thị danh sách cạnh (cung) ta 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) dồ 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 ta phải làm cỡ m phép so sánh (khi duyệt qua danh sách tất cạnh cung đồ thị) 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ụ Xét đồ thị vơ hướng: v1 v2 v3 v4 v5 Có danh sách cạnh là: (v1, v2), (v1, v5), (v2, v3), (v2, v5), (v3, v3), (v3, v5), (v4, v5) Được lưu trữ mảng dau[e], cuoi[e] với e = 1, ,7 sau Cạnh Đầu V1 V1 V2 Cuối V2 V5 V3 Ví dụ Xét đồ thị có hướng: v2 e1 v1 e3 Tiểu luận nhóm V2 V5 V3 V3 V3 V5 V4 V5 v6 e4 e6 v4 e8 Toán ứng dụng điểm Bài toán chọn địa e2 e5 e7 v3 v5 có danh sách cung (v1, v2), (v1, v3), (v2, v3), (v2, v4), (v3, v4), (v4, v5), (v4, v6), (v5, v6) Được lưu trữ mảng dau[e], cuoi[e] với e = 1, ,8 sau Cung Đầu V1 V1 V2 V2 V3 V4 V4 V5 Cuối V2 V3 V3 V4 V4 V5 V6 V6 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ó, 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) Ví dụ: Xét đồ thị vơ hướng: v1 v2 v3 v4 có danh sách kề là: Ke[1] Ke[2] Ke[3] Ke[4] Tiểu luận nhóm v5 nil nil nil nil 2l nil 10 Toán ứng dụng điểm Bài toán chọn địa CHƯƠNG II THUẬT TỐN TÌM ĐƯỜNG ĐI NGẮN NHẤT TRÊN ĐỒ THỊ I Thuật tốn tìm đường ngắn Bài tốn tìm đường ngắn Bài tốn tìm đường ngắn toán quan trọng Lý thuyết đồ thị, áp dụng để giải nhiều toán thực tế điều khiển tối ưu, giao thông vận tải, mạng viễn thông Phát biểu tốn: Cho đồ thị có trọng số G = (V,E,w) Ký hiệu w(i,j) trọng số cạnh (i,j) Độ dài đường μ = v0 → v1→ v2 →…→ vn-1 → n Là tổng trọng số L(μ) =  w(v i , vi ) i 1 Cho hai đỉnh a z đồ thị Bài tốn đặt tìm đường ngắn từ a đến z Thuật toán Dijkstra Thuật giải tìm đường ngắn từ đỉnh a đến đỉnh z đồ thị có trọng số Trọng số cạnh (i,j) w(i,j) > đỉnh x mang nhãn L(x) Khi kết thúc thuật giải L(z) chiều dài ngắn từ a đến z Thuật tốn: Đầu vào: Đồ thị G = (V,E,w) có trọng số w(i,j) > với cạnh (i,j), đỉnh a z Đầu ra: L(z) chiều dài đường ngắn từ a đến z, đường ngắn (nếu có) Phương pháp: B1 Khởi tạo: Gán L(a) = Với đỉnh x ≠ a gán L(x) := ∞ Đặt T := V B2 Tính m = min{L(u)| u  T} Nếu m = +∞, kết thúc, kết luận khơng có đường từ a đến z Ngược lại, m < +∞, chọn v  T cho L(v) = m Đặt T := T – {v} Tiểu luận nhóm 13 Tốn ứng dụng Bài toán chọn địa điểm B3 Nếu z = v, kết thúc, L(z) chiều dài đường ngắn từ a đến z Từ z lần ngược theo đỉnh ghi nhớ ta có đường ngắn Ngược lại, z ≠ v, sang bước B4 Với x  T kề sau v, L(x) > L(v) + w(v,x), gán L(x) := L(v) + w(v,x) Và ghi nhớ đỉnh v cạnh đỉnh x để sau xây dựng đường ngắn Quay bước Chứng minh: Ký hiệu đỉnh v chọn Bước v0 = a, v1, ,vm = z Ta chứng minh quy nạp rắng L(v i) độ dài đường ngắn từ a đến vi, i = 1, ,m - Bước sở: Hiển nhiên L(v1) độ dài ngắn từ a đến v1 - Bước quy nạp: Giả thiết L(vi) độ dài đường ngắn từ a đến vi với i < k Ta chứng minh L(vk) độ dài đường ngắn từ a đến vk Gọi P đường ngắn từ a đến vk có độ dài l(P) Các đỉnh P trừ vk phải thuộc S = {v1, v2, , vk-1} Giả sử, ngược lại, gọi u đỉnh P không thuộc S v thuộc S đỉnh trước u Hiển nhiên L(u) ≤ L(v) + w(v,u) < L(vk) Nên u phải bị loại khỏi T bước trước v k, tức u thuộc S Đây điều mâu thuẫn Gọi vh đỉnh trước vk P Theo cách tính lại nhãn ta có L(vk) ≤ L(vh) + w(vh,vk) = l(P) Suy ra, L(vk) độ dài đường ngắn từ a đến vk Thuật tốn Floyd-Warshall Thuật tốn tìm đường ngắn cặp đỉnh đồ thị (có hướng) có trọng số Thuật tốn: Tiểu luận nhóm 14 Toán ứng dụng Bài toán chọn địa điểm Đầu vào: Đồ thị G = (V,E,w), V = {1,2, ,n} có trọng số vợi cung (i,j) Đầu ra: Ma trận D = [d(i,j)], d(i,j) chiều dài đường ngắn từ i đến j với cặp (i,j) Phương pháp: B1 Khởi tạo: Ký hiệu D0 ma trận xuất phát D0 = [d0(i,j)] Trong d0(i,j) = w(i,j) tồn cung (i,j) d0(i,j) = +∞ không tồn cung (i,j) (đặc biệt khơng có khun i d0(i,j) = +∞) P0 = [p0(i,j)] Trong p0(i,j) = j có cung từ i đến j p0(i,j) khơng xác định khơng có cung từ i đến j Gán k := B2 Kiểm tra kết thúc: Nếu k = n, kết thúc D = D n ma trận độ dài đường ngắn nhất, P = Pn Ngược lại, k < n, tăng k lên đơn vị sang bước B3 Tính ma trận Dk Pk theo Dk-1 Pk-1: Với cặp (i,j), i = n, j = n thực hiện: Nếu dk-1(i,j) > 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) pk(i,j) = pk-1(i,j) Quay lại bước Phương pháp xác định đường ngắn từ đỉnh i đến đỉnh j: Đường ngắn từ i đến j gồm dãy đỉnh: i, i1, i2, i3, …, ik, ik+1,…, im, j Thỏa mãn i1 = p(i,j), i2 = p(i1,j),…, ik+1 = p(ik,j), …,j = p(im,j) Chứng minh: * Chứng minh D ma trận độ dài đường ngắn Tiểu luận nhóm 15 Toán ứng dụng Bài toán chọn địa điểm Ta chứng minh, quy nạp theo k, mệnh đề sau: dk(i,j) chiều dài đường ngắn đường nối đỉnh i đến j qua đỉnh trung gian {1, 2, …, k} - Bước sở: Hiển nhiên mệnh đề với k = - Bước quy nạp: Giả sử mệnh đề với k-1 Xét dk(i,j) Sẽ xảy hai trường hợp sau: a) Trong đường nối đỉnh I với j qua đỉnh trung gian {1, 2, …,k-1, k} có chiều dài ngắn nhất, tồn đường p không qua đỉnh k Khi p đường ngắn nối đỉnh I với j qua đỉnh trung gian {1, 2, …, k-1}, nên theo giả thiết quy nạp dk-1(i,j) = d(p)

Ngày đăng: 23/03/2015, 15:38

Từ khóa liên quan

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

Tài liệu liên quan