xây dựng mạng topology từ tập các đoạn thẳng cho trước không cắt nhau (chỉ gặp nhau ở các đỉnh đầu mút. Thuật toán dựa trên một thuật toán rất kinh điển: sắp xếp. Độ phức tạp của thuật toán sắp xếp cũng là độ phức tạp của thuật toán này.
4.3.3.1. Giới thiệu
Mạng giao thông được mô tả dưới dạng các đoạn thẳng. Bản thân các đoạn thẳng chỉ cho phép hình dung về mặt không gian. Nhằm nâng cao giá trị khai thác ta cần bổ sung thêm các thông tin về các mối quan hệ không gian, mối quan hệ topology[40] . Đối với những mạng giao thông lớn đòi hỏi thuật toán phải có tốc độ nhanh.
4.3.3.2. Hướngtiếpcận xây dựng thuật toán
4.3.3.2.1. Phân tích
Thuật toán với giả định rằng các cạnh trong tập cạnh không cắt nhau (ngoại trừ các điểm đầu cuối). Để làm được điều này, tác giả đã sử dụng thuật toán tạo lưới tam giác Delaunay ràng buộc, sau đó chọn ra tập cạnh ràng buộc từ lưới và loại bỏ đi các đỉnh có bậc bằng hai để nối các cạnh với các đỉnh bậc hai đó thành một cạnh chung [4] .
Tìm tập nút
a) Dữliệu ban đầu b) Dữ liệu được xử
lý Hình 4.22. Gom nút
Từ tập các đoạn thẳng ta có nhiều cách để xác định tập nút. Thông thường các nút ở đầu các đoạn thẳng gần nhau trong một khoảng nào đó được xem là một nút. Để xác định các nút lân cận có thể dùng R-Tree, tuy nhiên khi tập các đoạn thẳng càng lớn, nghĩa là số lượng nút càng nhiều thì chi phí tạo cây R-Tree đáng phải cân nhắc. Hoặc ta có thể sử dụng phương pháp được đề xuất bởi Sebastian
Krivograd [65] . Ở đây chúng tôi tìm ra tập nút dựa vào các kỹ thuật sắp xếp: Quicksort hoặc Hash Sort [66] . Sắp xếp các mảng điểm theo 2 tiêu chí: tăng dần theo phương x, tăng dần theo phương y. Sau khi sắp xếp, các điểm có tọa độ gần nhau sẽ được gom lại thành từng nhóm trên mảng. Ta duyệt mảng tập điểm với 1 hằng số cho trước để phân nhóm. Mỗi nhóm sẽ có 1 nút đại diện và nút này là nút cần tìm [Hình 4.22].
Thiếtlậpmối quan hệ không gian LE,RE, FE
∂0 ∂1 ∂2 ∂3 ∂4 x Hình 4.23. Cách tìm LE, RE và FE
Như trong [Hình 4.23], nếu lấy một nút làm tâm thì các cạnh nối với nút đó sắp xếp tăng dần theo góc hợp bởi cạnh đó với trục x. Như vậy nếu các góc này được tính và sắp xếp tăng dần như hình 3, thì việc xác định LE, RE cho một cạnh nào đó trở nên dễ dàng: LE, RE của cạnh có góc là cạnh có góc
. Cho đơn giản, cạnh có góc được chọn là FE cho nút đó.
4.3.3.2.2. Mởrộngthuật toán
Thuật toán xây dựng topology dựa trên kỹ thuật sắp xếp nên khi dữ liệu lớn ta có thể sắp xếp từng phần (có thể lưu file hoặc thực hiện song song), rồi trộn các mảng điểm đã được sắp xếp (có thể sử dụng Merge sort) thành một mảng duy nhất, sau đó mới tiến hành thiết lập các quan hệ không gian.
Cấu trúc dữ liệu
Mỗi phần tử mảng có cấu trúc như sau: X: tọa độ x
EdgeId: chỉ số của cạnh
IsStart: mỗi cạnh qui ước nút bắt đầu (IsStart = true) và nút kết thúc (IsStart = false)
Angle: góc mà cạnh này tạo với trục x với tâm (X, Y)
Sắpxếp
Ứng với mỗi đoạn thẳng, tạo ra 2 phần tử có cấu trúc như trên. N đoạn thẳng tạo ra 2*N phần tử mảng. Sắp xếp các phần tử mảng theo tiêu chí: tăng dần X, tăng dần Y và tăng dần Angle. Tham số Δ được thêm vào để so sánh tọa độ (X,Y).
Thiếtlập các quan hệ không gian
Sử dụng tham số Δ để gom nhóm các phần tử mảng (tìm miền chỉ số của nhóm các nút lân cận). Mảng được phân thành nhiều nhóm . Ứng với mỗi nhóm, thiết lập các quan hệ không gian:
Nút: Giá trị (X,Y) của phần tử tạo thành nút đại diện cho nhóm FE: Giá trị .EdgeId là FE của nút đại diện
LE, RE: Tại mỗi phần tử
Nếu IsStart = true LE = .EdgeId Nếu IsStart = false RE = .EdgeId
Riêng với và
Xây dựng các đa giác
Xây dựng các đa giác từ các quan hệ không gian được trình bày trong [65] , để bắt đầu cho việc xây dựng phải tìm ra nút có giá trị nhỏ nhất, với thuật toán của chúng tôi nút cần tìm chính là nút đại diện của nhóm đầu tiên trong mảng.
4.3.3.2.3. Đánh giá độphứctạpthuật toán
Thời gian sắp xếp phụ thuộc vào thuật toán sắp xếp: Quick sort– , Hash sort– .
Thời gian tạo nút và các quan hệ không gian , , là .
Do đó, độ phức tạp của thuật toán phụ thuộc vào thuật toán sắp xếp mà chúng tôi đề xuất là . 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 4.2. Thống kê thời gian thiếtlậpmạng giao thông toàn Vietnam
Hình 4.24.Minh họatạo quan hệ topology cho mạng giao thông Vietnam