Nói cách khác, nếu 2 đồ thị là đẳng cấu thì sẽ tồn tại một song ánh giữa các đỉnh của 2 đồ thị bảo toàn quan hệ liền kề.. Ø Nếu 2 đồ thị G1 và G2 là các đơn đồ thị vô hướng đẳng cấu: +
Trang 1Mục lục:
XÉT ĐẲNG CẤU ĐỒ THỊ VÔ HƯỚNG
1.1 Đẳng cấu giữa hai đồ thị đơn (Single Graph) 2
1.1.1 Định nghĩa 2
1.1.2 Thuật giải 4
1.1.3 Thủ tục 5
1.1.4 Dữ liệu thử nghiệm 5
1.2 Đẳng cấu giữa hai giả đồ thị (Pseudo Graph) 9
1.2.1 Định nghĩa 9
1.2.2 Thuật giải 9
1.2.3 Thủ tục 11
1.2.4 Dữ liệu thử nghiệm 13
1.3 Kết luận 14
Trang 2XÉT ĐẲNG CẤU ĐỒ THỊ VÔ HƯỚNG 1.1 Đẳng cấu giữa hai đồ thị đơn (Single Graph)
1.1.1 Định nghĩa
Các đồ thị G1 = (V1,E1) và G2 = (V2,E2) được gọi là đẳng cấu với nhau nếu có một song ánh f: V1 ® V2 sao cho nếu a và b là liền kề trong V1 thì f(a) và f(b) liền kề trong V2; " a, b Î V1 Khi đó song ánh f được gọi là một đẳng cấu
Nói cách khác, nếu 2 đồ thị là đẳng cấu thì sẽ tồn tại một song ánh giữa các đỉnh của 2 đồ thị bảo toàn quan hệ liền kề
Ø Nếu 2 đồ thị G1 và G2 là các đơn đồ thị vô hướng đẳng cấu:
+ Hai đỉnh tương ứng có cùng bậc (cùng số đỉnh với bậc cho sẵn)
Đây là các điều kiện cần để hai đồ thị là đẳng cấu
Ø Để chứng minh hai đồ thị đẳng cấu ta cần:
+ Chứng minh điều kiện cần thỏa
+ Xây dựng một song ánh bảo toàn quan hệ liền kề giữa hai đồ thị (điều kiện đủ để hai đồ thị đẳng cấu)
Ví dụ 1: Chứng minh rằng hai đồ thị sau là đẳng cấu với nhau:
Ø Xét điều kiện cần:
+ Hai đồ thị G và H đều có 4 đỉnh,
+ Hai đồ thị G và H đều có 4 cạnh, + Các đỉnh của hai đồ thị đều có bậc 2
Trang 2
Trang 3→ Vậy điều kiện cần thỏa.
Ø Xét điều kiện đủ:
u1 a v1
u2 a v4
u3 a v2
u4 a v3
Þ f là song ánh và bảo toàn quan hệ liền kề, điều kiện đủ thỏa Vậy hai đồ thị
G và H đẳng cấu với nhau
Ví dụ 2:
G và H có cùng số cạnh, số đỉnh nhưng H có đỉnh e' bậc 1, trong khi đó G không có đỉnh nào bậc 1 Điều kiện cần không thỏa Þ G và H không đẳng cấu
Trang 41.1.2 Thuật giải
Bước 1 :
Input: Hai đồ thị vô hướng G, H
Bước 2:
2.1 if (G, H có số đỉnh khác nhau) then
Hai đồ thị có số đỉnh khác nhau
2.2 if (G, H có số cạnh khác nhau) then
Hai đồ thị có số cạnh khác nhau
2.3 if (G, H có có hướng và vô hướng) then
Hai đồ thị khác nhau: 1 đồ thị có hướng và 1 đồ thị vô hướng
2.4 if (G, H có số đỉnh với bậc cho sẵn khác nhau) then
Hai đồ thị không cùng có số đỉnh với bậc cho sẵn
Bước 3:
Output: cho kết quả tìm được 2 đồ thị đẳng cấu hay không đẳng cấu
Trang 4
Trang 51.1.3 Thủ tục
1.1.4 Dữ liệu thử nghiệm
>
Trang 6>
> DrawGraph(G);
>
>
>
>
Trang 6
Trang 7>
>
>
>
>
>
Trang 8>
Trang 8
Trang 91.2 Đẳng cấu giữa hai giả đồ thị (Pseudo Graph)
1.2.1 Định nghĩa
Một giả đồ thị G = (V, E) gồm một tập khác rỗng V mà các phần tử của nó gọi là các đỉnh và một họ E mà các phần tử của nó gọi là các cạnh, đó là các cặp không có thứ tự của các đỉnh (không nhất thiết là phân biệt) Với v Î V, nếu (v,v) Î
E thì ta nói có một khuyên tại đỉnh v
Một giả đồ thị vô hướng tổng quát có thể chứa các khuyên và cho phép đa cạnh
Ví dụ:
1.2.2 Thuật giải
Bước 1 :
Input: Hai đồ thị vô hướng G1, G2
Biến V1 lưu trữ danh sách các đỉnh của đồ thị G1
Biến V2 không đổi, thiết lập hoán vị khác nhau giữa các đỉnh của đồ thị G2, kiểm tra vị trí từng đỉnh của V1 trong V2 (mỗi lần lặp trong vòng lặp while)
Biến n lưu trữ số đỉnh của đồ thị G1 để kiểm tra xem có cùng số đỉnh với đồ thị G2
Trang 10 Biến hoanvi là biến đếm các hoán vị đang xét
Biến timthay: khởi tạo timthay= false (kiểu bool), biến là điều kiện để kết
thúc vòng lặp nếu hoán vị của các đỉnh đang xét là đẳng cấu được tìm thấy
(timthay = true) Bên trong vòng lặp khi xác định không phải là một đẳng cấu, đặt timthay = false, cho phép vòng lặp tiếp tục
Bước 2:
While (không tìm thấy hoán vị đang xét là đẳng cấu và chưa duyệt hết qua
các thứ tự hoán vị của đồ thị G2 do {
2.1 Kiểm tra bậc của các đỉnh tương ứng bằng nhau Nếu bậc của các
đỉnh tương ứng khác nhau là hoán vị hiện tại không phải là đẳng cấu, kết thúc
2.2 Kiểm tra các đỉnh có khuyên hoặc không khuyên Nếu một đồ thị
có khuyên và đồ thị kia không có khuyên thì không phải là đẳng cấu
2.3 Kiểm tra hai đồ thị phải có cùng số cạnh Biến i và j là chỉ số các
đỉnh dùng duyệt qua tất cả các cặp đỉnh
}// Thoát khỏi vòng lặp while khi các hoán vị đang xét là đẳng cấu được tìm
thấy hoặc thoát khỏi vòng lặp while khi đã duyệt hết qua các thứ tự hoán vị của đồ thị mà không tìm được hoán vị nào đẳng cấu
Bước 3:
Output: cho kết quả tìm được 2 giả đồ thị đẳng cấu hay không đẳng cấu
Trang 10
Trang 111.2.3 Thủ tục
Trang 12Trang 12
Trang 131.2.4 Dữ liệu thử nghiệm
>
>
>
>
>
>
>
>
Trang 14>
Hai gia do thi dang cau nhu sau:
1 -> "C"
2 -> "A"
3 -> "B"
4 -> "D"
1.3 Kết luận
Để xác định sự đẳng cấu giữa hai đồ thị là một bài toán không đơn giản, vì giữa hai đồ thị có n đỉnh tồn tại tới n! song ánh giữa hai tập đỉnh Phương pháp tiếp cận ở trên chỉ giải quyết bài toán các đồ thị tương đối nhỏ và xác định
Một cách khác để xác định đồ thị G1 và G2 đẳng cấu nếu các đỉnh của chúng được sắp xếp lại sao cho cấu trúc các cạnh tương ứng là giống nhau Nhưng để chỉ
ra đồ thị G1 và G2 không phải đẳng cấu, người ta phải chứng minh rằng không có một cách sắp xếp nào như vậy
Cách tiếp cận khác dùng một thuật toán có thời gian chạy đa thức (polynomial-time algorithm) có số lượng các bước tính toán được giới hạn bởi một hàm đa thức của kích thước đầu vào Lớp các bài toán dạng này là được ký hiệu là P Nếu đồ thị G1 và G2 là đẳng cấu thì chúng phải có các vector tần suất dấu giống nhau theo thứ
tự từ điển fi1, fi2, , fin trong thời gian theo hàm đa thức
Trang 14