Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 54 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
54
Dung lượng
1,15 MB
Nội dung
BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC KHOA HỌC NGUYỄN KIỀU LINH BÀI TOÁN TÌM BAO LỒI LUẬN VĂN THẠC SỸ Chuyên ngành : TOÁN ỨNG DỤNG Mã số : 00 00 00 Giáo viên hướng dẫn: TS. HOÀNG NAM DŨNG THÁI NGUYÊN, 2012 Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn Lời cảm ơn Sau một thời gian cố gắng, nỗ lực học tập và nghiên cứu, đến nay tôi đã hoàn thành luận văn tốt nghiệp thạc sỹ của mình. Để có được kết quả này, tôi xin bày tỏ lòng biết ơn sâu sắc và lời cảm ơn chân thành nhất đến thầy tôi, TS. Hoàng Nam Dũng, người đã định hướng nghiên cứu cho tôi trong suốt thời gian thực hiện luận văn của mình. Cám ơn thầy đã mang đến cho tôi những bài học quý báu về phương pháp nghiên cứu khoa học. Đó chính là nền tảng cơ bản, là những hành trang vô cùng quý giá để tôi có thể tiếp cận được với khoa học thật sự. Thầy đã dạy cho tôi không chỉ những kiến thức khoa học mà còn cả những bài học về cuộc sống, về tình người. Xin cảm ơn về tất cả những gì thầy đã mang đến cho tôi. Tôi xin gửi lời cảm ơn chân thành tới các thầy cô ở trường Đại học Khoa học, Đại học Thái Nguyên và các thầy cô ở Viện Toán học đã luôn tận tình giúp đỡ, theo dõi và động viên cho tôi trong suốt quá trình thực hiện luận văn này. Xin cám ơn những người thân trong gia đình đã hết sức thông cảm, chia sẻ và tạo điều kiện tốt nhất cho tôi để tôi có thể học tập, nghiên cứu và hoàn thành những công việc của mình. Xin cám ơn tất cả những người bạn thân yêu, những người đã yêu mến, chia sẻ với tôi những khó khăn vui buồn trong khi tôi thực hiện luận văn này. 2 Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn Mục lục 1 Bài toán tìm bao lồi và ứng dụng 7 1.1 Bài toán tìm bao lồi . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 1.1.1 Tập lồi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 1.1.2 Bao lồi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 1.1.3 Bài toán tìm bao lồi . . . . . . . . . . . . . . . . . . . . . . 9 1.2 Ứng dụng của bài toán tìm bao lồi . . . . . . . . . . . . . . . . . . 9 1.2.1 Nhận dạng . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 1.2.2 Tìm đường đi ngắn nhất . . . . . . . . . . . . . . . . . . . . 11 1.2.3 Hệ thống thông tin địa lý (GIS) . . . . . . . . . . . . . . . 12 1.2.4 Thống kê . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 1.2.5 Tìm đường kính của một tập hợp điểm . . . . . . . . . . . 15 2 Các thuật toán tìm bao lồi 19 2.1 Một số khái niệm và thuật toán cơ bản . . . . . . . . . . . . . . . . 19 2.2 Thuật toán gói quà . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 2.3 Thuật toán quét Graham . . . . . . . . . . . . . . . . . . . . . . . . 23 2.3.1 So sánh hai góc trong mặt phẳng . . . . . . . . . . . . . . . 24 2.3.2 Sắp xếp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 2.3.3 Thuật toán quét Graham . . . . . . . . . . . . . . . . . . . 29 2.4 Thuật toán Quickhull . . . . . . . . . . . . . . . . . . . . . . . . . . 30 2.5 Thuật toán Chan . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 3 Cải tiến các thuật toán 39 3.1 Xóa điểm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 3.2 Cải tiến thuật toán Quickhull . . . . . . . . . . . . . . . . . . . . . 41 4 Kết quả tính toán 45 4.1 Tạo tập hợp điểm ngẫu nhiên và thuật toán xóa điểm . . . . . . . 45 3 Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn 4.2 Các kết quả tính toán . . . . . . . . . . . . . . . . . . . . . . . . . . 48 4 Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn Mở đầu Bài toán tìm bao lồi là một trong những bài toán đặc biệt quan trọng trong lĩnh vực hình học tính toán bởi các ứng dụng đa dạng của nó. Chẳng hạn như nhận dạng mẫu, xử lý hình ảnh, tìm đường đi cho robot, số liệu thống kê, . . . . Hơn nữa bài toán tìm bao lồi còn được áp dụng để tìm ra các bài toán tính toán hình học khác như tìm tam giác phân Delaunay, tìm đường kính của một tập hợp, tìm các lớp lồi của một tập hợp, . . . . Vì các ứng dụng quan trọng của nó nên nhiều nhà khoa học đã bắt tay vào việc nghiên cứu và đưa ra các thuật toán tìm bao lồi của một tập hợp. Điển hình như sự phát hiện của Chand và Kapur vào năm 1970 và Jarvis vào năm 1973 với thuật toán gói quà, Ronald Graham vào năm 1972 với thuật toán quét Graham, W. Eddy năm 1977 và A.Bykat năm 1978 với thuật toán Quickhull, Timothy Chan vào năm 1993 với thuật toán Chan, . . . . Hiện nay có rất nhiều nhà khoa học dựa vào các thuật toán này để cải tiến và tăng tốc cho chúng nhằm đáp ứng các yêu cầu của cuộc sống hiện đại như xử lí các vấn đề ở tốc độ cao với số lượng lớn. Xuất phát từ lí do trên luận văn này đưa ra một một số cải tiến nhằm tăng tốc cho việc tính toán khi tìm bao lồi của một tập hợp điểm trên mặt phẳng. Luận văn này gồm bốn chương. Chương 1 phát biểu bài toán tìm bao lồi và trình bày một số ứng dụng quan trọng của bài toán này trong thực tiễn. Chương 2 trình bày các thuật toán tìm bao lồi trong không gian hai chiều như thuật toán gói quà, thuật toán quét Graham, thuật toán Quickhull và thuật toán Chan. Chương 3 đưa ra thuật toán xóa điểm, là thuật toán dựa vào tính chất của những điểm cực nằm trong tập các đỉnh của bao lồi, để xóa bớt những điểm nằm trong đa giác tạo bởi các điểm cực, nhằm mục đích giảm bớt số lượng các điểm đầu vào cho các thuật toán tìm bao lồi. Đồng thời chương này cũng trình bày một cải tiến cho thuật toán Quickhull. Chương 4 nêu các kết quả tính toán của các thuật toán đã được trình bày ở chương 3 như thuật toán xóa điểm, thuật toán Quickhull và Quickhull cải tiến. Trong quá trình nghiên cứu và tìm tòi để hoàn thành luận văn này, mặc dù 5 Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn tác giả đã có nhiều nỗ lực cố gắng, nhưng chắc chắn luận văn sẽ không tránh khỏi những thiếu sót. Tác giả rất mong nhận được sự góp ý của các thầy cô và các bạn để luận văn được hoàn thiện hơn. 6 Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn Chương 1 Bài toán tìm bao lồi và ứng dụng Như đã biết, bài toán tìm bao lồi là một trong những bài toán đặc biệt quan trọng trong lĩnh vực hình học tính toán. Chương này phát biểu bài toán tìm bao lồi và đưa ra một số ứng dụng quan trọng của bài toán trong thực tế. 1.1 Bài toán tìm bao lồi Trước khi trình bày định nghĩa bài toán tìm bao lồi ta trình bày các khái niệm tập lồi, tổ hợp lồi, . . . [19]. 1.1.1 Tập lồi Định nghĩa 1.1. Cho hai điểm p, q ∈ R n . Tập hợp tất cả các điểm x có dạng x = (1 −λ)p + λq với 0 ≤ λ ≤ 1 gọi là đoạn thẳng nối p với q và được kí hiệu là pq. Định nghĩa 1.2. Cho p 1 , p 2 , , p k ∈ R n . Những điểm x ∈ R n có dạng x = k i=1 λ i p i trong đó p i ∈ R n và 0 ≤ λ i ≤ 1 với k i=1 λ i = 1 được gọi là một tổ hợp lồi của p 1 , p 2 , , p k ∈ R n . Định nghĩa 1.3. Một tập S được gọi là một tập lồi nếu cho hai điểm p, q tùy ý thuộc S thì bất kì tổ hợp lồi nào của p và q cũng nằm trong S hay đoạn thẳng pq phải nằm hoàn toàn trong S (hình 1.1). 1.1.2 Bao lồi Sau đây ta trình bày định nghĩa bao lồi và phát biểu bài toán tìm bao lồi trong không gian R n bất kỳ. 7 Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn (a) Tập lồi (b) Tập không lồi Hình 1.1 Định nghĩa 1.4. Bao lồi của một tập S hữu hạn điểm là giao của tất cả các tập lồi chứa S. Ta kí hiệu bao lồi của S là conv(S) (hình 1.2). Nhận xét 1.1. Bao lồi của tập S là tập lồi nhỏ nhất chứa S. Bao lồi của một tập hữu hạn điểm P ⊂ R n là một đa diện lồi trong R n (hình 1.3). Định nghĩa 1.5. Mỗi p ∈ P thỏa mãn p /∈ conv(P \{p}) được gọi là một đỉnh của conv(P ). Hình 1.2 Bao lồi của một tập hữu hạn Hình 1.3 Bao lồi của một tập hữu hạn 8 Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn Nhận xét 1.2. Nếu gọi tập hợp các đỉnh của conv(P ) là H thì ta có conv(P ) = conv(H). Định nghĩa 1.6. Trong mặt phẳng, đa giác tạo bởi các đỉnh của một bao lồi được gọi là biên của bao lồi đó. 1.1.3 Bài toán tìm bao lồi Cho một tập hợp P hữu hạn điểm, bài toán tìm bao lồi của P là bài toán tìm tập hợp H các đỉnh của bao lồi conv(P) của P . Input: Tập hợp P hữu hạn n điểm p 1 , p 2 , , p n . Output: Tập đỉnh của bao lồi conv(P ), H = {h 1 , h 2 , , h m }(hình 1.4). (a) Input (b) Output Hình 1.4 1.2 Ứng dụng của bài toán tìm bao lồi Bài toán tìm bao lồi của một tập hợp hữu hạn điểm có ứng dụng đa dạng trong nhiều lĩnh vực chẳng hạn như nhận dạng mẫu, xử lý hình ảnh, tìm đường đi cho robot, số liệu thống kê, . . . . Bài toán tìm bao lồi còn được áp dụng rộng rãi để tìm ra các bài toán tính toán hình học khác và các bài toán này có rất nhiều ứng dụng trong thực tế như bài toán tìm tam giác phân Delaunay, bài toán tìm đường kính của một tập hợp, bài toán tìm các lớp lồi của một tập hợp, . . . . Sau đây ta sẽ trình bày một số ứng dụng quan trọng của bài toán tìm bao lồi. 9 Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn 1.2.1 Nhận dạng Bài toán tìm bao lồi có ứng dụng rất quan trọng trong lĩnh vực nhận dạng. Nhận dạng nhằm mục đích phân loại dữ liệu (là các mẫu) dựa vào thông tin thống kê được khai thác từ các mẫu có sẵn. Các mẫu cần phân loại thường được biểu diễn thành các nhóm của các dữ liệu đo đạc hay quan sát được. Các ứng dụng phổ biến trong thực tế là nhận dạng tiếng nói tự động, phân loại văn bản thành nhiều loại khác nhau (ví dụ những thư điện tử spam/non- spam), nhận dạng tự động các mã bưu điện viết tay trên các bao thư, hay hệ thống nhận dạng mặt người, nhận dạng biển số xe, . . . . Sau đây ta xét một ứng dụng cụ thể của bài toán tìm bao lồi trong nhận dạng biển số xe. Nội dung và hình vẽ được trích trong [14]. Hình 1.5 Quy trình của quá trình xử lý nhận diện biển số xe thường thông qua các bước như hình 1.5 và bài toán tìm bao lồi được ứng dụng trong bước 4 của quá trình nhận dạng. Trong bước này ta cô lập từng kí tự trong biển số xe được trích ra ở bước 3. Tiếp theo sử dụng thuật toán tìm bao lồi tìm vùng tối thiểu chứa mỗi kí tự đó để chuẩn bị tiến hành nhận dạng ở bước 5. Hình 1.6 biểu diễn các 10 Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn [...]... Các thuật toán tìm bao lồi Trong chương này ta xét các thuật toán tìm bao lồi trong không gian hai chiều như thuật toán gói quà, thuật toán quét Graham, thuật toán Quickhull và thật toán Chan Trong rất nhiều tài liệu viết về bài toán tìm bao lồi đòi hỏi giả thiết không có ba điểm bất kỳ nào thẳng hàng nhưng điều kiện này là không cần thiết và làm mất tính tổng quát của bài toán Một số thuật toán cần... Vi với i = 1, 2, , r Thời gian để tìm bao lồi của mỗi nhóm là O(m log m) Do đó tổng thời gian tìm bao lồi của r nhóm là O(r.m log m) = O(n log m) (a) (b) (c) (d) (e) (f) Hình 2.10 Thuật toán Chan Bước 2 : Gọi M là tập các đỉnh của các bao lồi vừa tìm được ở bước 1 Ta sẽ dùng thuật toán gói quà để tìm bao lồi của tập hợp này Bao lồi của tập hợp này cũng chính là bao lồi của tập hợp P ban đầu Cụ thể ta... phức tạp của thuật toán này là O(n2 ) 1.2.5 Tìm đường kính của một tập hợp điểm Bài toán tìm đường kính của một tập hợp điểm là một bài toán rất quan trọng trong hình học tính toán và có ứng dụng trong những bài toán phân cụm (clustering), đây là bài toán làm việc với các nhóm đối tượng tương tự nhau được trình bày cụ thể ở [17], trang 170 Trước khi trình bày thuật toán của bài toán tìm đường kính của... để tìm bao lồi của một tập P gồm n điểm có độ phức tạp tính toán của thuật toán là O(n log n) Định nghĩa độ phức tạp tính toán của thuật toán được trình bày cụ thể ở chương 2 Đầu tiên ta loại bỏ các đỉnh của lớp lồi thứ nhất, sau đó tiếp tục tìm bao lồi của các tập điểm còn lại Do đó để tìm được độ sâu depth(P ) của P thì độ phức tạp tính toán của thuật toán là O(n2 log n) Tuy nhiên áp dụng thuật toán. .. ta tìm điểm xa vt nhất, giả sử là vi và gán H := H ∪ {vi } Ta có thể lặp lại điều này để tìm ra các điểm tiếp theo (hình 2.3e), đến khi nào tìm được điểm trùng với v1 thì dừng lại (hình 2.3f) Như vậy để tìm mỗi điểm mới của bao lồi ta mất thời gian là O(n) Do vậy thuật toán này có độ phức tạp tính toán là O(nh), trong đó n là số điểm trong tập hợp ban đầu cần tìm bao lồi và h là số đỉnh của bao lồi. .. giác lồi nhỏ nhất chứa các điểm đó (hình 1.9a) Khi các thực thể cho dưới dạng đường thì thuật toán tìm bao lồi của đường cong trong mặt phẳng, thuật toán này được trình bày cụ thể ở [12], cũng cho ta một đối tượng mới là một đa giác lồi nhỏ nhất chứa các thực thể đó (hình 1.9b) Cuối cùng nếu đối tượng được cho dưới dạng vùng thì ta phải áp dụng thuật toán tìm bao lồi cho miền đa giác đơn, thuật toán. .. diễn các feature có miền bao xác định như ruộng đất, ao, hồ hay các đơn vị hành chính, (hình 1.8d) Sau đó dựa vào các thuật toán phân tích trên mô hình dữ liệu vector để đưa tập thực thể cơ sở thành một tập đối tượng có thể đưa vào bản đồ Một trong các thuật toán này là thuật toán tìm bao lồi Khi các thực thể cơ sở nhận được dưới dạng điểm thì ta dùng thuật toán tìm bao lồi của một tập hợp điểm... định lý 1.1 thì tất cả các cặp điểm đối cực phải nằm trên bao lồi của tập S Do đó đầu tiên ta phải tìm bao lồi của của tập S , sau đó xác định các cặp đối cực từ các đỉnh của bao lồi và tìm ra cặp có khoảng cách xa nhất Thuật toán tìm cặp điểm xa nhất có thể được trình bày như Algorthm 1 (a) (b) Hình 1.12 Ta có sự phân tích độ phức tạp tính toán của Algorithm 1 như sau Bước (1) có độ phức tạp là O(n... này có thể không lồi nhưng ta có thể dựa vào nó để tìm tập H các đỉnh của bao lồi conv(P ) Sau khi các điểm của tập hợp P được sắp xếp thì việc tìm bao lồi của nó có độ phức tạp tính toán là O(n) Vì vậy thuật toán quét Graham có độ phức tạp tính toán là O(n log n) Trước tiên ta trình bày việc so sánh hai góc trong mặt phẳng Việc so sánh này cần cho việc sắp xếp các điểm trong thuật toán quét Graham... thì độ phức tạp tính toán của thuật toán là O(n2 ) Tiếp theo ta phân tích độ phức tạp trung bình của thuật toán Quickhull Gọi Mn là thời gian trung bình của thuật toán Quickhull tìm bao lồi của một tập gồm n điểm bất kỳ Để tính giá trị trung bình này ta sử dụng việc tính kỳ vọng có điều kiện (conditional expectation), xem trong [16] Trong hàm đệ quy của thuật toán Quickhull tìm bao lồi của tập P có n . đỉnh của một bao lồi được gọi là biên của bao lồi đó. 1.1.3 Bài toán tìm bao lồi Cho một tập hợp P hữu hạn điểm, bài toán tìm bao lồi của P là bài toán tìm tập hợp H các đỉnh của bao lồi conv(P). 1 Bài toán tìm bao lồi và ứng dụng Như đã biết, bài toán tìm bao lồi là một trong những bài toán đặc biệt quan trọng trong lĩnh vực hình học tính toán. Chương này phát biểu bài toán tìm bao lồi. trọng của bài toán trong thực tế. 1.1 Bài toán tìm bao lồi Trước khi trình bày định nghĩa bài toán tìm bao lồi ta trình bày các khái niệm tập lồi, tổ hợp lồi, . . . [19]. 1.1.1 Tập lồi Định nghĩa