Cấu trúc dữ liệu của Hashmap sử dụng trong việc tìm đường

Một phần của tài liệu Xây dựng hệ thống cảnh báo tình trạng giao thông trên nền tảng web (Trang 70 - 71)

10 Phụ lục của đề tài

6.1 Cấu trúc dữ liệu của Hashmap sử dụng trong việc tìm đường

key, phần bên phải mô tả các value có trong Hashmap. Ví dụ, với key có giá trị

là 15425, value của nó sẽ là danh sách hai segment, và hai segment này sẽ có id

của điểm bắt đầu bằng với giá trị của key, tức là sẽ bằng 15425. Việc mộtsegment có nhiều hơn một segment kế tiếp, thì chứng tỏ ở đó sẽ có thể là ngã ba, ngã tư, ngã năm, ngã sáu, vòng xoay,...

Việc truy xuất các giá trị của Hashmap có thể được mô tả như sau:

segment_ke_tiep=Hashmap.get(id_diem_cuoi_cua_segment_hien_tai) (6.9)

Vì sử dụng cấu trúc dữ liệu Hashmap dưới dạng key value, nên khi truy xuất dữ

liệu, cụ thể là truy xuất danh sách cácsegment kế tiếp của segment hiện tại sẽ rất nhanh, độ phức tạp về thời gian là O(1), từ đó giúp cải thiện tốc độ tìm đường.

6.2.3 Điểm hạn chế của giải thuật Yen và cách khắc phục

Khi sử dụng giải thuật Yen cho hệ thống này, vì ở bước 2.1 (đã được trình bày trong mục 6.2.1), chúng tôi phải duyệt qua tất cả các segment trong đường đi tốt nhất thứ nhất, nên đã xảy ra việc tìm được đường đi tốt nhất thứ hai chỉ khác một, hai, ba,... hoặc một vài segment với đường đi tốt nhất thứ nhất. Việc này xảy ra vì trong quá trình tìm đường giữa điểm đầu và điểm cuối đã có đi qua các ngã ba, ngã tư, vòng xoay,... Việc này là không hợp lý trong quá trình tìm đường, vì sự khác biệt này quá nhỏ, không đủ để được xem xét là một sự lựa chọn tốt khác. Đây cũng chính là hạn chế của giải thuật Yen khi được áp dụng vào hệ thống này.

Các hình 6.2, 6.3 là minh hoạ cho hạn chế này khi được mô phỏng và trong

thực tế xảy ra khi sử dụng ứng dụng:

Một phần của tài liệu Xây dựng hệ thống cảnh báo tình trạng giao thông trên nền tảng web (Trang 70 - 71)