Một số tính chất của đồ thị đẳng cấu

Một phần của tài liệu (LUẬN văn THẠC sĩ) bài toán đồ thị con đẳng cấu trong khai phá dữ liệu đồ thị và ứng dụng phát hiện đồ thị con phổ biến (Trang 34 - 38)

Tính chất 2.1. Nếu đồ thị GAGB đẳng cấu với nhau, thì thuật toán

graphIsomorphism xác định được đẳng cấu.

Chứng minh. Giả sử GAGB là đẳng cấu với nhau, nghĩa là tồn tại φ: VAVB

là đẳng cấu,

d(u, v) = d(φ(u), φ(v)) với mọi đỉnh u, v của GA.

Theo định nghĩa, tất cả các đồ thị kết đôi tương ứng của chúng cũng sẽ đẳng cấu với nhau. Nghĩa là Suv = Sφ(u)φ(v) cũng là song ánh tho bảo toàn tính đẳng cấu đối với tất cả các đỉnh u, v của G.

Do vậy, các vector tần xuất dấu xếp theo thứ tự từ điển SA*SB* là như nhau, ( f Ai1, f Ai2, ..., f Ain) = ( f Bi'1, f Bi'2, ..., f Bi'n)

Bởi φ là hàm “trên” (surjective), thuật toán tìm một giá trị k sao cho nếu đỉnh

v1 là nhãn hàng 1 và cột 1 của dạnh chính tắc SA* thì đỉnh φ(v1) sẽ là nhãn ở hàng k

và cột k của SB*. Khi đó, hàng (1, k) và các cột (1, k) của SB* được đổi chỗ cho nhau. Chúng ta dựa vào qui nạp để chỉ ra rằng thuật toán trong 2.2.3 và 2.2.4 thực hiện đối sánh các hàng của SA* với các hàng tương ứng của SB*.

Bước cơ sở qui nạp ta xét hàng 1 của SB*. Do đỉnh v1 là nhãn của hàng 1 của

SA* và φ(v1) là nhãn của hàng 1 của SB*, hai vector tần xuất dấu tương ứng sẽ bằng nhau. Theo cách tính các tần xuất hiện của các bộ dấu, khi gặp phải sự so sánh không bằng nhau trên hàng 1, thì có thể đổi chỗ các cột của SB*, để chúng sánh được với nhau theo thuật toán trong 2.2.3 và 2.2.4.

Theo giả thiết qui nạp, ta giả sử các hàng 1, ..., t của SA* SB* là sánh được với nhau theo thuật toán trong 2.2.3 và 2.2.4 sao cho nhãn của các đỉnh trong các hàng 1, ..., tv1, ..., vt của SA* và nhãn của các đỉnh trên các hàng 1, ..., tv1’, ...,

vt’ của SB*, tương ứng bằng nhau φ(v1) = v'1, ..., φ(vt) = v't.

Bởi các ma trận dấu là đối xứng nên thuật toán trong 2.2.3 và 2.2.4 cũng đảm bảo rằng các cột 1, ..., t của SA* SB* là sánh được với nhau như đối với các hàng. Do vậy, phần tử đầu tiên Bij trong SB* mà không sánh được với Aij trong SA* thì hàng

i = t+1 và cột j t+1. Theo giả thiết qui nạp, đồ thị con GAt của GA với các đỉnh {v1, ..., vt} và đồ thị con GBt of GB với các đỉnh {φ(v1) = v'1, ..., φ(vt) = v't} là đẳng cấu bởi φ. Từ đó suy ra, phải tồn tại một đỉnh vt+1 của GA nằm ngaoif đồ thị con GAt sao cho đỉnh φ(vt+1) của GB cũng nằm ngoài GBt. Bởi vì có sự khác nhau ở Bij, nên đỉnh φ(vt+1) phải là nhãn trên các cột j' > j. Thuật toán Procedure 3.4 sẽ thực hiện đổi chỗ các hàng ( j, j' ) và các cột ( j, j' ) của SB* và lặp lại cho đến khi các hàng i = t + 1 SA* SB*

v't+1. Nghĩa là thuật toán trong 2.2.3 và 2.2.4 thực hiện được đối sánh từng hàng của

SB* với các hàng của SA*. Đẳng cấu được xác định là φ(v1) = v'1, ..., φ(vn) = v'n.

Tính chất 2.2. Nếu hai đồ thị GA and GB không đẳng cấu với nhau, thì thuật toán

graphIsomorphism khẳng định không tồn tại đẳng cấu giữa chúng [1].

Chứng minh. Giẳ sử GAGB không đẳng cấu với nhau. Trước tiên thuật toán

graphIsomorphism đi tìm dạng chính tắc của hai ma trận dấu SA*SB*. Nếu SA*

khác SB* thì kết luận GAGB không đẳng cấu với nhau. Nếu các vector tần xuất dấu xếp theo thứ tự từ điển của SA*SB* giống nhau, (fAi1, fAi2, ..., fAin) = (fBi'1, fBi'2, ...,

f

Bi'n), thì thuật toán thực hiện lặp lại lần cuối với k = 1, 2, ..., n và không tìm được đẳng cấu. Theo tính chất 2.2, GAGB là đẳng cấu với nhau, thì thuật toán phải xác định được đẳng cấu tường minh cho mọi giá trị k. Mà ở đây không tìm được đẳng cấu, nên kết luận không có đẳng cấu.

Từ tính chất 2.1 và 2.2 ta có định lý sau:

Định lý 2.1. Thuật toán graphIsomorphism giải được bài toán đẳng cấu đồ thị.

Tính chất 2.3. Cho trước đồ thị Gn đỉnh, thuật toán shortestPath sẽ thực hiện nhiều nhất 3n2 + 3n bước (phép toán) để tìm tất cả các đường đi ngắn nhất từ đỉnh u

tới tất cả các đỉnh còn lại [1].

Chứng minh. Phần khởi tạo thực hiện 3n bước. Để tìm được khoảng cách cực tiểu của một đỉnh với đỉnh u thì cần nhiều nhất n bước và việc cập nhật lại các khoảng cách dự đoán (tentative distances) nhiều nhất là n bước. Thực hiện nhiều nhất n cho trình lặp cho đến khi tất cả các đỉnh được duyệt qua. Cuối cùng, cần nhiều nhất n2

bước để phủ tất cả các đỉnh trên các đường đi ngắn nhất. Do vậy thuật toán

shortestPath kết thúc sau nhiều nhất 3n + n(n + n) + n2 = 3n2 + 3n bước thực hiện.

Tính chất 2.4. Cho trước đồ thị Gn đỉnh, thuật toán distancePairGraph sẽ thực hiện nhiều nhất 7n2 + 7n bước để tính khoảng cách d(u, v) trong đồ thị phụ thêm G\uv

và đồ thị kết đôi Guv cho cặp đỉnh uv.

Chứng minh. Đồ thị G\uv acũng có n đỉnh. Theo tính chất 3.5, thuật toán

shortestPath thực hiện nhiều nhất 3n2 + 3n bước để tìm các đường đi ngắn nhất từ

ngắn nhất từ đỉnh ban đầu v tới những đỉnh khác. Sau đó nó cần nhiều nhất n bước để xác định khoảng cách d(u, v). Cuối cùng thuật toán cần nhiều nhất n2 bước để thực hiện qua các cặp đường đi ngắn nhất để xác định số đỉnh trong đồ thị kết đôi Guv. Do vậy, thuật toán distancePairGraph cần nhiều nhất 3n2 + 3n + 3n2 + 3n + n + n2 = 7n2 + 7n bước để kết thúc.

Tính chất 2.5. Cho trước đồ thị Gn đỉnh, thuật toán signAndForm sẽ thực hiện nhiều nhất 7n4 + 7n3 + 2n2 bước để xác định dạng chính tắc của ma trận dấu SG* .

Chứng minh. Theo tính chất 3.6, với mỗi cặp đỉnh cần nhiều nhất 7n2 + 7n để tính bộ dâu suv. Trong đồ thị n đỉnh thì sẽ có n2 bộ dấu, nghĩa là cần nhiều nhất n2(7n2

+ 7n) = 7n4 + 7n3 bước xây dựng ma trận dâu SG. Sau đó cần n2 bước để tính vector tần xuất dấu và nhiều nhất n2 bước để sắp xếp chúng theo thứ tự từ điển. Vậy, thuật toán sẽ kết thúc sau 7n4 + 7n3 + n2+ n2 = 7n4 + 7n3 + 2n2 bước.

Tính chất 2.6. Cho trước SA*SB* sao cho các vector tần xuất dấu xếp theo thứ tự từ điển (f

Ai1, fAi2, ..., fAin) = (fBi'1, fBi'2, ..., fBi'n), thuật toán Procedure 3.4 sẽ kết thúc sau nhiều nhất 2n4 bước thực hiện [16].

Chứng minh. Ma trận dạng chính tắc SB* n2 bộ dấu hiệu, nên cần nhiều nhất

n2 bước để tìm những vị trí (i, j) không đối sánh được với bộ dấu hiệu tương ứng trong SA*. Nó cần nhiều nhất n2 theo các hàng i để tìm j' để đổi chỗ các hàng ( j, j' ) và các cột ( j, j' ) khi chúng không đối sánh được với nhau. Công việc này lặp lại nhiều nhất n2 lần cho đến khi không tìm cột j' tương ứng để đổi chỗ hoặc hai ma trận dấu là như nhau, nghĩa là thuật toán sẽ kết thúc sau nhiều nhất n2(n2 + n2) = 2n4 bước thực hiện.

Tính chất 2.7. Cho trước đồ thị GAGBn đỉnh, thuật toán graphIsomorphism

sẽ cần nhiều nhất 2n5 + 14n4 + 14n3 + 4n2 bước để kết thúc.

Chứng minh. Theo tính chất 2.5, thuật toán signAndForm cần nhiều nhất 2(7n4 + 7n3 + 2n2) = 14n4 + 14n3 + 4n2 để tính ma trận dạng chính tắc SA*SB*. Nếu các vector tần xuất xếp theo thứ tự từ điển bằng nhau (f i1, f i2, ..., f i ) = ( f i'1,

n(2n4) = 2n5 bước để kết thúc. Vậy, thuật toán kiểm tra hai đồ thị đẳng cấu sẽ kết thúc sau nhiều nhất 2n5 + 14n4 + 14n3 + 4n2 bước thực hiện.

Từ định lý 2.1 và tính chất 2.7 ta kết luận:

Định lý 2.2. Bài toán đẳng cấu đồ thị GI có độ phức tạp tính toán là đa thức.

Ví dụ 2.1. Hai đồ thị được cho dưới dạng ma trận liền kề ở files Graph A.txtGraph B.txt. Thuật toán sẽ tính các ma trận dấu ở dạng chính tắc SA*SB* rồi kiểm tra xem chúng có đẳng cấu với nhau hay không trong thời gian đa thức. Nếu chúng đẳng cấu với nhau thì xác định luôn đẳng cấu.

Thuật toán graphIsomorphism được dùng để khai phá dữ liệu đồ thị và phát hiện những đồ thị con (đẳng cấu với nhau) phổ biến.

Một phần của tài liệu (LUẬN văn THẠC sĩ) bài toán đồ thị con đẳng cấu trong khai phá dữ liệu đồ thị và ứng dụng phát hiện đồ thị con phổ biến (Trang 34 - 38)

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

(66 trang)