Download as pdf or txt
Download as pdf or txt
You are on page 1of 21

BÁO CÁO

ĐỒ THỊ ĐẲNG CẤU


(Graph Ismorphism)
Ghi chú

 Khảo sát trên đồ thị đơn vô hướng.


 Đồ thị phải liên thông.
 Biểu diễn đồ thị bằng ma trận kề.
Nhắc lại…

1. Biểu diễn đồ thị bằng: Ma Trận Kề

Cho đồ thị G = (V, E) trong đó V={v1,v2,…,vn}


Ma trận kề biểu diễn đồ thị G là ma trận có
kích thước nxn được xác định như sau:

0 nếu (vi, vj)  E


aij =
1 nếu (vi, vj)  E
Ví dụ
 Biểu diễn đồ thị vô hướng sau bằng ma
trận kề

1 2 3

5 4
2. Bậc của đỉnh đồ thị

 Bậc của đỉnh v  V là số cạnh liên thuộc


với v, ký hiệu là deg(v)

1 2 3

Deg(5)=3
5 4
3. Song ánh (đơn ánh và toàn ánh)

Đơn ánh:
f: X Y
 x, x'  X: f(x) = f(x') => x = x'
hay x  x' => f(x) = f(x')
Toàn ánh:
f: X Y
 y  Y có ít nhất một x  X sao cho y = f(x)

Song ánh là một ánh xạ vừa đơn ánh, vừa


toàn ánh
ĐỒ THỊ ĐẲNG CẤU

Hai đồ thị G1 = (V1, E1) và G2 = (V2, E2)


được gọi là đẳng cấu (Isomorphism)
với nhau nếu tồn tại một song ánh S
như sau:
S: V1 V2
v1 v2 = S(v1)

Sao cho:
 x, y  V1 : (x, y)  E1  (S(x), S(y))  E2
Và  x, y  V2 : (x, y)  E2  (S(x), S(y)) E1
Two Graph Isomorphism?

Graph 1 Graph 2

C 1

2 3
B D

A E
5
Ta có song ánh:
A -------> 1
B -------> 2
C -------> 3
D -------> 4
E -------> 5
Graph 1 Graph 2

C 1

2 3
B D

A E
5
Ta có song ánh:
A -------> 4
B -------> 2
C -------> 1
D -------> 3
E -------> 5
Ta có song ánh:
(A,4); (B,2); (C,1);
Với(D,3);
số đỉnh(E,5)lớn
Để chọn song ánh như trênthì sốthì:hoán vị
- Ta giữ nguyên thứlớn=>tìm
tự các đỉnhhoán
trongvị
thích hợp để tạo
V1={A, B, C, D, E}
ra một
- Thứ tự các đỉnh trong song
V2 được lấyánh
từ một
hoán vị của 5 đỉnh {1,là 2, rất
3, 4,khó!!!
5}, với 5 đỉnh
thì ta có 5! hoán vị.
- Sau đó lấy tương ứng các đỉnh trong V1 và
V2 => một song ánh giữa đồ thị G1 và G2.
- Tìm ma trận kề của hai đồ thị G1 và G2 theo
thứ tự đỉnh như trên
- Nếu hai ma trận kề giống nhau thì ta được
song ánh cần tìm
Hai đồ thị đẳng cấu thì ta có:

 Cùng số đỉnh.
Đây là những
 điều kiện
Cùng số đỉnh bậc k, k nguyên cần
dương  0.
để hai đồ thị
 Cùng số cạnh. đẳng cấu!

 Cùng số thành phần.

=> Nếu hai đồ thị có ma trận kề (theo một


thứ tự đỉnh nào đó) bằng nhau thì chúng
đẳng cấu với nhau.
Nhưng đồ thị nào đẳng cấu với nhau?
Kiểm tra tính đẳng cấu của hai đồ thị

Graph 1 Graph 2

A B
1 2 3 4
E F

H G
8 7 6 5
D C
Bài toán kiểm tra
hai đồ thị đẳng cấu là
bài toán khó (NP-Complete).
Có rất nhiều thuật giải nhưng
Chưa có một thuật giải tối ưu!!
Thuật toán kiểm tra hai đồ thị đẳng cấu

 Cho đồ thị A và B (gồm n đỉnh)


 Ý tưởng: Xây dựng một cây tìm kiểm như
sau:
Root M={}

M={(a1,b1)}

M={(a1,b1),(a2,b2)}
 Với M là tập hợp chứa các cặp tương ứng
AxB.
 Nếu A và B đẳng cấu thì:
 M={(a1,b1),(a2,b2),…, (an,bn)}

 M xác định một song ánh

 Tại mức 0 (Root) của cây thì M=.


 Tại mức 1 của cây thì M={(a1,b1)} với
(a1,b1) chọn từ N2 cách có thể chọn.
 Tại mức 2 của cây thì M={(a1,b1), (a2,b2)}
với (a2,b2) chọn từ (N-1)2 cách có thể
chọn.
 …
 Tại mức N của cây thì:
 M={(a1,b1),(a2,b2),…, (an,bn)}
 PROCEDURE Math(S)
 IF M(S) cover all nodes THEN succeeds
 ELSE
 Compute the set P of possible pairs
can be chosen next
 FOREACH p  P

 IF M+p is a feasible set of


mapping
 THEN

 S’=New State(M+p)
 Call Math(S’)
 ENDIF

 ENDFOREACH

 ENDIF
 END
Thuật toán thực hiện

 Ban đầu M=


 Tính tập P các cặp có thể chọn tiếp
theo
 Với mỗi p  P, ta đưa p vào M nếu
M{p} tạo thành một song ánh
giữa hai đồ thị con. Và cứ thế tiếp
tục…
 Nếu tập M chứa tất cả các đỉnh của
hai đồ thị thì hai đồ thị này đẳng
cấu
THE END

You might also like