Kết quả thí nghiệm.

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 31)

Để kiểm tra hiệu quả của thuật toán mới trong thực tế, chúng tôi đã thực hiện một số thí nghiệm với đồ thị ngẫu nhiên tạo ra. Trong phần 7 đã chỉ ra được rằng sự phức tạp của thuật toán mới là bậc hai cho việc tìm đồ thị và đồ thị con đẳng cấu nếu cây quyết định cơ bản hoàn tất. Đối với các ứng dụng thực tế, nó sẽ là cần thiết để rút gọn cây quyết định theo một hoặc một số kỹ thuật rút gọn được mô tả ở phần 8. Vì vậy, tất cả các tài liệu thí nghiệm trong phần này được thực hiện với sự tôn trọng để phát hiện đẳng cấu đồ thị và cây quyết định cơ bản là đối tượng được rút gọn theo chiều rộng hoặc theo chiều sâu. Đối với mỗi thí nghiệm, chúng tôi tạo ra một hoặc nhiều đồ thị mẫu và sử dụng các đồ thị mẫu để tạo ra các đồ thị đầu vào đẳng cấu. Tất cả các đồ thị được tạo ra cho các thí nghiệm trong phần này là vô hướng và không có nhãn. Thuật toán mới của cây quyết định và thuật toán thông thường dựa trên các thủ tục được cải tiến bởi Ullman là cả hai thực hiện trong C++ và chạy trên một máy trạm SUN Sparc10. Để so sánh hiệu suất của các thuật toán chúng ta cần một phương pháp tính toán cần thiết. Chúng tôi xác định rằng một bước tính toán cơ bản là so sánh của một đỉnh của đồ thị mẫu và các cạnh nối với nó và một đỉnh của đồ thị đầu vào với các cạnh nối với nó. Hiệu năng được đo bằng cách đếm số lượng các bước tính toán cơ bản đã được thực hiện trong khi tìm kiếm cho tất cả các đẳng cấu đồ thị. Ngoài ra, đối với mỗi thí nghiệm, chúng tôi đo thời gian tính toán tuyệt đối của cả hai thuật toán. Kích thước của các cây quyết định giới hạn bởi số lượng các nút và các yêu cầu về bộ nhớ cũng được đưa ra cho mỗi thí nghiệm.

Trong thí nghiệm đầu tiên, chúng tôi muốn chứng minh tính hiệu quả nhưng có phần hạn chế của thuật toán mới đối với kích thước của đồ thị có thể được xử lý. Với mục đích này, chúng tôi ngẫu nhiên tạo ra các đồ thị mẫu với số lượng đỉnh càng lúc càng tăng. Một bản sao của một đồ thị mẫu bằng cách hoán vị các đỉnh một cách ngẫu nhiên được sử dụng như là một đồ thị đầu vào. Chúng tôi bắt đầu với một đồ thị bao gồm 10 đỉnh và 15 cạnh và kết thúc với một đồ thị bao gồm 19 đỉnh và 28 cạnh. Số lượng các bước tính toán đã được thực hiện bởi thuật toán mới và thuật toán thông thường để tìm tất cả đẳng cấu đồ thị giữa đồ thị mẫu và đồ thị đầu vào được vẽ trong hình 11. Thời gian tính toán tương ứng được hiển thị trong hình. 12. Rõ ràng, các thuật toán mới hiệu quả hơn so với các thuật toán quay lui như dự đoán. Chú ý rằng thời gian tính cho một đồ thị với 19 đỉnh và 28 cạnh của thuật toán bình thường thì lâu hơn gấp mười lần so với thuật toán mới.

Chi phí của thuật toán mới, chính là kích thước của cây quyết định. Trong hình 13, số nút trong cây quyết định rút gọn theo chiều rộng và cây hoàn chỉnh ngày càng tăng. Sự tăng trưởng của cây quyết định rõ ràng là theo cấp số nhân. Trong khi chỉ có 945 nút trong một cây quyết định hoàn chỉnh cho một đồ thị với 10 đỉnh, ta có đến 47,050 nút trong một cây cho một đồ thị với 19 đỉnh. Cây quyết định rút gọn theo chiều rộng, mặt khác thì nhỏ hơn nhiều. Trong hình 14 hiển thị bộ nhớ được sử dụng bởi cây quyết định được rút gọn theo chiều rộng. Chú ý rằng đối với một đồ thị có 19 đỉnh, cây quyết định rút gọn theo chiều rộng yêu cầu 1.2 Mbyte bộ nhớ. Do đó, cây quyết định hoàn toàn, lớn hơn 16 lần số nút, sẽ cần khoảng 20 MB không gian bộ nhớđĩa. Thời gian biên dịch cho một cây quyết định của một đồ thị mẫu có 10 đỉnh chỉ có hai giây, trong khi biên dịch cho một đồ thị mẫu với 19 đỉnh mất khoảng 30 phút trên một máy trạm Sparc10. (Thời gian biên dịch của một đồ thị mẫu bao gồm 20 đỉnh không hoàn thành trong vòng 60 phút và được hủy bỏ sau khi hơn 200 MB của bộ nhớ chính đã được đưa lên bởi chương trình.) Mặc dù các kết quả cho rút gọn theo chiều rộng cây quyết định chỉ ra rằng đồ thị với 19 đỉnh và 28 cạnh có thể được đại diện bởi các cây quyết định kích thước hợp lý, đó là điều cần nhớ để xây dựng cây quyết định rút gọn chiều rộng, cây quyết định hoàn chỉnh phải được tạo ra đầu tiên (xem phần 8). Do đó, mặc dù cây quyết định rút gọn theo chiều rộng là hợp lý nhỏ, xây dựng trước đây cần thiết của cây quyết định hoàn toàn ngăn chặn các phương pháp mới được áp dụng cho đồ thị có chứa hơn 19 đỉnh. Trong phần 8, chúng tôi cho thấy rằng sự phức tạp tính toán của các thuật toán mới dựa trên rút gọn theo chiều rộng cây quyết định là lập phương số đỉnh của đồ thị đầu vào, trong khi cho một cây quyết định hoàn chỉnh, độ phức tạp chỉ là bậc hai.

Tuy nhiên, trong thực tế, thời gian chạy của thuật toán cho cây quyết định hoàn chỉnh hay cây được rút gọn theo chiều rộng là gần như nhau. (Quan sát này được minh họa ở đây).

Trong thí nghiệm thứ hai, chúng tôi đã quan tâm đến việc ảnh hưởng của kích thước cơ sở dữ liệu đối với việc thực hiện của thuật toán mới. Đầu tiên, chúng tôi tạo ra một đồ thị mẫu duy nhất bao gồm 11 đỉnh và 33 cạnh và sau đó dần dần

thêm vào các đồ thị mới có cùng kích thước cho đến khi có 30 đồ thị trong cơ sở dữ liệu. Với từng đồ thị mới đã được thêm vào cơ sở dữ liệu, một đồ thị đầu vào tương ứng được tạo ra và ta cố gắng tìm tất cả đẳng cấu đồ thị bằng cả hai thuật toán. Kết quả của thí nghiệm thứ hai được hiển thị trong các Bảng 15 và 16.

Đúng như tính toán, hiệu suấtcủa thuật toán cây quyết địnhlà hoàntoànđộc

lập với số lượng các đồ thị mẫu trong cơ sở dữ liệu. Trong khi đó, các thuật toán thông thường phải thực hiện một tìm kiếm đẳng cấu đồ thị cho mỗi đồ thị mẫu trong cơ sở dữ liệu và do đó phụ thuộc tuyến tính vào kích thước của cơ sở dữ liệu. Trong khi thời gian tính toán của thuật toán cây quyết định dao động từ

0.005 đến 0.01 giây, các thuật toán thông thường yêu cầu thời gian càng nhiều hơn cho một cơ sở dữ liệu càng lớn. Cuối cùng, trong 30 đồ thị mẫu, thời gian tính toán của các thuật toán thông thường là khoảng 0,3 giây. Đối với các ứng dụng thực tế, chẳng hạn như việc nhận dạng các đối tượng 3D, đồ thị có kích thước nhỏ nhưng lượng đối tượng lớn, kết quả này là rất quan trọng. Từ những phân tích về độ phức tạp tính toán, chúng tôi hy vọng rằng kích thước của cây quyết định là phụ thuộc tuyến tính vào số lượng của đồ thị mẫu. Trong thực tế, đồ thị con phổ biến của những đồ thị mẫu khác nhau có thể được đại diện bởi các cấu trúc cùng một cây quyết định, kích thước của cây quyết định thường chỉ phụ thuộc tuyến tính vào số lượng của đồ thị mẫu.

Hình 17 cho thấy kích thước của cây quyết định cho việc tăng dần các đồ thị mẫu. Nó có thể được quan sát thấy rằng tốc độ tăng trưởng của cây quyết định trở nên nhỏ hơn so với tất cả các đồ thị mẫu mới được thêm vào cơ sở dữ liệu. Mặc dù với cả 2 cách rút gọn, cây quyết định hoàn chỉnh phát triển với số lượng đồ thị mẫu, nó lớn gấp bốn lần cây quyết định rút gọn. Trong hình 18 cho thấy bộ nhớ sử dụng bởi cây quyết định theo chiều rộng ngày càng lớn. Lưu ý rằng một cơ sở dữ liệu chứa 30 đồ thị mẫu - mỗi đồ thị mẫu có 11 đỉnh và 33 cạnh – thì cần 5 MB bộ nhớ. Vì vậy, chúng tôi kết luận rằng một cơ sở dữ liệu có chứa 100 đồ thị mẫu sẽ cần ít hơn 15 MB. Do đó, với việc thực hiện thời gian chạy là độc lập với số lượng đồ thị mẫu, thuật toán mới là một lựa chọn thú vị cho nhiều ứng dụng thực tế.

Ngoài ảnh hưởng của kích thướccủa đồ thịvà kíchthước của cơ sở dữ liệu,

sự phức tạp của vấn đề đẳng cấu đồ thị cũng là phụ thuộc mạnh mẽ vào số

của các cạnh trong một đồ thị. Trong một đồ thị đầy đủ, ví dụ, mỗi đỉnh được kết nối với tất cả các đỉnh khác, số tự đẳng cấu sẽ là hàm mũ theo số đỉnh.

Như vậy, bất kỳ thuật toán cố gắng liệt kê tất cả các đẳng cấu đồ thị từ một đồ thị đầy đủ đến một đẳng cấu đồ thị đầy đủ sẽ mất thời gian theo cấp số nhân. Để so sánh hiệu suất của thuật toán mới và thông thường các mức độ khác nhau của kết nối của đồ thị mẫu, chúng tôi thực hiện thí nghiệm thứ ba. Trong thí nghiệm thứ ba, số lượng của các đỉnh trong đồ thị mẫu đã được liên tục giữ ở mức 11 trong khi số cạnh khác nhau giữa 11 và 44. Chú ý rằng một đồ thị vô hướng với 11 đỉnh có thể chứa nhiều nhất là 55 cạnh. Tuy nhiên, cho các đồ thị đầy đủ hoặc

gần như hoàn chỉnh, việc liệt kê tất cả các đẳng cấu đồ thị là một công việc đến hàm mũ và ít được quan tâm trong thực tế. Do đó, số lượng của các cạnh cho thí nghiệm này đã được hạn chế đến 44. Có chính xác một đồ thị mẫu trong cơ sở dữ liệu. Hiệu suất của cả hai thuật toán đối với số lượng các bước tính toán và thời gian tính toán được hiển thị trong Hình 19 và 20 tương ứng. Một lần nữa, kết quả thí nghiệm đã kiểm chứng các phân tích phức tạp về mặt lý thuyết, nghĩa là hiệu suất của phương pháp cây quyết định là hoàn toàn độc lập với số lượng của các cạnh trong đồ thị mẫu, trong khi phương pháp thông thường đòi hỏi nhiều bước

tính toán và thời gian khi số lượng của các cạnh tăng. Mặt khác, kích thước của

cây quyết định phụ thuộc rất nhiều vào số lượng của các cạnh trong một đồ thị. Kích thước của cây giới hạn bởi các nút được hiển thị trong hình 21, trong khi yêu cầu bộ nhớ của cây quyết định rút gọn được đưa ra trong hình 22. Trong hình 21 chúng tôi quan sát thấy rằng kích thước của cây quyết định hoàn chỉnh (cũng có thể là cây rút gọn) đạt đến tối đa khi nó có khoảng 30 cạnh trong đồ thị (bao gồm 11 đỉnh). Với hơn 30 cạnh trong đồ thị, kích thướccủa câygiảm mộtlầnnữa. Điều này đãkhôngđược giải thích trong phân tíchphức tạp tính toán. Lý do cho sự tăng trưởng lúc đầu và sau đó giảm kích thước của cây quyết định dựa trên số tự đẳng cấu. Lưu ýrằng có một mối tương quan giữa số lượng các tự đẳng cấu của một đồ thị số lượng trung bình của các nút trong cây quyết định. Do đó, nếu số lượng tự đẳng cấu trong một đồ thị lớn, số lượng các nút kế thừa của các nút cây quyết định quá lớn. Mặt khác, số lượng các nút lá cho một đồ thị Gđược giới hạn bởi |A(G)|/α, với α làsố tự đẳng cấucủaG.Trongkhi |A(G)| là hằng số cho tất cả cácđồthị với kích thước cho trước, α làphụ thuộc vàocác cạnh và nhãn trong đồ thị. Vì vậy, nếu số lượng của các cạnh được tăng lên α, tổng số các nút lá trong cây quyết định giảm. Hai kết quả được thể hiện bởi

Trong thí nghiệm thứ tư biểu diễn trong hình 23 và 24, chúng tôi nghiên cứu sự ổn định của thuật toán mới đối với thứ tự khác nhau của các đỉnh của đồ thị mẫu và đồ thị đầu vào. Được biết, hiệu suất của phương pháp đẳng cấu đồ thị thông thường dựa trên phương pháp quay lui thì phụ thuộc nhiều vào sự sắp xếp của các đỉnh đồ thị mẫu. Ví dụ, tại một số đỉnh phải quay lui ở giai đoạn đầu trong quá trình tìm kiếm, hiệu suất tính toán sẽ là tốt hơn so với một lệnh quay lui ở giai đoạn sau. Đối với thí nghiệm thứ tư, chúng tôi tạo ra một đồ thị mẫu ngẫu nhiên gồm 11 đỉnh và 33 cạnh. Một bản sao của đồ thị mẫu được sử dụng như là đồ thị đầu vào. Tiếp theo, chúng ta hoán vị đỉnh của cả hai đồ thị. Có 11! = 39,916,000 trường hợp có thể xảy ra khi hoán vị 11 đỉnh. Trong hình 23 và 24 chỉ là kết quả của 50 hoán vị được trình bày. Nhưng nó có thể được nhìn thấy rõ ràng rằng hiệu suất của thuật toán mới là khá độc lập với trật tự của các đỉnh, trong khi hiệu suất của các thuật toán thông thường thay đổi đáng kể cho một hoán vị tiếp theo.

Mặc dù các cây quyết định bảo đảm đẳng cấu đồ thị trong thời gian bậc ba, họ chỉ áp dụng cho các đồ thị với tối đa 19 đỉnh. Do đó, cho các đồ thị lớn hơn, nó sẽ là cần thiết để rút gọn chiều sâu của cây quyết định như mô tả tại mục 8.2. Trong thí nghiệm thứ 5, đầu tiên chúng tôi kiểm tra độ sâu rút gọn có thể được sử dụng để giảm kích thước của cây quyết định. Đối với một đồ thị mẫu và đồ thị một đầu vào bao gồm 19 đỉnh không có nhãn và 28 cạnh, chúng ta tạo cây quyết

định với độ sâu khác nhau, bắt đầu với chiều sâu là 7 và kết thúc với cây quyết định đầy đủ về chiều sâu là 19. Đối với mỗi cây quyết định này, một bản sao giống hệt nhau của đồ thị mẫu được sử dụng như là đồ thị đầu vào và ma trận kề

của nó được phân loại dựa vào thuật toán decision_tree được mô tả trong mục 6

và cây quyết định cải tiến về chiều sâu được mô tả tại mục 8.2. Trong hình 25 và 26 các bước tính toán và thời gian tính toán được hiển thị là kết quả của thí nghiệm 5. Đương nhiên, hiệu suất của các thuật toán thông thường là không đổi trong thí nghiệm này. Việc trình bày các thuật toán mới, tuy nhiên, phụ thuộc rất nhiều vào độ sâu của cây quyết định cơ bản. Ví dụ, một cây quyết định với độ sâu 6, thuật toán mới yêu cầu 0,6 giây và hơn 45,000 bước tính toán so với 0.005 giây và 780 bước tính toán khi một cây quyết định độ sâu 19 đã được sử dụng. Do có một lượng lớn đẳng cấu đồ thị có kích thước 6 với một đồ thị có 19 đỉnh, cây quyết định đã rút gọn ở mức 6 có thể không bị giới hạn bởi không gian tìm kiếm. Tuy nhiên, hiệu quả của các thuật toán mới tăng lên nhanh chóng với độ sâu ngày càng tăng của các cây quyết định cơ bản. Đặc biệt, đối với một cây quyết định độ sâu 11, các thuật toán mới đã hiệu quả như đối với một cây có chiều sâu 19. Vì vậy, chúng tôi kết luận rằng đối với đồ thị với 19 đỉnh, có thể xây dựng cây quyết định với độ sâu 11. Trong hình 27, kích thước của cây quyết định bị giới hạn bởi các nút.

Trong hình 27, kích thước của cây quyết định bị giới hạn bởi các nút. Để so sánh, kích thước của cây quyết định hoàn chỉnh cũng được hiển thị. Lưu ý rằng bằng cách rút gọn các cây quyết định ở độ sâu 11, có thể tiết kiệm hơn một nửa tổng số nút. Tương tự, một cây quyết địnhđộ sâu 11 chiếm

chỉ 1,5 MB bộ nhớ so với 3 MB cho một cây quyết định kích thước đầy đủ

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 31)