ĐẠI HỌC QUỐC GIA TP.HCM
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN
NGUYỄN MINH NAM
PHÁT TRIỂN CÁC MÔ HÌNH VÀ THUẬT
TOÁN BIỂU DIỄN, XỬ LÝ, KHAI THÁC DỮ
LIỆU KHÔNG GIAN VÀ ỨNG DỤNG GIẢI MỘT
SỐ BÀI TOÁN GIS
Chuyên ngành: Đảm bảo toán học cho máy tính và
hệ thống tính toán
Mã số chuyên ngành: 1.01.10
TÓM TẮT LUẬN ÁN TIẾN SĨ TOÁN HỌC
Tp. Hồ Chí Minh, năm 2011
Công trình được hoàn thành tại: Khoa Công Nghệ Thông Tin, Trường Đại Học Khoa
Học Tự Nhiên.
Người hướng dẫn khoa học: GS.TSKH. Hoàng Văn Kiếm
Phản biện 1: PGS. TS. Dương Anh Đức
Phản biện 2: PGS. TS. Trần Vĩnh Phước
Phản biện 3: TS. Đặng Trường Sơn
Phản biện độc lập 1: PGS. TS. Trần Văn Lăng
Phản biện độc lập 2: PGS. TS. Lê Văn Trung
Phản biện độc lập 3: PGS. TS.Trần Vĩnh Phước
Luận án sẽ được bảo vệ trước Hội đồng chấm luận án họp tại trường Đại học Khoa
Học Tự nhiên vào lúc………., ngày… tháng… năm…
Có thể tìm hiểu luận án tại thư viện:
- Thư viện Khoa học Tổng hợp Tp.HCM
- Thư viện Trường Đại học Khoa học Tự Nhiên
1
1 Tổng quan
1.1 Yêu cầu thực tiễn và lý do thực hiện đề tài
Việc nghiên cứu, ứng dụng khoa học công nghệ nhằm đạt tới trình độ tiên tiến của các
nước trong khu vực, góp phần tạo ra các bước đổi mới mạnh mẽ về công nghệ trong việc
phát triển các sản phẩm, dịch vụ giá trị gia tăng có hàm lượng trí tuệ cao để phục vụ hiệu
quả cho các lĩnh vực phát triển kinh tế-xã hội và bảo đảm an ninh-quốc phòng đã và đang
trở thành mục tiêu chủ đạo của quốc gia. Một trong các hướng phát triển công nghệ chủ đạo
chính là lĩnh vực Công nghệ Thông tin mà hệ thống Thông tin Địa lý (GIS) là chuyên ngành
hẹp.
1.2 Mục tiêu luận án
Xuất phát từ yêu cầu thực tiễn, đề tài đặt ra mục tiêu phát triển một số mô hình thuật toán
giải quyết các vấn đề nền tảng trong GIS. Một loạt các thuật toán xử lý không gian cần được
giải quyết với thời gian thực thi hiệu quả để đáp ứng yêu cầu thực tế.
Những mục tiêu cụ thể được đề ra và thực hiện trong luận án gồm:
Nghiên cứu mô hình biểu diễn tích hợp dữ liệu không gian và thuộc tính trong một hệ
thống khai thác thống nhất.
Nghiên cứu và cài đặt các thuật toán khai thác dữ liệu không gian, tìm kiếm lân cận
và phân tích mạng tuyến.
Thiết lập hệ thống thư viện GIS hạt nhân để hỗ trợ người sử dụng tự giải quyết một
loạt bài toán chuyên biệt phức tạp.
Xây dựng các ứng dụng GIS trên môi trường ứng dụng cũng như khai thác trực tuyến
trên Internet.
Ngoài các cấu trúc dữ liệu không gian kinh điển B-Tree hay R-Tree, thì việc áp dụng
lưới tam giác Delaunay và các biến thể của nó cho việc xử lý và khai thác dữ liệu không
gian rất đáng được quan tâm. Vấn đề khó nhất của dòng thuật toán này là việc xác định
nhanh điểm chèn vào thuộc tam giác nào trong lưới. Công trình nghiên cứu 0đã sử dụng
khung lưới chữ nhật phân cấp để hỗ trợ tìm kiếm nhanh nhưng vẫn chưa cải thiện đáng kể.
Cách tiếp cận sử dụng khung lưới động kết hợp với tìm kiếm theo hình xoắn ốc (spiral) mà
tác giả đề xuất trong mục 2.2.1.1 có tốc độ thực thi hơn hẳn. Thuật toán này cho phép thêm
động đối tượng cùng với cấu trúc băm hỗ trợ xác định nhanh điểm thuộc tam giác nào trong
lưới và sẽ sử dụng vào các thuật toán tìm kiếm sau này. Phương pháp xây dựng lưới tam
giác song song có thể tiếp cận kỹ thuật xử lý vùng đụng độ [3] hay sử dụng phân hoạch theo
nguyên lý chia để trị [4] [5] . Ở đây, tác giả đưa ra phương pháp phân hoạch đơn giản để
hiện thực thuật toán xây dựng lưới tam giác song song với khả năng ghép song song các cặp
2
lưới tam giác tương ứng được nêu trong mục 2.2.1.3. Trong phần xây dựng thuật toán tạo
lưới tam giác Delaunay ràng buộc, tác giả chú trọng phần xử lý khi các cạnh ràng buộc cắt
nhau không được nêu lên trong [7] [6] và thực hiện đồng thời việc kiểm tra cắt cạnh ràng
buộc, thêm đỉnh mới vào lưới tam giác (giao của hai cạnh ràng buộc nếu có) và hiệu chỉnh
toàn bộ thông tin chèn cạnh trong một lần duyệt khác với [8] . Kết quả so sánh các thuật
toán có thể xem trong các (Bảng 1, Bảng 2, Bảng 3). Để các thuật toán xây dựng lưới tam
giác ứng dụng vào thực tế, tác giả đã phải giải quyết một loạt các bài toán sai số gặp phải.
Kỹ thuật xử lý sai số được đề cập trong mục 2.2.3.
Dòng các thuật toán tìm kiếm như tìm đối tượng lân cận gần nhất hay tìm đối tượng theo
tuyến đều sử dụng cấu trúc băm của thuật toán chèn đỉnh tuần tự được nêu trong mục
2.2.1.1 nên không cần công đoạn tiền xử lý như trong [9] [10] . Xem cơ cấu hoạt động trong
Hình 5. Riêng với loại bài toán tìm k-lân cận gần nhất tác giả đã cho phép mở rộng khả năng
tìm kiếm đồng thời cho tất cả các đối tượng không gian cơ bản: điểm, đường và vùng (xem
3.3.1).
Các bài toán GIS cơ bản: lấy vùng đệm của đối tượng (4.1.1), hiệu chỉnh dữ liệu (4.1.2)
hay nhóm bài toán giao thông: xây dựng mạng lưới giao thông (4.2.2) đều dựa trên cấu trúc
lưới tam giác Delaunay hoặc Delaunay ràng buộc. Kết quả so sánh các thuật toán này xem
trong (Bảng 6, Bảng 7, Bảng 8, Bảng 9).
Cuối cùng, tác giả đã thiết kế và hiện thực tập tin quản trị cơ sở dữ liệu không gian và
thuộc tính thống nhất GEOBASE (xem các mục 3.2) để áp dụng vào website
www.vietbando.com và bộ biên tập bản đồ DOLGIS 8.0.
1.3 Các đóng góp chính của luận án
- Cải tiến thuật toán tạo lưới tam giác bằng phương pháp chèn đỉnh tuần tự.
- Xây dựng thuật toán tạo lưới tam giác Delaunay theo phương pháp song song.
- Xây dựng thuật toán tạo lưới tam giác Delaunay ràng buộc với khả năng xử lý sai số.
- Xây dựng một số thuật toán trong GIS dựa trên lưới tam giác Delaunay và lưới tam giác
Delaunay ràng buộc (hiệu chỉnh dữ liệu, lấy vùng đệm, tìm lân cận, tìm kiếm lân cận
theo tuyến).
- Xây dựng mô hình biểu diễn mạng giao thông thực tế và hiện thực một số thuật toán cơ
bản (xây dựng mạng giao thông từ dữ liệu thô, tìm đường đi ngắn nhất…).
- Xây dựng thuật toán tạo lưới địa hình 3 chiều nhanh từ tập điểm độ cao, đường bình độ.
2 Xử lý dữ liệu không gian
Trong chương này, tác giả tổng quan một số cấu trúc chỉ mục không gian nhằm nâng cao
hiệu suất truy vấn và xử lý như R-Tree, Kd-Tree. Các cấu trúc chỉ mục này thường chú
trọng việc hỗ trợ truy xuất nhanh đến các đối tượng không gian nhưng còn hạn chế cho các
3
thao tác xử lý thông tin không gian. Còn một trong các cấu trúc quan trọng hỗ trợ tốt các
thao tác xử lý dữ liệu không gian là lưới tam giác Delaunay. Tuy nhiên, các thuật toán xây
dựng lưới tam giác rất phức tạp nên còn hạn chế ứng dụng trong các hệ thống khai thác dữ
liệu không gian thương mại. Vì vậy, ở đây tác giả tập trung nghiên cứu mô hình và các thuật
toán xây dựng lưới tam giác Delaunay nhằm cải tiến tốc độ thực thi của chúng.
2.1 Cấu trúc chỉ mục không gian
Cấu trúc chỉ mục không gian được sử dụng trong các hệ cơ sở dữ liệu không gian để tối
ưu hóa truy vấn không gian. Một cách tiếp cận thông dụng là dùng ngăn chứa dữ liệu dựa
vào khái niệm khung bao chữ nhật nhỏ nhất. Các đối tượng được gom nhóm thành các phân
cấp, rồi lưu trữ chúng trong một cấu trúc chẳng hạn như: Kd-tree, R-tree…
2.2 Lưới tam giác Delaunay
Lưới tam giác Delaunay là cấu trúc hình học đa dụng và được sử dụng trong rất nhiều
lĩnh vực như hệ thống thông tin địa lý (GIS), vật lý, thiên văn học, tìm kiếm lân cận, phần tử
hữu hạn, đồ họa máy tính và đa phương tiện… Bài toán xây dựng lưới tam giác Delaunay là
bài toán cơ bản trong hình học tính toán.
Lưới tam giác T(V) của tập đỉnh V trên mặt phẳng R
2
là tập các cạnh E cần thỏa:
Không có hai cạnh nào trong E cắt nhau ở một đỉnh không thuộc V và
Các cạnh trong E chia bao lồi của tập đỉnh V ra thành các tam giác.
Hình 1. Lưới tam giác Delaunay
Hình 2. Một tập các ràng
buộc S
Hình 3. Lưới tam giác
Delaunay ràng buộc của S
B.N. Delaunay đã đưa ra tiêu chuẩn dựa vào tính chất đường tròn rỗng để xác định một
lưới tam giác có thỏa điều kiện Delaunay hay không. Lưới tam giác T(V) là lưới tam giác
Delaunay DT(V) nếu đường tròn ngoại tiếp của bất kỳ tam giác nào cũng không chứa bất kỳ
đỉnh nào của V bên trong nó. Lưới tam giác Delaunay ràng buộc CDT là sự mở rộng của
lưới tam giác Delaunay DT để điều khiển các ràng buộc. Ta có thể nói rằng CDT là lưới tam
giác gần nhất với DT với một số các ràng buộc bổ sung.
2.2.1 Các thuật toán xây dựng lưới tam giác Delaunay
2.2.1.1 Phương pháp chèn đỉnh tuần tự
4
Thực hiện chèn tuần tự từng điểm vào lưới tam giác đang tồn tại. Thuật toán này có tốc
độ chậm nhất so với các hướng tiếp cận khác nhưng với kỹ thuật xác định nhanh điểm
thêm vào thuộc tam giác nào trong lưới đã tăng đáng kể tốc độ thực thi. Hơn nữa, thuật
toán này dễ dàng áp dụng lưu trong bộ nhớ ngoài nên cho phép làm việc với dữ liệu lớn.
Xác định vị trí các đỉnh trong lưới tam giác:
Cho một phân hoạch phẳng trên mặt phẳng R
0
(trong trường hợp này là lưới tam giác)
và một đỉnh
x, y
. Cần tìm một phần tử của phân hoạch phẳng r
0
j
(tam giác) chứa đỉnh
đã cho. Để làm điều đó ta cần xây dựng một phân hoạch đơn giản hơn R
0
là R
1
phủ lên R
0
mà trên đó thực hiện nhanh quá trình xác định đỉnh cần tìm. Sau đó đặt mối tương quan
giữa phần tử r
1
i
của phân hoạch R
1
và phần tử r
0
j
của phân hoạch R
0
sao cho phần tử
r
0
j
gần phần tử r
1
i
nhất có thể. Bắt đầu từ phần tử r
1
i
thông qua chuỗi các tìm kiếm
qua các phần tử lân cận sẽ sẽ tìm được phần tử đích r
0
taget
. Sau khi thực hiện thành công
quá trình tìm kiếm ta có thể thay thế tương ứng r
1
i
r
0
j
bằng một tương ứng khác tốt
hơn chính là r
1
i
r
0
taget
. Do vậy, quá trình tìm kiếm sẽ ngày càng nhanh.
Bây giờ ta sẽ tìm cách chọn lựa phân hoạch R
1
tốt nhất có thể. Giải pháp cụ thể được đề
nghị ở đây là chọn phân hoạch R
1
là khung lưới chữ nhật đều. Ví dụ ta có một phân hoạch
phủ hoàn toàn lên hình vuông kính lưới
0,1
×
0,1
thì có thể chia nó thành m
2
phần là ô
lưới hình vuông. Đánh số thứ tự các ô lưới đó theo số tự nhiên: i, j
0, m 1
N: r
1
ij
.
Khi đó, với đỉnh cho trước
x, y
một cách tức thời ta có thể xác định được hình vuông
r
1
x
m
,
y
m
, ở đây
là ký hiệu lấy phần nguyên. Một trong các cải tiến đáng kể là kích
thước lưới chữ nhật phân hoạch sẽ tăng dần theo số lượng đỉnh thêm dần vào lưới để cho ở
mọi thời điểm, mỗi ô lưới sẽ chỉ phải phủ một số lượng tam giác xác định đủ nhỏ để quá
trình dò tìm lân cận là ít nhất có thể. Ví dụ khi kích thước lưới chữ nhật tăng lên hai lần
theo mỗi chiều, ta cần chép thông tin từ mỗi ô cũ sang các ô mới như sau:
, : 0,
1
:
1
2,2
,
1
2,2+1
,
1
2+1,2
,
1
2+1,2+1
1
,
(1)
Vậy kích thước lưới chữ nhật sau mỗi lần hiệu chỉnh sẽ tăng lên 4 lần. Khởi tạo các giá
trị ban đầu các ô lưới tham chiếu tới rỗng. Ô lưới nào chứa trọng tâm của tam giác đầu tiên
thì đặt tham chiếu đến tam giác đó. Tam giác đầu tiên được tạo ra từ ba đỉnh nhân tạo
thêm vào như Hình 4. Cần lưu ý rằng nếu có nhiều tam giác cùng phủ lên một ô lưới thì ta
chỉ tham chiếu đến một tam giác được cập nhật cuối cùng nhất.
Từ một đỉnh kế tiếp tuần tự thêm vào lưới tam giác, một cách tức thời ta có thể xác định
ngay nó thuộc r
1
i
. Từ r
1
i
ta tham chiếu được tam giác r
0
j
. Nếu đó chưa phải là tam
5
giác chứa đỉnh thêm vào thì thực hiện lần theo các tam giác lân cận dựa trên mô hình biểu
diễn để hướng đến tam giác cần tìm r
0
taget
(xem Hình 5).
Hình 4. Phát sinh ba đỉnh nhân tạo tạo
thành siêu tam giác
Hình 5. Xác định đỉnh thuộc tam giác
Độ phức tạp trung bình của thuật toán này với tập N điểm phân bố ngẫu nhiên là O(N).
2.2.1.2 Phương pháp chia để trị
Ý tưởng chủ đạo của nguyên lý chia để trị để xây dựng lưới tam giác Delaunay là thực
hiện đệ qui chia tập đỉnh ban đầu thành hai tập con có kích thức xấp xỉ nhau cho đến khi
mỗi tập dữ liệu con chỉ chứa số lượng đỉnh đủ nhỏ cho việc xây dựng lưới tam giác dễ
dàng. Giả sử =
0
0
là tập đỉnh ban đầu, và giả sử các tập con
0
1
và
1
1
là kết quả của lần
đầu tiên phân rã V ở mức = 1. Chúng ta có thể giả định rằng
0
1
nằm bên trái của
1
1
và
hoành độ x của các đỉnh
0
1
là nhỏ hơn của
1
1
. Thể hiện dưới đây là sự đệ qui phân rã tập
cho ba mức đầu tiên, khi tập con
ở mức k sẽ được chia thành hai tập con
2
+1
và
2+1
+1
cho mức kế tiếp + 1.
Hình 6. Sơ đồ phân rã tập đỉnh trong thuật
toán chia để trị
Hình 7. Sơ đồ ghép lưới tam giác trong
thuật toán chia để trị
Mỗi lưới tam giác Delaunay chỉ chứa một số tam giác được xây dựng từ tập đỉnh ở mức
cuối cùng nhất. Cặp lưới tam giác kề cận sẽ được ghép lại và mỗi lưới tam giác ghép là
một lưới tam giác Delaunay. Điều đó có nghĩa là mỗi lưới tam giác ghép phải thỏa điều
kiện Delaunay và biên của lưới phải là bao lồi. Quá trình này còn tiếp tục cho đến khi các
0
3
1
3
2
3
3
3
4
3
2
2
5
3
6
3
3
2
7
3
0
2
1
2
1
1
0
1
0
0
=
0
3
1
3
2
3
3
3
4
3
2
2
5
3
6
3
3
2
7
3
0
2
1
2
1
1
0
1
0
0
=
r
1(i)
step 2
step 1
r
0(j)
r
0(taget)
Tam giác tham chiếu tới ô lưới thêm vào
Tam giác chứa đỉnh thêm vào
Đỉnh thêm vào
M
1
=
0,3
0
=
3, 0
2
=
3, 3
6
lưới tam giác
0
1
và
1
1
của tập đỉnh
0
1
và
1
1
ở bước chia đầu tiên được ghép lại thành
lưới tam giác
của toàn bộ tập đỉnh đầu vào ban đầu.
Độ phức tạp của thuật toán này là O(NlogN).
2.2.1.3 Phương pháp song song
Công đoạn đầu tiên của thuật toán này là phân hoạch tập đỉnh thành các khối không
giao nhau. Bắt đầu từ khung bao nhỏ nhất chứa tập đỉnh đầu vào, tác giả đề xuất ý tưởng
phân hoạch thành các mảnh nhỏ hơn bằng cách luân chuyển thực hiện các lát cắt dọc và
ngang ở chính giữa mỗi mảnh để tạo thành các mảnh nhỏ hơn. (Xem Hình 8)
Hình 8. Phương pháp phân rã cho nguyên
lý “chia để trị”
Hình 9. Phương pháp gộp thành lưới tam
giác tổng thể
Lưu ý rằng việc tạo lưới tam giác nội tại trong mỗi của mảnh ở mức thấp nhất có thể
được thực hiện đồng thời. Tuy nhiên, việc ghép các mảnh lân cận phải tuân thủ theo sơ đồ
như Hình 9. Đây là quá trình ngược lại của quá trình phân rã và nó cho phép dễ dàng hỗ
trợ hiện thực gộp song song thành lưới tam giác tổng thể. Tiếp cận này cho phép cài đặt
trên các hệ thống song song mà không phải xử lý đụng độ nên tốc độ cải thiện nhiều.
Độ phức tạp của thuật toán này là
, P là số lượng tiểu trình tham gia.
2.2.2 Thuật toán xây dựng lưới tam giác Delaunay ràng buộc
Phần này trình bày thuật toán xây dựng lưới tam giác Delaunay ràng buộc từ một lưới
tam giác Delaunay đã cho bằng cách thêm vào các cạnh ràng buộc.
Thuật toán chèn cạnh tiến hành theo hai bước chính:
- Loại các tam giác bị cắt bởi cạnh ab
để tạo ra các đa giác giả. Tạo lưới tam giác cho nó.
- Thêm cạnh ràng buộc vào lưới tam giác là đánh dấu chúng như những cạnh cố định, để
chúng trở thành một phần của lưới tam giác và không thể thay đổi được. Trong quá trình
chèn cạnh ràng buộc, tác giả đã cải tiến bằng cách thực hiện đồng thời việc kiểm tra cắt
cạnh ràng buộc, thêm đỉnh mới vào lưới tam giác (giao của hai cạnh ràng buộc nếu có)
và hiệu chỉnh toàn bộ thông tin chèn cạnh trong một lần duyệt. Các tình huống mô tả như
Hình 10.
5
7
4
6
2
3
1
7
(a) Chèn cạnh ab
(b) Cắt cạnh ràng buộc (in đậm) ở giao đỉnh i
(c) Các cạnh bị cắt bởi cạnh ràng buộc sẽ bị
loại bỏ
(d) Tập các đoạn con của cạnh ab được thêm
vào và các vùng đa giác giả sẽ được điền đầy
Hình 10. Các bước quá trình thêm cạnh ràng buộc vào lưới tam giác
2.2.3 Xử lý sai số
Hình 11. Một số tình huống sử lý sai số dựa trên r-epsilon
2.2.4 Các kết quả thử nghiệm
2.2.4.1 Các thuật toán xây dựng lưới tam giác Delaunay hiện thực gồm:
Thuật toán chèn đỉnh tuần tự của Shewchuk JR. (I&I-SH)
Thuật toán chèn đỉnh tuần tự dựa trên chia lưới hai mức của B. Zalik. (I&I-ZL)
Thuật toán chèn đỉnh tuần tự Skvortsov. (I&I-SK)
Thuật toán chèn đỉnh tuần tự Skvortsov cải tiến. (I&I-OWNER)
Thời gian
thực thi thuật
toán (s)
Số đỉnh (N) phát sinh ngẫu nhiên
1000000
2000000
3000000
4000000
5000000
I&I-SH
32.031
85.296
153.031
233.266
322.047
I&I-ZL
9.750
26.609
60.640
102.94
181.053
I&I-SK
8.219
19.877
28.737
39.925
52.613
I&I-OWNER
7.453
15.922
24.813
34.187
43.984
Bảng 1.Thời gian (s) thực thi các thuật toán xây dựng lưới tam giác Delaunay
t
p
r-epsilon
(b)
l
p
r-epsilon
(a)
p
1
r-epsilon
p
2
r-epsilon
l
2
l
1
(c)
d)
c)
b)
a)
8
Công thức tính độ tăng tốc của thuật toán
như sau:
=
1
Công thức tính hiệu suất của thuật toán như
sau:
=
1
Ở đây:
p là số lượng processors (threads).
T
1
là thời gian thực thi của thuật toán tuyến tính.
T
p
là thời gian thực thi của thuật toán song song với p processors (threads).
Để đánh giá chi tiết mức độ cải thiện của thuật toán xây dựng lưới tam giác Delaunay
song song tác giả đã chạy thử nghiệm trên máy Intel(R) Xeon(R) CPU E5420 @ 2.50Ghz (2
processors) 16 GB RAM với hệ điều hành Microsoft Windows Server 2008 Enterspise x64
Edition. Kết quả thực nghiệm được mô tả theo bảng dưới đây:
Số lượng
điếm ngẫu
nhiên N
Thời gian thực thi (ms)
DT
(T
1
)
Parallel-DT
2 threads
4 threads
T
p
S
p
E
p
T
p
S
p
E
p
1000000
3104
1357
2.3
1.1
873
3.6
0.9
2000000
6848
2917
2.3
1.2
1934
3.5
0.9
3000000
11045
4664
2.4
1.2
2964
3.7
0.9
4000000
15647
6318
2.5
1.2
4103
3.8
1.0
5000000
20623
7972
2.6
1.3
5120
4.0
1.0
Bảng 2. Bảng so sánh độ tăng tốc thuật toán Delaunay song song
2.2.4.2 Thuật toán xây dựng lưới tam giác Delaunay ràng buộc
Dữ liệu thực tế
(các thành phố)
Số cạnh
Số điểm
Thời gian thực thi (s)
Thêm
điểm
Thêm
cạnh
Tổng
cộng
Oldenburg
7123
6155
0.047
0.047
0.094
San Joaquin
23867
18301
0.156
0.203
0.359
California
21693
21051
0.250
0.172
0.422
San Francisco
223622
175877
1.547
2.000
3.547
North America
179112
175821
3.094
1.687
4.781
Bảng 3. Thời gian thực thi thuật toán xây dựng lưới tam giác Delaunay ràng buộc
9
3 Xây dựng cơ sở dữ liệu khai thác dữ liệu không gian
3.1 Hệ cơ sở dữ liệu không gian
Thuật ngữ “hệ cơ sở dữ liệu không gian” đã trở nên phổ biến và cơ sở dữ liệu này được
xem như là tập các đối tượng trong không gian hơn là các hình ảnh hay bức tranh về không
gian. Ở một góc độ nhất định, ta có thể xem:
Hệ cơ sở dữ liệu không gian là một hệ cơ sở dữ liệu.
Hỗ trợ các kiểu dữ liệu không gian trong mô hình dữ liệu và ngôn ngữ truy vấn.
Cung cấp tối thiểu chức năng đánh chỉ mục không gian và có những thuật toán hiệu quả
cho việc kết nối không gian.
3.1.1 Mô hình hóa
Đối với mô hình các đối tượng cơ sở, các trừu tượng cơ bản là điểm, đường và vùng. Dựa
trên sự mở rộng của mô hình đặc tả đối tượng các đối tượng không gian cơ bản có thể tóm
lược theo mô hình phân cấp như Hình 12.
Hình 12. Mô hình cây phân cấp các lớp hình học
3.1.2 Kiến trúc hệ thống cơ sở dữ liệu không gian
Về nguyên tắc, các phần mở rộng sau đây để một kiến trúc tiêu chuẩn cần phải được hỗ
trợ:
Biểu diễn các kiểu dữ liệu ở dạng đối tượng không gian
Các thao tác cho các phép toán cơ sở nhất
Các cấu trúc chỉ mục không gian và các kỹ thuật truy cập
Ngôn ngữ truy vấn không gian
Giao diện đồ họa cho người dùng
3.1.2.1 Hệ thống đóng
Một trong các hệ thống cơ sở dữ liệu không gian đóng là sử dụng mô hình kiến trúc đối
ngẫu. Trong kiến trúc đối ngẫu tích hợp hai hệ thống con độc lập nhau: DBMS quản trị dữ
liệu phi không gian và hệ thống con một lưu trữ và xử lý dữ hiệu không gian.
Với cách tiếp cận này, mỗi đối tượng không gian được chia thành hai phần. Phần thứ nhất
chứa các thuộc tính phi không gian và được lưu trữ trong DBMS. Phần thứ hai là các thuộc
tính không gian và được giữ trong cấu trúc dữ liệu trực tiếp của hệ thống tập tin. Hai phần
Geometry Collection
Multi-Point
Multi-Polyline
Multi-Polygon
Point
Polyline
Polygon
Geometry
10
được nối bởi tham chiếu thích hợp. Ưu điểm của cách tiếp cận này là dễ dạng chọn lựa các
cấu trúc dữ liệu và thuật toán phù hợp cho chỉ mục và truy vấn trong hệ thống con không
gian. Tuy nhiên, một vấn đề được đặt ra sự truy vấn thông tin bị tách rời giữa thành phần
phi không gian và thành phần không gian, để được xử lý bởi DBMS và hệ thống con quản
trị dữ liệu không gian tương ứng.
3.1.2.2 Tích hợp dữ liệu không gian vào hệ DBMS
Nghiên cứu một số hệ thống cơ sở dữ liệu tích hợp dữ liệu không gian (ví dụ như MySQL,
Oracle, SQLServer…) có thể thấy rằng các hệ thống này có giao diện tích hợp như sau:
Không có sự khác biệt trên nguyên tắc giữa loại dữ liệu chuẩn và dữ liệu không gian.
Không có sự khác biệt trên nguyên tắc giữa chỉ mục thuộc tính chuẩn (B-tree) hay chỉ
mục không gian (R-tree).
Các phép kết dữ liệu về cơ bản cũng hoàn toàn tương tự nhau.
Các cơ chế hoạt động tối ưu hóa truy vấn không có sự khác biệt.
Sử dụng mã DBMS mở tiết kiệm nhiều nỗ lực phải đầu tư nghiên cứu. Tuy nhiên, việc
mở rộng hệ thống này phụ thuộc vào nhà cung cấp DBMS.
3.2 Hệ quản trị cơ sở dữ liệu GeoBase.
3.2.1 Giới thiệu GeoBase
- GeoBase bỏ qua các ràng buộc của mô hình cơ sở dữ liệu quan hệ và sử dụng các khối
bộ nhớ thường trực hoạt động theo nguyên lý LRU (Least Recently Used) để đồng bộ các
thông tin đang sử dụng nhất. GeoBase sử dụng các cấu trúc chỉ mục B-Tree và R-Tree để
hỗ trợ truy cập nhanh vào dữ liệu trên đĩa.
- Geobase sử dụng cơ cấu phân dữ liệu thành các khối bộ nhớ có kích thước cố định để dễ
dàng ánh xạ lên bộ nhớ chính và toàn bộ dữ liệu được lưu vào một tập tin hệ thống duy
nhất. Dung lượng dữ liệu quản lý của GeoBase lên đến cỡ hàng terabyte cho cả các hệ
thống máy tính cấu hình thấp và trung bình.
3.2.2 Các tính năng cơ bản của GeoBase
Dữ liệu trong GeoBase được lưu trữ thành bản ghi trong các bảng. Các kiểu sau có thể là
các thành phần của bản ghi trong GeoBase:
Kiểu
Mô tả
Bool
Kiểu logic (true, false)
Int8
Số nguyên 1 byte
Int16
Số nguyên 2 bytes
Int32
Số nguyên 4 bytes
Int64
Số nguyên 8 bytes
Real32
Số thực 4 bytes
Real64
Số thực 8 bytes
11
String
Chuỗi ký tự (độ dài không xác định)
Blob
Chứa các đối tượ ng dạng nhị phân
Geometry
Chứa các đối tượng không gian chuẩn OpenGIS
Bảng 4. Các kiểu dữ liệu cơ bản trong GeoBase
3.2.2.1 Mô hình GeoBase
Danh sách các yêu cầu tối thiểu đối với GeoBase như sau:
Một hệ cơ sở dữ liệu có khả năng lưu trữ và truy vấn cả dữ liệu thuộc tính và dữ liệu
không gian.
Hỗ trợ các cấu trúc chỉ mục thích hợp và khả năng phân loại dữ liệu thuộc tính và
không gian.
Một hệ thống thư viện các chức năng khai thác không gian hoàn chỉnh.
Hình 13 Sơ đồ lưu trữ trong GeoBase
3.2.2.2 Các thao tác truy xuất dữ liệu không gian và thuộc tính trong GeoBase
Hình 14 Sơ đồ truy xuất dữ liệu không gian và thuộc tính
Chỉ mục thuộc tính được cài đặt là B-tree. Trật tự giữa hai bản ghi được quyết định bằng
cách áp dụng toán tử Compare với giá trị thuộc tính của nó. Chỉ mục thuộc tính hỗ trợ toán
tử find, trong đó lấy thông tin lưu trữ từ đĩa các bản ghi thỏa các tham số tìm kiếm đưa vào.
Toán tử find có hỗ trợ để thực hiện tìm kiếm theo phạm vi, tức là tất cả các bản ghi tương
ứng với các khóa nằm giữa hai giá trị nhất định có thể được lấy bằng cách tìm bản ghi tương
ứng từ cận dưới và sau đó sử dụng các toán tử compare và next cho đến khi gặp cận trên.
12
Chỉ mục không gian được cài đặt là R-tree. Chỉ mục không gian hỗ trợ một loạt các toán
tử tìm kiếm không gian, chẳng hạn như toán tử overlap để tìm kiếm các bản ghi giao với đối
tượng không gian xác định, hoặc toán tử within để lấy các bản ghi được chứa trong một đối
tượng không gian xác định. Xem Hình 14.
3.2.2.3 Mô hình hoạt động của GeoBase
Các trạng thái của GeoBase có thể được kiểm soát và lập trình bằng lệnh đến hệ thống
thông dịch của chúng. Điều này cho phép hệ thống được mở rộng bằng cách viết thêm các
chức năng mới hoặc chiến lược truy vấn được lưu trữ trong thư viện của các script GeoBase
(xem Hình 15).
Hình 15 Sơ đồ hoạt động GeoBase
3.2.2.4 Các kiểu dữ liệu và một số thao tác trong GeoBase
GeoBase cung cấp các chức năng cơ bản cần thiết để lưu trữ và xử lý dữ liệu không gian
và phi không gian.
Hình 16 Sơ đồ tương tác giữa kiểu dữ liệu và thao tác
File
Core
API tools
(GEOLIB)
Library
Interpreter
Desktop
WEB
PDA
User
….
13
3.2.3 So sánh tốc độ thực thi trên một số thao tác cơ sở dữ liệu cơ bản.
Thời gian thực thi theo (ms)
Thử
nghiệm
Thêm
Truy vấn
Xóa
10000
bản ghi
Trung
bình
100 bản
ghi
Trung
bình
50 bản
ghi
Trung
bình
GeoBase
516
0.0516
31
0.31
94
1.88
MySQL
2840
0.284
516
5.16
202
4.04
Bảng 5. Tốc độ thực thi 3 thao tác cơ bản trên cơ sở dữ liệu
3.3 Một số thuật toán khai thác dữ liệu không gian.
3.3.1 Bài toán lân cận gần nhất (nearest neighbor search – NNS)
Trong hệ thống thông tin địa lý thì tìm kiếm lân cận là một trong những ứng dụng quan
trọng và được sử dụng nhiều. Bài toán tìm kiếm lân cận gần nhất (nearest neighbor search -
NNS) là bài toán tối ưu hóa việc tìm kiếm đối tượng gần nhất trong không gian. Một trong
các mở rộng của bài toán lân cận gần nhất là bài toán k-lân cận gần nhất. Chúng tôi giới
thiệu ở đây hai thuật toán xấp xỉ tìm kiếm k-lân cận gần nhất cho đối tượng điểm và đối
tượng đường dựa trên lưới tam giác Delaunay và lưới tam giác Delaunay ràng buộc.
3.3.1.1 Thuật toán xấp xỉ k-lân cận gần nhất cho đối tượng điểm
Chúng ta sử dụng một hàng đợi ưu tiên PQ theo trật tự khoảng cách đến mỗi điểm tăng
dần đối với điểm q.
Thuật toán P_K_NNS:
Bước 1: Tìm tam giác chứa điểm .
Bước 2: Xác định 3 đỉnh của tam giác là
1
,
2
,
3
. Tính các khoảng cách
=
,
, = 1,3
. Lưu các đỉnh này vào hàng đợi ưu tiên .
Bước 3: Lấy từng đỉnh từ hàng đợi ưu tiên . Nếu đỉnh chưa được thăm thì lưu nó vào
danh sách kết quả . Lấy tất cả đỉnh kề với đỉnh rồi tính các khoảng cách của nó so
với đỉnh .
=
,
, = 1,
. Lưu các đỉnh này vào hàng đợi ưu tiên . Đánh dấu đỉnh
đã thăm.
Bước 4: Quay lại bước 3 cho đến khi lấy ra đủ đỉnh. Thuật toán kết thúc.
Thuật toán đầu tiên tác giả thử nghiệm dựa trên thư viện ANN, còn thuật toán thứ hai là một
thuật toán cải thiện tốc độ tìm kiếm của tác giả dựa trên lưới tam giác Delaunay. Qua Bảng
6 so sánh có thể cho thấy rằng tốc độ thực thi giải pháp của tác giả có tốc độ vượt trội với
mọi k. Khi k càng lớn thì tốc độ thực thi thuật toán thứ hai càng vượt trội hơn hẳn.
Số đỉnh lân
cận (k)
Thời gian thực thi (s) thuật toán k-lân cận gần nhất cho 1000000 đỉnh
Dựa trên kd-tree (ANN)
Dựa trên DT
20000
0.61
0.031
14
40000
2.484
0.078
60000
6.297
0.125
80000
12.875
0.172
100000
20.547
0.218
200000
84.062
0.453
400000
308.546
0.969
Bảng 6. Thời gian thực thi các thuật toán tìm k-lân cận gần nhất
3.3.1.2 Thuật toán xấp xỉ k-lân cận gần nhất cho đối tượng đường
Để đơn giản và không mất tính tổng quát, chúng ta có thể coi tập đoạn thẳng L là các
cạnh ràng buộc của lưới tam giác Delaunay ràng buộc CDT đã được xây dựng trong bước
tiền xử lý.
Thuật toán:
Chúng ta sử dụng một hàng đợi ưu tiên theo trật tự khoảng cách đến mỗi đoạn tăng
dần đối với điểm .
Bước 1: Tìm tam giác chứa điểm .
Bước 2: Xác định 3 cạnh của tam giác là
1
,
2
,
3
. Tính các khoảng cách
=
,
, = 1,3
. Lưu các cạnh này vào hàng đợi ưu tiên .
Bước 3: Xác định 3 tam giác kề tam giác là
1
,
2
,
3
. Từ mỗi tam giác này xác định được 2
cạnh đối diện với các cạnh của tam giác tương ứng là
11
,
12
,
21
,
22
,
31
,
32
.
Tính các khoảng cách:
=
,
, = 1,3
, = 1,2
. Lưu các cạnh này vào hàng đợi ưu tiên .
Bước 4: Lấy từng cạnh từ hàng đợi ưu tiên . Nếu cạnh chưa phải là cạnh ràng buộc
thì lặp lại bước 3. Đánh dấu cạnh đã thăm.
Bước 5: Lặp lại bước 3 cho đến khi tìm thấy đủ k cạnh ràng buộc. Thuật toán kết thúc.
Thuật toán này hoàn toàn có thể mở rộng để hút đối tượng đường gần nhất rất cần thiết
để hỗ trợ quá trình tiền xử lý cho việc giám sát đối tượng di động thông qua các thiết bị
GPS.
Hình 17. Minh họa thuật toán k-lân cận gần nhất dựa trên lưới tam giác
1
2
3
15
3.3.1.3 Kết hợp - Thuật toánxấp xỉ k-lân cận điểm và đường gần nhất dựa trên lưới tam
giác Delaunay
Tác giả kết hợp 2 thuật toán trên để giải quyết cho bài toán tìm k đối tượng gần nhất
không phân biệt điểm hay đường. Chẳng hạn, từ vị trí công trình xảy ra cháy nổ, tìm k trụ
nước (đối tượng điểm) và bờ hồ (đối tượng cạnh) theo độ ưu tiên khoảng cách của chúng
đến công trình cần cứu chữa. Hướng tiếp cận khá đơn giản, chúng ta duy trì một lưới tam
giác Delaunay DT cho các đối tượng điểm, và một lưới tam giác Delaunay ràng buộc CDT
cho các đối tượng đường, vùng. Để việc kết hợp trở nên đơn giản hơn, tác giả đề xuất đóng
gói 2 thuật toán trên thành các lớp hoạt động như cơ chế lặp duyệt đối tượng Iterator, để có
thể tuần tự lấy ra các đối tượng điểm từ DT và đối tượng đường từ CDT theo thứ tự khoảng
cách tăng dần của chúng đến điểm truy vấn.
3.3.2 Bài toán tìm các đối tượng quan tâm xung quanh tuyến đường hoạch
định
Ta có thể phát biểu bài toán tìm các đối tượng xung quanh tuyến đường hoạch định
(Path based Range Query - PRQ) như sau: Cho một tập hợp điểm = {
1
,
2
,
3
, ,
},
cho một tuyến đường hoạch định được mô tả bởi tập điểm = {
1
,
2
, ,
} và
khoảng cách d > 0, ta cần tìm tất cả các điểm của tập nằm trong vùng đệm của
((, )) – ta hoặc có thể nói là tìm tất cả những điểm cách tuyến đường một
khoảng nhỏ hơn .
3.3.2.1 Thuật toán tìm đối tượng xung quanh tuyến đường dựa trên lưới tam giác (T-
PRQ)
Bước 1: Vớ i đường đi hoạch định = {
1
,
2
, ,
}, ta lấy từng cặp điểm trong ra xét
(ví dụ
1
2
,
2
3
, …,
1
), cho đến khi duyệt qua hết tất cả các cặp điểm thì dừng. Với
mỗi cặp điểm
+1
ta tìm tất cả các tam giác bị cắt bởi đoạn
+1
.
Bướ c 2: Lưu tấ t cả cá c đỉ nh củ a cá c tam giá c bị cắ t ở trên và o danh sá ch đỉ nh .
Bước 3: Với mỗi đỉ nh trong danh sá ch ở Bước 2, thực hiện loang tớ i cá c đỉ nh kề mà
đườ ng tròn bán kính d có tâm tại các đỉnh đó còn cắt đoạn
+1
.
Bước 4: Các đỉnh thỏa điều kiện của Bước 3 sẽ được lưu vào danh sách đỉnh kết quả trả về.
Quay lại Bước 1 cho đế n khi tấ t cả cá c đoạ n thẳ ng củ a đã đượ c xé t. Kết thúc thuật toán.
3.3.2.2 Độ phức tạp thuật toán
Độ phức tạp của thuật toán trên phụ thuộc vào Bước 1 và Bước 4. Nếu sử dụng kỹ thuật
xác định tam giác chứa điểm q trong thuật toán xây dựng lưới tam giác Delaunay theo
phương pháp chèn đỉnh tuần tự ở Chương 1 thì độ phức tạp là () cho đoạ n thẳ ng củ a
tìm giao với các tam giác của lưới . Bướ c 2 và 3 cũng cho độ phức tạp là (). Ở bước
16
4, vớ i bá n kí nh d không lớ n thì số đố i tượ ng tì m đượ c có bậ c là () và do phải loại bỏ
các đối tượng giao ở các đỉnh của tuyến đường bằ ng cây B -Tree nên độ phứ c tạ p tổ ng
cộ ng củ a toà n thuậ t toá n sẽ là ().
Hình 18. Mô phỏng thuật toán T-PRQ
1000000 đối tượng phân bố ngẫu nhiên trong khoảng (0 – 4000000000)
Số đoạn thẳng bằng 4
Bán kính tìm kiếm (R)
Thuật toán R-PRQ
Thuật toán T-PRQ
200.000.000
52.828
2.391
100.000.000
29.312
1.359
50.000.000
6.719
0.756
25.000.000
2.562
0.343
12.500.000
1.5000
0.172
Bảng 7. Thời gian (s) thực thi thuật toán tìm kiếm đối tượng xung quanh tuyến đường
4 Ứng dụng giải quyết các bài toán GIS
4.1 Các bài toán cơ bản
4.1.1 Bài toán tạo vùng đệm
Bài toán xây dựng vùng đệm đòi hỏi xác định vị trí không gian các điểm trên mặt phẳng
cách tập đối tượng không gian {
} không vượt quá khoảng cách
= (
).
Đa số các thuật toán xây dựng vùng đệm đầu tiên thực hiện tạo vùng đệm cho từng đối
tượng không gian riêng biệt, sau đó sử dụng thuật toán lần lượt hội các vùng riêng biệt để
tạo thành kết quả cuối cùng. Ta có thể áp dụng thuật toán xây dựng lưới tam giác
Delaunay ràng buộc để tối ưu quá trình tạo vùng đệm lên đáng kể.
4.1.1.1 Thuật toán
Bước1: Phân rã các đối tượng Multi-Point, Multi-Polyline, Multi-Polygon, Geometry
Collection thành tập các đối tượng đơn giản hơn Point, Polyline, Polygon.
Bước 2: Đối với tất cả các đỉnh đầu vào của các đối tượng Point, Polyline và Polygon ta xấp
xỉ bằng các đa giác đều quanh nó với bán kính .
1
2
3
17
Bước 3: Đối với các đoạn thẳng của đối tượng Polyline và ranh giới của Polygon ta xây
dựng các khung chữ nhật mà cùng kết hợp với các đa giác đều tạo ra ở bước trước sẽ tạo ra
các vùng đệm cho mỗi đoạn thẳng của Polyline và Polygon.
Bước 4: Tất cả các đa giác đều, các khung chữ nhật và các Polygon ban đầu sẽ trở thành dữ
liệu vào cho thuật toán xây dựng lưới tam giác Delaunay ràng buộc.
Bước 5: Tất cả các tam giác dù chỉ tham gia vào bất kỳ Polygon nào sẽ được đánh dấu tham
gia vùng đệm kết quả. Kết thúc thuật toán.
4.1.1.2 Độ phức tạp thuật toán
Bước phức tạp nhất trong thuật toán tạo vùng đệm là bước xây dựng lưới tam giác
Delaunay ràng buộc. Nếu chúng ta xấp xỉ vùng đệm tròn là đa giác đều gồm đoạn thẳng,
thì số lượng đỉnh tham gia vào lưới tam giác sẽ là (. ), ở đây – số lượng đỉnh của
tập đối tượng không gian. Bởi vậy, độ phức tạp trong trường hợp xấu nhất là (
2
.
2
),
còn độ phức tạp trung bình là (.. (. )).
Bán kính
vùng đệm
r
Số lượng điểm trên đường tròn
32
64
128
Các phương pháp lấy vùng đệm
GEOS
TIN
GEOS
TIN
GEOS
TIN
100
3042
453
3697
734
5241
1328
200
9001
781
10732
1062
14288
1765
500
14352
2375
15615
3000
18408
4500
Bảng 8. Thời gian thực thi thuật toán lấy vùng đệm của dữ liệu nước Anh
Minh họa lấy vùng đệm của nước Anh tạo từ hai đối tượng Polyline gồm 702 điểm và
1155 điểm. Vùng đệm của điểm lần lượt được xấp xỉ đa bằng giác đều với 32 điểm, 64
điểm và 128 điểm. Bán kính vùng đệm r lần lượt là 100, 200 và 500. Thời gian thực thi
tính theo đơn vị ms. Thuật toán lấy vùng đệm GEOS là mã nguồn mở. Qua bảng so sánh,
nhận thấy rằng thuật toán lấy vùng đệm dựa trên lưới TIN có tốc độ vượt trội.
Hình 19. Lấy vùng đệm của đường
Hình 20. Lấy vùng đệm của vùng
18
4.1.2 Bài toán hiệu chỉnh dữ liệu không gian từ nhiều nguồn khác nhau
Trong phần này, chúng tôi sẽ trình bày giải pháp hiệu chỉnh dữ liệu dựa trên phương pháp
biến đổi Affine bằng lưới tam giác Delaunay. Giả sử chúng ta có hai bản đồ, một bản đồ
tham chiếu và một bản đồ tương ứng. Để thực hiện phép biến đổi Affine bằng lưới tam giác
Delaunay, ta cần một tập các điểm điều khiển trên bản đồ tham chiếu, và các điểm tương
ứng trên bản đồ còn lại. Từng cặp điểm điều khiển tương ứng từ hai bản đồ chỉ ra những vị
trí tương đồng trên mỗi bản đồ. Quá trình chuyển đổi thực hiện qua hai bước:
Tạo lưới tam giác Delaunay với tập điểm điều khiển trên bản đồ tham chiếu, và tạo một
tập tam giác tương ứng với các điểm điều khiển trên bản đồ còn lại.
Suy ra tọa độ trên bản đồ tham chiếu từ mỗi điểm hay mỗi đỉnh của đối tượng không
gian trên bản đồ còn lại, sử dụng các hệ số đồng dạng. Các hệ số đồng dạng được tính
bằng cách so sánh hai tam giác tương ứng, một tam giác từ bản đồ tham chiếu và một
từ bản đồ còn lại.
Thuật toán này cho phép chúng ta khai thác dữ liệu trực tuyến từ các nguồn dữ liệu khác
nhau không qua việc tiền xử lý trước, đặc biệt là khả năng chồng các lớp thông tin ở dạng
ảnh (xem Hình 21, Hình 22).
Hình 21. Nắn ảnh TP. Hà nội
Hình 22. Nắn ảnh TP. Hồ Chí Minh
4.2 Các bài toán ứng dụng trên mạng giao thông
4.2.1 Mô hình biểu diễn mạng giao thông
Mạng giao thông có thể dễ dàng được mô hình hóa như một đồ thị. Các bài toán không
gian trên mạng này sau đó có thể được chuyển thành những bài toán thuộc về lý thuyết đồ
thị. Một mạng giao thông có thể coi là một đồ thị (, , ,
,
) sao cho:
=
1
,
2
,
3
, ,
: tập đỉnh (nút) của .
=
1
,
2
,
3
, ,
, ở đây
=
,
với 1,
và , 1,
(ở đây có thể
trùng ): tập cạnh (cung) nối các đỉnh của .
=
1
,
2
,
3
, ,
: tập trọng số ánh xạ tương ứng lên các cạnh của .
=
1
,
2
, ,
: tập luật hạn chế tác động lên các đỉnh của .
=
1
,
2
, ,
: tập luật hạn chế tác động lên các cạnh của .
19
Cho =
1
,
2
, ,
: tập các đối tượng quan tâm (POIs) nằm trong phạm vi ảnh hưởng
của mạng giao thông.
Trong mô hình biểu diễn mạng giao thông của tác giả có xử lý các ràng buộc, các hạn
chế và cả các thông tin được cập nhật động (rào chắn, kẹt xe…).
Hình 23. Phân bố cá c đố i tượ ng trên cạ nh
Hình 24. Cấ u trú c B+-tree quả n lý cá c đố i tượ ng dự a trên các khoả ng cá ch d
i
4.2.2 Thuật toán xây dựng mạng giao thông
Việ c xây dự ng mạ ng giao thông từ tậ p dữ liệ u thô là mộ t bà i toá n khá phức tạp. Ở đây,
chúng tôi trình bày m ột thuật toán dễ cài đặt nhưng thự c thi r ất nhanh cho phép xây dựng
mạng topology từ tập các đoạn thẳng cho trước.
Thuật toán gồm các bước cơ bản sau:
Tạo ra quan hệ thô dựa trên thuật toán xây dựng lưới tam giác Delaunay ràng buộc.
Lược bỏ các nút của lưới tam giác Delaunay có bậc cạnh ràng buộc bằng 2.
Cập nhật lại quan hệ topology theo mô hình wing-edge rút gọn.
Bảng dưới thống kê thời gian xây dựng mạng giao thông toàn Việt nam.
Lưới tam giác
Thời gian thực thi (s)
Dữ liệu
Số đỉnh
Số cạnh
Số mặt
Tạo lưới
TIN
Thiết lập
quan hệ
topology
Vietnam
2024591
6073743
4049177
48,188
2,922
Bảng 9. Thống kê thời gian thiết lập mạng giao thông toàn Việt nam
4.2.3 Bài toán tìm đường đi ngắn nhất
Tìm đường đi ngắn nhất là bài toán cơ bản cho một loạt ứng dụng. Trong lý thuyết đồ
thị, bài toán tìm đường đi ngắn nhất là một bài toán kinh điển. Ở đây, tác giả đã cải tiến
ạ
2
2
3
3
1
1
4
4
15
15
16
16
17
17
18
18
Cc đi tưng ny s đưc lưu trong cu trc chỉ mc
B+-Tree vớ i khó a tính theo khoả ng cá ch so vớ i nú t bắ t
đầ u. Cấ u trú c nà y cho phé p cậ p nhậ t dễ dà ng cá c đố i
tượ ng thuc cnh theo bt k trnh t no với tc đ rt
nhanh.
chẵ n
l
2
4
8
6
10
12
14
16
18
17
15
13
11
9
7
5
3
1
Chiề u số hó a cạ nh
20
thuật toán này dựa trên mô hình phân cấp giao thông nhưng vẫn cho thích nghi với các
ràng buộc động của nhu cầu tìm kiếm.
4.2.3.1 Mạng phân cấp giao thông
Để tăng tốc độ của thuật toán tìm đường đi ngắn nhất trên mạng giao thông, chúng tôi
sử dụng mô hình biểu diễn ở dạng mạng phân cấp như Hình 25. Việc xây dựng mạng phân
cấp có thể thực hiện tự động hay thủ công dựa trên kinh nghiệm. Nếu chúng ta sử dụng
mạng phân cấp giao thông thực nghiệm thì kết quả tìm kiếm chỉ là gần đúng.
Hình 25. Ví dụ về mạng phân cấp giao
thông
Hình 26. Vùng lân cận (Neighborhood -
Local area)
Ý tưởng chủ đạo
Để tìm đường đi từ nút s đến nút t ta thực hiện như sau:
Thực hiện tìm trong vùng lân cận quanh nút s và t.
Tìm trong mạng đồ thị cao tốc (thưa hơn).
Lặp lại các quá trình trên.
Khái niệm vùng lân cận
Tập các nút liên kết đến nút được gọi là vùng lân cận.
Các nút trong vùng lân cận là tương đối gần .
Với thông số , vùng lân cận phải đủ lớn để phủ nút gần nhất.
Chúng ta ký hiệu vùng lân cận là
.
Định nghĩa 1: (Vùng lân cận)
Cho đồ thị =
,
. Cho trước một nút . tập nút \ được sắp xếp theo khoảng
cách của chúng tính từ . Giả sử
là khoảng cách từ đến nút thứ trong . [ ;
(, )
],
Tìm các nút lân cận của 1 một nút theo thông số H
Tìm đường từ s đến t trên mạng phân cấp cao tốc
Mỗi đỉnh có 3 giá trị:
0
4
2
1
3
5
6
7
8
9
H = 5
S
N
5
(S)
Đồ thị con
1
2
3
4
5
6
21
(): khoảng cách từ đỉnh nguồn đến
(): cấp đồ thị hiện tại của đỉnh
(): khoảng cách từ đỉnh đến biên cục bộ
Tìm đường:
Việc tìm đường được thực hiện từ hai đầu: từ và từ .
4.2.3.2 Cải tiến
Định tuyến cao tốc dựa trên hạng mục đường. Giải thuật truy vấn cao tốc trên cũng có
thể được áp dụng để tìm đường đi hợp lý dựa trên hạng mục của đường mà ta đã đề cập
lúc đầu, với vài điểm khác biệt sau:
Mức l(e) của một cạnh e được xác định bởi cấp đường tương ứng với hạng mục của nó
dựa trên mức độ quan trọng. Ví dụ, các ngõ hẻm sẽ thuộc cấp 0 do ít quan trọng nhất,
các đường lớn thuộc cấp 1, tỉnh lộ cấp 2, và quốc lộ thuộc cấp 3. Và hiển nhiên số mức
tìm kiếm của ta cũng sẽ tương ứng với số cấp đường ta có.
Việc một node u có trở thành điểm nhập vào mức cao hơn không sẽ được quyết định
bởi cấp cao nhất của u, tức cấp đường cao nhất trong số các cạnh của u. Ví dụ node u
có hai cạnh tỉnh lộ thuộc cấp 2, một cạnh quốc lộ cấp 3, như vậy u sẽ thuộc đồ thị tìm
kiếm ở mức 3.
Bảng dưới đây liệt kê tốc độ thực thi các thuật toán tìm đường đi ngắn nhất (tính cả thời
gian khôi phục lộ trình để vẽ đường đi ngắn nhất) chạy trên dữ liệu mạng giao thông Việt
nam bao gồm 522019 nút và 675007 cạnh. Điểm thứ nhất xuất phát từ mũi cực bắc ở
Móng Cái và chạy đến điểm thứ hai ở mũi cực nam là Cà Mau.
Ưu điểm của cải tiến này là thuật toán có thể gắn thêm các ràng buộc luật giao thông
(cấm quẹo, U-Turn) hay các hạn chế thường gặp trong quá trình lưu thông thực tế (hạn chế
vào hẻm, hạn chế quẹo trái, …).
Thuật toán
Thời gian thực thi (ms)
Dijkstra
516
Dijkstra hai chiều
279
Dựa theo mạng phân cấp
16
Bảng 10. So sánh tốc độ thực thi các thuật toán
4.3 Mô hình cao độ số (DEM)
4.3.1 Khái niệm về mô hình cao độ số
Thuật ngữ mô hình cao độ số (Digital Elevation Model - DEM) bao hàm quá trình biểu
diễn các đặc tính độ cao của bản đồ địa hình trong không gian ba chiều của bề mặt trái đất.
DEM là dạng đơn giản nhất của phương pháp biểu diễn số trong trắc địa học và cũng là
22
phổ biến nhất. Một DEM là một biểu diễn của bề mặt trái đất với các tọa độ ngang X, Y và
độ cao Z. Độ cao địa hình trong DEM có thể được biểu diễn sử dụng các phương pháp sau:
Dữ liệu lưới đều
Dữ liệu lưới có thể được suy ra từ dữ liệu gốc theo các ảnh chụp trên không, ảnh lập thể
vệ tinh.
Dữ liệu điểm ngẫu nhiên
Các đặc trưng địa hình đôi lúc cũng được biểu diễn bởi một nhóm các dữ liệu địa hình
được xác định ngẫu nhiên với các tọa độ ba chiều (X, Y, Z). Dữ liệu điểm độ cao ngẫu
nhiên có thể dùng lưới TIN. Lợi thế của TIN là dễ dàng kiểm soát mật độ điểm tùy theo
địa hình.
4.3.2 Thuật toán tạo dữ liệu cho mô hình DEM
Việc xây dựng mô hình độ cao DEM khá đơn giản. Từ tập điểm độ cao (có thể được
trích ra từ dữ liệu lưới bình độ) ta thực hiện xây dựng lưới tam giác Delaunay. Định nghĩa
trước bước lưới đều tương ứng là dx, dy. Ta sẽ phủ lưới này lên lưới tam giác Delaunay
vừa xây dựng. Nếu điểm lưới nằm trong tam giác nào thì thực hiện tính nội suy điểm độ
cao theo tam giác đó. Điểm mấu chốt trong việc xây dựng lưới địa hình DEM chính là việc
xác định nhanh điểm lưới đều rơi vào tam giác nào thuộc lưới tam giác Delaunay. Phương
pháp xác định này đã được chúng tôi trình bày chi tiết ở trong chương 2.
5 Kết luận
Dưới đây là các kết quả chính đã đạt được trong luận án và định hướng nghiên cứu tiếp
theo của tác giả.
Các đóng góp trong luận án
Đưa ra một số cải tiến trong việc xây dựng lưới tam giác Delaunay và Delaunay ràng
buộc dựa trên phương pháp chèn điểm tuần tự và phương pháp xử lý song song. Thuật
toán xây dựng lưới tam giác theo phương pháp chèn đỉnh tuần tự cho phép cập nhật thông
tin động và với cấu trúc dữ liệu hỗ trợ, thuật toán xác định nhanh tam giác nào trong lưới
tam giác chứa một điểm cho trước mở ra một loạt khả năng ứng dụng trong tìm kiếm
nhanh thông tin lân cận.
Dựa trên lưới tam giác Delaunay và lưới tam giác Delaunay ràng buộc, tác giả đã xây
dựng thuật toán tìm k–lân cận gần nhất cho cả ba loại đối tượng không gian cơ bản (điểm,
đường và vùng) với khả năng hỗ trợ tìm đồng thời trên nhiều lớp thông tin khác nhau
cũng như thuật toán tìm đối tượng điểm quan tâm dọc theo tuyến đường đáp ứng khả
năng truy cập trực tuyến trên Web.
23
Cấu trúc lưới tam giác Delaunay còn được sử dụng để xây dựng thuật toán tạo vùng đệm
của các đối tượng không gian, thuật toán hiệu chỉnh dữ liệu không gian, thuật toán xây
dựng mạng dữ liệu địa hình 3D.
Xây dựng hệ quản trị cơ sở dữ liệu không gian GeoBase cho phép tích hợp dữ liệu không
gian 2D, 3D (vector, ảnh) và dữ liệu thuộc tính vào trong một hệ thống thống nhất cho
phép quản trị với dung lượng hàng terabyte cùng các cấu trúc chỉ mục tương ứng (B-Tree,
B+tree, R-Tree) và các mô hình biểu diễn quan hệ đối tượng (Geometry, Topology).
Xây dựng thuật toán tìm đường đi ngắn nhất (nhanh nhất) dựa trên mạng phân cấp để áp
dụng cho khả năng tìm kiếm trên mạng giao thông với các luật cấm (một chiều, cấm quẹo,
U-turn, cấm theo phương tiện, …), luật hạn chế (tránh hẻm, tránh đường kẹt, …) động.
Cuối cùng, các kết quả trong luận án được triển khai trong một số dịch vụ khai thác thông
tin dựa trên định vị vị trí, tìm đường đi đã được áp dụng trong một loạt các ứng dụng
giám sát các đối tượng di động và khai thác trực tuyến trên .
Hướng phát triển
Trên cơ sở các kết quả nghiên cứu đã đạt được và căn cứ nhu cầu của thực tế, những vấn
đề cần tiếp tục nghiên cứu và hoàn thiện là:
Tích hợp hệ thống điều khiển các thông số khai thác sử dụng ngôn ngữ truy vấn và giao
diện đồ họa người dùng (GUI).
Xây dựng thành công cụ biểu diễn tri thức và khai thác dữ liệu không gian trực quan.
Phát triển các thuật toán song song và xây dựng cơ sở hạ tầng phân bố cho khai thác và
xử lý dữ liệu không gian.
6 Một số ứng dụng
Các kết quả của luận văn đã được đã được sử dụng trên một số website như
www.vietbando.com, kunkun.vn, Ngoài ra, rất nhiều khách hàng là
các sở ban ngành ở thành phố HCM và các doanh nghiệp lớn như Viettel, Gtel,
Vinamilk…đang sử dụng các dịch vụ dựa trên khai thác và xử lý dữ liệu không gian dựa
trên các kết quả đó.
Hình 27. Tìm địa điểm
Hình 28. Tìm đường đi tối ưu
Hình 29. Tracking trên Web