TRẦN XUÂN TIỆP NGHIÊN CỨU MỘT SỐ THUẬT TOÁN CHỌN K-LÁNG GIỀNG GẦN TRONG 2D VÀ ÁP DỤNG CHO PHƯƠNG PHÁP RBF-FD GIẢI PHƯƠNG TRÌNH POISSON LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH ĐẠI HỌC THÁ
Trang 1TRẦN XUÂN TIỆP
NGHIÊN CỨU MỘT SỐ THUẬT TOÁN
CHỌN K-LÁNG GIỀNG GẦN TRONG 2D
VÀ ÁP DỤNG CHO PHƯƠNG PHÁP RBF-FD
GIẢI PHƯƠNG TRÌNH POISSON
LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH
ĐẠI HỌC THÁI NGUYÊN TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG
Trang 2TRẦN XUÂN TIỆP
NGHIÊN CỨU MỘT SỐ THUẬT TOÁN
CHỌN K-LÁNG GIỀNG GẦN TRONG 2D
VÀ ÁP DỤNG CHO PHƯƠNG PHÁP RBF-FD
GIẢI PHƯƠNG TRÌNH POISSON
CHUYÊN NGÀNH: KHOA HỌC MÁY TÍNH
MÃ SỐ: 60.48.01
LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH
NGƯỜI HƯỚNG DẪN KHOA HỌC
Trang 3LỜI CAM ĐOAN
Tôi xin cam đoan đây là công trình nghiên cứu riêng của tôi Các số liệu, kết quả nêu trong luận văn là trung thực và mới mẻ
Tôi xin cam đoan rằng mọi sự giúp đỡ cho việc thực hiện luận văn này đã được cảm ơn và các thông tin trích dẫn trong luận văn đã được chỉ rõ nguồn gốc
Học viên thực hiện luận văn
Trần Xuân Tiệp
Trang 4LỜI CẢM ƠN
Để hoàn thành bản luận văn này, bên cạnh sự nỗ lực cố gắng của bản thân còn có sự hướng dẫn nhiệt tình của quý Thầy Cô, cũng như sự động viên ủng hộ của gia đình và bạn bè trong suốt thời gian học tập nghiên cứu và thực hiện luận văn thạc sĩ
Xin chân thành bày tỏ lòng biết ơn đến cô giáo TS Đặng Thị Oanh, người đã hết lòng giúp đỡ và tạo mọi điều kiện tốt nhất cho tôi hoàn thành luận văn này Xin gửi lời tri ân nhất của tôi đối với những điều mà cô đã dành cho tôi
Xin chân thành bày tỏ lòng biết ơn đến toàn thể quý Thầy Cô trong trường Đại học Công nghệ thông tin & Truyền thông cũng như quý Thầy Cô đã tận tình truyền đạt những kiến thức quý báu và tạo mọi điều kiện thuận lợi cho tôi trong suốt quá trình học tập, nghiên cứu và cho đến khi thực hiện luận văn
Xin chân thành bày tỏ lòng biết ơn đến gia đình, những người đã không ngừng động viên, hỗ trợ và tạo mọi điều kiện tốt nhất cho tôi trong suốt thời gian học tập
và thực hiện luận văn
Cuối cùng, tôi xin chân thành bày tỏ lòng biết ơn đến các anh chị và các bạn
bè đồng nghiệp đã hỗ trợ cho tôi trong suốt quá trình học tập, nghiên cứu và thực hiện luận văn một cách hoàn chỉnh
Thái Nguyên, tháng 3 năm 2014
Học viên thực hiện
Trần Xuân Tiệp
Trang 5MỘT SỐ HÀM DÙNG TRONG LUẬN VĂN
Tên hàm Viết tắt Định nghĩa Multiquadric MQ f mq( )r = 1 +r2
Inverse Multiquadric IMQ f imq( ) 1 1r = +r2
Trang 6DANH MỤC HÌNH VẼ
Trang
Hình 2.6 Các điểm trên mỗi cung phần tư của hình tròn tâm z
(TT cung phần tư) 26
Hình 2.7 Chọn 2 điểm trên mỗi cung phần tư gần z nhất
(TT cung phần tư) 27
Trang 7Hình 3.4 Số tâm ban đầu và sau cùng (Bài toán 2) 45
Trang 8MỤC LỤC
LỜI CAM ĐOAN i
LỜI CẢM ƠN ii
DANH MỤC CÁC TỪ VIẾT TẮT iii
DANH MỤC HÌNH VẼ iv
LỜI MỞ ĐẦU 1
Chương 1 MỘT SỐ KIẾN THỨC CƠ SỞ 3
1.1 Điều kiện vật lý dẫn đến phương trình Poisson 3
1.2 Hệ phương trình đại số tuyến tính 4
1.3 Một số phương pháp giải hệ phương trình đại số tuyến tính 5
1.3.1 Chuẩn của véc tơ, chuẩn của ma trận 5
1.3.2 Phương pháp Gauss 6
1.4 Một số định nghĩa và khái niệm cơ bản của nội suy hàm RBF 8
1.5 Nội suy hàm RBF 10
1.5.1 Nội suy dữ liệu phân tán trong không gian R 10 d 1.5.2 Nội suy với hàm cơ sở theo bán kính 11
1.5.3 Nội suy với độ chính xác đa thức và hàm xác định dương có điều kiện 13
1.6 Phương pháp sai phân hữu hạn (Finite Different - FD) 15
1.6.1 Bài toán truyền nhiệt dừng trong miền chữ nhật 15
1.6.2 Lưới sai phân 15
1.6.3 Hàm lưới 16
Chương 2 MỘT SỐ THUẬT TOÁN CHỌN K-LÁNG GIỀNG GẦN TRONG 2D 19
2.1 Một số kiến thức cơ sở về cây tìm kiếm nhị phân 19
2.2 Thuật toán cung phần tư 23
2.2.1 Ý tưởng 23
2.2.2 Nội dung 23
2.2.3 Thuật toán 24
2.2.4 Ví dụ 25
2.2.4 Ưu, nhược điểm 27
2.3 Thuật toán Lee Liu Fan (LLF) 27
2.3.1 Ý tưởng 28
2.3.2 Nội dung 28
2.3.3 Thuật toán 28
2.3.4 Ví dụ 29
2.2.5 Ưu, nhược điểm 31
2.3 Thuật toán Oleg&Oanh – 2011 31
2.3.1 Ý tưởng 31
2.3.2 Nội dung 32
2.3.3 Thuật toán 33
2.3.4 Ví dụ 35
2.3.5 Ưu, nhược điểm 37
Trang 9Chương 3 ÁP DỤNG THUẬT TOÁN CHỌN K-LÁNG GIỀNG GẦN CHO PHƯƠNG PHÁP
RBF-FD TRONG KHÔNG GIAN 2D 38
3.1 Rời rạc hóa phương trình Poisson 38
3.2 Phương pháp RBF-FD (Radial Basis Function Finite Different) 39
3.2.1 Véc tơ trọng số dựa vào hàm nội suy theo cơ sở bán kính 39
3.2.2 Xây dựng ma trận hệ số (ma trận cứng) 41
3.2.3 Lược đồ phương pháp RBF-FD 42
3.3 Thử nghiệm số 43
3.3.1 Thử nghiệm trên miền hình chữ nhật 43
3.3.2 Thử nghiệm trên một số miền có hình học phức tạp 45
TÀI LIỆU THAM KHẢO 54
NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN 56
Trang 10LỜI MỞ ĐẦU
Nhiều hiện tượng khoa học và kỹ thuật dẫn đến các bài toán biên của phương trình vật lý toán Giải các bài toán đó đến đáp số bằng số là một yêu cầu quan trọng của thực tiễn Trong một số ít trường hợp thật đơn giản, việc đó có thể làm được nhờ vào nghiệm tường minh của bài toán dưới dạng các công thức sơ cấp, các tích phân hoặc các chuỗi hàm Còn trong đại đa số trường hợp khác, đặc biệt
là đối với các bài toán có hệ số biến thiên, các bài toán phi tuyến, các bài toán trên miền bất kỳ thì nghiệm tường minh của bài toán không có, hoặc có nhưng rất phức tạp Trong những trường hợp đó việc tính nghiệm phải dựa vào các phương pháp giải gần đúng
Trong suốt thế kỷ XX một loạt các phương pháp số đã hình thành và phát triển như các phương pháp sai phân hữu hạn, phương pháp phần tử hữu hạn v.v… đã đem lại những đóng góp to lớn trong việc ứng dụng các phương pháp toán học vào thực tiễn Các phương pháp vừa nêu nói chung đều là các phương pháp lưới Tuy nhiên, các phương pháp này còn nhiều hạn chế khi áp dụng vào lớp các bài toán thực tế có cấu trúc phức tạp
Vào khoảng những năm cuối của thế kỷ trước đã hình thành một xu hướng mới của các phương pháp số: Phương pháp không lưới Cũng như các phương pháp lưới, lược đồ giải các bài toán biên bằng phương pháp không lưới cũng cần thiết tạo
ra các tập hợp nút, mà ở đây gọi là các bộ tâm để tính toán Từ bộ tâm này ta xấp xỉ các toán tử vi phân bằng tổ hợp các giá trị của hàm tại các nút Phương pháp tìm các vectơ trọng số dựa trên các hàm cơ sở bán kính (RBF – Radial Basis Function) gọi là phương pháp nội suy dữ liệu phân tán với các hàm cơ sở bán kính RBF – FD (Radial Basis Function – Finite Different) Khi áp dụng phương pháp này, khó khăn gặp phải là chọn bộ tâm cho nội suy hàm RBF để tìm véc tơ trọng số Nhận
Trang 11thức được vấn đề trên và sự định hướng của TS Đặng Thị Oanh, tôi đã mạnh dạn
chọn đề tài: “Nghiên cứu một số thuật toán chọn k-láng giềng gần trong 2D và
áp dụng cho phương pháp RBF-FD giải phương trình Poisson”
Mục đích của đề tài là tìm hiểu một số thuật toán chọn tâm phổ biến hiện nay
và cài đặt thử nghiệm để so sánh hiệu quả của mỗi thuật toán Đồng thời tìm nguyên nhân gây ra sai số của mỗi thuật toán, trên cơ sở đó phân loại lớp bộ tâm phù hợp cho mỗi thuật toán
Nội dung luận văn bao gồm 3 chương:
Chương 1: Một số kiến thức cơ sở
Chương này trình bày một số kiến thức về hình học phẳng; Điều kiện vật lý dẫn đến phương trình Poisson; Hệ phương trình đại số tuyến tính; Một số phương pháp giải hệ phương trình đại số tuyến tính; Một số định nghĩa và khái niệm cơ bản của nội suy hàm RBF; Nội suy hàm RBF; Phương pháp sai phân hữu hạn
Chương 2: Một số thuật toán chọn K-láng giềng gần trong 2D
Chương này sẽ tập trung nghiên cứu ba thuật toán tìm K-Láng giềng gần trong 2D là: thuật toán bốn cung phần tư, thuật toán Lee Liu Fan, thuật toán Oleg&Oanh-2011, phương pháp không lưới có sự hỗ trợ của thuật toán tìm K-Láng giềng gần
Chương 3: Áp dụng thuật toán chọn K-láng giềng gần cho phương pháp RBF-FD trong không gian 2D
Chương này dành cho phần thử nghiệm nhằm so sánh hiệu quả của các thuật toán tìm K-Láng giềng gần khi áp dụng để hỗ trợ phương pháp không lưới giải phương trình Poisson
Trang 12Chương 1 MỘT SỐ KIẾN THỨC CƠ SỞ
1.1 Điều kiện vật lý dẫn đến phương trình Poisson
Xét một bản mỏng vật chất W, có đường biên là một đường cong khép kín G, đặt trong mặt phẳng Oxy
Khi đó ta có phương trình truyền nhiệt trong môi trường phẳng đồng chất
Nếu đến một lúc nào đó phân bố nhiệt trên bản mỏng vật chất đã ổn định, không thay đổi theo thời gian nữa thì ta nói hiện tượng truyền nhiệt đã dừng
Từ lúc đó nhiệt độ không thay đổi theo thời gian nên u 0
t
¶ =
¶ và ta có phương trình truyền nhiệt dừng như sau:
Trang 13Người ta gọi chúng là phương trình Poisson hai chiều
Đối với phương trình Poisson hai chiều (1.7) điều kiện phụ cho tại biên Gcủa miền W
Điều kiện phụ
u x y( , )= g x y( , ), ( , )x y ÎG (1.8) Gọi là điều kiện biên loại một hay điều kiện biên Dirichlet
Bài toán tìm hàm số u u x y= ( , ) thỏa mãn phương trình (1.7) với điều kiện biên (1.8) gọi là bài toán biên loại một hay bài toán biên Dirichlet đối với phương trình Poisson (1.7)
Ý nghĩa vật lý của bài toán này là mô tả sự phân bố nhiệt đã ổn định trong mặt phẳng W khi phân bố nhiệt độ tại biên Gcủa W ổn định là g x y( , ) [14]
1.2 Hệ phương trình đại số tuyến tính
Xét một hệ phương trình gồm n phương trình tuyến tính với n ẩn số
î
(1.9)
Trang 14Hệ này có thể viết dưới dạng ma trận Ax b= , trong đó
j j
A x
A
trong đó A j là ma trận nhận được từ ma trận A bằng cách thay cột thứ j bởi cột b
Công thức (1.10) thường chỉ dành cho hệ với ma trận hệ số cỡ nhỏ, còn với
ma trận cỡ lớn thì chi phí cho tính toán quá lớn Do đó, người ta đã đi xây dựng các phương pháp nhanh để giải hệ phương trình đại số tuyến tính cỡ lớn là khai thác triệt để các thông tin về ma trận của hệ
1.3 Một số phương pháp giải hệ phương trình đại số tuyến tính
1.3.1 Chuẩn của véc tơ, chuẩn của ma trận
a) Chuẩn của véc tơ
n i i
1
n i i
Trang 151) Đổi chỗ hai phương trình bất kì
2) Nhân một phương trình với một số khác không
3) Cộng vào phương trình một tổ hợp tuyến tính của một phương trình khác Như vậy phương pháp Gauss gồm hai quá trình:
Quá trình thuận: Đưa hệ về dạng tam giác trên
Quá trình ngược: Giải hệ tam giác trên từ dưới lên trên
Trang 16a) Quá trình thuận: Để viết gọn ta xét hệ
î
(1.11)
Và đặt a ij(0) =a ij, (i= 1, 2, , ; n j= 1, ,n+ 1)
Bước 1: Dùng phương trình đầu tiên để khử x1trong n - 1 phương trình còn lại Giả
sử a11 ¹ 0(ta luôn có được điều này bằng cách đổi chỗ hai phương trình) Chia hai
vế của phương trình thứ nhất cho a11 ta được phương trình:
1 12 2 1n n 1,n 1
Với
(0) 1
11
, 2, , 1.
j j
+
ï í ï
Như vậy sau bước 1 ta thu được phương trình (1.12) và hệ (1.13)
Bước 2: Dùng phương trình đầu tiên trong (1.13) khử x 2 trong các phương trình còn lại tương tự như đã làm trong bước 1 Quá trình được tiếp tục như vậy Kết quả
sau bước thứ m ta thu được hệ
( ) ( ) ( )
1, 1 1 1, 1, 1 ( ) ( ) ( ) , 1 1 , , 1 , 1 1 , , 1
Trang 17với
Cuối cùng, sau n bước khử ta thu được hệ phương trình với ma trận tam giác
trên sau đây:
1 12 2 1n n 1,n 1
x +b x + +b x =b +
x2+ + b x2n n=b2,n+1 (1.14)
Cho tập các tâm rời rạc Xz với z là tâm, tất cả các điểm thuộc Xz nằm
xung quanh tâm z được gọi là K-láng giềng của z
* Định nghĩa 1.2 (Tập các tâm rời rạc Xz )
Trang 18Tập các tâm rời rạc Xz là tất cả các tâm, bao gồm cả các tâm nằm trong miền
và các tâm nằm trên biên [12]
* Định nghĩa 1.3 (Véc tơ trọng số(stencil))
Cho D là toán tử vi phân tuyến tính và X ={x x1 , , 2 x n} là bộ tâm phân tán đã được chọn trong không gian R d Một xấp xỉ vi phân tuyến tính đối với toán tử D
* Định nghĩa 1.4 (Giá của véc tơ trọng số ºV )
Giá của véc tơ trọng số ºV là tập hợp các tâm bao gồm V và các tâm nằm trong lân cận địa phương của nó
Trong các phương pháp dựa trên lưới thì tập này bao gồm V và các đỉnh của các tam giác mà được liên thông với V bởi một cạnh Còn đối với phương pháp
không lưới, cần một thuật toán lựa chọn các tâm này mà chúng tôi gọi là thuật toán
lựa chọn giá của véc tơ trọng số [12]
* Định nghĩa 1.5 (Hàm bán kính (Radial function))
Một hàm F :R d ®R được gọi là hàm bán kính nếu ở đó tồn tại một hàm
Trang 19Một hàm liên tục F :R d ®R được gọi là xác định dương nếu với mọi bộ tâm phân biệt từng đôi một { 1 , , 2 } d
n
x x x R
z
X = Ì , n NÎ và mọi vectơ c RÎ n thì dạng toàn phương:
Biểu thức (1.18) là đẳng thức khi và chỉ khi c là véc tơ không [8]
* Định nghĩa 1.7 Hàm một biến f: 0,[ +¥ ®) R được gọi là xác định dương trên R d
nếu hàm nhiều biến tương ứng F( ) :x =f( )x 2 ,x RÎ d là xác định dương [8]
Cho B B1, , ,2 B là các hàm cơ sở của không gian tuyến tính n
1
, 1, 2, ,
n
k i k
Trang 20
1
( ) ( )
( ) ( )
n
B x B x A
* Định nghĩa 1.8 Cho FÌC( ) W là không gian tuyến tính hữu hạn chiều có cơ
sở là { ,B B1 2, , B }n Khi đó F là không gian Haar trên W Ìd R d nếu detA¹ 0 với mọi tập phân biệt { , , , }x x1 2 x n trong W, trong đó ma trận A đã được định nghĩa bởi (1.22) [8]
Định lý 1.2 (Mairhuber Curtis) Giả sử rằng W ÌR d , chứa một điểm trong Khi đó không tồn tại không gian Haar của các hàm liên tục trên W, trừ khi đối với không gian một chiều [8]
Định lý Maihuber Curtis cho thấy rằng nếu muốn giải được bài toán nội suy
dữ liệu phân tán nhiều biến thì cơ sở cần phụ thuộc vào các vị trí dữ liệu Để thu được các không gian xấp xỉ phụ thuộc dữ liệu, chúng ta cần xét các hàm xác định dương và các ma trận dương
1.5.2 Nội suy với hàm cơ sở theo bán kính
Cho bộ Fk,k=1, 2, ,n sao cho
Trang 212) Để bài toán nội suy có nghiệm duy nhất, ta cần phải chọn hàm F phù hợp sao cho det A¹ 0
Bảng 1.1 Một số hàm nội suy theo bán kính dùng trong luận văn
Tên hàm Viết tắt Định nghĩa Multiquadric MQ f mq( )r = 1 +r2
Inverse Multiquadric IMQ f imq( ) 1 1r = +r2
Nếu Fk( )x là hàm xác định dương thì theo điều kiện nội suy ta có
Ac y= (1.25) Trong đó
Trang 22Theo định nghĩa hàm xác định dương thì detA¹0 [8]
1.5.3 Nội suy với độ chính xác đa thức và hàm xác định dương có điều kiện
Cho bộ Fk,k= 1, 2, ,n sao cho
Trang 23x x x ÎR n NÎ , mọi véc tơ c RÎ n và mọi
đa thức p giá trị thực bậc nhỏ hơn l, thỏa mãn
2) Ma trận A với các phần tử A j k, = F (x j -x k) tương ứng với hàm chẵn, liên tục và xác định dương có điều kiện bậc l, có thể được sáng tỏ như là hàm xác định dương trên không gian véc tơ c sao cho
Trang 24( ) 0
n
j j j
c p x
=
=
trong đó p là đa thức bậc nhỏ hơn l
Thật vậy, với cách này, ma trận A là xác định dương trên không gian véc tơ trực giao c đối với đa thức bậc nhỏ hơn hằng l - 1
1.6 Phương pháp sai phân hữu hạn (Finite Different - FD)
1.6.1 Bài toán truyền nhiệt dừng trong miền chữ nhật
Cho các số a, b, c, d với a < b, c < d Xét trong mặt phẳng toạ độ vuông góc
với Oxy một miền chữ nhật Ω có cạnh song song với các trục toạ dộ Ox và Oy
Trang 25được gọi là các nút biên và tập tất cả các nút này kí hiệu là Ghk Tập W = W È Ghk hk hk
gọi là một lưới sai phân trên W
Hình 1.1 Lưới sai phân
Trang 26hk u u O h k
Trang 28Chương 2 MỘT SỐ THUẬT TOÁN CHỌN K-LÁNG GIỀNG GẦN TRONG 2D
2.1 Một số kiến thức cơ sở về cây tìm kiếm nhị phân
Trong chương này ta trình bày một số thuật toán tìm kiếm "k-láng giềng gần" Bao gồm có 3 thuật toán, về cơ bản các thuật toán tìm kiếm trên đều tính độ sai khác giữa một phần tử truy vấn (tâm tìm kiếm) mà ta nhập vào và một tập hợp các phần tử các láng giềng tìm được chính là các phần tử có độ sai khác thỏa mãn điều kiện nào đó Các thuật toán có thể có cách tính giống nhau và tùy vào mỗi bài toán
cụ thể ta sẽ có độ đo và cách tính thích hợp
Đây là thuật toán cơ bản nhất tìm kiếm k láng giềng gần nhất từ 1 tập hợp các phần tử Các Thuật toán sau đây sử dụng 2 cách tính khoảng cách để đo sự sai khác giữa phần tử truy vấn và phần tử của tập hợp
Trang 29Có rất nhiều cách tính khoảng cách giữa 2 phần tử nhưng trong phạm vi các thuật toán này ta chỉ xét 2 cách tính khoảng cách
Cho 2 điểm nếu p=(p p1, , ,2 p n) và q=(q q1, , ,2 q n)
Khoảng cách tuyệt đối tính theo công thức sau:
1
1 n n
1 ( )x n (x i x)
n
s = å
-* Cây tìm kiếm nhị phân
Trước khi đi vào thuật toán ta sẽ sơ qua đôi chút về Cây tìm kiếm nhị phân
(BST - Binary Search Tree)
Trang 30Cây tìm kiếm ứng với n khóa k=(k k1 , , , 2 k n) là cây nhị phân mà mỗi nút đều
được gán một khóa sao cho với mỗi nút k:
Mọi khóa trên cây con trái đều nhỏ hơn khóa trên nút k
Mọi khóa trên cây con phải đều lớn hơn khóa trên nút k
Cây tìm kiếm nhị phân là một cấu trúc dữ liệu cơ bản được sử dụng để xây dựng các cấu trúc dữ liệu trừu tượng hơn như các tập hợp, đa tập hợp, các dãy kết hợp Nếu một cây tìm kiếm nhị phân có chứa các giá trị giống nhau thì nó biểu diễn một đa tập hợp Cây loại này sử dụng các bất đẳng thức không nghiêm ngặt Mọi nút trong cây con trái có khóa nhỏ hơn khóa của nút cha, mọi nút trên cây con phải
có nút lớn hơn hoặc bằng khóa của nút cha
Nếu một cây tìm kiếm nhị phân không chứa các giá trị giống nhau thì nó biểu diễn một tập hợp đơn trị như trong lý thuyết tập hợp Cây loại này sử dụng các bất đẳng thức nghiêm ngặt Mọi nút trong cây con trái có khóa nhỏ hơn khóa của nút cha, mọi nút trên cây con phải có nút lớn hơn khóa của nút cha
Việc chọn đưa các giá trị bằng nhau vào cây con phải (hay trái) là tùy theo mỗi người Một số người cũng đưa các giá trị bằng nhau vào cả hai phía, nhưng khi
đó việc tìm kiếm trở nên phức tạp hơn
Hình 2.1: Cây tìm kiếm nhị phân
35
15
54 42
23
19
9 4
7
Trang 31Việc tìm một khóa trên cây tìm kiếm nhị phân có thể thực hiện nhờ đệ quy Chúng ta bắt đầu từ gốc Nếu khóa cần tìm bằng khóa của gốc thì khóa đó trên cây, nếu khóa cần tìm nhỏ hơn khóa ở gốc, ta phải tìm nó trên cây con trái, nếu khóa cần tìm lớn hơn khóa ở gốc, ta phải tìm nó trên cây con phải Nếu cây con (trái hoặc phải) là rỗng thì khóa cần tìm không có trên cây
Giả mã:
Search_binary_tree(node, key);
if node is Null then
return; None % key rỗng
else % key is equal to node key
return node.value; % found key
Thời gian tìm kiếm trung bình là O(log n)
Cây tìm kiếm KD -TREE: KD- tree là viết tắt của K - Dimensional Tree
KD - Tree là một cấu trúc dữ liệu phân hoạch không gian, dùng để tổ chức các điểm trong không gian k-chiều
Mỗi node sẽ tạo ra một mặt phẳng phân chia mà sẽ chia không gian ra thành 2 không gian con Những điểm bên trái sẽ đại diện cho cây con trái của node và những điểm bên phải sẽ đại diện cho cây con phải của node Thực chất KD-tree là một cây nhị phân, mà ở mỗi mức nó sẽ phân hoạch dữ liệu theo một chiều nào đó trong số các k chiều
Trang 32Ví dụ: Nếu trục được chọn để phân hoạch là “X” thì tất cả những điểm có giá trị x nhỏ hơn sẽ nằm bên cây con trái, và những điểm có giá trị x lớn hơn sẽ nằm bên cây con phải
Với k = 2, phân hoạch theo x ày àx ày …
Minh họa việc tạo dựng kd-tree
Cho tập {(2,3), (5,4), (9,6), (4,7), (8,1), (7,2)}
Hình 2.2: Phân hoạch Kdtree
2.2 Thuật toán cung phần tư
2.2.1 Ý tưởng
Chọn m điểm từ tập các tâm rời rạc X, lấy z làm gốc tọa độ ta chia thành bốn cung phần tư của hình tròn tâm z bán kính là khoảng cách xa nhất từ m điểm vừa chọn tới z , trên mỗi cung phần tư của hình tròn tâm z chọn 2 điểm gần z nhất ta
sẽ nhận được bộ tâm hỗ trợ [11]
2.2.2 Nội dung
Bước 1: Đầu tiên chọn m điểm từ tập các tâm rời rạc X
Bước 2: Xác định các điểm nằm trên mỗi cung phần tư của hình tròn tâm z