Tối ưu quyết định cho các ứng dụng thực tế.

Một phần của tài liệu Tiểu luận môn cơ sở dữ liệu nâng cao Đẳng cấu đồ thị con với thời gian đa thức (Trang 26)

Trong phần sau đây, chúng tôi sẽ giới thiệu cách xây dựng một cây quyết định hoàn chỉnh. Ưu điểm chính của cây quyết định hoàn chỉnh là có thể tìm được đồ thị con đẳng cấu trong thời gian bậc hai từ đồ thị đầu vào với đồ thị mẫu. Tuy nhiên, bất lợi của một cây quyết định đầy đủ kích thước tằng theo cấp số nhân. Bây giờ chúng ta sẽ đề nghị hai kỹ thuật khác nhau để giảm kích thước của cây quyết định. Phương pháp thứ nhất sẽ dựa trên ý tưởng rút gọn chiều rộng của cây quyết định hoàn chỉnh. Các đặc tính của các thuật toán mới dựa trên rút gọn chiều rộng cây quyết định tương tự như các thuật toán dựa trên một cây quyết định hoàn chỉnh. Tuy nhiên, sự phức tạp thời gian để phát hiện đẳng cấu đồ thị dựa trên việc rút gọn chiều rộng cây quyết định được tăng từ O(M2) lên O(M3). Ngoài ra, tối ưu cây quyết định theo chiều rộng không còn hỗ trợ phát hiện đẳng cấu đồ thị con. Phương pháp thứ hai nhằm mục đích rút gọn theo chiều sâu của cây quyết định. Cây quyết định rút gọn theo chiều sâu sẽ không còn đảm bảo một phát hiện đẳng cấu đồ thị trong thời gian đa thức. Tuy nhiên, họ rất thích hợp cho ứng dụng mà số lượng của đồ thị mẫu lớn.

8.1 Rút gọn cây quyết định theo chiều rộng.

Việc tạo cây quyết định cho một đồ thị mẫu G bao gồm việc tạo ra tất cả các hoán vị của ma trận kề của G và kết hợp cách phân loại trong cây quyết định cho mỗi ma trận này. Do đó, trong thời gian chạy ma trận kề của ma trận đầu vào được thực hiện theo cách cũ là phân loại trực tiếp bằng cây quyết định. Tuy

nhiên, bằng cách cho phép các hoạt động bổ sung về ma trận đầu vào tại thời gian chạy, số lượng các nút trong cây quyết định có thể được giảm đáng kể. Trong phần sau đây, chúng tôi trình bày 2 cách đơn giản để thực hiện công việc này:

Tập đầu tiên của biến đổi đơn giản chỉyêu cầu rằng các đỉnh của đồ thị đầu

vào được sắp xếp theo thứ tự nhưvậy mỗi đỉnh được kết nối với ít nhất một đỉnhmàxuấthiệntrước đó theo thứ tự.

Đối với các ma trận kề của đồ thị đầu vào được biểu diễn như một vector của các phần tử (a1, …, am), điều này có nghĩa rằng mỗi phần tử ai có ít nhất hai mục khác 0. Nó là đơn giản để cho thấy rằng ma trận kề của bất kỳ đồ thị kết nối có thể được chuyển đổi như trên. Vấn đề này là tương đương với việc tìm một cây bao trùm của đồ thị và như thế nó có thể được giải quyết trong thời gian bậc hai [Eve79]. Chúng tôi có thể giảm số lượng hoán vị của các ma trận kề A(G) bằng cách phân loại bằng cây quyết định. Cụ thể, tất cả các hoán vị của ma trận mẫu mà điều kiện trên không thỏa, có thể loại bỏ thời gian biên dịch. Đối với đồ thị có kết nối thấp, số lượng các nút trong cây quyết định được rút gọn bởi kỹ thuật này có thể rất nhiều. Khi chuyển đổi đồ thị đầu vào chỉ có phức tạp thời gian bậc hai, các thuật toán đẳng cấu đồ thị dựa trên các quyết định rút gọn cây có cùng sự phức tạp tính toán như trước đây. Ngoài ra, việc tìm ra đồ thị và đồ thị con đẳng cấu vẫn được hỗ trợ bởi một cây quyết định là tùy thuộc vào kỹ thuật rút gọn theo chiều rộng.

Kỹ thuật thứ hai cho việc rút gọn theo chiều rộng của cây quyết định được dựa trên quan sát sau đây. Cho MI = (a1, …, am) là ma trận kề của một đồ thị đầu vào GI. Giả sử rằng MI là để được phân loại bởi cây quyết định của đồ thị mẫu G. Hơn nữa, giả định rằng MI được phân loại tại mức k + 1 và đang ở nút N của cây quyết định. Trong bước tiếp theo, thuật toán sẽ cố gắng tìm một nút kế của N theo phần tử thứ k + 1 của MI, ak+1. Tuy nhiên, vào thời điểm này, thuật toán cây quyết định theo chiều rộng có thể được viết lại theo cách sau đây. Lưu ý rằng có chính xác (n - k)! ma trận hoán vị khác nhau của GI mà phần tử đầu tiên của dòng và cột (a1, …, ak) là giống hệt nhau. Do đó, khi MI được phân loại dựa vào phần tử ak, nằm trong n - k nút kế, cách biểu diễn mỗi ma trận hoán vị MI bởi phần tử ak+1 là khác nhau nhưng các phần tử a1, …, ak là giống nhau. Vì vậy, một thuật toán đẳng cấu đồ thị mới có thể xoay n - k cột và hàng cuối cùng của ma trận đầu vào MI và cố gắng phân loại các phần tử ak+1 của n – k phần tử theo dòng và cột vào các ma trận. Đương nhiên, trong một cây quyết định hoàn chỉnh, các phần tử của hàng và cột sẽ cho phép phân loại thành công. Tuy nhiên, toán đẳng cấu đồ thị cải tiến thì không còn cần thiết để kết hợp tất cả n-k nút kế, nhưng nó có khả

năng xây dựng một nút kế đơn. Thuật toán cải tiến vẫn có thể phân loại các ma trận đầu vào bằng cách thử xoay tất cả n - k dòng và cột cuối cùng của ma trận đầu vào. Nếu kế hoạch rút gọn này được áp dụng trên mỗi mức của cây quyết định, khi đó số nút trong cây sẽ được giảm theo cấp số nhân của n, với tổng số đỉnh của đồ thị mẫu. Do đó, trong trường hợp của một đồ thị vô hướng, không có

nhãn, kích thước của cây quyết định sẽ được giới hạn bởi O(3n/n) (xem phương

trình 13). Sự phức tạp tính toán của thuật toán đẳng cấu đồ thị mặt khác bị tăng lên bởi một cấp số nhân theo n do các hoán vị của ma trận đầu vào biểu diễn trên các mức của các cây quyết định. Như vậy, độ phức tạp thời gian của thuật toán mới cho đồ thị không có nhãn dựa trên một cây quyết định rút gọn được giới hạn

bởi O(n3) (xem phương trình 15). Việc xây dựng một cây quyết định rút gọn theo

kỹ thuật này được dựa trên một quy trình hai bước. Đầu tiên, cây quyết định hoàn chỉnh được xây dựng, và sau đó số lượng tối đa của các nút được rút gọn theo kỹ thuật mô tả ở trên. (Do đó, áp dụng rút gọn cây theo chiều rộng sẽ làm hạn chế kích thước theo hàm mũ của cây quyết định hoàn chỉnh). Tuy nhiên, nhược điểm của kỹ thuật rút gọn cây quyết định là chỉ có thể được sử dụng cho đẳng cấu đồ thị và không còn phát hiện đẳng cấu đồ thị con. Bằng cách cho phép chỉ có một nút kế thừa cho mỗi ma trận đại diện bởi một nút của cây quyết định, vài đồ thị con của đồ thị mẫu sẽ không còn có mặt trong cây quyết định. Do đó, khi thực thi nó sẽ không được phát hiện bằng các thuật toán cải tiến.

Hình 10 - Cây quyết định cho các đồ thị g1 và g2 của hình. 8 được trình bày sau khi cả hai kỹ thuật rút gọn chiều rộng được áp dụng.

Kỹ thuật thứ nhất không ảnh hưởng bởi vì các đồ thị g1 và g2 được hoàn toàn kết nối. Kỹ thuật thứ hai, tuy nhiên, làm giảm kích thước của cây quyết định đáng kể. Lưu ý rằng nhánh bên trái xuất phát từ nút gốc là không còn cần thiết vì tất cả các ma trận kề có thể được phân loại theo các nhánh bên phải. Do đó, cây quyết định cho các đồ thị g1 và g2 của hình 5 bây giờ chỉ có 6 nút thay vì 11 nút.

Trong phần trước, chúng ta chỉ ra rằng thuật toán mới dựa trên việc tiếp cận cây quyết định có nhiều điểm rất hay. Tuy nhiên, bất lợi chính của nó là bộ nhớ cấp phát tăng theo cấp số nhân, do đó nó áp dụng trên đồ thị có kích thước vừa phải. Trong phần này, chúng tôi giới thiệu tóm tắt kỹ thuật rút gọn theo chiều sâu, thuật toán này cũng thích hợp cho các ứng dụng trên các đồ thị lớn.

Một quan sát phổ biến trong các ứng dụng đồ thị thực tế là yếu tố phân nhánh của cây tìm kiếm, thuật toán của Ullman, cây lớn ở phía trên và nhỏ dần cho các mức phía dưới. Điều này đặc biệt đúng đối với đồ thị có nhãn chỉ tại đầu của cây tìm kiếm, nơi có thể có vài phép tìm kiếm, trong khi đó ở phần dưới của cây tìm kiếm thì không cần thủ tục quay lui nữa. Trong việc nhận diện các đối tượng 3D cơ bản, ví dụ, đồ thị đại diện cho các đối tượng 3D và đẳng cấu đồ thị được sử dụng để nhận ra các đối tượng và thiết lập vị trí của chúng, tìm kiếm một đẳng cấu đồ thị thường được dừng sau ba hoặc bốn đỉnh của một đối tượng được so khớp, bởi vì các đỉnh này là đủ để xác định vị trí của đối tượng. Dựa trên sự quan sát này, chúng tôi đề xuất rút gọn theo chiều sâu của một cây quyết định theo cách sau đây.

Thay vì biên dịch một cây quyết định hoàn chỉnh cho một đồ thị mẫu G có kích thước n, chúng ta chỉ xây dựng một cây quyết định cho tất cả các đồ thị con Sk của G có kích thước k, với k <n. Độ sâu của cây quyết định do đó giới hạn bởi k. Khi thực thi, đồ thị đầu vào chưa biết GI được phân loại bằng các thuật toán mới được mô tả trong Mục 6. Khi một nút lá đang ở mức k của cây quyết định, một đồ thị kích thước k con của đồ thị đầu vào đã được so khớp thành công với một hoặc một số đồ thị con của đồ thị mẫu. Để có được một đẳng cấu đồ thị con đầy đủ, quá trình tìm kiếm sau đó phải tiếp tục với một thuật toán thông thường. Tuy nhiên, không gian tìm kiếm của thuật toán thông thường đã được giảm đáng kể khi mảnh cần tìm được tìm thấy bởi cây quyết định có thể được sử dụng như là một khởi tạo của các thuật toán tìm kiếm thông thường.

Khía cạnh quan trọng nhất của phương pháp rút gọn cây quyết định theo chiều sâu là khả năng lập chỉ mục cho đồ thị mẫu. Rõ ràng, một cây rút gọn có thể kết hợp nhiều đồ thị mẫu khác nhau. Khi thực thi, một đồ thị đầu vào được

phân loại bởi thuật toán decision_tree dựa trên cơ sở của cây quyết định rút gọn theo chiều sâu gọi một nút lá đơn của cây quyết định. Chỉ đồ thị mẫu duy nhất được đại diện bởi các nút lá này sẽ được tiếp tục thí nghiệm bằng một thuật toán thông thường. Cây quyết định rút gọn theo chiều sâu thì rất có hiệu quả trong phương pháp lập chỉ mục cho các cơ sở dữ liệu lớn của đồ thị.

Một phần của tài liệu Tiểu luận môn cơ sở dữ liệu nâng cao Đẳng cấu đồ thị con với thời gian đa thức (Trang 26)