1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Một số lớp mở rộng của môđun nội xạ và môđun xạ ảnh

51 11 0

Đ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

1 Lời nói đầu Hình học tính toán lĩnh vực nghiên cứu để tìm thuật toán hiệu thực thi máy tính cho toán đợc biểu diễn ngôn ngữ hình học Hình học tính toán thờng giải toán kinh tế nh: Xác định địa điểm để đặt nhà máy, đặt trạm điện, đặt bến xe, đặt trờng học; xác định đờng ngắn cho tàu biển, lập trình cho rôbôt điện tử, Bài toán thờng gặp Hình học tính toán xác định bao lồi tập hữu hạn điểm mặt phẳng đa giác đơn Các nhà toán học đà đa nhiều thuật toán tối u để xác định bao lồi tập hợp hữu hạn điểm mặt phẳng, đờng gấp khúc không tự cắt đa giác đơn, chẳng hạn thuật toán Graham thuật toán Melkman Bài toán xác định convex rope hai điểm a b (theo thứ tự ngợc chiều kim đồng hồ chiều kim đồng hồ) đa giác đơn P có n đỉnh (a, b đỉnh P), có ứng dụng lớn thực tiễn nh lập trình cho rôbôt mở độ rộng bàn tay cầm nắm vật Xác định convex rope vấn đề đợc nhiều nhà toán học quan tâm chẳng hạn Peshkin Sanderson (xem [15]) Các thuật toán xác định bao lồi đa giác đơn nh: Thuật toán Graham, thuật toán Melkman, không thành công xác định convex rope (xem [6]) Năm 1986, thuật toán xác định convex rope có độ phức tạp O( n ) đợc trình bày [15] Năm 1987, thuật toán xác định convex rope có độ phức tạp O(n) sử dụng phơng pháp tam giác phân miền đa giác xác định bao lồi đa giác đơn đợc trình bày [8] Năm 1990, thuật toán xác định convex rope có độ phức tạp O(n) đợc trình bày [10] sử dụng phơng pháp tam giác phân miền đa giác đơn P Từ đó, đặt toán: Có thể đa thuật toán có độ phức tạp thời gian tuyến tính xác định convex rope mà không sử dụng thuật toán tam giác phân nh không cần xác định bao lồi đa giác đơn? Năm 2008, PGS TS Phan Thành An đa thuật toán tuyến tính xác định convex rope theo thứ tự ngợc chiều kim đồng hồ (tơng ứng chiều kim đồng hồ) hai điểm a b đa giác đơn P mà không sử dụng thuật toán tam giác phân nh không cần xác định bao lồi đa giác đơn; không phụ thuộc vào vị trí số đỉnh đờng biên P từ a đến b theo thứ tự chiều kim đồng hồ Thuật toán đợc lập trình ngôn ngữ C chạy thử nghiệm với data điểm ngẫu nhiên (xem [6]) Trong luận văn này, trình bày chi tiết nội dung báo [6] PGS TS Phan Thành An Luận văn đợc trình bày chơng Chơng 1: Kiến thức sở Trong chơng này, trình bày số kiến thức làm sở cho luận văn: Định nghĩa tập lồi, bao lồi, điểm cực biên số tính chất bản; định nghĩa đa giác đơn, đờng gấp khúc convex rope; độ phức tạp thuật toán; trình bày thuật toán xác định tiếp tuyến đa giác lồi thuật toán tăng dần xác định bao lồi tập hữu hạn điểm mặt phẳng Chơng 2: So sánh thuật toán Melkman scan thuật toán Graham Chơng bao gồm phần sau: Trình bày chi tiết thuật toán Graham xác định bao lồi tập hữu hạn điểm; trình bày chi tiết thuật toán Melkman xác định bao lồi đờng gấp khúc không tự cắt; so sánh tính hữu hiệu thuật toán Melkman scan thuật toán Graham xác định bao lồi đờng gấp khúc không tự cắt Chơng 3: Thuật toán tuyến tính xác định convex rope không sử dụng tam giác phân Đây chơng thể kết luận văn gồm vấn đề: Trình bày chi tiết thuật toán tuyến tính xác định convex rope hai điểm a b đa giác đơn P theo thứ tự ngợc chiều kim đồng hồ, giải vấn đề không sử dụng thuật toán tam giác phân nh không cần xác định bao lồi đa giác đơn; phát biểu chứng minh vài tính chất convex rope; chứng minh tính đắn thuật toán xác định convex rope đa ví dụ minh họa; giải thích thuật toán Melkman scan thuật toán Graham không xác định đợc convex rope đa ví dụ minh hoạ Luận văn đợc hoàn thành Đại học Vinh, tháng 12 - 2009, d−íi sù h−íng dÉn cđa PGS TS Phan Thµnh An Tác giả xin bày tỏ lòng biết ơn sâu sắc tới thầy - ngời đà đặt vấn đề hớng dẫn tác giả Tác giả xin chân thành cảm ơn PGS TS Nguyễn Hữu Quang, PGS TS Phạm Ngọc Bội, TS Nguyễn Duy Bình thầy Khoa Đào tạo Sau Đại học Trờng Đại học Vinh, Viện Toán học đà giảng dạy, quản lí giúp đỡ tác giả suốt trình học tập nghiên cứu Tác giả gửi lời cảm ơn chân thành tới cán giáo viên Trờng THPT huyện Mờng Lát, tập thể K15 Hình học - Tôpô, gia đình, bạn bè, đồng nghiệp đà giúp đỡ động viên tác giả trình hoàn thành luận văn Mặc dù đà cố gắng trình học tập, nghiên cứu tham khảo nhiều tài liệu nh tham khảo ý kiến trình viết hoàn thành luận văn, nhng luận văn khó tránh khỏi thiếu sót Rất mong nhận đợc ý kiến đóng góp hội đồng chấm luận văn Thạc sĩ Toán học - Trờng Đại học Vinh ý kiến trao đổi đồng nghiệp nội dung luận văn Vinh, tháng 12 năm 2009 Tác giả Chơng Kiến thức sở Trong luận văn này, giả thiết chiều với tôpô tự nhiên với hai điểm p, q n n không gian ¥clit thùc n ; λ ∈ [0, 1], chóng ta kÝ hiÖu: [p, q] :={(1-λ)p +λq: ≤ λ ≤ 1}, [p, q[ :=[p, q] \{q}, ]p, q[ :=[p, q[ \{p} 1.1 Tập lồi, bao lồi, điểm cực biên 1.1.1 Tập lồi 1.1.1.1 Định nghĩa (xem [16]) n Tập A đợc gọi lồi x , y A [x, y] A 1.1.1.2 Định nghĩa (xem [3]) Cho x n , x đợc gọi tỉ hỵp låi cđa x1 , , xm ∈ λi ∈ (i = 1, …, m) vµ m ∑ λi = cho x = i =1 n nÕu tån t¹i λi ≥ , m ∑λ x i =1 i i 1.1.1.3 MƯnh ®Ị (xem [3]) n Giả sử A tập lồi ( I tập số đó) Khi ®ã A = ∩ Aα lµ tËp låi α ∈I 1.1.1.4 Mệnh đề (xem [3]) Giả sử A n lµ tËp låi vµ x1 , , xm ∈ A Khi ®ã víi mäi λi ∈ , λi ≥ m (i = 1,…, m) cho ∑λ i =1 i m = th× ∑ λ x ∈A i =1 i i Chøng minh: Ta chøng minh b»ng ph−¬ng pháp quy nạp Nếu m = 2, với , λ2 ≥ 0, λ1 , λ2 ∈ , λ1 + λ2 = ; x1 , x2 ∈ A Theo (Định nghĩa 1.1.1.1) ta có x1 + x2 A Giả sử mệnh đề với m = k, ∀k ≥ , ta cÇn chøng minh mƯnh ®Ị ®óng víi m = k + 1, nghÜa lµ k +1 ∀x , …, x k +1 ∈ A; ∀λi ≥ , λi ∈ k +1 th× x := ∑λ x i =1 i i (i = 1, 2, …, k +1) vµ ∑λ i =1 i =1 A Không tính tổng quát ta giả sử k +1 < (vì λk +1 = th× λ1 = = λk , suy x ∈ A) Khi ®ã − λk +1 = λ1 + + λk > 0, suy λi ≥ (i = 1, … , k) − λk +1 V× = k λ1 k i + + = nên theo giả thiết quy n¹p, − λk +1 − λk +1 i =1 − λk +1 k y := ta ®Ỉt λi ∑1− λ i =1 x i ∈ A k +1 Víi y, xk +1 ∈ A, − λk +1 > vµ (1 − λk +1 ) + λk +1 = 1, ®ã x = ( − λk +1 )y + λk +1x k +1 A 1.1.2 Bao lồi 1.1.2.1 Định nghĩa (xem [16]) Cho tËp A kh«ng gian n , giao cđa tất tập lồi chứa A đợc gọi bao låi cđa A, kÝ hiƯu lµ convA 1.1.2.2 NhËn xÐt (xem [16]) i convA lµ tËp låi nhá nhÊt chøa A ii A lµ tËp låi vµ chØ A = convA 1.1.2.3 MƯnh ®Ị (xem [16]) ConvA tập hợp tất tổ hợp lồi A Chứng minh: Giả sử F tập tất tổ hợp lồi A Vì convA tập lồi, nên theo (Nhận xét 1.1.2.2) A convA theo (Mệnh đề 1.1.1.4) F convA Tiếp theo, để chứng minh convA F, ta cần chứng minh F lµ tËp låi ThËt vËy, lÊy x, y ∈ F, x = ∑ α a , y = ∑ β b ; a ,b i∈I i i j∈I j j i j ∈ A, ∀i , j ∈I vµ ∑α i ∈I i = 1, ∑β j ∈I j = 1, víi mäi α i , β j ≥ ; ∀i , j ∈I Víi ≤ λ ≤ 1, ta xÐt ( − λ )x + λ y = ( − λ ) ∑α i + λ i ∈I ∑ (1 − ) Mặt khác, ta có: i I i + ∑β b j j ∈I ∑ λβ j ∈I j j = ∑ (1 − λ )α a i i i ∈I = (1 − λ ) ∑α i + λ i ∈I + ∑ λβ b j j∈I ∑β j ∈I j j = V× vËy ( − λ )x + λ y ∈ A, F tập lồi Mặt khác A F mà convA tập lồi nhỏ chứa A nên convA ⊂ F VËy F = convA 1.1.2.4 HƯ qu¶ TËp A låi vµ chØ A chøa tÊt tổ hợp lồi 1.1.3 Điểm cực biên 1.1.3.1 Định nghĩa (xem [1]) Ta gọi x M điểm cực biên tập lồi M nÕu x ∈ [ y ; z ] ; y , z M x y x z 1.1.3.2 Định nghĩa (xem [16]) Điểm x M đợc gọi điểm cực biên cđa tËp M nÕu x kh«ng thĨ biĨu diƠn d−íi dạng tổ hợp lồi thực hai điểm thuộc M 1.1.3.3 Nhận dạng điểm cực biên (xem [16]) Giả sử S tập hợp hữu hạn điểm mặt phẳng Ta có số dấu hiệu nhận dạng điểm cực biên convS nh sau: i Ta gọi điểm cao S điểm mà có tung độ lớn Trong điểm cao điểm có hoành độ lớn điểm có hoành độ nhỏ điểm cực biên convS ii Ta gọi ®iĨm thÊp nhÊt cđa S lµ ®iĨm mµ cã tung độ nhỏ Trong điểm thấp điểm có hoành độ lớn điểm có hoành độ nhỏ điểm cực biên convS iii Ta gọi điểm xa bên phải S điểm mà có hoành độ lớn Trong điểm xa điểm có tung độ lớn điểm có tung độ nhỏ điểm cực biên convS iiii Ta gọi điểm xa bên trái S điểm mà có hoành độ nhỏ Trong điểm xa điểm có tung độ lớn điểm có tung độ nhỏ điểm cực biên convS 1.1.3.4 Ví dụ: Trong , M đoạn thẳng điểm cực biên hai đầu mút, M tam giác điểm cực biên đỉnh tam giác Chú ý tập hợp điểm cực biên tập lồi hữu hạn, chẳng hạn hình tròn đóng (theo chuẩn Euclide mặt phẳng) điểm nằm biên điểm cực biên hình tròn 1.2 Độ phức tạp thuật toán Độ phức tạp thuật toán thớc đo để so sánh tính hiệu thuật toán Một thớc đo hiệu thời gian máy tính sử dụng để giải toán theo thuật toán xét, giá trị đầu vào có kích thớc xác định Một thớc đo thứ hai nhớ đòi hỏi thực thuật toán giá trị đầu vào có kích thớc cho trớc Gắn liền với thời gian tính toán độ phức tạp thời gian nhớ độ phức tạp không gian Xác định đợc độ phức tạp thời gian thuật toán quan trọng Vì ta biết đợc thời gian tính toán phút, năm hay tỉ năm để thực thuật toán Độ phức tạp không gian đòi hỏi thuật toán cho ta biết đợc bớc chuẩn bị thấy đợc khả đáp ứng việc tính toán thuật toán Độ phức tạp không gian gắn liền với cấu trúc liệu đặc biệt dùng để tính toán thuật toán Trong luận văn này, không nghiên cứu sở liệu nên ta bỏ qua độ phức tạp không gian, nghiên cứu độ phức tạp thời gian Để xác định độ phức tạp thuật toán ta xét hàm thực f : xác định tập số nguyên dơng có tập giá trị hầu nh dơng công cụ đo Nghĩa tồn số tự nhiªn n cho mäi n ≥ n0 , n N f(n) > Kí hiệu tập hợp tất hàm nh 1.2.1 Định nghĩa (xem [2]) Cho hàm số g(n) , ta định nghĩa O(g(n)) tập hợp hàm f(n) có tính chất tồn số dơng c số tự nhiªn n cho víi ∀n ≥ n th× f(n) ≤ cg(n) NÕu f(n)∈ O( g(n)) th× ta nói f(n) Ô lớn g(n) 1.2.2 Các tÝnh chÊt (xem [2]) i NÕu f (n ) ∈O ( g (n )) vµ f (n ) ∈O ( g (n )) th× f1 (n) + f2 (n) ∈ O( g1 (n) + g2 (n)) Chøng minh: Gi¶ sư r»ng víi mäi n ≥ n1 , f (n ) ≤ c1g (n ) vµ víi mäi n ≥ n2 , f2 (n) ≤ c2 g2 (n) Ta đặt n = max{ n1 , n2 } vµ c = max{ c1 , c2 } Khi ®ã víi mäi n ≥ n ta cã f1 (n) + f2 (n) ≤ c1g1 (n) + c2 g2 (n) ≤ c0 (g1 (n) + g2 (n)) ii NÕu f (n ) ∈O ( g (n )) vµ f (n ) ∈O ( g (n )) th× f1 (n) + f2 (n) ∈ O(max{g1 (n), g2 (n)}) Chøng minh: Gi¶ sư r»ng víi mäi n ≥ n1 , f (n ) ≤ c1g (n ) vµ víi mäi n ≥ n2 , f2 (n) c2 g2 (n) Ta đặt n = max{ n1 , n2 } vµ c0 = c1 + c2 Khi ®ã víi mäi n ≥ n ta cã f (n ) + f (n ) ≤ c1g (n ) + c g (n ) ≤ c (max{ g1 (n), g (n ) }) iii NÕu f (n ) ∈O ( g (n )) vµ f (n ) ∈O ( g (n )) th× f1 (n) f2 (n) ∈ O( g1 (n)g2 (n)) Chøng minh: Gi¶ sư r»ng víi mäi n ≥ n1 , f (n ) ≤ c1g (n ) vµ víi mäi n ≥ n2 , f2 (n) ≤ c2 g2 (n) Ta đặt n = max{ n1 , n2 } c0 = (c1c2 ) Khi víi mäi n ≥ n ta cã f1 (n) f2 (n) ≤ c1g1 (n)c2 g2 (n) ≤ c0 ( g1 (n)g2 (n)) iiii Cho P(n) = ak n k + ak −1n k −1 + + a1n + a0 đa thức bậc k ak > Khi ®ã P(n) ∈ O(n k ) Chøng minh: Ta cã P(n) = ak n k + ak −1n k −1 + + a1n + a0 ≤ ak n k + ak −1 n k −1 + + a1 n + a0 ≤ ak n k + ak −1 n k + + a0 n k ≤ ( ak + + a1 + a0 )n k NÕu c = ak + + a1 + a0 th× P(n) ≤ cn k víi mäi n n = 1.2.3 Xác định độ phức tạp tính toán thuật toán (xem [2]) Ta sử dụng T(khối mÃ) cho độ phức tạp tính toán toán tử riêng nh đoạn mà chơng trình Khi đoạn mà chơng trình đợc tách biệt rõ ràng ta kí hiệu T(n) độ phức tạp tính toán hàm biến số n, với n số phép toán sở Độ phức tạp tính toán đợc đo hàm O() Vậy xác định độ phức tạp tính toán tức xác định hàm T(n) O(g(n)) cho đoạn mà chơng trình đó, n biến số phép toán sở Các phép toán đợc dùng để đo độ phức tạp thời gian phép so sánh số nguyên, phép cộng, trừ, nhân chia số nguyên phép toán sơ cấp khác Chúng ta nhắc lại khái niệm toán tử sở phép cộng, trừ, nhân, chia hàm số lợng giác, hàm mũ, hàm logarit phép toán sơ cấp khác Độ phức tạp toán tử sở O(1) Tuy nhiên thực tính toán với số lớn phép nhân phép lấy hàm không toán tử sở Vì phép nhân số lớn phép lấy hàm đợc thực tính toán dÃy Độ phức tạp thời gian dÃy liên tiếp phép tính đợc xác định độ phức tạp cao chúng Tức là, giả sử toán tử s1 có độ phức tạp F1 toán tử s có độ phức tạp F2 Khi T (s1 ) O (F1 ) ; T (s ) ∈O (F2 ) ⇒ T (s1 , s2 ) ∈ max{O( F1 ), O( F2 )} Để dễ dàng cho việc phân tích thuật toán ta kết hợp kí hiệu đo độ phức tạp phân tích trờng hợp xấu để biết đợc thời gian thực 10 thuật toán bao nhiêu? Ngời ta định độ phức tạp phép toán trờng hợp xấu thuật toán là: Phép gán có độ phức tạp O(1); Phép nhập khỏi thủ tục có độ phức tạp O(1); Mệnh đề if (điều kiện) có độ phức tạp thời gian so sánh cộng với O (max hai nhánh); Vòng lặp (while) có độ phức tạp tổng tất vòng lặp với thời gian vòng lặp 1.2.4 Các ví dụ Ví dụ 1: (xem [2]) Xác định ®é phøc t¹p cđa cÊu tróc if(p) then s1 else s Nếu độ phức tạp p, s1 , s tơng ứng O(P), O( F1 ), O( F2 ) độ phức tạp cấu trúc if(p) then s1 else s lµ max{O(P), O( F1 ), O( F2 )}, nghĩa độ phức tạp tăng nhanh hàm P, F1 , F2 Thật vËy T(p) ∈ O(P); T (s1 ) ∈O (F1 ) ; T (s ) ∈O (F2 ) ⇒ T(if(p) then s1 else s ) ∈ max{O(P), O( F1 ), O( F2 )} Ta cã thĨ gi¶i thÝch nh− sau: i Giả sử điều kiện p dÃy lệnh p, s1 đợc thực có độ phức tạp max{O(P), O( F1 )}; ii Giả sử điều kiện p sai dÃy lệnh p, s đợc thực có độ phức tạp max{O(P), O( F2 )} Mà ta cha biết hai khối lệnh khối lệnh thực trớc Do đó, ta nhận đợc độ phức tạp vòng if là: T((if(p) then s1 else s ) ∈ max{max{O(P), O( F1 )}, max{O(P), O( F2 )}} = max{ O(P), O( F1 ), O( F2 )} Ví dụ 2: (xem [2]) Xác định độ phức tạp vòng for 37 tiên u * ®iĨm ci cïng b cđa X * n»m trªn biªn cđa bao låi cđa X * (theo Bỉ ®Ị 3.2.1.5) Gọi TP( X * ) kết tính toán phần đầu đờng gấp khúc tạo tiếp tun tr¸i cđa X * ( Z 1* ) Khi Z 1* phần thứ hai đờng gấp khúc tạo tiếp tuyến trái X Z := Z ∪ Z 1* lµ convex rope hai điểm a b theo thứ tự ngợc chiều kim đồng hồ 3.1.3 Ví dụ minh hoạ 3.1.3.1 VÝ dô 1: LÊy X = < a = u , , u11 = b > đờng biên đa giác đơn P từ a đến b theo thứ tự ngợc chiều kim đồng hồ, với u =(0; -8), u1 = (7; -3), u = (4; 1), u = (4; -4), u = (2; -2), u = (5; 5), u = (1; 7), u = (-5; 3), u = (0; 0), u = (-7;-3), u10 = (-3; -4), u11 = (-2; -6) Xác định convex rope hai điểm a b theo thứ tự ngợc chiều kim đồng hồ Gọi Z convex rope hai điểm a b theo thứ tự ngợc chiều kim đồng hồ Ta có u2 nằm bên trái u0u1 nên D = < u2 , u0 , u1 , u2 > i = 3, ta có u nằm bên trái u 2u u1u nên u đợc cho vào T u lúc Tu = {u2 , u3} XÐt ®Ønh tiÕp theo u4 i = 4, ta cã u n»m bªn trái u1u nên u đợc cho vào đầu D, u nằm bên phải u 2u nªn di chun u khái ci D, u nằm bên trái u 0u1 nên chèn u vào cuối D lúc nµy D = < u4 , u0 , u1 , u2 , u4 > i = 5, ta cã u nằm bên trái u 4u nên chèn u vào cuối D, u nằm bên phải u 2u nên loại u khỏi đầu D; tiếp tục kiểm tra u nằm bên phải u1u nên loại u khỏi đầu D, ta có u nằm bên trái u 0u1 nên u đợc cho vào đầu D lúc D = < u5 , u4 , u0 , u1 , u5 > i = 6, ta có u nằm bên trái u1 u nên u đợc cho vào đầu D, ta có u nằm bên phải cđa u 4u nªn di chun u khái ci cđa D, ta cã u n»m bªn trái u 0u1 nên chèn u vào cuối cđa D vµ lóc nµy D = < u6 , u0 , u1 , u5 , u6 > 38 i = 7, ta có u nằm bên trái u 5u nên u đợc cho vào đầu D, ta có u nằm bên phải cđa u 6u nªn di chun u khái ci cđa D, ta cã u n»m bªn trái u 0u1 nên chèn u vào cuối cđa D vµ lóc nµy D = < u7 , u0 , u1 , u5 , u6 , u7 > i = 8, ta có u nằm bên trái u 7u u 6u nên u đợc cho vào T u Tu = {u7 , u8} XÐt ®Ønh tiÕp theo u9 i = 9, ta có u nằm bên trái u 6u nên u đợc cho vào đầu D, ta có u nằm bên phải cđa u 7u nªn di chun u khái ci cđa D, ta cã u n»m bªn trái u 0u1 nên chèn u vào cuối D ta đợc D = < u9 , u0 , u1 , u5 , u6 , u7 , u9 > i = 10, ta cã u10 n»m bªn trái u 9u u 7u nên u10 đợc cho vào T u lúc Tu = {u9 , u10} XÐt ®Ønh tiÕp theo u11 Hình 3.3: Hình minh hoạ convex rope vÝ dô 3.1.3.1 i = 11, ta cã u11 nằm bên trái u 9u u 7u nên u11 đợc cho T u lúc Tu = {u9 , u10 , u11} V× u11 T u 9 nên u chóp ci cïng cđa X, ®ã 39 Z1 =< u0 , u1 , u5 , u6 , u7 , u9 > phần thứ đờng gấp khúc tạo tiếp tuyến trái X Trong (Hình 3.3), u nằm bên phải tia m nên ®iĨm chun ®ỉi cđa X C¸c ®Ønh cđa X tõ u đến u11 nằm bên phải m là: u9 , u10 , u11 Vì u u11 n»m trªn biªn cđa bao låi cđa X * nên Z1* =< u9 , u11 > phần thứ đờng gấp khúc tạo tiếp tuyến trái X * phần thứ hai đờng gấp khúc tạo tiếp tuyến trái X Vậy convex rope hai điểm a b theo thứ tự ngợc chiều kim đồng hồ là: Z = Z1 ∪ Z1* = < u0 , u1 , u5 , u6 , u7 , u9 , u11 > 3.1.3.2 VÝ dô 2: LÊy X = đờng biên đa giác đơn P từ a đến b theo thứ tự ngợc chiều kim đồng hồ (Hình 3.3) Xác định convex rope hai điểm a b theo thứ tự ngợc chiều kim đồng hồ Hình 3.3: u , u12 chóp u , u , u11 không, u14 chóp cuối cùng, u điểm chuyển đổi ( u i ®−ỵc kÝ hiƯu ®ång nhÊt víi “i”) 40 Gäi Z convex rope hai điểm a b theo thứ tự ngợc chiều kim đồng hồ Vì b = u 24 ∈T u víi Tu = {u14 , u15 , , u24}, nên u14 chóp cuối 14 14 X Vì u14 nằm bên trái tia m nên điểm liền trớc u14 nằm biên bao lồi X u8 u nằm bên phải tia m nên ®iĨm chun ®ỉi cđa X V× vËy ®−êng gÊp khóc Z1 tạo tiếp tuyến trái X từ u đến u là: < u0 , u1 , u3 , u4 , u6 , u7 , u8 > Các đỉnh X nằm u u24 , nằm bên phải tia m là: u8 , u9 , u10 , u16 , u18 , u19 , u20 , u21 , u22 , u24 Hơn nữa, giao điểm tia m với đờng gấp khúc X từ u đến u24 là: v10,11 , v15,16 , v16,17 , v17,18 , v22,23 VËy X * =< u8 , u9 , u10 , v10,11 , v15,16 , u16 , v16,17 , v17,18 , u18 , u19 , u20 , u21 , u22 , v22,23 , u24 > Ta có Z1* tạo tiếp tuyến trái X * từ u * đến b lµ < u8 , u19 , u21 , u24 > Vậy convex rope hai điểm a b theo thứ tự ngợc chiều kim đồng hồ là: Z = Z1 ∪ Z1* = < u0 , u1 , u3 , u4 , u6 , u7 , u8 , u19 , u21 , u24 > NhËn xÐt Trong thùc tÕ, thuật toán xác định convex rope đà đợc trình bày hai Ví dụ 3.1.3.1 3.1.3.2 Điều nói lên Z bao gồm hai phần, phụ thuộc vào vị trí điểm b bao lồi X (b điểm nằm bao lồi X không) 3.2 Tính đắn thuật toán Trớc khẳng định tính đắn thuật toán, phát biểu vài tính chất làm tiỊn ®Ị cho phÐp chøng minh 3.2.1 Mét sè tÝnh chất Từ phần trở đi, xét đa giác đơn P với a b đỉnh P, a n»m trªn biªn cđa bao låi cđa P, b điểm nhìn vô tận (tồn tia m b điểm chung với P b, gọi m tia đối m) Gọi X đờng biên P từ a ®Õn b theo thø tù ng−ỵc chiỊu kim ®ång hå 41 3.2.1.1 Mệnh đề Trong thuật toán tăng dần xác định bao lồi X (mục 3.1.1), chóp cuối X tồn nằm biªn cđa bao låi cđa X Chøng minh: Chóng ta xét hai trờng hợp xảy ra: a) Nếu b nằm biên bao lồi X b chãp ci cïng cđa X b) NÕu b kh«ng n»m biên bao lồi X b Tu với chóp u đó, lúc u chóp cuối X Giả sử ngợc lại, không tồn chóp u để b Tu điều mâu thuẫn với giả thiết b điểm nhìn vô tận b không nằm biên bao lồi X Giả sử tồn hai chóp cuối X u v, b Tu b Tv , nªn b ∈ Tu ∩ Tv = ∅ (vì hai đuôi khác rời nhau), điều vô lí Vậy tồn chóp cuối cïng cđa X TiÕp theo, chóng ta chøng minh chãp ci cïng n»m trªn biªn cđa bao låi cđa X Giả sử chóp cuối u không nằm biên X nên u Tx (với u ≠ x ), suy b ∈ Tx §iỊu mâu thuẫn tồn chãp ci cïng cđa X 3.2.1.2 MƯnh ®Ị (xem [6]) Trong thuật toán tăng dần xác định bao lồi X (môc 3.1.1), nÕu chãp cuèi cïng ui ≠ b nằm bên trái tia m, điểm liền trớc u i nằm biên bao lồi X (theo thứ tự ngợc chiều kim đồng hồ) nằm bên phải tia m Chứng minh: Nếu tồn i u i b để H i không tăng lên trở thành bao lồi X u i chóp cuối X Giả sử u i nằm bên trái tia m điểm liền trớc u i nằm biên bao lồi X nằm bên phải tia m Giả sử ngợc lại, tồn ®iĨm v * lµ ®iĨm liỊn tr−íc u i theo thứ tự ngợc chiều kim đồng hồ nằm bao låi cđa X cho v * n»m bªn trái tia m Vì b Tu H i bao lồi i X, b điểm nhìn vô tận nên đờng gấp khúc X có tính tự cắt Điều mâu 42 thuẫn với giả thiết Vậy điểm liền trớc u i theo thứ tự ngợc chiều kim đồng hồ nằm biên bao lồi X nằm bên phải tia m 3.2.1.3 Hệ Điểm chuyển đổi u * X tồn nhất, nằm a b theo thứ tự ngợc chiều kim đồng hồ Chứng minh: Điều dễ dàng suy đợc từ mệnh đề 3.2.1.4 Mệnh đề Gọi Z= Z1 Z1* , Z1 đờng gấp khúc tạo tiếp tuyến trái X tõ a ®Õn ®iĨm chun ®ỉi u * theo thø tự ngợc chiều kim đồng hồ, Z1* đờng gấp khúc tạo tiếp tuyến trái X * từ u * đến b theo thứ tự ngợc chiều kim đồng hồ Thế góc tạo ®Ønh t ý cđa Z (trõ hai ®Ønh a vµ b) với đỉnh liền trớc đỉnh nhỏ Chứng minh: Giả sử ngợc lại tồn đỉnh ui Z cho góc tạo đỉnh liền trớc đỉnh ui lớn Điều mâu thuẫn ui tiếp điểm tiếp tuyến trái từ đỉnh ui đến đa giác lồi H i 3.2.1.5 Mệnh đề (xem [6]) Giả sử u * b điểm chuyển ®ỉi cđa X, th×: a) Bao låi cđa X * ={z: z X với z nằm u * b, z nằm bên phải m, z thuộc giao m với X} bao gồm điểm u * điểm cuối b X * Hơn nữa, b chóp cuối cña X * b) Bao låi cña X * vµ cđa X ** ={z: z∈ X víi z n»m u * b, z nằm bên phải m} trùng bên trái tia b u* 43 Chøng minh: a) Gi¶ sư v * điểm u * nằm biên bao lồi X Vì m giao điểm với P b, nên m cắt đoặn ]v* , u* [ LÊy v = m⋂]v * , u * [ TiÕp theo, X * n»m hình nón lồi đỉnh v với biên hai tia vb v u* Do đó, bao lồi cđa X * cịng n»m h×nh nãn låi V× b u * nằm biên hình nón, nªn chóng n»m trªn biªn cđa bao låi cđa X * Vì b nằm biên bao lồi X * nên b chóp cuối X * b) Từ giả thiết toán ta cã {u∈ X: u∈ X * , u n»m bªn tr¸i cđa tia b u*} = {u∈ X: u∈ X ** , u nằm bên trái tia b u*} Do đó, ta dễ dàng có điều phải chứng minh 3.2.1.6 Mệnh đề (xem [6]) Thuật toán TP(X) xác định phần đầu đờng gấp khúc tạo tiếp tuyến trái, chóp cuối điểm chuyển đổi X có độ phức tạp O( | X | ) Chứng minh: Dễ dàng thấy thuật toán TP(X) phần lớn dựa vào thuật toán Melkman với hai cải tiến ("trong u i nằm bên phải tia d b d b +1 " t−¬ng øng "trong u i nằm bên phải tia d t 1d t ") đợc thay ("trong u i nằm bên phải tia d b d b +1 " tơng ứng u i nằm bên phải tia d t 1d t ") Và X có tính tự cắt m nên thuật toán TP(X) với hai cải tiến có db = dt Vậy điểm D tạo thành đa giác lồi theo thứ tự ngợc chiều đồng hồ Hơn nữa, thời ®iĨm thø i, nÕu mét ®iĨm thc phÇn cđa đa giác lồi D thuộc đuôi chóp u = db = dt Theo thuËt to¸n Melkman, điểm db , db+1 , , d b +t b làm thành đa giác lồi Bớc Vì u n»m trªn biªn cđa bao låi cđa X nên phần tử D Vậy đỉnh phần đầu đờng gấp khúc tạo tiếp tuyến trái X u0 , , d t đạt đợc trực tiếp từ mảng D 44 Vì điểm u i đợc cho vào D loại khỏi D nhiều lần, độ phức tạp thuật toán TP(X) O( | X | ) 3.2.2 Tính đắn thuật toán Tính đắn thuật toán xác định convex rope đợc khẳng định qua Bổ đề Mệnh đề sau 3.2.2.1 Bỉ ®Ị (xem [6]) Convex rope theo thø tù ngợc chiều kim đồng hồ hai điểm a b đa giác đơn P tồn Chứng minh: Điều dễ dàng suy đợc từ ([13] trang 639) 3.2.2.2 Bổ đề Giả sử Z đờng tuỳ ý nối hai đỉnh a b đờng gấp khúc Z (Z đợc nêu Mệnh ®Ị 3.2.1.4) theo thø tù ng−ỵc chiỊu kim ®ång hå cho tất đỉnh Z nằm nằm bên trái Z Khi chiều dài Z lớn chiều dài cđa Z (xem H×nh 3.5 ) Chøng minh: ViƯc chøng minh đợc dễ dàng suy từ bất đẳng thức tam giác 3.2.2.3 Mệnh đề (xem [6]) Thuật toán xác định convex rope theo thứ tự ngợc chiều kim đồng hồ, Z, hai điểm a b đợc hoàn thành Bớc có độ phức tạp O( | X | ) Chứng minh: Giả sử m tia b giao điểm với P b Chúng ta xét hai trờng hợp xảy ra: a) NÕu b lµ chãp ci cïng cđa X b nằm biên bao lồi X, b điểm chuyển đổi X Cho nên Z đờng gấp khúc tạo tiếp tuyến trái X Điều đợc tính toán Bớc b) Nếu b không chóp X theo (Mệnh đề 3.2.3.3) bT u với chóp u Do đó, b điểm bao lồi X Vì thế, tồn ®iĨm chun ®ỉi u * cđa ®−êng gÊp khóc X Bớc tính toán phần đầu đờng gấp khúc tạo tiếp tuyến trái X từ a ®Õn u* Theo (MƯnh ®Ị 3.2.1.5 a)), u * 45 b nằm biên bao lồi X * , b chóp cuối X * Vì thế, Bớc tính toán phần thứ đờng gấp khúc tạo tiếp tuyến trái X * dừng lại Theo (Mệnh đề 3.2.1.5 b)), đờng biên trái bao lồi X ** từ u * đến b nằm bên trái tia b u* Điều rằng, phần thứ đờng gấp khúc tạo tiếp tuyến trái X * phần thứ hai đờng gấp khúc tạo tiếp tuyến trái X Chính Z bao gồm hai phần: Phần thứ đờng gấp khúc tạo tiếp tuyến trái X từ a đến u * phần thứ hai đờng gấp khúc tạo tiếp tuyến trái X * tõ u * ®Õn b u * Z X Z’ b a Hình 3.5: Chiều dài Z lớn chiều dài Z Bây xÐt ®−êng Z' tïy ý tõ a ®Õn b theo thứ tự ngợc chiều kim đồng hồ thoả mÃn điều kiện đỉnh X nằm bên trái dọc chiều dài đờng Z' từ a đến b Theo (Bổ đề 3.2.2.2) chiều dài đờng Z' lớn chiều dài đờng Z Do đó, Z xác định ngắn tất đờng từ a đến b theo thứ tự ngợc chiều kim đồng hồ cho 46 điểm chung với phần P Vì Z convex rope hai điểm a b theo thứ tự ngợc chiều kim đồng hồ Nếu b n»m trªn bao låi cđa X theo chøng minh trªn tính toán dừng lại Bớc 2, nên theo (Mệnh đề 3.2.1.6) độ phức tạp thuật toán O( | X | ) Nếu b không nằm biên bao lồi X nằm bao lồi X * Do thuật toán dừng lại Bớc Vì thuật toán TP(X) tuyến tính nên độ phức tạp thuật toán lµ O( | X | ) + O( | X * | ) = O( | X | ) 3.3 Ví dụ chứng tỏ sử dụng thuật toán Melkman scan thuật toán Graham không xác định đợc convex rope Cho đa giác đơn P, a b đỉnh P Gọi X đờng biên P theo thứ tự ngợc chiều kim đồng hồ từ a ®Õn b (a n»m trªn biªn cđa bao låi cđa P, b nhìn vô tận) 3.3.1 Nếu dùng scan thuật toán Graham xác định đợc convex rope muốn xác định đợc convex rope phải xác định đợc bao lồi X, chóp cuối điểm chuyển đổi X Mà bao lồi X xác định đợc nh (mục2.3) đà trình bày Nếu xác định đợc bao lồi X không xác định đợc điểm chuyển đổi X nên không xác định đợc convex rope hai điểm a b 3.3.2 Nếu dùng thuật toán Melkman xác định đợc convex rope, b không nằm biên bao lồi X b điểm bao lồi X nên convex rope hai điểm a b cha xác định đợc 3.3.3 Ví dụ: Cho đa giác đơn P, a b đỉnh P, lÊy X = < a = u , u1 , , u12 = b> đờng biên P từ a đến b theo thứ tự ngợc chiều kim ®ång hå, ®ã: u0 = (-3; -7), u1 = (3; -7), u2 = (7; -4), u3 = (8; 2), u4 = (4; 5), u5 = (0; 4), u6 = (-2; 3), u7 = (3; -5), u8 = (-8; -1), u9 = (-1; -1), u10 = (-8; 5), u11 = (-3; 8), u12 = (2; 2) Xác định convex rope hai điểm a b theo thứ tự ngợc chiều đồng hồ 47 3.3.3.1 Sử dụng thuật toán tuyến tính xác định convex rope Với i = th× H =< u0 , u1 , u2 >, i = th× H3 =< u0 , u1 , u2 , u3 >, i = th× H =< u0 , u1 , u2 , u3 , u4 >, ta cã H = H , i = th× H =< u0 , u1 , u2 , u3 , u4 , u6 >, ta cã H = H , i = th× H8 =< u0 , u1 , u2 , u3 , u4 , u6 , u8 >, ta cã H8 = H , i = 10 th× H10 =< u0 , u1 , u2 , u3 , u4 , u11 , u8 >, i = 11 th× H11 =< u0 , u1 , u2 , u3 , u4 , u11 , u10 , u8 > vµ cuèi cïng H12 = H11 Cho nên u5 , u7 , u11 chóp X Vì b = u12 Tu11 nên u11 chóp cuối X Trong hình vẽ, chóp cuối u11 nằm bên trái m nên ®iĨm liỊn tr−íc cđa u11 theo thø tù ng−ỵc chiỊu kim đồng hồ nằm biên bao lồi X u4 Vì u4 nằm bên phải m nên điểm chuyển đổi Đờng gấp khúc tạo tiếp tuyến trái X từ u0 ®Õn u4 lµ < u0 , u1 , u2 , u3 , u4 > Các đỉnh X nằm u4 u12 nằm bên phải m là: u4 , u5 , u7 u12 Hơn nữa, giao m với X từ u4 đến u12 lµ v5,6 , v6,7 , v7,8 VËy X * = < u4 , u5 , u5,6 , u6,7 , u7 , u7,8 , u12 =b> Đờng gấp khúc tạo bëi c¸c tiÕp tun tr¸i cđa X * tõ u4 đến u12 < u4 , u12 > Điều phần thứ Z < u0 , u1 , u2 , u3 , u4 >, phần thứ hai Z < u4 , u12 > VËy Z= < u0 , u1 , u2 , u3 , u4 , u12 > 3.3.3.2 Sư dơng scan thuật toán Graham xác định convex rope Ban đầu ®Ỉt S = ( u1 , u0 ) TiÕp tơc xÐt ®iĨm tiÕp theo i = ta cã u2 nằm bên trái u0u1 nên thêm u2 vào S vµ S = ( u2 , u1 , u0 ), i = ta cã S = ( u3 , u2 , u1 , u0 ), i = ta cã S = ( u4 , u3 , u2 , u1 , u0 ), i = ta cã S = ( u5 , u4 , u3 , u2 , u1 , u0 ), i = ta cã S = ( u6 , u4 , u3 , u2 , u1 , u0 ), i = ta cã S= ( u7 , u6 , u4 , u3 , u2 , u1 , u0 ), i = ta cã S = ( u8 , u6 , u4 , u3 , u2 , u1 , u0 ), i = ta cã S =( u9 , u8 , u6 , u4 , u3 , u2 , u1 , u0 ), i = 10 ta cã S = ( u10 , u9 , u8 , u6 , u4 , u3 , u2 , u1 , u0 ), i = 11 ta cã S= ( u11 , u9 , u8 , u6 , u4 , u3 , u2 , u1 , u0 ), i = 12 ta cã S = ( u12 , u9 , u8 , u6 , u4 , u3 , u2 , u1 , u0 ) 48 Vậy sử dụng scan thuật toán Graham cha hẳn xác định đợc convex rope 3.3.3.3 Sử dụng thuật toán Melkman xác định convex rope Nếu sử dụng thuật toán Melkman xác định đợc bao lồi X đa giác lồi < u0 , u1 , u2 , u3 , u4 , u11 , u10 , u8 > Do xác định đợc convex rope hai điểm a b Hình 3.6: Hình minh hoạ ví dụ 3.3.3 Bảng 1: (xem [6]) Kết tính toán số đỉnh phần thứ phần thứ hai convex rope, Z, theo thứ tự ngợc chiều kim đồng hồ hai điểm a b đa giác đơn P gồm n đỉnh đợc cho với data điểm ngẫu nhiên Với a b đỉnh P (a nằm biên bao lồi P, b điểm nhìn vô tận) Hai điểm a b đợc xác định nh sau: a điểm xa bên trái, b điểm liền trớc điểm cao bên phải Lấy X đờng biên P từ a đến b theo thứ tự ngợc chiều kim ®ång hå sè ®Ønh cña Z1 sè ®Ønh cña P sè ®Ønh cđa X sè ®Ønh cđa Z1* 100 300 600 900 85 271 573 747 11 12 13 21 3 49 Kết luận Trong luận văn này, nghiên cứu nội dung thuật toán tuyến tính xác định convex rope đà đạt đợc số kết quả, nh đa số hớng nghiªn cøu thêi gian tíi Cơ thĨ: I KÕt đạt đợc: Trình bày thuật toán Graham xác định bao lồi tập hợp hữu hạn điểm mặt phẳng đa ví dụ minh hoạ (mục 2.1) Trình bày thuật toán Melkman xác định bao lồi đờng gấp khúc không tự cắt đa ví dụ minh hoạ (mục 2.2) So sánh thuật toán Melkman scan thuật toán Graham xác định bao lồi đờng gấp khúc không tự cắt đa ví dụ minh hoạ (mục 2.3) Trình bày chi tiết thuật toán tuyến tính xác ®Þnh convex rope, ®−a vÝ dơ minh häa (mơc 3.1) Phát biểu chứng minh số tính chất thuật toán tuyến tính xác định convex rope (nh Mệnh đề 3.2.1.1, 3.2.1.4) Trình bày chứng minh chi tiết tính đắn thuật toán tuyến tính xác định convex rope (mục 3.2.2) Giải thích thuật toán Melkman scan thuật toán Graham không xác định đợc convex rope đa ví dụ minh hoạ (mục 3.3) II Những vấn đề tiếp tục nghiên cứu: Cải tiến scan thuật toán Graham để xác định đợc convex rope Xây dựng thuật toán xác định điểm nhìn vô tận đa giác P cho trớc Cải tiến thuật toán để xác định convex rope trờng hợp hai đỉnh a b điểm nhìn vô tận 50 Ti liệu tham khảo Tài liệu tiếng Việt: [1] Phan Thành An, Bài giảng hình học tính toán, Viện Toán học, (2009) [2] Nhuyễn Hữu Điển, Một số vấn đề thuật toán, NXB Giáo dục, (2005) [3] Đỗ Văn Lu Phan Huy Khải, Giải tích lồi, NXB Khoa häc vµ kü thuËt Hµ Néi, (2000) Tµi liÖu tiÕng Anh: [4] P T An, Method of orienting curves for determining the convex hull of a finite set of points in the plane, Optimization, Vol 59 (2010) pp 1-5 [5] P T An, Some applications of optimal control problems in computational geometry (invited talk), Seminar at CEMAT, Instituto Superior Tecnico, Lisbon, Portugal, October 14-22, (2008) [6] P T An, A linear time algorithm for finding the convex ropes between two vertices of a simple polygon without triangulation, The Abdus Salam International Centre for Theoretical Physics (ICTP), Trieste, Italy, Preprint, (6/2008) [7] P T An, A modification of Graham's algorithm for determining the convex hull of a finite planar set, Annales Mathematicae et Informaticae, 34 (2007) pp 3-8 [8] L Guibas, J Hershberger, D Leven, M Sharir, and R E Tarjan, Lineartime algorithms for visibility and shortest path problems inside triangulated simple polygons, Algorithmica, (1987) pp 209-233 [9] R L Graham, An efficient algorithm for determining the convex hull of a finite planar set, Information Processing Letters, 26 (1972) pp 132-133 [10] P J Heffernan and J S B Mitchell, Structured visibiliy profiles with applications to problems in simple polygons, Proc 6th Annual ACM Symp Computational Geometry, (1990) pp 53-62 [11] A A Melkman, On-line Construction of the convex hull of a simple polyline, Information Processing Letters, North-Holland, 25 (1987) pp 11-12 [12] J Mitchell, Melkman's Convex Hull Algorithm, AMS 345/CSE 355 51 [13] J S B Mitchell, Geometric shortest paths and network optimization, in Handbook of Computational Geometry, J R Sack and J Urrutia, eds, Elsevier Science B V., (2000) pp 633-701 [14] J O'Rourke, Computational Geometry in C, Cambridge University Press, (1998) [15] M A Peshkin and A C Sanderson, Reachable grasps on a polygon: the convex rope algorithm, IEEE Journal on Robotics and Automation, (1986) pp 53-58 [16] F A Valentine, Convex Sets, McGraw-Hill, New York, (1964) [17] www.softsurfer.com ... thuật toán Một thớc đo hiệu thời gian máy tính sử dụng để giải toán theo thuật toán xét, giá trị đầu vào có kích thớc xác định Một thớc đo thứ hai nhớ đòi hỏi thực thuật toán giá trị đầu vào có kích... thuộc vào vị trí điểm b bao lồi X (b điểm nằm bao lồi X không) 3.2 Tính đắn thuật toán Trớc khẳng định tính đắn thuật toán, phát biểu vài tính chất làm tiền đề cho phép chứng minh 3.2.1 Một số tính... toán hàm biến số n, với n số phép toán sở Độ phức tạp tính toán đợc đo hàm O() Vậy xác định độ phức tạp tính toán tức xác định hàm T(n) O(g(n)) cho đoạn mà chơng trình đó, n biến số phép toán

Ngày đăng: 16/10/2021, 22:52

Xem thêm:

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w