1. Trang chủ
  2. » Luận Văn - Báo Cáo

Thuật toán tăng dần ngẫu nhiên tìm tam giác phân delaunay luận văn thạc sỹ toán học

43 875 4
Tài liệu đã được kiểm tra trùng lặp

Đ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

Thông tin cơ bản

Tiêu đề Thuật toán Tăng Dần Ngẫu Nhiên Tìm Tam giác Phân Delaunay
Tác giả Nguyễn Hồng Quân
Người hướng dẫn PGS. TS. Phan Thành An
Trường học Trường Đại học Vinh
Chuyên ngành Toán học
Thể loại Luận văn thạc sĩ
Năm xuất bản 2011
Thành phố Vinh
Định dạng
Số trang 43
Dung lượng 2,05 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

MỞ ĐẦU Bài toán xây dựng tam giác phân Delaunay là một trong các bài toán cơ bản trong hình học tính toán và nó được sử dụng trong rất nhiều lĩnh vực như thông tin địa GIS, phần tử hữu

Trang 1

Trêng §¹i häc Vinh

Trang 2

Vinh - 2011

Trang 3

Trang

M Ở ĐẦ 4U

TAM GIÁC PHÂN DELAUNAY 6

1.1 nh ngh a v các tính ch t c a tam giác phân DelaunayĐị ĩ à ấ ủ 6

1.2 Phép tam giác phân Delaunay 10

1.3 Độ ph c t p c a thu t toánứ ạ ủ ậ 15

CHƯƠNG II THU T TOÁN TÌM TAM GIÁC PHÂN DELAUNAYẬ 18

2.1 Thu t toán s d ng bao l i dậ ử ụ ồ ưới trong R3 để tìm tam giác phân Delaunay 18

2.3 So sánh thu t toán s d ng bao l i dậ ử ụ ồ ưới trong R3 để tìm tam giác phân Delaunay v thu t toán t ng dân ng u nhiên tìm tam giác phân Delaunayà ậ ă ẫ 40

K T LU NẾ Ậ 42

TÀI LI U THAM KH OỆ Ả 43

Trang 4

MỞ ĐẦU

Bài toán xây dựng tam giác phân Delaunay là một trong các bài toán

cơ bản trong hình học tính toán và nó được sử dụng trong rất nhiều lĩnh vực như thông tin địa (GIS), phần tử hữu hạn, đồ họa máy tính và đa phương tiện

… Năm 1934 nhà toán học người Nga B.Delaunay (1890-1980) đã đưa ra bài toán xây dựng tam giác phân Delaunay (xem [3]) Vì những ứng dụng to lớn của tam giác phân Delaunay trong các lĩnh vực nói trên nên nhiều nhà toán học đã nghiên cứu đưa ra thuật toán xây dưng tam giác phân Delaunay Điển hình là các công trình của Dwyer với thuật toán chia để trị, thuật toán quét (Sweep line) của Fortunne (1987) thuật toán tăng dần (Incremental) của Preparata và Shamos (1985)…(xem [4]) Với các thuật toán nói trên, trên cơ bản đã xây dựng được tam giác phân Delaunay từ tập các điểm đã cho, nhưng

độ phức tạp thời gian của chúng khá lớn Do vậy, một số nhà toán học đã tìm thuật toán tăng dần ngẫu nhiên nhằm mang lại hiểu quả cao hơn đáp ứng với yêu cầu của cuộc sống hiện đại như xử lí các vấn đề ở tốc độ cao và số lượng lớn Cũng xuất phát từ yêu cầu đó trong luận văn này tác giả trình bày lại thuật toán tăng dần ngẫu nhiên tìm tam giác phân Delaunay (xem [3]) va có đưa thêm thuật toán sử dụng bao lồi dưới trong R3 tìm tam giác phân Delaunay (xem [3]) để so sánh với thuật toán trên

Luận văn gồm hai chương

Chương I Tam giác phân Delaunay

1.1 Định nghĩa và các tính chất của tam giác phân Delaunay

1.2 Phép tam giác phân Delaunay

1.3 Độ phức tạp của thuật toán

Chương II Thuật toán tìm tam giác phân Delaunay

Trang 5

2.2 Thuật toán tăng dần ngẫu nhiên tìm tam giác phân Delaunay

phân Delaunay và thuật toán tăng dân ngẫu nhiên tìm tam giác phân Delaunay

Luận văn được hoàn thành vào tháng 10 năm 2011 tại khoa đào tạo sau đại học và khoa toán trường Đại học Vinh 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 đến thầy, người đã tận tình chỉ dẫn, giảng dạy chúng tôi trong suốt quá trình học tập và nghiên cứu

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 đã giảng dạy, chỉ bảo những vấn đề có liên quan đến đề tài nghiên cứu

Tác giả xin chân thành cảm ơn các GS, PGS, TS… khoa sau đại học

và khoa toán Đại học Vinh, Viện Toán Học, những người đã tham gia quản

lý, giảng dạy giúp đỡ và hướng dẫn tác giả trong suốt quá trình học tập và nghiên cứu

Tác giả cũng gửi lời cảm ơn tới tập thể K17 Hình Học - Tôpô, gia đình, bạn bè, đồng nghiệp đã giúp đỡ và động viên tác giả trong quá trình hoàn thành luận văn

Trang 6

CHƯƠNG I TAM GIÁC PHÂN DELAUNAY

1.1 Định nghĩa và các tính chất của tam giác phân Delaunay

1.1.1 Định nghĩa (xem [3]) Trong mặt phẳng Oxy cho tập P gồm n điểm

pipjpk∈P sao cho hai tam giác bất kì trong P không có chung điểm trong chỉ có chung cạnh hoặc chung đỉnh

Ví dụ: trong mặt phẳng Oxy cho bốn điểm p1, p2, p3, p4 là một tứ giác khi đó

có hai cách cho tam giác phân là

{p1p2p3; p1p3p4} {p1p2p4; p2p3p4}

1.1.2 Định nghĩa (xem [3]) Trong mặt phẳng Oxy cho tập P gồm n điểm

P = {p1, p2,…pn} Phép tam giác phân tập P sao cho phần trong của hình tròn qua ba đỉnh một tam giác bất kì không chứa một điểm nào khác của P, được gọi là phép tam giác phân Delaunay Kí hiệu D(P)

Mỗi tam giác phân D(P) được gọi là tam giác Delaunay, mỗi cạnh của tam giác Delaunay được gọi là cạnh Delaunay

Trang 7

1.1.3 Định nghĩa (xem[4] - trang 75) Một cạnh Delaunay được gọi là cạnh

trong nếu nó là cạnh chung của đúng hai tam giác Delaunay

Một cạnh Delaunay được gọi là cạnh biên nếu nó là cạnh của duy nhất một tam giác Delaunay

Tập các cạnh biên được gọi là biên của D(P)

1.1.4 Tính chất (xem [4] - trang 89) Biên của D(P) là biên của bao lồi tập

các điểm của P

1.1.5 Tính chất (xem [4] - trang 102) Nếu P có k đỉnh nằm trên biên của

bao lồi thì D(P) có 2n - 2 - k tam giác và 3n - 3 - k cạnh

Chứng minh

Gọi n, nv, ne lần lượt là số đỉnh, số tam giác và số cạnh của D(P) Theo giải thiết, P có k đỉnh nằm trên biên của bao lồi nên D(P) có k cạnh biên

Vì mỗi cạnh biên là cạnh của duy nhất một tam giác và mỗi cạnh trong

là cạnh chung của đúng hai tam giác nên số cạnh của D(P) là:

Từ (1) và (2) ta có điều phải chứng minh

1.1.6 Tính chất (xem [5] - trang 186) D(P) là duy nhất nếu hình tròn đi qua

ba đỉnh bất kì của P không chứa điểm nào khác của P

1.1.7 Tính chất (xem [5] - trang 186) (mối quan hệ giữa tam giác phân

Delaunay trong mặt phẳng và bao lồi của tập hữu hạn điểm trong không gian

p ,p , ,p } là tập hình chiếu của tập các điểm

P = {p1, p2,…,pn} trong mặt phẳng Oxy lên parabollid z = x2 + y2 Khi đó D(P) chính là kết quả của phép chiếu bao lồi dưới LF(P') lên mặt phẳng Oxy

Trang 8

1.1.8 Định nghĩa biểu đồ Voronoi (xem [2])

Cho P = {p1, p2,…pn} là tập n điểm phân biệt trong E3 gọi chúng là các

vị trí Biểu đồ Voronoi là một phân hoạch phẳng của P thành n miền Mỗi

( )i \ i j ,

1.1.9 Các tính chất của tam giác phân Delaunay và biểu đồ Voronoi

- Biên của D(P) là bao lồi của các vị trí của V(P)

- Phần trong của các mặt (các tam giác) của D(P) không chứa một vị trí nào của V(P)

- Mỗi miền V(Pi) là lồi

- V(Pi) không bị chặn nếu và chỉ nếu Pi nằm trên bao lồi của các vị trí P (tức Pi) là đỉnh cực biên của bao lồi

- Nếu đỉnh Voronoi V là chung của V(P1), V(P2), V(P3) thì V là tâm của hình tròn C(V) xác đỉnh bởi p1, p2, p3 (xem hình 1)

- Phần trong của hình tròn không chứa vị trí nào của V(P)

- Nếu pi là một vị trí kề với pj thì p p i j là một cạnh của D(P)

Hình 2 (tam giác phân Delaunay biểu diễn

Trang 9

bằng các nét đứt đoạn biểu đồ Voronoi biểu diễn bằng nét liền)

1.1.10 Tính chất (xem [1]) ab ∈ V(P) nếu và chỉ nếu có một hình tròn rỗng qua a và b

Chứng minh

C(x) rỗng

b) Nếu có một hình tròn nào đó C(x) qua a và b thì bán kính của C(x) là

x a− = −x b do đó x thuộc các miền Voronoi của a và b chừng nào không có điểm khác gây chở ngại đến tính "lân cận gần nhất" Nhưng

thể di chuyển x trên phần dương của đường trung trực của đoạn ab mà vẫn giữ được tính rỗng của C(x)

Như vậy x trên phần dương của đường trung trực của cạnh Voronoi của

1.1.11 Định nghĩa (xem [3]) Cho P là đa giác đơn

+) Với a-, a, a+ là ba đỉnh liên tiếp của một đa giác đơn, b là một đỉnh khác của

đa giác đơn đó ta gọi ab là đường thẳng trong lân cận a nếu ab trong góc trong

Trang 10

1.1.13 Định nghĩa (xem [1])

Xét vị trí tương đối của một điểm với đường thẳng định hướng

cho a, b, c ∈ R2 trong đó a(a0, a1), b(b0, b1), c(c0, c1) Xét giá trị

S = (b0 - a0)(c1 - a1) - (b1 - a1)(c0 - a0) (*)

- Nếu S > 0 thì c bên trái abuur

- Nếu S < 0 thì c bên phải abuur

- Nếu S = 0 thì c ở trên abuur

1.1.14.Định nghĩa Trong R3 cho mặt phẳng α có phương trình ax + by + cz + d = 0 Và điểm M(x0 ;y0 ;z0) Gọi M'(x0;y0;m) là điểm thuộc mặt phẳng

α Khi đó ta nói

1.1.15 Nhận xét Gọi nα(a, b, c) là véc tơ pháp tuyến của mặt phẳng α và

c < 0 Khi đó M(x0 ;y0 ;z0) nằm phía trên (hoặc thuộc) mặt phẳng α khi và chỉ khi nα.M'M ≤ 0

Chứng minh

Ta có: M'M( 0 ; 0 ;z0 −m) ⇒nα.M'M =c(z0−m)

Do đó ta có: nα.M'M ≤ 0 ⇔c(z0 −m) ≤ 0 ⇔z0 ≥m

Vậy, theo định nghĩa 1.1.14 ta có điều phải chứng minh

1.2 Phép tam giác phân Delaunay

1.2.1 Tính chất (xem [3]) Nếu (C) là một hình tròn thì l giao với (C) được

một đoạn thẳng tại các điểm a và b, và p, q, r và s là các điểm nằm trên cùng phía l Giả sử p và q nằm trên (C) mà r nằm bên trong (C), và S nằm phía ngoài (C) thì ¶arb apb aqb asb> ¶ = ¶ > ¶ (xem hình 4)

Trang 11

1.2.2 Bổ đề (xem [3] - trang 195) Cho bốn điểm pi, pj, pk, pl là 1 hình tứ giác lồi và không nằm trong một hình tròn chung Giả sử (C) là hình tròn qua pi, pj,

Trang 12

pk Cạnh p p i j là bất hợp pháp nếu và chỉ nếu điểm pl nằm trong hình tròn (C) (xem hình 5)

Bất hợp pháp Hình 5

1.2.3 Thuật toán thay thế tam giác phân thành một tam giác phân hợp pháp (xem [3] - trang 195).

Algorithm Legaltriangulation (T) (tam giác phân hợp pháp)

Đầu vào T là một tam giác phân nào đó của tập hợp điểm P

Đầu ra Một tam giác phân hợp pháp của P

1 while T chứa cạnh bất hợp pháp p i p j

2 do (*Thay thế p i p j *)

3 Giả sử pipjpk và pipjpl là hai tam giác tiếp giáp với p i p j

4 Bỏ đi p i p j từ T, và thêm vào p k p l thay thế

5 return T

1.2.4 Tính chất (xem [3] - trang 198) Giả sử P là một tập hợp các điểm trên

mặt phẳng Ba điểm pi, pj, pk thuộc P là các đỉnh của tam giác phân Delaunay

đồ thị của P nếu và chỉ nếu hình tròn qua pi, pj, pk không chứa điểm nào của P trong nó

1.2.5 Tính chất (xem [3] - trang 198) Giả sử P là một tập hợp các điểm

trong mặt phẳng và giả sử T là một tam giác của P Sau đó T là một tam giác

pi

pk

pj

pl

Trang 13

1.2.6 Bổ đề (xem [3] - trang 202) Mỗi cạnh mới tạo ra trong tam giác phân

của đồ thị Delaunay của {p-1, p-2, p0,…,pr}

Đầu tiên ta bắt đầu với một tam giác lớn hơn chứa tập hợp các điểm của P

Hình 6

Thêm hai điểm p-1 và p-2, cùng với điểm có tung độ cao nhất p0 của P, tạo thành một tam giác chứa tất cả các điểm của P (xem hình 6) Điều này có nghĩa là đang tính với một tập hợp điểm P ∪ {p-1, p-2} thay cho tập hợp điểm của P Sau đó muốn có được những tam giác phân Delaunay của P bằng cách loại bỏ p-1, p-2 cùng với tất cả các cạnh nối đến hai điểm này Để làm việc này

tam giác Delaunay của P Đặc biệt, phải đảm bảo chúng không nằm trong bất

kỳ hình tròn xác định bởi ba điểm tại P

tam giác hiện tại có chứa pr Nếu pr nằm trong tam giác thêm cạnh từ pr đến

hợp

Trang 14

pr nằm bên trong ∆pipjpk pr nằm trên cạnh pipj của ∆ pipjpk

Một tam giác nhưng không nhất thiết là một tam giác phân Delaunay là

khắc phục tình trạng này, ta sử dụng trương trình con LEGALIZEEDGE để thay thế cạnh bất hợp pháp

Tiếp theo ta nói về các chi tiết của sự thay đổi tam giác nhận được sau khi dòng 9 (hoặc dòng 14) của thuật toán trong muc 2.2.2 thành một tam giác phân Delaunay Ta đã biết từ tính chất 1.2.6 rằng một tam giác là một tam giác phân Delaunay nếu tất cả các cạnh của nó là hợp pháp

thể trở thành bất hợp pháp nếu một trong các sự cố để nó có hình tam giác thay đổi Vì vậy chỉ có cạnh của tam giác mới cần được kiểm tra Điều này được thực hiện bằng cách sử dụng chương trình con LEGALIZEEDGE

1 (* Các điểm được đưa vào là pr, và p i p j là cạnh của T có thể cần *)

2 if p i p j là bất hợp pháp

3 then Giả sử pipjpk được tam giác kề

với prpipj dài hơn p i p j

Trang 15

4 (* Flip p i p j : *) Thay thế p i p j với p r p k

5 LEGALIZEEDGE (pr, p i p k , T)

6 LEGALIZEEDGE (pr, p k p j , T)

Các thử nghiệm ở bước 2 của thuật toán này có một cạnh là bất hợp pháp thường có thể được thực hiện bằng cách áp dụng bổ đề 1.2.2

1.3 Độ phức tạp của thuật toán

Độ phức tạp của thuật toán là thước đo để so sánh tính hiệu quả của thuật toán Một thước đo hiệu quả đó là thời gian máy tính sử dụng để giải bài toán đang xét, khi các giá trị đầu vào có một kích thước xác định Một thước

đo thứ hai đó là kích thước bộ nhớ đòi hỏi thực hiện thuật toán khi giá trị đầu vào có một kích thước cho trước

Gắn liền với thời gian tính toán là độ phức tạp thời gian và bộ nhớ là độphức tạp không gian

Xác định được độ phức tạp thời gian của thuật toán là rất quan trọng.Vì khi đó ta biết được thời gian tính toán là một phút, một năm hay một tỉ năm

để thực hiện thuật toán đó Độ phức tạp không gian của thuật toán đó cho ta biết được một bước chuẩn bị và thấy được khả năng đáp ứng trong việc tính toán của thuật toán

Trong luận văn nay chúng tôi không nghiên cứu về cơ sở dữ liệu nên ta

bỏ qua độ phức tạp không gian, chỉ nghiên cứu độ phức tạp thời gian

Để xác định độ phức tạp của thuật toán ta chỉ xét những hàm thực

làm công cụ đo Nghĩa là tồn tại số tự nhiên n0 sao cho với mọi n ≥ n0 thì f(n) > 0 Kí hiệu £ là tập hợp các hàm như vậy

1.3.1 Định nghĩa (xem [2]) Cho hàm số g(n) ∈ £, ta định nghĩa O(g(n)) là

tập hợp các hàm f(n) ∈ £ có tính chất: tồn tại hằng số dương c và số tự nhiên

Trang 16

n0 sao cho với mọi n ≥ n0 thì f(n) ≤ c.g(n) Nếu f(n) ∈ O(g(n)) thì ta nói rằng f(n) là Ô lớn của g(n).

1.3.2 Tính chất (xem [2]) Nếu f1(n) ∈ O(g1(n)) và f2(n) ∈ O(g2(n)) thì f1(n) + f2(n) O(∈ g1(n) + g2(n))

Chứng minh Giả sử rằng với mọi n > n1, f1(n) ≤ c1g1(n), và với mọi n ≥ n2,

1.3.5 Xác định độ phức tạp tính toán của thuật toán (xem [2])

Ta sử dụng T là khối mã cho độ phức tạp tính toán của một toán tử riêng cũng như cho một đoạn mã chương trình Khi đoạn mã chương trình được tách biệt rõ ràng thì ta kí hiệu T(n) là độ phức tạp tính toán và là hàm

Trang 17

biến số n, với n là số phép toán cơ sở Độ phức tạp tính toán được đo bằng hàm O( ) Vậy xác định độ phức tạp tính toán tức là xác định hàm

T(n) ∈ O(g(n)) cho đoạn mã chương trình đó

Các phép toán dùng để đo độ phức tạp thời gian là phép so sánh các số nguyên, phép cộng, trừ, nhân và chia hoặc bất kì một phép toán sơ cấp nào khác

Độ phức tạp thời gian của dãy liên tiếp các phép tính được xác định bởi

độ phức tạp cao nhất trong chúng

Tức là, giả sử toán tử s1 có độ phức tạp F1 và toán tử s2 có độ phức tạp

F2. Khi đó:T(s1 ∈ O(F1)), T(s2 ∈ 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 những kí hiệu đo

độ phức tạp và phân tích trong trường hợp xấu nhất để biết được thời gian thực hiện thuật toán là bao nhiêu? Người ta đinh ra độ phức tạp của các phép toán trong trường hợp xấu nhất của thuật toán là:

Trang 18

CHƯƠNG II THUẬT TOÁN TÌM TAM GIÁC PHÂN DELAUNAY

2.1 Thuật toán sử dụng bao lồi dưới trong R 3 để tìm tam giác phân Delaunay 2.1.1 Mô tả thuật toán (xem [3])

với tọa độ (xi1, xi2) ta làm như sau:

1 , ,p n

ilà hoành độ và tung độ của pi còn cao độ xi3 của pi* là xi12 +x i22

của pi* là hoành độ và tung độ của pi còn cao độ của pi* là xi3= 2

2 Xây dựng bao lồi CH(P*) của p* trong R3

3 Chiếu xuống n mặt của CH(P*) theo hướng song song trục tọa độ gốc

R2 (có chứa P) và quay trở lại

2.1.3 Ví dụ Trong mặt phẳng Oxy, cho tập P gồm 5 điểm.

P = {p0 (1;8), ( 2; 2),p1 − − p2 (1;0),p3 ( 2;1), − p4 (2;1)}

Trang 19

Dùng thuật toán sử dụng bao lồi dưới trong R3 để tìm D(P)

; 2

; 2 ( )

; 0

; 1 ( )

phẳng Tuy nhiên, theo thuật toán này, khi thực hiện tính toán sẽ thực hiện

n ikj =  p p p p i* *k, i* *j 

uuuuur uuuuur uur

không (dựa vào định nghĩa 1.1.14 và nhận xét 1.1.15)

Điều kiện đó tương đương với đẳng thức: uuuuur uuurp p n i* *m. ijk ≤ 0

Trang 23

; 2

; 2 ( )

; 0

; 1 ( )

Trang 26

- Kiểm tra các điểm * * *

Trang 27

; 64

; 66 ( );

10

; 64

; 66 ( 152

Trang 29

Hình 10

2.2 Thuật toán tăng dần ngẫu nhiên tìm tam giác phân Delaunay (xem

[3] – trang 200)

2.2.1 Mô tả thuật toán

Đầu tiên ta bắt đầu với một tam giác lớn chứa tập hợp các điểm của P.Thêm hai điểm p-1 và p-2 cùng với điểm có tung độ cao nhất p0 của P, tạo thành một tam giác chứa tất cả các điểm của P Điều này có nghĩa là đang tính toán một tập hợp điểm P∪{p-1; p-2} thay cho tập hợp điểm của P Sau đó

p-2 cùng với tất cả các cạnh nối đến hai đỉnh p-1 và p-2

hình tam giác Delaunay của P Đặc biệt phải đảm bảo chúng không nằm trong bất kỳ hình tròn xác định bởi ba điểm tại P

Ngày đăng: 19/12/2013, 09:53

HÌNH ẢNH LIÊN QUAN

Hình 2 (tam giác phân Delaunay biểu diễn - Thuật toán tăng dần ngẫu nhiên tìm tam giác phân delaunay luận văn thạc sỹ toán học
Hình 2 (tam giác phân Delaunay biểu diễn (Trang 8)
Đồ thị của P nếu và chỉ nếu hình tròn qua p i , p j , p k  không chứa điểm nào của P  trong nó. - Thuật toán tăng dần ngẫu nhiên tìm tam giác phân delaunay luận văn thạc sỹ toán học
th ị của P nếu và chỉ nếu hình tròn qua p i , p j , p k không chứa điểm nào của P trong nó (Trang 12)

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w