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

Tìm hiểu một số lược đồ voronoi mở rộng và ứng dụng

100 205 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

Thông tin cơ bản

Định dạng
Số trang 100
Dung lượng 5,32 MB

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

Nội dung

Để hình dung tốt hơn về khái niệm lược đồ Voronoi, ta xét bài toán sau. Mộtngười nào đó đang muốn đi đến một siêu thị để mua hàng, trong khi có quá nhiều siêu thị ở thành phố này. Người đó sẽ chọn siêu thị nào gần nhà nhất để thuận tiện trong việc đi lại và tiết kiệm thời gian, công sức. Khi đó, cần phải có một tấm bản đồ để chỉ ra siêu thị nào gần nhà người đó nhất. Trong khuôn khổ chương 1, luận văn sẽ giới thiệu cách để biết được siêu thị nào gần nhà nhất và ngược lại.

Trang 1

Trang 2

MỤC LỤC

MỤC LỤC 2

DANH MỤC BẢNG BIỂU 4

DANH MỤC HÌNH ẢNH 4

MỞ ĐẦU 7

Chương 1 CÁC KHÁI NIỆM CƠ BẢN 10

1.1 Khái niệm lược đồ Voronoi 10

1.2 Xây dựng lược đồ Voronoi trong máy tính 15

1.2.1 Khái niệm dòng quét và áp dụng vào việc xây dựng lược đồ Voronoi trong máy tính 16

1.2.2 Cấu trúc dữ liệu sử dụng để xây dựng lược đồ Voronoi 19

1.3 Thuật toán 21

Chương 2 VORONOI CHO TẬP CÁC ĐƯỜNG TRÒN 23

2.1 Vấn đề Apollonius thứ mười thông qua sự điều chỉnh bán kính và Mobius chuyển đổi 23

2.1.1 Cấu hình của đường tròn Apollonius 24

2.1.2 Mobius chuyển đổi 28

2.1.3 Biến đổi điều chỉnh bán kính 33

2.1.4 Thuật toán 39

2.1.5 Một số ví dụ minh họa 39

2.2 Thuật toán dòng quét xây dựng lược đồ Voronoi cho tập các đường tròn trong mặt phẳng 40

2.2.1 Giới thiệu chung về thuật toán 40

2.2.2 Ý tưởng thuật toán dòng quét của Fortune về lược đồ Voronoi cho tập các điểm 43

2.2.3 Áp dụng thuật toán dòng quét xây dựng lược đồ Voronoi cho đường tròn

44

2.2.4 Các loại sự kiện trong thuật toán 47

Trang 2

Trang 3

2.2.5 Các thao tác cần xử lý thông qua dòng quét 50

2.2.6 Thuật toán 57

2.2.7 Phân tích thời gian và không gian thực thi thuật toán 59

2.3 Một trường hợp đặc biệt của lược đồ Voronoi cho tập đường tròn 62

2.3.1 Giải pháp 63

2.3.2 Các thuật toán 64

2.3.3 Đường tròn Apollonius 65

2.3.4 Các trường hợp của thuật toán lật cạnh 66

2.3.5 Cạnh của lược đồ Voronoi cho những đường tròn trong một đường tròn

69

2.3.6 Ví dụ minh họa 70

Chương 3 LƯỢC ĐỒ VORONOI CHO ĐỒ THỊ 75

3.1 Phương pháp xấp xỉ đường đi ngắn nhất 75

3.2 Lược đồ Voronoi trên đồ thị 75

3.2.1 Những khái niệm cơ bản 76

3.2.2 Voronoi trên đồ thị 77

3.2.3 Lược đồ Voronoi đối ngẫu trên đồ thị 78

3.2.4 Thuật toán parallel Dijkstra 78

3.2.5 Đường đi trên lược đồ Voronoi đối ngẫu 80

3.2.6 Voronoi Sleeve 81

3.2.7 Thuật toán xấp xỉ 81

Chương 4 CHƯƠNG TRÌNH MINH HỌA LƯỢC ĐỒ VORONOI CHO ĐỒ THỊ 94 4.1 Giao diện của chương trình minh họa 94

4.2 Chức năng của chương trình minh họa 95

KẾT LUẬN 100

DANH MỤC TÀI LIỆU THAM KHẢO 101

Trang 3

Trang 4

DANH MỤC BẢNG BIỂU

Bảng 2.1 Tất cả các cấu hình của “Vấn đề Apollonius thứ mười” 27

Bảng 2.2 Các quy tắc điều chỉnh bán kính 38

Bảng 3.1 Bảng thực nghiệm so sánh thời gian thực thi của hai thuật toán 90

DANH MỤC HÌNH ẢNH Hình 1.1 Lược đồ Voronoi phân hoạch các siêu thị trong thành phố 10

Hình 1.1 (a) Lược đồ Voronoi cho điểm 10

Hình 1.1 (b) Vùng Voronoi 11

Hình 1.2 Sự tạo thành lược đồ Voronoi cho trường hợp các điểm không thẳng hàng 12

Hình 1.3 Đường tròn Cp(q) 15

Hình 1.4 Minh họa một thời điểm khi thực hiện thuật toán dòng quét của Fortune 16

Hình 1.5 Cách hình thành và tính chất của đường parabol 16

Hình 1.6 Đường beach Line được tạo bởi nhiều cung parabol cắt nhau 17

Hình 1.7 Đường parabol sinh ra và cấu trúc Beach Line thay đổi 17

Hình 1.8 (a) Hai điểm phân kỳ hội tụ khi l đi xuống 17

Hình 1.8 (b) Cấu trúc đường Beach Line bị chia tách 17

Hình 1.9 Hai điểm hội tụ tạo thành đỉnh q 18

Hình 2.1 Lược đồ Voronoi cho tập các đường tròn 24

Hình 2.2 (a) Đường tròn tiếp xúc và đường tròn phát tiếp xúc ngoài với nhau 25

Hình 2.2 (b) Đường tròn phát nằm bên trong đường tròn tiếp xúc 25

Hình 2.2 (c) Đường tròn phát chứa đường tròn tiếp xúc 26

Hình 2.3 Đường tròn tiếp xúc đi qua z0 30

Hình 2.4 Các đường tròn tiếp xúc ánh xạ thành đường thẳng tiếp tuyến 31

Hình 2.5 Quy tắc điều chỉnh bán kính 34

Hình 2.6 Tập các đường tròn cho trước trong mặt phẳng 40

Hình 2.7 Bốn vùng Voronoi 41

Hình 2.8 Một đường tròn tham gia vào hai vùng Voronoi 41

Hình 2.9 Bốn site S11, S12, S21, S22 được tạo 44

Hình 2.10 Khoảng cách từ điểm p đến đường tròn g1 45

Trang 4

Trang 5

Hình 2.11 Đỉnh, cạnh và vùng Voronoi 46

Hình 2.12 Dòng quét S và đường Beach Line B 46

Hình 2.13 (a) Đường chuẩn D cho cung parabol nằm ngoài đường tròn 47

Hình 2.13 (b) Đường chuẩn D cho cung parabol nằm trong đường tròn 47

Hình 2.14 Bốn loại sự kiện 48

Hình 2.15 Bốn cấu hình khác nhau của đường tròn Apollonius 49

Hình 2.16 Xử lý một sự kiện điểm 50

Hình 2.17 Xử lý một sự kiện kết hợp 52

Hình 2.18 Xử lý một sự kiện chéo 54

Hình 2.19 Dòng quét S gặp một sự kiện điểm E 56

Hình 2.20 Xử lý một sự kiện đường tròn 56

Hình 2.21 Lược đồ Voronoi cho những đường tròn trong một đường tròn 62

Hình 2.22 Các bước hình thành lược đồ Voronoi 63

Hình 2.23 Đường tròn mate 63

Hình 2.24 Cấu trúc Voronoi ban đầu 64

Hình 2.25 Các trường hợp hình thành đường tròn tiếp xúc 65

Hình 2.26 Mobius chuyển đổi 66

Hình 2.27 Đường tròn tiếp xúc không cắt đường tròn mate 66

Hình 2.28 Đường tròn tiếp xúc cắt đường tròn mate 67

Hình 2.29 Chỉ có đường tròn tiếp xúc cho đỉnh v2 tồn tại và nó cắt mate 68

Hình 2.30 Chỉ có đường tròn tiếp xúc cho đỉnh v2 tồn tại và nó không cắt mate 69

Hình 2.31 Hai ví dụ về các đường tiếp tuyến được tạo ra 70

Hình 2.32 Sơ đồ đầu tiên: tập các đường tròn cho trước 70

Hình 2.33 Hình thành lược đồ Voronoi cho điểm 71

Hình 2.34 Cấu trúc Voronoi ban đầu với đường tròn đóng thêm vào 71

Hình 2.35 Cấu trúc các đường tròn tiếp xúc ban đầu 72

Hình 2.36 Tâm của các đường tròn Apollonius 72

Hình 2.37 Phát sinh 5 tham số cho đường cong Bezier 73

Hình 2.38 Thêm đường cong Bezier 74

Trang 5

Trang 6

Hình 2.39 Lược đồ Voronoi cho đường tròn hoàn chỉnh 74

Hình 3.1 Đồ thị có hướng 76

Hình 3.2 Ví dụ đường đi từ s đến t 84

Hình 3.3 Ví dụ minh họa cho bổ đề 3.3 84

Hình 4.1 Giao diện của ứng dụng tìm đường đi ngắn nhất xấp xỉ 94

Hình 4.2 Giao diện của ứng dụng với đồ thị và các site 96

Hình 4.3 Giao diện của ứng dụng với đồ thị và các vùng Voronoi 96

Hình 4.4 Giao diện của ứng dụng với Voronoi dual 97

Hình 4.5 Giao diện của ứng dụng với Voronoi sleeve 98

Hình 4.6 Giao diện của ứng dụng với đường đi ngắn nhất xấp xỉ 98

Hình 4.7 Giao diện của ứng dụng với đường đi đúng trùng với đường đi ngắn nhất xấp xỉ 99

Trang 6

Trang 7

MỞ ĐẦU

Lược đồ Voronoi là một khái niệm đã được đề xuất từ rất lâu Vào thế kỷ 17, Descartes đã chia vũ trụ thành những “cơn lốc” (vortices), đây được xem là một lược đồ Voronoi đầu tiên mặc dù Descartes không định nghĩa rõ ràng các “cơn lốc” của ông là các ô Voronoi (xem hình bên dưới)

Sau đó, vào thế kỉ 19, các nghiên cứu của nhà toán học Đức Lejeune Dirichlet về các dạng toàn phương đã đóng góp rất nhiều cho việc xây dựng lược đồ Voronoi Chính

vì vậy mà các lược đồ voronoi còn được gọi là “cách lát đá hoa của Dirichlet” Trước khi mất năm 1859, Dirichlet đã đưa ra khái niệm Voronoi trong không gian 2 chiều và 3 chiều Vào năm 1908, M.G.Voronoi đã đưa ra khái niệm Voronoi trong không gian n chiều và cái tên Voronoi bắt đầu từ đó

Trước đây, lược đồ Voronoi chỉ được coi là thuộc lĩnh vực toán học, là thuật toán

để giải quyết các vấn đề hình học Do nhu cầu của hoạt động nghiên cứu, phân tích và thiết kế các thuật toán mà hình học tính toán ra đời vào khoảng năm 1970 Hình học tính

Trang 7

Trang 8

toán (computational geometry) là một nhánh của khoa học máy tính nghiên cứu các thuật toán để giải các bài toán hình học Trong toán học và thiết kế kỹ thuật hiện đại, hình học tính toán có các ứng dụng về đồ họa máy tính, robot, thiết kế nhờ máy tính hỗ trợ, thống

kê và nhiều lĩnh vực khác Dữ liệu đầu vào cho một bài toán hình học tính toán thường là một mô tả về một tập hợp các đối tượng hình học, như một tập hợp các điểm, một tập hợp các đoạn thẳng,… Phần lớn bài toán hình học tính toán có xét đến khoảng cách giữa các điểm

Lược đồ Voronoi có rất nhiều ứng dụng trong các ngành khoa học Bất cứ khi nào

ta quan tâm đến khoảng cách trong một tập dữ liệu phân biệt thì Voronoi tỏ ra rất hữu hiệu Đối với những dự án khoa học lớn có sự trợ giúp của máy tính, lược đồ Voronoi giúp giảm đáng kể các phép tính cơ bản và làm tăng hiệu quả thuật toán Chính vì vậy, nó

đã phát triển độc lập trong nhiều ngành khoa học khác Chẳng hạn như, năm 1909, một nhà khoa học người Nga tên BT Boldyrev đã sử dụng khái niệm “vùng ảnh hưởng của các đa giác” trong nghiên cứu của ông ở Geology Năm 1911 ở Meteogology, Thiesen đã dùng lược đồ Voronoi để tính lượng mưa trung bình Năm 1927, nhà khoa học Đức – Paul Niggli đã ứng dụng lược đồ Voronoi trong ngành tinh thể học Năm 1933, hai nhà vật lý học là EP Wigner và F.Seitz đã tiến hành một cuộc nghiên cứu quan trọng về ứng dụng của lược đồ Voronoi trong vật lý Sau đó, lược đồ Voronoi tiếp tục đóng một vai trò quan trọng trong Vật lý học, Sinh thái học, Giải phẫu học và Thiên văn học trong suốt những năm 1900

Cho đến nay, lược đồ Voronoi đã được phát triển thành nhiều loại khác nhau tùy theo yêu cầu của bài toán Một cách tổng quát, lược đồ Voronoi của một tập điểm (thường được gọi là các trạm) trên mặt phẳng là một cách chia mặt phẳng thành các vùng, mỗi vùng chứa một (hoặc có thể nhiều trạm), bất kỳ điểm nào trong một vùng cũng đều gần với trạm của nó hơn bất kỳ trạm nào khác Tuy nhiên, khi ứng dụng lược đồ Voronoi vào các bài toán thực tế, các đối tượng điểm không đáp ứng được nhu cầu của bài toán

Do đó, cần mở rộng lược đồ Voronoi cho tập các đối tượng hình học khác như đường tròn, đồ thị, elip,… Gần đây, có một số nghiên cứu về lược đồ Voronoi mở rộng như lược

đồ Voronoi cho tập các đường tròn ứng dụng vào thiết kế cáp cho xe có động cơ giúp

Trang 8

Trang 9

giảm thiểu nguyên liệu làm cáp và nhiên liệu chứa trong cáp; lược đồ Voronoi cho đồ thị dùng để tìm đường đi ngắn nhất từ điểm đầu đến điểm cuối; lược đồ Voronoi cho elip ứng dụng vào việc thiết kế thân tàu thủy, thân máy bay; lược đồ Voronoi trong mặt phẳng

ba chiều để hình thành lược đồ Voronoi cho các khối đa diện và xử lý các hình ảnh ba

chiều…

Với những ứng dụng vô cùng rộng rãi của lược đồ Voronoi, nhóm đã chọn đề tài này với mong muốn tìm hiểu về khái niệm và những tính chất của lược đồ Voronoi cơ bản, cùng với một số lược đồ Voronoi mở rộng Luận văn sẽ khảo sát, nghiên cứu lý thuyết, các tính chất quan trọng của lược đồ Voronoi cơ bản Dựa trên cơ sở đó, luận văn

sử dụng lược đồ Voronoi cơ bản để tìm hiểu các lược đồ Voronoi mở rộng Trong các lược đồ Voronoi mở rộng đã trình bày ở trên, nhóm nhận thấy lược đồ Voronoi cho tập các đường tròn và lược đồ Voronoi cho đồ thị thú vị và có những đặc trưng riêng nên đã chọn hai loại lược đồ này để nghiên cứu trong luận văn

Luận văn được kết cấu thành 3 chương, chương 1 sẽ trình bày định nghĩa cũng như các tính chất quan trọng của lược đồ Voronoi cơ bản Trong chương này, luận văn cũng trình bày một thuật toán hữu hiệu để xây dựng lược đồ Voronoi cũng như các cấu trúc dữ liệu cần thiết để biểu diễn một lược đồ Voronoi

Trong chương 2, luận văn sẽ khảo sát lược đồ Voronoi cho tập các đường tròn cho trước trong mặt phẳng Chương này trình bày về “Vấn đề Apollonius thứ mười” Vấn đề này đưa ra cách thức tìm đường tròn tiếp xúc với ba đường tròn phát cho trước Đồng thời, chương này cũng phân tích thuật toán dòng quét xây dựng lược đồ Voronoi và mở rộng thành lược đồ Voronoi cho những đường tròn trong một đường tròn

Nội dung chương 3 đề cập đến lược đồ Voronoi cho đồ thị, giới thiệu, trình bày các định nghĩa liên quan đến lược đồ Voronoi cho đồ thị, nêu thuật toán để hình thành lược đồ

Chương trình minh họa ứng dụng cho thuật toán trong chương 3, giao diện của chương trình ứng dụng và hướng dẫn cách sử dụng chương trình được trình bày trong chương 4

Trang 9

Để hình dung tốt hơn về khái niệm lược đồ Voronoi, ta xét bài toán sau Một người nào đó đang muốn đi đến một siêu thị để mua hàng, trong khi có quá nhiều siêu thị

ở thành phố này Người đó sẽ chọn siêu thị nào gần nhà nhất để thuận tiện trong việc đi lại và tiết kiệm thời gian, công sức Khi đó, cần phải có một tấm bản đồ để chỉ ra siêu thị nào gần nhà người đó nhất Trong khuôn khổ chương 1, luận văn sẽ giới thiệu cách để biết được siêu thị nào gần nhà nhất và ngược lại

Hình 1.1 Lược đồ Voronoi phân hoạch các siêu thị trong thành phố

1.1 Khái niệm lược đồ Voronoi

Trong khuôn khổ luận văn, tất cả các đối tượng hình học đều được xét trong mặt phẳng 2 chiều

Định nghĩa 1.1 Xét P={p1, p2,…, pn} là tập hợp n

điểm cho trước nằm trên mặt phẳng P

Lược đồ Voronoi của P là một cách phân

hoạch mặt phẳng thành n vùng Mỗi vùng ứng với 1

điểm trong P, sao cho nếu điểm q bất kì thuộc vùng

tương ứng với pi thì khoảng cách từ q tới pi nhỏ hơn

khoảng cách từ q tới pj với pj ≠ pi Nghĩa là: ∀pj ∈ P, j

≠ i, ta có: dist(q, pi) < dist(q, pj)

p 6

Trang 10

- Nửa mặt phẳng chứa p là h(p, q)

- Nửa mặt phẳng chứa q là h(q, p)

Ghi chú: Cho hai điểm p, q trên mặt phẳng Xét một điểm r bất kỳ, ta thấy r thuộc nửa

mặt phẳng chứa p, nghĩa là r ∈ h(p,q) nếu và chỉ nếu khoảng cách từ r tới p nhỏ hơn khoảng cách từ r tới q, nghĩa là: dist(r, p) < dist(r, q)

Nhận xét 1.1 Từ định nghĩa vùng Voronoi của pi (V(pi)), ta nhận thấy rằng V(pi) là giao của ít nhất một và nhiều nhất là (n −1) nửa mặt phẳng của pi với pj, với i ≠ j Ta viết như sau: V(pi) = ⋂ , ℎ( , )

Chứng minh

● V(pi) là phần giao của tối đa (n-1) nửa mặt phẳng

 Do xung quanh nó chỉ có tối đa (n-1) đỉnh nên chỉ có tối ta (n-1) cạnh

● Lược đồ Voronoi là phần giao của một số nửa mặt phẳng

 Lược đồ Voronoi cho tập điểm thẳng hàng gồm (n-1) cạnh là đường thẳng và ngược lại, lược đồ Voronoi gồm (n-1) cạnh là đoạn thẳng hoặc nửa đường thẳng  Khi đó, tập n vùng V(pi) với i=1, … , ghép lại với nhau tạo thành Vor(P) của mặt phẳng P={p1, p2,…, pn}

Hình 1.1 (b): Vùng

Voronoi của p i kí hiệu

V(p i )

pi

Trang 11

Trang 12

Định lý 1.1 Cho P là tập n điểm trên mặt phẳng Nếu n điểm này thẳng hàng thì Vor(P)

gồm (n-1) đường thẳng song song Ngược lại, Vor(P) liên thông và các cạnh là đoạn

thẳng hoặc là nửa đường thẳng

Ghi chú: Nửa đường thẳng là đường thẳng bị giới hạn 1 đầu, đầu còn lại bị kéo dài, hay

còn gọi là tia thẳng

Chứng minh

i) Trường hợp 1: Lược đồ Voronoi gồm (n-1) đường thẳng song song: do tính

chất của đường trung trực, ii) Trường hợp 2: Vor(P) liên thông và các cạnh là đoạn thẳng hoặc nửa đường

thẳng, giả thuyết các điểm không thẳng hàng

 Ta chứng minh trường hợp 1: Các cạnh là đoạn thẳng hoặc nửa đường thẳng Giả sử điều cần chứng minh là sai (các cạnh là đường thẳng đầy đủ)

Với e là một cạnh của Vor(P) Vậy e là một

đường thẳng đầy đủ e nằm trên đường biên

Voronoi của V(pi), V(pj) pk thuộc P là điểm

không thẳng hàng với pi, pj, đường biên của pj và

pk không song song e

Do đó, đường biên của pj và pk cắt e

Khi đó, một phần của e nằm trong h(pk, pj )

và không thể nằm trên đường bao của pj vì nó gần

pk hơn pj (do tính chất của h(pk, pj ) )

Điều này là mâu thuẫn

Vậy các cạnh là đoạn thẳng hoặc nửa đường thẳng

 Ta chứng minh trường hợp 2: Vor(P) là liên thông

Nếu Vor(P) không liên thông thì sẽ tồn tại một vùng Voronoi V(pi ) chia mặt phẳng thành hai phần Khi đó, vùng Voronoi là lồi, V(pi) sẽ gồm một dãi được bao bởi hai đường thẳng song song Do đó, cạnh của Vor(P) là đường thẳng, điều này mâu thuẫn với chứng minh 1 (các cạnh của voronoi không thể là một đường thẳng)

Hình 1.2 Sự tạo thành lược đồ Voronoi trong trường hợp các điểm không thẳng hàng

Trang 12

Trường hợp 2: Chúng ta sẽ chứng minh định lý này bằng việc sử dụng công thức

Ơle Định lý Ơle phát biểu rằng đối với mọi đồ thị phẳng có:

mv - mc + mf = 2

Trong đó, mv:số nút, mc: số cạnh, mf:số vùng

Chúng ta không thể áp dụng công thức Ơle trực tiếp cho Vor(P) do Vor(P) có một

số cạnh là một nửa đường thẳng và vì vậy nó không là một đồ thị đúng nghĩa Để giải quyết tình trạng này, ta thêm một đỉnh v ‘tại vô cực’ vào tập các đỉnh và nối tất cả các cạnh có một đầu không giới hạn của Vor(P) vào đỉnh này Bây giờ, chúng ta có một đồ thị liên thông, gọi là lược đồ mở rộng thỏa mãn điều kiện của công thức Ơle Chúng ta có được mối quan hệ sau giữa nv (số đỉnh của Vor(P)), ne (số cạnh của Vor(P)) và n (số điểm cho trước của Vor(P)) như sau:

(nv + 1) – ne + n = 2 (1) Hơn nữa, mỗi cạnh trong lược đồ mở rộng có chính xác 2 đỉnh, do vậy, tổng bậc của các đỉnh bằng 2 lần số cạnh:

e n

Trang 13

2(nv + n – 1)3(nv + 1)  nv ≤ 2n − 5

Từ (1) ta lại có: nv = ne – n + 1(4) Thay (4) vào (2): 2ne  3(ne – n + 2)  ne ≤ 3n − 6

Nhận xét 1.1

i) Các cạnh là một phần của đường trung trực của một cặp điểm bất kỳ,

ii) Các đỉnh là giao của các cạnh

Tuy nhiên, với mặt phẳng P có n điểm thì sẽ có (n-1)! đường trung trục vì giữa một điểm với (n-1) điểm khác sẽ tạo được (n-1) đường trung trực, nhưng không phải đường trung trục nào cũng là cạnh nên không phải tất cả các đường trung trục đều là cạnh của Vor(P) và không phải tất cả các điểm giao đều là đỉnh

Để xác định đường trung trục nào và điểm giao nào tạo thành cạnh và đỉnh của Vor(P), luận văn tiếp tục giới thiệu định nghĩa sau

Định nghĩa 1.2 Cho điểm q bất kỳ, ta định nghĩa đường tròn rỗng lớn nhất của q đối với

mặt phẳng P, kí hiệu là Cp(q), là đường tròn lớn nhất với q là tâm sao cho đườngt ròn này

không chứa bất cứ điểm nào của tập điểm trong mặt phẳng P bên trong nó

Định lý 1.3 Lược đồ Voronoi gồm tập P={p1, p2,…, pn} nằm trên cùng mặt phẳng thỏa

các tính chất

Trang 14

Trang 15

i) q là đỉnh của Vor(P) nếu và chỉ nếu đường tròn Cp(q) đi qua nhiều hơn 2 điểm

trong P

ii) đường trung trực đoạn pi, pj, xác định một cạnh của Vor(P) nếu và chỉ nếu q

nằm trên đường trung trực sao cho đường tròn Cp(q) đi qua pi, pj

Chứng minh

Giả sử có một điểm q mà Cp(q) chứa nhiều hơn 2 điểm mà các điểm này nằm trên đường biên của đường tròn Cp(q) Cho pi, pj và pk là 3 trong số các điểm đó Vì bên trong Cp(q) là rỗng; nên q phải nằm trên đường biên của (pi), (pj), (pk) và q phải

là một đỉnh của Vor(p) (do tính chất của đường trung trực)

Mặt khác, mọi đỉnh q của Vor(p) được tạo nên bởi tối thiểu 3 cạnh nối liền với nó, do vậy, sẽ tồn tại tối thiểu 3 vùng Vonoroi V(pi), V(pj), V(pk) Đỉnh q phải cách đều pi, pj và pk và không được có một điểm nào nào khác gần q hơn nữa Do vậy, bên trong đường tròn đi qua pi, pj và pk không chứa thêm một điểm nào nữa

Giả sử, tồn tại một điểm q với tính chất đã được nêu ra trong định lý 1.3 Vì

Cp(q)=dist(q,pj)dist(q,pk) với pj, pk ∈ P Theo đó, q nằm trên một cạnh hoặc đỉnh của Vor(p) Phần đầu của định lý ngụ ý rằng, q không thể là một đỉnh của Vor(p) Do vậy, q nằm trên một cạnh của Vor(p), cũng chính là đường biên của pi và pj.

Ngược lại, đường biên của pi và pj là một cạnh của Vor(p) Đường tròn rỗng lớn nhất của bất kỳ điểm q nào thuộc cạnh này phải chứa pj và pi trên đường biên của nó và không chứa thêm điểm nào nữa

Như chúng ta đã biết, lược đồ Voronoi có những ứng dụng rộng rãi trong thực tế

Ở mục trước, chúng ta đã khảo sát một số định nghĩa và tính chất của lược đồ Voronoi

Hình 1.3 Đường tròn C p (q) đi qua 2

hoặc nhiều hơn 2 điểm trong mặt

phẳng P

q

q

Trang 15

Trang 16

Hình 1.4 Minh họa một thời điểm khi thực hiện thuật toán dòng quét của Fortune

Hình 1.5 Cách hình thành và tính chất của

đường parabol

Nhưng lược đồ Voronoi chỉ được áp dụng khi đã xây dựng

trên máy tính Sau đây, ta sẽ tìm hiểu thuật toán xây dựng

lược đồ Voronoi trên máy tính

Trước tiên, hãy xem xét những nhận xét sau:

Nhận xét 1.2 pi là phần giao giữa các nửa mặt phẳng h(pi,pj)

với i≠j Các nửa mặt phẳng lần lượt ghép với nhau thành một

vùng Voronoi Từ đó, các vùng Voronoi hoàn chỉnh ghép

lại với nhau tạo thành Vor(P) Có nhiều thuật toán xây

dựng lược đồ Voronoi Luận văn chọn nghiên cứu thuật toán do Fortune đề nghị với cách xây dựng bằng dòng quét vì thuật toán này phổ biến và dễ hiểu

1.2.1 Khái niệm dòng quét và áp dụng vào việc xây dựng lược đồ Voronoi trong máy tính

Dòng quét là một đường thẳng tưởng tượng quét từ đỉnh đến đáy của mặt phẳng,

kí hiệu là l Khi quét, chúng ta sẽ lưu những điểm cắt của l với lược đồ voronoi sinh ra ở phần trên của l được gọi là l+, thế nhưng chúng ta sẽ gặp khó khăn Vì phần Vor(P) ở trên

l không chỉ phụ thuộc vào những điểm nằm phía trên của l mà còn phụ thuộc vào những

điểm nằm phía dưới l Khi dòng quét đi từ trên xuống dưới thì chúng ta lưu thông tin

về đường cắt với lược đồ Voronoi, nhưng chúng ta đang sử dụng dòng quét để xây dựng lược đồ voronoi Và khi dòng quét quét từ trên xuống, một phần voronoi hình thành phía trên dòng quét nhưng đó không

là hoàn chỉnh vì lược đồ còn phụ thuộc vào những điểm nằm phía dưới dòng quét Gọi l+ là phần phía trên l Với mỗi q thuộc l+

Khoảng cách của q thuộc l+ tới một điểm bất kỳ nào nằm dưới l luôn luôn lớn hơn khoảng cách q->l

Do vậy, điểm gần nhất của q không thể nằm đưới l, tối thiểu là nằm trên l

Trang 16

Trang 17

Hình 1.6 Đường Beach Line được tạo bởi nhiều cung parabol cắt nhau

Quỹ tích các điểm nằm gần điểm pi nào đó phía trên

dòng quét là các đường parabol

Vậy quỹ tích những điểm gần pi hơn là một đường

parabol và với nhiều điểm thì chúng ta sẽ có nhiều parabol

được sinh ra và cắt nhau Chúng ta nhìn từ đường quét trở

lên, những đoạn parabol nào được cắt nhau và chúng bao

ngoài những parabol nằm bên trong thì tạo thành đường bờ biển Beach Line

Khi dòng quét quét từ trên xuống, thay vì phải lưu

thông tin những điểm cắt nhau của dòng quét với Voronoi thì

chúng ta sẽ lưu thông tin đường quét với parabol

Khi dòng quét đi qua điểm pi, parabol ứng với pi sinh

ra với độ rộng bằng 0, parabol tiếp tục rộng thêm khi dòng

quét tiếp tục đi xuống

Nhận xét 1.3 Trong quá trình di chuyển từ trên xuống,

Beach Line đơn điệu, nghĩa là, tất cả các trục dọc (l) chỉ cắt

nó tại một điểm duy nhất

Khi dòng quét qua pi, đường Beach Line phát sinh 2

chia tách

a

b c

Trang 17

Trang 18

Hình 1.9 Hai điểm hội tụ tạo thành đỉnh q

Nhận xét 1.4 Cung mới xuất hiện trên đường Beach Line chỉ khi dòng quét quét qua sự

kiện điểm Sự kiện điểm là khi dòng quét đi qua mọi điểm pi trong mặt phẳng P, khi đó pi

gọi là sự kiện điểm n điểm pi thuộc P với i=1 n đều tạo thành một sự kiện điểm

Đường bờ có tối đa 2n-1 cung parabol

22

1

y jy jx jx y

jy

l p

Khi các parabol rộng dần ra, các điểm cắt cũng di chuyển, các điểm cắt di chuyển tạo thành các đường thẳng, đoạn thẳng hoặc tia thẳng, chính là các cạnh của Voronoi Hai parabol rộng dần ra, các điểm cắt di chuyển tạo thành đường thẳng kéo dài, cho tới khi gặp một parabol khác cắt tại giao điểm của hai parabol ban đầu thì tạo thành đỉnh, chính

là đỉnh của Voronoi

Khi đó, đường bờ có tối đa 2n-1 cung parabol vì : Mỗi khi có một điểm tham gia, làm tăng thêm một đường cong mới trên Beach Line và chia tối đa một đường con hiện tại làm hai và không có cách nào khác để một đường cong xuất hiện trên Beach Line

Nhận xét 1.5 Cách duy nhất mà tại đó một cung hiện tại có thể biến mất là thông qua sự

kiện đường tròn

b

Trang 18

Trang 19

Hai điểm gãy phân kỳ (a và b sẽ phân kỳ khi parabol rộng dần ra)

Hai điểm gãy hội tụ (b và c sẽ hội tụ khi parabol p rộng dần ra) tạo thành 1 đỉnh và

từ đỉnh đó sẽ tiếp tục sinh ra cạnh mới

Đỉnh là nơi 2 điểm hội tụ, gọi là q Khi đó, cung ’ biến mất và ở đỉnh q sẽ xuất hiện sự kiện đường tròn, với q là tâm, bán kính là qpi =qpj =qpk Điều này có nghĩa là 3 điểm pi, pj, pk nằm trên đường biên của đường tròn tâm q

Khi dòng quét đi qua điểm thấp nhất của đường tròn tâm q thì một cung trên đường Beach Line sẽ triệt tiêu q là tâm của đường tròn đi qua 3 điểm pi, pj, pk và tiếp xúc với dòng quét Khi đó q là đỉnh của lược đồ Vor(P) Điểm dòng quét đi qua, là điểm thấp nhất của đường tròn được gọi là sự kiện đường tròn

Một cung trên bờ biến mất chỉ khi dòng quét đi qua sự kiện đường tròn

Chú ý: q là điểm hội tụ, khi đó q là giao của 2 cung , ’’, mặc khác q cũng nằm trên

đường parabol chứa ’ Do đó, q là giao của 3 cung parabol , ’, ’’ Theo tính chất của đường parabol thì qpi = qpj = qpk và = qH với qH vuông góc với l (pi, pj, pk chính là tiêu điểm F và đường quét l chính là đường chuẩn ∆ trong định nghĩa parabol ở trên)

Để xây dựng lược đồ Voronoi trong máy tính, ngoài những khái niệm trên, còn cần phải có một cấu trúc dữ liệu như sau

1.2.2 Cấu trúc dữ liệu sử dụng để xây dựng lược đồ Voronoi

a Cây dữ liệu T

Để dễ dàng lưu trữ và xử lý các dữ liệu của thuật toán, luận văn sẽ giới thiệu cách biễu diễn lược đồ Vor(P) bằng cây tìm kiếm nhị phân cân bằng T Các nốt lá ứng với các cung của đường bờ biển Beach Line Nốt lá ngoài cùng trái ứng với cung ngoài cùng trái Các nốt trong ứng với các điểm gãy của đường bờ biển Beach Line

Mỗi nốt lá lưu một điểm pi, xác định cung tương ứng và một con trỏ trỏ đến nốt trong hàng đợi sự kiện ứng với sự kiện đường tròn Con trỏ này là null nếu sự kiện đường tròn chưa xác định được

Mỗi cung lưu trong bộ (pi,pj), pi là điểm ứng với cung bên trái điểm gãy, pj ứng với cung bên phải điểm gãy, điểm gãy và một con trỏ trỏ đến nửa cạnh của cây T

Trang 19

Trang 20

b Hàng đợi sự kiện

Trong quá trình dòng quét di chuyển từ trên xuống, khi nó gặp một điểm bất kỳ trong mặt phẳng P thì việc xử lý sự kiện xảy ra Để thuận tiện cho công việc này, ta lưu các điểm trong mặt phẳng và hàng đợi ưu tiên với độ ưu tiên xét theo tung độ các điểm sự kiện Khi đó, những điểm trong hàng đợi sẽ có thứ tự như trong mặt phẳng khi dòng quét

đi từ trên xuống Với sự kiện điểm ta lưu chính điểm đó Với sự kiện đường tròn, ta lưu điểm thấp nhất của đường tròn và một con trỏ trỏ đến nốt là trong T ứng với cung sẽ biến mất khi sự kiện xảy ra

Xác định sự kiện đường tròn: Khi có bộ 3 điểm liên tục mới, nếu 3 điểm này là 3 điểm

phân biệt khác nhau thì:

-Bộ 3 cung liền kề có 2 điểm gãy phân kì Trường hợp này bộ 3 không xác định một sự kiện đường tròn

-Bộ 3 cung liền kề có 2 điểm gãy hội tụ Trường hợp này chưa thể xác định sự kiện đường tròn vì có thể bộ 3 biến mất (sự xuất hiện của điểm mới trên đường bờ)

Sự kiện được gọi là sự kiện sai (sẽ giải thích rõ ở phần sau)

-Với mỗi sự kiện ta kiểm tra bộ 3 cung liền kề xuất hiện, nếu bộ 3 có điểm gãy hội

tụ thì sự kiện đường tròn xuất hiện

Trong suốt quá trình trượt, Beach Line thay đổi cấu trúc hình học của nó tại mọi

sự kiện Điều này có nghĩa là 3 cung liên tiếp có thể xảy ra tại tất cả các sự kiện điểm Tại một sự kiện điểm, một cung mới xuất hiện trên Beach Line và sẽ có một bộ 3 cung liên tiếp mới trong đó có cung mới này Tại một sự kiện đường tròn, một cung biến mất khỏi Beach Line và các cung bên cạnh hình thành lên một bộ 3 mới Hơn nữa, các sự kiện điểm có thể phá hủy bộ 3 của các cung liên tục Khi một cung biến mất tại một sự kiện đường tròn, tất cả các bộ 3 khác liên quan đến cung đó không còn phù hợp là bộ 3 liên tục trên Beach Line nữa Khi một cung mới xuất hiện tại một sự kiện điểm, một cung khác bị chia đôi và bộ 3 tương ứng với cung bị chia bị phá hủy

Trang 20

Trang 21

Một sự kiện đường tròn chỉ hình thành nếu bộ 3 cung liên tục tồn tại cho đến khi đường trượt tiếp xúc với điểm thấp nhất của đường tròn Sự kiện đường tròn bị xóa bỏ trước khi hình thành còn được gọi là sự kiện sai

Tóm lại, hàng đợi sự kiện Q chứa một đường tròn sự kiện nếu và chỉ nếu có bộ 3 cung liên tiếp trên Beach Line mà đường tròn đi qua điểm pi định nghĩa nên các cung này

và đường tròn giao với đường trượt chưa bị xóa

Khi có một bộ 3 cung liên tục mới, đầu tiên chúng ta kiểm tra xem những cùng này có phải được xác định bởi 3 điểm khác nhau không, nếu chỉ là của 2 điểm thì vấn đề

đã được giải quyết, chúng ta bỏ qua bộ 3 mới này: nó không thể tạo nên sự kiện đường tròn Nếu 3 điểm đã được giải quyết, chúng ta kiểm tra xem sự kiện đường tròn có phải nằm trong hàng đợi Q chưa và đường tròn có giao với đường trượt không Nếu vậy, chúng ta thêm đường tròn sự kiện, nếu không, chúng ta bỏ qua nó

Lưu ý: Sau khi tất cả sự kiện được giải quyết và hàng hợi sự kiện rỗng, Beach Line vẫn

chưa biến mất

1.3 Thuật toán

Input: P = {p1 , …, p n } n điểm phân biệt trong mặt phẳng

Output: Vor(P) và biên giới hạn

B1 Khởi tạo hàng đợi sự kiện Q với các điểm sự kiện là các điểm thuộc P

Khởi tạo trạng thái dòng quét L rỗng

Khởi tạo T rỗng

B2 while Q ≠ Ø do

Lấy điểm sự kiện q có tung độ lớn nhất ra khỏi Q

Nếu q = p i thuộc P thì XulySukienDiem(pi)

Ngược lại XulySukienDuongtron(  ), trong đó  là nốt lá của T ứng với cung bị triệt tiêu

B3 Các nốt trong còn lại của T ứng với các nửa cạnh của Vor(P)

Xác định hình chữ nhật chứa các đỉnh của Vor(P)

Thêm các nửa cạnh và biên hình chữ nhật vào D

B4 Duyệt các nửa cạnh của D để bổ sung dữ liệu các mảnh Voronoi và các con trỏ liên quan

Trang 21

Trang 22

XulySukienDiem(p i )

XulySukienDuongtron()

B1 Nếu T = Ø chèn pi vào T Ngược lại qua B2

B2 Tìm cung  phía trên pi Nếu nốt lá ứng với  chứa con trỏ đến sự kiện đường tròn

trong Q thì điểm sự kiện này là điểm sự kiện sai và được xóa khỏi Q

B3 Thay nốt lá ứng với  bằng cây con có ba nốt lá Nốt lá giữa chứa điểm pi, hai nốt

lá còn lại chứa pj ứng với  trước đó Lưu (pj, pi) và (pi, pj) ứng với 2 điểm gãy vào hai nốt trong mới Thực hiện cân bằng cây T nếu cần thiết

B4 Tạo bản ghi nửa cạnh của Vor(P) cho cạnh phân chia V(pi) và V(pj)

B5 Kiểm tra bộ ba cung liền kề với cung mới của pi là cung trái để kiểm tra sự hội tụ

của các điểm gãy Nếu điểm gãy hội tụ, chèn sự kiện đường tròn vào Q và thêm con trỏ liên kết nốt của T và nốt của Q Làm tương tự khi cung mới là cung phải

B1 Xóa nốt lá  ứng với cung  bị triệt tiêu khỏi T Cập nhất các bộ biểu diễn các điểm

gãy ở nốt trong Thực hiện cân bằng cây T nếu cấn thiết Xóa tất cả các sự kiện đường tròn liên quan đến  khỏi Q thông qua các con trỏ của nốt cha và nốt con của 

B2 Chèn tâm của đường tròn gây ra sự kiện vào D như một đỉnh của Vor(P) Tạo 2 nửa

cạnh ứng với điểm gãy mới của đường bờ biển Beach Line Chèn ba bản ghi của các nửa cạnh có điểm mút cuối là đỉnh vừa được chèn ở trên

B3 Xét bộ ba cung liền kề với cung trái của  là cung giữa để kiểm tra sự hội tụ của

điểm gãy Nếu các điểm gãy hội tu, chèn điểm sự kiện đường tròn tương ứng vào Q

và thiết lập các con trỏ giữa sự kiện đường tròn và các nốt lá tương ứng trong T Làm tương tự với bộ ba cung liền kề với cung phải là cung giữa

Trang 22

Trang 23

Chương 2 VORONOI CHO TẬP CÁC ĐƯỜNG TRÒN

Chương 1 đã trình bày về lược đồ Voronoi cho điểm Dựa trên cơ sở đó, từ một tập các điểm cho trước trong mặt phẳng, chương 2 mở rộng ra thành một tập các đường tròn cho trước trong mặt phẳng Khi tìm hiểu lược đồ Voronoi cho tập các đường tròn cho trước trong mặt phẳng, các đường tròn tiếp xúc với các đường tròn này luôn được tính toán Vì vậy, chương 2 sẽ trình bày cách phát sinh đường tròn tiếp xúc thông qua

“Vấn đề Apollonius thứ mười”

2.1 Vấn đề Apollonius thứ mười thông qua sự điều chỉnh bán kính

và Mobius chuyển đổi

Khoảng năm 200 Trước Công Nguyên, Apollonius của Perga - một nhà toán học

Hy Lạp nổi tiếng - tìm kiếm các đường tròn tiếp xúc cho ba đối tượng hình học, mỗi đối tượng này có thể là một điểm, một đường thẳng, hoặc một đường tròn Trong số mười trường hợp có thể tồn tại hoặc xảy ra, việc tính toán các đường tròn tiếp xúc với ba đường tròn cho trước thú vị nhất Vấn đề này được gọi là “Vấn đề Apollonius thứ mười”, chúng

ta thường xuyên gặp phải vấn đề này trong hình học

Ví dụ: Khi hình thành lược đồ Voronoi cho các đường tròn trong mặt phẳng, vị trí

của một đỉnh Voronoi có thể được tính bằng cách giải quyết “Vấn đề Apollonius thứ mười” được xác định bởi ba đường tròn phát cho trước Hình 2.1(a) cho thấy một trường hợp đơn giản: lược đồ Voronoi được xác định bởi ba đường tròn Trong hình này, đỉnh Voronoi (chấm đen), là điểm có các khoảng cách như nhau đến ba đường tròn, đỉnh này

là tâm của đường tròn Apollonius (đường tròn tiếp xúc)

Trong lược đồ Voronoi, có nhiều loại đường tròn Apollonius khác nhau tùy thuộc vào vị trí tương đối của các đường tròn Ví dụ: Hình 2.1(b) là trường hợp các đường tròn phát nằm bên ngoài đường tròn Apollonius, trong khi hình 2.1(c) cho thấy trường hợp khác: một trong ba đường tròn phát chứa đường tròn Apollonius Lưu ý rằng cả hai

Trang 23

Luận văn sẽ trình bày thuật toán để tính toán tất cả các đường tròn Apollonius Trong luận văn, chúng ta sẽ không hạn chế kích thước và vị trí của các đường tròn, trừ trường hợp hai đường tròn trùng nhau Do đó, các đường tròn được phép cắt nhau và thậm chí một đường tròn có thể chứa các đường tròn khác Thuật toán này chủ yếu sử dụng Mobius chuyển đổi Các thuật toán đề xuất cách tính toán tất cả các trường hợp có thể xảy ra của đường tròn Apollonius

2.1.1 Cấu hình của đường tròn Apollonius

Trước khi tìm hiểu các cấu hình của đường tròn Apollonius, luận văn sẽ trình bày

về khái niệm của đường tròn Apollonius sau đây:

Đường tròn Apollonius là một đường tròn tiếp xúc với ba đường tròn và ba đường tròn này được gọi là bộ ba đường tròn phát Trong đó, ba đường tròn phát được kí hiệu là

Gi= (ci, ri), với i=0, 1 và 2 Tâm ci= (xi, yi) và bán kính ri Có thể giả định rằng, thứ tự của các đường tròn phát phụ thuộc vào bán kính của nó, tức là r0 ≤ r1 < r2

Hình 2.1 Lược đồ Voronoi cho tập các đường tròn và một đường tròn Apollonius

(đường tròn tiếp xúc) tương ứng với một đỉnh Voronoi

Trang 24

Trang 25

“Vấn đề Apollonius thứ mười” đưa ra cách thức để tìm để tìm tất cả các đường tròn Apollonius đối với bất kỳ cấu hình nào của bộ ba đường tròn phát Trong đó, đường tròn phát G0, với bán kính nhỏ nhất, được gọi là đường tròn phát nhỏ nhất

Luận văn cung cấp một hệ thống liệt kê đầy đủ tất cả các trường hợp có thể xảy ra của một đường tròn Apollonius cho một thiết lập tùy ý (vị trí tùy ý) của ba đường tròn phát Mỗi trường hợp được gọi là cấu hình, xác định bởi vị trí tương đối của các đường tròn phát đối với một đường tròn Apollonius Định nghĩa 2.1 xác định mối quan hệ của một đường tròn đối với các đường tròn khác

Định nghĩa 2.1 Giả sử có hai đường tròn, một đường tròn tiếp xúc và một đường tròn

phát Khi đó, giá trị trạng thái quy định cho các đường tròn phát như sau:

(i) đường tròn phát được quy định là O, nếu đường tròn tiếp xúc và đường tròn

phát tiếp xúc ngoài với nhau,

(ii) đường tròn phát được quy định là X, nếu đường tròn phát nằm bên trong đường

X

O

Trang 25

Trang 26

Giả sử, chúng ta áp dụng định nghĩa 2.1 để mỗi bộ phát tương ứng với đường tròn Apollonius của chính nó Nói cách khác, đặt một bộ phát gồm một đường tròn tiếp xúc và các đường tròn phát tương ứng Mỗi đường tròn phát được quy định tương ứng với một giá trị trạng thái là O, X hoặc ∆ Đặt đường tròn phát O, đường tròn phát X, hoặc đường tròn phát ∆ là các bộ phát với giá trị trạng thái tương ứng là O, X và ∆

Lưu ý rằng có 3x3x3=27 cấu hình khác nhau kể từ khi có ba đường tròn phát mà mỗi trường hợp này lại có ba giá trị trạng thái có thể có để phát sinh đường tròn Apollonius O, X và ∆ đại diện cho một cấu hình của một tập hợp gồm ba biểu tượng có thứ tự sắp xếp theo kích thước của các đường tròn phát, ba biểu tượng này được quy định

là biểu tượng đầu tiên, thứ hai và thứ ba của một cấu hình tương ứng với đường tròn phát nhỏ nhất, đường tròn phát nhỏ thứ hai và đường tròn phát lớn nhất

Ví dụ: Cấu hình OOX biểu thị cho trường hợp đường tròn Apollonius của ba

đường tròn phát mà ba đường trón phát này có hai đường tròn phát nhỏ và một đường tròn lớn

Thứ tự của các đường tròn phát luôn phụ thuộc vào bán kính của chúng, nghĩa là

ri< rj khi i< j Do đó, OOX, OXO và XOO biểu thị cho các cấu hình khác nhau Việc tính toán đường tròn Apollonius mong muốn là thật sự cần thiết và phụ thuộc vào các biểu tượng trong cấu hình Chi tiết cách tính toán được trình bày trong phần sau

Sau đây, 27 cấu hình trong việc thiết lập đường tròn phát được nhóm thành 10 bộ riêng biệt và được gọi là bộ phát vận hành bằng cách bỏ qua thứ tự giữa các đường tròn phát Vì vậy, một bộ phát vận hành cũng bao gồm một bộ ba các biểu tượng, ví dụ như OOO, OXO, OX∆, vv Nói cách khác, một bộ phát vận hành gồm ba biểu tượng biểu thị tất cả các cấu hình của đường tròn Apollonius

Hình 2.3 (c) Đường tròn phát chứa đường tròn tiếp xúc

Trang 26

Trang 27

Bộ phát Cấu hình Có thể phát sinh hay không

Trang 27

Trang 28

Ví dụ: Một bộ phát vận hành OOX đại diện cho các cấu hình là OOX, OXO, và

XOO Bên cạnh đó, một bộ phát vận hành là OOX có bộ phát khai thác OXO và XOO

Lưu ý rằng có chỉ có thể có 10 bộ phát khai thác: OOO, OOX, OO∆, OXX, OX∆, O∆∆, XXX, XXD, X∆∆, và ∆∆∆

Tuy nhiên, một số cấu hình không thể phát sinh được Cột cuối cùng của bảng 2.1 cho thấy cấu hình đó có thể phát sinh được hay không

Định lý 2.1 Trong một cấu hình, X không thể theo sau ∆

Chứng minh

Giả sử: X theo sau ∆ đại diện cho một cấu hình cho trước  đường tròn phát X lớn hơn đường tròn phát ∆ (X>∆) (1)

Theo định nghĩa 1, đường tròn phát ∆ lớn hơn đường tròn Apollonius tương ứng

do đường tròn phát ∆ chứa đường tròn Apollonius (∆>Apollonius) (2)

Do định lý 2.1, ngay lập tức có các hệ quả sau:

Hệ quả 2.1 Trong số 27 khả năng, 7 cấu hình sau không thể có: ∆XO, O∆X, ∆OX, X∆X,

∆XX, ∆∆X, và ∆X∆

2.1.2 Mobius chuyển đổi

Để thuận tiện cho việc tính toán các đường tròn Apollonius đối với ba đường tròn phát, phải tìm kiếm đường tròn tiếp xúc với hai đường tròn và đường tròn tiếp xúc này đi qua một điểm

Biến đổi này được thực hiện thông qua việc điều chỉnh (mở rộng hoặc thu nhỏ) bán kính của đường tròn phát cho trước, được gọi là quá trình biến đổi điều chỉnh bán kính

Độ rộng bán kính điều chỉnh tương ứng với độ rộng bán kính của đường tròn phát nhỏ nhất

Trang 28

Có thể có bốn đường tròn tiếp xúc như trong hình 2.2

Hình 2.2 (a) thể hiện cho các trường hợp giao điểm z0 nằm bên ngoài cả 2 đường tròn Z1 và Z2 trong khi z0 trong hình 2.2 (b) nằm bên trong Z1 và nằm ngoài Z2

Lưu ý: Trong cả hai hình 2.2 (a) và (b), chỉ có nhiều nhất là bốn đường tròn tiếp

xúc

Do sự biến đổi này, chúng ta có ba mặt phẳng hai chiều tương đương như sau:

 Mặt phẳng O: mặt phẳng Euclide ban đầu để tìm các đường tròn Apollonius

 Mặt phẳng Z: mặt phẳng phức điều chỉnh bán kính

 Mặt phẳng W: mặt phẳng phức ánh xạ bởi W(z)

Nếu chúng ta áp dụng định nghĩa 1 để điều chỉnh bán kính Z1 và Z2, thì các vị trí tương đối của đường tròn tiếp xúc T đối với cả hai đường tròn Z1 và Z2 có thể được ký hiệu như sau:

Định nghĩa 2.2 Đặt Tij là đường tròn tiếp xúc với cả hai đường tròn điều chỉnh bán kính

Z1 và Z2 với giá trị trạng thái i và j tương ứng, khi đó i, j ∈ (O, X, ∆)

Ví dụ: Trong hình 2.3(a), TOX biểu thị cho trường hợp đường tròn tiếp xúc tiếp xúc ngoài với Z1 đồng thời nó tiếp xúc trong với Z2 và chứa Z2

Trong ví dụ ở hình 2.3(a), có thể có nhiều đường tròn tiếp xúc cho một cấu hình

nhất định, trong khi một cấu hình chỉ có một đường tròn tiếp xúc duy nhất Ví dụ: Trường

hợp có hai đường tròn tiếp xúc là ∆ (hoặc ∆ ) thể hiện trong hình 2.3(b)

Xét một mặt phẳng phức Z với z = x+iy Khi đó, hàm W(z)=u(x, y) + iv(x, y) là

một ánh xạ tương ứng, ngoại trừ tại các điểm mà đạo hàm (z) bằng không

Trang 29

Trang 30

Hình 2.3 Đường tròn tiếp xúc đi qua z 0 và tiếp xúc với cả 2 đường tròn Z 1 và Z 2 (a) giao điểm nằm

ngoài Z 1 và Z 2 , (b) giao điểm nằm bên trong Z 1

Luận văn chỉ xem xét chuyển đổi Mobius định nghĩa bởi W(z) =1/(z-z0) Biết rằng, W(z) ánh xạ các đường tròn và đường thẳng trong mặt phẳng Z thành các đường tròn và đường thẳng trong mặt phẳng W

Bổ đề sau đây được cung cấp mà không phải chứng minh

Bổ đề 2.1 Mobius chuyển đổi W(z) =1/(z-z0) có các thuộc tính sau:

 Nó biến đổi các đường thẳng và các đường tròn đi qua trong mặt phẳng Z thành các đường thẳng trong mặt phẳng W

 Nó biến đổi các đường thẳng và các đường tròn không đi qua trong mặt phẳng Z thành các đường tròn trong mặt phẳng W

 Nó biến đổi các điểm ở vô cực trong mặt phẳng Z thành đường tròn nguồn trong mặt phẳng W

 Nó biến đổi điểm trong mặt phẳng Z thành điểm vô cực trong mặt phẳng

W

Bổ đề 2.1 phát biểu rằng ánh xạ W(z) =1/(z- ) biến đổi Z1 và Z2 trong mặt phẳng

Z thành đường tròn W1 và W2 trong mặt phẳng W

Trang 30

Trang 31

Trong hình 2.4, ánh xạ W(z) áp dụng cho các trường hợp trong hình 2.3 Các đường tròn tiếp xúc trong hình 2.3 được ánh xạ thành đường thẳng tiếp tuyến đến cả hai đường tròn W1 và W2 trong hình 2.4, khi các đường tròn tiếp xúc đi qua

Định nghĩa 2.3 Giả sử có một đường tròn tiếp xúc, tiếp xúc với một đường thẳng, được

gọi là đường thẳng tiếp tuyến Thì đường thẳng tiếp tuyến được quy định với một giá trị trạng thái như sau:

(i) Đường thẳng tiếp tuyến được quy định là O, nếu đường tròn tiếp W và nguồn

O nằm trong cùng một nửa mặt phẳng có bờ là đường thẳng tiếp tuyến, khi đường tròn W không chứa nguồn O,

Hình 2.4 Các đường tron tiếp xúc trong hình 2.3 được ánh xạ thành các đường thẳng tiếp tuyến

(ii) Đường thẳng tiếp tuyến được quy định là X, nếu đường tròn W nằm trong nửa mặt phẳng đối diện với nửa mặt phẳng chứa nguồn O có bờ là đường thẳng tiếp tuyến,

(iii) Đường thẳng tiếp tuyến được quy định là ∆, nếu nguồn O nằm trong đường tròn tiếp xúc

giá trị trạng thái i và j tương ứng, trong đó i, j ∈ (O, X, ∆)

Ví dụ:

 Đường thẳng tiếp tuyến trong hình 2.4(a) chỉ ra rằng W1,W2 và nguồn O đều nằm trong cùng một nửa mặt phẳng có bờ là đường thẳng tiếp tuyến

Trang 31

đường thẳng tiếp tuyến với W1 và W2 trong mặt phẳng W Trong đó: i, j ∈ (O, X, ∆)

Giải thích tương tự có thể được áp dụng cho trường hợp của ∆ Khi đường tròn tiếp xúc được chứa trong một đường tròn Z cho trước, các đường tròn vô cực và Z được đặt trong cùng một mặt phẳng, bên ngoài đường tròn tiếp xúc, đối với T∆ Tuy nhiên, trong trường hợp này, đường tròn Z ánh xạ tới một đường tròn W chứa nguồn O trong mặt phẳng W khi z0 được chứa trong Z Lưu ý rằng bên trong đường tròn Z ánh xạ tới bên ngoài đường tròn W khi vô cực và z0 được ngăn cách bởi đường tròn Z ở cùng một thời gian vô cùng trong mặt phẳng Z được ánh xạ tới nguồn trong mặt phẳng W Do vậy, đường tròn W chứa nguồn O và cả W và O nằm trong nửa mặt phẳng có bờ là đường

Chúng ta nên xem xét cả hai đường tròn Z1 và Z2 cùng một lúc Tuy nhiên, vấn đề này có thể được giải quyết không mấy khó khăn bằng cách xem xét Z1 và Z2 một cách độc lập

Trang 32

Trang 33

Ví dụ: Các vấn đề của việc tìm đường tròn , , đến Z1 tại cùng thời điểm TX

đến Z2, có thể được giải quyết bằng cách tìm đường tròn tiếp xúc , đến W1 tại cùng thời điểm đến W2

Có thể dễ dàng thấy rằng W(z) ánh xạ các đường tròn Zi= (zi, ri) thành các đường tròn Wi= (wi, Ri) được định nghĩa là Wi = ((xi-xo)/di,-(yi-y0)/di) , Ri=ri/|di| và d=(xi - x0)2 + (yi - y0)2 - ri

2.1.3 Biến đổi điều chỉnh bán kính

Trong phần này, luận văn giải thích cách thức để chuyển đổi vấn đề đường tròn Apollonius thành vấn đề tìm kiếm một đường tròn tiếp xúc với hai đường tròn khi nó đi qua một điểm

Như đã định nghĩa trong phần trước, có ba mặt phẳng: mặt phẳng O, mặt phẳng Z

và mặt phẳng W Để có được một biến đổi thích hợp đến mặt phẳng Z, bán kính của các đường tròn phát phải được điều chỉnh, bằng cách mở rộng hoặc thu nhỏ lại, việc điều chỉnh bán kính này được gọi là điều chỉnh ban đầu

Khi một đường tròn tiếp xúc được tìm thấy, đường tròn Apollonius tương ứng thu được bằng cách điều chỉnh bán kính của đường tròn xúc Điều chỉnh bán kính thứ hai này được gọi là hoàn tất điều chỉnh

Trước tiên, thu nhỏ đường tròn phát nhỏ nhất thành một điểm để điểm này đóng vai trò là một tiếp điểm Sau đó, đường tròn phát khác được thu nhỏ hoặc mở rộng cùng kích thước của đường tròn phát nhỏ nhất tùy thuộc vào giá trị trạng thái được quy định cho các đường tròn phát

Sau đây, luận văn sẽ trình bày một quy tắc xác định việc điều chỉnh bán kính

Trang 33

Trang 34

Minh họa cho mỗi hình vẽ trong hình 2.5 là hai đường tròn phát (đường tròn đậm nét liền) và một đường tròn Apollonius mong muốn (đường tròn đậm nét đứt) cho một cấu hình

Lưu ý: Đường tròn nhỏ nhất trong ba đường tròn phát được hiển thị trong hình và

chia thành ba trường hợp để tiện việc theo dõi

Trong hình 2.5 (a), (b) và (c) là các trường hợp giá trị trạng thái của đường tròn phát nhỏ nhất là O Tương tự như vậy, hình 2.5 (d), (e) và (f) là những trường hợp mà các đường tròn phát nhỏ nhất có giá trị trạng thái là X Hình 2.5 (g) và (h) là những trường hợp đường tròn phát nhỏ nhất có giá trị trạng thái là ∆

Hình 2.5 Quy tắc điều chỉnh bán kính: (a), (b) và (c) đường tròn phát nhỏ nhất là O; (d), (e) và (f)

đường tròn phát nhỏ nhất là X; (g) và (h) đường tròn phát nhỏ nhất là ∆

Trang 34

Trang 35

Hãy xem xét hình 2.5 (a), khi cả hai đường tròn G0 và G có giá trị trạng thái là O

Để tìm một đường tròn tiếp xúc đi qua một điểm, ta thu nhỏ đường tròn phát nhỏ nhất G0

thành điểm z0 Các đường tròn Apollonius mong muốn chỉ có thể được tìm thấy bằng cách thu nhỏ đường tròn tiếp xúc T0 trong hình Trong trường hợp này, giá trị trạng thái của G là O và G đã được thu nhỏ trong quá trình biến đổi điều chỉnh ban đầu

Những trường hợp trong hình 2.5 (b) và (c) tương tự như trong hình 2.5 (a), nghĩa

là đường tròn Apollonius chỉ thu được bằng cách thu nhỏ đường tròn tiếp xúc đã được tính toán Tuy nhiên, chúng khác nhau nghĩa là các đường tròn nhiều chấm nên được mở rộng từ G Lưu ý rằng giá trị trạng thái của G trong hình 2.4 (b) và (c) tương ứng với X

và ∆

Trong hình 2.5 (d), (e) và (f), giá trị trạng thái của G0 trong các hình này đều là X Trong mỗi trường hợp, đường tròn Apollonius thu được bằng cách thu hẹp đường tròn tiếp xúc T tương ứng Trong hình 2.5 (d), G được mở rộng để thu được đường tròn nhiều chấm Mặt khác, G được thu nhỏ để có được những đường tròn nhiều chấm như trong hình 2.5 (e) và (f) Lưu ý rằng G trong hình 2.5 (d), (e) và (f) tương ứng với O, X và ∆

Hình 2.5 (g) cho thấy trường hợp một đường tròn Apollonius nằm bên trong đường tròn phát nhỏ nhất G0 và tiếp xúc với nó, trong khi nó tiếp xúc ngoài với đường tròn phát khác Do đó, bán kính của đường tròn Apollonius phải nhỏ hơn bán kính r0 của đường tròn phát nhỏ nhất G0 Do đó, cấu hình của G0 là ∆

Khi đường tròn Apollonius nằm trong đường tròn phát nhỏ nhất G0, để biến đổi đường tròn tiếp xúc thành một đường tròn Apollonius hợp lệ tương ứng, luôn luôn thu nhỏ bán kính của đường tròn tiếp xúc bằng độ rộng mà G0 thu nhỏ Cũng cần lưu ý rằng đường tròn tiếp xúc sau khi thu nhỏ luôn luôn có bán kính âm Lưu ý: đường tròn phát G được mở rộng bằng độ mà G0 bị thu nhỏ Trong cấu hình ban đầu, G0 và G có giá trị trạng thái tương ứng là ∆ và O Quá trình G0 thu nhỏ của và G mở rộng xảy ra đồng thời Khi

đó, đường tròn tiếp xúc thu nhỏ thành một điểm zX tại một số thời điểm và sau đó được

mở rộng lần nữa Lưu ý rằng zX tương ứng với tâm của T và r0 =rT + rA, với rA là bán kính của đường tròn Apollonius

Trang 35

Trang 36

Do định lý 2.1, cần lưu ý là có thể không có đường tròn phát X cho các trường hợp trong hình 2.5 (g) và (h) Trong các trường hợp này, đường tròn Apollonius có thể ngay lập tức được tính bằng cách biến đổi các giá trị trạng thái của đường tròn phát giữa O và

∆ Sau đó, áp dụng quá trình tính toán đã được thảo luận cho các trường hợp trong hình 2.5 (a) và (c) Đường tròn Apollonius được tính toán cuối cùng luôn luôn có bán kính với giá trị âm và được đổi dấu lại để có được một đường tròn Apollonius hợp lệ

Sau khi đã thu được đường tròn tiếp xúc đúng, việc điều chỉnh bán kính của nó một cách thích hợp để tìm thấy đường tròn Apollonius tương ứng hợp lệ là cần thiết Tùy thuộc vào điều kiện, được thể hiện trong quy tắc ngắn gọn sau, đường tròn tiếp xúc nên được mở rộng hoặc thu nhỏ

Khi đường tròn phát nhỏ nhất có giá trị trạng thái là O thể hiện trong hình 2.5 (a), (b) và (c), chúng ta nên mở rộng đường tròn tiếp xúc với độ rộng bằng bán kính của đường tròn phát nhỏ nhất khi đường tròn phát nhỏ nhất nằm bên ngoài đường tròn tiếp xúc

Trong hình 2.5 (d), (e) và (f), các đường tròn phát nhỏ nhất có giá trị trạng thái của

X Trong trường hợp này, bán kính của đường tròn tiếp xúc nên được thu nhỏ để có đường tròn Apollonius mong muốn hợp lệ

Khi giá trị trạng thái của đường tròn phát nhỏ nhất là ∆, như minh hoạ trong hình 2.5 (g) và (h), chúng ta nên thu nhỏ đường tròn tiếp xúc Tuy nhiên, việc thu nhỏ đường tròn tiếp xúc trong trường hợp này luôn luôn có bán kính âm và kết quả sẽ được đổi dấu một lần nữa để có được đường tròn Apollonius hợp lệ Vì đường tròn tiếp xúc được tính toán cho một vấn đề với các giá trị trạng thái thay đổi thay vì vấn đề ban đầu nên đường tròn Apollonius đúng có thể được tính trước tiên là thu nhỏ bán kính đường tròn tiếp xúc bằng độ rộng bán kính của đường tròn phát nhỏ nhất, và thứ hai là đổi dấu của nó từ âm sang dương

c Quy tắc điều chỉnh

Các trường hợp liên quan đến quá trình điều chỉnh ban đầu và hoàn tất đều chỉnh được tổng hợp và tóm tắt thành một tập các quy tắc ngắn gọn như sau:

Trang 36

Trang 37

Quy tắc 2.1 (Quy tắc điều chỉnh bán kính) Phụ thuộc vào giá trị trạng thái của đường

tròn phát nhỏ nhất, quy tắc điều chỉnh bán kính được áp dụng tính toán và theo bán kính của đường tròn phát nhỏ nhất

 Nếu giá trị trạng thái của đường tròn phát nhỏ nhất là O, thì thu nhỏ tất cả các đường tròn phát O đồng thời phóng to tất cả các đường tròn phát X và ∆ Khi

đã có các đường tròn tiếp xúc, phóng to đường tròn tiếp xúc để có được những đường tròn Apollonius mong muốn

 Nếu giá trị trạng thái của đường tròn phát nhỏ nhất là X, thu nhỏ tất cả các đường trón phát X và ∆, đồng thời phóng to tất cả các đường tròn phát O Khi

đã có các đường tròn tiếp xúc, thu nhỏ đường tròn tiếp xúc để có được những đường tròn Apollonius mong muốn

 Nếu giá trị trạng thái của đường tròn phát nhỏ nhất là ∆, thu nhỏ tất cả các đường tròn phát ∆ đồng thời chúng tôi phóng to tất cả đường tròn phát O Lưu ý rằng một đường tròn phát X không thể tồn tại khi đường tròn phát nhỏ nhất là ∆ Khi đã có các đường tròn tiếp xúc, thu nhỏ đường tròn tiếp xúc và đổi dấu của bán kính

Các thảo luận đến thời điểm này đã điều chỉnh bán kính bằng cách xem xét chỉ với hai đường tròn phát Tuy nhiên, vấn đề ban đầu xem xét ba đường tròn phát tại cùng một thời điểm Việc tìm kiếm các đường tròn Apollonius bằng cách xem xét ba đường tròn phát không mấy khó khăn Bằng cách tìm đường tròn phát nhỏ nhất và áp dụng các quy tắc trên cho cả G1 và G2 một cách độc lập, chúng ta có thể có được những đường tròn Apollonius mong muốn mà không gặp nhiều khó khăn Toàn bộ thủ tục cho việc tính toán Đường tròn Apollonius được cung cấp bởi thuật toán sau đây, quy tắc điều chỉnh bán kính và đường thẳng tiếp tuyến tương ứng cho mỗi đường tròn phát được tóm tắt trong bảng 2.2

Trang 37

Đường thẳng tiếp tuyến tương ứng

Hoàn tất quá trình điều chỉnh (đối với đường tròn tiếp xúc)

Trang 38

Ví dụ 1: Giả sử có một cấu hình cho trước là OX∆ và đường tròn phát là Gi= (ci,

ri), i=0, 1, và 2, khi r0≤ r1≤ r2 Theo quy tắc 1, đường tròn phát X và ∆, tương ứng với G1

và G2, nên được mở rộng khi giá trị trạng thái của đường tròn phát nhỏ nhất là O Kết quả

là, một giao điểm z0≡c0 và thu được hai đường tròn điều chỉnh bán kính tương ứng là Z1 = (c1, r1 + r0) và Z2 = (c2, r2 + r0) Sau đó, Z1 và Z2 được chuyển thành W1 và W2 trong mặt phẳng W tương ứng với W(z) Sau khi tính toán đường thẳng tiếp tuyến tương ứng LX∆

trong mặt phẳng W, chúng tôi biến đổi lại đường thẳng tiếp tuyến vào mặt phẳng Z để thu được các đường tròn tiếp xúc Cuối cùng, chúng tôi có thể tính toán đường tròn

Input: G0, G1, G2, và cấu hình của đường tròn Apollonius mong muốn (ở cột B trong bảng 2.2)

Output: Một đường tròn Apollonius đã được tính

Thuật toán:

B1 Điều chỉnh bán kính của các đường tròn phát theo cột C trong bảng 2.2, có

được Z1, Z2 và z0

B2 Biến đổi Z1 và Z2 vào trong mặt phẳng W bằng ánh xạ W(z)

B3 Tính toán đường thẳng tiếp tuyến tương ứng của W1 và W2 trong mặt phẳng

Trang 39

Trang 40

Hình 2.6 Tập các đường tròn cho trước trong mặt phẳng

Apollonius bằng cách điều chỉnh bán kính của đường tròn tiếp xúc như đã giải thích trong các quy tắc

Ví dụ 2: Khi cấu hình cho trước là XO∆, chúng ta thu nhỏ đường tròn phát ∆-G1,

và mở rộng đường tròn phát O-G2, bởi quy tắc 1 Tiếp theo, chúng ta biến đổi Z1 =(c1, r1– r0) và Z2 =(c2, r2 – r0) thành W1 và W2 trong mặt phẳng W Sau đó, tính toán đường thẳng tiếp tuyến tương ứng ∆ Sau khi tính toán đường thẳng tiếp tuyến, chúng ta biến đổi đường thẳng tiếp tuyến vào mặt phẳng Z để có được đường tròn tiếp xúc ∆ Trong bước cuối cùng, ta điều chỉnh bán kính của đường tròn tiếp xúc để có được những đường tròn Apollonius mong muốn cho X∆O

Ví dụ 3: Khi cấu hình cho trước là ∆O∆, chúng ta phóng to đường tròn phát O và

thu nhỏ đường tròn phát ∆ bằng các quy tắc tương tự Sau khi biến đổi hai đường tròn Z1

= (c1, r1 + r0) và Z2 = (c2, r2 + r0) thành W1 và W2 vào trong mặt phẳng W, chúng ta tính

toán đường thẳng tiếp tuyến ∆ Lưu ý rằng khi cấu hình của đường tròn phát nhỏ nhất

là ∆, ta trao đổi biểu tượng O và ∆ Cuối cùng, sau khi tính toán các đường tròn tiếp xúc

∆ bằng cách biến đổi ∆ vào mặt phẳng Z, điều chỉnh bán kính của đường tròn tiếp xúc và đổi dấu của bán kính được tính

2.2 Thuật toán dòng quét xây dựng lược đồ Voronoi cho tập các đường tròn trong mặt phẳng

Sau khi đã tìm hiểu cách phát sinh đường tròn

tiếp xúc cho bộ ba đường tròn phát, luận văn sẽ tiếp

tục trình bày về thuật toán dòng quét xây dựng lược đồ

Voronoi cho những đường tròn trong mặt phẳng

2.2.1 Giới thiệu chung về thuật toán

Cho một tập các đường tròn bán kính không

âm, bán kính của các đường tròn không nhất thiết phải

bằng nhau Các đường tròn được đặt tùy ý để chúng có

thể cắt nhau, thậm chí có trường hợp đường tròn nằm trong đường tròn

Khi đó, luận văn sẽ trình bày cách xây dựng lược đồ Voronoi cho tập các đường tròn trên

Trang 40

Trang 41

Trước tiên, luận văn sẽ giới thiệu định nghĩa về lược đồ Voronoi cho tập các đường tròn trong mặt phẳng

Định nghĩa 2.5 Lược đồ Voronoi cho tập các đường tròn cho trước được xây dựng bằng

thuật toán dòng quét Dòng quét là một đường thẳng nằm ngang, di chuyển từ trên xuống Khi di chuyển, dòng quét chỉ dừng tại những điểm, mà ở điểm đó, cấu trúc của lược đồ

Voronoi sẽ được xây dựng thêm

Độ phức tập của thuật toán này là

0((n+m)log n)

Với n: số đường tròn cho trước

m là số giao điểm giữa các đường tròn

cắt nhau

Chúng ta sẽ xác định tập những điểm bất

kỳ sao cho những điểm đó nằm gần với một

đường tròn cho trước, khi đó, tập hợp tất cả các

điểm nằm gần đường tròn cho trước đó được

gọi là một vùng Voronoi tương ứng với đường

tròn đó Tập hợp tất cả các vùng Voronoi lại

với nhau tạo thành một khảm lát thì gọi là lược

đồ Voronoi của một tập các đường tròn cho

trước

Trong những nghiên cứu trước thì chỉ

có quan hệ một-một giữa một đường tròn

Voronoi và một vùng Voronoi Nói cách khác,

một đường tròn chỉ định nghĩa lên một vùng

Voronoi tương ứng Bởi vậy, khi có trường

hợp, hai đường tròn cắt nhau, thì cạnh của

Voronoi chỉ được định nghĩa là nằm bên ngoài

của cả hai đường tròn đó

Hình 2.8: Một đường tròn tham gia vào 2 vùng Voronoi, 2 đường tròn tham gia vào 4

vùng voronoi

Hình 2.7: Bốn vùng Voronoi được lát với nhau tạo thành lược đồ Voronoi cho 2 đường tròn g 1 , g 2

Ngày đăng: 15/06/2018, 15:01

TỪ KHÓA LIÊN QUAN

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

w