Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Lập Trình

Nhãn chuẩn (Canonical Label) là gì?

Một phương pháp tiêu chuẩn để xử lý vấn đề đẳng cấu đồ thị (graph isomorphism) là ánh xạ mỗi đồ thị thành một biểu diễn chuỗi cụ thể gọi là mã (code) hoặc nhãn chuẩn (canonical label). Nhãn chuẩn có thuộc tính rằng nếu hai đồ thị đẳng cấu (isomorphic), do đó mã của chúng phải bằng nhau.

Thuộc tính này cho phép chúng ta kiểm tra đẳng cấu đồ thị bằng cách phân tích các nhãn chuẩn của các đồ thị. Giai đoạn đầu tiên về phía xây dựng nhãn chuẩn của một đồ thị là tìm biểu diễn ma trận kề (adjacency matrix representation) cho đồ thị. Nó hiển thị một ví dụ của ma trận như vậy cho đồ thị cho trước.

Một đồ thị có thể có nhiều hơn một biểu diễn ma trận kề vì có nhiều cách để sắp xếp các đỉnh (vertices) trong ma trận kề. Hàng và cột đầu tiên tương ứng với đỉnh a có 3 cạnh, hàng và cột thứ hai tương ứng với đỉnh a khác có 2 cạnh, v.v. Có thể thay đổi dẫn xuất tất cả các biểu diễn ma trận kề cho một đồ thị, cần phải xem xét tất cả các hoán vị (permutations) có thể của hàng của ma trận.

Ví dụ — Xét ma trận sau:

M = 1 2 3 4   5 6 7 8   9 10 11 12   13 14 15 16

Ma trận hoán vị (permutation matrix) sau có thể được dùng để chuyển đổi hàng đầu tiên (và cột) với hàng thứ ba của M:

P₁₃ = 0 0 1 0   0 1 0 0   1 0 0 0   0 0 0 1

nơi P₁₃ được thu được bằng cách trao đổi hàng đầu tiên và hàng thứ ba của ma trận đơn vị (identity matrix). Có thể trao đổi hàng đầu tiên và hàng thứ ba (và cột), ma trận hoán vị được nhân với M:

M' = P₁₃ᵀ × M × P₁₃ = 11 10 9 12   7 6 5 8   3 2 1 4   15 14 13 16

Bước thứ hai là quyết định biểu diễn chuỗi (string representation) cho mỗi ma trận kề. Vì ma trận kề là đối xứng (symmetric), hiệu quả để tạo biểu diễn chuỗi dựa trên phần tam giác trên (upper triangular part) của ma trận.

Mã (code) được thu được bằng cách nối các mục của ma trận tam giác trên theo kiểu theo cột (columnwise fashion). Bước cuối cùng là liên hệ tất cả các biểu diễn chuỗi của đồ thị và chọn cái có giá trị từ điển (lexicographic value) thấp nhất (hoặc cao nhất).

Cách tiếp cận trước xuất hiện tốn kém vì nó cần chúng ta xác định tất cả các ma trận kề có thể của một đồ thị và đánh giá mỗi biểu diễn chuỗi của chúng để tìm nhãn chuẩn. Hơn nữa, có k! hoán vị phải được xem xét cho mỗi đồ thị bao gồm k đỉnh.

Có nhiều phương pháp được phát triển để giảm độ phức tạp của nhiệm vụ này bao gồm lưu trữ (caching) nhãn chuẩn trước đó được tính và giảm số lượng hoán vị cần thiết để quyết định nhãn chuẩn bằng cách kết hợp thêm dữ liệu bao gồm nhãn đỉnh (vertex labels) và bậc của đỉnh (degree of a vertex).