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
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Đ
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
95 trang |
Chia sẻ: lvcdongnoi | Lượt xem: 3720 | Lượt tải: 1
Bạn đang xem trước 20 trang tài liệu 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, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
nghiên cứu này trong thực tiễn. Thành tựu của nó mang lại
những kết quả to lớn không chỉ về mặt lý luận đơn thuần trong cuộc cách
mạng hóa về bản đồ và bài toán tìm kiếm thông tin địa lý kỹ thuật số. Trong
dòng chảy của công nghệ, các nhà khoa học, kỹ sư đang không ngừng cải tiến
các kỹ thuật, các thuật toán cũng như tìm kiếm giảp pháp tích hợp tốt nhất cho
các ứng dụng GIS, tất cả đều có chung một mục tiêu đó là hướng đến một giải
pháp hoàn thiện nhất, có thể tối thiểu hóa thấp nhất thời gian đáp ứng của hệ
thống đối với một yêu cầu xử lý truy vấn cũng như giới hạn tối đa số lượng
các phép tính phức tạp cần phải thực hiện, trong khi vẫn đảm bảo đưa ra cho
khách hàng những kết quả truy xuất tốt nhất, chính xác nhất.
Dưới đây là khái quát một số trong rất nhiều các nghiên cứu và ứng dụng
có liên quan trong lĩnh vực này
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.
Trong những năm gần đây, bắt đầu từ 2003 trong Papadias(2003) một kiến
trúc hứa hẹn nhiều tiềm năng đã và đang được nghiên cứu và không ngừng
được ứng dụng trong các sản phẩm liên quan đến hệ thống thông tin địa lý -
GIS cũng như hệ quản trị cơ sở dữ liệu không gian. Đây là cấu trúc được xây
dựng dựa trên ý tưởng tích hợp mạng không gian với không gian khoảng cách
trong đại số Euclidean, sao chép lại các ràng buộc thực thể trong thực tế Giải
pháp được đề xuất này đặt ra yêu cầu cấp thiết phải xây dựng và phát triển
một hệ thống framework chuyên biệt để xử lý tất cả các truy vấn cơ bản nhất
trong CSDL không gian. Và những kỹ thuật xấp xỉ khoảng cách đã được trình
bày trên đây hoàn toàn có thể được áp dụng trong kiến trúc framework này
với mục đích hỗ trợ chương trình xử lý đưa ra các truy xuất CSDL nhanh
chóng và hiệu quả so với các phương pháp tìm kiếm và truy vấn thông
thườ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
65
Có thể kể đến một số nhà cung cấp các hệ thống framework và các phần
mềm tích hợp như một giải pháp toàn diện cho việc xây dựng, ứng dụng và
quản lý hệ thông tin địa lý như ESRI (Viện nghiên cứu các hệ thống môi
trường) thành lập vào năm 1969, ESRI có trụ sở tại Redlands, California.
Website: www.esri.com
ESRI công bố sản phẩm phần mềm ArcGIS 9 vào tháng 5 năm 2004,
những phiên bản tiếp theo liên quan đến phần mềm tích hợp này được thiết kế
nhằm đưa ra bộ sản phẩm phần mềm GIS hoàn thiện. Hai sản phẩm đã được
công bố chính là ArcGIS Engine, bộ công cụ phần mềm có thể được dùng để
nhúng các hàm GIS vào các ứng dụng có sẵn, và ArcGIS Server, ứng dụng kỹ
thuật về không gian địa lý trong hệ thống thông tin quy mô lớn thông qua việc
quản lý và ứng dụng dữ liệu tập trung kết hợp với các chuẩn công nghệ thông
tin
Ngày nay, các sản phẩm GIS của ESRI đang trên đà phát triển, việc đổi
mới trong công nghệ cho phép các hoạt động GIS tinh vi hơn thông qua hỗ trợ
số hóa cá nhân (PDA) trên desktop cho các doanh nghiệp. Tính năng mới của
phần mềm giúp doanh nghiệp xử lý mạng, xuất dữ liệu điện tử, công cụ dễ sử
dụng và đáp ứng được ưu điểm của công nghệ GIS.
Trong đó ArcGIS framework được đánh giá là giải pháp toàn diện cho
thông tin địa lý bao gồm một tập hợp các sản phẩm phần mềm GIS cung cấp
cho người dùng hệ thống các sản phẩm cho phép xây dựng các ứng dụng tùy
biến, destop, server, ứng dụng web…: DestopGIS, ServerGIS, DeveloperGIS,
MobileGIS, Dịch vụ GIS Web.
Đề 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
66
Hình 24: Minh họa cấu trúc sản phẩm ArcGIS của ESRI
Phiên bản ArcGIS mới nhất là ArcGIS 9.3
Chi tiết tại website chính thức: www.esri.com/software/arcgis/index.html
Ngày 28 tháng 4 năm 2008 tại trụ sở ở Redlands, California — ESRI tuyên bố
khai trương ESRI Vietnam song hành với ESRI Thái Lan trong khu vực. Việc
mở ESRI Vietnam cho phép ESRI phục vụ tốt hơn người dùng trong khu vực
và cũng thừa nhận sự pháp triển và trưởng thành trong thị trường GIS. Phần
mềm ESRI đã được bán trong khu vực nhiều năm qua, và việc thêm văn
phòng ESRI Vietnam sẽ cung cấp một sự hỗ trợ tốt hơn cho cả những ngừơi
dùng và hy vọng mở rộng thị trường giáo dục trong quốc gia để gia tăng đào
tạo về GIS thông qua việc liên doanh với các trường và đại học nội địa.
Sự xuất hiện của ESRI VietNam nhằm hỗ trợ tốt hơn khách hàng khu vực, đặc
biệt, tại Việt Nam, các dòng sản phẩm quen thuộc của ESRI được sử dụng
chính thức nhiều hơn một thập kỷ trước.
Theo www.mathgis.com
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)
Ứng dụng rộng rãi và thành công nhất trong ngành khoa học công nghệ
nghiên cứu và kiến thiết các hệ quản trị cơ sở dữ liệu không gian, các 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
67
pháp quản lý, mô hình hóa, xử lý truy vấn và hiển thị dữ liệu địa lý chính là
GIS – Hệ thống thông tin địa lý. Thực tế không thể phủ nhận rằng ngày nay
các ứng dụng liên quan đến GIS cũng như CSDL không gian đang dần trở nên
phổ biến và đi vào mọi mặt của cuộc sống công nghệ hiện đại. Không chỉ
dừng ở khái niệm xây dựng các bản đồ địa lý, GIS còn là công cụ đắc lực cho
nhà quản lý hoạch định được chiến lược phát triển cơ sở hạ tầng cho một xã,
một huyện, một thành phố hay một quốc gia. Đi cùng với sự phát triển nhanh
chóng đó là yêu cầu lưu trữ, xử lý một khối lượng dữ liệu ngày càng lớn và
phức tạp. Để xử lý một khối lượng dữ liệu khổng lồ trong khoảng thời gian
cho phép của hệ thống không phải là điều đơn giản, do vậy trong ngành kinh
doanh công nghệ hiện đại, hệ thống có tốc độ xử lý càng nhanh, hiệu năng
càng cao thì càng đắt giá. Trong cuộc cạnh tranh khốc liệt giữa các hãng cung
cấp giải pháp trong ứng dụng GIS và hệ quản trị CSDL, việc tìm kiếm các
thuật toán tối ưu luôn là ưu tiên được đặt lên hàng đầu. Với GIS - chức năng
quan trọng nhất tạo nên sức mạnh thực sự của GIS so với các phương pháp
khác chính là khả năng phân tích và tìm kiếm dữ liệu không gian, trong đó số
lượng truy vấn tìm kiếm liên quan đến khoảng cách lại chiếm đa số. Do vậy rõ
ràng các thuật toán xấp xỉ khoảng cách đóng vai trò quan trọng trong thiết kế
giải pháp xử lý các truy vấn và cải thiện đáng kể tốc độ xử lý, phân tích của hệ
thống. Với thời gian truy xuất nhanh chóng và kết quả truy xuất đáng tin cậy
các hệ thống sử dụng thuật toán và các kỹ thuật xấp xỉ khoảng cách đang thể
hiện ưu thế rõ rệt trên thị trường công nghệ.
Sản phẩm mới nhất về CSDL hiện nay phải kể đến SQL Server 2008 với
những ưu điểm vượt trội do Microsoft tung ra thị trường gần đây.
Lưu trữ được nhiều loại dữ liệu hơn bao giờ hết
Cùng với sự bùng nổ các loại ứng dụng mới đặc biệt là các loại ứng dụng
viễn thông trên nền tảng IP như OCS 2007 hay Exchange 2007 UM thì hàng
loạt các định dạng dữ liệu mới cũng ra đời và người ta cũng muốn lưu trữ ,
tìm kiếm, truy vấn, chia sẻ, đồng bộ chúng. Vì vậy việc lưu trữ những dự liệu
như vậy trên hệ CSDL đã được SQL Server 2008 giải quyết khá triệt để và rốt
ráo với khả năng lưu trữ hầu hết các loại dữ liệu từ dự liệu dạng Spatial cho
Đề 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
68
đến dạng File Streams.
Khả năng thao tác song hành trên các bảng dữ liệu phân vùng
SQL Server 2005 hỗ trợ việc lưu trữ và thao tác song hành liên bảng ghi
CSDL. SQL Server 2008 tiếp tục nâng cao khả năng thao tác song hành với
các bảng dữ liệu phân vùng liên hệ thống. Điều này có nghĩa là khi người
dùng có thể thực hiện một truy vấn mà liên quan đến dữ liệu trên hai phân
vùng CSDL thì SQL Server 2008 sẽ xử lý truy vấn này song hành cùng lúc
trên mỗi phân vùng.
Tăng tốc khả năng truy vấn dữ liệu
Cùng với khả năng nén CSDL lên đến trên 50% thì hiệu xuất truy vấn dữ
liệu cũng được cải thiện đáng kể với Support Star Schema và Star Query
Optimizations trên SQL Server 2008.
Hình 25: Kiến trúc CSDL trên nền tảng Microsoft
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
Khó khăn đối với kích thước địa lý thực của đối tượng ở đây là sự chê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
69
lệch về khoảng cách giữa các điểm càng nhỏ khi kích thước tăng.
Ý tưởng sử dụng kỹ thuật tính toán gần đúng như một công cụ hạn chế
những khó khăn phát sinh do sự khác biệt giữa đối tượng địa lý trong không
gian thực và biểu diễn hình học của đối tượng đó trong CSDL không gian,
đang được áp dụng cho việc xây dựng các cấu trúc đánh chỉ mục cũng như
trong quá trình tính toán các kết quả chính xác.
Có rất nhiều tiêu chuẩn tương tự trong các CSDL đa phương tiện và các hệ
thống trợ giúp việc lập quyết định đang được định nghĩa dựa trên cơ sở là các
không gian vecto trong không gian thứ nguyên bậc cao. Các phương pháp chỉ
mục phân chia dữ liệu sử dụng trong các không gian thông thường (như grid
file, R-tree và các biến thể của chúng) thường hoạt động tốt với các không
gian thứ nguyên bậc thấp, nhưng lại thể hiện nghèo nàn khi bậc thứ nguyên
tăng lên. Vấn đề nảy sinh này thường được gọi theo thuật ngữ là “dimensional
curse[1]” – tạm dịch là “trở ngại về bậc thứ nguyên”. Giải pháp đưa ra là
Vector-approximation file (VA-file[2]) (Weber, Schek, & Blott, 1998) ứng
dụng trong tìm kiếm tương đương trên các không gian vector thứ nguyên bậc
cao.
VA-file – The vector approximate file: Cấu trúc tổ chức dữ liệu duới dạng
chia không gian dữ liệu thành 2b ô chữ nhật – rectangle cells, mỗi ô được định
nghĩa một số bít xác định là b (như một số lượng bit trên mỗi chiều). Thay vì
tổ chức dưới dạng phân cấp như cấu trúc grid file hoặc R-tree, VA-file cấp
phát cho mỗi ô một chuỗi bít riêng có độ dài b và qui định xấp xỉ vị trí của các
điểm dữ liệu vào trong mỗi ô bằng các chuỗi bít này. VA-file bản thân nó đơn
giản chỉ như một mảng của các phân phối gọi là xấp xỉ hình học. Trong bài
toán tìm kiếm k lân cận gần nhất, toàn bộ các file xấp xỉ sẽ được duyệt qua và
các đường biên cận trên và cận dưới giới hạn khoảng cách trong truy vấn có
thể được xác định dễ dàng dựa vào các ô dạng chữ nhật được biểu diễn một
cách gần đúng. Qua đó, một số lượng lớn các vectơ nằm trong chuỗi tìm kiếm
này sẽ được lược bỏ dựa trên khung giới hạn gần đúng trên – bước lược bỏ
nhằm giới hạn không gian tìm kiếm này còn được gọi là filtering step – Bước
lọc. Sau bước này việc tìm kiếm sẽ được thu nhỏ trong giới hạn một tập cá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
70
trường hợp khả thi còn lại. Các trường hợp này sau đó sẽ được xem xét theo
thứ tự tăng dần của đường biên khoảng cách thấp hơn đối với điểm truy vấn
q, khoảng cách chính xác đến q sẽ được tính toán. Tuy nhiên, không cần thiết
phải xét hết tất cả các trường hợp trên, nếu đường biên cận dưới tiến vượt quá
k-th khoảng cách gần nhất, quá trình tìm kiếm K-NNQs (K Nearest
Neighbour queries) dừng.
VA-file khắc phục được các khó khăn gây ra bởi “dimentional curse” bằng
cách thay vì chú trọng quản lý cách thức phân chia dữ liệu thuộc các phương
pháp chỉ mục thông thường, VA-file theo dõi cách thức lọc dữ liệu của file đã
đánh dấu. Như vậy chính dữ liệu (không phải là không gian) sẽ được phân
chia thành các ô, và các vector sẽ được gán tương đương theo giá trị gần đúng
dựa vào các ô chứa chúng. VA-file bao gồm các giá trị xấp xỉ đã được chia
nhỏ dưới dạng bít mã hóa này. Cùng với VA-file là VA+-file là hai cấu trúc
lưu trữ các điểm tính toán gần đúng trong quá trình xử lý trên không gian thứ
nguyên bậc cao.
Ngoài ra, A-tree[3] (Sakurai, Yoshikawa, Uemura, & Kojima 2000) là một
cấu trúc khác nơi các biểu diễn của MBR và các đối tượng dữ liệu được xây
dựng dựa trên các phép tính gần đúng liên quan từ các MBR ở cấp “cha” của
chúng.
Những cấu trúc này đang được sử dụng trong việc tính toán chính xác các
truy vấn tìm kiếm lân cận gần nhất trong không gian thứ nguyên bậc cao và
biểu diễn, thực thi tốt hơn so với các kỹ thuật khác dựa trên R-tree.
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
Thực tế, từ khi hệ thống định vị vệ tinh GPS được đưa vào sử dụng cho
mục đích dân sự, nó đã ở ra một cuộc cách mạng công nghệ mới trong lĩnh
vực trắc địa - bản đồ theo hướng không ngừng nâng cao hiệu quả của công tác
đo đạc ngoại nghiệp cho đến việc đáp ứng mọi yêu cầu về độ chính xác (độ
chính xác đo đạc GPS ngày nay có thể đạt ở mức mm với khoảng cách vài
ngàn km). Tuy nhiên công nghệ này chỉ được ứng dụng nhiều trong kỹ 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
71
đo tĩnh chính xác và chủ yếu là về phương diện mặt bằng còn về thành phần
độ cao ít được quan tâm hơn, đặc biệt trong kỹ thuật đo động thì thành phần
độ cao hầu như bị bỏ qua trong các ứng dụng độ chính xác cao. Ngày nay với
sự gia tăng về số lượng vệ tinh, cấu hình vệ tinh ngày càng tốt, công nghệ chế
tạo máy thu ngày càng cao và các phần mềm xử lý ngày càng tinh vi thì chắc
chắn rằng độ chính xác đo tĩnh và đo động cả về phương diện mặt bằng lẫn độ
cao sẽ không ngừng được cải thiện. Với các thuật toán tính khoảng cách dựa
trên địa hình trái đất với hệ tọa riêng cho từng khu vực như với thuật toán
Vincenty sẽ trình bày trong chương dưới đây, sai số so với khoảng cách thực
tế là rất nhỏ. Do đó tỉ lệ khoảng cách giữa các đối tượng trên bản đồ so với
thực tế cũng đạt đến độ chính xác cao với sai số ở mức chấp nhận được.
Trong các bản đồ số dạng 2D – hình học phẳng, thuật toán xấp xỉ khoảng
cách trở nên đặc biệt hữu dụng trong việc tìm đường đi ngắn nhất từ vị trí
định vị đến đối tượng tìm thấy thỏa mãn trong truy vấn, hoặc tính khoảng
cách gần đúng đến vị trí đã định giữa các khu vực thông qua các tuyến giao
thông: Đường phố, đường xe cơ giới, đường xe buýt hoặc đường thủy…
Hiện nay tại Việt Nam đã có rất nhiều trang web bản đồ trực tuyến sử
dụng công nghệ WebGIS trợ giúp cộng đồng mạng trong việc tìm đường đi,
tìm địa điểm, khu vực… phục vụ trong tra cứu, du lịch hoặc quản lý tài
nguyên, quản lý đô thi, đất đai, hệ thống thủy lợi…
Ví dụ một số trang web bản đồ trực tuyến đang hoạt động hiệu quả hiện
nay như:
www.diadiem.com Trang web tìm đường tại hầu hết các tỉnh thành
trong cả nước, hỗ trợ hiển thị bản đồ địa lý dưới dạng hình vẽ 2D và hình ảnh
3D từ vệ tinh. Cho phép người dùng tìm đường đi ngắn nhất giữa hai vị trí
trong thành phố
Đề 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
72
Hình 26: Trang web bản đồ trực tuyến diadiem.com
Trang web www.basao.com.vn , cũng là một trang web bản đồ trực tuyến,
hỗ trợ tìm đường trên bản đồ 2D nhưng có ưu thế hơn do cho phép tìm kiếm
đường đi dựa trên phương tiện giao thông sử dụng: Ôto, xe buýt, xe máy,
đường thủy, đường hàng khô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
73
Hình 27: Trang web bản đồ trực tuyến basao.com
Chú thích
[1] Dimensional curse: Một số lượng lớn các cấu trúc chỉ mục thứ nguyên bậc cao
tập trung chiếm nhiều tài nguyên của bộ nhớ và ảnh hưởng đến hiệu xuất của các
thao tác xử lý – hiện tượng này được gọi là “dimensional curse”
[2] VA-file – The vector approximate file: Cấu trúc tổ chức dữ liệu duới dạng chia
không gian dữ liệu thành các ô chữ nhật – rectangle cells, mỗi ô được định nghĩa
một số bít nhất định như một số lượng bit trên mỗi chiều. VA-file đơn giản như một
mảng của các phân phối gọi là xấp xỉ hình học.
[3] A-tree: Một cấu trúc đánh chỉ mục mới sử dụng trong việc tìm kiếm tương tự cá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
74
dữ liệu trong không gian thứ nguyên bậc cao. Ý tưởng cơ bản của A-Tree là sử dụng
Virtual Bounding Rectangles – VBRs (Khung giới hạn ảo), là kiểu khung bao gồm
và xấp xỉ các MBR và các đối tượng dữ liệu. VBRs có ưu thế biểu diễn được các đối
tượng khá chặt chẽ.
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
1. Tính toán khoảng cách giữa các đối tượng địa lý theo công thức
Haversine
1.1 Công thức Haversine
1.1.1 Khái niệm
Công thức Haversine là một đẳng thức quan trọng được sử dụng trong quá
trình điều hướng[1], đưa ra các great-circle distance[2] (tạm dịch: khoảng cách
vòng cung lý tưởng) giữa hai điểm trên bề mặt khối cầu từ giá trị tọa độ (kinh
độ, vĩ độ) cho trước của chúng. Công thức Haversine là trường hợp đặc biệt
của các thuật toán phổ biến trong lượng giác cầu (spherical strigonometry[3])
Great-circle distance: Là khoảng cách ngắn nhất giữa hai điểm bất kì trên
bề mặt khối cầu tính dọc theo một hướng đi trên bề mặt khối cầu (nghĩa là đo
đường đi vòng cung trên bề mặt, hoàn toàn khác với khoảng cách tính theo
đường thẳng nối hai điểm đó qua bên trong khối cầu). Khoảng cách này thể
hiện sự khác biệt trong khái niệm khoảng cách giữa hai điểm trong hình học
Euclidean và hình học không gian. Cụ thể: Khoảng cách giữa hai điểm trong
không gian Euclidean là độ dài đoạn thẳng nối hai điểm đó. Trong hình học
cầu, đoạn thẳng được thay thế bằng đường cong.
Với hai điểm không đối xứng trực tiếp với nhau qua tâm của hình cầu (hoặc
elip tròn xoay) thì chỉ tồn tại duy nhất một great–circle (đường cong lý tưởng),
hai điểm này phân ly great-circle thành hai cung, độ dài của cung ngắn hơn
chính là great-circle distance (khoảng cách vòng cung lý tưởng). Chú ý rằng
hai đường great-circle tương ứng này phải cùng nằm trên một mặt phẳng cắ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
75
hình cầu qua tâm của nó.
Với hai điểm đối xứng với nhau qua tâm hình cầu sẽ có vô số các great-
circle thỏa mãn giữa chúng và độ dài của các vòng cung này đều bằng nhau và
bằng một nửa chu vi của hình cầu đó (bằng πR – R là bán kính hình cầu).
Do trái đất cũng có hình dạng gần như một khối cầu, các phương trình cho
great-circle distance đóng vai trò rất quan trọng trong bài toán tìm khoảng
cách ngắn nhất giữa các điểm trên bề mặt trái đất cũng như trong quá trình
điều hướng (định hướng đường đi ngắn nhất cho các phương tiện hàng không
và hàng hải).
1.1.2 Công thức Haversine
Với hai điểm A và B thuộc mặt cầu (có bán kính R) với tọa độ địa lý (kinh độ,
vĩ độ) tương ứng:
A (φ1, λ 1)
B (φ 2, λ 2)
Δ φ = φ1 – φ2
Δλ = λ1 – λ2
Với góc được tính theo đơn vị radian, ta có khoảng cách d giữa hai điểm A
và B (tính toán dựa trên great-circle – đường tròn lý tưởng [4] đường tròn trên
bề mặt của hình cầu có chu vi bằng chu vi của hình cầu đó và chia nó ra làm
hai bán cầu bằng nhau) trong phương trình liên hệ sau:
Đặt h = haversin(d/R) với 0 ≤ h ≤ 1
Ö h = (sin(Δ φ/2))2 + cos(φ1) * cos(φ2) * (sin(Δλ/2)2 )
Từ phương trình trên, ta tính được khoảng cách d một cách đơn giản nếu sử
dụng hàm nghịch đảo của hàm haversin hoặc sử dụng hàm arcsin (hàm sin
nghịch đảo)
Đề 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
76
Suy ra:
Dựa vào công thức trên, ta có công thức tính khoảng cách đường tròn lý tưởng
– Great Circle Distance – C như sau:
C = 2 arcsin (sqrt(h))
Ö C = 2 arcsin (sqrt ( (sin(Δ φ/2))2 + cos(φ1) * cos(φ2) * (sin(Δλ/2)2 ) )
Ứng dụng công thức Haversine vào việc tính toán khoảng cách trên bề mặt
trái đất:
Khi sử dụng Haversin trên bề mặt cầu trái đất, công thức chỉ có tính chất
tính toán gần đúng do đặc điểm đặc biệt của bề mặt trái đất là hình dạng
không phải là một hình cầu hoàn hảo mà có dạng như hình elip bị dẹt ở hai
cực Bắc và Nam với bán kính R xấp xỉ từ 6356.78 km ở cực đến 6378.14 km
tại xích đạo. Do đó ở đây có một sự điều chỉnh nhỏ nằm trong khoảng sai số
1% với quy ước coi như trái đất là khối cầu hoàn hảo với bán kính quy định
như một đại lượng hình học không đổi R = 6367.45 km.
Như vậy, bỏ qua trính chất elip không đáng kể của bề mặt trái đất, ta có
thể áp dụng công thức Haversine trong các hàm tính toán về khoảng cách
trong thông tin địa lý với dữ liệu địa lý thông thường.
Hình 28: Hình dạng Elip của trái đất
North Pole
RR
Equatorial plane
Ellipsoid
Đề 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
77
1.2 Công thức Haversine trong truy vấn tìm khoảng cách ngắn nhất
Công thức Haversin ứng dụng trong thuật toán tính toán khoảng cách giữa
hai điểm trong không gian tọa độ địa lý
Có hai điểm A và B với tọa độ địa lý (kinh độ, vĩ độ) tương ứng (lat1, long1)
và (lat2, long2)
Ö Công thức Haversine sử dụng trong tính toán khoảng cách d = AB theo bề
mặt cầu của trái đất được tính toán như sau:
R = Bán kính trái đất (Quy ước = 6,371km)
Δlat = lat2− lat1
Δlong = long2− long1
h = sin²(Δlat/2) + cos(lat1) * cos(lat2) * sin²(Δlong/2)
c = 2 * atan2(sqrt(h), sqrt(1−h))
d = R * c
Chú ý: Các góc cần phải đổi đơn vị từ độ (trong kinh độ, vĩ độ) sang đơn vị
Radian trước khi tính toán các hàm lượng giác và khoảng cách.
Hàm atan2(x, y) trả về giá trị arctg (x/y) theo đơn vị radian.
VD1: Hai điểm A & B với kinh độ, vĩ độ tương ứng, tọa độ có dạng
độ/phút/giây và hậu tố chỉ một trong bốn hướng địa lý: N-Bắc/S-Nam/E-
Đông/W-Tây.
A (530 09’ 02’’N; 0010 50’ 40”W) Ù A(53,1560; - 1,84440 )
B (520 12’ 17”N; 0000 08’ 26” E) Ù B (52,20470; 0,14060)
Với hệ quy đổi: 10 = 60’; 1’ = 60”
Ta có đoạn mã Javascript sau để thực hiện thuật toán tính toán khoảng cách
giữa hai điểm:
var R = 6371; // km
var dLat = (lat2-lat1).toRad();
var dLon = (lon2-lon1).toRad();
Đề 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
78
var h = Math.sin(dLat/2) * Math.sin(dLat/2) +
Math.cos(lat1.toRad()) * Math.cos(lat2.toRad()) *
Math.sin(dLon/2) * Math.sin(dLon/2);
var c = 2 * Math.atan2(Math.sqrt(h), Math.sqrt(1-h));
var d = R * c;
Với: Hàm toRad() – Hàm chuyển giá trị tọa độ từ dạng kinh độ, vĩ độ sang
đơn vị Radian
Ö Kết quả thu được: dHaversine = AB = 170,2 km
& Khoảng cách vòng cung lý tưởng là C = 105,8 km (Đây là đại lượng sử
dụng đánh giá độ chính xác tính toán của các thuật toán tính khoảng cách trên
bề mặt cầu).
Tương ứng với vị trí trên bản đồ tìm được như sau:
Đề 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
79
Hình 29: Khoảng cách AB tính theo công thức Haversine trên bản đồ địa lý
VD2: Trở lại với mô hình cơ sở dữ liệu Benchmark đã đề cập trong Chương
2 - Mục 1: Các truy vấn liên quan đến khoảng cách. Ta có truy vấn tìm
khoảng cách vị trí đối tượng gần nhất tính từ vị trí hiện tại của người 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
80
Hình 30: Mô hình dữ liệu quan hệ
Truy vấn: Tìm 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)
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 = 1;
Chú ý:
Trong trường hợp này K = 1.
Với câu lệnh SQL: ORDER BY Spatial_Neighbour (Other.Location,
curr_space (Human.Route) ) ASC = 1;
Hàm curr_space(): Hàm trả về các thông tin cập nhật tọa độ hiện thời
của thiết bị (tọa độ hiện tại của người sử dụng thiết bị)
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 về khoảng cách (ở đây là khoảng cách gần nhất
giữa người sử dụng đến nhà hàng). Với giá trị ASC = 1 ta thu được kết
quả trả lời truy vấn là vị trí nhà hàng gần nhất tính từ vị trí hiện tại.
Thuật toán xác định đối tượng trong khu vực thỏa mãn và tính toán khoả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
81
cách từ vị trí xác định đến đối tượng sẽ được cài đặt trong hàm
Spatial_Neighbour (attribute, reference). Giá trị trả về của hàm là tất cả các
vùng lân cận gần nhất (ở đây là nhà hàng) thể hiện trong tham số reference
(Other.Location) và thỏa mãn đến dữ liệu nhập vào từ tham số attribute.
Sử dụng hàm tính toán Haversine cài đặt như trên, ta có thể tính được
khoảng cách trên bề mặt trái đất từ tọa độ xác định đến tọa độ vị trí tìm thấy
trong truy vấn:
Giả sử vị trí hiện tại: Giá trị trả về của hàm Curr_Space (Human.Route) là
vị trí có tọa độ C (200 50’ 30”S; 0030 09’ 21”W)
Một số nhà hàng tìm thấy trên bản đồ có vị trí lần lượt là:
R1 (200 55’ 00”S; 0030 01’ 30”W) Ö Dhaversine CR1 = 15,95 km
R2 (210 00’ 00”S; 0020 59’ 10”W) Ö Dhaversine CR2 = 24,91 km
R3 (200 55’ 00”S; 0020 59’ 20”W) Ö Dhaversine CR1 = 19,25 km
Kết quả tính toán được trả về và sắp xếp theo thứ tự tăng dần, với K = 1 Ö Ta
thu được vị trí điểm gần nhất thỏa mãn truy vấn là R1.
1.3 Đánh giá thuật toán Haversine
Công thức Haversine thực thi đặc biệt thành công với các tính toán số học
kể cả với các khoảng cách nhỏ (khác với các cách tính toán dựa trên các luật
thuộc bề mặt cầu của hàm cosin[] – Một tập các quy tắc tính toán đối với hàm
cosin trên bề mặt hình cầu được đưa ra bởi R.W Sinnot trong “Sky and
Telescope” xuất bản năm 1984; công thức tính bình phương hàm sin của góc
θ/2 có thể được tính xấp xỉ bằng: (1-cosθ)/2 = sin²(θ/2)).
Độ chính xác tính toán trong thuật toán Haversine: 0.3% (Sai số tính được
so với khoảng cách trong thực tế)
Trong thực tế, khi Sinnott phát minh ra công thức Haversine, khả năng tính
toán số lớn của máy tính còn rất hạn chế. Ngày nay, công cụ Javascript và các
máy tính hiện đại nhất sử dụng số dấu phẩy động 64-bit theo chuẩn IEEE 754,
đã cung cấp tới 15 số chính xác sau dấu phẩy. Với độ chính xác cao như vậ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
82
công thức tính theo đại lượng hàm cosin trên bề mặt cầu đưa ra kết quả khá
tin cậy với khoảng cách nhỏ trong khoảng 1m.
Tính khoảng cách d theo công thức cosin
d=cos(sin(lat1).sin(lat2)+cos(lat1).cos(lat2).cos(long2−long1)).R
Đoạn mã Javascript:
var R = 6371; // km
var d = Math.acos(Math.sin(lat1)*Math.sin(lat2) +
Math.cos(lat1)*Math.cos(lat2) *
Math.cos(lon2-lon1)) * R;
Tuy nhiên, do độ chính xác của hàm tính toán này chỉ đáng tin cậy với
khoảng cách nhỏ nên không thể sử dụng trong tính toán các khoảng cách lớn,
đặc biệt là khoảng cách địa lý trên bề mặt trái đất. Thêm vào đó, tính chất
Ellip của trái đất cũng là lí do hạn chế gần như tuyệt đối việc sử dụng công
thức cosin trên trong tính khoảng cách.
Trong một số trường hợp, công thức Haversine đã đơn giản hóa việc tính
toán khoảng cách trên bề mặt cầu do việc xấp xỉ bán kính trái đất dưới dạng
bán kính của một hình cầu lý tưởng (có bán kính qua bằng nhau tại mọi điểm
trên bề mặt cầu), tuy nhiên việc đơn giản hóa này cũng mang lại sai số lớn khi
tính toán các đối tượng cách xa nhau theo kinh độ cũng như vĩ độ địa lý.
Khắc phục được hạn chế này là công thức Vincenty được Thaddeus
Vincenty (‘TV’) phát minh, sử dụng trong tính toán khoảng cách địa lý với
một cặp thông tin vị trí kinh độ và vĩ độ trên bề mặt trái đất, sử dụng mô hình
ellip tròn xoay chính xác của trái đất.
2. Tính toán khoảng cách trong hệ tọa độ địa lý theo khoảng cách
Vincenty
2.1 Khái niệm
Thuật toán Vencenty (1975) được đặt theo tên của người phát minh là
Thaddeus Vincenty – nhà đo đạc bản đồ người Ba Lan. Vencenty là một kỹ
Đề 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
83
thuật tính toán đo đạc khoảng cách trong không gian địa lý với độ chính xác
đáng kinh ngạc là 0,5mm hoặc 0.000015”.
Hiện nay thuật toán Vicenty là tối ưu nhất để tính khoảng cách 2 điểm trên
mặt ellipsoid với sai số vài cm trên đường đáy dài vài chục ngàn km.
Các dạng Elip tròn xoay sử dụng trong tính toán khoảng cách địa lý
Ellipsoid (elilp tròn xoay) có phương trình toán học nên xác định được tọa
độ các điểm trên bề mặt của nó. Từ quá khứ, lịch sử nghiên cứu ngành khoa
học trắc địa và thông tin địa lý đã ghi nhận nhiều nhà khoa học đã tìm cách
tính kích thước của ellipsoid sao cho gần giống với trái đất thực nhất và cho
các kết quả không giống nhau. Nguyên nhân là do trình độ khoa học công
nghệ, công nghệ tính toán (trước đây do chưa có máy vi tính nên chủ yếu tính
toán bằng tay).
Geoid - Là mặt nước biển trung bình yên tĩnh xuyên qua các lục địa và hải
đảo. Ta tưởng tượng trái đất có nước chiếm >70% diện tích, nếu cho toàn bộ
trái đất bị nước bao phủ thì mặt nước biển trung bình đó chính là Geoid.
Geoid dùng để xác định độ cao các điểm trên bề mặt trái đất. Độ cao của 1
điểm là khoảng cách theo phương dây dọi từ điểm đó đến mặt geoid.
WGS 84 – Là hệ thống tọa độ do Bộ Quốc Phòng Mỹ tìm ra năm 1984.
Đây là kiểu mô hình ứng dụng toàn cầu dạng elip tròn xoay được sử dụng đo
tọa độ trên bề mặt trái đất, nó mô hình gần như chính xác hình dạng trái đất
theo dạng Geoid (bề mặt trái đất xấp xỉ theo mực nước biển trung bình).
Ngoài ra còn một số mô hình dạng elip tròn xoay khác cũng được sử dụng
rộng rãi, đặc biệt là trong tính toán, đo đạc vị trí địa lý trong Geoid khu vực
như: Airy (1830) sử dụng ở Anh, International 1924 sử dụng tại Châu Âu,
Clarke (1880) ở Ấn Độ, and GRS-67 ở Nam Mỹ, tại Mỹ (NAD83) và Úc sử
dụng GRS-80. Mỗi loại elip tròn xoay được thiết kế và xây dựng cho các loại
dữ liệu đặc trưng cho từng khu vực và lãnh thổ địa lý trên trái đất.
Các thông số của elip tròn xoay bao gồm
Kích thước bán trục dài – 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
84
Kích thước bán trục ngắn – b
Độ dẹt – f
Bảng thông số các elip tròn xoay:
Ellipsoid
Bán trục dài–a
(m)
Bán trục ngắn –
b(m)
Độ dẹt - f
WGS-84 a=6 378 137 (±2 ) b=6 356 752.3142
f = 1 /
298.257223563
GRS-80 a =6 378 137 b=6 356 752.3141
f = 1 /
298.257222101
Airy (1830) a=6 377 563.396 b = 6 356 256.909 f = 1 / 299.3249646
Int’l 1924 a =6 378 388 b = 6 356 911.946 f = 1 / 297
Clarke
(1880)
a=6 378 249.145 b = 6 356 514.86955 f = 1 / 293.465
GRS‐67 a = 6 378 160 b = 6 356 774.719 f = 1 / 298.25
Hình 31: Thông số các hệ tọa độ elip tròn xoay
Có thể coi các Elip tròn xoay này như các hệ tọa độ tương ứng với từng
vùng lãnh thổ trên bề mặt trái đất sử dụng trong công việc đo đạc, tính toán
tọa độ cũng như ghi nhận vị trí địa lý của các đối tượng thực trên bề mặt trái
đất và mô phỏng nó trên bản đồ.
Hiện nay, Việt Nam đang sử dụng hệ tọa độ riêng trên lãnh thổ Việt Nam
– Hệ tọa độ quốc gia VN 2000 – Hệ được xây dựng dựa trên nền tảng
ellipsoid WGS84 nhưng được định vị lại cho phù hợp lãnh thổ Việt Nam (vẫn
là ellipsoid WGS84 nhưng được di dời và xoay 1 khoảng rất nhỏ). Tuy nhiên
điều này đang gây ra những trở ngại trong việc tích hợp các bản đồ Việt Nam
với hệ thống bản đồ chung của thế giới và quá trình sử dụng các thiết bị đo
Đề 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
85
đạc hiện đại nhập ngoại trợ giúp quá trình khảo sát địa lý trên lãnh thổ Việt
Nam cũng gặp nhiều khó khăn. Với sự phát triển của các công cụ bản đồ vệ
tinh rất phổ biến hiện nay như Google Earth, việc xác định vị trí địa lý tại mọi
vị trí trên trái đất với bất kỳ công dân nào trở nên dễ dàng hơn bao giờ hết, do
đó yếu tố bảo mật tọa độ trong lãnh thổ quốc gia đã trở nên không cần thiết.
Năm 2002, Bộ Tài nguyên và môi trường đã có quyết định về hệ thống
tham số tính chuyển giữa Hệ tọa độ quốc tế WGS-84 và Hệ tọa độ quốc gia
VN-2000. Trong đó đã quy định hệ thống tham số chuyển hệ tọa độ như sau:
Tham số dịch chuyển gốc tọa độ: -191,90441429 m; -39,30318279 m; -
111,45032835m.
Góc xoay trục tọa độ: -0,00928836”; 0,01975479”; -0,00427372”.
Hệ số tỷ lệ chiều dài: k = 1,0000002529062 78.
2.2 Thuật toán Vincenty
Thuật toán Vincenty thể hiện nhiều ưu điểm trong việc tính toán khoảng
cách địa lý do ưu thế về độ chính xác khá cao. Tuy nhiên, việc triển khai thuật
toán này là khác phức tạp, bao gồm nhiều phép toán trung gian và các vòng
lặp lồng nhau, do đó đề tài không đi sâu vào nghiên cứu và phân tích chi tiết
thuật toán Vincenty. Trong giới hạn nghiên cứu của luận văn, tác giả chỉ dừng
ở mức tham khảo giả mã của thuật toán với tính chất tra cứu khi cần sử dụng.
2.2.1 Cài đặt thuật toán Vincenty sử dụng hệ tọa độ ellipsoid WGS - 84
Dưới đây là đoạn mã JavaScript thực hiện thuật toán Vincenty sử dụng các
thông số tính toán của hệ tọa độ WGS-84
/* Tính toán khoảng cách địa lý giữa hai điểm có tọa độ (kinh độ, vĩ độ) cho
trước (ở dạng độ thập phân) sử dụng công thức Vincenty cho trái đất dạng
elip tròn xoay*/
function distVincenty(lat1, lon1, lat2, lon2) {
var a = 6378137, b = 6356752.3142, f = 1/298.257223563; /* WGS-84
ellipsiod */
Đề 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
86
var L = (lon2-lon1).toRad();
var U1 = Math.atan((1-f) * Math.tan(lat1.toRad()));
var U2 = Math.atan((1-f) * Math.tan(lat2.toRad()));
var sinU1 = Math.sin(U1), cosU1 = Math.cos(U1);
var sinU2 = Math.sin(U2), cosU2 = Math.cos(U2);
var lambda = L, lambdaP = 2 * Math.PI;
var iterLimit = 20;
while (Math.abs(lambda-lambdaP) > 1e-12 && --iterLimit>0) {
var sinLambda = Math.sin(lambda), cosLambda = Math.cos(lambda);
var sinSigma = Math.sqrt (( cosU2 * sinLambda) * (cosU2 * sinLambda)
+ (cosU1 * sinU2 - sinU1 * cosU2 * cosLambda) * (cosU1 * sinU2 -
sinU1 * cosU2 * cosLambda ) );
if (sinSigma==0) return 0; // co-incident points
var cosSigma = sinU1 * sinU2 + cosU1 * cosU2 * cosLambda;
var sigma = Math.atan2(sinSigma, cosSigma);
var sinAlpha = cosU1 * cosU2 * sinLambda / sinSigma;
var cosSqAlpha = 1 – sinAlpha * sinAlpha;
var cos2SigmaM = cosSigma – 2 * sinU1 * sinU2/cosSqAlpha;
if (isNaN(cos2SigmaM)) cos2SigmaM = 0; /* equatorial line:
cosSqAlpha = 0 */
var C = f/16 * cosSqAlpha * (4 + f * (4 – 3 * cosSqAlpha));
lambdaP = lambda;
lambda = L + (1 - C) * f * sinAlpha * (sigma + C * sinSigma * (
cos2SigmaM + C * cosSigma * ( 1 + 2 * cos2SigmaM * cos2SigmaM ) )
);
Đề 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
87
}
if (iterLimit==0) return NaN // formula failed to converge
var uSq = cosSqAlpha * (a*a - b*b) / (b*b);
var A = 1 + uSq/16384 * (4096 + uSq * (-768 + uSq * (320 - 175 * uSq)));
var B = uSq/1024 * (256 + uSq * (-128 + uSq * (74 – 47 * uSq)));
var deltaSigma = B * sinSigma* (cos2SigmaM + B/4 * (cosSigma * (- 1 +
2 * cos2SigmaM * cos2SigmaM ) - B/6 * cos2SigmaM * ( 3 + 4 * sinSigma
* sinSigma ) * ( -3 + 4 * cos2SigmaM * cos2SigmaM) ) );
var s = b * A * (sigma - deltaSigma);
s = s.toFixed(3); // round to 1mm precision
return s;
}
Như vậy, với hệ thống tham số chuyển tọa độ đã quy định ở trên, ta hoàn
toàn có thể ứng dụng thuật toán Vincenty vào bài toán tính khoảng cách địa lý
trên lãnh thổ Việt Nam trong hệ tọa độ VN-2000 tương ứng mà không ảnh
hưởng đến độ chính xác của thuật toán cũng như cơ sở hạ tầng bản đồ địa lý
đã xây dựng dựa trên VN-2000 của nước ta.
2.2.2 Sử dụng hàm tính toán Vincenty trong truy vấn tìm khoảng cách
địa lý
Trở lại với ví dụ trong phần 1.2 – Chương 4 về khoảng cách Haversine, ta
tính toán khoảng cách giữa hai điểm này theo thuật toán Vincenty và so sánh
độ chính xác tính toán của hai phương pháp trên dựa vào đại lượng great-
circle distance (khoảng cách vòng cung lý tưởng) - C đã có ở trên.
VD1: Hai điểm A & B với kinh độ, vĩ độ tương ứng, tọa độ có dạng
độ/phút/giây và hậu tố chỉ một trong bốn hướng địa lý: N-Bắc/S-Nam/E-
Đông/W-Tây.
A (530 09’ 02’’N; 0010 50’ 40”W) Ù A(53,1560; - 1,84440 )
Đề 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
88
B (520 12’ 17”N; 0000 08’ 26” E) Ù B (52,20470; 0,14060)
Với hệ quy đổi: 10 = 60’; 1’ = 60”
Ö Ta có dVincenty = AB = 156,067 km
Theo trên ta có : dHaversine = AB = 170,2 km
& Khoảng cách mặt cầu lý tưởng là C = 105,8 km
Dễ dàng nhận thấy với cùng tọa độ điểm, thuật toán Vincenty cho khoảng
cách chính xác hơn tuy mất nhiều thời gian tính toán hơn.
VD2: Sử dụng thuật toán Vincenty tính toán khoảng cách giữa hai khu vực tại
Australia theo hệ tọa độ WGS-84: Khoảng cách giữa trung tâm hai thành phố
Flinder Peak và Buninyong, với tọa độ tương ứng là:
Flinder Peak (370 57’ 03”S; 1440 25’ 29” E)
Buninyong (370 39’ 10” S; 1430 55’ 35” E)
ÖdVincenty = 54,959 km
Chú ý: Độ chính xác của thuật toán Vincenty còn phụ thuộc rất nhiều vào hệ
tọa độ elip tròn xoay mà nó được sử dụng cũng như vị trí địa lý khu vực áp
dụng thuật toán, độ chính xác nằm trong khoảng 0.5mm (tương đương sai số
tọa độ là 0,00015”) chỉ đúng trên lý thuyết elip, đại lượng sai số này sẽ thay
đổi khi áp dụng vào các Geiod (bề mặt cầu xây dựng dựa trên mực nước biển
trung bình) trên bề mặt trái đất trong thực tế.
Với các vùng lãnh thổ địa lý khác nhau việc sử dụng các hệ tọa độ phù
hợp là rất quan trọng, nó quyết định độ chính xác tính toán về khoảng cách
của thuật toán Vincenty. Tỉ lệ sai số khác nhau trong từng trường hợp là do sử
dụng các geoid khác nhau ( như WGS-84, GRS-80, Airy…. ).
Bằng thực nghiệm đã cho thấy, sử dụng thuật toán Vincenty tính khoảng
cách tại vị trí địa lý có độ cao so với mặt nước biển trung bình là 2km, sai số
tính được khoảng 0,03% (lớn hơn so với khoảng cách thực tế). Giả sử thực
hiện đo đạc tại nước Anh sử dụng hệ tọa độ WGS-84, thu được kết quả tính
toán của thuật toán Vincenty với sai số là 28m (tương đương 0.003%) – lớ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
89
hơn khi sử dụng hệ tọa độ elip tròn xoay Airy, là hệ tọa độ được xây dựng phù
hợp dựa trên đặc thù địa lý và lãnh thổ nước Anh.
3. Đánh giá thuật toán Haversine và Vincenty
Với mục đích so sánh độ chính xác và đánh giá hiệu năng của hai thuật
toán Haversine và Vincenty, ta sử dụng lại tọa độ các điểm trong truy vấn tại
mục 1.2 Chương 4 – (đã dùng để tính toán khoảng cách trong công thức
Haversine) để ứng dụng tính với công thức Vincenty.
Ta có bảng thống kê kết quả của phép tính khoảng cách theo tọa độ địa lý
theo công thức Haversine và Vincenty như dưới đây:
Với tọa độ vị trí hiện tại ghi nhận là - C (200 50’ 30”S; 0030 09’ 21”W)
Một số nhà hàng tìm thấy trên bản đồ có vị trí lần lượt là:
R1 (200 55’ 00”S; 0030 01’ 30”W)
R2 (210 00’ 00”S; 0020 59’ 10”W)
R3 (200 55’ 00”S; 0020 59’ 20”W)
Khoảng cách d = CRi tương ứng với từng thuật toán như sau:
R1 R2 R3
Kinh độ 200 55’ 00”S 210 00’ 00”S 200 55’ 00”S
Vĩ độ 0030 01’ 30”W 0020 59’ 10”W 0020 59’ 20”W
Dhaversine 15,95 km 24,91 km 19,25 km
DVincenty 15,946 km 24,879 km 19,253km
Hình 32: Khoảng cách tính theo thuật toán Haversine và Vincenty
Nhận xét:
Xét về độ chính xác kết quả: Sai số về kết quả tính toán khoảng cách
giữa hai thuật toán là 0,35%, tức là chênh lệch vị trí khi dùng hai phươ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
90
pháp này có thể lên đến 3,5km nếu khoảng cách tính toán là trên 950km.
Với khoảng cách nhỏ, hai thuật toán thể hiện sai số không chênh
lệch nhiều so với thực tế), tuy nhiên thuật toán Vincenty cho kết quả với
độ chính xác cao hơn, điều này sẽ là lợi thế khá rõ rệt với kết quả là
những khoảng cách lớn (hàng nghìn hoặc hàng vạn km). Trong trường
hợp với phương tiện đường bộ như ôto hoặc xe máy, việc tìm kiếm vị trí
cần xác định trong khoảng bán kính sai số vài km với thuật toán
Haversine thực sự là vấn đề lớn.
Xét theo độ phức tạp tính toán: Rõ ràng, để có kết quả tính toán chính
xác đến từng mm, thuật toán Vincenty phải triển khai khá phức tạp, qua
nhiều phép toán trung gian và các vòng lặp. Do đó, nếu so sánh theo tính
đơn giản khi cài đặt, tốc độ truy xuất dữ liệu và thời gian trả lời truy vấn
thì thuật toán Haversine lại là lựa chọn tốt hơn. Thuật toán Haversine sử
dụng ít phép tính cũng như các toán tử vào ra hơn thuật toán Vincenty rất
nhiều.
Ö Như vậy, hai thuật toán đề cập trên đây đều có những ưu điểm và nhược
điểm nhất định, tùy vào mục đích sử dụng và yêu cầu đối vớp phép toán mà
có thể áp dụng loại thuật toán phù hợp.
Chú thích
[1] Quá trình điều hướng: Là tập hợp các học thuyết trên lý luận cũng như các ứng
dụng thực tiễn sử dụng trong tiến trình lập kế hoạch, theo dõi và điều khiển các
phương tiện lớn trong ngành hàng hải, hàng không di chuyển trên bề mặt trái đất.
[2] Great-circle distance: (Theo wikipedia) Là khoảng cách ngắn nhất giữa hai điểm
bất kì trên bề mặt khối cầu tính dọc theo một hướng đi trên bề mặt khối cầu (nghĩa là
đo đường đi vòng cung trên bề mặt trái ngược với khoảng cách tính theo đường
thẳng nối hai điểm đó qua bên trong khối cầu).
Tham khảo thêm tại:
[3] Spherical strigonometry - lượng giác cầu: Là một thành phần trong nghành hình
học khối cầu ứng dụng trong việc xử lý các đa giác – đặc biệt với tam giác - trên bề
mặt cầu và giải thích mối liên quan giữa các góc tương ứng. Đây là một công 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
91
quan trọng dùng tính toán trong ngành thiên văn học, bề mặt trái đất, điều hướng quỹ
đạo và không gian)
C. KẾT LUẬN
1. Những kết quả đạt được
Luận văn trên đây đã trình bày tổng quan các khái niệm từ cơ bản về
CSDL không gian, các toán tử, đến các kỹ thuật quan trọng và phức tạp trả lời
cho bài toán tính toán gần đúng đối với các truy vấn liên quan đến khoảng
cách. Đề tài đã nghiên cứu và trình bày một cách khoa học các kiểu truy vấn
tiêu biểu về khoảng cách trong không gian địa lý, thuật toán R-tree dưới dạng
một cấu trúc đánh chỉ mục động trong tìm kiếm không gian và các ứng dụng
nổi bật liên quan.
Ngoài ra, đề tài đã thực hiện nghiên cứu các thuật toán tính toán khoả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
92
cách Haversine & Vincenty và ứng dụng thử nghiệm trong một số truy vấn
trên không gian địa lý, đánh giá kết quả, độ chính xác sai số trong từng thuật
toán và rút ra kết luận về hiệu năng thực thi đối với hệ thống xử lý truy vấn.
Dựa vào các đánh giá này đề tài hệ thống lại các vấn đề về tính toán xấp xỉ
khoảng cách trong truy vấn trên CSDL không gian, các ứng dụng mới nhất
trong thực tế, các sản phẩm công nghệ GIS đang được sử dụng rộng rãi trên
thị trường.
2. Đánh giá
Các thuật toán tính toán khoảng cách trên CSDL không gian với các đối
tượng địa lý dựa trên bề mặt trái đất được đánh giá hiệu năng dựa trên độ
chính xác tính toán của thuật toán so với khoảng cách chính xác đo đạc được
bên ngoài. Do đó phải tính đến tính chất hình dạng elip dẹt của Trái đất và sự
lồi lõm, khúc khuỷa trên bề mặt địa cầu. Như vậy để xây dựng được hàm tính
toán với độ chính xác càng cao so với thực tế đòi hỏi độ phức tạp tính toán
cũng như số lượng toán tử càng lớn, kéo theo đó là thời gian xử lý đòi hỏi cho
hệ thống thực thi thuật toán càng dài. Như vậy, việc cân bằng giữa hai yếu tố
là hiệu năng và thời gian đáp ứng của hệ thống là rất quan trọng, nó quyết
định đến giá thành sản phẩm, mức độ hoàn thiện và giá trị sử dụng cũng như
đáp ứng yêu cầu của người sử dụng.
Hiện nay, với sự mở rộng của các ứng dụng GIS trong rất nhiều lĩnh vực bao
gồm cả các chương trình quy hoạch tài nguyên, quản lý quy hoạch đô thị, hạ
tầng cơ sở quốc gia và khu vực…, việc lựa chọn các phương tiện trợ giúp việc
lập quyết định cũng như làm nền tảng xây dựng các mô hình ứng dụng đa
phương tiện liên quan đến dò tìm vị trí địa lý, tính toán khoảng cách nằm
trong mối quan hệ giữa các đối tượng không gian, luôn là yếu tố quyết định.
Chúng ta có thể tìm thấy rất nhiều ứng dụng được xây dựng và cung cấp phục
vụ trong quá trình triển khai từ cơ sở dữ liệu không gian đến việc xây dựng
các bản đồ kỹ thuật số và tích hợp các phương tiện định vị với các phần mềm
quản lý, xử lý dữ liệu không gian.
3. Hướng phát triể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
93
Ý tưởng khai thác thông tin về tìm đường đi, địa điểm và tính toán khoảng
cách ngắn nhất thỏa mãn yêu cầu truy vấn trên nền tảng bản đồ số không phải
là mới, hiện nay trên thế giới đã có nhiều tập đoàn lớn khai thác lĩnh vực này
như Yahoo, Google, MapQuest… Ở Việt Nam cũng đã có một số công ty đầu
tư phát triển sản phẩm trong lĩnh vực này như Dolsoft và các trang web sử
dụng bản đồ trực tuyến trong dò tìm địa điểm, quảng cáo, quản lý tài nguyên
như của Bộ tài nguyên và môi trường, Công ty bất động sản Basao,…
Dữ liệu thông tin địa lý rất phong phú và ngày càng đa dạng cộng với yêu
cầu sử dụng thông tin thật nhanh chóng và chính xác từ thị trường dẫn đến
việc quản lý, truy xuất khối dữ liệu khổng lồ này luôn là vấn đề tiêu tốn nhiều
thời gian và công sức nhằm tối ưu hóa quá trình xử lý của các nhà khoa học
công nghệ. Một sản phẩm tốt và toàn diện là sản phẩm vừa xử lý được thông
tin một cách khoa học, vừa có khả năng thực hiện các truy vấn nhanh chóng
và chính xác.
TÀI LIỆU THAM KHẢO
Tài liệu tiếng Anh
[1] [Beckmann et al. 1990] Norbert Beckmann, Hans-Peter Kriegel, Ralf
Schneider, Bernhard Seeger - “The R*-Tree: An Efficient and Robust
Access Method for Points and Rectangles”. SIGMOD Conference
1990: pp 322-331.
[2] Calculate distance, bearing and more between two Latitude/Longitude
Đề 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
94
points,
[3] E.Miglierina, E. Molho, F. Patrone, S.H. Tijs – “An axiomatic
approach to approximate olutions in vector optimization” - 2005/10, tr.
3-27
[4] Gutman A (1984) – “R-Trees: A Dynamic Index Structure For Spatial
Searching” - Proceedings of the ACM SIGMOD Conference, pp 44-57
[5]
[6] Kamel I, Faloutsos C (1994) Hilbert - “R-tree: An Improved R-Tree
Using Fractals” - Proceedings of the VLDB Conference, pp 144-155
[7] Oliver Günther, Hans-Jörg Schek – “Advances in Spatial Databases,
Second International Symposium” - SSD'91, Zürich, Switzerland,
August 28-30, 1991, Proceedings Springer 1991, pp 144-160
[8] Qingxiu Shi and Bradford G.Nickerson
www.cs.unb.ca/html/documents/TR06-179.pdf - “Decreasing Radius
K-Nearest Neighbor Search using Mapping-based Indexing Schemes”
- May 17 , 2006
[9] Ralf Hartmut Güting Fernuniversität Hagen Praktische – “Spatial
Database Systems- Tutorial Notes” - Informatik IV D-58084
Hagen-Germany, pp 2-41
[10] Roger Weber, Hans-Jörg Schek, Stephen Blott – “A Quantitative
Analysis and Performance Study for Similarity-Search Methods in
High-Dimensional Spaces” - VLDB 1998: pp 194-205.
[11] Rutovitz, D., 1968. Data structures for operations on digital images.
In: Cheng, G.C., Pollock, D.K., Rosenfeld, A. (Eds.), Pictorial Pattern
Recognition. Thompson, Washington, pp. 105-133.
[12] Samet H (1990) The Design and Analysis of Spatial Data
Structures. Addison-Wesley Publishing Company Inc.
[13] Vincenty formula for distance between two Latitude/Longitude
Đề 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
95
points, Movable-type.co.uk, retrieved 29 Dec 2006.
[14] Yannis Manolopoulos, Apostolos N. Papadopoulos and Michael
Gr. Vassilakopoulos, Editors - “Spatial databases : technologies,
techniques and trends” - Idea Group Publishing (an imprint of
Idea Group Inc.) 2004, pp.147 – 168.
[15] Yannis Theodoridis - Department of Informatics, University of
Piraeus, GR-18534 Piraeus - “Ten Benchmark Database Queries
for Location-based Services” - The Computer Journal, British
Computer Society 2003, pp.713 -723.
[16] Yasushi Sakurai, Masatoshi Yoshikawa, Shunsuke Uemura, and
Haruhiko Kojima - "The A-tree: An Index Structure for High-
Dimensional Spaces Using Relative Approximation" - in Proc. of the
26th International Conference on Very Large Data Bases (VLDB), pp.
516-526.
Tài liệu tiếng Việt
[17] ệ_thống_thông_tin_địa_lý
[18]
3568 – “Cấu trúc Index động cho tìm kiếm không gian” – Trường
ĐH Công nghệ thông tin thành phố Hồ Chí Minh.
[19] Lê Văn Trung, Lâm Đạo Nguyên
9f8.dir/doc.pdf - “Giải pháp cập nhật dữ liệu không gian sử dụng
công nghệ tích hợp viễn thám và GIS” - Bộ môn Địa Tin Học,
Trường Đại học Bách khoa, Tp. Hồ Chí Minh.
[20] Ts Đặng Văn Đức – “Hệ thống thông tin địa lý” – Nhà XB Khoa học
và kỹ thuật – Hà Nội, 2001. Tr.11-202.
Các file đính kèm theo tài liệu này:
- 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.pdf