Mục tiêu nghiên cứu của luận án là đề xuất thuật toán Quickhull tìm bao lồi cho tập hữu hạn các hình tròn đồng thời chứng minh sự đúng đắn của thuật toán, tính độ phức tạp của thuật toán trong trường hợp xấu nhất, trung bình và theo nghĩa smoothed analysis. Các thử nghiệm số để minh họa thuật toán cũng được trình bày ở nội dung này.
ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN ——————–o0o——————– Nguyễn Kiều Linh BÀI TỐN TÌM BAO LỒI CỦA TẬP ĐIỂM HỮU HẠN VÀ ỨNG DỤNG Chuyên ngành: Toán ứng dụng Mã số: 62 46 01 12 DỰ THẢO TĨM TẮT LUẬN ÁN TIẾN SĨ TỐN HỌC Hà Nội - 2018 Cơng trình hồn thành tại: TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN - ĐẠI HỌC QUỐC GIA HÀ NỘI Tập thể hướng dẫn khoa học: HD1: TS HOÀNG NAM DŨNG HD2: PGS TS PHAN THÀNH AN Phản biện Phản biện Phản biện Luận án bảo vệ trước Hội đồng cấp Đại học Quốc gia chấm luận án tiến sĩ họp tại: TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN - ĐẠI HỌC QUỐC GIA HÀ NỘI Vào hồi ngày tháng năm 20 Có thể tìm hiểu luận án tại: - Thư viện Quốc gia Việt Nam - Trung tâm Thông tin - Thư viện, Đại học Quốc gia Hà Nội 1 Mở đầu Bài tốn tìm bao lồi tập hữu hạn điểm toán đặc biệt quan trọng lĩnh vực hình học tính tốn ứng dụng đa dạng nó, chẳng hạn đồ họa máy tính, nhận dạng mẫu, xử lý hình ảnh, tìm đường ngắn cho robot, số liệu thống kê, v.v Hơn nữa, tốn tìm bao lồi thường sử dụng toán phụ, bước tiền xử lý quan trọng tốn hình học khác tìm tam giác phân Delaunay, tính biểu đồ Voronoi, tìm đường kính tập hợp, tìm lớp lồi tập hợp, tìm đường ngắn nhất, v.v Các ứng dụng quan trọng ý nghĩa thực tiễn tốn tìm bao lồi thu hút nhiều nhà khoa học nghiên cứu đưa thuật toán giải toán Điển phát D R Chand S S Kapur vào năm 1970 R A Jarvis vào năm 1973 với thuật tốn gói q (gift-wrapping), R Graham vào năm 1972 với thuật toán quét Graham (Graham scan), W Eddy năm 1977 A Bykat năm 1978 với thuật toán Quickhull, F P Preparata S J Hong năm 1977 với thuật toán chia để trị (devide-and-conquer), M Kallay năm 1984 với thuật toán tăng dần (incremental), T Chan vào năm 1993 với thuật toán Chan, v.v Hiện có nhiều đề xuất cải tiến để tăng tốc cho thuật tốn tìm bao lồi nhằm đáp ứng yêu cầu sống đại xử lí vấn đề tốc độ cao cho liệu lớn Năm 2010, P T An cải tiến thuật tốn qt Graham tìm bao lồi cho tập hữu hạn điểm không gian R2 Năm 2013, P T An L H Trang tiếp tục áp dụng phương pháp đường định hướng để tăng tốc cho thuật tốn gói q tìm bao lồi tập hữu hạn điểm không gian R3 , v.v Bài tốn tìm bao lồi có liệu đầu vào tập hình trịn tốn quan trọng hình học tính toán xuất từ năm 1990 trở lại Đầu tiên năm 1992, D 2 Rappaport giới thiệu thuật toán O(n log n) lấy ý tưởng từ thuật tốn chia để trị nhằm tính bao lồi cho tập hình trịn Trong báo này, tác giả ứng dụng toán số vấn đề hình học khác xác định bán kính tập hình trịn, tìm Voronoi xa nhất, tính miền stabbing xây dựng miền giao tập hình trịn Năm 1995, O Devillers M Golin đề xuất cải tiến từ thuật toán tăng dần với tập hình trịn đầu vào xếp theo thứ tự độ lớn bán kính chúng Đến năm 1998, W Chen cộng trình bày phương pháp song song để tìm bao lồi tập hình trịn Năm 2004, D -S Kim cộng sử dụng bao lồi tập hình trịn tốn phụ để giải tốn tìm đường ngắn tránh vật cản đĩa Nhận tầm quan trọng cần thiết việc tăng tốc cho tốn tìm bao lồi, luận án “Bài tốn tìm bao lồi tập điểm hữu hạn ứng dụng” đề xuất phương pháp cải tiến cho số thuật tốn tiêu biểu tìm bao lồi cho tập điểm Nội dung nghiên cứu luận án bao gồm: Đề xuất số kỹ thuật cải tiến cho thuật tốn Quickhull tìm bao lồi khơng gian R2 , thuật tốn tìm bao lồi khơng gian R3 thuật tốn gói q khơng gian Rd (với d ≥ 2) Mỗi đề xuất chúng tơi tính tốn thực nghiệm để hiệu so với thuật tốn có Giới thiệu ứng dụng thuật tốn tìm bao lồi tập điểm bước tiền xử lý quan trọng cho thuật toán vi phân giải tốn tối ưu khơng trơn Chúng tơi thực thử nghiệm số thấy hiệu sử dụng bước tiền xử lý Đề xuất thuật tốn Quickhull tìm bao lồi cho tập hữu hạn hình trịn đồng thời chứng minh đắn thuật tốn, tính độ phức tạp thuật tốn trường hợp xấu nhất, trung bình theo nghĩa smoothed analysis Các thử nghiệm số để minh họa thuật tốn trình bày nội dung 3 Chương Kiến thức chuẩn bị 1.1 Sự định hướng số kiến thức liên quan Một siêu phẳng có hướng (orientation hyperplane), gọi siêu phẳng định hướng, (x1 x2 xd ) siêu phẳng chứa d điểm độc lập affin x1 , x2 , , xd không gian Rd với thứ tự điểm hiểu theo nghĩa (x1 x2 xd ) = (x2 x3 xd x1 ) = = (xd x1 xd−1 ) (x1 x2 xd ) = (x2 x1 xd ) Trong Rd , cho trước d điểm độc lập affin xi = (xi1 , xi2 , , xid ), i = 1, 2, , d, điểm t = (t1 , t2 , , td ) Định nghĩa x1 x12 x1d x21 x22 x2 d d (1.1) orient(x , x , , x , t) := det xd xd x d d t1 t2 td Định nghĩa 1.1.1 Điểm t gọi phía dương (tương ứng phía âm, thuộc) siêu phẳng (x1 x2 xd ) orient(x1 , x2 xd , t) > (tương ứng, orient(x1 , x2 , , xd , t) < 0, orient(x1 , x2 , , xd , t) = 0) Ta có orient(x , x , , x , t) := det d x11 x12 x21 x22 xd1 xd2 t1 t2 x1d x2d d xd td d (−1)d+1+j tj |Md+1,j |, = j=1 |Md+1,j | định thức orient(x1 , x2 , , xd , t) xác định cách bỏ dòng thứ d + cột thứ j Nếu đặt νj = (−1)d+1+j |Md+1,j |, j = 1, 2, , d νd+1 = |Md+1,d+1 |, (1.2) − ký hiệu → ν = (ν1 , ν2 , , νd ) d orient(x1 , x2 , , xd , t) = νi ti + νd+1 (1.3) i=1 Dễ dàng thấy biểu thức orient có dạng phương trình − siêu phẳng qua d điểm x1 , x2 , , xd với vectơ pháp tuyến → ν = d (ν1 , ν2 , , νd ) hệ số tự νd+1 = − νi zi Tức là, siêu i=1 phẳng định hướng (x1 x2 xd ) có phương trình d νi xi + νd+1 = (1.4) i=1 Định nghĩa 1.1.2 Gọi H siêu phẳng định hướng có phương − trình cho (1.4) với vectơ → ν xác định (1.2) Nửa không gian dương H, ký hiệu H + , định nghĩa nửa khơng gian nằm phía dương bị chặn siêu phẳng H Nửa khơng gian mở cịn lại gọi nửa không gian âm H, ký hiệu − H − Vectơ → ν gọi vectơ định hướng dương siêu phẳng định hướng H Nhận xét 1.1.3 Nếu z điểm H điểm → − − t nằm không gian dương H + → ν zt > 0, điểm t nằm nửa → − → − − − không gian âm H − → ν zt < 0, điểm t thuộc H → ν zt = 5 1.2 Bài tốn tìm bao lồi ứng dụng 1.2.1 Bài tốn tìm bao lồi cho tập hữu hạn điểm Từ định nghĩa bao lồi ta dễ dàng thấy bao lồi tập P tập lồi nhỏ chứa P Bao lồi tập hữu hạn điểm P ⊂ Rd đa diện lồi Rd Một đa diện lồi có hữu hạn diện rời nhau, diện đa diện lồi Như vậy, tốn tìm bao lồi tập P toán xác định tất diện conv(P ) với thứ tự mà theo ta dựng lại conv(P ) Ta có liệu đầu vào tốn tập hợp P hữu hạn gồm n điểm p1 , p2 , , pn đầu tập diện bao lồi conv(P ) 1.2.2 Bài tốn tìm bao lồi cho tập hình trịn Từ định nghĩa bao lồi tập bất kỳ, ta có bao lồi tập hợp D = {d1 , d2 , , dn } ⊂ R2 gồm n hình trịn có tâm ci (cix , ciy ) bán kính ri ≥ 0, ký hiệu conv(D), tập lồi nhỏ chứa D Dữ liệu đầu vào toán tập hợp D gồm n hình trịn d1 , d2 , , dn đầu tập đường tròn cực biên bao lồi conv(D) 6 Chương Bài tốn tìm bao lồi cho tập điểm Một số cải tiến thuật tốn Quickhull tìm bao lồi tập điểm 2D chương nhằm mục đích giảm số lượng phép tốn (orient) tính tốn, giảm khơng gian tìm nghiệm giảm kích thước liệu đầu vào Những kết tính tốn cải tiến thực mang lại hiệu tốc độ khả tính tốn cho thuật toán Quickhull với độ tăng tốc gấp khoảng lần so với phiên có 2.1 Cải tiến thuật toán Quickhull 2D 2.1.1 Thuật toán Quickhull Thuật toán Quickhull xác định bao lồi tập hữu hạn điểm P Thuật tốn bắt đầu việc tìm hai điểm cực đặc biệt (ta thường chọn điểm tận trái điểm tận phải), ta gọi p q, lưu hai điểm vào tập đỉnh H conv(P ) Đường thẳng pq chia (n − 2) điểm lại vào hai tập P1 P2 , P1 chứa điểm P nằm phía dương đường thẳng pq, P2 tập điểm P nằm phía âm đường thẳng pq Sau đó, tập P1 ta tìm điểm r có khoảng cách đến pq xa Thêm điểm r vào tập đỉnh H Ba điểm p, q r chia tập P1 thành ba tập S0 , S1 S2 , S0 chứa điểm nằm bên tam giác prq, S1 chứa điểm nằm phía dương pr S2 chứa điểm nằm phía dương rq Ta thay pq pr rq tiếp tục lặp lại thuật toán Áp dụng bước thực P1 cho tập P2 ta bao lồi tập P 2.1.2 Hạn chế phép tính orient Ở chúng tơi trình bày đề xuất cải tiến cho thuật toán Quickhull nhằm giảm số lượng phép tốn orient Với đề xuất thời gian tính tốn thử nghiệm số thuật toán giảm khoảng 30% so với phiên Quickhull 2.1.3 Sử dụng vectơ định hướng Xuất phát từ ý tưởng phương pháp đường định hướng giới thiệu H X Phú, đề xuất kỹ thuật sử dụng “vectơ định hướng” (orienting vectors) để giảm số lượng phép tính orient thuật tốn Quickhull tính bao lồi cho tập điểm 2D Áp dụng cải tiến thuật toán Quickhull giảm khoảng 23% so với phiên ban đầu 2.1.4 Tiền xử lý chia nhỏ tốn Chúng tơi sử dụng tính chất số điểm cực đặc biệt để giảm bớt số lượng điểm đầu vào, đồng thời chia nhỏ toán kết hợp với ý tưởng vừa nêu Mục 2.1.2 để cải tiến thuật toán Quickhull Áp dụng ý tưởng cải tiến thời gian tính tốn thuật toán Quickhull giảm khoảng 48% so với phiên thời 2.1.5 Thử nghiệm số Để so sánh thuật tốn với chúng tơi tạo ngẫu nhiên vài kiểu liệu cho tập điểm đầu vào Với loại liệu tạo 27 ví dụ, số điểm ví dụ thay đổi từ 10.000 đến 30.000.000 Các thuật toán thực thi chương trình C chạy máy tính Core 2Duo 2*2.0 GHz với 2GB RAM Chúng tơi thử nghiệm cho bốn phiên thuật tốn Quickhull Khi kết hợp ba kỹ thuật thời gian tính tốn nhận tăng khoảng từ 2, lần (với tập điểm kiểu hình trịn rỗng) tới lần (cho tập điểm liệu hình vng) 8 2.2 Cải tiến thuật tốn gói q Thuật tốn gói q thuật tốn tìm bao lồi bản, hiệu dễ thực thi không gian Rd Thuật toán xác định bao lồi conv(P ) tập P hữu hạn điểm bắt đầu với việc tìm mặt (subfacet) E tập E mặt conv(P ) Bước ta xác định mặt (facet) F conv(P ) qua E Qua mặt mặt F ta tiếp tục tìm mặt khác bao lồi tất điểm tập P "gói lại" Do vậy, thủ tục thuật tốn tìm mặt bao lồi conv(P ) qua mặt E ∈ E cho trước Ở nội dung đưa kỹ thuật giới hạn để cải tiến thủ tục 2.2.1 Kỹ thuật miền hạn chế Cho P = {(pi1 , pi2 , , pid ) ∈ Rd , i = 1, 2, , n, n > d} Và đặt xM j := xm := j max {pij : pi (pi1 , pi2 , , pid ) ∈ P }, (2.1) {pij : pi (pi1 , pi2 , , pid ) ∈ P }, (2.2) 1≤i≤m 1≤i≤n j = 1, 2, , d Cho H siêu hộp xác định giao 2d nửa khơng m gian đóng chứa P bị chặn 2d siêu phẳng xj = xM j xj = xj j = 1, 2, , d Khi ta có conv(P ) ⊂ H Hình chiếu song song với trục tọa độ Oxd siêu hộp H siêu phẳng toạ độ Ox1 x2 xd−1 gọi siêu hộp sở (foundation hyperrectangle) H Giả sử νd = D1 , D2 giao siêu phẳng (a1 a2 ad−1 t) với siêu phẳng m xd = xM d , xd = xd (D1 , D2 d − diện H) Chúng ký hiệu D1 , D2 hình chiếu D1 , D2 siêu phẳng tọa độ Ox1 x2 xd−1 Miền bị giới hạn H , D1 , D2 , ký hiệu (a1 a2 ad−1 t)Ox1 x2 xd−1 , gọi miền hạn chế (the restricted area) siêu phẳng (a1 a2 ad−1 t) Ox1 x2 xd−1 Mệnh đề 2.2.1 Trong siêu phẳng tọa độ Ox1 x2 xd−1 , D2 nằm nửa không gian D1+ νd > Ngược lại, D2 nằm nửa không gian D1− νd < Bổ đề 2.2.2 i) Nếu νd > điểm p nằm phía dương (tương ứng âm) D2 (tương ứng D1 ) siêu phẳng tọa độ Ox1 x2 xd−1 p∗d < pd (tương ứng p∗d > pd ) ii) Nếu νd < điểm p nằm phía dương (tương ứng âm) D1 (tương ứng D2 ) siêu phẳng tọa độ Ox1 x2 xd−1 p∗d > pd (tương ứng p∗d < pd ) Thủ tục tìm mặt bao lồi qua mặt conv(P ) sử dụng Mệnh đề 2.2.3 Mệnh đề 2.2.3 i) Nếu νd > p ∈ P cho p + nằm D2 (tương ứng D1− ) siêu phẳng tọa độ Ox1 x2 xd−1 , p phải nằm nửa không gian (a1 a2 ad−1 t)+ (tương ứng (a1 a2 ad−1 t)− ) ii) Nếu νd < p ∈ P cho p nằm D1+ (tương ứng D2− ) siêu phẳng tọa độ Ox1 x2 xd−1 , điểm p phải nằm nửa không gian (a1 a2 ad−1 t)+ (tương ứng (a1 a2 ad−1 t)− ) 2.2.2 Miền hạn chế tốt Gọi SOxd diện tích (a1 a2 ad−1 t)Ox1 x2 xd−1 , SOxd diện tích H Định nghĩa 2.2.4 Tỉ số ROxd = SOxd /SOxd gọi tỉ số hạn chế (restricted ratio) (a1 a2 ad−1 t) Ox1 x2 xd−1 Định nghĩa 2.2.5 Miền hạn chế siêu phẳng (a1 a2 ad−1 t) ứng với giá trị nhỏ n tỉ số hạn chế gọi miền hạn chế tốt (best restricted area) siêu phẳng (a1 a2 ad−1 t) 10 Tìm miền hạn chế tốt có nghĩa ta tìm miền hạn chế có tỉ số hạn chế nhỏ n miền hạn chế siêu phẳng siêu phẳng tọa độ 2.2.3 Một số kết tính tốn Chúng thử nghiệm cho liệu không gian 2D 3D Các thuật toán thực thi chương trình C chạy PC Core i5 1.6 GHz 3M với GB RAM Dũ liệu đầu vào thuật toán tập điểm tạo ngẫu nhiên hình lập phương mặt cầu Chúng thử nghiệm tập điểm tạo ngẫu nhiên không gian R2 R3 Các thử nghiệm số thời gian thực thi thuật tốn chúng tơi giảm trung bình khoảng 40% so với thuật tốn gói q ban đầu khoảng 35% so với phiên cải tiến 2.3 Bài tốn tìm bao lồi tập điểm hữu hạn R3 Bao lồi cấu trúc quan trọng có nhiều ứng dụng lính vực hình học tính tốn Một ứng dụng tiêu biểu sử dụng để xác định tam giác phân Delaunay biểu đồ Voronoi Vì mục chúng tơi trình bày kỹ thuật để tăng tốc cho thuật tốn tính bao lồi dùng lớp tốn tính tam giác phân Delaunay 2.3.1 Bao lồi tập điểm Định nghĩa 2.3.1 Mặt bao lồi tam giác có đỉnh thuộc tập P cho tất điểm P thuộc vào phía mặt phẳng qua ba đỉnh Bao lồi (lower convex hull), ký hiệu convL (P ), chứa tất mặt bao lồi Một mặt conv(P ) mặt gọi mặt bao lồi (upper facet) Mệnh đề 2.3.2 Cho P tập hữu hạn điểm R3 → − → − a, b, p ∈ P , giả sử → n = (nx , ny , nz ) = ab × − ap nz = Khi ta 11 i) Nếu (abp) mặt conv(P ) nz < mặt convL (P ) ii) Nếu nz > (abp) khơng phải mặt convL (P ) 2.3.2 Kỹ thuật hạn chế tính bao lồi Trong nội dung giới thiệu ý tưởng hạn chế khơng gian tính tốn nhằm tăng tốc cho thủ tục LF(e, p) lớp tốn tìm bao lồi với mục đích tính tam giác phân Delaunay Cụ thể, ta xác định lưới tam giác phân Delaunay tập điểm P ∗ = {p∗1 , p∗2 , , p∗d } R2 thơng qua việc tính bao lồi R3 sau: Bước 1: Tạo tập P = {pi (xi , yi , zi ) ∈ R3 , i = 1, 2, , n − 1} cho cao độ pi thoả mãn zi = (xi − qx )2 + (yi − qy )2 , q(qx , qy ) điểm trung bình tập hợp P ∗ Bước 2: Tính bao lồi convL (P ) tập P Bước 3: Chiếu tất mặt bao lồi convL (P ) theo phương song song với trục Oz lên mặt phẳng Oxy (mặt chứa tập điểm P ∗ ) ta nhận tam giác phân Delaunay tương ứng P ∗ Nhắc lại toán toán ta tìm bao lồi tập P = {pi = (xi , yi , zi ) ∈ R3 , zi = (xi − qx )2 + (yi − qy )2 , i = 1, , n}, q(qx , qy ) điểm trung bình tập P Như tập điểm P phân bố bề mặt paraboloid (P) có phương trình z = (x − qx )2 + (y − qy )2 (P) Giả sử mặt phẳng (abp) với a, b, p ∈ P có phương trình nx x + ny y + nz z = d Vì a, b, p ∈ P nên (abp) cắt paraboloid (P) theo đường ellipse (E) Ta tìm giá trị lớn nhất, nhỏ hoành độ, tung độ cao độ điểm thuộc (E) Dựa vào giá trị 12 ta có xét vị trí tương đối điểm thuộc P với mặt phẳng (abp) cách thuận lợi đơn giản Đặt xE := min{x : (x, y, z) ∈ (E)}, max xE := max{x : (x, y, z) ∈ (E)}, yE := min{y : (x, y, z) ∈ (E)}, max yE := max{y : (x, y, z) ∈ (E)}, zE := min{z : (x, y, z) ∈ (E)}, max zE := max{z : (x, y, z) ∈ (E)} Ta có (C) có dạng phương trình đường tròn mặt phẳng Oxy đường tròn hình chiếu (E) theo phương song song với trục Oz lên mặt phẳng toạ độ Oxy (x − qx − α β α2 β ) + (y − qy − )2 = αqx + βqy + + + γ (C) 2 4 Đường tròn (C) có tâm điểm c có toạ độ cx = qx + α2 cy = qy + β2 (2.3) bán kính r= αqx + βqy + α2 β + + γ 4 (2.4) Dựa vào đặc điểm đường tròn (C) ta suy xE = cx − r, max xE = cx + r, yE = cy − r, max yE = cy + r Bổ đề 2.3.3 Ta có i) zE = (cq − r)2 , ii) max zE = (cq + r)2 Gọi hình chiếu điểm a, b, p a , b , p , a , b , c ∈ (C) Ta có mệnh đề sau Mệnh đề 2.3.4 Những điểm thuộc tập P mà có hình chiếu nằm ngồi đường trịn (C) nằm mặt phẳng (abp) Ngược lại, điểm có hình chiếu nằm bên đường trịn (C) nằm mặt phẳng (abp) 13 Mệnh đề 2.3.5 2.3.6 giúp ta xác định nhanh điểm nằm hay mặt phẳng nhờ phép so sánh toạ độ Mệnh đề 2.3.5 Một điểm t(tx , ty , tz ) ∈ P thoả mãn điều kiện sau i) tx < xE , ii) tx > max xE , iii) ty < yE , iv) ty > max yE , v) tz > max zE nằm mặt phẳng (abp) Mệnh đề 2.3.6 Một điểm t(tx , ty , tz ) ∈ P thoả mãn tz < zE cq < r t nằm mặt phẳng (abp) 2.3.3 Một số kết tính tốn Trong nội dung thử nghiệm số cho thuật toán P T An Đ T Giang giới thiệu năm 2015 thuật toán vừa trình bày mục trước để so sánh tốc độ chúng Các thuật toán thực thi chương trình C chạy PC Core i5 1.6 GHz 3M với GB RAM Thuật toán áp dụng cải tiến tăng tốc nhanh, gấp từ khoảng 1,58 đến 2,24 lần so với thuật toán giới thiệu năm 2015 14 Chương Một ứng dụng tốn tìm bao lồi tập điểm Tìm vị trí tối ưu tốn thường gặp thực tế Bài toán xét chương xác định điểm x tập lồi đóng cho trước D ⊂ Rd (thơng thường d ∈ {2, 3}) cho khoảng cách xa từ x tới điểm tập hữu hạn C ⊂ Rd ngắn Bài toán xét mục mơ hình hóa tốn tối ưu lồi khơng trơn với hàm mục tiêu lồi mạnh Chúng đề xuất cải tiến cho thuật toán vi phân để giải tốn tối ưu khơng trơn Thơng thường, thực tế lực lượng tập C lớn Tuy nhiên, tính lồi hàm khoảng cách, ta thay tập C tập VC chứa đỉnh bao lồi C Trong nhiều trường hợp thực tế, số phần tử tập VC nhỏ đáng kể so với số phần tử tập C V Damerow C Sohler rằng, lực lượng trung bình VC O(logd−1 n) Do đó, tìm đỉnh bao lồi C bước tiền xử lý quan trọng trước giải tốn xác định vị trí tối ưu Một số kết tính tốn thực nghiệm chúng tơi việc tính bao lồi trước thực tốn tăng tốc đáng kể so với việc khơng sử dụng kỹ thuật 3.1 Phát biểu toán tính chất Bài tốn tìm vị trí tối ưu phát biểu cụ thể sau Bài toán 3.1.1 Cho tập lồi đóng D ⊂ Rn tập hữu hạn điểm C Tìm điểm x tập D cho khoảng cách Euclide xa từ x tới điểm tập C ngắn 15 Khoảng cách từ điểm x tới điểm y định nghĩa x − y Đặt θ(x, C) := max x − y , Bài tốn 3.1.1 y∈C biểu diễn dạng toán học sau θ(x, C) x∈D (P ) Bổ đề 3.1.2 Ký hiệu VC tập đỉnh conv(C) Khi ta có i) VC ⊆ C ii) θ(x, C) = max{ x − y | y ∈ VC } Bổ đề 3.1.3 Cho v , v , , v m phần tử VC dj (x, C) := x − v j với j ∈ J := {1, 2, , m} Khi ta có i) θ(x, C) hàm lồi mạnh với mô đun ∂θj (·, C)(x) , ∂θj (·, C)(x) ii) ∂θ(·, C)(x) = conv j∈J(x) khả vi phân hàm lồi θj (·, C) x J(x) = {j ∈ J| θ(x, C) = θj (x, C)} 3.2 Thuật toán hội tụ Định lý 3.2.1 i) Nếu thuật toán 3.1 dừng vài bước lặp k, xk nghiệm toán (P ) ii) Nếu thuật toán 3.1 khơng dừng dãy {xk } hội tụ đến nghiệm x∗ toán (P ) Để chứng minh Định lý 3.2.1 ta cần khẳng định sau Khẳng định 3.2.2 Ta có xk+1 − xk ≤ βk , ∀k ∈ N Khẳng định 3.2.3 Dãy { xk − x∗ } hội tụ với k Khẳng định 3.2.4 Ta có lim sup(θ(xk , C) − θ(x∗ , C)) = k→+∞ (3.2) 16 Thuật toán 3.1 Thuật tốn tìm nghiệm tối ưu xk Khởi tạo Chọn x0 ∈ D, cố định tham số ρ > chọn dãy {βk } số dương thỏa mãn điều kiện ∞ ∞ βk2 < ∞ βk = +∞, k=0 (3.1) k=0 Cho k := Bước Tìm v k ∈ VC cho v k ∈ arg max{ xk − v : v ∈ VC } Bước Đặt g k := 2(xk − v k ) đạo hàm xk − v k xk Trường hợp 2a: Nếu g k = thuật tốn dừng, xk nghiệm tối ưu (P ) Trường hợp 2b: Nếu g k = 0, tính αk := βk xk+1 := PD (xk − αk g k ), max{ρ, g k } PD phép chiếu mêtric D Bước Nếu xk+1 = xk thuật tốn dừng, xk nghiệm tối ưu toán (P ) Ngược lại, đặt k := k + quay lại Bước Nhận xét 3.2.5 Nếu g k = xk+1 = xk xk nghiệm xác tốn Trong tính tốn số, cho nghiệm xấp xỉ ta dừng thuật tốn g k ≤ ε xk+1 − xk ≤ max{ xk , 1} , > sai số cho trước 3.3 Một số kết tính tốn Trong mục ta thảo luận số kết thực nghiệm không gian hai chiều Giả sử lực lượng tập C người sử dụng dịch vụ lớn (điều thường xảy mơ 17 hình thực tế) tập D (nơi đặt vị trí sở để phục vụ cho đối tượng tập C) tập lồi Như trình bày trên, để tối thiểu hàm θ(x, C) ta cần tính đỉnh bao lồi tập C Chúng áp dụng cải tiến thuật tốn Quickhull trình bày Chương để tìm conv(C) Thuật tốn tính bao lồi thực chương trình C, thuật tốn 3.1 tìm nghiệm tối ưu tính tốn chương trình matlab Các thuật toán chạy PC 1.8GHz Intel Core i5 với GB RAM Các thử nghiệm số chúng tơi việc tìm đỉnh bao lồi tập điểm C bước tiền xử lý cần thiết Với bước thực giúp cho thuật tốn chúng tơi giảm đáng kể kích thước tập C Thời gian tính tốn toán sử dụng bước tiền xử lý tăng tốc đáng kể so với thời gian tính tốn không sử dụng kỹ thuật 18 Chương Bài tốn tìm bao lồi cho tập hữu hạn hình trịn 4.1 Sự định hướng cho hình trịn R2 Định nghĩa 4.1.1 Một hình trịn d gọi nằm phía dương (tương ứng phía âm) đường thẳng có hướng ∆ hình trịn có nhiều điểm khơng nằm phía dương (tương ứng phía âm) đường thẳng ∆ Để đơn giản, ta viết “hình trịn d qua điểm q” có nghĩa “hình trịn d có biên ∂(d) qua điểm q” Định nghĩa 4.1.2 Một hình trịn tập D gọi hình trịn cực biên qua điểm cực biên D Ta biểu diễn kết tốn tìm bao lồi tập D CH(D) = {d1 , d2 , , dh , dh+1 }, d1 = dh+1 , cho t(di , di+1 ) cạnh conv(D) với i = 1, 2, , h Ký hiệu next(dh ) hình trịn cực biên liền sau dh CH(D) prev(dh ) hình trịn cực biên liền trước dh CH(D) Tức next(dh ) = dh+1 prev(dh ) = dh−1 4.2 Giới thiệu thuật toán Thuật tốn 4.1 mơ tả thuật tốn Quichkull tìm bao lồi tập D hữu hạn hình trịn Đầu thuật tốn tập hình trịn cực biên CH(D) 19 Thuật toán 4.1 Thuật toán Quickhull cho tập hình trịn Đầu vào: Cho tập hợp D = {d1 , d2 , , dn } gồm n hình trịn có tâm ci (cix , ciy ) bán kính ri ≥ Giả sử n ≥ Đầu ra: CH(D) Tìm hình trịn dp dq tương ứng chứa điểm tận trái p tận phải q Gán CH(D) := {dp } D1 chứa dp , dq tất hình trịn D \ {dp , dq } khơng nằm phía dương pq D2 chứa dp , dq tất hình trịn D \ {dp , dq } khơng nằm phía dương qp Gọi Findhull (D1 , pq, dp , dq ) Gán CH(D) := CH(D) ∪ {dq } Gọi Findhull (D2 , qp, dq , dp ) Findhull (Dk , pq, dp , dq ) if Dk = ∅ then return; else tìm dr ∈ Sk qua điểm r cho r có khoảng cách xa tới pq a if (dr = dp and dr = dq ) then i Đặt P1 (tương ứng P2 ) chứa dp , dr (tương ứng dr , dq ) tất hình trịn Dk \{dp , dr } (tương ứng Dk \{dr , dq }) khơng nằm phía dương pr (tương ứng rq) ii Gọi Findhull (P1 , pr, dp , dr ) Gán CH(D) := CH(D) ∪ {dr } Gọi Findhull (P2 , rq, dr , dq ) b else if dr = dp then tìm hình trịn next(dp ) Gọi p tiếp điểm next(dp ) tiếp tuyến phải hai hình trịn dp next(dp ) i Đặt P1 chứa dp , dq tất hình trịn thuộc Dk \ {dp , dq } khơng nằm phía dương p q ii Gán CH(D) := CH(D) ∪ {next(dp )} Gọi Findhull (P1 , p q, next(dp ), dq ) c else if dr = dq then tìm hình trịn prev(dq ) Gọi q tiếp điểm prev(dq ) tiếp tuyến phải hai hình trịn prev(dp ) dq i Đặt P1 chứa dp , dq tất hình trịn Dk \ {dp , dq } không nằm phía dương pq ii Gọi Findhull (P1 , pq , dp , prev(dq )) Gán CH(D) := CH(D) ∪ {prev(dq )} 20 4.3 Sự đắn thuật toán Định lý 4.3.1 Đầu Thuật toán 4.1 danh sách hình trịn cực biên D xếp theo thứ tự ngược chiều kim đồng hồ 4.4 Độ phức tạp tính tốn 4.4.1 Độ phức tạp tính tốn trường hợp xấu Mỗi phép gọi Findhull ln tìm đường trịn cực biên Việc tìm hình trịn cực biên có độ phức tạp tính tốn xấu O(n) Khi hình trịn cực biên chọn, xuất nhiều hai lần phép gọi Findhull bước (một phép gọi đặt kề trước phép gọi đặt kế sau) Do thuật tốn dừng sau khơng q 3h phép gọi Findhull Từ ta kết luận rằng, độ phức tạp tính tốn thuật tốn trường hợp xấu O(n2 ) 4.4.2 Độ phức tạp tính tốn trung bình Định lý đánh giá số hình trịn cực biên trung bình tập hợp hình trịn Định lý 4.4.1 Cho tập D gồm n hình trịn có tâm thuộc tập C chọn theo phân bố xác suất ∆ Khi trung bình số hình trịn cực biên O log2 n Định lý 4.4.2 Độ phức tạp tính tốn trung bình Thuật tốn 4.1 cho tập D gồm n hình trịn có tâm thuộc tập C chọn theo phân bố xác suất ∆ O(n log2 n) 4.4.3 Độ phức tạp tính toán theo nghĩa smoothed analysis Định nghĩa 4.4.3 Cho thuật tốn A liệu vào x Khi ký hiệu CA (x) phép đo độ phức tạp (complexity measure) thuật toán A liệu x Cho Xn tập liệu 21 đầu vào có kích thước n thuật tốn A Ta nói thuật tốn A có độ phức tạp smoothed analysis f (n, s) max Es [CA (˜ x)] = f (n, s), x∈Xn x ˜ = x + s với s biến ngẫu nhiên (thành phần gây nhiễu cho liệu đầu vào x), Es kỳ vọng CA (˜ x) Định lý 4.4.4 Độ phức tạp tính tốn theo nghĩa smoothed analysis TS Thuật toán 4.1 cho tập D cho hai trường hợp sau: i) Nếu tập tâm D cho phân bố chuẩn N (0, σ) TS = O n δ log2 n ii) Nếu tập tâm D cho phân bố hình vng kích thước , tức x ∈ [− , ] ϕ(x) = (4.1) 0 ngược lại, TS = O n n log n 2/3 4.5 Một số kết tính tốn Các thử nghiệm số chúng tơi thuật tốn Quickhull chạy nhanh đáng kể so với thuật tăng dần Hệ số tăng tốc thuật toán Quickhull so với thuật toán gia tăng từ 3,16 đến 4,03 lần 22 Kết luận Luận án trình bày số vấn đề liên quan đến tốn tìm bao lồi tập hữu hạn điểm tập hữu hạn hình trịn đạt kết sau • Đề xuất số kỹ thuật để tăng tốc cho thuật tốn Quickhull 2D Các tính tốn thuật toán áp dụng kỹ thuật tăng tốc hiệu quả, tăng khoảng lần so với phiên có • Giới thiệu kỹ thuật giới hạn khơng gian tìm kiếm để cải tiến thuật tốn gói q tìm bao lồi tập điểm hữu hạn Rd với d ≥ Một số thử nghiệm tính tốn thuật tốn áp dụng kỹ thuật giảm khoảng 40% so với thuật tốn gói q ban đầu khoảng 35% so với phiên cải tiến thuật toán năm 2013 • Đề xuất thuật tốn cải tiến tìm bao lồi cho lớp tốn ứng dụng tìm tam giác phân Deulaunay biểu đồ Voronoi • Trình bày ứng dụng bải tốn tìm bao lồi giải tốn tìm vị trí tối ưu Một số kết tính tốn thực nghiệm chúng tơi rằng, việc tính bao lồi trước thực tốn hiệu • Đề xuất thuật tốn Quickhull tìm bao lồi tập hữu hạn hình tròn mặt phẳng dựa vào ý tưởng thuật tốn Quickhull tính bao lồi cho điểm Các tính tốn chúng tơi phần cuối chương thuật toán Quickhull chạy nhanh gấp khoảng 3,8 lần so với thuật toán gia tăng Trong thời gian chúng tơi tiếp tục tìm hiểu mở rộng tốn tìm bao lồi cho tập hình cầu, tập đoạn thẳng, tập đa giác lồi, tập đa diện lồi, v.v Hơn nữa, chúng tơi muốn tiếp tục tìm hiểu ứng dụng tốn tìm bao lồi tốn hình học khác tìm đường ngắn nhất, tính biểu đồ voronoi tập hình trịn, v.v 23 Danh mục cơng trình khoa học tác giả liên quan đến luận án N D Hoang and N K Linh (2015), “Quicker than quickhull”, Vietnam Journal of Mathematics 43, pp 57–70 N K Linh and L D Muu (2015), “A convex hull algorithm for solving a location problem”, RAIRO-Operations Research 49, pp 589–600 N K Linh, C Song, P T An, N D Hoang, D.-S Kim (2018), “QHullDisk: A Faster Convex Hull Algorithm for Disks”, Submitted to ACM Transactions on Mathematical Software (TOMS) ... tốn tìm bao lồi, luận án ? ?Bài tốn tìm bao lồi tập điểm hữu hạn ứng dụng? ?? đề xuất phương pháp cải tiến cho số thuật toán tiêu biểu tìm bao lồi cho tập điểm Nội dung nghiên cứu luận án bao gồm: Đề... Bài tốn tìm bao lồi cho tập hữu hạn điểm Từ định nghĩa bao lồi ta dễ dàng thấy bao lồi tập P tập lồi nhỏ chứa P Bao lồi tập hữu hạn điểm P ⊂ Rd đa diện lồi Rd Một đa diện lồi có hữu hạn diện rời... lần so với thuật toán giới thiệu năm 2015 14 Chương Một ứng dụng tốn tìm bao lồi tập điểm Tìm vị trí tối ưu toán thường gặp thực tế Bài toán xét chương xác định điểm x tập lồi đóng cho trước