Ma Trận Laplacian Và Ma Trận Kề Chuẩn Hóa Đối Xứng Cho Đồ Thị (Spectral Graph Theory)
Lsym = I - D-1/2 A D-1/2
Tiến độ của tôi ở bài này
Điểm được lưu vào tài khoản sau khi chấm bài.
Đang tải điểm của bạn…
Kiến thức và chủ đề
Kiến thức tiên quyết: linear-algebra-matrix-operations.
Nội dung đề bài
Mục tiêu kiến thức
- Cho đồ thị vô hướng G = (V, E) với N đỉnh và ma trận kề A ∈ RN × N (Aij = 1 nếu có cạnh, 0 nếu không).
- Ma trận bậc D ∈ RN × N là ma trận đường chéo: Dii = ∑j Aij.
- Ma trận Laplacian chuẩn hóa đối xứng (Normalized Graph Laplacian):
Lsym = I - D-1/2 A D-1/2
- Mẹo tái chuẩn hóa GCN (Renormalization Trick - Kipf & Welling 2017):
Để tránh hiện tượng bùng nổ/triệt tiêu phổ giá trị riêng khi xếp chồng nhiều tầng GNN, ta thêm vòng tự khuyên (self-loop) vào mỗi đỉnh: A = A + IN, Dii = ∑j Aij A = D-1/2 A D-1/2 Ma trận A có bán kính phổ bị chặn bởi 1.0, là toán tử lan truyền thông điệp cốt lõi của Graph Convolutional Networks.
Yêu cầu
Viết hàm:
def compute_normalized_adjacency_and_laplacian(
adjacency_matrix: np.ndarray
) -> tuple[np.ndarray, np.ndarray]:
passadjacency_matrix: Mảng 2D đối xứng(N, N)chứa các giá trị 0 hoặc 1.- Trả về tuple
(gcn_hat_A, L_sym): gcn_hat_A: A = D-1/2 (A + I) D-1/2.L_sym: I - D-1/2 A D-1/2 (đối với đỉnh cô lập có degree=0, quy ước Dii-1/2 = 0).
Input
- Hàm
compute_normalized_adjacency_and_laplacian(adjacency_matrix): Các tham số đầu vào chứa dữ liệu Tensor/mảng NumPy hoặc giá trị siêu tham số tương ứng.
Output
- Hàm
compute_normalized_adjacency_and_laplacian: Trả về kết quả kiểutuple[np.ndarray, np.ndarray]theo đúng đặc tả kỹ thuật và kích thước quy định.
Ràng buộc
- Thời gian chạy tối đa: 2000ms.
- Giới hạn bộ nhớ: 256MB.
- Dữ liệu đầu vào hợp lệ theo đúng kiểu dữ liệu và miền giá trị được mô tả.
Ví dụ 1
Input
A = np.array([[0.0, 1.0], [1.0, 0.0]])
hat_A, L_sym = compute_normalized_adjacency_and_laplacian(A)Output
([[0.5, 0.5],
[0.5, 0.5]], [[ 1., -1.],
[-1., 1.]])Giải thích
Hàm/lớp được gọi với các tham số mẫu trên và trả về kết quả số học / kích thước tensor tương ứng theo đúng thiết kế.
Ví dụ 2
Input
A = np.array([[0.0, 1.0, 0.0], [1.0, 0.0, 1.0], [0.0, 1.0, 0.0]])
hat_A, L_sym = compute_normalized_adjacency_and_laplacian(A)Output
([[0.5 , 0.4082, 0. ],
[0.4082, 0.3333, 0.4082],
[0. , 0.4082, 0.5 ]], [[ 1. , -0.7071, 0. ],
[-0.7071, 1. , -0.7071],
[ 0. , -0.7071, 1. ]])Giải thích
Hàm/lớp được gọi với các tham số mẫu trên và trả về kết quả số học / kích thước tensor tương ứng theo đúng thiết kế.
Gợi ý và lời giải chỉ mở sau khi bạn bấm Nộp bài. Giáo viên và quản trị viên mở được ngay.
Góp ý & báo lỗi bài tập
Đề bài chưa rõ, test có vấn đề hay bạn có ý tưởng giúp bài tốt hơn? Gửi cho đội ngũ AI Empire nhé — mỗi góp ý đều được đọc.
