Một hàng của ma trận kề chuẩn hoá
Mạng nơ-ron đồ thị (GCN) trước khi lan truyền thông điệp thường chuẩn hoá ma trận kề theo
Tiến độ của tôi ở bài này
Điểm và code bạn nộp đượ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: python-basics, graph-basics.
Nội dung đề bài
Mô tả bài toán
Mạng nơ-ron đồ thị (GCN) trước khi lan truyền thông điệp thường chuẩn hoá ma trận kề theo công thức đối xứng  = D^(-1/2) A D^(-1/2), trong đó D là ma trận bậc (đường chéo). Việc chuẩn hoá giữ cho độ lớn đặc trưng không phình ra ở các đỉnh bậc cao.
Yêu cầu
Viết hàm normalized_adjacency_row(adjacency, node) trả về hàng node của  dưới dạng danh sách số thực.
Quy ước nộp bài
Nộp hàm normalized_adjacency_row trong solution.py. Hệ thống gọi hàm trực tiếp và so giá trị với sai số 1e-6; không đọc stdin và không in ra stdout.
Input
- adjacency: ma trận kề đối xứng (danh sách các danh sách), adjacency[i][j] bằng 1
nếu có cạnh i-j.
- node: chỉ số đỉnh cần lấy hàng.
Output
Danh sách giá trị Â[node][j] = adjacency[node][j] / sqrt(deg[node] * deg[j]), với deg[k] là tổng hàng k.
Ràng buộc
- node phải nằm trong [0, n); nếu không thì ném ValueError.
- Nếu đỉnh có bậc 0 thì ném ValueError (không chia cho 0).
- Chỉ dùng NumPy cho phép chia và căn bậc hai.
Ví dụ 1
Input
normalized_adjacency_row(adjacency=[[0, 1, 0, 0], [1, 0, 1, 0], [0, 1, 0, 1], [0, 0, 1, 0]], node=0)
Output
[0.0, 0.7071067811865476, 0.0, 0.0]
Ví dụ 2
Input
normalized_adjacency_row(adjacency=[[0, 1, 0, 0], [1, 0, 1, 0], [0, 1, 0, 1], [0, 0, 1, 0]], node=1)
Output
[0.7071067811865476, 0.0, 0.5, 0.0]
Giải thích
Với đường đi 0-1-2-3 thì deg = [1, 2, 2, 1]. Hàng của đỉnh 0 chỉ có cạnh tới 1: Â[0][1] = 1 / sqrt(1 * 2) = 0.7071067811865476, nên hàng là [0.0, 0.7071067811865476, 0.0, 0.0].
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.
