PageRank – Thuật Toán Xếp Hạng Trang Web Bằng Power Iteration
PageRank tính điểm uy tín của mỗi nút trong đồ thị có hướng. Công thức:
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: graph-laplacian-normalized-adjacency.
Nội dung đề bài
Mục tiêu kiến thức
PageRank tính điểm uy tín của mỗi nút trong đồ thị có hướng. Công thức: PR(u) = 1-dN + d ∑v ∈ Bu PR(v)L(v)
Trong đó:
- d = 0.85: damping factor
- N: số nút
- Bu: tập nút trỏ vào u
- L(v): số cạnh ra của v
Dangling nodes (nút không có cạnh ra): phân phối đều PR sang tất cả nút.
Yêu cầu
def pagerank(adjacency_matrix: np.ndarray, d=0.85, max_iter=100, tol=1e-6) -> np.ndarray:
# adjacency_matrix[i][j] = 1 if edge i -> j
# Returns normalized PageRank scores summing to 1.0
passInput
- Hàm
pagerank(adjacency_matrix,d,max_iter,tol): 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
pagerank: Trả về kết quả kiểunp.ndarraytheo đú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: 3000ms.
- 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, 1, 1], [1, 0, 0], [0, 1, 0]], dtype=float)
pr = pagerank(A)Output
[0.3878, 0.3974, 0.2148]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, 1], [0, 0, 0]], dtype=float)
pr = pagerank(A)Output
[0.2128, 0.2128, 0.5745]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.
