Tam giác phân delaunay (delaunay triangulation)
BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI VIỆN CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG Hình học tính toán ĐỀ TÀI Tam giác phân Delaunay (Delaunay Triangulation) Giảng viên hướng dẫn: Huỳnh Thị Thanh Bình Nhóm Hà Nội, tháng - 2014 MỤC LỤC Lời nói đầu Trong toán học hình học tính toán, tam giác phân Delaunay (Delaunay Triangulation) cấu trúc quan trọng có nhiều ứng dụng thực tế Nó coi cấu trúc đối ngẫu biểu đồ Voronoi (Voronoi Diagram) kế thừa tất thuộc tính đáng quan tâm loại biểu đồ Ngoài ra, tam giác phân Delau tự có thuộc tính đặc biệt khác Chính vậy, học học phần Hình học tính toán này, chúng em định chọn đề tài nghiên cứu Tam giác phân Delaunay làm đề tài tập lớn Trong báo cáo này, chúng em áp dụng tam giác phân Delaunay vào toán cụ thể, mô hình hóa phần bề mặt địa hình Trái Đất Nội dung báo cáo gồm phần chính: - Phần 1: Giới thiệu sơ lược biểu đồ Voronoi - Phần 2: Giới thiệu tam giác phân tập điểm mặt phẳng ứng dụng giải toán mô hình hóa phần bề mặt Trái Đất trường hợp riêng nó: Tam giác phân Delaunay - Phần 3: Xây dựng tam giác phân Delaunay cho toán mô hình hóa phần bề mặt Trái Đất Do thời gian nghiên cứu trình độ nhóm có hạn nên chắn trình thực đề tài không tránh khỏi sai lầm, thiếu sót nội dung lẫn hình thức Trong trình nghiên cứu, chúng em nhận bảo, giúp đỡ tận tình cô Huỳnh Thị Thanh Bình bạn sinh viên lớp, để hoàn thành báo cáo Chúng em xin chân thành cảm ơn! Chương Giới thiệu sơ lược biểu đồ Voronoi Biểu đồ Voronoi Biểu đồ Voronoi cấu trúc quan trọng hình học tính toán, thường dùng để mã hóa thông tin lân cận Cho tập điểm mặt phẳng hay không gian n chiều khác Ta gọi điểm site Gọi ô Voronoi site , tập điểm q nằm mặt phẳng mà gần site khác Ta định nghĩa ô Voronoi dựa khái niệm giao nửa mặt phẳng Cho site , , tập điểm gần tạo nên nửa mặt phẳng mở với đường bao đường trung trực cạnh Ký hiệu nửa mặt phẳng , Dễ thấy điểm q nằm q nằm phần giao , với Vì giao nửa mặt phẳng đa giác lồi nên đa giác lồi (ngoại trừ điểm nằm bao lồi P bao đóng) Ta định nghĩa biểu đồ Voronoi tập điểm P lại mặt phẳng sau loại bỏ hết ô Voronoi (không tính biên chúng) Ký hiệu làVor(P) Dễ thấy, biểu đồ Voronoi chứa tập đoạn thẳng tia Hình 1.1 Biểu đồ Voronoi Một số tính chất biểu đồ Voronoi a Phức hợp Voronoi Biểu đồ Voronoi phức hợp ô mà mặt đa giác lồi Mỗi điểm A cạnh biểu đồ Voronoi cách hai láng giềng gần , Tồn đường tròn tâm A qua site khác nằm đường tròn (Hình 1.2a) Hình 1.2: Các tính chất biểu đồ Voronoi b Đỉnh Voronoi Đỉnh Voronoi nơi ba ô Voronoi , , giao Đỉnh cách ba site tâm đường tròn qua site không chứa thêm site khác bên nó(Hình 1.2b) c Bậc Từ điểm mặt phẳng ta xác định đường tròn Nếu ta giả thiết trường hợp tổng quát điểm nằm đường tròn tất đỉnh Voronoi có bậc ba d Bao lồi Một ô biểu đồ Voronoi không khép kín site tương ứng nằm bao lồi (khi site điểm gần so với điểm vô cực) P Vì vậy, ta dễ dàng trích xuất bao lồi thời gian tuyến tính e Kích thước Nếu gọi n số site biểu đồ Voronoi đồ thị phẳng với n mặt Theo công thức Euler số đỉnh voronoi gần 2n số cạnh không 3n + Định lý quan trọng biểu đồ Voronoi Định lý phát biểu sau: Định lý 1.1 Cho P tập điểm mặt phẳng Vor(P) biểu đồ Voronoi P, ta có: a Một điểm q đỉnh Vor(P) đường tròn rỗng lớn chứa không site biên b Đường trung trực d đoạn (site ) chứa cạnh Vor(P) có điểm q d cho qua , không chứa site khác bên Trên số tính chất chung biểu đồ Voronoi Ở chương sau, ta nghiên cứu khái niệm tam giác phân tập điểm mặt phẳng cấu trúc đối ngẫu biểu đồ Voronoi tam giác phân Delaunay Chương Tam giác phân tập điểm mặt phẳng Tam giác phân Delaunay Tam giác phân tập điểm mặt phẳng Cho tập điểm mặt phẳng Ta định nghĩa phép chia mặt phẳng cực đại phép chia cho thêm vào cạnh nối hai đỉnh mà không phá vỡ tính phẳng Nói cách khác, cạnh không thuộc vào cắt số cạnh tồn Một phép tam giác phân P định nghĩa phép chia mặt phẳng cực đại với tập đỉnh P Với định nghĩa trên, rõ ràng tam giác phân tồn Do mặt bị giới hạn đa giác đa giác thực tam giác phân nên mặt ngoại trừ mặt không bị giới hạn tam giác Còn với mặt không bị giới hạn, không khó để đoạn thẳng nối hai điểm liên tiếp biên bao lồi P cạnh tam giác phân Điều ngụ ý hợp mặt không giới hạn thường phần bù bao lồi Số tam giác (và số cạnh) phép tam giác phân P Số lượng xác phụ thuộc vào số điểm P nằm biên bao lồi P theo định lý sau: Định lý 2.1 Cho P tập n điểm không thẳng hàng mặt phẳng k số điểm P nằm biên bao lồi P Khi đó, phép tam giác phân P có 2n – – k tam giác 3n – – k cạnh Chứng minh: Gọi tam giác phân P, m số lượng tam giác , số mặt phép tam giác phân Mọi tam giác có cạnh mặt không bao có k cạnh Ngoài ra, cạnh thuộc mặt Do đó, tổng số cạnh là: Theo công thức Euler: Thay giá trị theo n k, theo m vào công thức ta có: Gọi tam giác phân P giả thiết có m tam giác Xét 3m góc tam giác , xếp chúng theo thứ tự tăng dần Gọi dãy góc kết với giá trị tăng dần, với Gọi véctơ góc Gọi phép tam giác phân khác tập điểm P véctơ góc tương ứng Ta nói véctơ góc lớn véctơ góc theo thứ tự từ điển lớn Nói cách khác, tồn số i, với i 3m cho : Kí hiệu: Một tam giác phân gọi tối ưu góc với tam giác phân P Dưới đây, ta tìm hiểu tam giác phân tối ưu góc Trước tiên, ta nhắc lại định lý Thales quen thuộc Gọi góc nhỏ tạo điểm p, q, r Định lý 2.2 Cho C đường tròn, đường thẳng cắt C điểm a b Có điểm p, q, r s nằm nửa mặt phẳng bờ Giả sử p q nằm đường tròn C, r nằm bên C s nằm bên C Khi đó: Hình 2.1: Minh họa định lý 2.2 Xét cạnh tam giác phân P Nếu e cạnh nằm bao lồi P, cạnh tam giác Nếu tam giác tạo thành tứ giác lồi, tạo tam giác phân cách loại bỏ cạnh khỏi chèn cạnh vào thay Chúng ta gọi thao tác flip cạnh Điểm khác biệt véctơ góc sáu góc thay sáu góc Hình bên minh hoạ điều Hình 2.3: Flip cạnh Chúng ta gọi cạnh cạnh không hợp lệ nếu: Nói cách khác, cạnh không hợp lệ tăng góc nhỏ cách cục cách flip cạnh Nhận xét sau rút từ định nghĩa cạnh không hợp lệ Nhận xét 2.3 Cho tam giác phân có cạnh không hợp lệ e Cho tam giác phân thu từ cách flip cạnh e Khi đó, ) > A( Có thể thấy không cần thiết phải tính toán góc , để kiểm tra cạnh cho có hợp lệ hay không Thay vào đó, sử dụng tiêu chuẩn đơn giản bổ đề bên Sự đắn bổ đề chứng minh định lý Thales Bổ đề 2.4 Cho cạnh cạnh chung tam giác Gọi C đường tròn ngoại tiếp tam giác Cạnh không hợp lệ điểm nằm bên đường tròn C Ngoài ra, điểm tạo tứ giác lồi không nằm đường tròn chắn có cạnh cạnh không hợp lệ Chú ý tiêu chuẩn đối xứng : nằm đường tròn ngoại tiếp tam giác nằm đường tròn ngoại tiếp tam giác Khi tất điểm nằm đường tròn, hợp lệ Chú ý tam giác chung cạnh không hợp lệ phải ghép thành tứ giác lồi Điều kiện đảm bảo thực flip cạnh không hợp lệ Chúng ta định nghĩa tam giác phân hợp lệ tam giác phân không chứa cạnh không hợp lệ Từ nhận xét trên, thấy tam giác phân tối ưu góc hợp lệ Tìm tam giác phân hợp lệ đơn giản có tam giác phân khởi đầu Chúng ta đơn giản flip cạnh không hợp lệ tất cạnh hợp lệ Thuật toán tìm tam giác phân hợp lệ miêu tả sau: Algorithm LEGALTRIANGULATION() Input Một tam giác phân tập điểm P Output Một tam giác phân hợp lệ P while chứa cạnh không hợp lệ (* Flip cạnh *) Cho tam giác có chung cạnh Xoá cạnh khỏi thêm cạnh thay vào return Thuật toán có tính dừng theo Nhận xét 1.3, véctơ góc tăng lên sau bước lặp thuật toán Bởi có số hữu hạn tam giác phân khác P nên thuật toán tính dừng Một thuật toán kết thúc, kết tam giác phân hợp lệ Mặc dù thuật toán nói có tính dừng, nhiên, chậm để áp dụng thực tế Chúng ta để thuật toán qua bên Sau cùng, ta cần đến thủ tục tương tự Nhưng đầu tiên, ta tìm cách tiếp cận hoàn toàn khác, khác biệt.2 Bài toán mô hình hóa phần bề mặt Trái Đất Ta mô hình phần bề mặt Trái Đất địa hình (terrain) Địa hình bề mặt chiều không gian chiều với thuộc tính đặc biệt: Mỗi đường thẳng đứng cắt địa hình điểm đường thẳng đứng cắt không gian chiều thực tế Nói cách khác, địa hình đồ thị hàm cho chiều cao ứng với điểm miền A địa hình Hình 2.4: Khung nhìn phối cảnh địa hình Dĩ nhiên, ta hết độ cao điểm Trái Đất mà có độ cao nơi ta đo đạc Nghĩa là, nói địa hình, ta biết giá trị hàm f tập hữu hạn điểm mẫu Từ độ cao điểm mẫu này, cách ta phải lấy xấp xỉ độ cao điểm khác miền Một cách đơn giản gán cho điểm độ cao điểm mẫu gần Tuy nhiên, cách làm cho địa hình bị rời rạc, trông thiếu tự nhiên Do đó, ta cần có phương pháp xấp xỉ tốt Hình 2.5: Gióng điểm mẫu lên độ cao tương ứng Đầu tiên, ta xác định phép tam giác phân tập phép chia mặt phẳng thành mặt có biên hình tam giác với đỉnh điểm P (giả thiết điểm mẫu đủ để tạo tam giác phủ kín toàn địa hình) Sau đó, ta gióng điểm mẫu lên độ cao chúng, cách này, ta ánh xạ tam giác tam giác phân thành tam giác không gian chiều (Hình 2.5) Cái ta thu địa hình đa diện, đồ thị hàm liên tục tuyến tính khúc Ta sử dụng địa hình đa diện xấp xỉ địa hình gốc Một câu hỏi cần đặt ra: Ta thực phép tam giác phân điểm mẫu nào? Nhìn chung, có nhiều cách khác Nhưng cách cách phù hợp với mục đích chúng ta, xấp xỉ địa hình? Không có câu trả lời rõ ràng Ta địa hình gốc, ta biết độ cao điểm mẫu Vì thêm thông tin gì, độ cao điểm mẫu độ cao cho phép tam giác phân nào, tất phép tam giác phân dường tốt Tuy nhiên, số phép tam giác phân nhìn tự nhiên Ví dụ hình cho thấy phép tam giác phân tập điểm mẫu: Hình 2.6: Hai cách flip cạnh khác dẫn đến thay đổi lớn Nhìn vào độ cao điểm mẫu hình dung điểm biểu thị đỉnh núi Phép tam giác phân (a) biểu thị trực giác Tuy nhiên phép tam giác phân b, thay nối cạnh điểm có độ cao 980 990 lại nối cạnh điểm có độ cao 10 36 khiến ta có cảm giác có thung lũng cắt ngang đỉnh núi Bằng trực giác, ta thấy sai Ta biến trực giác thành tiêu chuẩn đánh giá phép tam giác phân (a) tốt phép tam giác phân (b) hay không? Vấn đề phép tam giác phân (b) độ cao điểm q xác định bới điểm tương đối xa Điều xảy q nằm cạnh tam giác dài nhọn Độ mỏng tam giác nguyên nhân vấn đề Vì vậy, phép tam giác phân mà có góc nhỏ không tốt Do đó, ta xếp hạng phép tam giác phân theo góc nhỏ tam giác có chúng Nếu phép tam giác phân có góc nhỏ xét đến góc nhỏ thứ lặp lại với góc nhỏ thứ n khác Vì có số hữu hạn phép tam giác phân với tập điểm P cho trước nên với phương pháp này, thu tam giác phân tốt với góc nhỏ lớn tất Đây tam giác phân cần tìm Tam giác phân Delaunay Hình 2.7: Đồ thị đối ngẫu Vor(P) Cho P tập n điểm (site) Ở chương ta nhắc đến biểu đồ Voronoi P cách chia mặt phẳng thành n vùng, vùng tương ứng với site P cho vùng site chứa tất điểm mặt phẳng gần với site p so với site khác Kí hiệu biểu đồ Voronoi P Vor(P) Vùng site p gọi ô Voronoi p, kí hiệu Trong phần này, tìm hiểu đồ thị đối ngẫu biểu đồ Voronoi Đồ thị G có nút ô Voronoi, tương ứng với site, có cung hai nút ô tương ứng có chung cạnh Điều có nghĩa tương ứng với cạnh Vor(P) cung G Ở hình bên trên, ta thấy có tương ứng – cung G cạnh Vor(P) Hình 2.8: Đồ thị Delaunay DG(P) 10 Ở hình này, cung chuyển thành đoạn thẳng Nút tương ứng với ô Voronoi Ѵ(p) điểm p, cung nối nút thuộc Ѵ(p) Ѵ(q) đoạn Chúng ta gọi đồ thị đối ngẫu đồ thị Delaunay P kí hiệu DG(P) (Mặc dù tên nghe tiếng Pháp, đồ thị Delaunay không liên quan với họa sĩ người Pháp Nó đặt tên theo tên nhà toán học Nga Бориис Николаиевич Делонеи (chuyển ngữ sang tiếng Anh Boris Nikolaevich Delone) - người tìm Dịch tiếng Anh nhưng, sách ông xuất tiếng Pháp- mà thời điểm đó, ngôn ngữ khoa học tiếng Pháp tiếng Đức, nên tên ông chuyển ngữ sang tiếng Pháp) Đồ thị Delaunay tập điểm có số tính chất đặc biệt Tính chất đặc biệt đồ thị phẳng: Không có cạnh đồ thị cắt Định lý 2.5 Đồ thị Delaunay tập điểm mặt phẳng đồ thị phẳng Chứng minh Để chứng minh điều này, cần xét đến tính chất cạnh biểu đồ Voronoi Định lý 1.1b theo thuật ngữ đồ thị Delaunay: Cạnh thuộc đồ thị Delaunay DG(P) có đường tròn qua và site khác P nằm (Tâm đường tròn nằm cạnh chung ) Hình 2.6: Đường tròn có tâm nằm cạnh chung Gọi tam giác với đỉnh , tâm Cạnh nối tâm tam giác nằm ; tương tự, cạnh nối tâm nằm Gọi cạnh khác DG(P) định nghĩa đường tròn tam giác tương tự Giả sử, cắt Vì nằm nên chúng nằm Tương tự, phải cắt cạnh qua tâm tam giác Điều chứng tỏ, hai cạnh chứa tâm đường tròn tam giác (giả dụ a) phải cắt Tương tự, hai cạnh chứa tâm đường tròn tam giác (giả dụ b) phải cắt Suy ra, hai cạnh a b phải cắt Điểm cắt thuộc ô Voronoi Ѵ phân biệt Điều trái với lập luận cạnh a, b thuộc ô Voronoi Đồ thị Delaunay tập điểm P đồ thị đồ thị đối ngẫu biểu đồ Voronoi Như trên, đỉnh Vor(P) nằm mặt Các cạnh bao 11 quanh mặt tương ứng với cạnh biểu đồ Voronoi vốn gắn liền với đỉnh Voronoi mà chúng đồng quy Cụ thể, đỉnh v Vor(P) đỉnh tạo ô Voronoi site đó, mặt f DG(P) nhận làm đỉnh Theo định lý biểu đồ Voronoi phía trên, trường hợp này, điểm nằm đường tròn tâm v Vì vậy, f k cạnh mà đa giác lồi Hình 2.7 Các site tạo nên đa giác lồi Nếu điểm P phân bố cách ngẫu nhiên xác suất để điểm nằm đường tròn nhỏ Chúng ta nói tập hợp điểm thuộc vào trường hợp tổng quát không chứa điểm nằm đường tròn Nếu P thuộc trường hợp tổng quát, tất đỉnh biểu đồ Voronoi có bậc đó, tất mặt bao đóng DG(P) tam giác Điều lý giải DG(P) thường gọi tam giác phân Delaunay P Để xác hơn, gọi đồ thị Delaunay P Chúng ta định nghĩa tam giác phân Delaunay phép tam giác phân có cách thêm cạnh vào đồ thị Delaunay Vì tất mặt DG(P) lồi nên để có tam giác phân không khó Có thể thấy, tam giác phân Delaunay P DG(P) tam giác phân với P thuộc trường hợp tổng quát Chúng ta nhắc lại định lý 1.1 biểu đồ Voronoi theo thuật ngữ đồ thị Delaunay Định lý 2.6 Cho P tập điểm mặt phẳng (i) Ba điểm đỉnh thuộc mặt đồ thị Delaunay P đường tròn ngoại tiếp điểm không chứa điểm khác P bên (ii) Hai điểm tạo nên cạnh đồ thị Delaunay P có hình tròn C chứa biên không chứa điểm khác P bên Định lý 2.6 đặc tả xác đặc trưng tam giác phân Delaunay 12 Định lý 2.7 Cho P tập hợp điểm mặt phẳng tam giác phân P Khi đó, tam giác phân Delaunay P đường tròn ngoại tiếp tam giác thuộc không chứa điểm P bên Bởi lập luận tam giác phân đáp ứng mục đích nội suy độ cao véctơ góc lớn bước tiếp theo, xem xét đến véctơ góc tam giác phân Delaunay Đầu tiên, đề cập đến phép tam giác phân hợp lệ Định lý 2.8 Cho P tập hợp điểm mặt phẳng Một tam giác phân P hợp lệ tam giác phân Delaunay P Chứng minh: Dễ dàng chứng minh điều kiện cần trực tiếp từ định nghĩa: tam giác phân Delaunay hợp lệ Để chứng minh điều kiện đủ, tam giác phân hợp lệ tam giác phân Delaunay, sử dụng lập luận phản chứng Giả sử, tam giác phân hợp lệ P không tam giác phân Delaunay Khi đó, theo định lý 2.6, có tam giác mà đường tròn ngoại tiếp chứa điểm bên Gọi e cạnh tam giác tam giác không chứa Với tất cặp , chọn cặp có cực đại Xét tam giác kề với tam giác cạnh e Vì hợp lệ nên e hợp lệ Theo bổ đề 2.4, không nằm bên Đường tròn ngoại tiếp chứa phần đường tròn , thuộc vào hai nửa mặt phẳng khác với bờ e Hình 2.8: Đường tròn ngoại tiếp chứa phần đường tròn , thuộc vào hai nửa mặt phẳng khác với bờ e Suy ra, Giả sử cạnh tam giác cho không nằm Khi đó, > theo định lý Thales Điều mâu thuẫn với định nghĩa cặp Bởi tam giác phân tối ưu góc hợp lệ nên theo Định lý 2.8, tam giác phân tối ưu góc P tam giác phân Delaunay P Khi P trường hợp tổng quát, có tam giác phân hợp lệ Tam giác phân tam giác phân tối ưu góc gọi tam giác phân Delaunay nhất, trùng 13 với đồ thị Delaunay Nếu P không trường hợp tổng quát, tam giác phân đồ thị Delaunay hợp lệ Khi đó, tất tam giác phân Delaunay tối ưu góc Tuy nhiên, véctơ góc chúng không khác biệt nhiều Ngoài ra, sử dụng định lý Thales chứng minh góc nhỏ tam giác phân tạo tập hợp điểm nằm đường tròn Nghĩa là, góc nhỏ không phụ thuộc vào phép tam giác phân Điều chứng tỏ tam giác phân biến đồ thị Delaunay thành tam giác phân Delaunay có góc nhỏ Định lý sau tổng kết lại lập luận bên Định lý 2.9 Cho P tập hợp điểm mặt phẳng Bất kì phép tam giác phân tối ưu góc P tam giác phân Delaunay P Hơn nữa, tam giác phân Delaunay P tam giác phân có góc nhỏ cực đại phép tam giác phân P Xây dựng tam giác phân Delaunay Chúng ta thấy xây dựng tam giác phân Delaunay cho tập điểm P giúp có địa hình đa diện cho tập điểm mẫu P tam giác phân Delaunay đảm bảo cực đại góc nhỏ Từ đó, xấp xỉ địa hình thực tế xác Vậy làm để xây dựng tam giác phân Delaunay? Ở phần trước, ta biết từ Vor(P), dễ dàng thu đồ thị thị Delaunay DG(P) phép tam giác phân mặt có nhiều điểm, thu phép tam giác phân Delaunay Trong phần này, đề cập đến phương pháp khác: xây dựng tam giác phân Delaunay cách trực tiếp, sử dụng phương pháp tăng ngẫu nhiên Phương pháp dựa tư tưởng: xây dựng tam giác đủ lớn để chứa hết điểm tránh xuất hình thang không kín Hình 2.9: Xây dựng tam giác phân đủ lớn để chứa hết điểm Chúng ta bắt đầu xây dựng tam giác phân Delaunay việc xây dựng tam giác đủ lớn để chứa hết tập hợp P Chúng ta thêm vào điểm để với điểm cao P tạo tam giác chứa tất điểm lại P Điều có nghĩa tìm tam giác phân Delaunay thay tìm tam giác phân Delaunay P Sau đó, để có tam giác phân Delaunay P ta bỏ đỉnh cạnh nối với chúng Để công việc diễn suôn sẻ, chọn đủ xa với tập hợp P để chúng 14 tác động đến tam giác tam giác phân Delaunay P Cụ thể, phải đảm bảo chúng không nằm đường tròn xác định điểm thuộc P Chi tiết cách thực bàn sau Đầu tiên, xem xét thuật toán sử dụng Thuật toán thực tăng điểm ngẫu nhiên, nên thêm điểm cách ngẫu nhiên trì tam giác phân Delaunay tập điểm xét Xét điểm thêm : Đầu tiên, tìm tam giác phép tam giác phân chứa điểm Sau đó, thêm cạnh nối với đỉnh tam giác Nếu nằm cạnh e phép tam giác phân thêm cạnh nối với hai đỉnh đối diện hai tam giác nhận e làm cạnh Hình minh hoạ cho trường hợp nói Lúc này, có tam giác phân mới, đảm bảo tam giác phân Delaunay Việc thêm điểm tạo cạnh không hợp lệ Hình 2.10: Hai trường hợp thêm điểm Để phát cạnh không hợp lệ, gọi hàm LEGALIZEEDE với cạnh thêm Hàm thay cạnh không hợp lệ cạnh hợp lệ cách flip cạnh Thuật toán để xây dựng tam giác phân Delaunay sau: (Có chút mẹo xét tập hợp P với n + điểm thay n điểm) Algorithm DELAUNAYTRIANGULATION(P) Input Tập hợp P với n + điểm mặt phẳng Output Một tam giác phân Delaunay P Gọi điểm cao tập P (điểm nằm bên phải số điểm có toạ độ y lớn nhất) Gọi điểm đủ xa để điểm P nằm tam giác Khởi tạo tam giác phân chứa tam giác Tạo hoán vị ngẫu nhiên tập for to n (* chèn vào : *) Tìm tam giác chứa điểm if nằm bên tam giác then Thêm cạnh nối với , nhờ đó, tam giác tách thành tam giác 15 10 11 12 13 14 15 16 17 18 19 20 LEGALIZEEDGE(, , ) LEGALIZEEDGE(, , ) LEGALIZEEDGE(, , ) else (* nằm cạnh , giả sử cạnh *) Thêm cạnh với đỉnh lại tam giác có chung cạnh Hai tam giác ban đầu tách thành tam giác LEGALIZEEDGE(, , ) LEGALIZEEDGE(, , ) LEGALIZEEDGE(, , ) LEGALIZEEDGE(, , ) Loại đỉnh tất cạnh nối với chúng khỏi return Chúng ta nói chi tiết hàm LEGALIZEEDGE biến đổi tam giác phân thông thường thành tam giác phân Delaunay Ở Định lý 2.8 nói tam giác phân thông thường tam giác phân Delaunay tất cạnh hợp lệ Trên tinh thần thuật toán LEGALTRIANGULATION, flip cạnh không hợp lệ không cạnh không hợp lệ Vấn đề đặt cạnh không hợp lệ việc chèn thêm đỉnh Chú ý cạnh hợp lệ trở nên không hợp lệ số tam giác nhận làm cạnh bị thay đổi Bởi vậy, cạnh tam giác bị thay đổi cần phải kiểm tra lại Việc kiểm tra cạnh thực hàm LEGALIZEEDGE Nếu LEGALIZEEDGE flip cạnh, điều dẫn đến cạnh khác không hợp lệ Bởi vậy, LEGALIZEEDGE phải thực đệ quy cạnh có khả không hợp lệ LEGALIZEEDGE(, , ) (* điểm thêm vào, cạnh cần flip *) if không hợp lệ then Cho tam giác có chung cạnh với tam giác (* flip : *) Thay cạnh LEGALIZEEDGE(, , ) LEGALIZEEDGE(, , ) Việc kiểm tra cạnh hợp lệ hay không thực cách áp dụng Bổ đề 2.4 Phức tạp xuất điểm đặc biệt Chúng ta đề cập đến điều sau Đầu tiên, chứng minh thuật toán đắn Để đảm bảo tính đắn thuật toán, chứng minh không cạnh không hợp lệ sau tất lời gọi LEGALIZEEDGE thực xong Từ hàm LEGALIZEEDGE, rõ ràng thấy cạnh tạo từ việc thêm nhận hai đầu mút 16 Hình 2.11: Tất cạnh tạo liên thuộc với Hình 2.11 minh hoạ điều này: Các tam giác bị huỷ tam giác có màu xám Nhận xét quan trọng (sẽ chứng minh bên dưới) cạnh hợp lệ Vì vậy, không cần thiết kiểm tra chúng Cùng với nhận xét bên cạnh không hợp lệ hai tam giác nhận làm cạnh bị thay đổi Điều đảm bảo thuật toán kiểm tra cạnh trở thành không hợp lệ Do đó, thuật toán đắn Chú ý rằng, thuật toán LEGALTRIANGULATION, LEGALIZEEDGE không rơi vào vòng lặp vô hạn hành động flip cạnh làm véctơ tam giác phân lớn lên Bổ đề 9.10 Mỗi cạnh tạo DELAUNAYTRINGULATION hay LEGALIZEEDGE trình thêm đỉnh cạnh đồ thị Delaunay Hình 2.12: Co nhỏ C ta C’ qua nằm C Chứng minh: Xét cạnh tạo , , (có thể ) từ việc tách tam giác (có thể ) Vì tam giác phép tam giác phân Delaunay trước thêm đỉnh pr nên đường tròn ngoại tiếp C không chứa điểm bên Bằng việc co nhỏ lại C tìm đường tròn C’ qua nằm C Vì nên C’ không chứa điểm Điều cho thấy cạnh đồ thị Delaunay sau thêm vào 17 điểm Chứng minh tương tự với hai cạnh suy chúng cạnh đồ thị Delaunay (và với cạnh tồn tại) Xét trường hợp xảy flip cạnh thuật toán LEGALIZEEDGE Thí dụ, phép flip cạnh thay cạnh tam giác cạnh Vì tam giác Delaunay trước thêm đỉnh đường tròn ngoại tiếp C có chứa – không, không hợp lệ Chúng ta co đường tròn ngoại tiếp để có đường tròn rỗng C’ chứa biên Do đó, cạnh đồ thị Delaunay sau hành động thêm Chúng ta chứng minh tính đắn thuật toán Phần lại trình bày cách thức thực hai bước quan trọng thuật toán: làm để tìm tam giác chứa điểm DELAUNAYTRIANGULATION làm để chọn hai điểm hợp lý Chúng ta bắt đầu với vấn đề trước Để tìm tam giác chứa điểm , sử dụng phương pháp sau: xây dựng tam giác phân Delaunay, xây dựng đồ thị có hướng không chu trình D lưu vị trí điểm Lá D tương ứng với tam giác phép tam giác phân T Các nút D tương ứng với tam giác thuộc tam giác phân bước trước bị huỷ bỏ Sau khai báo khai báo D đồ thị có hướng chu trình (DAG) với nút tương ứng với tam giác Giả sử điểm chia tam giác tam giác phân thành hai (ba) tam giác Tương ứng, D thêm hai (ba) tương ứng với trở thành nút với trỏ trỏ đến hai (ba) Tương tự, thay hai tam giác hai tam giác phép flip cạnh, tạo cho hai tam giác hai nút có trỏ trỏ đến Hình minh hoạ cho thay đổi D thêm vào điểm Có thể thấy tạo cho nút trong, tối đa có ba trỏ Sử dụng D xác định vị trí điểm thêm vào tam giác phân Việc thực theo cách sau: Đầu tiên, bắt đầu gốc D, tương ứng với tam giác khởi tạo Chúng ta kiếm tra ba gốc để xét xem nằm tam giác tiếp tục với tương ứng bên Thực đệ quy đến gặp D, kết luận tương ứng với tam giác tam giác phân chứa Vì nút có tối đa ba nên hành động duyệt có chi phí thời gian tuyến tính, phụ thuộc vào số nút đường tìm kiếm hay nói cách khác, phụ thuộc vào số tam giác lưu trữ D mà chứa 18 Hình 2.13: Hiệu việc chèn điểm vào tam giác cấu trúc liệu D (phần D không thay đổi bị bỏ qua hình) 19 Chỉ điều băn khoăn làm để chọn , làm để thực kiểm tra cạnh có hợp lệ hay không Nói cách khác, phải chọn đủ xa không muốn hai điểm đặc biệt ảnh hưởng đến tam giác phân Delaunay P Nhưng ngược lại, không muốn phải làm việc với miền toạ độ lớn so với thực tế Vì vậy, xem hai điểm tượng trưng: thực tế, không thực gán toạ độ cho chúng mà thay vào thay đổi việc kiểm tra tuỳ thuộc vào vị trí điểm cạnh không hợp lệ để đảm bảo chúng chọn hai điểm đủ xa so với yêu cầu Ở đây, nói điểm cao điểm và sử dụng cách so sánh để xếp điểm P Cho đường nằm ngang nằm bên tất điểm thuộc P đường nằm ngang nằm tất điểm Theo quy tắc nói trên, chọn nằm đường đủ xa phía bên phải cho nằm bên tất đường tròn qua điểm không thẳng hàng P Do đó, cách xếp điểm P theo chiều kim đồng hồ cộng với tương tự với cách xếp chúng với Tiếp theo, chọn nằm đường đủ xa bên trái cho nằm đường tròn tạo điểm không thẳng thẳng tập Do đó, cách xếp điểm theo chiều ngược kim đồng hồ cộng với tương tự với cách xếp chúng với Tam giác phân Delaunay chứa tam giác phân Delaunay P, cạnh nối với điểm bao lồi P bên phải, cạnh nối với điểm bao lồi P bên trái cạnh Điểm thấp P điểm cao P nối với Trong bước định vị điểm, cần xác định rõ vị trí điểm đường thẳng nối với Theo cách lựa chọn , điều kiện sau tương đương nhau: • nằm bên trái đường thẳng nối từ đến ; • • nằm bên trái đường thẳng nối từ đến ; theo thứ tự từ điển lớn Chúng ta phải rõ cách thức xử lý bước kiểm tra hợp lệ cạnh Gọi cạnh kiểm tra và hai đỉnh khác hai tam giác nhận cạnh (nếu chúng tồn tại) Có khả xảy ra: • Nếu cạnh tam giác cạnh luôn hợp lệ • Nếu số i, j, k, l không âm trường hợp thông thường: Không có điểm bốn điểm xét thuộc dạng điểm tượng trưng Do đó, không hợp lệ nằm bên đường tròn qua , • Tất trường hợp khác: Trong trường hợp hợp lệ min(k,l) < min(i, j) Chỉ có khả sau cần chứng minh Vì trường hợp xử lý khả nên tối đa có hai số i j có khả số âm Mặt khác, là điểm mà vừa thêm vào đó, tối đa có hai số k l số âm Nếu có bốn số âm, đó, điểm có số âm nằm bên đường tròn qua ba điểm lại phương pháp đắn Nếu không, min(i, j) min(k, l) số âm nằm bên đường tròn qua ba điểm thuộc nên phương pháp đắn 20 [...]... phép tam giác phân Điều đó chứng tỏ bất kì tam giác phân nào biến đồ thị Delaunay thành tam giác phân Delaunay sẽ có góc nhỏ nhất là như nhau Định lý sau đây tổng kết lại các lập luận bên trên Định lý 2.9 Cho P là một tập hợp điểm trong mặt phẳng Bất kì phép tam giác phân tối ưu góc nào của P đều là một tam giác phân Delaunay của P Hơn thế nữa, bất kì tam giác phân Delaunay nào của P đều là tam giác phân. .. của tam giác phân Delaunay Đầu tiên, chúng ta đề cập đến phép tam giác phân hợp lệ Định lý 2.8 Cho P là một tập hợp điểm trong mặt phẳng Một tam giác phân của P là hợp lệ nếu và chỉ nếu là một tam giác phân Delaunay của P Chứng minh: Dễ dàng chứng minh điều kiện cần trực tiếp từ định nghĩa: bất kì tam giác phân Delaunay nào đều hợp lệ Để chứng minh điều kiện đủ, một tam giác phân hợp lệ là một tam giác. .. DG(P) đều là tam giác Điều này lý giải vì sao DG(P) thường được gọi là tam giác phân Delaunay của P Để chính xác hơn, chúng ta sẽ gọi là đồ thị Delaunay của P Chúng ta định nghĩa một tam giác phân Delaunay là một phép tam giác phân có được bằng cách thêm các cạnh vào đồ thị Delaunay Vì tất cả các mặt của DG(P) đều lồi nên để có được một tam giác phân như thế không khó Có thể thấy, tam giác phân Delaunay. .. sử là cạnh của tam giác sao cho không nằm trong Khi đó, > theo định lý Thales Điều này mâu thuẫn với định nghĩa của cặp Bởi vì bất kì tam giác phân tối ưu góc nào đều hợp lệ nên theo Định lý 2.8, bất kì tam giác phân tối ưu góc nào của P cũng là một tam giác phân Delaunay của P Khi P là một trường hợp tổng quát, sẽ chỉ có một tam giác phân hợp lệ duy nhất Tam giác phân đó là tam giác phân duy nhất... dựng tam giác phân đủ lớn để chứa hết các điểm Chúng ta sẽ bắt đầu xây dựng một tam giác phân Delaunay bằng việc xây dựng một tam giác đủ lớn để chứa được hết tập hợp P Chúng ta thêm vào 2 điểm và để cùng với điểm cao nhất của P tạo ra tam giác chứa tất cả các điểm còn lại của P Điều này có nghĩa là chúng ta sẽ tìm tam giác phân Delaunay của thay vì tìm tam giác phân Delaunay của P Sau đó, để có được tam. .. đại trong các phép tam giác phân của P 4 Xây dựng tam giác phân Delaunay Chúng ta đã thấy rằng xây dựng được một tam giác phân Delaunay cho tập điểm P sẽ giúp chúng ta có được một địa hình đa diện cho tập điểm mẫu P vì tam giác phân Delaunay đảm bảo cực đại góc nhỏ nhất Từ đó, xấp xỉ được địa hình thực tế được chính xác hơn Vậy làm thế nào để có thể xây dựng được một tam giác phân Delaunay? Ở các phần... là một tam giác phân Delaunay, chúng ta sẽ sử dụng lập luận phản chứng Giả sử, là một tam giác phân hợp lệ của P nhưng không là tam giác phân Delaunay Khi đó, theo định lý 2.6, có một tam giác mà đường tròn ngoại tiếp của nó chứa ít nhất một điểm bên trong nó Gọi e là cạnh của tam giác và tam giác không chứa Với tất cả các cặp trong , chọn cặp có là cực đại Xét tam giác kề với tam giác ở cạnh e Vì... được gọi là tam giác phân Delaunay duy nhất, trùng 13 với đồ thị Delaunay Nếu P không là trường hợp tổng quát, bất kì tam giác phân nào của đồ thị Delaunay cũng hợp lệ Khi đó, không phải tất cả các tam giác phân Delaunay này đều tối ưu góc Tuy nhiên, véctơ góc của chúng không khác biệt nhau quá nhiều Ngoài ra, sử dụng định lý Thales có thể chứng minh rằng góc nhỏ nhất trong bất kì tam giác phân nào đều... lý 2.6 đặc tả chính xác các đặc trưng của một tam giác phân Delaunay 12 Định lý 2.7 Cho P là một tập hợp điểm trong mặt phẳng và là một tam giác phân của P Khi đó, là một tam giác phân Delaunay của P khi và chỉ khi mọi đường tròn ngoại tiếp của các tam giác thuộc không chứa điểm nào của P ở bên trong Bởi vì chúng ta đã lập luận ở trên rằng một tam giác phân đáp ứng được mục đích nội suy độ cao nếu... mới một cách ngẫu nhiên và duy trì một tam giác phân Delaunay trong tập điểm đang xét Xét điểm thêm mới : Đầu tiên, chúng ta sẽ tìm tam giác trong phép tam giác phân hiện tại chứa điểm Sau đó, chúng ta sẽ thêm cạnh nối với các đỉnh của tam giác đó Nếu nằm trên một cạnh e của phép tam giác phân thì chúng ta sẽ thêm cạnh nối với hai đỉnh đối diện trong hai tam giác nhận e làm cạnh Hình dưới đây minh ... phẳng Bất kì phép tam giác phân tối ưu góc P tam giác phân Delaunay P Hơn nữa, tam giác phân Delaunay P tam giác phân có góc nhỏ cực đại phép tam giác phân P Xây dựng tam giác phân Delaunay Chúng... quát, có tam giác phân hợp lệ Tam giác phân tam giác phân tối ưu góc gọi tam giác phân Delaunay nhất, trùng 13 với đồ thị Delaunay Nếu P không trường hợp tổng quát, tam giác phân đồ thị Delaunay. .. cứu khái niệm tam giác phân tập điểm mặt phẳng cấu trúc đối ngẫu biểu đồ Voronoi tam giác phân Delaunay Chương Tam giác phân tập điểm mặt phẳng Tam giác phân Delaunay Tam giác phân tập điểm mặt