Nghiên cứu thuật toán so sánh hai đồ thị bằng phương pháp xây dựng

21 820 0
Nghiên cứu thuật toán so sánh hai đồ thị bằng phương pháp xây dựng

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

DANH MỤC TÀI LIỆU THAM KHẢO MỤC LỤC Nghiên cứu thuật toán so sánh hai đồ thị bằng phương pháp xây dựng 1 cây quyết định DANH MỤC TÀI LIỆU THAM KHẢO LỜI CẢM ƠN Nghiên cứu thuật toán so sánh hai đồ thị bằng phương pháp xây dựng 2 cây quyết định Đầu tiên em xin gởi lời cảm ơn chân thành đến thầy Đỗ Phúc – Giảng viên cao học trường đại học Công nghệ thông tin tp. Hồ Chí Minh đã tận tình giảng dạy, hướng dẫn em trong suốt môn học. Đồng thời cũng chính thầy Phúc đã gợi ý cho em nghiên cứu đề tài này làm bài thu hoạch môn. Do thời gian và khả năng còn hạn chế, chắc chắn bài thu hoạch sẽ còn nhiều thiếu sót. Rất mong được ý kiến đóng góp của thầy, cô, và các bạn. Xin chân thành cảm ơn! DANH MỤC TÀI LIỆU THAM KHẢO PHẦN I - TỔNG QUAN Bài thu hoạch này tập trung nghiên cứu bài báo Subgraph Isomorphism in Polynomial Time (SIPT) của 2 tác giả B.T.Messmer và H.Bunker, phân tích những điểm mạnh, yếu của thuật toán đồng thời tìm cách tối ưu hóa thuật toán. Những phân tích trong bài thu hoạch dựa theo những ý kiến của riêng em và góp ý của cộng đồng mạng, tuy nhiên chưa được nhận xét của các chuyên gia nên có thể còn tồn tại nhiều hạn chế sai sót. Hiện nay, hai tác giả nêu trên đã xây dựng được một phương pháp mới để nâng cấp thuật toán theo hướng giảm độ lớn của cây quyết định. Tuy nhiên đây là tài liệu mới được cung cấp thu phí trên mạng nên em chưa có điều kiện nghiên cứu thêm. Đó là một thiếu sót lớn và em sẽ cố gắng khắc phục trong thời gian tới để mở rộng bài thu hoạch sử dụng cho các mục đích lớn hơn. Nghiên cứu thuật toán so sánh hai đồ thị bằng phương pháp xây dựng 3 cây quyết định DANH MỤC TÀI LIỆU THAM KHẢO PHẦN II - THUẬT TOÁN SIPT 1 Bài toán đẳng cấu đồ thị và đẳng cấu đồ thị con Bài toán đẳng cấu đồ thị (graph isomorphism) và đẳng cấu đồ thị con (subgraph isomorphism) là hai bài toán khó trong lĩnh vực đồ thị. Phương pháp giải quyết hai bài toán trên rất đơn giản nhưng lại luôn có vấn đề về tốc độ xử lý và bộ nhớ để lưu trữ khi thực hiện. Cho tới thời điểm hiện tại đã có rất nhiều thuật toán ra đời để giải quyết vấn đề này và cũng đã có những thành tựu nhất định, tuy nhiên vẫn chưa có thuật toán nào thật sự giải quyết được bài toán này một cách triệt để. 2 Thuật toán SIPT Thuật toán hoạt động theo cơ chế xây dựng một cây quyết định cho một đồ thị ban đầu (tạm gọi là model graph). Khi cần so sánh nó với một đồ thị khác (tạm gọi là input graph), ta sẽ đưa input graph vào cây quyết định và vận hành để xem mối quan hệ giữa hai đồ thị với nhau. Như vậy đồ thị sẽ được thực hiện qua 3 bước: - Xây dựng cây quyết định cho model graph. - Phân tích input graph thành một chuỗi tham số để đưa vào cây quyết định. - Đưa input graph đã được phân tích vào cây quyết định và đưa ra kết quả. 2.1 Xây dựng cây quyết định cho model graph Cho một ma trận của đồ thị có nhãn, có hướng model graph như hình vẽ: - Mỗi hàng, cột đại diện cho một đỉnh của đồ thị. Nghiên cứu thuật toán so sánh hai đồ thị bằng phương pháp xây dựng 4 cây quyết định DANH MỤC TÀI LIỆU THAM KHẢO - Mỗi ô khác 0 đại diện cho một cạnh nối giữa 2 đỉnh tương ứng là đỉnh từ cột đến đỉnh từ hàng của đồ thị. Giá trị trong ô là trọng số của cạnh. - Mỗi ô là giao của hai đỉnh giống nhau là nhãn của đỉnh đó. Phân tích ma trận thành các thành phần như sau để xây dựng cây quyết định: Thành phần đầu tiên sẽ là ô đầu tiên của ma trận. Các thành phần tiếp theo sẽ là các ô kế cận bên phải và bên dưới của thành phần trước đó. Như vậy số lượng thành phần sẽ lớn dần lên khi càng về cuối ma trận. Lưu các thành phần này lại và tiếp tục phân tích tất cả các hoán vị của ma trận. Xây dựng cây quyết định của tất cả các thành phần trên theo thứ tự của các thành phần bằng cách sau: Ta phân nhóm các hoán vị của input graph thành các nhóm có thành phần số 1 (đầu tiên) giống nhau. Mỗi nhóm sẽ là nút của cây quyết định, thành phần số 1 sẽ là nhãn của nút đó. Chọn một nhóm đã chia trong bước đầu tiên, ta lại tiếp tục phân nhóm theo các nhóm có thành phần thứ 2 giống nhau. Tạo các nút của cây quyết định theo như cách của bước 1. Tiếp tục thực hiện các bước xây dựng cây quyết định với các nút còn lại tương tự như cách trên. Cuối cùng ta sẽ có cây quyết định như sau: Nghiên cứu thuật toán so sánh hai đồ thị bằng phương pháp xây dựng 5 cây quyết định DANH MỤC TÀI LIỆU THAM KHẢO 2.2 Phân tích input graph thành một chuỗi tham số để đưa vào cây quyết định Cách phân tích input graph thành các thành phần cũng giống như trên. Tuy nhiên ta chỉ thực hiện với đồ thị chính chứ không phải phân tích tất cả các hoán vị của input graph như đã làm với model graph. 2.3 Đưa input graph đã được phân tích vào cây quyết định và đưa ra kết quả Chọn thành phần số 1 của input graph đưa vào cây quyết định đã tạo để tìm đường đi. Nếu không có đường đi thì kết luận “Hai đồ thị không đẳng cấu với nhau”. Nếu có thì thực hiện bước tiếp theo. Chọn thành phần số 2 của input graph đưa vào cây quyết định để tìm đường đi tiếp. Nếu không có đường đi thì kết luận “Hai đồ thị không đẳng cấu với nhau”. Thực hiện tiếp tục cho đến khi input graph hết thành phần hoặc đi đến cuối cây quyết định. Khi đó ta kết luận: Nếu input graph hết thành phần nhưng chưa đi đến cuối cây: input graph là đồ thị con của model graph. Nghiên cứu thuật toán so sánh hai đồ thị bằng phương pháp xây dựng 6 cây quyết định DANH MỤC TÀI LIỆU THAM KHẢO Nếu input graph hết thành phần và đã đi đến cuối cây: input graph là đẳng cấu với model graph. Nếu input graph chưa hết thành phần nhưng đã đi đến cuối cây: model graph là đồ thị con của input graph. Ngoài ra với mỗi nút có nhãn nhiều hơn 1 phần tử, ta có thể gom nhóm lại thành cây quyết định con, cách này sẽ làm tăng số nút nhưng sẽ giảm bộ nhớ lưu trữ và các phép toán so sánh với mảng dài. 3 Tỉa bớt cây quyết định Nhìn vào ví dụ ta cũng có thể dễ dàng nhận thấy là cây quyết định sẽ có số nút và số đường đi rất lớn. Hai tác giả của thuật toán cũng đã thấy được điều này và đưa ra một phương pháp để tỉa bớt độ lớn của cây quyết định,cách thực hiện như sau: Với mỗi nút lớp thứ 2, nếu ta gộp với nút mạng trước trở thành một ma trận và so sánh với các nút mạng cùng cấp, nếu 2 nút mạng giống nhau thì ta có thể đưa 2 nút mạng về cùng 1 đường đi của cây quyết định. Ta có thể xem hình sau để hiểu rõ thêm cách tỉa bớt các nút mạng. Hai tác giả cũng đã đưa ra một vài ý tưởng về việc lưu vết các đỉnh đã đi qua, tuy nhiên cách này sẽ gây ra một sự lãng phí bộ nhớ và tốn rất nhiều thời gian để thực hiện: Nghiên cứu thuật toán so sánh hai đồ thị bằng phương pháp xây dựng 7 cây quyết định DANH MỤC TÀI LIỆU THAM KHẢO 4 Ưu, khuyết điểm của thuật toán Từ những phân tích nêu trên, ta có thể phân tích được những ưu khuyết điểm của thuật toán như sau: - Ưu điểm: + Áp dụng được cho tất cả những đồ thị có thể biểu diễn dưới dạng ma trận (vô hướng, có hướng, có trọng số, có nhãn…). + Thời gian để so sánh 2 đồ thị rất ít. + Sử dụng một đồ thị để so sánh được nhiều lần với tốc độ rất nhanh không đổi. + Giải quyết được bài toán đẳng cấu đồ thị, đẳng cấu đồ thị con, có thể sử dụng để tính thêm độ sai khác giữa 2 đồ thị. - Nhược điểm: + Thời gian lập cây quyết định ban đầu khá lớn. + Không thể áp dụng cho trường hợp so sánh từng cặp đồ thị khác nhau từng đôi một. + Tốn khá nhiều bộ nhớ để chứa cây quyết định. Nghiên cứu thuật toán so sánh hai đồ thị bằng phương pháp xây dựng 8 cây quyết định DANH MỤC TÀI LIỆU THAM KHẢO + Để tìm được tất cả những nút giống nhau để tỉa bớt cây quyết định rất khó khăn, để công việc tìm đơn giản hơn thì ta chỉ có thể tìm được một số rất ít những nhánh giống nhau để tỉa bớt cây quyết định. Nghiên cứu thuật toán so sánh hai đồ thị bằng phương pháp xây dựng 9 cây quyết định DANH MỤC TÀI LIỆU THAM KHẢO PHẦN III - Nâng cấp thuật toán 1 Phân tích thuật toán Thuật toán dựa trên việc gộp tất cả các hoán vị của đồ thị vào một cây quyết định. Việc tìm những nhánh có chu trình giống nhau rất hao tốn chi phí về thời gian và bộ nhớ nên sẽ rất khó để thực hiện. Bước yếu nhất trong thuật toán theo phân tích là bước xây dựng cây quyết định, nếu có phương pháp xây dựng cây quyết định có độ lớn thấp hơn và tốc độ xây dựng nhanh hơn thì sẽ giải quyết được vấn đề tốt hơn. 2 Phương pháp nâng cấp thuật toán 2.1 Ý tưởng nâng cấp thuật toán Phương pháp nâng cấp thuật toán được định hình dựa trên ý tưởng gắn kết những hoán vị có sự sai biệt chỉ khác nhau một cặp đối tượng gần nhau đến mức có thể. Khi đó, việc đưa một hoán vị mới vào cây quyết định sẽ được thực hiện đơn giản hơn bằng cách đưa thêm một phần rất nhỏ là những đối tượng khác biệt của hai hoán vị vào cây quyết định. Như vậy để cho đơn giản nhất ta sẽ sử dụng một thuật toán hoán vị có độ thay đổi mỗi khi thực hiện hoán vị là ít nhất. Thuật toán hoán vị phải đảm bảo được đa số các yêu cầu sau đây: - Ít hao tốn bộ nhớ. - Mỗi lần tạo hoán vị mới, tao chỉ cần đổi chỗ hai đối tượng càng gần nhau càng tốt. Yêu cầu ít hao tốn bộ nhớ sẽ được thực hiện bằng cách cố gắng xây dựng thuật toán theo cách ta có thể gọi ra một hoán vị khác nhau mỗi khi cần thiết, các hoán vị gọi ra đương nhiên sẽ phải khác nhau và sẽ được báo khi các hoán vị đã hết. Thuật toán này sẽ giảm thiểu rất nhiều tài nguyên bộ nhớ của phần mềm khi hoạt động. Nghiên cứu thuật toán so sánh hai đồ thị bằng phương pháp xây dựng 10 cây quyết định [...]... Lấy hoán vị tiếp theo - Thêm 1 nút tại điểm vừa hoán vị và gắn kết với cây cũ bằng 2 đường đi khác nhau Để cho dễ hiểu, ta có thể xem thêm ví dụ sau: Nghiên cứu thuật toán so sánh hai đồ thị bằng phương pháp xây dựng cây quyết định 17 DANH MỤC TÀI LIỆU THAM KHẢO Nghiên cứu thuật toán so sánh hai đồ thị bằng phương pháp xây dựng cây quyết định 18 DANH MỤC TÀI LIỆU THAM KHẢO Mỗi hoán vị mới được tạo ra... thị cần so sánh Phương pháp này thật sự là không thể thực hiện được nếu dùng các phép hoán vị thông thường Nghiên cứu thuật toán so sánh hai đồ thị bằng phương pháp xây dựng cây quyết định 19 DANH MỤC TÀI LIỆU THAM KHẢO PHẦN IV Kết luận Thuật toán SIPT nêu trên thật sự cũng không phải là mới nhưng thật sự nó cũng đưa ra được một phương pháp rất thú vị để giải quyết bài toán so sánh đồ thị Phương pháp. .. 3 0 2 1 3 2 0 Nghiên cứu thuật toán so sánh hai đồ thị bằng phương pháp xây dựng cây quyết định 12 DANH MỤC TÀI LIỆU THAM KHẢO 0 3 1 2 3 0 1 2 3 1 0 2 3 1 2 0 0 3 2 1 3 0 2 1 3 2 0 1 3 2 1 0 Chia các hoán vị trên thành 6 nhóm như sau: 01 2 3 12 0 3 3 0 1 3 20 1 3 21 0 3 21 3 0 02 3 1 20 3 1 23 0 1 23 2 10 02 1 3 12 0 2 1 0 Nghiên cứu thuật toán so sánh hai đồ thị bằng phương pháp xây dựng cây quyết... bài toán đồ thị hoặc các bài toán cần đến các thuật toán hoán vị vốn rất ít ỏi Tạo tiền đề cho bước phát triển của lĩnh vực toán trên đồ thị của nước ta hiện nay và trong tương lai Nghiên cứu thuật toán so sánh hai đồ thị bằng phương pháp xây dựng cây quyết định 20 DANH MỤC TÀI LIỆU THAM KHẢO PHẦN V DANH MỤC TÀI LIỆU THAM KHẢO Subgraph Isomorphism in Polynomial Time, B.T.Messmer và H.Bunker Nghiên cứu. .. } Theo như thuật toán, ta chỉ cần phải lưu các thông số sau: - Một mảng chiều dịch chuyển của từng đối tượng bằng một mảng bool (trong thuật toán dùng mảng integer) có số phần tử bằng với số đỉnh của đồ thị - Một số int chỉ vị trí vừa dịch chuyển - Mảng hoán vị trước đó để so sánh - Số hoán vị đã thực hiện để làm điều kiện dừng Nghiên cứu thuật toán so sánh hai đồ thị bằng phương pháp xây dựng cây quyết... vị rồi bằng thuật toán đệ quy điển hình như sau: Hàm đệ quy (mảng) trả về tất cả các mảng { Lấy ra phần tử đầu tiên của mảng For (i = độ lớn của mảng - 1) { Đưa phần tử đầu tiên vào vị trí thứ i của hàm đệ quy(mảng con trừ đi phần tử đầu tiên) Trả về mảng đưa vào } } Từ những phân tích trên, ta xây dựng thuật toán đệ quy như sau: Nghiên cứu thuật toán so sánh hai đồ thị bằng phương pháp xây dựng cây... trí so với hoán vị cũ Tổng kết thuật toán phân tích Sau khi nâng cấp, thuật toán SIPT được thực hiện như sau: - Đánh số hiệu cho các đỉnh của đồ thị ban đầu - Phân tích đồ thị thành các đối tượng - Xây dựng cây quyết định của đồ thị theo 1 hoán vị bất kỳ của đồ thị ban đầu - Lấy 1 hoán vị tiếp theo và thêm vào cây quyết định bằng cách thêm vào 1 nút và 2 cạnh trong cây quyết định - So sánh với đồ thị. .. việc xây dựng thuật toán hoán vị vẫn còn gặp nhiều khó khăn do thuật toán hoán vị thật sự vẫn chưa được quan tâm đến nhiều trong quá khứ Do đó khi tìm hiểu các thuật toán hoán vị đã có, ta chỉ có được các thuật toán tạo ra những hoán vị khác nhau sao cho đủ số mà hoàn toàn không tìm thấy được thuật toán đảm bảo yêu cầu 2.2 Phương pháp nâng cấp Dựa trên ý tưởng nâng cấp thuật toán trên, em đã xây dựng. .. thể được xây dựng để thực hiện hoán vị mà không cần lưu bất kỳ tham số nào Tuy nhiên khi thực hiện theo phương pháp đó ta sẽ phải tốn kém rất nhiều chi phí tính toán Do đó theo đánh giá hàm hoán vị như trên tạm thời đang là lựa chọn tốt nhất cho thuật toán xây dựng cây quyết định cho đồ thị hiện nay 2.2.2 Ứng dụng hàm hoán vị vào thuật toán Khi sử dụng hàm hoán vị trên vào thuật toán, bài toán của... pháp nâng cấp đồ thị được đưa ra cũng không có gì là phức tạp, và cũng có lẽ đã được nhiều người nghĩ đến, có thể trong bài báo mới của hai tác giả trên cũng đã đưa ra được phương pháp tốt hơn so với cách đề xuất của em Ngoài ra phương pháp nâng cấp thuật toán em đưa ra lại là phương pháp áp dụng một lĩnh vực toán xác suất không có nhiều mối quan hệ với môn học Tuy nhiên, ta hi vọng thuật toán đã được . LỤC Nghiên cứu thuật toán so sánh hai đồ thị bằng phương pháp xây dựng 1 cây quyết định DANH MỤC TÀI LIỆU THAM KHẢO LỜI CẢM ƠN Nghiên cứu thuật toán so sánh hai đồ thị bằng phương pháp xây dựng. hơn. Nghiên cứu thuật toán so sánh hai đồ thị bằng phương pháp xây dựng 3 cây quyết định DANH MỤC TÀI LIỆU THAM KHẢO PHẦN II - THUẬT TOÁN SIPT 1 Bài toán đẳng cấu đồ thị và đẳng cấu đồ thị con Bài. định. - So sánh với đồ thị cần so sánh. Phương pháp này thật sự là không thể thực hiện được nếu dùng các phép hoán vị thông thường. Nghiên cứu thuật toán so sánh hai đồ thị bằng phương pháp xây dựng

Ngày đăng: 10/04/2015, 13:21

Từ khóa liên quan

Mục lục

  • MỤC LỤC

  • LỜI CẢM ƠN

  • PHẦN I - TỔNG QUAN

  • PHẦN II - THUẬT TOÁN SIPT

    • 1 Bài toán đẳng cấu đồ thị và đẳng cấu đồ thị con

    • 2 Thuật toán SIPT

      • 2.1 Xây dựng cây quyết định cho model graph

      • 2.2 Phân tích input graph thành một chuỗi tham số để đưa vào cây quyết định

      • 2.3 Đưa input graph đã được phân tích vào cây quyết định và đưa ra kết quả

      • 3 Tỉa bớt cây quyết định

      • 4 Ưu, khuyết điểm của thuật toán

      • PHẦN III - Nâng cấp thuật toán

        • 1 Phân tích thuật toán

        • 2 Phương pháp nâng cấp thuật toán

          • 2.1 Ý tưởng nâng cấp thuật toán

          • 2.2 Phương pháp nâng cấp

            • 2.2.1 Hàm hoán vị

            • 2.2.2 Ứng dụng hàm hoán vị vào thuật toán

            • PHẦN IV - Kết luận

            • PHẦN V - DANH MỤC TÀI LIỆU THAM KHẢO

Tài liệu cùng người dùng

Tài liệu liên quan