Tài liệu Đề tài Tính toán xấp xỉ với các truy vấn liên quan đến khoảng cách trong cơ sở dữ liệu không gian: Đề tài: Tính toán xấp xỉ với các truy vấn liên quan đến khoảng cách
trong cơ sở dữ liệu không gian
2008
1
LỜI CẢM ƠN
Trong thời gian thực hiện đề tài khóa luận tốt nghiệp, dưới sự hướng dẫn tận
tình của giáo viên hướng dẫn và được phía nhà trường tạo điều kiện thuận lợi, tôi
đã có một quá trình nghiên cứu, tìm hiểu và học tập nghiêm túc để hoàn thành đề
tài. Kết quả thu được không chỉ do nỗ lực của cá nhân tôi mà còn có sự giúp đỡ
của quý thầy cô, gia đình và các bạn.
Tôi xin chân thành cảm ơn
Bán giám hiệu nhà trường, Ban chủ nhiệm khoa Công Nghệ Thông Tin –
Trường Đại học Công Nghệ đã quan tâm, tạo điều kiện giúp tôi hoàn
thành hoàn thành khóa luận tốt nghiệp.
Thầy Nguyễn Hải Châu: Thầy đã hướng dẫn, hỗ trợ tôi hoàn thành tốt đề
tài về phương pháp, lý luận và nội dung trong suốt thời gian thực hiện
khóa luận tốt nghiệp.
Gia đình đã tạo điều kiện học tập tốt nhất.
Các bạn đã giúp đỡ, trao đổi thông tin về đề tài trong quá trình thực ...
95 trang |
Chia sẻ: hunglv | Lượt xem: 1340 | Lượt tải: 0
Bạn đang xem trước 20 trang mẫu tài liệu Đề tài Tính toán xấp xỉ với các truy vấn liên quan đến khoảng cách trong cơ sở dữ liệu không gian, để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
Đề tài: Tính toán xấp xỉ với các truy vấn liên quan đến khoảng cách
trong cơ sở dữ liệu không gian
2008
1
LỜI CẢM ƠN
Trong thời gian thực hiện đề tài khóa luận tốt nghiệp, dưới sự hướng dẫn tận
tình của giáo viên hướng dẫn và được phía nhà trường tạo điều kiện thuận lợi, tôi
đã có một quá trình nghiên cứu, tìm hiểu và học tập nghiêm túc để hoàn thành đề
tài. Kết quả thu được không chỉ do nỗ lực của cá nhân tôi mà còn có sự giúp đỡ
của quý thầy cô, gia đình và các bạn.
Tôi xin chân thành cảm ơn
Bán giám hiệu nhà trường, Ban chủ nhiệm khoa Công Nghệ Thông Tin –
Trường Đại học Công Nghệ đã quan tâm, tạo điều kiện giúp tôi hoàn
thành hoàn thành khóa luận tốt nghiệp.
Thầy Nguyễn Hải Châu: Thầy đã hướng dẫn, hỗ trợ tôi hoàn thành tốt đề
tài về phương pháp, lý luận và nội dung trong suốt thời gian thực hiện
khóa luận tốt nghiệp.
Gia đình đã tạo điều kiện học tập tốt nhất.
Các bạn đã giúp đỡ, trao đổi thông tin về đề tài trong quá trình thực hiện
khóa luận.
Trong quá trình thực hiện và trình bày khóa luận không thể tránh khỏi những
sai sót và hạn chế, do vậy tôi rất mong nhận được sự góp ý, nhận xét phê bình
của quý thầy cô và các bạn.
Kính chúc quý thầy cô và các bạn sức khỏe!
Người thực hiện đề tài
Hoàng Thị Hồng Trang
Đề tài: Tính toán xấp xỉ với các truy vấn liên quan đến khoảng cách
trong cơ sở dữ liệu không gian
2008
2
MỤC LỤC
MỤC LỤC........................................................................................................................ 2
MỤC LỤC BẢNG BIỂU ................................................................................................ 5
A. PHẦN MỞ ĐẦU...................................................................................................... 7
1. Giới thiệu .............................................................................................................. 7
2. Ý nghĩa khoa học và thực tiễn .............................................................................. 8
3. Mục đích nghiên cứu ............................................................................................ 9
4. Đối tượng nghiên cứu ......................................................................................... 10
5. Phạm vi nghiên cứu ............................................................................................ 10
B. NỘI DUNG ............................................................................................................ 11
CHƯƠNG 1: TỔNG QUAN VỀ CƠ SỞ DỮ LIỆU KHÔNG GIAN....................... 11
1. Khái niệm........................................................................................................... 11
1.1 Hệ thống cơ sở dữ liệu không gian............................................................... 11
1.2. Cơ sở dữ liệu không gian (Spatial Database) .............................................. 12
2. Mô hình cơ sở dữ liệu không gian ................................................................... 16
2.1 Xây dựng mô hình CSDL không gian ............................................................ 17
2.2 Cơ sở hình học trong tổ chức các đối tượng không gian cơ bản.................. 25
3. Truy vấn thực hiện trong CSDL không gian.................................................. 30
CHƯƠNG 2: BÀI TOÁN TÍNH TOÁN XẤP XỈ VỚI CÁC TRUY VẤN LIÊN
QUAN ĐẾN KHOẢNG CÁCH TRONG CƠ SỞ DỮ LIỆU KHÔNG GIAN........ 34
1. Các truy vấn liên quan đến khoảng cách........................................................ 34
1.1 Truy vấn khu vực theo khoảng cách δ ........................................................... 37
1.2 Truy vấn K vùng lân cận gần nhất................................................................. 38
1.3 Truy vấn nối các khu vực theo khoảng cách δ (truy vấn đệm).................... 39
1.4 Phép nối khoảng cách Iceberg...................................................................... 39
1.5 Truy vấn K cặp đối tượng gần nhất .............................................................. 39
Đề tài: Tính toán xấp xỉ với các truy vấn liên quan đến khoảng cách
trong cơ sở dữ liệu không gian
2008
3
1.6 Nối K vùng lân cận gần nhất ........................................................................ 40
1.7 Truy vấn K- nối khoảng cách ......................................................................... 40
2 R – Tree.............................................................................................................. 42
2.1 Khái niệm.......................................................................................................... 43
2.2 Cấu trúc của một R-tree.................................................................................. 45
2.3 Thuật toán R-Tree ........................................................................................... 47
3 Các kỹ thuật tính toán xấp xỉ khoảng cách .................................................... 56
3.1 Thu nhỏ không gian tìm kiếm ...................................................................... 56
3.2 Kỹ thuật tìm kiếm theo kinh nghiệm........................................................... 59
3.2.1 Tìm kiếm khu vực.......................................................................................... 59
3.2.2 Simulated Annealing ..................................................................................... 60
3.2.3 Thuật toán phát sinh ..................................................................................... 61
CHƯƠNG 3 MỘT SỐ ỨNG DỤNG CỦA BÀI TOÁN TÍNH TOÁN XẤP XỈ
KHOẢNG CÁCH TRONG THỰC TẾ....................................................................... 63
1. Ứng dụng trong việc xây dựng một hệ thống khung (framework) xử lý hiệu
quả các truy vấn không gian cơ bản. ...................................................................... 64
2. Tăng tốc quá trình phân tích, thực thi và hiển thị dữ liệu địa lý trong các
truy vấn liên quan đến khoảng cách (DBQs) ......................................................... 66
3. Xây dựng thuật toán xấp xỉ như một công cụ hạn chế những khó khăn phát
sinh đối với kích thước địa lý của đối tượng .......................................................... 68
4. Tính toán độ chính xác về vị trí trên bản đồ và chênh lệch về khoảng cách
giữa các đối tượng trong truy vấn ........................................................................... 70
CHƯƠNG 4 MỘT SỐ THUẬT TOÁN TÍNH KHOẢNG CÁCH TRONG KHÔNG
GIAN ĐỊA LÝ & ĐÁNH GIÁ HIỆU NĂNG.............................................................. 74
1. Tính toán khoảng cách giữa các đối tượng địa lý theo công thức Haversine
74
1.1 Công thức Haversine..................................................................................... 74
Đề tài: Tính toán xấp xỉ với các truy vấn liên quan đến khoảng cách
trong cơ sở dữ liệu không gian
2008
4
1.2 Công thức Haversine trong truy vấn tìm khoảng cách ngắn nhất............ 77
1.3 Đánh giá thuật toán Haversine ....................................................................... 81
2. Tính toán khoảng cách trong hệ tọa độ địa lý theo khoảng cách Vincenty. 82
2.1 Khái niệm.......................................................................................................... 82
2.2 Thuật toán Vincenty ........................................................................................ 85
3. Đánh giá thuật toán Haversine và Vincenty....................................................... 89
C. KẾT LUẬN............................................................................................................ 91
1. Những kết quả đạt được...................................................................................... 91
2. Đánh giá .............................................................................................................. 92
3. Hướng phát triển ................................................................................................. 92
TÀI LIỆU THAM KHẢO............................................................................................ 93
Đề tài: Tính toán xấp xỉ với các truy vấn liên quan đến khoảng cách
trong cơ sở dữ liệu không gian
2008
5
MỤC LỤC BẢNG BIỂU
Hình 1: Trang WebGis www.bando.com.vn ........................................................15
Hình 2: (a) Một region mẫu, (b) Biểu diễn dạng mảng nhị phân của region, (c)
Các khối cực đại và các khối phổ thông được chia sẻ trong region - (d) quadtree
tương ứng. .............................................................................................................20
Hình 3: Ví dụ một PR quadtree.............................................................................22
Hình 4: Biểu diễn dạng đường..............................................................................24
Hình 5: Biểu diễn dạng khu vực ...........................................................................24
Hình 6: Biểu diễn tập đối tượng trong khu vực ....................................................24
Hình 7: Biểu diễn đối tượng dạng mạng lưới .......................................................25
Hình 8: Mô hình d-simplex..................................................................................26
Hình 9: Phép toán hợp trong không gian địa lý ....................................................28
Hình 10: Phép toán trừ trong không gian địa lý....................................................28
Hình 11: Phép toán giao trong không gian địa lý .................................................28
Hình 12: Phép toán bao phủ trong không gian địa lý ...........................................29
Hình 13 Các hàm toán tử trong không gian địa lý................................................30
Hình 14: Mô hình dữ liệu quan hệ xây dựng dựa trên Benchmark database........36
Hình 15: R-Tree và MBRs trong truy vấn ............................................................42
Hình 16: R-Tree và truy vấn trong hai cấu trúc MBR khác nhau.........................42
Hình 17: Ví dụ về R-Tree .....................................................................................44
Hình 18: Cây biểu diễn R-Tree.............................................................................47
Hình 19: Biểu diễn hai chiều của một R-Tree ......................................................47
Hình 20: Cấu trúc một R-Tree ..............................................................................48
Hình 21: Các quan hệ có thể có giữa các MBR (chứa trong, chồng lấn…) .........49
Đề tài: Tính toán xấp xỉ với các truy vấn liên quan đến khoảng cách
trong cơ sở dữ liệu không gian
2008
6
Hình 22: Trường hợp phân chia node ...................................................................53
Hình 23: Phân chia entry thành các nhóm node mới ............................................54
Hình 24: Minh họa cấu trúc sản phẩm ArcGIS của ESRI ....................................66
Hình 25: Kiến trúc CSDL trên nền tảng Microsoft...............................................68
Hình 26: Trang web bản đồ trực tuyến diadiem.com ...........................................72
Hình 27: Trang web bản đồ trực tuyến basao.com ...............................................73
Hình 28: Hình dạng Elip của trái đất ....................................................................76
Hình 29: Khoảng cách AB tính theo công thức Haversine trên bản đồ địa lý......79
Hình 30: Mô hình dữ liệu quan hệ ........................................................................80
Hình 31: Thông số các hệ tọa độ elip tròn xoay ...................................................84
Hình 32: Khoảng cách tính theo thuật toán Haversine và Vincenty.....................89
Đề tài: Tính toán xấp xỉ với các truy vấn liên quan đến khoảng cách
trong cơ sở dữ liệu không gian
2008
7
A. PHẦN MỞ ĐẦU
1. Giới thiệu
Trong vài năm trở lại đây, cùng với sự phát triển không ngừng của các kỹ
thuật công nghệ hiện đại, “kỷ nguyên số” đã được bắt đầu và ứng dụng trong
mọi lĩnh vực khoa học cũng như phục vụ nhu cầu sử dụng của con người. Nếu
như cách đây vài thập kỷ, câu chuyện con người có thể quan sát toàn cảnh trái
đất từ trên cao xuống thông qua các thiết bị kỹ thuật như máy tính, tivi… tại
bất kỳ đâu và bất kỳ lúc nào vẫn là một viễn cảnh xa vời thì ngày nay điều này
đã trở nên quá đơn giản. Để có thể quan sát Trái đất từ mọi góc độ, một cá
nhân chỉ cần trang bị cho mình một máy tính nối mạng, và một phần mềm
hiển thị hình ảnh 3D như Google Earth hay truy cập vào các trang web bản đồ
trực tuyến sẵn có trên mạng Internet…
Như vậy, trong bối cảnh hiện tại, sự hiện thực hóa bản đồ số và đưa các kỹ
thuật lập bản đồ cũng như phân tích địa lý vào sử dụng rộng rãi với mục đích
dân sự cho tất cả các tổ chức, cá nhân có nhu cầu đang trở thành một ngành
kinh doanh nhiều lợi nhuận. Trong đó phải kể đến GIS – Hệ thống thông tin
địa lý – với rất nhiều công cụ ứng dụng trợ giúp đắc lực cho quá trình xây
dựng hệ thống hạ tầng cơ sở dữ liệu không gian và quản lý dữ liệu địa lý.
Cùng với đó là hàng loạt các sản phẩm toàn diện và chuyên biệt sử dụng trong
ngành khoa học bản đồ và xử lý dữ liệu không gian địa lý được các hãng sản
xuất tung ra. Công nghệ GIS cùng với các sản phẩm phần mềm hỗ trợ có rất
nhiều ứng dụng trong khoa học nghiên cứu, phục vụ trong đời sống, dịch vụ
công ích, quản lý tài nguyên…. và nhiều lĩnh vực khác. Trong cuộc cạnh tranh
ngôi vị nhà cung cấp hàng đầu các sản phẩm ứng dụng GIS và xử lý dữ liệu
địa lý thì yếu tố giá thành cũng như hiệu năng của chương trình là quan trọng
nhất.
Trong cuộc cạnh tranh về công nghệ này, nhiều nghiên cứu đã được đưa ra
như: Tối ưu hóa khả năng quản lý dữ liệu địa lý bằng phương pháp đánh chỉ
Đề tài: Tính toán xấp xỉ với các truy vấn liên quan đến khoảng cách
trong cơ sở dữ liệu không gian
2008
8
mục động với cấu trúc dạng cây (tree-like structure) phục vụ tăng tốc quá
trình tìm kiếm dữ liệu – đây là vấn đề đặc biệt quan trọng với một khối lượng
dữ liệu khổng lồ và phức tạp như thông tin địa lý. Tăng tốc quá trình thực thi
với các truy vấn đến Cơ sở dữ liệu không gian, tối thiểu hóa thời gian thực thi
của hệ thống, đơn giản hóa độ phức tạp tính toán trong giải thuật nhằm tiết
kiềm thời gian thực hiện và tăng hiệu năng tính toán. Trong vấn đề về giải
thuật, phương pháp ưu việt chính là tìm ra và áp dụng các thuật toán tính toán
khoảng cách tốt nhất, đảm bảo yêu cầu dung hòa giữa độ phức tạp tính toán,
tốc độ thực thi và độ chính xác càng cao càng tốt.
Nhận thấy sự cần thiết trong ngành khoa học nghiên cứu lý thuyết về các
thuật toán tính toán khoảng cách giữa các đối tượng địa lý trong thực tế và vai
trò to lớn của các bài toán tính toán gần đúng này, đề tài khóa luận tốt nghiệp
“Tính toán xấp xỉ với các truy vấn liên quan đến khoảng cách trong cơ sở
dữ liệu không gian” đã được xây dựng dựa trên quá trình nghiên cứu các
thành tựu khoa học trong lĩnh vực này và hệ thống lại một cách bài bản và chi
tiết.
Bố cục khóa luận
Khóa luận tốt nghiệp được trình bày với phần nội dung gồm 04 chương:
Chương 1: Tổng quan về cơ sở dữ liệu không gian.
Chương 2: Bài toán tính toán xấp xỉ với các truy vấn liên quan đến
khoảng cách trong cơ sở dữ liệu không gian.
Chương 3: Một số ứng dụng của bài toán tính toán xấp xỉ khoảng cách
trong thực tế.
Chương 4: Một số thuật toán tính toán khoảng cách trong không gian
địa lý và đánh giá hiệu năng.
2. Ý nghĩa khoa học và thực tiễn
Về khía cạnh nghiên cứu khoa học, các tập đoàn công nghệ trong lĩnh vực
GIS vẫn không ngừng nghiên cứu các phương pháp tối ưu hóa các sản phẩm
sử dụng thông tin địa lý trong các thiết bị hỗ trợ bản đồ, tìm đường và xác
Đề tài: Tính toán xấp xỉ với các truy vấn liên quan đến khoảng cách
trong cơ sở dữ liệu không gian
2008
9
định vị trí địa lý của đối tượng. Trong đó, giải pháp đặt ra không chỉ dừng ở
việc xây dựng một hệ quản trị cơ sở dữ liệu chuyên biệt quản lý dữ liệu không
gian và các thuộc tính đặc biệt của nó với dung lượng khổng lồ và phức tạp,
quan trọng hơn là giải pháp nào để tối ưu hóa hiệu năng truy xuất dữ liệu, các
giải thuật đề xuất giúp hệ thống thực thi các phép toán (đặc biệt là các phép
tính khoảng cách quy mô hàng chục ngàn km) phải thật nhanh chóng nhưng
vẫn đảm bảo độ chính xác cần thiết. Trong không gian địa lý với đặc thù bề
mặt Trái đất không ổn định, việc dùng các phương pháp tính toán gần đúng là
không thể tránh khỏi, tuy nhiên sai số đặt ra cần nằm trong khoảng chấp nhận
được, sự cân bằng giữa độ chính xác và thời gian xử lý, trả lời truy vấn và giá
thành chính là chìa khóa thành công cho bất kỳ sản phẩm có sử dụng thuật
toán dò đường và tính khoảng cách nào.
Khóa luận trình bày cụ thể về các giải pháp sử dụng trong bài toán tính
toán xấp xỉ khoảng cách, hệ thống một cách khoa học các kỹ thuật sử dụng
trong tìm kiếm đối tượng cũng như tính khoảng cách giữa các đối tượng trong
truy vấn. Đây hầu hết là những kỹ thuật quan trọng và hiệu quả đang được sử
dụng rộng rãi trong các ứng dụng khai thác thông tin về đường đi, địa điểm và
quảng cáo trên nền tảng bản đồ số. Do đó các vấn đề về lý thuyết trong lĩnh
vực này luôn là đề tài khoa học có tính chất thời sự trên các diễn đàn công
nghệ GIS cũng như trong đội ngũ các nhà phân tích, thiết kế sản phẩm. Từ các
thuật toán có sẵn, nhà sản xuất hoàn toàn có thể cài đặt và “nhúng” vào trong
nhiều ứng dụng như: Bản đồ kỹ thuật số, phần mềm định vị và chỉ đường trên
các thiết bị cầm tay, các thiết bị di động đi kèm các phương tiện giao thông,
thiết bị tìm vết và đường đi ngắn nhất tích hợp GPS (Hệ thống định vị toàn
cầu), ….
3. Mục đích nghiên cứu
Đề tài được thực hiện với mục đích
Tìm hiểu khái niệm Cơ sở dữ liệu không gian, các công nghệ GIS đương
đại.
Nghiên cứu các kỹ thuật tính toán gần đúng về khoảng cách và các thuật
Đề tài: Tính toán xấp xỉ với các truy vấn liên quan đến khoảng cách
trong cơ sở dữ liệu không gian
2008
10
toán liên quan sử dụng trong các truy vấn trên CSDL không gian.
Các ứng dụng thiết thực của bài toán tính toán xấp xỉ trong công nghệ
thông tin địa lý.
Thử nghiệm một số truy vấn sử dụng kỹ thuật tính toán xấp xỉ trong một
số truy vấn tiêu biểu.
4. Đối tượng nghiên cứu
Mô hình, cấu trúc dữ liệu và cách xây dựng dữ liệu không gian và hệ
quản trị CSDL không gian, các phép toán thực thi.
Các kỹ thuật tính toán xấp xỉ khoảng cách trong không gian tìm kiếm và
các thuật toán.
Sản phẩm ứng dụng các kỹ thuật tính toán xấp xỉ đang được sử dụng
trong thực tế.
Thuật toán tính toán khoảng cách trên bề mặt cầu ứng dụng trong truy
vấn về khoảng cách trong không gian địa lý: Haversine, Vincenty.
5. Phạm vi nghiên cứu
Do hạn chế về thời gian và giới hạn trong khuôn khổ một đề tài khóa
luận tốt nghiệp, đề tài tập trung trình bày các thuật toán và giải pháp sử
dụng trong các truy vấn liên quan đến khoảng cách trong CSDL không
gian, phục vụ trong quá trình xử lý, phân tích và hiển thị dữ liệu địa lý
của một ứng dụng GIS bất kỳ trong thực tế. Qua đó đưa ra đánh giá hiệu
năng của từng giải pháp và đề xuất các hướng phát triển cho thuật tính
toán gần đúng trong tương lai.
Qua đó, độc giả có được cái nhìn tổng quan về các kỹ thuật cũng như
thuật toán tính toán gần đúng đang được sử dụng trong các ứng dụng xây
dựng, quản lý và thiết kế dữ liệu thông tin địa lý, cơ sở dữ liệu không
gian và hướng phát triển của chúng trong công cuộc nghiên cứu nhằm
hoàn thiện tốc độ xử lý, tính toán, truy xuất dữ liệu của hệ thống với sự
trợ giúp của các thuật toán tích hợp hiệu quả và chính xác.
Đề tài: Tính toán xấp xỉ với các truy vấn liên quan đến khoảng cách
trong cơ sở dữ liệu không gian
2008
11
B. NỘI DUNG
CHƯƠNG 1: TỔNG QUAN VỀ CƠ SỞ DỮ LIỆU KHÔNG GIAN
1. Khái niệm
1.1 Hệ thống cơ sở dữ liệu không gian
Hệ thống cơ sở dữ liệu không gian – Spatial Database System – là hệ thống
quản lý dữ liệu liên quan đến các đối tượng không gian (không gian địa lý), ra
đời trước yêu cầu đặt ra trong thực tế là cần một hệ thống để lưu trữ các dữ
liệu trong không gian địa lý. Như vậy việc quản lý hệ CSDL không gian phụ
thuộc vào hai công nghệ: Một là phương tiện lưu trữ cố định và một là CSDL
không gian.
Các không gian:
Không gian hai chiều (2D): Các không gian hình học (Các bề mặt trên mặt
đất ở tỉ lệ co giãn lớn hoặc nhỏ)
Hệ thống thông tin địa lý (GIS – Geographic Information System)
Cơ sở dữ liệu đặt tại Luxembourg (LIS - Luxembourg Income Study)
lưu trữ dữ liệu về các quốc gia.
Urban planning – quy hoạch sử dụng không gian địa lý (sử dụng đất,
quy hoạch xây dựng đô thị….)
Không gian ba chiều (3D): Nghiên cứu vũ trụ, thiên văn học, nghiên cứu
bộ não con người trong y học, nghiên cứu cấu trúc phân tử trong ngành
sinh học.
Yêu cầu đặt ra với hệ thống này là khả năng quản lý và xử lý một khối
lượng thông tin khổng lồ của tập hợp các đối tượng địa lý đặt trong mối quan
hệ chặt chẽ với nhau.
Đề tài: Tính toán xấp xỉ với các truy vấn liên quan đến khoảng cách
trong cơ sở dữ liệu không gian
2008
12
Theo G.H.Guting[]:
Hệ quản trị cơ sở dữ liệu không gian (Spatial Database Management
System): Là một hệ CSDL sử dụng kiểu dữ liệu không gian trong mô hình dữ
liệu và ngôn ngữ truy vấn, hệ thống hỗ trợ việc thực thi với kiểu dữ liệu không
gian bằng việc cung cấp cách đánh chỉ mục và các thuật toán hiệu quả trong
trường hợp liên kết các không gian với nhau.
Kiểu dữ liệu không gian (Spatial Data type): Kiểu dữ liệu biểu diễn các đối
tượng trong không gian
Dữ liệu không gian là những mô tả số của hình ảnh bản đồ, chúng bao gồm
toạ độ, quy luật và các ký hiệu dùng để xác định một hình ảnh bản đồ cụ thể
trên từng bản đồ. Hệ thống thông tin địa lý dùng các số liệu không gian để tạo
ra một bản đồ hay hình ảnh bản đồ trên màn hình hoặc trên giấy thông qua
thiết bị ngoại vi, … Dữ liệu không gian thường được biểu diễn bằng điểm,
đường và vùng.
Với hệ thống thông tin địa lý (GIS) có 2 kiểu dữ liệu cơ bản đó là vectơ và
raster.
1.2. Cơ sở dữ liệu không gian (Spatial Database)
Cơ sở dữ liệu không gian là một mô hình hướng đối tượng cho phép tích
hợp thông tin địa lý và thông tin thuộc tính trong cùng một cơ sở dữ liệu theo
mô hình dữ liệu quan hệ. Như vậy đây là cơ sở dữ liệu lưu trữ vị trí, hình dạng
của các đối tượng không gian cùng với đặc điểm thuộc tính của chúng.
Một số hãng phát triển GIS trên thế giới đã có những sản phẩm theo hướng
CSDL không gian như: ERSI, Oracle, Intergraph, MapInfo…
Cơ sở hạ tầng dữ liệu không gian (Spatial Data Infrastructure - SDI) là nền
tảng để dữ liệu không gian và lý lịch dữ liệu cùng với người sử dụng và các
công cụ có thể kết nối trong mối quan hệ tương tác lẫn nhau với mục đích sử
dụng được các thông tin dữ liệu không gian một cách hiệu quả và linh hoạt.
Đề tài: Tính toán xấp xỉ với các truy vấn liên quan đến khoảng cách
trong cơ sở dữ liệu không gian
2008
13
1.2.1 Hạ tầng CSDL không gian
Công nghệ (technology)
Chính sách (policies)
Chuẩn (standards)
Nguồn nhân lực (human resources)
Qui trình (procedures)
Được xây dựng để đáp ứng yêu cầu thu nhận, xử lý, lưu trữ, phân phối và
nâng cao tính hữu dụng của dữ liệu địa lý, làm cơ sở cho việc sản xuất và chia
sẻ dữ liệu địa lý giữa các cơ quan, đơn vị,…
VD: Cơ sở hạ tầng dữ liệu không gian của một thành phố là một thành phần
trong Cơ sở hạ tầng thông tin quốc gia (siêu xa lộ thông tin) nhằm cung cấp
những thông tin thiết thực cho mọi người.
Các chức năng của quản lý cơ sở dữ liệu
Cho phép giảm thiểu sự trùng lặp dữ liệu nhằm tiết kiệm chi phí, sẵn
sàng trợ giúp ra quyết định trên một vùng địa lý dựa trên dữ liệu chính
xác và hiện thời (cập nhập dữ liệu), người sử dụng dễ dàng biết được tỉ
lệ bản đồ gốc (mức độ chi tiết), nguồn gốc dữ liệu, quy trình nhập dữ
liệu, kết quả kiểm tra độ chính xác dữ liệu, cấu trúc dữ liệu,… được mô
tả bởi lý lịch dữ liệu (metadata).
Với một hệ quản trị cơ sở dữ liệu thông thường kiểu dữ liệu bảng hiện
nay được sử dụng rất phổ biến. Tuy nhiên, tiến trình tham chiếu với dữ
liệu địa lý được thực hiện phức tạp vì chỉ một sự thay đổi nhỏ của dữ
liệu địa lý cũng làm cho các dữ liệu bảng khó tham chiếu. Cấu trúc cơ
sở dữ liệu định hướng đối tượng không thích hợp cho việc lưu trữ
những dữ liệu đặc trưng cũng như phân tích không gian phức tạp. Nhờ
tính mở cao, cơ sở dữ liệu quan hệ ngày càng được sử dụng phổ biến
trong các hệ thống thông tin địa lý. Mô hình hệ quản trị cơ sở dữ liệu 3
tầng (3-tier) sẽ được sử dụng phổ biến để tăng khả năng cung cấp và
Đề tài: Tính toán xấp xỉ với các truy vấn liên quan đến khoảng cách
trong cơ sở dữ liệu không gian
2008
14
tích hợp dữ liệu của nhiều ngành theo thời gian thực.
Hiện nay, hầu hết các quốc gia đều hướng đến xây dựng cơ sở hạ tầng dữ
liệu không gian theo kiến trúc hướng đến dịch vụ (Service Oriented
Architecture - SOA) sử dụng các chuẩn mở quốc tế như OpenGIS (OGC)
hoặc ISO/TC 211. Tư tưởng chính là coi việc xây dựng cơ sở hạ tầng dữ liệu
không gian tương tự như cơ sở hạ tầng trong các lĩnh vực khác: bưu điện, điện
thọai, đường giao thông,…như vậy người dùng khi có nhu cầu sẽ tham gia kết
nối vào cơ sở hạ tầng để sử dụng và đóng góp các dữ liệu, thông tin về GIS.
Đây là một dự án lớn có nền tảng lý luận và cơ sở thực tiễn cao, được phát
triển theo cách thức: “Phát triển trước, xây dựng đặc tả sau”. Có nghĩa là: Để
giải quyết 1 vấn đề, các tổ chức nghiên cứu hướng tới nhiều giải pháp, sau
nhiều năm thử nghiệm sẽ đúc kết thành đặc tả (hay chuẩn mở) công bố cho
cộng đồng. Đối với Việt Nam và các nước đang phát triển thì thời điểm hiện
nay là cơ hội lớn để chúng ta tiếp cận những tinh hoa từ các tổ chức này để
xây dựng những hệ thống GIS tương tự (đa mục tiêu, đa thành viên).
Trên cơ sở đó, Việt Nam cần tiến hành xây dựng cơ sở hạ tầng dữ liệu
không gian cho mình với các tầm nhìn đều hướng đến một nền tảng để đưa dữ
liệu không gian địa lý đến tay người sử dụng một cách đơn giản, dễ dàng và
minh bạch.
Khảo sát có một số tổ chức đã ứng dụng WebGis để xây dựng bản đồ trực
tuyến
Trang web của Nhà xuất bản bản đồ - Bộ Tài nguyên và môi trường
Đề tài: Tính toán xấp xỉ với các truy vấn liên quan đến khoảng cách
trong cơ sở dữ liệu không gian
2008
15
Hình 1: Trang WebGis www.bando.com.vn
1.2.2 Các bước thiết kế CSDL không gian
Thiết kế CSDL không gian cần tiến hành qua những bước cơ bản sau
Xác định nội dung CSDL
Chọn cấu trúc CSDL
Thiết kế chi tiết CSDL
Phân phối dữ liệu đến người sử dụng
Duy trì, cập nhật dữ liệu và vận hành hàng ngày
Các thành phần của cơ sở dữ liệu không gian
Tập hợp các dữ liệu dạng vector (tập các điểm, đường và vùng)
Tập hợp các dữ liệu dạng raster (dạng mô hình DEM hoặc ảnh)
Tập hợp các dữ liệu dạng mạng lưới (đường giao thông, lưới cấp thoát
nước, lưới điện ...)
Tập hợp các dữ liệu địa hình 3 chiều và bề mặt khác
Dữ liệu đo đạc
Dữ liệu dạng địa chỉ
Các bảng dữ liệu: Là thành phần quan trọng của cơ sở dữ liệu không
gian, được liên kết với các thành phần đồ họa với nhiều kiểu liên kết khác
nhau.
Đề tài: Tính toán xấp xỉ với các truy vấn liên quan đến khoảng cách
trong cơ sở dữ liệu không gian
2008
16
2. Mô hình cơ sở dữ liệu không gian
Trong những năm gần đây, đã có rất nhiều nghiên cứu đang được triển
khai về vấn đề quản lý dữ liệu không gian. Cách phương pháp tiếp cận ban
đầu trong lĩnh vực GIS đã gần như làm cạn kiệt những nỗ lực của các nhà
khoa học trong việc tìm kiếm hình thức biểu diễn hình học chính xác của dữ
liệu không gian và việc bổ sung những phép toán mới giữa các đối tượng
không gian. Sau đó, chỉ có một cải tiến thô sơ là việc kết hợp dữ liệu không
gian với dữ liệu thông thường. Và kết quả là việc quản lý dữ liệu địa lý phải
chia thành 2 quá trình xử lý riêng biệt nhau: một là cho dữ liệu không gian và
một là để xây dựng các thuộc tính cho dữ liệu thông thường và sự kết hợp của
chúng với dữ liệu không gian. Nỗ lực để định nghĩa một ngôn ngữ thông dụng
và khả dụng để đơn giản thao tác xử lý các truy vấn hầu như không mang lại
kết quả, và do đó quá nhiều chương trình bắt buộc phải sử dụng đến. Kết quả
là việc xử lý dữ liệu không gian thiếu đi những giải pháp hình thức cơ bản.
Theo một khía cạnh khác, năng lực xử lý của dữ liệu thông thường chỉ có thể
được lưu trữ thông qua Hệ quản trị CSDL. Bên cạnh đó, do tính chất phức tạp
của kiểu dữ liệu không gian dẫn đến việc quản lý dữ liệu loại này không thể
sử dụng Hệ quản trị cơ sở dữ liệu truyền thống.
Vì những lí do trên mà nhiều công trình nghiên cứu liên quan đến dữ liệu
không gian đã được tiến hành bao gồm nhiều lĩnh vực như: Thiết kế cấu trúc
dữ liệu vật lý tối ưu và các phương pháp truy cập, nghiên cứu việc xử lý truy
vấn và tối ưu hóa các kỹ thuật, giao diện tương tác ảo… Tất cả các cách tiếp
cận này chắc chắn sẽ đưa ra một mô hình dữ liệu không gian theo cách gián
tiếp trong đó mô hình này sẽ không đóng vai trò là đối tượng chính.
Về khía cạnh công nghệ, hình thể, vị trí không gian của các đối tượng cần
quản lý, được miêu tả bằng các dữ liệu đồ hoạ. Trong khi đó, tính chất các đối
tượng này được miêu tả bằng các dữ liệu thuộc tính.
Mô hình cơ sở dữ liệu không gian không những quy định mô hình dữ liệu
với các đối tượng đồ hoạ, đối tượng thuộc tính mà còn quy định liên kết giữa
chúng thông qua mô hình quan hệ và định nghĩa hướng đối tượng bao gồm
các tính chất như thừa kế (inherit), đóng gói (encapsulation) và đa hình
Đề tài: Tính toán xấp xỉ với các truy vấn liên quan đến khoảng cách
trong cơ sở dữ liệu không gian
2008
17
(polymorphism).
Ngoài ra, cơ sở dữ liệu không gian hiện đại còn bao gồm các ràng buộc
các đối tượng đồ hoạ ngay trong cơ sở dữ liệu, được gọi là topology (tương
quan không gian) - Phương thức thể hiện các ràng buộc đối với các đối tượng
đồ hoạ ngay trong cơ sở dữ liệu.
Đặc điểm chung của một số mô hình CSDL không gian:
Hỗ trợ tập hợp các kiểu dữ liệu đã định dạng sẵn: Tập các điểm, tập các
bề mặt…
Có thể sử dụng một hoặc hai kiểu cấu trúc dữ liệu phức tạp để lưu lại
các dữ liệu không gian, với việc sử dụng hai kiểu cấu trúc cùng một lúc
tức là một để ghi nhận dữ liệu không gian và một để ghi nhận dữ liệu
thông thường.
Định nghĩa được các phép toán áp dụng với một kiểu dữ liệu không
gian riêng biệt bất kỳ.
2.1 Xây dựng mô hình CSDL không gian
Xây dựng mô hình các đối tượng riêng lẻ.
Xây dựng mô hình cho một tập hợp các đối tượng có liên quan đến nhau
trong không gian địa lý.
Việc vận dụng dữ liệu mật độ cao hoặc dữ liệu không gian để lưu trữ và
phục hồi trong cơ sở dữ liệu đa phương tiện là một điều rất quan trọng.
Dữ liệu không gian bao gồm các điểm, đường, hình chữ nhật, đa giác, bề
mặt hay các đối tượng mật độ cao bao gồm cả thời gian. Các phương thức
đánh chỉ mục cung cấp đường dẫn đến dữ liệu hướng không gian được gọi là
các phương thức truy nhập không gian (Spatial Access Methods – SAM). Đến
nay đã có rất nhều SAM được giới thiệu bao gồm các grid file[1], K-D-B-tree
[2], R-trees [3], R*-trees [4] , Filter Trees [5] , TV-tree[6], X-trees[7] và SS-tree[8].
Đề tài: Tính toán xấp xỉ với các truy vấn liên quan đến khoảng cách
trong cơ sở dữ liệu không gian
2008
18
Trong các cơ sở dữ liệu không gian, các đối tượng không gian thông
thường được ánh xạ thành các véc-tơ đặc trưng trong không gian mật độ cao
và các truy vấn được xử lý trên cơ sở dữ liệu của các véc-tơ đặc trưng này.
Các véc-tơ đặc trưng thường thấy đó là biểu đồ màu, mô tả hình thức, các biểu
diễn văn bản,…mà mỗi một loại có những đặc tính khác nhau. Tuy nhiên điều
quan trọng là phải tìm ra được một cách biểu diễn thích hợp cho các véc-tơ
đặc trưng và nhằm xác định chính xác việc đo lường tính đồng dạng hoặc
khoảng cách giữa chúng. Bởi vậy một hệ thống đa phương tiện cần phải có
nhiều phương thức truy cập không gian để xử lý một truy vấn.
Trong quá khứ đã có một số nhà nghiên cứu đề xuất các phép toán ghép
nối không gian cho các tập dữ liệu không gian khác nhau. Tất cả các phương
pháp này đề đòi hỏi các cặp SAM có cùng một kiểu cấu trúc.
Các đặc tính cơ bản của phép truy nhập không gian.
Cấu trúc dữ liệu không gian
CSDL không gian bao gồm các đối tượng không gian như điểm, đường,
vùng, hình chữ nhật, bề mặt, hình khối và thậm chí là các dữ liệu mật độ cao
trong đó gồm cả thời gian. Một ví dụ của CSDL không gian là các thành
phố, những con sông, đường xá, quốc gia, bang, các dãy núi, các thành phần
trong một hệ thống CAD[9] (Thiết kế sử dụng sự trợ giúp của máy tính),…Ví
dụ về các thuộc tính của dữ liệu không gian có thể có là lưu vực của một con
sông, hay biên giới của một quốc gia…Thông thường các thuộc tính còn có
thể gắn thêm các các thuộc tính thông tin dạng phi không gian (non-spatial)
như độ cao, tên thành phố,…với CSDL không gian. Các cơ sở dữ liệu không
gian thuận tiện cho việc lưu trữ và đạt hiệu quả tốt cho quá trình xử lý các
thông tin dạng spatial[10] và non-spatial[11] một cách lý tưởng mà không cần
thiết phải quan tâm đến các mối liên hệ khác. Vì thế các sơ sở dữ liệu sẽ
nâng cao khả năng đáp ứng của các ứng dụng kiểm soát môi trường, khoảng
không, phát triển đô thị, quản lý nguồn lực, và trong các hệ thống GIS
[Buchmann et al. 1990; Günther and Schek 1991] [].
Phương pháp lưu trữ, quản lý và biểu diễn dữ liệu không gian
Đề tài: Tính toán xấp xỉ với các truy vấn liên quan đến khoảng cách
trong cơ sở dữ liệu không gian
2008
19
Mọi hệ thống quản trị cơ sở dữ liệu đều thực hiện việc sắp xếp dữ liệu
theo khóa riêng của mình. Trong trường hợp với CSDL không gian, việc sắp
xếp dựa trên tất cả các khóa spatial, điều đó có nghĩa rằng không giống như
trong các hệ thống quản trị cơ sở dữ liệu truyền thống, việc sắp xếp dựa trên
tất cả các dữ liệu đang sử dụng. Vì vậy các kỹ thuật này được biết với tên
gọi các phương pháp spatial indexing[12] – đánh chỉ mục không gian.
Một hướng tiếp cận trong việc biểu diễn spatial data là phân chia một
cách có cấu trúc từ những dữ liệu non-spatial đồng thời quản lý một cách
thích hợp các mối liên kết giữa chúng [Aref and Samet 1991a]. Đây được
xem như là một trong những nguyên nhân gây nên tình trạng phải mất nhiều
băng thông hơn cho việc thu thập dữ liệu không gian. Trong trường hợp như
vậy, các phép toán không gian (spatial operation) được thực hiện trực tiếp
trên các cấu trúc spatial data. Điều này cung cấp tính linh hoạt hơn nữa cho
việc chọn lựa cấu trúc spatial thích hợp thay vì phụ thuộc vào các cấu trúc
non-spatial (ví dụ như với một cơ sở dữ liệu quan hệ).
Một ví dụ về kiểu truy vấn được đặt ra cho một hệ thống cơ sở dữ liệu
không gian là “Hãy tìm các tên đường đi ngang qua trường đại học của
vùng RiverSide”. Yêu cầu này đòi hỏi phải trích xuất các bản ghi có trường
“region name” mang giá trị là “trường đại học vùng RiverSide” và xây dựng
một bản đồ A. Kế tiếp, thực hiện phép giao giữa A với bản đồ đường đi B
tạo được bản đồ mới C có các con đường được chọn lựa. Bây giờ tạo một
mối liên kết mới chỉ gồm một thuộc tính là các tên đường hợp lệ từ các
đường trong bản đồ C. Tất nhiên là còn có các hướng tiếp cận khác trả lời
câu truy vấn trên. Hiệu quả của chúng phụ thuộc vào tính tự nhiên và các
tính chất của dữ liệu.
Khái quát các khái niệm dữ liệu cơ sở trong CSDL không gian
Trong phần dưới đây, đề tài sẽ trình bày một cách khái quát các khái niệm
dữ liệu cơ sở trong CSDL không gian như vùng, điểm, chữ nhật, và đường.
Để biết thêm các thông tin chi tiết về các thành phần này, xin tham khảo thêm
trong [Samet 1990a; Samet 1990b].
Đề tài: Tính toán xấp xỉ với các truy vấn liên quan đến khoảng cách
trong cơ sở dữ liệu không gian
2008
20
Dữ liệu vùng - Region Data
Một region có thể được biểu diễn bằng đường biên hoặc nội dung bên
trong của chính nó. Trong phần này, region được hiểu theo cách biểu diễn
nội tại của nó. Một cách biểu diễn thông dụng nhất của region là mảng hình
ảnh. Trong trường hợp này, ta có một tập các phần tử ảnh (gọi là các pixel).
Khi số lượng các phần tử trong mảng quá lớn, phải tiến hành động thái là
giảm bớt kích thước mảng bằng cách kết hợp các pixel tương tự (đồng nhất
hay có cùng giá trị). Ở đây có hai hướng tiếp cận cơ bản. Hướng tiếp cận
đầu tiên là của [Rutovitz 1968]: phân chia mảng thành 1*m khối. Đây là
cách biểu diễn theo hàng và nó được biết với tên runlength code. Một hướng
tiếp cận khác xem region như là một tập các khối vuông cực đại (hoặc các
khối có hình dạng bất kỳ). Thông thường các khối được xác định bởi tâm và
radii của chúng. Sự biểu diễn này được gọi là medial axis transformation
(MAT).
Hình 2: (a) Một region mẫu, (b) Biểu diễn dạng mảng nhị phân của region, (c)
Các khối cực đại và các khối phổ thông được chia sẻ trong region - (d)
quadtree tương ứng.
Thuật ngữ quadtree (cây tứ phân) là chỉ số không gian được dùng để
phân chia đệ quy một tập hợp dữ liệu (chẳng hạn, một ảnh) thành các ô
vuông cho đến khi mỗi ô vuông có một giá trị thuần nhất. Cây tứ phân
thường được dùng để lưu trữ dữ liệu raster. Ở đây quadtree được sử dụng để
mô tả rất nhiều phần tử của các cấu trúc dữ liệu có thứ bậc (dựa trên nguyên
Đề tài: Tính toán xấp xỉ với các truy vấn liên quan đến khoảng cách
trong cơ sở dữ liệu không gian
2008
21
tắc đệ quy hay còn gọi là các phương pháp chia để trị).
Dữ liệu điểm - Point Data
Dữ liệu điểm đa chiều có thể được biểu diễn dưới rất nhiều hình thức
khác nhau. Sự lựa chọn sau cùng cho một tác vụ cụ thể sẽ bị ảnh hưởng bởi
kiểu operation sẽ được thực hiện trên dữ liệu. Phần này đề cập chủ yếu đến
kiểu biểu diễn PR quadtree (P: Point và R: Region) là phương thức phân ly
chủ đạo. Đây là sự lắp ghép giữa region quadtree và point data, và PR
quadtree được tổ chức tương tự như region quadtree. Chỉ có một sự khác
biệt đó là các nút lá hoặc là rỗng (ở đây biểu diễn bằng màu TRẮNG), hoặc
chứa dữ liệu điểm (màu ĐEN) và các giá trị tương ứng của chúng.
Hình vẽ sau là một PR quadtree tương ứng với một số lượng nhất định
point data:
Đề tài: Tính toán xấp xỉ với các truy vấn liên quan đến khoảng cách
trong cơ sở dữ liệu không gian
2008
22
Hình 3: Ví dụ một PR quadtree
Điểm bất lợi của PR quadtree là mức phân chia tối đa phụ thuộc vào sự phân
ly tối thiểu giữa hai point. Trong những trường hợp đặc biệt, nếu hai point là
rất gần nhau thì sự phân chia là rất nhỏ.
Dữ liệu kiểu chữ nhật - Rectangle Data
Kiểu dữ liệu rectangle nằm đâu đó giữa kiểu dữ liệu point và region.
Rectangle thường được sử dụng để làm xấp xỉ với các đối tượng khác trong
một bức ảnh. Ví dụ các rectangle biên thường được sử dụng trong các ứng
dụng bản đồ để làm xấp xỉ các đối tượng như hồ nước, rừng, đồi,…
[Hinrichs and Nieverglt 1983] đã suy giảm mỗi rectangle thành một điểm
trong không gian đa chiều lớn, và họ đối xử với các vấn đề phát sinh như
một tập các điểm chứ không phải hình. Mỗi rectangle trong một sản phẩm
Cartesian (Hệ toạ độ Đề-các) có hai interval (khoảng không gian) một chiều
trong đó mỗi interval được biểu diễn bởi trọng tâm và quy mô của chúng.
Mỗi một tập interval trong một chiều cụ thể được biểu diễn bởi một grid file.
Dữ liệu đường - Line Data
Line data là một hình thức biểu diễn xác định các biên của các region.
Cách biểu diễn đơn giản nhất là đa giác gồm có các véc-tơ xác định khuôn
dạng của các liệt kê các cặp giá trị x và y tương xứng với điểm bắt đầu và
kết thúc của chúng. Các véc-tơ thường được sắp xếp theo liên kết của chúng.
Một trong những cách biểu diễn thông dụng nhất là chain code[13] [Freeman
1974].
Dữ liệu không gian - Spatial (High-dimentional) Data
Rất nhiều các cấu trúc SAM (Spatial Access methods) thành công dựa
trên nguồn gốc của sự phân ly không gian có thứ bậc. Ý tưởng ở đây là đánh
chỉ mục một cách liên tục các vùng không gian, như vậy việc tìm kiếm có
Đề tài: Tính toán xấp xỉ với các truy vấn liên quan đến khoảng cách
trong cơ sở dữ liệu không gian
2008
23
thể được xuất phát ở mức cao hướng về những vùng không gian thích hợp.
Một cách thức phổ biến và khả quan để tổ chức và truy cập các đối tượng đa
chiều là sử dụng R-tree hoặc các biến thể của nó bởi vì trong R-tree, không
gian dữ liệu được phân ly liên tiếp nhau thành các rectangle, còn gọi là
hyper-rectangle.
Với hệ thống thông tin địa lý - GIS
Hệ thống thông tin địa lý làm việc với hai dạng mô hình dữ liệu địa lý
khác nhau về cơ bản - mô hình vector và mô hình raster.
9 Trong mô hình vector, thông tin về điểm, đường và vùng được mã hoá và
lưu dưới dạng tập hợp các toạ độ x,y. Vị trí của đối tượng điểm, như lỗ
khoan, có thể được biểu diễn bởi một toạ độ đơn x,y. Đối tượng dạng đường,
như đường giao thông, sông suối, có thể được lưu dưới dạng tập hợp các toạ
độ điểm. Đối tượng dạng vùng, như khu vực buôn bán hay vùng lưu vực
sông, được lưu như một vòng khép kín của các điểm toạ độ.
9 Mô hình vector rất hữu ích đối với việc mô tả các đối tượng riêng biệt,
nhưng kém hiệu quả hơn trong miêu tả các đối tượng có sự chuyển đổi liên
tục như kiểu đất hoặc chi phí ước tính cho các bệnh viện. Mô hình raster
được phát triển cho mô phỏng các đối tượng liên tục như vậy. Một ảnh raster
là một tập hợp các ô lưới. Cả mô hình vector và raster đều được dùng để lưu
dữ liệu địa lý với nhưng ưu điểm, nhược điểm riêng, Các hệ GIS hiện đại có
khả năng quản lý cả hai mô hình này.
2.1.1 Xây dựng mô hình của các đối tượng riêng lẻ
Sử dụng phương pháp trừu tượng hóa cơ bản để mô phỏng các đối tượng
riêng lẻ trong không gian, thông qua việc sử dụng các kí hiệu hình học có tính
chất tượng trưng:
Các kí hiệu hình học thường gặp trong bản đồ địa lý thông thường và
những đối tượng cần được biểu diễn trong CSDL không gian tương ứng:
Điểm: y Kí hiệu thành phố
Mô phỏng hình học của một đối tượng trong trường hợp này chỉ xác định
Đề tài: Tính toán xấp xỉ với các truy vấn liên quan đến khoảng cách
trong cơ sở dữ liệu không gian
2008
24
vị trí của nó trên không gian bản đồ chứ không thể hiện phạm vi hay tỉ lệ kích
thước tương ứng của đối tượng.
Đường thẳng, đoạn thẳng:
Dòng sông
Đường dây
Đường giao thông
Hình 4: Biểu diễn dạng đường
Kí hiệu hình học của đối tượng kéo dài trong không gian hoặc kết nối các
không gian địa lý.
Vùng miền, lãnh thổ: Diễn tả phạm vi và khu vực của đối tượng
Rừng
Hồ ao
Thành phố
Hình 5: Biểu diễn dạng khu vực
2.1.2 Xây dựng mô hình cho một tập hợp các đối tượng có liên quan trong
không gian địa lý
Ranh giới phân chia giữa các đối tượng
Qui hoạch đất
Phân chia quận huyện
Sở hữu đất
Không gian các điểm
Hình 6: Biểu diễn tập đối tượng trong khu vực
Đề tài: Tính toán xấp xỉ với các truy vấn liên quan đến khoảng cách
trong cơ sở dữ liệu không gian
2008
25
Xây dựng mô phỏng mạng lưới các đối tượng
Hệ thống giao thông
Mạng lưới viễn thông
Hệ thống đường thủy
Đường điện, điện thoại
Hình 7: Biểu diễn đối tượng dạng mạng lưới
2.2 Cơ sở hình học trong tổ chức các đối tượng không gian cơ bản
Câu hỏi đặt ra là liệu hệ quy chiếu hình học cổ điển có thích hợp để xây
dựng mô hình CSDL không gian? Vấn đề đặt ra là không gian địa lý trong
thực tế có tính chất liên tục và liền mạch trong khi máy tính chỉ có thể xử lý
và lưu trữ những số liệu dưới dạng số học rời rạc.
Với hệ quy chiếu 2 chiều Euclidean điểm P được biểu diễn bởi cặp tọa độ (x,
y): P = (x, y) € R2 (real * real)
Dễ dàng nhận thấy với hình học Euclidean các đối tượng được quy về mặt
phẳng với 2 thông số tọa độ x, y. Dẫn đến khó có thể xác định một điểm bất
kỳ có thuộc một đường thẳng nối 2 điểm khác trong không gian hay không?
Mục đích xây dựng cơ sở hình học để tổ chức hợp lý các đối tượng không
gian: Tránh phải sử dụng phép tính toán thêm các giao điểm mới trong giới
hạn các phép toán hình học.
Có 2 cách tiếp cận:
Simplicial Complexes – Tổ hợp đơn giản (từ combinatorial topology –
tổ hợp tương quan không gian)
Realms
2.2.1 Simplicial Complexes
Định nghĩa: Simplicial Complexes – Tổ hợp đơn giản là một tập hữu hạn các
đỉnh (simplices) để giao điểm các đoạn thẳng nối giữa chúng tạo thành các bề
Đề tài: Tính toán xấp xỉ với các truy vấn liên quan đến khoảng cách
trong cơ sở dữ liệu không gian
2008
26
mặt.
d-simplex (d hình): Số lượng đối tượng nhỏ nhất trong không gian d chiều
y 0 - simplex
Hình 8: Mô hình d-simplex
d-simplex bao gồm (d + 1) đỉnh trong không gian d-1 chiều
Các thành phần tạo nên một hình (simplex) được gọi là các bề mặt (faces)
2.2.2 Realms
Định nghĩa khái niệm Realms
Theo cách trực quan: Realms là toàn bộ sự mô tả hình học (tất cả các điểm,
các đường) của ứng dụng.
Định nghĩa chính thức: Realms là tập hợp các điểm và đoạn thẳng định
nghĩa một mạng lưới thỏa mãn các tính chất sau:
Mỗi một điểm hoặc điểm kết thúc của một đoạn phải là một điểm của
mạng lưới.
Mỗi điểm kết thúc của đoạn cũng phải thuộc Realms
Không có điểm nào thuộc Realms lại nằm trong một đoạn thẳng (không
tính hai đầu mút)
Hai đoạn bất kỳ riêng biệt không giao nhau hoặc nằm trùng lên nhau
Như vậy Realms (vùng, khu vực) là nền tảng hình học rời rạc cơ bản làm
cơ sở trong việc xây dựng một hay nhiều kiểu dữ liệu không gian. Một Realm
là một tập hữu hạn các điểm và các đoạn thẳng không giao nhau nằm trong
một khung lưới các điểm rời rạc và mô tả một cách tổng quát cơ sở hình học
1- simplex
2- simplex
3- simplex
Đề tài: Tính toán xấp xỉ với các truy vấn liên quan đến khoảng cách
trong cơ sở dữ liệu không gian
2008
27
hoàn chỉnh của không gian ứng dụng liên quan trong không gian 2 chiều.
Ý tưởng là xây dựng kiến trúc hình học của các đối tượng địa lý bằng cách
dựng chúng dựa vào các điểm và đoạn trong một Realm đã xác định trước. Cơ
sở toán học sử dụng trong việc thiết kế các kiểu dữ liệu không gian mặc định
là không gian Euclidean. Một điểm theo đó sẽ được biểu diễn bởi một cặp số
thực. Tuy nhiên, trong thực tế không tồn tại một cặp số thực như vậy trên máy
tính mà chỉ có các tập hợp xấp xỉ. Điều này dẫn đến rất nhiều vấn đề nảy sinh
trong tính toán hình học. Khái niệm khu vực – Realm góp phần giải quyết các
vấn đề của dữ liệu số học thô và sự chính xác theo hình học topo bằng các lớp
khu vực – Realm layer. Mặt khác nó cũng khắc phục vấn đề xảy ra khi có
đoạn thẳng cắt qua mạng lưới các điểm rời rạc ban đầu và đảm bảo tính chính
xác hình học của các đối tượng địa lý. Hơn thế nữa, nó cho phép việc định
nghĩa chính thức các kiểu dữ liệu không gian chung hoặc các phép toán đại số,
như vậy các đặc tính đóng hữu dụng sẽ không chỉ được đặt ra trên lý thuyết
mà còn được ứng dụng trong thực tế ngành công nghệ thông tin.
Ví dụ với dữ liệu ứng dụng là một tập hợp các điểm và các đoạn thẳng
giao nhau. Cần đặt một đoạn thẳng cắt các đoạn thẳng khác: Ý tưởng cơ bản
là làm thay đổi không đáng kể vị trí các đường thẳng.
2.2.3 Minh họa một số phép toán thực hiện trên dữ liệu không gian
Phép toán thực hiện trên hai đối tượng không giain gA & gB trong không
gian địa lý với các trường hợp (i), (ii), (iii) và (iv) dựa vào vị trí tương đối
giữa các đối tượng ban đầu.
Giả thiết với các đối tượng trong không gian địa lý với mô phỏng hình học
là 3 kiểu dữ liệu không gian phổ biến: Điểm, đường và vùng/miền. Các phép
toán tương tự như các phép toán với tập hợp trong đại số học.
2.2.3.1 Phép toán hợp
Hợp hai đối tượng: gA & gB. Kết quả trả về là một hoặc nhiều đối tượng
với thuộc tính tương đương.
Đề tài: Tính toán xấp xỉ với các truy vấn liên quan đến khoảng cách
trong cơ sở dữ liệu không gian
2008
28
Hình 9: Phép toán hợp trong không gian địa lý
2.2.3.2 Phép toán trừ (cắt bởi một đối tượng)
Đối tượng gA bị cắt bởi gB, cho kết quả là một hoặc hai đối tượng mới
Hình 10: Phép toán trừ trong không gian địa lý
2.2.3.3 Phép toán giao
Kết quả trả về phần giao nhau giữa hai đối tượng
Hình 11: Phép toán giao trong không gian địa lý
2.2.3.4 Phép toán bao phủ
Với hai đối tượng SA và SB bao gồm các thuộc tính tương ứng (A, G) = (a,
gA) và (B, G) = (b, gB) (Hình 12)
Kí hiệu miền giao nhau của hai thuộc tính dạng vùng – region là: g2
gA ∩ gB = g2
Đề tài: Tính toán xấp xỉ với các truy vấn liên quan đến khoảng cách
trong cơ sở dữ liệu không gian
2008
29
gA = g1 hợp g2
gB = g2 hợp g3
Kết quả của các phép bao phủ theo vị trí tương đối: SA – Left, SB – Right
là tập các thuộc tính của cả hai đối tượng ban đầu (A, B, G)
Inner Overlay (bao phủ bên trong)
Left Overlay (bao phủ bên trái – theo SA)
Right Overlay (bao phủ bên phải – theo SB)
Full Overlay (Bao phủ hoàn toàn)
Hình 12: Phép toán bao phủ trong không gian địa lý
e. Minh họa các hàm toán tử đặc trưng trong CSDL không gian
Đối tượng ban đầu - g qua các phép toán định dạng cho kết quả tương ứng
như hình dưới đây (áp dụng với các đối tượng hình học trong không gian)
(Hình 14)
Spatial complemenation (Phép tính phần bù): Kết quả trả về gC1 và gC2
Spatial Boundary (Phép lấy đường biên): Kết quả trả về gB1 và gB2 -
đường biên phân chia ranh giới giữa các đối tượng.
Spatial Envelope (Phép bao): Kết quả trả về gE – Vùng bao trùm ngoài
cùng lên các đối tượng, không hiển thị các phần cắt hoặc các đường giao
nhau. gE ở đây đóng vai trò như một phong bì bên ngoài (envelope) chứa
Đề tài: Tính toán xấp xỉ với các truy vấn liên quan đến khoảng cách
trong cơ sở dữ liệu không gian
2008
30
toàn bộ đối tượng g ban đầu.
Spatial Buffer (Phép vùng đệm): Kết quả trả về gB – Vùng đệm chỉ chứa
các đối tượng.
Hình 13 Các hàm toán tử trong không gian địa lý
3. Truy vấn thực hiện trong CSDL không gian
Một đặc điểm nổi bật giúp cho CSDL không gian trở thành một công cụ
mạnh mẽ là khả năng xử lý dữ liệu không gian, không chỉ với mục đích đơn
giản là lưu trữ và biểu diễn dữ liệu đó. Một trong những mục đích chính của
loại CSDL đặc trưng này là trả lời các truy vấn liên quan đến các thuộc tính
không gian của dữ liệu. Một số kiểu truy vấn không gian tiêu biểu:
Truy vấn xác định vị trí điểm – Point location Query: Tìm kiếm đối
tượng rơi vào vị trí điểm đưa ra (ví dụ tìm kiếm thành phố, quốc gia mà một
quận, huyện hay địa danh cho trước nằm trong đó).
Truy vấn giới hạn – Range Query: Tìm kiếm đối tượng nằm trong vùng
khu vực được đưa ra, thường biểu diễn đối tượng trả về bằng một hình chữ
nhật hoặc vòng kín khoanh vùng khu vực đã xác định thỏa mãn truy vấn (ví
dụ như xác định vùng hoạt động của các loại xe du lịch trong khu di tích
quốc gia). .
Truy vấn ghép nối – Join Query: Có rất nhiều dạng cho phép truy vấn
nối. Nó bao gồm hai hay nhiều tập các dữ liệu không gian và các cặp đối
tượng thỏa mãn những thuộc tính đã cho trước, tất cả các cặp chữ nhật gối
lên nhau sẽ được truy xuất trong kết quả truy vấn.
Truy vấn lân cận gần nhất – Nearest neighbor Query: Tìm kiếm đối
tượng dữ liệu cố định gần nhất đối với đối tượng ban đầu sẽ được tìm thấy
Đề tài: Tính toán xấp xỉ với các truy vấn liên quan đến khoảng cách
trong cơ sở dữ liệu không gian
2008
31
tùy thuộc và khoảng cách hoặc thỏa mãn tính đồng nhất.
Khi thực hiện việc mở rộng các truy vấn không gian cơ bản nêu trên, các
dạng truy vấn mới đã được xây dựng. Ví dụ như khi nghiên cứu những đặc
điểm tương đồng hoặc khác nhau của một tập hợp lớn các đối tượng phức tạp,
những vector đặc trưng thứ nguyên bậc cao được lấy ra từ đó và được tổ chức
trong các bảng chỉ mục đa hướng. Đặc điểm quan trọng nhất trong phép biến
đổi đặc trưng này là vector đặc trưng tương ứng với các điểm trong không
gian Euclidean đa chiều (một kiểu dữ liệu không gian đã được tổng quát hóa).
Sau đó, các truy vấn về khoảng cách được áp dụng trên các điểm đa chiều.
Các phương pháp truy cập đa chiều nằm trong R-Tree – Khái niệm R*-
Tree [Beckmann, Kriegel, Schneider, & Seeger, 1990] và X-Tree đặc biệt
[Berchtold, Kiem, & Kriegel, 1996] được coi là sự lựa chọn tốt cho việc đánh
chỉ mục tập dữ liệu điểm thứ nguyên bậc cao với mục đích thực thi các truy
vấn liên quan đến khoảng cách (DBQs). Và quá trình này được thực hiện bằng
thuật toán phân nhánh và giới hạn trong các hàm khoảng cách và rút gọn theo
phương pháp đánh giá kinh nghiệm dựa trên Khung giới hạn nhỏ nhất
(Minimum Bounding Rectangles – MBRs [14]) – nhằm giảm bớt không gian
tìm kiếm. Việc thực thi các thuật toán trên góp phần làm giảm sự gia tăng về
số lượng các bậc thứ nguyên. Tuy nhiên nó có thể được cải tiến nếu không
gian tìm kiếm được giới hạn theo cách thức nào đó. Với mục đích thực hành,
các phương pháp giới hạn không gian tìm kiếm tỏ ra thực sự có giá trị do
chúng có khả năng đưa ra các kết quả xấp xỉ trạng thái nhanh hơn rất nhiều so
với các phương pháp trước đó. Một hướng nghiên cứu khác cũng với mục
đích làm giảm chi phí cho việc xây dựng các truy vấn khoảng cách trong
không gian, thỏa mãn các giới hạn về độ chính xác, là sử dụng kỹ thuật tìm
kiếm theo kinh nghiệm trên R-Tree như tìm kiếm khu vực – Local search,
Simulated Annealing và Thuật toán phát sinh - Genetic Algorithms.
Sau đây, ta sẽ xem xét những kỹ thuật xấp xỉ trong các truy vấn liên quan
đến khoảng cách trong CSDL không gian quan trọng nhất, các kỹ thuật này có
thể được áp dụng trên cấu trúc cây như R-tree (có khả năng chấp nhận rộng rãi
đối với các phương pháp truy cập không gian). Chú trọng vào các lựa chọn
Đề tài: Tính toán xấp xỉ với các truy vấn liên quan đến khoảng cách
trong cơ sở dữ liệu không gian
2008
32
thiết kế của các thuật toán xấp xỉ có hiệu quả trong các truy vấn khoảng cách,
với mục đích giảm tối thiểu thời gian đáp ứng của hệ thống và số lượng các
phép toán vào ra trong khi vẫn đưa ra được kết quả khả quan với hiệu suất
cao.
Chú thích
[1] Grid file: Là một kiểu dữ liệu dạng mảng đa chiều (multidimensinal array),
thường được lưu trữ trên ổ cứng, và được sử dụng như một dạng chỉ mục trong
cơ sở dữ liệu.
[2] K-D-B-tree: Một kiểu cấu trúc dữ liệu, là sự kết hợp các đặc tính của hai kiểu
cấu trúc dữ liệu khác là K-D-tree và B-tree. K-D-B-tree được biết đến như một
cấu trúc tìm kiếm hiệu quả trong các chỉ mục động đa chiều lớn.
[3] R-tree: Thuật toán được phát minh bởi Antonin Gutman - Trường đại học
Berkely California. Ý tưởng của phương pháp này là xây dựng một cách truy
xuất nhanh các vùng không gian, bằng cách chia nhỏ không gian thành cách
vùng nhỏ và tạo index-chỉ mục cho các vùng không gian nhỏ này, sau đó áp
dụng lý thuyết cây trong đồ thị để quản lý, lưu trữ và truy xuất các vùng không
gian này.
[4] R*-trees: Thuật toán xây dựng dựa trên thuật toán R-tree theo hình thức cải
tiến hơn và hạn chế các hạn chế trong thuật toán R-tree.
[5] Filter Trees: Một cách tổ chức file để lưu trữ và sử dụng dữ liệu không gian
(đa chiều) ứng dụng trong việc thực thi các phép toán nối trong CSDL không
gian một cách hiệu quả. Cấu trúc thông tin trong Filter Trees là cách tổ chức
phân cấp với mục đích tách rời các thực thể không gian theo kích cỡ, đặt các
thực thể lớn hơn ở mức cao hơn trên Filter Trees, và ngược lại.
[6] TV-tree: Một dạng cấu trúc chỉ mục sử dụng trong không gian đa chiều
[7] X-tree: Cấu trúc chỉ mục trong không gian đa chiều, được xây dựng với ý
tưởng tránh hiện tượng chồng chéo các bounding box (khung giới hạn – cách viết
khác của MBR) trong thư mục bằng cách sử dụng cách tổ chức thư mục mới tối
ưu hơn cho không gian đa chiều bậc cao.
[8] SS-tree: Cấu trúc chỉ mục xây dựng dựa trên nền tảng của R-Tree. SS-Tree sử
Đề tài: Tính toán xấp xỉ với các truy vấn liên quan đến khoảng cách
trong cơ sở dữ liệu không gian
2008
33
dụng vùng giới hạn dạng elip (ellipsoid bounding region) trong không gian thứ
nguyên bậc thấp và ứng dụng cách biến đổi khác nhau cho mỗi node trong thư
mục.
[9] CAD – Computer-Aided design: Thiết kế dựa trên sự trợ giúp của máy tính.
[10] Spatial hoặc Spatial data: Dữ liệu không gian – bao gồm các thông tin thực
thể về đối tượng trong không gian khi đã được mô hình hóa trên bản đồ và biểu
diễn dưới dạng đối tượng của thông tin địa lý.
[11] Non-spatial (data): Dữ liệu phi không gian – dữ liệu của đối tượng địa lý,
bao gồm các thông tin về thuộc tính và các đặc điểm đi kèm của đối tượng mà
không thể lưu trữ dưới dạng dữ liệu địa lý trong CSDL.
[12] Spatial indexing: Phương pháp đánh chỉ mục không gian tương tự như trong
CSDL thông thường, đây là phương pháp dùng trong quản lý CSDL sử dụng
trong việc sắp xếp, tổ chức và truy xuất các dữ liệu đặc biệt trong CSDL thông
tin địa lý.
[13] chain code [Freeman 1974].
[14] Minimum bounding Rectangle (tên khác là bounding box hoặc envelop):
Khung giới hạn nhỏ nhất là biểu diễn phạm vi lớn nhất của hai đối tượng trong
không gian hai chiều (như điểm, đường hoặc vùng) với chỉ số (x, y) trong hệ
thống tọa độ với tọa độ tương ứng là min(x), min(y), max(x), max(y). MBR
thường được sử dụng như một minh họa biểu diễn vị trí tổng quát của của một
đặc trưng hình học bất kỳ hoặc sử dụng trong biểu diễn các truy vấn không gian
có tính chất gần đúng và đánh chỉ mục không gian.
Đề tài: Tính toán xấp xỉ với các truy vấn liên quan đến khoảng cách
trong cơ sở dữ liệu không gian
2008
34
CHƯƠNG 2:
BÀI TOÁN TÍNH TOÁN XẤP XỈ
VỚI CÁC TRUY VẤN LIÊN QUAN ĐẾN KHOẢNG CÁCH
TRONG CƠ SỞ DỮ LIỆU KHÔNG GIAN
1. Các truy vấn liên quan đến khoảng cách
Các chức năng liên quan đến khoảng cách tiêu biểu đều dựa trên khoảng
cách tính theo hệ mét ( thỏa mãn các thuộc tính về tính chất không phủ định,
tính đồng nhất, tính đối xứng và bất đẳng thức tam giác) đã xác định trên các
điểm trong không gian.
Hệ đo theo khoảng cách chung được gọi là Lt – khoảng cách Lt, hệ đo Lt
hoặc khoảng cách Minkowski[1] giữa hai điểm: P = (p1, p2, …, pd) và q = (q1,
q2, …, qd) trong không gian thứ nguyên, Rd và được định nghĩa dưới đây:
Đề tài: Tính toán xấp xỉ với các truy vấn liên quan đến khoảng cách
trong cơ sở dữ liệu không gian
2008
35
Với t = 1, ta thu được hệ khoảng cách Manhattan.
Với t = 2, ta có được hệ khoảng cách Euclidean.
Đây là hai hệ khoảng cách được biết đến nhiều nhất của hệ đo Lt trong nội
dung CSDL không gian. Khoảng cách Euclidean thường được sử dụng như
chức năng riêng biệt trong tính toán khoảng cách tuy nhiên phụ thuộc vào ứng
dụng thực tế mà các hệ khoảng cách khác có thể hiệu quả hơn.
Trong các ứng dụng về CSDL không gian, hệ đo khoảng cách được sử
dụng trong rất nhiều dạng của các truy vấn CSDL.
Ví dụ minh họa các truy vấn liên quan đến khoảng cách
Để minh họa các truy vấn liên quan đến khoảng cách trong CSDL không
gian, dưới đây đề tài nghiên cứu và tham khảo xây dựng vắn tắt CSDL
Benchmark[2]: CSDL xây dựng phục vụ cho việc quản lý dữ liệu và truy
xuất, xử lý các truy vấn trong dịch vụ liên quan đến định vị vị trí địa lý của
đối tượng (Location-based Queries) ứng dụng trong các phương tiện trợ
giúp cá nhân – PDA với chức năng tìm đường và xác định vị trí của người
sử dụng dựa trên thiết bị định vị và các dữ liệu thông tin địa lý.
Mô tả các thực thể, thuộc tính và mối quan hệ giữa các thuộc tính thông
qua mô hình dữ liệu quan niệm:
Giả sử với người dùng sử dụng thiết bị di động cài đặt chương trình quản
lý và tìm đường trong một khu vực nhất định thông qua bản đồ và tín hiệu
định vị ví trí hiện tại của họ.
Ta có mô hình dữ liệu quan hệ
Đề tài: Tính toán xấp xỉ với các truy vấn liên quan đến khoảng cách
trong cơ sở dữ liệu không gian
2008
36
Hình 14: Mô hình dữ liệu quan hệ xây dựng dựa trên Benchmark database
Các thực thể
Human – người sử dụng
Thuộc tính Tính chất Ghi chú
Id Khóa chính
Route Lộ trình đường đi đã định sẵn của
người dùng
Interests Thuộc tính đa trị
Request Thuộc tính đa trị
Lưu trữ thông tin về sở thích của
người dùng hoặc các yêu cầu gần
nhất.
Road
Thuộc tính Tính chất Ghi chú
Id Khóa chính
Shape Lưu trữ hình dạng (đa giác) và thời
gian đã đi qua-Pass các tuyến đường
hoặc thăm-Visit các tòa nhà.
Building: Bao gồm hai thực thể con là Shop và Other
Đề tài: Tính toán xấp xỉ với các truy vấn liên quan đến khoảng cách
trong cơ sở dữ liệu không gian
2008
37
Thuộc tính Tính chất Ghi chú
Id Khóa chính
Location Lưu trữ vị trí các tòa nhà, các shop và
thời gian di chuyển
Shop
Thuộc tính Tính chất
Id Khóa chính
Location
Offer Thuộc tính đa trị
Other
Thuộc tính tập hợp nhiều giá trị bao gồm các thông tin như tên sản phẩm,
thông tin về thời gian đáp ứng yêu cầu hợp lệ.
Thuộc tính Tính chất
Id Khóa chính
Location
Type
Một số truy vấn liên quan đến khoảng cách tiêu biểu được sử dụng khá
phổ biến trong hệ thống CSDL không gian. Với mỗi loại truy vấn sẽ đưa ra ví
dụ ứng dụng một truy vấn cụ thể dựa trên CSDL Benchmark đã trình bày ở
trên. Giả sử với người sử dụng có Id = 20 (Human.id = 20)
1.1 Truy vấn khu vực theo khoảng cách δ
Truy vấn khu vực theo khoảng cách δ - δ-distance range query: Truy vấn
dạng này bao gồm một tập dữ liệu không gian, điểm truy vấn và giới hạn
Đề tài: Tính toán xấp xỉ với các truy vấn liên quan đến khoảng cách
trong cơ sở dữ liệu không gian
2008
38
khoảng cách δ. Kết quả đưa ra là một tập các đối tượng không gian từ tập dữ
liệu đầu vào nằm trong vùng giới hạn một khoảng cách là δ tính từ điểm truy
vấn (query point).
Truy vấn 1: Tìm các shop nằm trong khoảng bán kính 500m tính từ vị trí tôi
đang đứng có bán quần áo thể thao.
Sử dụng hàm giới hạn khoảng cách tìm kiếm trong khoảng 500m với vị trí
hiện thời làm tâm là Circle (curr_space(), δ)
SELECT Shop.id, Offer.id, Offer.info
FROM Human, Shop, Offer
WHERE Offer.infor = `sportwear`
AND Offer.shop_id = Shop.id AND Human.id = 20
AND Shop.Location INSIDE Circle (curr_space(Human.route), 500) ;
Với δ = 500 (m).
Hàm Circle(point reference, number K): Đường tròn được định nghĩa bởi tâm
là điểm tham chiếu cho trước và bán kính bằng K.
Hàm Curr_space (point reference): Hàm toán tử trả về giá trị khả dụng trong
thời điểm hiện tại như giá trị lần cập nhật cuối cùng, thông tin gần nhất về
điểm truy vấn, ở đây hàm Curr_space() sử dụng như hàm trả về thông tin vị trí
tại thời điểm truy cập của người dùng.
1.2 Truy vấn K vùng lân cận gần nhất
Truy vấn K vùng lân cận gần nhất - K nearest neighbour query (K-
NNQs): K-NNQs bao gồm một tập dữ liệu không gian và một điểm truy vấn.
Nó tìm ra K đối tượng riêng biệt từ tập dữ liệu đầu vào và lần lượt có các
khoảng cách nhỏ nhất tính từ điểm truy vấn.
Ví dụ một truy vấn dạng K-NNQ trong CSDL Benchmark:
Truy vấn 2: Tìm hai nhà hàng gần nhất (giả thiết với Other.type = 1) tính từ
khu vực hiện tại tôi đang đứng ( với giá trị Human.Id = 20)
Đề tài: Tính toán xấp xỉ với các truy vấn liên quan đến khoảng cách
trong cơ sở dữ liệu không gian
2008
39
SELECT Other.id
FROM Human, Other
WHERE Other.type = 1 AND Human.Id = 20
ORDER BY Spatial_Neighbour (Other.Location, curr_space
(Human.Route) ) ASC = 2;
Trong trường hợp này K = 2.
Chú ý
Với câu lệnh SQL: ORDER BY Spatial_Neighbour (Other.Location,
curr_space (Human.Route) ) ASC = 2;
Hàm Spatial_Neighbour (attribute, reference) được sử dụng để biểu diễn
truy vấn dạng K-NN giữa các thuộc tính. Kết quả trả về được sắp xếp theo
quy tắc tăng dần (ở đây là khoảng cách giữa người dùng và nhà hàng).
1.3 Truy vấn nối các khu vực theo khoảng cách δ (truy vấn đệm)
Truy vấn nối các khu vực theo khoảng cách δ (truy vấn đệm) - δ–
distance range join query: Truy vấn trên bao gồm hai tập dữ liệu không gian và
giới hạn khoảng cách δ. Kết quả trả về là một tập các cặp đối tượng không
gian từ hai tập dữ liệu đầu vào, nằm trong giới hạn khoảng cách δ tính từ mỗi
đối tượng.
1.4 Phép nối khoảng cách Iceberg
Phép nối khoảng cách Iceberg - Iceberg distance join: Bao gồm hai tập dữ
liệu không gian, giới hạn khoảng cách δ và số yếu tố ngưỡng K. Kết quả trả về
là một tập các cặp đối tượng từ hai tập dữ liệu đầu vào, nằm trong phạm vi
khoảng cách δ từ mỗi đối tượng, quy định rằng đối tượng đầu tiên xuất hiện ít
nhất K lần trong kết quả của phép nối.
1.5 Truy vấn K cặp đối tượng gần nhất
Truy vấn K cặp đối tượng gần nhất - K closet pair query (K-CPQ): Bao
gồm hai tập dữ liệu không gian và số yếu tố ngưỡng K. Nó tìm kiếm K cặp
đối tượng riêng biệt từ hai tập dữ liệu đầu vào và có khoảng cách nhỏ nhất
Đề tài: Tính toán xấp xỉ với các truy vấn liên quan đến khoảng cách
trong cơ sở dữ liệu không gian
2008
40
giữa chúng là K.
Truy vấn 3: Tìm năm shop gần nhất tính từ khu vực tôi đang đứng có bán giày
dép đã được lưu trong mục Interest của người sử dụng.
SELECT Human.id, Shop.id, Offer.id
FROM Human, Shop, Offer
WHERE `shoes` in Human.Interests AND Offer.Info = `shoes`
AND Offer.Shop_id = Shop.id
ORDER BY All_Spatial_Neighbour_Pairs
(Shop.Location, curr_space (Human.route)) ASC 5;
Với K = 5.
Chú ý:
Tương tự như với câu truy vấn dạng K-NN, câu lệnh SQL:
ORDER BY All_Spatial_Neighbour_Pairs(Shop.Location, curr_space
(Human.route)) ASC 5;
Cũng được sử dụng để biểu diễn các truy vấn dạng K-CP
1.6 Nối K vùng lân cận gần nhất
Nối K vùng lân cận gần nhất - K nearest neighbour join: Bao gồm hai
tập dữ liệu không gian và số yếu tố ngưỡng K. Kết quả trả về là tập các cặp
đối tượng từ hai tập dữ liệu đầu vào thỏa mãn, với mỗi đối tượng của tập dữ
liệu đầu tiên, một cặp được tạo thành với mỗi K vùng lân cận gần nhất của nó
trong tập dữ liệu thứ hai.
1.7 Truy vấn K- nối khoảng cách
Truy vấn K- nối khoảng cách - K-Multi-way distance join query: Một truy
vấn theo dạng này bao gồm n tập dữ liệu không gian, một đồ thị truy vấn (là
một đồ thị định hướng có trọng số định nghĩa hành trình có hướng giữa n tập
dữ liệu đầu vào) và số yếu tố ngưỡng K. Kết quả trả về là một tập bao gồm K
bộ dữ liệu riêng biệt, mỗi bộ có n đối tượng – n-tuples ( bộ dữ liệu chứa n đối
Đề tài: Tính toán xấp xỉ với các truy vấn liên quan đến khoảng cách
trong cơ sở dữ liệu không gian
2008
41
tượng từ n tập dữ liệu thỏa mãn biểu đồ truy vấn). với K giá trị Ddistance nhỏ
nhất (Hàm Ddistance là một hàm bậc nhất về khoảng cách với n đối tượng tạo
nên n-bộ dữ liệu, chiếu theo các cạnh của đồ thị truy vấn ban đầu).
Kết luận
Các truy vấn liên quan đến khoảng cách trong CSDL không gian rất hữu
ích trong nhiều ứng dụng sử dụng dữ liệu không gian cho việc lập quyết định
và nhiều phép toán yêu cầu xừ lý dữ liệu khác. Ví dụ trong trường hợp sử
dụng truy vấn cặp gần nhất – K-CPQ, tập dữ liệu đầu tiên có thể biểu diễn các
ranh giới về văn hóa của Mỹ, trong khi tập dữ liệu thứ hai có thể bao gồm
những địa danh nổi tiếng nhất tại Bắc Mỹ. Kết quả trả về cho loại truy vấn này
sẽ bao gồm K cặp gần nhất các thành phố và vùng văn hóa, nó cung cấp một
trình tự cho các nhà tổ chức để sắp xếp được lịch trình du lịch hợp lý trong
các chuyến tham quan của du khách... Giá trị K ở đây có thể phụ thuộc vào
ngân sách mà nhà tổ chức dự định chi trả cho mục đích sử dụng này.
Trong giới hạn nghiên cứ của đề tài, chúng ta sẽ chú trọng tìm hiểu hai loại
truy vấn là K-NNQ và K-CPQ, qua đó nắm được cách thiết kế các thuật toán
xấp xỉ trong các truy vấn liên quan đến khoảng cách.
Hình dưới minh họa một tập các điểm trong không gian hai chiều được tổ
chức theo cấu trúc R-tree (MBR-based index – Minimum bounding Rectangle-
based index -phương pháp đánh chỉ mục dựa trên khung giới hạn nhỏ nhất),
mục đích là tìm ba vùng lân cận gần nhất (K = 3 Ù 3-NNQ) với điểm truy
vấn q. Dễ thấy kết quả của phép truy vấn 3-NNQ là (p11, p8, p4)
Đề tài: Tính toán xấp xỉ với các truy vấn liên quan đến khoảng cách
trong cơ sở dữ liệu không gian
2008
42
Hình 15: R-Tree và MBRs trong truy vấn
Với ví dụ minh họa dưới đây, ta xét với hai tập điểm 2 chiều khác nhau (tổ
chức theo cấu trúc R-Tree, một tập dữ liệu được thể hiện với MBR không tô
màu, tập còn lại được thể hiện theo cấu trúc MBR chia sẻ). Nếu ta muốn bao
gồm 3 cặp điểm gần nhất (3-CPs) từ hai tập dữ liệu trên thì thu được kết quả
là ((p8, q8), (p11, q10), (p4, q6))
Hình 16: R-Tree và truy vấn trong hai cấu trúc MBR khác nhau
2 R – Tree
Kỹ thuật Phân nhánh-và-giới hạn (branch-and-bound) đang là một kỹ
thuật thành công nhất sử dụng trong việc thiết kế các thuật toán giải quyết các
câu hỏi của ngôn ngữ truy vấn trên cấu trúc dạng cây. Hàm chức năng giới
Đề tài: Tính toán xấp xỉ với các truy vấn liên quan đến khoảng cách
trong cơ sở dữ liệu không gian
2008
43
hạn thấp hơn và giới hạn cao hơn là nền tảng cơ bản của hiệu năng tính toán
trong thuật toán phân nhánh-và-giới hạn. Kỹ thuật giả định cơ bản sử dụng
trong các thuật toán truy vấn khoảng cách là các tập dữ liệu không gian được
đánh chỉ mục bởi cấu trúc của họ R-Tree. R-Tree và các biến thể của nó được
đánh giá là sự lựa chọn hoàn hảo trong việc đánh chỉ mục cho rất nhiều loại
dữ liệu không gian (điểm, đoạn thẳng, hình chữ nhật, đa giác…) và vẫn đang
được tiếp tục phát triển trong các hệ thống thương mại như Informix và
Oracle.
2.1 Khái niệm
R-Tree là các cấu trúc cây dữ liệu sử dụng cho dữ liệu không gian đa
chiều, có tính chất cân bằng độ cao và có thứ tự, được thiết kế cho thiết bị lưu
trữ thứ cấp, và là sự tổng quát hóa của B-tree[3] cho các không gian dữ liệu đa
chiều. Chúng được sử dụng để tổ chức động các đối tượng trong không gian d
chiều được biểu diễn bởi Đường biên d-chiều tối thiểu (Minimum Bounding
d-dimentional hyper-Rectangle – MBR – hoặc khung giới hạn d-chiều nhỏ
nhất). Một MBR được xác định bởi hai điểm trong không gian d chiều thuộc
bề mặt của nó, một điểm là tọa độ d nhỏ nhất và một điểm là tọa độ d lớn nhất
(chúng là các điểm kết thúc của các đường chéo thuộc MBR). Một nút trong
cây R-Tree tương ứng với MBR bao gồm cả các nút con của nó. Các lá của
cây bao gồm nhiều con trỏ trỏ đến các đối tượng của CSDL thay vì các con trỏ
trỏ đến các nút con. Các nút được xử lý giống như các trang nhớ trên đĩa.
Đề tài: Tính toán xấp xỉ với các truy vấn liên quan đến khoảng cách
trong cơ sở dữ liệu không gian
2008
44
Hình 17: Ví dụ về R-Tree
Hình trên mô tả một số hình chữ nhật ở bên trái và cây R-Tree tương ứng
ở phía bên phải. Các đường ba chấm biểu thị khung giới hạn của cây con đã
được phát sinh từ nút bên trong. Với các kiểu cấu trúc cây khác như cấu trúc
chỉ mục, một chỉ mục của cây R-Tree phân chia không gian đa chiều bằng
cách nhóm các đối tượng trong từng loại thứ tự. Một không gian con chứa bởi
một nút thuộc cây R-Tree luôn phải nằm trong không gian con của nút cha của
nó, đó là đặc tính bao đóng MBR. Theo đặc tính này, một MBR của một nút
R-tree (ở bất cứ tầng nào ngoại trừ phía bên trái cây) luôn bao trọn MBR của
nút R-tree con cháu của nó. Đặc điểm này của kỹ thuật giới hạn không gian
giữa các MBR của các nút trong cây R-tree thường được sử dụng trong thuật
toán nối không gian và thuật toán truy vấn liên quan đến khoảng cách. Chú ý
rằng MBR – Đường biên tối thiểu - và thuộc tính đi kèm MBR chính là các
kỹ thuật xấp xỉ cơ bản. Ở tầng bên trái, một khu vực xấp xỉ MBR được bao
phủ bởi các đối tượng nó đi kèm, trong khi tại các tầng bên trong một khu vực
xấp xỉ MBR lại được bao phủ bởi các cây con của các nút tương ứng. Một
thuộc tính quan trọng khác của R-tree là MBR face property (tạm dịch: thuộc
tính bề mặt MBR) – mỗi bề mặt của bất kỳ MBR của mỗi nút R-tree (tại bất kỳ
tầng nào) liền kề ít nhất một điểm của một số đối tượng không gian trong
CSDL không gian. Đặc điểm này được sử dụng trong các thuật toán truy vấn
liên quan đến khoảng cách. Một trong những phiên bản phổ biến và có hiệu
năng cao nhất là R* -tree (Beckmann et al.,1990). R* đã bổ sung hai cải tiến
lớn vào cấu trúc R-Tree ban đầu trong trường hợp xảy ra việc quá tải các nút
trong cây. Đầu tiên, hơn cả việc chỉ tính toán đến các khu vực , thuật toán
phân tách nút trong R*-tree còn tối thiểu hóa chu vi và các phần mở rộng nằm
gối lên nhau của MBRs. Thứ hai, việc tràn nút không được phân tách ngay lập
tức, nhưng các phần chia các mục trong nút được chèn lại từ đầu của cây R*-
tree (việc chèn bắt buộc)
Corall et al (2000) đã đưa ra một sự tổng quát hóa của các chức năng dùng
trong việc tính toán khoảng cách tối thiểu giữa điểm và MBRs
(MINMINDIST).
Đề tài: Tính toán xấp xỉ với các truy vấn liên quan đến khoảng cách
trong cơ sở dữ liệu không gian
2008
45
Giả sử có (A, B) biểu diễn một MBR trong không gian d-chiều, với A =
(a1, a2, …, ad) và B = (b1, b2, …, bd) sao cho ai ≤ bi, với 1 ≤ i ≤ d là các điểm
kết thúc của một trong những đường chéo chính của nó. Ta có hai MBRs là
M1 (A, B) và M2 (C, D), MINMINDIST (M1, M2) được định nghĩa như sau:
Chúng ta có thể áp dụng chức năng về khoảng cách này cho một cặp các
loại phần tử bất kỳ (MBRs hoặc điểm) lưu trữ trong cấu trúc R-tree trong quá
trình tính toán của thuật toán rẽ nhánh và cận nhằm thu nhỏ không gian tìm
kiếm.
Những đặc tính quan trọng nhất của MINMINDIST:
Nếu bất kỳ một hoặc một cặp MBR (dạng chữ nhật) nào suy biến thành
một hoặc một cặp điểm, ta phải thu được khoảng cách nhỏ nhất giữa
điểm đó và MBR hoặc giữa hai điểm này.
Đặc điểm của đường biên cấp thấp hơn: Với mỗi cặp điểm trong không
gian đa chiều (p ; q) đi cùng với một cặp MBR tương ứng (Mp; Mq),
chứng minh được rằng MINMINDIST (Mp; Mq) ≤ MINMINDIST(p,
q).
MINMINDIST là một dãy đơn điệu không giảm với các bậc của R-Tree.
2.2 Cấu trúc của một R-tree
Một cách tổng quát, R-tree là một cấu trúc chỉ mục cho các đối tượng
không gian n-chiều và nó tương tự như B-tree. Cấu trúc chỉ mục này là thực
sự linh động, thao tác chèn và xóa có thể kết hợp với phép tìm kiếm và phải
tái tổ chức theo chu kỳ.
Các nút lá trong cây chứa chỉ mục dẫn đến chúng theo khuôn dạng:
Đề tài: Tính toán xấp xỉ với các truy vấn liên quan đến khoảng cách
trong cơ sở dữ liệu không gian
2008
46
(MBR, object_ptr) - Trong đó object_ptr tham chiếu đến một bộ dữ liệu
trong cơ sở dữ liệu và MBR là một rectangle n-chiều chứa các đối tượng
không gian nó biểu diễn.
Các nút không phải lá có khuôn dạng sau:
(MBR, chirld_ptr) - Với chirld_ptr là địa chỉ một nút khác trong cây và
MBR bao gồm các rectangle trong các nút thấp hơn.
Nói cách khác, không gian MBR chứa mọi đối tượng được đánh chỉ mục
trong các cây con có gốc là đầu vào của MBR.
Cho M là số lượng tối đa đầu vào có thể vừa đủ với một nút và cho tham
số m xác định số lượng tối thiểu đầu vào tại một nút.
Một R-tree thỏa mãn các thuộc tính sau:
Mỗi một nút chứa số lượng nút con trong khoảng m và M ngoại trừ nút
gốc.
Đối với mỗi đầu vào dạng (MBR, object_ptr) tại nút lá, MBR là một
rectangle nhỏ nhất có chứa đối tượng dữ liệu n-chiều được biểu diễn bởi
object_ptr.
Mỗi nút không phải nút lá có số lượng nút con trong khoảng m và M
ngoại trừ nút gốc.
Đối với mỗi đầu vào dạng (MBR, chirld_ptr) tại nút không phải nút lá,
MBR là một rectangle nhỏ nhất có chứa rectangle trong chirld node.
Nút gốc có ít nhất là 2 nút con ngoại trừ đó là nút lá.
Đây là một loại cây cân bằng.
Đề tài: Tính toán xấp xỉ với các truy vấn liên quan đến khoảng cách
trong cơ sở dữ liệu không gian
2008
47
Hình 18: Cây biểu diễn R-Tree
Hình 19: Biểu diễn hai chiều của một R-Tree
2.3 Thuật toán R-Tree
R-tree là một cây cân bằng tương tự như B-tree. Ý tưởng như sau: Các
index sẽ nằm tại các nút lá chứa các điểm dữ liệu, khi đó việc tìm kiếm không
gian sẽ thực hiện trên một số lượng nhỏ các nút. Một cơ sở dữ liệu không gian
bao gồm tập hợp của các bộ đại diện cho các đối tượng trong không gian, mỗi
bộ có một nhận biết duy nhất ,ta cóthể dùng nhận biết này để truy xuất nó. Các
node lá trong R-Tree chứa các đầu vào mẫu tin chỉ mục (index record entries) (I,
tuple-identifier [4]) với tuple- identifier (nhận dạng bộ dữ liệu) tham khảo đến
một bộ trong cơ sở dữ liệu và I là hình chữ nhật n chiều, hình này là khung
giới hạn nhỏ nhất - MBR của các index đối tượng không gian.
Đề tài: Tính toán xấp xỉ với các truy vấn liên quan đến khoảng cách
trong cơ sở dữ liệu không gian
2008
48
I = (I0, I1,… In).
n - số chiều không gian
Ii - một khoảng biên khép kín [a,b], mô tả phạm vi của đối tượng cùng với
chiều i.
Một node không phải là node lá chứa các entry như sau (I, child-pointer),
child-point là địa chỉ của node thấp hơn trong R-Tree và I bao phủ tất cả các
hình chữ nhật trong các entry của các node thấp hơn.
Hình 20: Cấu trúc một R-Tree
Đề tài: Tính toán xấp xỉ với các truy vấn liên quan đến khoảng cách
trong cơ sở dữ liệu không gian
2008
49
Hình 21: Các quan hệ có thể có giữa các MBR (chứa trong, chồng lấn…)
2.3.1 Tìm kiếm trong cấu trúc dữ liệu tổ chức dưới dạng R-Tree
Tìm kiếm
Thuật toán tìm kiếm duyệt cây từ gốc (root) đi xuống theo cách tương tự
như B-tree. Tuy nhiên khi thăm một node sẽ có nhiều hơn một cây con dưới
node đó cần được tìm kiếm, vì lý do đó thuật toán không thể bảo đảm thực
hiện tốt trong các trường hợp xấu nhất. Tuy nhiên với nhiều kiểu của dữ liệu
thuật toán cập nhật sẽ duy trì hình dạng của cây cho phép thuật toán tìm kiếm
loại đi các vùng không liên quan của không gian được đánh chỉ mục, và kiểm
tra duy nhất dữ liệu gần vùng tìm kiếm. Chúng ta sẽ biểu diễn phần hình chữ
nhật của một chỉ mục E là EI, và phần nhận dạng dữ liệu hay child-pointer là
Ep.
Thuật toán tìm kiếm:
Cho R-tree có root là T, tìm tất cả các mẫu tin chỉ mục mà có các hình chữ
nhật chồng lên một hình chữ nhật cần tìm S.
S1 [Tìm kiếm trên cây con] Nếu T là một node lá, kiểm tra mỗi mục E
để xác định xem Ei có trùng lên S hay không. Với tất cả các mục trùng
nhau, thực hiện tìm kiếm trên cây mà node root của nó được chỉ bởi
Ep.
S2 [Tìm kiếm trên node lá] NếuT là một lá, kiểm tra tất cả các mục E
để xác định EI có trùng lên S hay không. Nếu trùng E là một record đủ
tiêu chuấn.
2.3.1.1 Chèn (Insertion)
Việc thêm các index cho các bộ dữ liệu mới giống như thêm trong B-tree
là các index mới được thêm vào cho các lá, các node chứa quá số lượng sẽ bị
Đề tài: Tính toán xấp xỉ với các truy vấn liên quan đến khoảng cách
trong cơ sở dữ liệu không gian
2008
50
tách ra và quá trình tách này sẽ lan truyền lên phía trên cây.
Thuật toán Chèn (Insert):
Thêm một mục nhập chỉmục mới E vào trong R-tree
I1: [Tìm vị trí cho dữ liệu mới] dùng thuật toán chọn lá (ChooseLeaf)
để chọn một node lá L để thêm E.
I2: [Thêm dữ liệu cho node lá] nếu L có chỗ cho một entry khác, thêm
E nếu không thì dùng thuật toán chia node (SplitNode) đểcó được L và
LL chứa E và tất cả các mục nhập của L.
I3: [Lan truyền các thay đổi lên phía trên] Dùng thuật toán điều chỉnh
cây (AdjustTree) trên L, đồng thời bỏ qua LL nếu việc phân chia đã
được thực hiện.
I4: [Tăng trưởng cây] Nếu việc phân chia node lan truyền làm cho root
phân chia, tạo ra một root mới, mà con của root mới này là 2 node kết
quả.
2.3.1.2 Thuật toán Chọn lá (ChooseLeaf):
Chọn một node lá mà node lá này đặt một chỉ mục mới E.
CL1: [Khởi tạo] cho tập N là node root.
CL2: [Kiểm tra lá] Nếu N là một lá, trả về N.
CL3: [Chọn cây con] Nếu N không phải là một lá, cho F là entry trong
N mà các hình chữ nhật của nó FI cần mở rộng lá để tính EI. Giải quyết
các hạn chế bằng cách chọn entry với hình chữ nhật có diện tích nhỏ
nhất.
CL4: [Đi xuống cho đến khi một node lá được tìm thấy] tập N là node
con được chỉ đến bởi Fp và lặp lại từ CL2.
2.3.1.3 Thuật toán điều chỉnh cây (AdjustTree):
Đi lên từ một node lá L đến root, điều chỉnh hình chữ nhật bao phủ và lan
truyền phân chia các node chia khi cần thiết.
Đề tài: Tính toán xấp xỉ với các truy vấn liên quan đến khoảng cách
trong cơ sở dữ liệu không gian
2008
51
AT1: [Khởi tạo] cho tập N=L, nếu L đã được phân chia trước đó, tập NN
là kết quả của node thứ hai .
AT2: [Kiểm tra nếu thực hiện] Nếu N là root, ngưng.
AT3: [Điều chỉnh vùng phủ hình chữ nhật trong mục nhập cha] Cho P là
node cha của N và cho EN là các entry của N trong P. Điều chỉnh EN I để
cho nó bao sát xung quanh tất cả các hình chữ nhật entry trong N.
AT4: [Lan truyền node bị tách lên phía trên] Nếu N có NN (partner) kết
quả từ một phân chia mới nhất, tạo một entry mới ENN P trỏ đến NN và
ENN I bao quanh tất cả các hình chữ nhật trong NN, thêm ENN vào P nếu
có chỗ. Nếu không dùng SplitNode đểtạo ra P và PP chứa ENN và tất cả
các entry của P.
AT5: [Di chuyển đến mức kết tiếp]. Cho tập N=P và tập NN=PP nếu có
sự phân chia xảy ra. Lặp lại bước AT2.
2.3.2 Xóa (Deletion)
Thuật toán xóa
Thay đổi vị trí index của record E từ R-tree
D1: [Tìm node chứa record] thực hiện thuật toán FindLeaf để xác định vị
trí node lá L chứa E. Ngưng nếu record được tìm thấy.
D2: [Xóa record] Xóa E từ L.
D3: [Lan truyền thay đổi] dùng thuật toán CondenseTree bỏ qua L.
D4: [Rút ngắn cây] Nếu root có duy nhất một con sau khi cây đã được
điều chỉnh, tạo con cho root mới.
2.3.2.1 Thuật toán tìm lá (FindLeaf):
Cho R-tree có root là T, tìm node lá chứa đầu vài chỉ mục E.
FL1: [Tìm cây con] nếu T không phải là node lá, kiểm tra mỗi entry F
trong T để xác định, nếu FI chồng lấp với EI. Với mỗi entry thực hiện
thuật toán FindLeaf trên cây mà root của nó được trỏ đến bởi Fp cho đến
Đề tài: Tính toán xấp xỉ với các truy vấn liên quan đến khoảng cách
trong cơ sở dữ liệu không gian
2008
52
khi E được tìm thấy hay tất cả các entry đã được kiểm tra.
FL2: [Tìm node lá cho mục cho record] Nếu T là lá, kiểm tra mỗi entry
để xem nếu nó phù hợp với E, nếu E được tìm thấy trả về T.
2.3.2.2 Thuật toán Gom cây (CondenseTree):
Cho một node lá L, mộtentry được xóa từ node lá này, loại ra node này nếu
nó có quá ít các chỉ mục và xây dựng lại các entry của nó. Lan truyền việc loại
node này lên trên khi cần thiết. Điều chỉnh các hình chữ nhậtbao phủ trên
đường dẫn đến root, làm cho các hình chữ nhật này nhỏ hơn nếu có thể.
CT1: [khởi tạo] cho tập N=L, tập Q là tập của các node bịloạibỏ, Q là tập
rổng.
CT2: [Tìm entry cha] nếu N và root, nhảy tới bước CT6. Nếu không thì
cho P là cha của N, và cho EN là các entry của N trong P.
CT3: [Loạinode không đủ(Eliminate under-full node)] Nếu N có ít
hơn m entry, xóa EN khỏi P và thêm N vào tập Q.
CT4: [Điều chỉnh hình chữ nhật bao phủ] Nếu N không bị loại bỏ, điều
chỉnh EN I để chứa sát lại các entry trong N.
CT5: [Di chuyển lên trên mộtmức trong cây] Cho tập N=P và lặp lại từ
CT2.
CT6: [Chèn lại các entry bị mồi côi (Re-insert orphaned entries)]
Chèn lại vào tất cà các entry của các node trong tập Q. Các entry từ các
node lá bị loại bỏ được chèn lại vào trong các lá của cây như đã được mô tả
trong thuật toán Insert, nhưng các entry từ các node có mức cao hơn phải được
đặt cao hơn trong cây, vì vậy các lá của các cây con phụ thuộc vào chúng sẽ
nằm trên cùng mức như các lá của cây mẹ.
2.3.3 Cập nhật
Nếu một bộ dữ liệu được cập nhật để cho hình chữ nhật bao phủ nó bị thay
đổi, bản ghi chỉ mục của nó phải bị xóa, cập nhật và chèn lại, vì vậy nó sẽ phải
Đề tài: Tính toán xấp xỉ với các truy vấn liên quan đến khoảng cách
trong cơ sở dữ liệu không gian
2008
53
tìm cách để đặt đúng vị trí trong cây.
Một cách tìm kiếm khác so với cách được mô tả ở trên có thể hữu ích hơn,
ví dụ để tìm tất cả các đối tượng dữ liệu được chứa hoàn toàn trong một vùng
tìm kiếm, hoặc tất cả các đối tượng chứa vùng tìm kiếm.
Các bước thực hiện có thể được thực hiện bằng các biến đổi dễ hiểu trên
thuật toán đã cho. Tìm một entry cụ thể mà nhận dạng của nó đã được biết
trước cần đến thuật toán xóa và được thực hiện bằng thuật toán FindLeaf. Các
biến đổi của phạm vi xóa, trong phạm vi này, tất cả các đối tượng dữliệu trên
diện tích liên quan được xóa đi, cũng được R-tree cung cấp khá tốt.
2.3.3.1 Thuật toán tách node (Node Splitting)
Để thêm một một entry mới để một node đầy chứa M các chỉ mục, cần
phải phân chia tập hợp của M+1 các entry thành hai node. Sự phân chia nên
được thực hiện theo cách làm cho nó không chắc có thể thực hiện được việc
phân chia cả hai node mới sẽ cần được kiểm tra trên việc tìm kiếm thứ tự. Khi
đó sự quyết định thăm một node phụ thuộc vào hình chữ nhật bao phủ nó có
chồng lên diện tích tìm kiếm. Tổng số diện tích của hai hình chữ nhật bao phủ
sau khi tách có thể được giảm đến mức tối thiểu. Hình dưới đây minh họa điều
này. Diện tích của các hình chữ nhật trong trường hợp “bad split”lớn hơn
nhiều so với trường hợp “good split”.
Hình 22: Trường hợp phân chia node
Cùng tiêu chuẩn đã được dùng trong thủ tục ChooseLeaf để quyết định
xem nơi nào có thể chèn một chỉ mục mới vào tại mỗi mức trong cây, cây con
được chọn là một cây mà hình chữ nhật bao phủ của nó phải được mở rộng ít
Good Bad split
Đề tài: Tính toán xấp xỉ với các truy vấn liên quan đến khoảng cách
trong cơ sở dữ liệu không gian
2008
54
nhất khi chèn chỉ mục mới vào.
Chúng ta quay lại thuật toán phân chia tập M+1 entry thành hai nhóm cho mỗi
node mới.
Hình 23: Phân chia entry thành các nhóm node mới
Thuật toán A Quadractic-Cost
Thuật toán này cố gắng tìm một vùng được tách ra có diện tích nhỏ, nhưng
không bảo đảm là có thể tìm được một vùng có thể có diện tích nhỏ nhất. Chi
phí là bậc hai theo M và tuyến tính theo số lượng của các chiều.
Thuật toán chọn hai trong M+1 entry làm phần tử đầu tiên của hai nhóm
mới bằng cách chọn hai entry này, hai entry này có thể làm lãng phí diện tích
lớn nhất nếu cả hai được đặt trong cùng một nhóm. Như vậy diện tích hình
chữ nhật bao phủ cả hai entry, trừ đi diện tích của chính các entry, sẽ là lớn
nhất. Các entry còn lại được gán vào các nhóm cùng lúc. Tại mỗi bước, việc
mở rộng diện tích đòi hỏi phải thêm mỗi entry còn lạicho mỗi nhóm được tính
toán, và entry được gán thì sẽ xuất hiện một sự khác biệt lớn nhất giữa hai
nhóm.
Thuật toán Quadratic Split
Phân chia một tập M+1 các chỉ mục thành hai nhóm.
QS1: [chọn entry đầu tiên cho mỗi nhóm] Áp dụng thuật toán
PickSeeds để chọn hai entry làm các phần tử đầu tiên của các nhóm.
Gán mỗi entry cho một nhóm.
QS2: [Kiểm tra nếu đã thực hiện] Nếu tất cả các entry đã được gán,
ngưng. Nếu một nhóm có một vài entry mà tất cả những entry còn lại
Đề tài: Tính toán xấp xỉ với các truy vấn liên quan đến khoảng cách
trong cơ sở dữ liệu không gian
2008
55
phải được gán vào nó theo thứ tự để cho nhóm này có m nhỏ nhất, gán
các entry và ngưng.
QS3: [Chọn entry để gán] Thực hiện thuật toán PickNext để chọn entry
kế tiếp để gán. Thêm entry này vào nhóm mà hình chử nhật bao phủcủa
nó sẽ phải mở rộng ít nhất để chứa entry này. Giải quyết các hạn chế
bằng cách thêm entry vào nhóm có diện tích nhỏ nhất, khi đó nhóm này
có các entry ít hơn nhóm khác. Lặp lại QS2.
Thuật toán PickSeeds
Chọn hai entry làm phần tử đầu tiên của các nhóm.
PS1: [Tính toán sự thiếu hiệu quảcủa việc nhóm các entry với nhau]
Cho mỗi cặp các entry E1 và E2 , tạo một hình chữ nhật J bao gồm E1I
và E2I Tính d = area(J) – area (E1I) - area(E2I).
PS2: [Chọn cặp gây lãng phí nhất] Chọn cặp có d lớn nhất.
Thuật toán PickNext
Chọn một mục còn lại để phân loại vào một nhóm.
PN1: [Xác định giá trị của việc đặt mỗi entry trong mỗi nhóm] Cho
mỗi entry E chưa được phân nhóm, tính d1 = diện tích được yêu cầu
tăng trong hình chữ nhật bao phủ của nhóm 1 để bao gồm EI, tính toán
d2 tương tự như trên cho nhóm 2.
PN2: [Tìm entry thích hợp nhất cho một nhóm] Chọn bất kỳ entry nào
có sự khác biệt lớn nhất giữa d1 và d2.
Thuật toán LinearPickSeeds
Chọn hai entry làm các phần tử đầu tiên của các nhóm.
LPS1: [Tìm các hình chữ nhật xa nhất theo tất cả các chiều] Theo mỗi
chiều, tìm các entry mà hình chữ nhật của nó có cạnh dưới cao nhất và
có cạnh trên thấp nhất. Ghi lại việc phân chia.
LPS2: [Điều chỉnh hình dạng của cụm hình chữ nhật] Chuẩn hóa việc
phân chia bằng cách chia chiều rộng của toàn bộ các tập theo chiều
Đề tài: Tính toán xấp xỉ với các truy vấn liên quan đến khoảng cách
trong cơ sở dữ liệu không gian
2008
56
tương ứng.
LPS3: [Chọn cặp cách xa nhất] Chọn cặp có sự phân chia được chuẩn
hóa lớn nhất theo bất kỳ chiều nào.
Trên đây đề tài đã trình bày thuật toán R-tree, chúng ta có thể áp dụng
phương pháp này để tạo index cho cụm. Ta xem các cụm như là các không
gian mà chúng ta cần truy xuất, các vùng dữ liệu của cụm sẽ được phân chia
để nằm trong các hình chữ nhật nhỏ (không gian 2 chiều), ta sẽ có các hình
chữ nhật lớn hơn bao ngoài các hình chữ nhật nhỏ chứa dữ liệu này áp dụng
R-tree để tạo cây, khi đó nếu cần truy xuất một vùng dữ liệu nào đó trong
cụm ta sẽ dùng thuật toán tìm để xác định địa chỉ vùng dữ liệu này đang nằm
ở lá nào trong cây hay nói cách khác là lá nào đang chứa thông tin về vị trí của
vùng dữ liệu mà ta đang cần, khi biết các thông tin vềvịtrí trong không gian
của vùng dữ liệu đang tìm ta sẽ truy xuất đến rất nhanh cụm dữ liệu này. Như
vậy từ nếu tạo được index cho cụm thì việc tìm kiếm tương tự sẽ được
giảiquyết nhanh chóng. Ta chỉ cần tìm xem vị trí không gian của đối tượng
cần tìm tương tự nằm trong vùng địa chỉ không gian tại lá nào, truy xuất tất cả
các dữ liệu nằm trong vùng không gian đó ra để xét tương tự. Nếu không có
index cụm ta sẽ phải vét cạn các điểm trong cụm mới xác định được vị các vị
trí không gian cần tìm. Index cụm cũng cho phép xây dựng thuật toán tăng
trưởng cho gom cụm, từ index ta có thể xác định rất nhanh các vùng dữ liệu bị
ảnh hưởng khi thêm hay xóa dữ liệu mà không phải xác định lại tất cả các
cụm từ đầu.
Tuy nhiên R-tree vẩn còn hạn chế về hiệu xuất và nó chưa tối ưu các vùng
không gian của hình chữ nhật thư mục như: Diện tích bao phủ, vùng chồng
lấn, lề. Thuật toán R*-tree đã đưa ra các phương pháp cải tiến các khuyết
điểm này của R-tree.
3 Các kỹ thuật tính toán xấp xỉ khoảng cách
3.1 Thu nhỏ không gian tìm kiếm
Thu nhỏ không gian tìm kiếm - Search space reduction - bằng những kỹ thuật
xấp xỉ không gian tìm kiếm tiêu biểu nhất
Đề tài: Tính toán xấp xỉ với các truy vấn liên quan đến khoảng cách
trong cơ sở dữ liệu không gian
2008
57
Phương pháp xấp xỉ ε
Cho một số thực dương e (ε ≥ 0) xác định sai số lớn nhất về khoảng cách
có thể chấp nhận được, kết quả trả về của một truy vấn liên quan đến khoảng
cách – DBQ (như K-NNQ hoặc K-CPQ) là đại lượng xấp xỉ (ε + 1) nếu
khoảng cách của yếu tố i-th nằm trong khoảng sai số e (hoặc thừa số (ε + 1))
về khoảng cách của yếu tố đó (điểm cho K-NNQ hoặc cặp điểm đối với K-
CPQ) của kết quả chính xác trong truy vấn tương tự (1 ≤ i ≤ K). Ví dụ: Đại
lượng xấp xỉ (ε + 1) trả lời cho truy vấn theo K-CPQ là một chuỗi có thứ tự
(kết quả được sắp xếp theo chiều tăng dần của khoảng cách) của K cặp điểm
riêng biệt ((p1’,q1’), (p2’,q2’), …, (pk’,qk’)) € (P * Q)K với (pi’,qi’) là cặp điểm
gần nhất với đại lượng xấp xỉ (ε + 1) trong tập các cặp điểm gần nhất (pi, qi)
trong tập kết quả chính xác ((p1, q1), (p2, q2), …, (pk, qk)) € (P * Q)K với giá trị
(dist(pi’,qi’) – dist (pi, qi)))/ dist (pi, qi) ≤ ε, 1 ≤ i ≤ K.
Khi phương pháp lược bỏ theo kinh nghiệm được áp dụng trong thuật toán rẽ
nhánh và cận, một thành phần X ( cặp MBR hoặc điểm) sẽ bị loại bỏ nếu:
MINMINDIST (X) > z/ (ε + 1)
Ù (MINMINDIST (X) + MINMINDIST (X) * ε) > z
Ù MINMINDIST (X) > z – (MINMINDIST (X) * ε)
Việc giảm giá trị của z (giá trị khoảng cách của k-th cặp điểm gần nhất có
thể được truy xuất nhanh chóng trong quá trình xử lý của thuật toán) phụ
thuộc vào giá trị của MINMINDIST (X) nhân với ε (một số thực dương bất kỳ
và độc lập). Chú ý rằng với ε = 0, thuật toán xấp xỉ hoạt động như một phiên
bản thuật toán tính toán chính xác và trả về kết quả là những đáp án chính xác.
Phương pháp dung sai α (Corall et al, 2000a)
Khi phương pháp lược bớt theo kinh nghiệm được áp dụng, thành phần X
sẽ được loại bỏ nếu MINMINDIST (X) + α(z) > z, với z (z ≥ 0) là giá trị
khoảng cách hiện thời đang được lược bớt (ví dụ, khoảng cách của K-th vùng
lân cận gần nhất đã được truy xuất với K-NNQ) và α(z) là một hàm dung sai
cho phép. Để áp dụng hiệu quả phương pháp xấp xỉ này, hàm α(z) phải thỏa
Đề tài: Tính toán xấp xỉ với các truy vấn liên quan đến khoảng cách
trong cơ sở dữ liệu không gian
2008
58
mãn điều kiện α(z) ≥ 0 với mọi z và z1 ≤ z2 chỉ ra rằng z1 - α(z1) ≤ z2 - α(z2).
Dạng cơ bản của α(z) là : α(z) = β (β là một hằng số không âm) và α(z) = z * γ
(γ là một hằng số với 0 ≤ γ ≤ 1). Trong trường hợp thứ hai, MINMINDIST(X)
+ (z * γ) > z Ù MINMINDIST(X) > z – (z*γ) Ù MINMINDIST(X) > z * (1-
γ). Trong trường hợp này, việc tăng giá trị của z phụ thuộc vào γ (số thực
dương nằm trong khoảng [0. 1]), với γ = 0 ta cũng có thuật toán tính toán
chính xác.
Phương pháp N-consider (Corall et al, 2000a)
Trong trường hợp này, thuật toán rẽ nhánh và cận chỉ được sử dụng như
một phần tử đã được xác định, hoặc tỷ lệ phần trăm N (0 ≤ N ≤ 1) của tổng số
lượng các thành phần được khảo sát bởi thuật toán tính toán chính xác tương
ứng, khi xem xét đến thành phần bên trong N1 hoặc nút lá NL trong K-NNQ,
hoặc một cặp điểm N1 hoặc nút lá NL với K-CPQ. Với kỹ thuật xấp xỉ này ta
cố gắng giảm thiểu được việc mất thời gian trong quá trình tính toán khoảng
cách và làm giảm hiệu suất của chương trình một cách đáng kể. Thuật toán là
tính toán chính xác trong trường hợp N = 1 (N1 = NL = 1)
Phương pháp tính toán theo thời gian
Phương pháp tính toán theo thời gian - Time-consider method: Với kỹ
thuật này, thuật toán sẽ đưa ra một kết quả tốt nhât có thể (chính xác hoặc xấp
xỉ) nằm trong khoảng giới hạn của thời gian xử lý truy vấn cho phép (tổng
thời gian), và báo cáo kết quả tìm được một cách nhanh chóng. Ta sẽ có thuật
toán tính toán chính xác khi tổng thời gian này là không giới hạn (vô hạn).
Khi khảo sát kỹ thuật xấp xỉ này, với thời gian trả lời là một tham số quan
trọng được điều khiển trong các truy vấn liên quan đến khoảng cách. Chú ý
rằng phương pháp này không phải là phương pháp thu nhỏ không gian tìm
kiếm tự nhiên nhưng nó sử dụng việc giảm bớt không gian một cách hiệu quả:
Khi việc tính toán chưa hoàn tất, không gian cũng sẽ không được tìm kiếm
triệt để.
Các hàm khoảng cách dựa trên MBR trên đây cùng kỹ thuật lược bớt theo
kinh nghiệm và các kỹ thuật xấp xỉ (tính toán gần đúng) dựa trên việc thu nhỏ
Đề tài: Tính toán xấp xỉ với các truy vấn liên quan đến khoảng cách
trong cơ sở dữ liệu không gian
2008
59
không gian tìm kiếm, có thể được “nhúng” vào thuật toán rẽ nhánh và cận gần
đúng (approximate branch-and-bound algorithms) trong các truy vấn liên quan
đến khoảng cách và ứng dụng vào việc đánh chỉ mục trong các họ R-tree và
đáp ứng hiệu quả bài toán đặt ra bằng các kết quả gần đúng một cách nhanh
chóng. Với mục đích thiết kế thuật tóan rẽ nhánh và cận gần đúng ứng dụng
trong xử lý các truy vấn dạng K-NNQ và K-CPQ theo cách thức “non-
incremental” - không gia số (K phải được hiểu theo nghĩa nâng cao), do vậy
việc xây dựng một cấu trúc dữ liệu mở rộng để lưu trữ K lân cận gần nhất
hoặc các cặp gần nhất theo thứ tự đã định sẵn là cần thiết. Cấu trúc dữ liệu này
được gọi là K-heap – được tổ chức như một heap nhị phân lớn nhất. Nó có thể
áp dụng được cả bốn kỹ thuật xấp xỉ vào các thuật tóan rẽ nhánh và cận có gia
số và không có gia số (lặp và đệ quy) trong các truy vấn liên quan đến khoảng
cách (bao gồm K-NNQ và K-CPQ) sử dụng cấu trúc dạng cây thuộc họ R-
tree, mặc dù ta sẽ chỉ sử dụng chúng trong các kỹ thuật không gia số. P.156
3.2 Kỹ thuật tìm kiếm theo kinh nghiệm
Dưới đây là một số kỹ thuật tìm kiếm dựa trên kinh nghiệm - Heuristic
space techniques - (Tìm kiếm khu vực, simulated annealing – tạm dịch: mô
phỏng sự xử lý nhiệt và các thuật toán phát sinh), các phương pháp này có thể
kết hợp với kỹ thuật đánh chỉ mục không gian dạng cây (R-Tree) nhằm đạt
được kết quả tốt nhất, nhưng không cần thiết phải tối ưu hóa, đây là một giải
pháp tăng hiệu năng trong việc xử lý các truy vấn liên quan đến khoảng cách,
và đưa ra câu trả lời truy vấn một cách nhanh chóng.
3.2.1 Tìm kiếm khu vực
Tìm kiếm khu vực – Local search - hoặc phương pháp gia tăng lặp bắt đầu
với một giá trị thỏa mãn ngẫu nhiên gọi là Seed, và sau đó nó cố gắng nắm bắt
được một tối ưu mang tính khu vực bằng quá trình thực thi kỹ thuật di chuyển
leo đồi (là phương pháp khảo sát các lân cận thỏa mãn ở mức cao hơn). Khi
tìm kiếm được một câu trả lời tối ưu trong khu vực (trong trường hợp không
thể thực hiện tiếp việc tìm kiếm lân cận ở mức cao hơn), chương trình khởi
tạo lại quá trình tìm kiếm trên tại một Seed khác cho đến khi đạt đến giới hạn
thời gian xử lý cho phép của hệ thống. Thuật toán dựa trên khái niệm phổ biến
Đề tài: Tính toán xấp xỉ với các truy vấn liên quan đến khoảng cách
trong cơ sở dữ liệu không gian
2008
60
này đang rất thành công trong việc giải quyết một số vấn đề phức tạp hiện
nay.
Trong ngữ cảnh của kỹ thuật tính toán gần đúng, tìm kiếm khu vực được
áp dụng với mục đích cải thiện chất lượng của các giải pháp tìm kiếm xấp xỉ
ban đầu đang được sử dụng trong nhiều ứng dụng. Quá trình sắp xếp tổng quát
một cách có hệ thống nhằm lặp lại việc tìm kiếm một đáp án chính xác hơn
trong vùng lân cận N(x) với x là nghiệm gần đúng được đưa ra. Có rất nhiều
giải thuật có thể được thiết kế dựa trên việc vùng lân cận N(x) được định
nghĩa như thế nào, và N(x) có thể được định nghĩa một cách rõ ràng hoặc toàn
diện (có nghĩa tương ứng với một thuật toán để tính toán các thành phần trong
N(x)). Lược đồ tổng quát được mô tả như những bước dưới đây:
Input: Một nghiệm gần đúng - x
Output: Một nghiệm gần đúng x với độ chính xác cao hơn giả thiết.
LS1: Giả thiết có x. Kiểm tra sự tồn tại một giá trị nghiệm tốt hơn của
hàm tính toán trong N(x)
LS2: Nếu có, thiết lập x là giá trị biểu diễn cho nghiệm chính xác hơn ở
trên và quay trở lại bước LS1. Ngược lại, chương trình sẽ trả về giá trị
x là nghiệm gần đúng tối ưu và dừng.
3.2.2 Simulated Annealing
Simulated Annealing là phương pháp tìm kiếm theo kinh nghiệm dựa trên
ý tưởng từ nghành vật lý học (xuất phát từ sự tương tự với quá trình xử lý
nhiệt các vật liệu thủy tinh). Ý tưởng thiết yếu này không phải là ý tưởng
nhằm giới hạn thuật toán tìm kiếm để chuyển đến không gian tìm kiếm, điều
này có thể làm giảm hàm giá trị (trong khi với hàm giá trị, ta cần cố gắng tối
thiểu hóa), nhưng việc cho phép dịch chuyển một phần (các thành phần có
thể) có thể làm tăng việc phải tính toán các hàm giá trị. Về cơ bản, nó cho
phép thuật toán tìm kiếm bỏ qua các tối thiểu k
Các file đính kèm theo tài liệu này:
- TrangHTH_DH.pdf