1. Trang chủ
  2. » Luận Văn - Báo Cáo

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

48 548 0

Đ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

Thông tin cơ bản

Định dạng
Số trang 48
Dung lượng 0,96 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Khi thực thi, đồ thị đầu vào sẽ được phân loại bởi cây quyết định và cho biết có tồn tại một đồ thị con đẳng cấu với đồ thị đầu vào hay không.. Trong số tất cả các phương pháp đã được đề

Trang 1

MỤC LỤC



MỤC LỤC 1LỜI NÓI ĐẦU _2TỔNG QUAN _3Đẳng cấu đồ thị con với thời gian đa thức. _4

1 Giới thiệu 5

2 Định nghĩa và ký hiệu 8

3 Tóm tắt thuật toán Ullman. 10

4 Đẳng cấu đồ thị con bằng thuật toán cây quyết định. _12

5 Một biểu diễn hiệu quả hơn của cây quyết định: _17

6 Cây quyết định theo chiều rộng. 20

7 Phân tích độ phức tạp. 22

7.1 Tính toán phức tạp của thuật toán thông thường 237.2 Tính toán độ phức tạp của thuật toán mới. _23

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

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

9 Kết quả thí nghiệm. _30

10 Ứng dụng thực tế của thuật toán mới. _43

11 Tóm tắt và Kết luận _45

TỔNG KẾT VÀ HƯỚNG DẪN SỬ DỤNG CHƯƠNG TRÌNH _46TÀI LIỆU THAM KHẢO (CỦA BÀI BÁO) 47

Trang 2

LỜI NÓI ĐẦU

Môn Cơ sở dữ liệu (Nâng cao) là một môn rất hay, khó và cần thiết chosinh viên ngành tin học Và càng hay hơn nữa khi em được thầy Đỗ Phúc phụtrách môn học này Khi học với thầy em nhận thấy rằng: thầy có kiến thức rất sâurộng ở nhiều lĩnh vực nên luôn tạo cho bài giảng của mình một cách rất sinhđộng, tự nhiên Thầy dẫn dắt chúng em đi sâu vào bài học bằng những kiến thức,những mẩu chuyện, những ví dụ rất quen thuộc và cách thầy đan xen chúng vàonhau thật là khéo léo

Qua môn học này ở chương trình cao học, em nhận ra rằng trên cơ sở dữliệu truyền thống ta có rất nhiều cách thức để tạo, biến đổi, nó có hiệu quảhơn với nhu cầu thực tế sử dụng mà trước đây em chưa biết được

Bên cạnh đó em cũng đúc kết được thêm một số kinh nghiệm, kỹ năng rấtquan trọng, cần thiết và nhất là phần kiến thức vô cùng bổ ích mà thầy đã truyềnđạt và định hướng cho chúng em

Em xin gởi lời cám ơn đến thầy Đỗ Phúc, thầy đã rất tận tâm, truyền đạtrất nhiều kiến thức, ý tưởng mà em rất tâm đắc Em chúc thầy cùng luôn khỏemạnh và đạt nhiều thành quả trong công việc của mình

Trang 3

TỔNG QUAN

Vấn đề đẳng cấu đồ thị chúng ta đã nghe và ứng dụng của nó trong thực tế cũngrất nhiều Nhưng điều quan trọng là cho đến thời điểm hiện tại, chúng ta vẫnchưa tìm ra một phương pháp tối ưu nhất để giải quyết vấn đề này Một sốphương pháp nghiên cứu trong quá khứ và hiện tại giải quyết cho vấn đề nàycũng còn tồn tại một số hạn chế nhất định Do đó, hiện tại vẫn còn nhiều côngtrình khoa học nghiên cứu về vấn đề này để tìm ra cách tối ưu nhất cho trườnghợp tổng quát Trong quá trình học môn Cơ sở dữ liệu nâng cao do thầy Đỗ Phúcphụ trách, thầy có giới thiệu một hướng tiếp cận cho vấn đề này với độ phức tạpthời gian là đa thức Em thấy đây là một hướng tiếp cận mới có những ưu điểm

mà ta có thể ứng dụng cho một số vấn đề trong thực tế Bên cạnh đó, do tính chấtcủa môn học, nên em mạn phép được dịch bài báo và cài đặt thí nghiệm chươngtrình minh họa cho bài báo này mà thầy đã giới thiệu Thông tin về tiêu đề và tácgiả của bài báo như sau:

Subgraph Isomorphism in Polynomial Time

B.T Messmer and H Bunke Institut fur Informatik und angewandte Mathematik,

University of Bern, Neubruckstr 10, Bern, Switzerland

Nội dung bài báo xin được dịch và trình bày như sau:

Trang 4

Đẳng cấu đồ thị con với thời gian đa thức.

B.T Messmer vàd H Bunke Trong bài báo này, chúng tôi đề xuất một cách tiếp cận mới cho vấn đề tìm đồ thị con đẳng cấu Phương pháp mới được thiết kế dựa trên 2 đồ thị Một đồ thị

mẫu sẵn có (model graphs) và một đồ thị đầu vào (input graphs) Ta sẽ tìm một

đồ thị con trong đồ thị ban đầu mà đẳng cấu với đồ thị đưa vào Ý tưởng củaphương pháp này là trước tiên ta sẽ tạo ra một cây quyết định (decision tree) trên

đồ thị mẫu Khi thực thi, đồ thị đầu vào sẽ được phân loại bởi cây quyết định và

cho biết có tồn tại một đồ thị con đẳng cấu với đồ thị đầu vào hay không Nếu chúng ta bỏ qua thời gian cần thiết cho quá trình tiền xử lý (tạo ra cây quyết định ban đầu), thì bài toán sẽ có độ phức tạp là bậc 2 của số đỉnh đồ thị đầu vào Hơn nữa, thuật toán cũng độc lập với đồ thị mẫu và số cạnh của nó Tuy nhiên, cây quyết định được xây dựng trong bước tiền xử lý có thể phát triển theo cấp số nhân với số đỉnh của đồ thị mẫu Vì vậy, chúng tôi xin trình bày một thuật toán nhằm mục đích giảm độ phức tạp của cây quyết định Việc

ứng dụng thuật toán trong việc nhận dạng đồ thị được trình bày tóm tắt như sau:

Trang 5

1 Giới thiệu

Đẳng cấu đồ thị và đồ thị con là những khái niệm đã được dùng trong nhiều ứng dụng khác nhau Giải pháp so sánh sự khác nhau giữa các đồ thị là động lực thúc đẩy nhiều nhà nghiên cứu trong suốt hai mươi năm qua Một số thuật toán trước đây đề xuất độ phức tạp xấu nhất theo cấp số nhân và được biết

dưới dạng các bài toán NP-complete Trong phần sau đây, chúng tôi sẽ cung

cấp một cách tổng quan thuật toán về đẳng cấu đồ thị và đồ thị con Trong quá khứ có hai cách tiếp cận cơ bản về vấn đề đẳng cấu đồ thị Cách thứ nhất được dựa trên khái niệm về lý thuyết nhóm và nghiên cứu của nhóm hoán vị Cách này đã được chỉ ra rằng tồn tại một giới hạn vừa phải của một cấp số nhân đối với các vấn đề đẳng cấu đồ thị nói chung Hơn nữa, bằng cách áp đặt hạn chế nhất định trên các thuộc tính của đồ thị, ta có thể thấy được các thuật toán có độ phức tạp đa thức

Ví dụ: Luks và Hoffman mô tả một phương pháp giới hạn đa thức cho việc tìm đẳng cấu đồ thị bằng các liên kết hóa trị Đối với trường hợp đặc biệt, đẳng cấu đồ thị hóa trị ba, thuật toán có độ phức tạp là O(n6) theo tài liệu [Luk82] Trong tài liệu [HW74], một phương pháp đề xuất tính toán đẳng cấu của đồ thị phẳng có độ phức tạp tuyến tính về thời gian Tuy nhiên, nhược điểm lớn của các thuật toán dựa trên khái niệm lý thuyết nhóm thường là chi phí và độ phức tạp lý thuyết cao Cách tiếp cận thứ hai của việc đẳng cấu đồ thị và đồ thị con nghiêng về hướng thực hành nhiều hơn bằng cách xây dựng một thuật toán để phát hiện đẳng cấu Hầu hết các thuật toán này được dựa trên không gian tìm kiếm và quay lui Một trong những lý thuyết đầu tiên trong lĩnh vực này được nêu ra bởi Corneil và Gotlieb trong tài liệu [CG70] Cải tiến chính của phương pháp quay lui được Ullman trình bày, ông giới thiệu phương pháp cải tiến làm giảm không gian tìm kiếm của thủ tục quay lui một cách đáng kể được trình bày trong tài liệu [Ull76] Gần đây, trong tài liệu [MLL92, FFG90], vấn đề đẳng cấu đồ thị được đơn giản hơn bằng cách xây dựng một đồ thị liên kết cho tất cả các đỉnh có thể ánh xạ Và gần đây

Trang 6

nhất, cách tiếp cận mạng để so khớp đồ thị đã được đề xuất trong tài liệu [MB95b].

Cho đến nay, chúng ta chỉ xét vấn đề tìm đồ thị hay đồ thị con đẳng cấu cùng một thời điểm Tuy nhiên, trong các ứng dụng thực tế thường là một cơ

sở dữ liệu đồ thị mẫu, và một đồ thị đầu vào cần kiểm tra đẳng cấu với các

đồ thị trong cơ sở dữ liệu mẫu đó Nếu số lượng các đồ thị trong cơ sở dữ liệu lớn, ta kiểm tra tuần tự mỗi đồ thị thì thuật toán trở nên rất tốn kém Tất nhiên một số hệ thống đã được đề xuất trong quá khứ mà kết hợp các thuật toán đẳng cấu đồ thị hoặc đồ thị con với phương pháp lập chỉ mục Ý tưởng

cơ bản của lập chỉ mục là sử dụng riêng lẽ và dễ dàng tính toán các đặc tính của đồ thị đầu vào trong trường hợp chọn một tập nhỏ đồ thị của cơ sở dữ liệu

đồ thị mẫu ban đầu Trong [HS88], Horaud đề xuất sử dụng các đa thức nội tại thứ hai của ma trận Laplacian của đồ thị như là một chỉ mục đối với cơ sở

dữ liệu đồ thị Tuy nhiên, chỉ số này chỉ duy nhất cho đồ thị có ít hơn 12 đỉnh

và độ phức tạp tính toán của nó là O(n4), với n là số đỉnh của đồ thị Một cách tiếp cận khác được trình bày trong [Par93], bằng cách tính toán cấu trúc chỉ mục mà nó được tổ chức như một một mạng phân cấp tương tự như việc so khớp đồ thị mạng căn bản được mô tả trong [MB95b] Vấn đề được quan tâm nhất hiện này là phương pháp lập chỉ mục được đề xuất trong [Ike87, GB89, Spi93] Thay vì sử dụng một cơ chế lập chỉ mục như là một bước tiền xử lý

để phát hiện ra đẳng cấu đồ thị hoặc đồ thị con, cơ sở dữ liệu của đồ thị được chuyển đổi thành một cây quyết định Cây quyết định sau đó được sử dụng trực tiếp dùng để chỉ mục và so khớp đồ thị mẫu với đồ thị đầu vào Tuy nhiên, tất cả các phương pháp tiếp cận bằng cây quyết định đã được trình bày cho đến nay được ứng dụng mạnh trong việc nhận dạng các đối tượng 3D chứ chưa được sử dụng trong vấn đề đẳng cấu đồ thị nói chung.

Trong bài báo này, chúng tôi đề xuất một phương pháp mới phát hiệnđẳng cấu đồ thị và đồ thị con Nó có hai tính năng quan trọng Đầu tiên, thờigian thực thi của phương pháp này chỉ là bậc hai số đỉnh của đồ thị mẫu nếuchúng ta bỏ qua thời gian cần thiết cho bước tiền xử lý Thứ hai, thời gian là độc

Trang 7

lập với số lượng đồ thị trong cơ sở dữ liệu Phương pháp mới dựa trên ý tưởngsau đây Chúng tôi tạo ra một tập của tất cả các hoán vị của ma trận kề của đồ thịmẫu và tổ chức này tập hợp trong cây quyết định Các đồ thị mẫu có thể kết hợpvới nhau trong cùng một cây quyết định Cây quyết định được xây dựng trước từ

đồ thị mẫu Khi thực thi, nó được sử dụng để xác định nếu có một đẳng cấu đồthị con từ một đồ thị đầu vào với một trong những đồ thị mẫu Ưu điểm chínhcủa phương pháp này là nó đảm bảo độ phức tạp chỉ ở bậc hai thời gian Tuynhiên, thời gian cho bước tiền xử lý là tạo ra cây quyết định, trong trường hợpxấu nhất, sẽ là một cấp số nhân của các đỉnh Tuy nhiên, chúng tôi tin rằngphương pháp này là một đóng góp mới trong lĩnh vực phát hiện đẳng cấu đồ thịcon Đây là một lĩnh vực ứng dụng được quan tâm đặc biệt với các đồ thị mẫu làtương đối nhỏ

Phần còn lại của bài báo này được tổ chức như sau

Phần 2: Những định nghĩa cơ bản và ký hiệu.

Phần 3: Một trong các thuật toán cơ bản trong việc đẳng cấu đồ thị con được mô tả ngắn gọn để so sánh.

Phần 4: Ý tưởng cơ bản và tổng quan của thuật toán mới.

Phần 5 – 6: Mô tả chi tiết hơn về các thủ tục và cấu trúc dữ liệu của thuật toán mới.

Phần 7: Kết quả của một tính toán phân tích phức tạp.

Phần 8: Các kỹ thuật rút gọn cây quyết định.

Phần 9: Một số thí nghiệm.

Phần 10 Ứng dụng thuật toán vào việc phân tích hình ảnh

Phần 11: Tóm tắt kết quả và hướng nghiên cứu trong tương lai.

Trang 8

Rõ ràng, ma trận M không phải là duy nhất cho đồ thị G Nếu M đại diện cho G,sau đó bất kỳ hoán vị của M cũng là một đại diện hợp lệ của G.

Định nghĩa 2.3: Một ma trận cấp n × n P = (p ij ) được gọi là một ma trận hoán vị

nếu:

Trang 9

Như vậy, vấn đề tìm đẳng cấu đồ thị giữa hai đồ thị G1 và G2 là tương đươngnhau bằng cách tìm ma trận hoán vị P với công thức (2) đúng.

Định nghĩa 2.5: Cho hai đồ thị G1 và G2, có một đồ thị con đẳng cấu của G1 với

G2 nếu có tồn tại một đồ thị con S  G2 như vậy G1 và S là đẳng cấu

Định nghĩa 2.6: Cho M = (mij) là một ma trận vuông cấp n và Sk,m(M) là ma trận(m×k) thu được từ M bằng cách xóa các hàng k + 1, …, n và cột m + 1, …., n,với k, m < n

Như vậy Sk,m(M) = (mij); i = 1, …, k và j = 1, …, m

Sử dụng các ký hiệu được giới thiệu trong những định nghĩa sau, không chỉ làkhái niệm của đẳng cấu đồ thị mà còn đẳng cấu đồ thị con có thể được mô tảdưới dạng ma trận kề Cho đồ thị G1 và G2 với ma trận kề M1 (m×m) và M2(n×n) với m  n Có một đẳng cấu đồ thị con từ G1 vào G2 nếu tồn tại một matrận hoán vị P (n×n) thỏa:

M1 = Sm,m(PM2PT) (3)

Trang 10

Như vậy, vấn đề tìm một đồ thị con G2 đẳng cấu với G1 là tương đương với việc

tìm ma trận hoán vị P thỏa biểu thức (3) Lưu ý rằng S m,m (PM 2 P T ) =

S m,n (P)M 2 (S m,n (P)) T

3 Tóm tắt thuật toán Ullman.

Để so sánh, chúng ta xem phương pháp của Ullman trong [Ull76] Phương pháp này có thể được áp dụng cho cả hai: tìm đẳng cấu đồ thị và đồ thị con Phương pháp này được dựa trên kỹ thuật quay lui và một số thủ tục cải tiến Trong số tất cả các phương pháp đã được đề cập, phương pháp của Ullman được xem là một trong các thuật toán nhanh nhất cho vấn đề tìm đồ thị đẳng

cấu

Đầu vào của thuật toán gồm một đồ thị mẫu G = (V, E, µ,, L v , L e ) và

một đồ thị đầu vào G1 = (V 1 , E 1 , µ 1 ,1 , L v , L e ) Cho M (n×n) là ma trận kề của

G và M1(m×m) là ma trận kề của G1 Chúng ta tìm tất cả các ma trận hoán vị

P mà có M 1 = S m,m (PM 1 P T ) Lưu ý rằng Si,n(P) là một ma trận hoán vị (i×n) đại diện cho một mảnh dò tìm từ đỉnh đầu tiên thứ i của G vào một số đỉnh trên

G 1 Nếu S i,i (M I ) = S i,n (P)M(S i,n (P)) T thì rõ ràng S i,n (P) đại diện cho một đẳng cấu

đồ thị từ đồ thị con G 1 với một số đồ thị trong G gồm n đỉnh.

Thuật toán của Ullman được dựa trên ý tưởng tìm tất cả các đồ thị con đẳng cấu bằng cách thiết lập ma trận hoán vị P từng dòng một (Hình 1) Theo định nghĩa 2.3, chúng ta biết rằng mỗi hàng k trong P có chứa chính xác một phần tử pki = 1, trong khi tất cả các phần tử p kj = 0 với j ≠ i Thủ tục

đệ quy Backtrack được thiết lập bằng cách gán phần tử p 11 = 1 và tất cả các

phần tử còn lại của hàng đầu tiên là 0 Nếu S 1,n (P) là một mảnh dò tìm được đại

diện cho một đẳng cấu đồ thị con, khi đó thủ tục Backtrack được gọi lại và dòng thứ hai của P được thiết lập Quá trình này được tiếp tục cho đến khi m

được thiết lập thành công và một đẳng cấu đồ thị con được tìm thấy hoặc điều kiện trong bước (3.b.ii) không thỏa mãn Trong cả hai trường hợp, tiến trình sẽ quay lui với bước trước đó và gán P ki một giá trị khác.

Trang 11

Ullman (G = (V, E, µ,, L v , L e ), G I = (V I , E I , µ I ,I , L v , L e ))

1 Cho P = (pij) là một ma trận hoán vị (n×n), n = |V|, m = |VI| và M, MI làcác ma trận kề của G và GI

Hình 1: Thuật toán Ullman

Dễ dàng để thấy rằng, thuật toán này tìm tất cả các đồ thị con đẳng cấu của

G với G I và xuất ra tất cả các ma trận hoán vị P thỏa M I = S m,n (P)M(S m,n (P)) T

(hoặc M I = S m,m (PMP T )) Hơn nữa, nếu GI và G có kích thước bằng nhau,

thuật toán tìm tất cả đồ thị đẳng cấu giữa G I và G thì kết của các ma trận hoán

vị P thỏa M I = PMP T Trong các thí nghiệm thực tế trình bày ở phần 8, chúng

ta thực hiện các tiến trình quay lui cùng với các bước cải tiến lại được trình bày trong [Ull76] Thủ tục cải tiến được dựa trên ý tưởng là kiểm tra trước các giá trị P ki = 1 ở bước (3.bi) là phù hợp cục bộ với ít nhất một p lj = 1 cho mỗi hàng với m  l > k các bước tìm kiếm tiếp theo Nếu cải tiến lại thủ tục bằng cách gán P ki = 1, tức là ánh xạ đỉnh i của G I lên đỉnh k của G, sẽ không dẫn đến một đẳng cấu đồ thị, việc tìm kiếm có thể tiếp tục với các cột tiếp theo i + 1 và gán p k(i+1) = 1 Như thế, nó có thể để tránh các cuộc gọi đệ quy không cần thiết Điều quan trọng cần lưu ý là các thủ tục quay lui chỉ có thể được áp dụng cho hai đồ thị tại một thời điểm Nếu đồ thị mẫu nhiều hơn một, thì nó gọi chúng riêng biệt Vì vậy, độ phức tạp của thuật toán phát hiện

Trang 12

đẳng cấu đồ thị con dựa trên kỹ thuật quay lui là tuyến tính phụ thuộc vào số lượng đồ thị mẫu.

I 4 Đ ẳng cấu đồ thị con bằng thuật toán cây q uyết định

Vấn đề chính của thuật toán là dựa vào tất cả các ma trận hoán vị đại diện chomột đẳng cấu đồ thị con được tính toán và tạo ra khi thực thi Hơn nữa, các thuậttoán có thể bị bế tắc thì quay lui trở nên cần thiết Để khắc phục những vấn đềnày và để tránh quay lui, chúng tôi đề xuất một phương pháp tiếp cận dựa trêncây quyết định Chúng tôi giả định rằng có một tập hợp các đồ thị mẫu biết trước,

và đồ thị đầu vào sẽ được nhập vào khi thực thi Đối với mỗi đồ thị mẫu, chúngtôi tính toán tất cả các hoán vị có thể có của ma trận kề và biểu diễn bằng mộtcây quyết định Khi chương trình thực hiện, ma trận của đồ thị đầu vào được sửdụng để so sánh với những ma trận kề trên cây quyết định

Cho G = (V, E, µ,, L v , L e ) là một đồ thị mẫu và ma trận kề tương ứng M

(n×n) Gọi A(G) là tập của tất cả các hoán vị ma trận kề của G,

A(G) = |MP| MP = PMPT trong đó P là ma trận hoán vị (n×n) (4)Tổng số hoán vị của ma trận kề là |A(G)| = n! như vậy sẽ có n! ma trận hoán vịcấp n Một đồ thị mẫu G với ma trận kề M (n×n) và đồ thị đầu vào GI có ma trận

kề MI (m×m) với m  n, kiểm tra xem có tồn tại một ma trận MP  A(G) như vậy

MI = Sm,m(MP) Nếu ma trận MP tồn tại, có ma trận hoán vị P thì MP mô tả mộtđẳng cấu đồ thị con từ GI vào G, tức là MI = Sm,m(MP) = Sm,m(PMPT) Nếu G và

GI có kích thước bằng nhau, ma trận hoán vị P đại diện cho một đẳng cấu đồ thị

Trang 13

giữa GI và G, tức là MI = PMPT Chúng tôi đề nghị tổ chức tập A(G) trong câyquyết định, như thế mỗi ma trận A(G) được phân loại bởi cây Việc phân loại dựatrên các giá trị riêng của từng ma trận kề Tuy nhiên, mục đích của cây quyếtđịnh là phân loại ma trận kề của đồ thị đầu vào Trong trường hợp phát hiện đẳngcấu đồ thị con, các ma trận này sẽ nhỏ hơn so với các ma trận A(G) Vì vậy, cầngom nhóm các ma trận kề A(G) có những đặc tính chung, như vậy việc phân loạitrên mỗi mức của cây quyết định là độc lập với kích thước của ma trận kề được

bố trí trên cây quyết định Với mục đích này, ta chọn ký hiệu mới cho một matrận kề (n×n) M = (mij) Chúng ta nói rằng ma trận gồm một mảng các phần tử ai,mỗi ai là một vector có dạng:

ai = (m1i, m2i, , mii, mi(i-1), …, mi1)

Ma trận M có thể được biểu diễn như sau:

M = (a1, a2, …, an); i = 1, …, n

Cây quyết định được xây dựng dựa trên giá trị theo hàng và cột của mỗi ma trận

kề MP  A(G) Ở phía trên của cây quyết định có một nút gốc duy nhất Các nút

Trang 14

kế tạo thành mức thứ nhất của cây quyết định Ở mức thứ nhất, việc phân loạicác ma trận trong A(G) được thực hiện dựa trên giá trị của a1 (phần tử của dòng

và cột đầu tiên) của ma trận MP  A(G) Phần tử a1 = (m11) đại diện cho nhãncủa đỉnh đầu tiên trong mỗi ma trận A(G), với m11  Lv (xem Phần 2) Do đó,mỗi ma trận A(G) được phân loại dựa theo nhãn đỉnh đầu tiên của nó Mỗi nhánhtiếp theo dẫn đến một nút kế thừa trực tiếp từ nút gốc thông qua phần tử a1.Nhánh tiếp theo ở mức thứ hai của cây quyết định, ta sử dụng phần tử a2 (cácphần tử của dòng và cột thứ 2) và cứ như thế cho các mức tiếp theo của cây quyếtđịnh

Như vậy, các ma trận được xác định bởi một số nút ở mức k được phân loại dựatrên giá trị của ak Với mỗi ma trận MP được biểu thị bởi một số nút N ở mức k, tacũng đưa ra được ma trận hoán vị P tương ứng Khi MP đã được phân loại đếnđỉnh thứ k, P mô tả một đẳng cấu đồ thị con cho các đồ thị con với ma trận kề

Sk,k(MP) vào G Khi thực thi, P sẽ mô tả một đẳng cấu đồ thị con cho bất kỳ đồ thịđầu vào được phân loại tới nút thứ N Cuối cùng, ở mức dưới cùng của cây quyếtđịnh có các nút lá Mỗi nút lá đại diện cho một ma trận MP  A(G) Số lượng củanhững ma trận hoán vị trong mỗi nút lá là bằng số tự đẳng cấu của G (tự đẳngcấu là một đẳng cấu của một đồ thị cho chính nó) Trong Hình 3 là đồ thị g1 và

Trang 15

cây quyết định của g1 Các nút của cây quyết định được biểu thị bằng các vòngtròn tô mờ Mỗi nhánh liên kết giữa các nút thông qua giá trị của hàng và cộttương ứng Ở phía trên của hình 3, liệt kê các hoán vị ma trận kề (A(g1)) của g1.

Dễ dàng để thấy rằng số lượng các tự đẳng cấu của g1 là một Vì vậy, mỗi nút látrong cây quyết định đại diện chính xác cho một ma trận kề Một yêu cầu quantrọng cho cây quyết định là các phân loại trên từng cấp độ phải được tính toánmột cách dễ dàng Do đó, nếu một ma trận MP được phân loại dựa theo dòng vàcột thứ k (phần tử ak), sự kế thừa mà đạt được thông qua phần tử aki với aki = ak

phải là dễ dàng tính toán Với mục đích này, một đường đi từ nút k đến nút k + 1được ghi lại thành một từ điển Từ điển này được tổ chức như là một cấu trúc chỉmục với 2k - 1 phần tử mij Có chính xác 2k - 1 phần tử mij và được sử dụng như

là một chỉ mục Việc tìm một phần tử trong từ điển này có thể được thực hiệntrong 2k - 1 bước Vì vậy, việc tìm nút tại mức k có thể được thực hiện trongO(2k - 1) = O(k) bước Một ví dụ là ta xem cây quyết định ở Hình 3 Từ nút 3, ta

có ba nhánh cấp dẫn đến các nút 5, 6, và 7 Ở Hình 4 chỉ ra một thứ tự từ điểnđến các nút này Trong ví dụ này, một chỉ mục ba cấp là cần thiết cho việc tổchức các mục từ điển

Vì vậy, chúng ta chỉ thảo luận về cấu trúc của cây quyết định đối với một

đồ thị mẫu duy nhất Nếu có nhiều đồ thị mẫu trong một cơ sở dữ liệu khi đó giảipháp đơn giản nhất là xây dựng cây quyết định riêng cho từng đồ thị mẫu đó.Tuy nhiên, có thể đại diện cho một số đồ thị mẫu cùng một cây quyết định Mỗicấp, việc phân loại của các ma trận kề của đồ thị mẫu chỉ được thực hiện trên cơ

sở của các phần tử của hàng và cột hiện tại Vì vậy, cho một tập hợp của mô hình

đồ thị G1, G2, …, GL, với ma trận kề tương ứng là A(G1), A(G2), …, A(GL) cóthể được phân loại và biểu thị bởi cùng một quyết định cây Trong Hình 5 câyquyết định biểu diễn cho đồ thị g1 ở hình 3 và đồ thị g2 Để phân loại các ma trận

kề A(g2) (được đưa ra ở trên cùng của Hình 5) chỉ có hai nút được thêm vào câyquyết định của đồ thị g1 G2 có ba phần cùng đẳng cấu tại nút 13 và nút 15 đượcbiểu thị trong Hình 5

Trang 16

Khi thực thi, cây quyết định sử dụng trực tiếp các ma trận kề MI (đã được phânloại) của một đồ thị đầu vào GI Ma trận MI được phân loại ở cấp thứ 1 dựa vàophần tử a1 Nếu có một số nhánh i từ nút gốc đến nút kế có liên kết đến a1, thuậttoán vẫn tiếp tục với các nút kế đó và cứ tiếp tục với các nút con của nó Nếu tạimột số điểm không thể phân lớp, khi đó đồ thị vào GI không phải là đẳng cấu vớibất kỳ đồ thị con nào của đồ thị mẫu Nếu như các phần tử của GI đã được sửdụng để phân loại, và đến được nút lá N trong cây quyết định, N là đại diện chomột đẳng cấu đồ thị giữa đồ thị mẫu và đồ thị đầu vào

Trang 17

(b) Gọi merge_tree(Root, Sk).

Hình 6: Thuật toán Compile-tree.

5 Một biểu diễn hiệu quả hơn của cây quyết định:

Cây quyết định được mô tả vừa rồi không cần thiết phải lớn Sau đây chúng tôigiới thiệu một cách làm cho nó nhỏ gọn hơn bằng cách quan sát rằng ở mức ktrong cây quyết định biểu diễn tất cả các đồ thị con có k đỉnh, k = 1, …, n Chú ýrằng mỗi đồ thị con S được biểu diễn bởi k!/α lα lần, với α là số không tự đẳng cấucủa S Rõ ràng, tất cả các đại diện tương đương với nhau, và thông tin mà ta chứaphần lớn là dư thừa Bây giờ chúng ta biết được cách làm thế nào để loại bỏ sự

dư thừa này Kết quả là ta xây dựng một cây nhỏ gọn hơn cây quyết định banđầu

Cho N1 và N2 là các nút của cây quyết định và cả hai biểu diễn cho đồ thịcon S giống với đồ thị mẫu G, và S có ma trận kề MS Cho M1 và M2 là các matrận kề biểu diễn bởi N1 và N2, và P1, P2 là ma trận hoán vị tương ứng, như vậy

P1MSP1T = M1 và P2MSP2T = M2 Khi đó tồn tại một ma trận hoán vị R sao cho:

Mà ta có:

Thế R = P1P2T vào phương trình (5) và cũng thay thế M2 bằng P2MSP2T kết quả là

M1= P1P2T(P2MSP2T)(P1P2T)T = P1MSP1T.Vì vậy, bất kỳ ma trận kề đại diện cho nút

N2 có thể được chuyển đổi nhờ ma trận R thành một ma trận được biểu diễntrong N1 Kết luận quan trọng nhất từ sự quan sát này là không cần thiết để phânloại các ma trận dựa vào nút N2 Thay vào đó, nó có khả năng để phân loại các

ma trận đại diện trong N1 và chỉ cần tham khảo hoặc chuyển hướng nút N2 đến

N1 Với mục đích này, chúng tôi giới thiệu nhánh kết hợp (redirecting branch)trong cây quyết định từ nhánh nút N2 qua N1 Liên kết với nhánh kết hợp là các

ma trận hoán vị R Nói chung, với một đồ thị con S  G, chúng ta chọn tập từ nútcủa cây quyết định mà nó đại diện cho S là một nút T tùy ý và được chèn cácnhánh kết hợp từ tất cả các nút khác đến T

Trang 18

MERGE_TREE(NODE Root, Graph S)

1 Cho S được biểu diễn bởi ma trận kề M(k×k) của nó.

Tạo ra tất cả các ma trận hoán vị P có kích thước là k và tập A(S) là tập mà trận kề hoán vị của S.

2 Với mỗi M P = (a1, …,a k )  A(S) thì:

3 Chọn nút N ở mức k + 1 được tạo hoặc tìm thấy cho ma trận đầu tiên M 1

trong A(S) và tập T = N Cho M 1 = P 1 MP 1 T

4 Với mỗi nút N ≠ T ở mức độ k + 1 đại diện S, chèn một nhánh kết hợp vào nút T Cho M’  A(S) là một ma trận kề đã được phân lớp trong N và ma trận hoán vị tương ứng P’, như thế:

M’ = P’MP’ T Khi đó, kết hợp các ma trận hoán vị P 1 P’ T đến các nhánh kết hợp từ N đến T (xem phương trình 6).

Hình 7: Thuật toán Merge_tree.

Do đó, chỉ có một trong những nút của S sẽ được dùng cho các ma trận đã được phân loại của đồ thị G Bây giờ chúng ta mô tả một thủ tục để biên dịch một cây quyết định từ một đồ thị mẫu Ý tưởng cơ bản của chương trình biên dịch là tạo ra một cây quyết định gồm tất cả các đồ thị con của đồ thị mẫu Trong thủ tục, chúng ta dần dần tăng kích thước của đồ thị con mà được tích hợp trong cây quyết định Như được thảo luận ở trên, với mỗi đồ thị con chỉ cần có một nút trong cây quyết định được sử dụng để phân loại Khi biên dịch thủ tục compile_tree, chúng ta bắt đầu tạo ra một nút gốc cho cây quyết định, với điều kiện là cây quyết định đang rỗng Tiếp theo, ta tạo đồ thị con của G bắt đầu với đồ thị con có kích thước là một và kết thúc là chính nó.

Trang 19

Với mỗi đồ thị con S k với k biểu thị số đỉnh, thủ tục merge_tree được gọi thực

hiện

Trong bước đầu tiên thủ tục merge_tree, tập A(S) của tất cả các hoán vị ma trận kề được tạo ra Các ma trận này sau đó được phân loại theo cây quyết định đã có càng nhiều càng tốt Lưu ý rằng cây quyết định có thể vào thời điểm này đã kết hợp các đồ thị mẫu hoặc các đồ thị con của đồ thị mẫu khác

nhau

Việc phân loại ma trận được thực hiện trong các bước (2.a) và (2.b) bằng cáchdựa trên giá trị của dòng và cột tương ứng Nếu cho một số nút N ở mức k, không

có phân loại của ma trận hiện tại, tức là không có nút kế cho ma trận hiện tại, khi

đó một nút Ns mới được chèn vào cây quyết định Nút Ns mới này phải được gắnvới một nút kế thừa trực tiếp của N Hơn nữa, phần tử ak phải được đưa vào từđiển được gắn với N Khi tất cả các ma trận trong A(S) đã được phân loại thànhcông, nhánh kết hợp được chèn vào Mặc định, các nút được tạo ra cho các ma

Trang 20

trận đầu tiên M1  (S) được đại diện bởi nút T Trong bước (4), tất cả các nútkhác mà đã được tạo ra cho ma trận trong A(S) sau đó được chuyển hướng đến T.Trong hình 8 thể hiện kết quả của thuật toán compile-tree từ cây quyết định chocác đồ thị g1 và g2 Có hai nhánh kết hợp trong cây quyết định (ký hiệu bởiđường đứt khúc) Liên kết với cả hai nhánh là ma trận hoán vị 

0 1

1 0

.Khi áp dụng cho ma trận con 2×2 S2,2(A), S2,2(B) và S2,2(D) của g1, các ma trậnkết quả là S2,2(C), S2,2(E) và S2,2(F) Đối với đồ thị g2, nhánh kết hợp biến đổi matrận S2,2(A’), S2,2(D’) và S2,2(E’) thành các ma trận S2,2(C’), S2,2(F’) và S2,2(B’).Chú ý rằng bằng cách giới thiệu các nhánh kết hợp vào cây quyết định là có thểtiết kiệm được ba nút trên cây quyết định

Cho đến giờ, chúng ta chỉ thảo luận việc lập cây quyết định cho các đơn đồ thịmẫu Tuy nhiên, cấu trúc chung của một cây quyết định là độc lập với số lượng

đồ thị mẫu Vì vậy, không cần thiết để xây dựng một cây quyết định mới cho tất

cả các đồ thị mẫu mới Thay vào đó, cùng một cây quyết định có thể được mởrộng và được sử dụng cho nhiều đồ thị mẫu trong cơ sở dữ liệu Khi cần mở rộngchỉ đơn giản gọi thuật toán compile-tree cho mỗi đồ thị mới

6 Cây quyết định theo chiều rộng.

Cấu trúc cây quyết định đã được mô tả trước đây có thể được sử dụng rất hiệuquả cho thuật toán đẳng cấu đồ thị Cho G1, …, GL là một tập đồ thị mẫu thể hiệnbởi một cây quyết định và GI là một đồ thị đầu vào Chúng tôi giả định rằng đồthị đầu vào được đại diện bởi ma trận kề của nó MI = (a1, a2, …, am) được chobằng cách định dạng cột và hàng Thuật toán decision-tree (xem Hình 9) cố gắngtìm ra một ma trận M  A(Gi), như vậy MI = Sm,m(M) bằng cách phân loại MI

theo phần tử của dòng và cột Thuật toán bắt đầu tại nút gốc của cây quyết định

và trước tiên phân loại MI theo phần tử đầu tiên của nó (a1) Nếu bước này thànhcông, phân loại được tiếp tục vào cấp độ tiếp theo Nói chung, nếu tiến trìnhđang ở mức độ k và N là nút hiện tại của cây quyết định, khi đó ak sẽ đại diện cho

N Ta làm được điều này bằng cách tìm phần tử ak trong từ điển Nếu có một

Trang 21

phần tử akN trong từ điển hoàn toàn phù hợp với ak, tiến trình sẽ thông qua nhánh

N này để đến nhánh kề sau với nó và có nút là Ns, nút này được thể biện bởiphần tử akN Nếu không có phần tử nào như vậy được tìm thấy trong từ điển thì

MI không có thể được phân loại bởi cây quyết định, như vậy thì GI không là đẳngcấu với đồ thị mẫu ban đầu Trong bước (2.d) của thuật toán nó kiểm tra nút Ns

có thể kết hợp nhánh được không Nếu đây là vấn đề của việc kết hợp nhánh.Theo đó, MI là ma trận của đồ thị đầu vào phải được hoán vị bằng cách đưa matrận hoán vị R vào nhánh kết Tuy nhiên, nếu N ở mức k thì R là 1 ma trận vuônghoán vị cấp k bởi vì nó được tạo ra tại thời gian biên dịch cho một đồ thị con cókích thước là k (xem phần trước) Mặt khác, MI là một ma trận kề cấp m của đồthị đầu vào GIvới m  k Để áp dụng ma trận R vào ma trận MI, điều này cầnthiết để mở rộng R thành một ma trận cấp m bằng cách thêm m - k hàng và m - kcột Các hàng và cột được sao chép từ một ma trận nhận dạng cấp m Ma trận Rđược mở rộng ký hiệu là R’ Sử dụng R’ nó có thể điều chỉnh MI vào nhánh kếthợp theo đẳng thức sau: MI = R’MIR’T Tiến trình phân loại sau đó có thể đượctiếp tục

Thuật toán kết thúc khi bước (2.b) phát hiện rằng:

- Không có đẳng cấu đồ thị con từ đồ thị đầu vào với bất kỳ đồthị mẫu nào

Dễ dàng để thấy rằng thuật toán mới cho phép đẳng cấu đồ thị đi qua cây quyếtđịnh mà không có sự cần thiết phải quay lui và do đó độ phức tạp thời gian chỉ là

đa thức ứng với số đỉnh của đồ thị đầu vào Hơn nữa, thuật toán rõ ràng là độc

Trang 22

lập với số lượng đồ thị mẫu được biểu diễn trong cây quyết định Để tránh hiểulầm, chúng ta cần lưu ý rằng thuật toán mới không thể dùng để phát hiện đẳngcấu đồ thị con từ đồ thị mẫu Ta chỉ có thể kết luận là thuật toán sử dụng ma trận

kề của đồ thị đầu vào ở dạng ban đầu của nó và cố gắng phân loại các phần tửmột cách tuần tự Nếu đồ thị đầu vào có chứa một đỉnh không liên quan, khi đó

sự phân loại của ma trận kề có thể thất bại ở bất cứ mức nào của cây quyết định.

DECISION_TREE(NODE Root, GRAPH G I)

1 Cho G I và ma trận kề M I = (a1, …, a m ) và cho m = |V| và N = root.

bởi tìm không thấy đẳng cấu đồ thị

(c) Nếu một phần tử a kN = a k được tìm thấy trong từ điển, khi đó ta theo nhánh được đại diện bởi phần tử a kN để đến được nút N s

(d) Nếu có một nhánh kết hợp của N s một số nút N’ khi gán M I = R’M I R’ T , với R’ là ma trận hoán vị cấp m được mở rộng Đặt N = N’.

Trang 23

Phân tích độ phức tạp tính toán được dựa vào các yếu tố sau:

N = số đồ thị mẫu trong cơ sở dữ liệu,

M = số lượng tối đa của các đỉnh trong một đồ thị mẫu,

I = Số đỉnh của đồ thị đầu vào,

lv = số lượng nhãn đỉnh,

le = số lượng nhãn cạnh.

7.1 Tính toán phức tạp của thuật toán thông thường

Để so sánh, đầu tiên chúng ta phân tích độ phức tạp không gian và thời gian theo cách cũ, phương pháp đẳng cấu đồ thị con trên cơ sở quay lui Trường hợp tốt nhất của thuật toán này:

(Độ phức tạp về thời gian trong trường hợp tốt nhất)

(Độ phức tạp về không gian trong trường hợp tốt nhất)

Trường hợp xấu nhất nhất của thuật toán này:

(Độ phức tạp về thời gian trong trường hợp tốt nhất)

(Độ phức tạp về không gian trong trường hợp tốt nhất)

7.2 Tính toán độ phức tạp của thuật toán mới.

Không giống như các thuật toán thông thường mà không cần các bước tiền

xử lý, các thuật toán mới liên quan đến việc tiền xử lý chuyên sâu, cụ thể là việc tạo cây quyết định cho các đồ thị mẫu Trong phần sau đây, chúng ta xem xét sự phức tạp tính toán của các bước tiền xử lý và sau đó chúng ta phân tích sự phức tạp thời gian chạy của nó Với liên quan đến ứng dụng thực tế, điều quan trọng là cần lưu ý rằng cây quyết định được xây dựng trong bước tiền xử lý phải được lưu trữ trong bộ nhớ chính lúc thực thi Vì vậy, kích thước của cây quyết định là rất quan trọng cho bất kỳ ứng dụng

Trang 24

nào kết hợp các thuật toán mới Một độ đo hữu ích cho kích thước của cây quyết định chính là số lượng các nút Theo trình tự biên dịch thuật toán được

mô tả trong Mục 5, cây quyết định cho một đồ thị mẫu được xây dựng từng cấp một Các nút ở mức k + 1 được tạo ra bằng cách cách ly tất cả các đồ thị con có kích thước k của đồ thị mẫu và phân loại các đồ thị con trong cây quyết định Tuy nhiên, bất kể số lượng các hoán vị, chỉ có một nút cho mỗi

đồ thị con có kích thước k được sử dụng như là một nút cha cho các nút khác trong cây quyết định Vì vậy, số lượng các nút trên mỗi mức được giới hạn bởi  k  

k

l O l M

l

O 1 2 2

0

1 ) 

Đây là trường hợp xấu nhất của đồ thị có hướng và có nhãn Trường hợp đặc biệt, đồ thị không nhãn, vô hướng Đối với những đồ thị này, trường hợp xấu nhất đối với các thuật toán thông thường, kích thước của cây quyết định được giới hạn bởi biểu thức sau đây:

Thời gian chạy theo lý thuyết hiệu suất của thuật toán mới có thể được ước

tính bằng cách phân tích thuật toán decision-tree tại Mục 6 Ma trận kề của

đồ thị đầu vào từng bước được phân loại bởi cây quyết định Đối với một đồ thị có M đỉnh, ma trận kề có M phần tử (theo hàng và cột) a1,a2, …, a M Việc

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

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
(4) [FFG90] B. Falkenhainer, K.D. Forbus, and D. Gentner. The structure- mapping engine: Algorithms and examples. Artificial Intelligence, 41:1-63, 1989/90 Sách, tạp chí
Tiêu đề: Artificial Intelligence
(6) [GB89] T. Glauser and H. Bunke. Generation of decision trees from CAD- models for recognition tasks. In H. Burkhardt, K.H. Hohne, and B.Neumann, editors, Mustererkennung 1989, pages 334-340. Hamburg, 1989 Sách, tạp chí
Tiêu đề: Mustererkennung 1989
(1) [Bab81] L. Babai. Moderately exponential bound for graph isomorphism. In F. Gecseg, editor, Lecture Notes in Computer Science: Fundamentals of Computation Theory, pages 34 - 50. Springer Verlag, 1981 Khác
(2) [CG70] D.G. Corneil and C.C. Gotlieb. An efficient algorithm for graph isomorphism. Journal of the ACM, 17:51-64, 1970 Khác
(5) [Gat79] G. Gati. Further annotated bibliography on the isomorphism disease.Journal of Graph Theory, pages 96-109, 1979 Khác
(7) [GJ79] M.R. Garey and D.S. Johnson. Computers and Intractability: A Guide to the Theory of NP-Completeness. Freeman and Company, 1979 Khác
(8) [Hof82] C.M. Ho man. Group-theoretic Algorithms and Graph Isomorphism.Springer Verlag, 1982 Khác
(9) [HS88] R. Horaud and T. Skordas. Structural matching for stereo vision. In Proc. 9.th ICPR, pages 439{445, 1988 Khác
(10)[HW74] J.E. Hopcroft and J.K. Wong. Linear time algorithm for isomorphism of planar graphs. In Annual ACM Symposium on Theory of Computing, pages 172-184, 1974 Khác
(11)[Ike87] K. Ikeuchi. Generating an interpretation tree from a CAD model for 3D-object recognition in bin-picking tasks. International Journal of Computer Vision, 1(2):145-165, 1987 Khác
(12) [Luk82] E.M. Luks. Isomorphism of graphs of bounded valence can be tested in polynomial time. Journal of Computer and System Sciences, pages 42{65, 1982 Khác
(13)MB95a] B.T. Messmer and H. Bunke. Automatic learning and recognition of graphical symbols in engineering drawings. In Proceedings Int. WorkShop on Graphics Recognition, University Park, Pennsylvania, 1995 Khác
(14)[MB95b] B.T. Messmer and H. Bunke. A new method for efficient error- correcting subgraph isomorphism. In D. Dori and A. Bruckstein, editors, Syntactic and Structural Pattern Recognition. World Scientific Publ.Company, Singapore, to appear in 1995 Khác
(15)[MLL92] S.H. Myaeng and A. Lopez-Lopez. Conceptual graph matching: a exible algorithm and experiments. Journal of Experimental and Theoretical Artificial Intelligence, 4:107-126, April 1992 Khác
(16)[Par93] S. Paris. Structural recognition using an index. In S. Impedovo, editor, Proceedings of the 7'th Int. Conf. on Image Analysis and Processing:Progress in Image Analysis and Processing III, pages 258{265. World Scientific, 1993 Khác
(17)[RC77] R.C.Read and D.G. Corneil. The graph isomorphism disease. Journal of Graph Theory, 1:339-363, 1977 Khác
(18)[Set90] I. K. Sethi. Entropy nets: From decision trees to neural networks. In Neural Networks: Theoretical Foundations and Analysis, pages 275-283.IEEE Press, 1990 Khác
(19)[Spi93] L. Spirkovska. Three-dimensional object recognition using similar triangles and decision trees. Pattern Recognition, 26(5):727-732, 1993 Khác
(20)[Ull76] J.R. Ullman. An algorithm for subgraph isomorphism. Journal of the Association for Computing Machinery, 23(1):31-42, 1976 Khác

HÌNH ẢNH LIÊN QUAN

Hình 1: Thuật toán Ullman. - 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
Hình 1 Thuật toán Ullman (Trang 11)

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w