Đánh giá thuật toán Haversine 81

Một phần của 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 (Trang 81 - 82)

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.3Đánh giá thuật toán Haversine 81

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,

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

Đon 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ý.

Một phần của 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 (Trang 81 - 82)