Thuật toán hình phễu tìm đường đi ngắn nhất giữa hai điểm trong đa giác đơn

44 22 0
Thuật toán hình phễu tìm đường đi ngắn nhất giữa hai điểm trong đa giác đơn

Đ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

BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC VINH _ NGUYỄN TUẤN ANH THUẬT TỐN HÌNH PHỄU TÌM ĐƯỜNG ĐI NGẮN NHẤT GIỮA HAI ĐIỂM TRONG ĐA GIÁC ĐƠN LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TIN NGHỆ AN, 2017 BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC VINH _ NGUYỄN TUẤN ANH THUẬT TỐN HÌNH PHỄU TÌM ĐƯỜNG ĐI NGẮN NHẤT GIỮA HAI ĐIỂM TRONG ĐA GIÁC ĐƠN Chuyên ngành: CÔNG NGHỆ THÔNG TIN Mã số: 60.48.02.01 LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TIN Người hướng dẫn khoa học: TS LÊ HỒNG TRANG NGHỆ AN, 2017 LỜI CAM ĐOAN Tôi xin cam đoan: Những kết nghiên cứu trình bày luận văn: “Thuật tốn hình phễu tìm đường ngắn hai điểm đa giác đơn” hoàn tồn trung thực, khơng vi phạm luật sở hữu trí tuệ pháp luật Việt Nam Nếu sai, tơi hồn toàn chịu trách nhiệm trước pháp luật TÁC GIẢ LUẬN VĂN Nguyễn Tuấn Anh LỜI CẢM ƠN Lời tơi xin bày tỏ lịng cảm ơn biết ơn chân thành tới tất người hỗ trợ, giúp đỡ tơi q trình thực luận văn tốt nghiệp Tôi xin cảm ơn Khoa Cơng nghệ Thơng tin, phịng Sau Đại học thầy cô giáo khoa giúp đỡ, tạo điều kiện thuận lợi nhất, hỗ trợ, giảng dạy giúp đỡ tơi q trình học tập làm luận văn tốt nghiệp Đặc biệt muốn gửi lời cảm ơn chân thành đến TS Lê Hồng Trang, người hướng dẫn, nhận xét, giúp đỡ để hồn thành luận văn Nhân đây, tơi xin kính chúc Thầy, Cơ giáo sức khỏe tiếp tục đạt nhiều thành công nghiên cứu khoa học nghiệp giảng dạy, chúc Khoa Công nghệ Thông tin ngày phát triển Mặc dù có nhiều cố gắng q trình thực luận văn khơng thể tránh khỏi thiếu sót, tơi mong nhận ý kiến đóng góp bổ sung thầy cô giáo bạn để luận văn tơi hồn thiện Tơi xin chân thành cảm ơn ! Hà Tĩnh, tháng 05 năm 2017 Học viên Nguyễn Tuấn Anh MỤC LỤC LỜI CẢM ƠN Danh mục ký hiệu .5 MỞ ĐẦU .6 Sự cần thiết vấn đề nghiên cứu .6 Mục tiêu nghiên cứu Đối tượng phạm vi nghiên cứu .6 Nội dung nghiên cứu Đặc điểm Phương pháp nghiên cứu .7 Kết cấu luận văn Chương 1: Kiến thức sở Chương 2: Thuật tốn Dijkstra thuật tốn tìm tiếp tuyến với đường gấp khúc lồi Chương 3: Thuật tốn tìm đường ngắn điểm đa giác đơn sử dụng kỹ thuật “phễu” Lee Preparata Chương KIẾN THỨC CƠ SỞ .9 1.1 Lý thuyết đồ thị độ phức tạp thuật toán 1.1.1 Định nghĩa đồ thị 1.1.2 Đường đồ thị .11 1.1.3 Một số tính chất đường đồ thị .12 1.1.4 Cây chu trình .12 1.2 Định nghĩa đa giác đơn đường gấp khúc 12 1.3 Phép tam giác phân đa giác .15 Chương THUẬT TOÁN DIJKSTRA VÀ THUẬT TỐN TÌM TIẾP TUYẾN VỚI MỘT ĐƯỜNG GẤP KHÚC LỒI .16 2.1 Thuật toán Dijstra 16 2.1.1 Thuật toán Dijkstra 16 2.1.2 Chứng minh tính đắn thuật tốn Dijkstra 17 2.1.3 Độ phức tạp thuật toán Dijkstra .18 2.2 Thuật tốn tìm tiếp tuyến với đường gấp khúc lồi 18 Chương THUẬT TỐN TÌM ĐƯỜNG ĐI NGẮN NHẤT GIỮA HAI ĐIỂM TRONG ĐA GIÁC ĐƠN SỬ DỤNG KỸ THUẬT “PHỄU” CỦA LEE VÀ PREPARATA 22 3.1 Cây đối ngẫu 22 3.2 Hình ống tay hình phễu 24 3.3 Thuật tốn tìm đường ngắn hai điểm hình ống tay 27 3.4 Chứng minh tính đánh giá độ phức tạp thuật tốn 29 3.4.1 Chứng minh tính đắn thuật toán .29 3.4.2 Đánh giá độ phức tạp thuật toán 31 3.5 Ví dụ minh họa 31 TÀI LIỆU THAM KHẢO 44 Danh mục ký hiệu [a, b] ab Đoạn thẳng nối điểm a b a1a2 ak Đường gấp khúc qua đỉnh a1, a2, , ak d(x, y) Khoảng cách Euclid hai điểm x, y dọc theo S length(x, y) Độ dài đoạn thẳng nối điểm x y SP(x, y) Đường ngắn từ x đến y L(x, y) Đường tùy ý từ điểm x đến y xyz Tam giác có đỉnh x, y, z MỞ ĐẦU Sự cần thiết vấn đề nghiên cứu Hình học tính tốn lĩnh vực nghiên cứu để tìm thuật tốn hiệu thực thi máy tính cho tốn hình học Trong hình học tính tốn thường giải tốn kinh tế, như: Tìm địa điểm để đặt nhà máy, đặt trạm điện, đặt bến xe, tìm đường ngắn cho tàu biển, Chính vai trị quan trọng ứng dụng tìm đường ngắn nên luận văn chúng tơi tập trung nghiên cứu thuật tốn để giải vấn đề Tìm đường ngắn hai điểm miền hình học vấn đề hình học tính tốn Điều có nhiều ứng dụng kỹ thuật rơbốt, kỹ thuật tự động, công nghiệp, thông tin địa lý, Thực tế thu hút nhiều nhà tốn học quan tâm nghiên cứu như: O’Rourke, Dijkstra, Preparata, Lee, Berg, Kreveld, Guibas, Hershberger, Leven, Với ưu điểm nên tơi chọn để tài “Thuật tốn hình phễu tìm đường ngắn hai điểm đa giác đơn” làm luận văn tốt nghiệp Luận văn tập trung nghiên cứu thuật tốn tìm đường ngắn hai điểm đa giác đơn không gian chiều Mục tiêu nghiên cứu Luận văn trình bày khái niệm đồ thị chứng minh tính chất chi tiết đồ thị, từ trình bày chi tiết thuật tốn tìm đường ngắn hai điểm đa giác đơn Lee Preparata Đối tượng phạm vi nghiên cứu - Nghiên cứu tìm hiểu vể lý thuyết đồ thị; - Nghiên cứu thuật tốn hình phễu Lee Preparata; - Nghiên cứu ngơn lập trình C cài đặt thuật tốn hình phễu Lee Preparata Nội dung nghiên cứu - Nghiên cứu thuật tốn hình phễu Lee Preparata; - Ưu điểm, nhược điểm thuật tốn hình phễu Lee Preparata; - Các ứng dụng thuật tốn hình phễu Lee Preparata Đặc điểm Phương pháp nghiên cứu Nghiên cứu, tìm hiểu số kiến thức lý thuyết đồ thị, phép tam giác phân đa giác, độ phức tạp thuật toán để làm kiến thức sở ban đầu Nghiên cứu hiểu rõ định nghĩa tính chất đối ngẫu phép tam giác phân đa giác đơn, hình ống tay, phễu thuật tốn xác định hình ống tay, thuật tốn phễu Lee preparata Chứng minh tính đắn thuật tốn phễu đưa ví dụ minh họa thuật tốn Nghiên cứu tài liệu thuật tốn hình phễu Lee Preparata sử dụng ngôn ngữ lập trình C cài đặt tốn chạy thử để đánh giá kết Kết cấu luận văn Luận văn trình bày chương: Chương 1: Kiến thức sở Trong chương chúng tơi trình bày số kiến thức lý thuyết đồ thị, phép tam giác phân đa giác Đây kiến thức sở cần thiết cho chương chương Chương 2: Thuật tốn Dijkstra thuật tốn tìm tiếp tuyến với đường gấp khúc lồi Trong chương chúng tơi trình bày thuật tốn: Thuật tốn Dijkstra, thuật tốn tìm tiếp tuyến với đường gấp khúc lồi xem chương trình thuật tốn tìm đường ngắn hai điểm đa giác đơn chương Chương 3: Thuật tốn tìm đường ngắn hai điểm đa giác đơn sử dụng kỹ thuật “phễu” Lee Preparata Chương trình bày chi tiết thuật toán sử dụng kỹ thuật phễu Lee Preparata báo đăng tạp chí Networks năm 1984 Nội dung chương trình bày cài đặt thuật toán, đưa nhận xét đánh giá thuật toán ub u0=vi(2) ua=s u u i j ua=s di j Ri+1 ua-1 ua+1 ub+1 ub-1 u Ri+1 di+1 u1 di (2) (2) (2) 𝑣𝑖+1 =vi(1)=ub 𝑣𝑖+1 di+1 (2) u0=𝑣𝑖 Hình 3.6: Trường hợp ( j ≤ a) 𝑣𝑖+1 Hình 3.7: Trường hợp ( j > a) Bắt đầu từ u0 duyệt đỉnh theo thứ tự từ u0, u1, , ub (2) gọi j số nhỏ cho 𝑣𝑖+1 uj tiếp tuyến với đường SP(s, vi(1)) ∪ SP(s, vi(2)) Ri Xét trường hợp: • Nếu j ≤ a (Hình 3.6) - Thực xóa tất đoạn ulul+1 với ≤ l ≤ j −1 (2) - Thêm vào SPi đoạn 𝑣𝑖+1 uj • Nếu j > a (Hình 3.7) - Thực xóa tất đoạn ulul+1 với ≤ l ≤ j −1 (2) - Thêm vào SPi đoạn 𝑣𝑖+1 uj - Đổi đỉnh Ri+1 thành uj Bước kết thúc Sau xây dựng SPn−3, đường chéo dn−3 chia P thành hai miền, hai miền chứa điểm đích y (2) - Gán 𝑣𝑛−2 := y - Áp dụng bước tổng quát với i = n − ta (1) SPn−2 = SP(x, 𝑣𝑛−2 ) ∪ SP(x, y) - SP(x, y) ⊂ SPn−2 28 Trong đó, đường thẳng l gọi tiếp tuyến với đường cong lồi C có điểm chung với C toàn điểm thuộc C nằm phía l Điểm chung gọi tiếp điểm 3.4 Chứng minh tính đánh giá độ phức tạp thuật toán 3.4.1 Chứng minh tính đắn thuật tốn Trong phần chúng tơi trình bày lại chi tiết chứng minh tính đắn thuật toán Mệnh đề 3.4.1 Tập đỉnh phễu với đỉnh nguồn x đỉnh đích y lập thành đường ngắn từ x đến y Chứng minh Kí hiệu i+1 (i = 1, 2, , n − 3) tam giác nằm P có hai cạnh hai đường chéo di di+1 Để chứng minh mệnh đề trên, ta cần với điểm u thuộc i+1, đường ngắn từ x tới u phải qua đỉnh s phễu Ri Xét đường gấp khúc SP(s, vi(1)) := Di(1) SP(s, vi(2)) := Di(2) - Nếu hai đường rỗng, đường cịn lại đường chéo di đỉnh s điểm cuối di Như đường ngắn từ x đến u SP(x, s) ∪ su, tức đường SP(x, u) phải qua đỉnh s - Nếu hai đường khác rỗng, xét đỉnh kề với đỉnh s hai đường Di(1) Di(2), P hình ống tay nên đỉnh kề đỉnh P Giả sử v’ ∈ Di(2) đỉnh kề với s đỉnh P, sv’ đường chéo P (có thể khơng phải đường chéo phép tam giác phân ban đầu) Giả sử sv’’ đoạn khác nằm P Do tính lồi hướng vào đường SP(s, vi(j)), j = 1, 2, đường thẳng qua sv’ sv’ giao với di chia miền tam giác i+1 thành nhiều miền con, điểm u thuộc miền Khơng tổng qt, giả thiết u nằm vị trí Hình 3.8 29 x SP(x, s) l(x, u) s p v' Di(2 vi(2) ) v ' p1 d i Di(1) di+1 u vi (1) i+1 Hình 3.8: Minh họa tính đắn thuật toán Giả sử tồn đường l(x, u) đường ngắn từ x đến u mà không qua đỉnh s, l(x, u) cắt sv’ điểm p ≠ s, l(x, u) cắt sv’’ điểm p1 Do tính chất l(x, u) đường ngắn nhất: length(l(x, p)) + length(l(p, p1)) < length(SP(x, s)) + length(sp1) (3.1) Trong l(p, p1) đường từ p đến p1 nằm l(x, u) Mặt khác, theo bất đẳng thức tam giác ta lại có: length(sp1) ≤ length(sp) + length(l(p, p1)), (3.2) length(SP(x, s)) + length(sp) > length(l(x, p)) (3.3) từ Cộng thêm vế (3.3) với length(pv’) ta được: length(SP(x, s)) + length(sv’) > length(l(x, p)) + length(pv’) (3.4) Do s đỉnh Ri với cách chọn v’ nên s, v’ ∈ SP(x, vi(2)), từ ta có length(SP(x, v’)) = length(SP(x, s)) + length(SP(s, v’)) 30 (3.5) Do ta chọn v’ đỉnh kề với s nên SP(s, v’) := sv’, thay vào (3.5) length(SP(x, v’)) = length(SP(x, s)) + length(sv’) (3.6) Tức đường ngắn từ x đến v’ phải qua s Nhưng theo (3.4), từ x đến v’ theo đường l(x, p)∪ pv’ có độ dài ngắn đường SP(x, s) ∪ sv’, từ mâu thuẫn với tính chất vừa SP(x, s) ∪ sv’ đường ngắn từ x tới v’ Như mệnh đề chứng minh Áp dụng mệnh đề với SPi := SPn−2 y := u Ta thấy đường ngắn (1) (2) từ x tới y phải qua đỉnh s SPn−2 = SP(x, 𝑣𝑛−2 ) ∪ SP(x, 𝑣𝑛−2 ) (2) Mặt khác, bước cuối thuật toán gán y := 𝑣𝑛−2 Vậy thuật toán chứng minh 3.4.2 Đánh giá độ phức tạp thuật toán Độ phức tạp thuật toán trường hợp xấu đánh sau: • Các bước khởi tạo kết thúc chi phí O(1) • Trong bước tổng quát, lần duyệt đỉnh ui kiểm tra có phải đỉnh phễu hay khơng chi phí O(1), đỉnh duyệt mà đỉnh phễu bị xóa suốt trình xây dựng hình phễu đỉnh khơng duyệt lại Vậy tổng thời gian để duyệt tất đỉnh tìm phễu số đỉnh bị xóa, trường hợp xấu số đỉnh bị xóa n − (trừ đỉnh nguồn đỉnh đích) với n số đỉnh đa giác, từ bước tổng quát thuật tốn chi phí O(n) Như tổng chi phí thuật tốn O(n) 3.5 Ví dụ minh họa Cho đa giác đơn P = hai điểm s t nằm P Hình 3.9 Hãy sử dụng thuật tốn Lee Preparata tìm đường ngắn hai điểm s t 31 s p5 p0 p4 p2 p1 p17 p3 t p6 p8 p7 p15 p16 p9 p13 p14 p10 p12 p11 Hình 3.9: Hình minh họa đa giác đơn P a Thực phép tam giác phân đa giác đơn P Ta thực phép tam giác phân đa giác đơn P cách phân chia đa giác P thành tam giác đường chéo không cắt P (xem mục 1.3 chương 1) minh họa Hình 3.10 s p5 p0 p4 p2 p1 p17 p3 t p8 p16 ` p15 p6 p7 p9 p13 p10 p14 p12 p11 Hình 3.10 Minh họa phép tam giác đa phân giác 32 b Tìm hình ống tay chứa đường ngắn từ s đến t Dựa vào Định nghĩa 3.1.1 ta xác định đối ngẫu phép tam giác phân đa giác P (minh họa Hình 3.11) s p5 p0 p4 p2 p1 p17 p3 t p8 ` p15 p16 p6 p7 p9 p13 p10 p14 p12 p11 Hình 3.11: Minh họa đối ngẫu Dựa vào DIJKSTRA(G, ∆(s), ∆(t)) ta xác định đường ngắn hai đỉnh ∆(s) ∆(t) đồ thị G (trong ∆(s), ∆(t) hai tam giác phép tam giác phân chứa hai điểm s, t) từ ta có hình ống tay (minh họa Hình 3.12 ) s p5 p0 p4 p2 p1 p17 p3 t p6 p8 p16 ` p15 p7 p9 p13 p10 p14 p12 p11 Hình 3.12: Minh họa hình ống tay 33 c Dựa vào thuật tốn hình phễu ta xác định đường ngắn từ s đến t Từ (a) (b) ta có tốn: Cho đa giác đơn P’ = hai điểm s t nằm P’ Hình 3.13 Hãy sử dụng thuật tốn Lee Preparata tìm đường ngắn hai điểm s t s p5 p0 p4 p2 d1 p17 p1 d2 p3 d10 d4 d3 p16 d11 d12 d9 p15 t p8 d5 d6 d p6 p7 d8 p9 p13 p10 p14 p12 p11 Hình 3.13 Minh họa đa giác đơn P’ Chúng ta kí hiệu đỉnh phễu CUSP(F) đường ngắn từ x đến y Π(x,y), x tập đỉnh đa giác P’ v tập đỉnh phễu Bước 1: (Minh hoạ Hình 3.14) Đối với đường chéo d1 , ta có F = [p0, s, p17 ]; CUSP(F) := s; với x = p1, Π(s, p1) := sp1, v := s Khi đó: F1 = [p0, s, p1]; F2 = [p1, s, p17] Ta có p1p17 đường chéo nên F = [p1, s, p17] 34 p5 s p0 p4 p2 d1 p17 p1 d2 d3 d10 p3 d4 d9 p15 t p8 d5 p16 d11 d12 ` d7 d6 d8 p6 p7 p9 p13 p10 p14 p12 p11 Hình 3.14 Hình minh họa bước Bước 2: (Minh hoạ Hình 3.15) F = [p1, s, p17]; với x = p15, v := s, Π(s, p15) := sp15 Khi đó: F1 = [p1, s, p15]; F2 = [p15, s, p17] Ta có p1p15 = d3 đường chéo nên F = [p1, s, p15] p5 s p0 p4 p2 d1 p17 p1 d2 p3 d4 d9 d3 ` d6 d p15 t p8 d5 p16 d11 d12 d10 p6 p7 d8 p9 p13 p10 p14 p12 p11 Hình 3.15 Hình minh họa bước 35 Bước 3: (Minh hoạ Hình 3.16) F = [p1, s, p15]; với x = p13, v := s, Π(s, p13) := sp13 Khi đó: F1 = [p2, p1, s, p13]; F2 = [p13, s, p15] Ta có p2p13 = d5 đường chéo nên F = [p2, p1, s, p13] s p5 p0 p4 p2 d1 p17 p1 d2 d4 d9 d3 d5 p15 p16 d11 d12 d10 p3 t p8 ` d6 d p6 p7 d8 p9 p13 p10 p14 p12 p11 Hình 3.16 Hình minh họa bước Bước 4: (Minh hoạ Hình 3.17) Đối với đường chéo d5, d6 ta có: F = [p2, p1, s, p13, p12 ]; v := s p5 s p0 p4 p2 d1 p17 p1 d2 d3 p3 d9 d4 d5 p16 d11 d12 d10 p15 t p8 ` d6 d p6 p7 d8 p9 p13 p10 p14 p12 p11 Hình 3.17 Hình minh họa bước 36 Bước 5: (Minh hoạ Hình 3.18) F = [p2, p1, s, p13, p12]; với x = p3, p3p1 tiếp tuyến F p1v := p1, Π(s, p3) := Π(s, p1) ∪ p3p1 Khi đó: F1 = [p2, p1, p3]; F2 = [p3, p1, s, p13, p12] Ta có p3p12 = d7 đường chéo nên F = [p3, p1, s, p13, p12] p5 s p0 p4 p2 d1 p1 p17 d10 p3 d2 d9 d4 d3 p15 d6 ` d7 d8 p6 t p8 d5 p16 d11 d12 p7 p9 p13 p10 p14 p12 p11 Hình 3.18 Hình minh họa bước Bước 6: (Minh hoạ Hình 3.19) F = [p3, p1, s, p13, p12]; với x = p9, p9p1 tiếp tuyến F p1v := p1, Π(s, p9) := sp1 ∪ p1p9 Khi đó: F1 = [p3, p1, p9]; F2 = [p9, p1, s, p13, p12] Ta có p3p9 = d8 đường chéo nên F = [p3, p1, p9]; CUSP(F) := p1 p5 s p0 p4 p2 d1 p17 p1 d2 d4 d9 d3 t p8 d5 p16 d11 d12 d10 p3 ` d6 d p15 p6 p7 d8 p9 p13 p10 p14 p12 p11 Hình 3.19 Hình37 minh họa bước Bước 7: (Minh hoạ Hình 3.20) Với x = p8, Khi đó: F1 = [p4, p3, p8]; F2 = [p8, p3, p1, p9] Ta có p4p8 = d9 đường chéo nên F = [p4, p3, p8]; CUSP(F) := p3 p5 s p0 p4 p2 d1 p17 p1 d2 d10 p3 d11 d12 d4 d9 d3 ` d6 d p15 p16 t p8 d5 p6 p7 d8 p9 p13 p10 p14 p12 p11 Hình 3.20 Hình minh họa bước Bước 8: (Minh hoạ Hình 3.21) F1 = [p4, p3, p8]; Với x = p5, v := p3 Khi đó: Π(s, p5) := Π(s, p3) ∪ p3p5; F1 = [p4, p3, p5]; F2 = [p5, p3, p8] Ta có p5p8 = d11 đường chéo nên F = [p5, p3, p8]; CUSP(F) := p3; với F = [p5, p3, p8, p7] ta có Π(s, p5) := Π(s, p3) ∪ p3p5 p5 s p0 p4 p2 d1 p17 p1 d2 p3 d4 d9 d3 ` d6 d p15 t p8 d5 p16 d11 d12 d10 p6 p7 d8 p9 p13 p10 p14 p12 p11 Hình 3.21 Hình minh họa bước 38 Bước 9: (Minh hoạ Hình 3.22) F = [p5, p3, p8, p7] Với x = t, tp8 tiếp tuyến củp F p8; v: = p8 Khi đó: Π(s, t) := Π(s, p3) ∪ p3p8 ∪ p8t Vậy đường ngắn từ s tới t là: [s, p1, p3, p8, t] s p5 p0 p4 p2 d1 p17 p1 d2 p3 d10 d9 d4 d3 d5 p16 d11 d12 p15 t p8 ` d6 d d8 p6 p7 p9 p13 p10 p14 p12 p11 Hình 3.22 Hình minh họa bước 3.6 Thực thi thuật toán Thuật toán Lee Preparata thực thi ngôn ngữ C++ biên dịch chạy máy Laptop HP Probook 640 G1/ Intel Core i5 Processor/14" Display/4GB Dữ liệu đa giác đơn sinh ngẫu nhiên mặt phẳng Việc tam giác phân thực thuật toán Cắt tai (ear removal) [6] thuật toán Dijkstra dùng để tìm đường ngắn đối ngẫu Thuật toán thử nghiệm với nhiều tập liệu Chúng tơi trình bày ví dụ tìm đường ngắn hai đỉnh đa giác đơn gồm 40 đỉnh Các đỉnh đa giác sinh ngẫu nhiên theo phân bố hình chữ nhật 0×100 Trong ví dụ này, liệu đầu vào cho dạng tệp txt với định dạng sau: - dịng đầu tiên: kích thước liệu, - dịng thứ hai toạ độ điểm xuất phát, - dòng thứ ba toạ độ điểm xuất phát, 39 - dòng toạ độ đỉnh đa giác đơn theo thứ tự chiều kim đồng hồ Nội dung tệp liệu cho 100 0.166353 93.783501 0.166353 4.254050 10.606400 12.696700 30.675501 41.221001 41.768101 43.912800 45.834202 60.260700 61.214600 64.095901 64.877998 70.012199 72.189697 73.591698 75.453102 76.000801 89.224701 52.833500 89.224701 63.408100 90.542900 82.026703 77.421303 87.276398 88.798897 44.117802 97.393700 94.265999 85.200302 62.292900 77.492104 78.166100 88.542297 33.409599 63.665001 90.623802 83.572197 93.783501 85.214600 84.178902 83.394402 78.359200 74.278397 57.272301 53.077702 46.998199 40.480301 27.413401 26.301300 23.660500 23.332001 18.890400 13.541500 13.385700 6.657280 1.378190 69.722000 52.833500 2.874830 3.752000 13.901700 34.860500 29.641399 25.202600 24.841900 0.345944 18.909000 0.887441 39.284901 60.614201 39.757999 8.512810 71.880402 2.967820 34.124298 9.969760 Hình 3.23 Minh hoạ cho ví dụ thực thi Trong Hình 3.23 đỉnh đa giác đơn (simple polygon) ký hiệu điểm tròn Đường ngắn (shortest path) tìm chương trình đường gấp khúc nối đỉnh ký hiệu bời điểm vuông 40 KẾT LUẬN Luận văn tập trung nghiên cứu thuật tốn tìm đường ngắn điểm miền hình học Trong thuật tốn tìm đường ngắn điểm đa giác đơn trình bày lại theo thuật tốn Lee Preparata Tóm tắt kết mà luận văn đạt sau: - Trình bày lại khái niệm lý thuyết đồ thị, thuật toán, đa giác đơn đường gấp khúc, phép tam giác phân đa giác - Trình bày khái niệm đối ngẫu, hình ống tay, phễu đa giác đơn phễu dãy mặt tam giác - Trình bày thuật tốn Dijkstra, thuật tốn tìm tiếp tuyến với đường cong lồi - Trình bày bước chi tiết, chứng minh tính đắn đánh giá độ phức tạp thuật tốn tìm đường ngắn điểm đa giác đơn sử dụng kỹ thuật phễu Lee Preparata - Trình bày bước chi tiết, chứng minh tính đắn đánh giá độ phức tạp thuật toán tìm đường ngắn điểm đa giác đơn sử dụng kỹ thuật phễu Lee Preparata - Thực thi thuật tốn ngơn ngữ C++ thử nghiệm với liệu ngẫu nhiên 43 TÀI LIỆU THAM KHẢO Tiếng việt [1] H C Thành L T Vĩnh, Bài giảng lý thuyết đồ thị áp dụng [2] N H Ngự, Lý thuyết đồ thị, NXB Đại Học Quốc Gia Hà Nội, (2001) [3] Đ Đ Giao, Toán rời rạc, NXB Giáo Dục, (2007) Tiếng Anh [4] Hales T C (2007), Jordan’s Proof of the Jordan Curve Theorem, Studies in Logic, Grammar and Rhetoric, 10 (23), pp 45-60 [5] D T Lee and F P Preparata (1984), Euclidean Shortest Paths in the Presence of Rectilinear Barriers, Networks, Vol 14 (3), pp 393-410 [6] O’Rourke J (2004), Computational Geometry in C, second edition, Cambridge University Press [7] Toponogo and Victor Andreevich (2006), Differential Geometry of Curves and Surfaces: A Concise Guide, Springer, ISBN: 9780817643843 [8] L Guibas, J Hershberger, D Leven, M Sharir, and R E Tarjan (1987), Linear-Time Algorithms for Visibility and Shortest Path Problems Inside Triangulated Simple Polygons, Algorithmica, Vol 2, pp 209-233 44 ... Với ưu đi? ??m nên tơi chọn để tài ? ?Thuật tốn hình phễu tìm đường ngắn hai đi? ??m đa giác đơn? ?? làm luận văn tốt nghiệp Luận văn tập trung nghiên cứu thuật tốn tìm đường ngắn hai đi? ??m đa giác đơn không... Dijkstra, thuật tốn tìm tiếp tuyến với đường gấp khúc lồi xem chương trình thuật tốn tìm đường ngắn hai đi? ??m đa giác đơn chương Chương 3: Thuật tốn tìm đường ngắn hai đi? ??m đa giác đơn sử dụng kỹ thuật. .. nằm hệ số góc hai cạnh kề ui y := ui u0 x ui=y ua ub Hình 2.6: Tiếp đi? ??m y trùng với ui 21 Chương THUẬT TỐN TÌM ĐƯỜNG ĐI NGẮN NHẤT GIỮA HAI ĐI? ??M TRONG ĐA GIÁC ĐƠN SỬ DỤNG KỸ THUẬT “PHỄU” CỦA LEE

Ngày đăng: 10/02/2021, 21:57

Từ khóa liên quan

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

  • Đang cập nhật ...

Tài liệu liên quan