Ma trận hàng thưa nén

Một phần của tài liệu (LUẬN án TIẾN sĩ) nâng cao hiệu năng thi hành các phép toán trên đồ thị (Trang 34 - 36)

5 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN

2.7 Ma trận hàng thưa nén

Như vậy, với cách biểu diễn CSR như trên, ta chỉ cần lưu 15 giá trị trong 3 mảng thay vì 16 giá trị như trong ma trận liền kề. Thực tế, khi xét với ma trận kích thướcn×m, CSR biểu diễn hiệu quả hơn khi có số N N Z < (n∗(m−1)−1)/2. Phương pháp biểu diễn này

nhìn chung cho phép thi hành nhanh các phép toán nhân vector ma trận [95].

Trong thực tế, cịn có thêm các phương pháp tổ chức dữ liệu đồ thị khơng hồn tồn đồng nhất với các phương pháp đã nêu. Tuỳ thuộc vào các yêu cầu thực tế khác nhau liên quan đến tối ưu về không gian lưu trữ, tối ưu cho các phép toán thêm/xoá/cập nhật hay tối ưu cho xử lý truy vấn mà có những biến thể khác nhau của các truy vấn trên [102]. Ngoài ra, trong một số trường hợp đặc biệt, các cách thức biểu diễn dữ liệu đồ thị nêu trên không phù hợp, chẳng hạn khi biễu diễn đa đồ thị hay biểu diễn đồ thị có các thuộc tính gắn với các đỉnh/cạnh. Khi đó, chúng ta lại cần phải có những cách thức biểu diễn bổ sung đối với các đồ thị đó.

2.3 Các phép tốn chính trên đồ thị

Trong phần này, chúng tơi sẽ trình bày những kết quả tóm lược các phép tốn chính trên đồ thị. Các phép tốn này được chia làm hai loại chính: (i) duyệt đồ thị, và (ii) phân tích đồ thị [18].

Với lý thuyết đồ thị, việc tiến hành các truy vấn trên đồ thị bao giờ cũng phải dựa trên quá trình thăm và duyệt đồ thị. Điều này xuất phát từ bản chất biểu diễn dữ liệu của đồ thị: các đỉnh thường được sử dụng để đại diện thực thể trong khi các cạnh thường được đặc tả các quan hệ giữa chúng. Chính vì thế, trong CSDL đồ thị cũng như các bài tốn được mơ hình hố bằng đồ thị, các phép tốn duyệt đồ thị có thể được xem như là trái tim của các thành phần xử lý truy vấn.

Ngoài việc duyệt đồ thị, trong q trình phân tích đồ thị, một số các phép tốn cũng được sử dụng chẳng hạn như tính khoảng cách giữa hai đỉnh, tìm đường đi ngắn nhất, tính

độ trung tâm, phân cụm đồ thị... Trong chương này chúng tơi cũng sẽ trình bày các định nghĩa cụ thể của các phép tốn phân tích đồ thị này.

2.3.1 Duyệt đồ thị

Định nghĩa 2.14. Duyệt đồ thị (hay đơi khi cịn gọi tìm kiếm trên đồ thị) là quá trình thăm (kiểm tra hoặc/và cập nhật) các cạnh và các đỉnh trong đồ thị. Quá trình duyệt đồ thị thường được phân loại dựa theo thứ tự các đỉnh được khám phá.

Khi duyệt đồ thị, vết các đỉnh và cạnh đã thăm hình thành các khái niệm "walk-lối đi", "path-đường đi", "cycle-chu trình" và được định nghĩa như sau [55]:

Định nghĩa 2.15. Lối đi (walk) là chuỗi liên tiếp các đỉnh và cạnh của đồ thị. Khi duyệt đồ thị từ đỉnh u đến đỉnh v, các đỉnh và cạnh đã thăm trong quá trình duyệt hình thành lối

đi giữa u và v.

Định nghĩa 2.16. Đường đi (path) là lối đi trong đồ thị mà khơng có đỉnh hay cạnh nào được lặp lại.

Định nghĩa 2.17. Chu trình (cycle) là đường đi mà đỉnh đầu và cuối trùng nhau.

Trong q trình duyệt đồ thị, có thể có những đỉnh được thăm nhiều hơn một lần nếu như đỉnh đó có nhiều đỉnh liền kề với nó. Do đó, nếu đồ thị càng "dầy" (dense), việc duyệt lại lại càng phổ biến hơn; ngược lại, với đồ thị thưa, thời gian duyệt lại một đỉnh sẽ ít đi. Chính vì điều này mà các phương pháp duyệt đồ thị bao giờ cũng phải lưu lại danh sách các đỉnh đã duyệt và trạng thái đã duyệt hết các đỉnh liền kề để có thể khám phá hết được các đỉnh trong đồ thị.

Duyệt đồ thị thường được phân thành hai phương pháp chính: duyệt theo chiều rộng trước và duyệt theo chiều sâu trước. Với giả thiết đồ thịGđược biểu diễn theo phương pháp sử dụng danh sách liền kề, chúng ta sẽ tìm hiểu kỹ hơn hai phương pháp duyệt này dưới đây:

2.3.1.1 Duyệt theo chiều rộng trước - BFS

Định nghĩa 2.18. Duyệt theo chiều rộng trước (Breadth-First Search - BFS) là giải thuật để duyệt cấu trúc dữ liệu đồ thị. Giải thuật này cho phép từ một đỉnh trong đồ thị, gọi là đỉnh gốc, khám phá tất cả các đỉnh liền kề có cùng độ sâu so với đỉnh gốc trước khi chuyển đến các đỉnh ở độ sâu tiếp theo [33].

Giải thuật này lần đầu được giới thiệu trong công bố của Edward F. Moore [76] năm 1959 để tìm đường đi ngắn nhất qua mê cung, và được phát triển sau đó bởi C. Y. Lee để xây dựng giải thuật định tuyến mạch điện năm 1961 [57]. Với cách tiếp cận duyệt các đỉnh liền kề như thế, BFS có thể được sử dụng để tính khoảng cách ngắn nhất (shortest distance)

giữa hai đỉnh bất kỳ trong đồ thị. Ngoài ra, BFS cũng được sử dụng để giải bài tốn tìm các đường đi từ một đỉnh nguồn đến tất cả các đỉnh còn lại của đồ thị. Hình sau minh hoạ quá trình duyệt theo BFS đối với một đồ thị có hướng với đỉnh gốc là 0 [72]:

Một phần của tài liệu (LUẬN án TIẾN sĩ) nâng cao hiệu năng thi hành các phép toán trên đồ thị (Trang 34 - 36)

Tải bản đầy đủ (PDF)

(138 trang)