LABEL PROPAGATION COMMUNITY DETECTION (LPA)

Một phần của tài liệu Báo cáo cuối kỳ môn toán tổ hợp và đô thị mô hình mạng lưới xã hội (Trang 30 - 31)

Việc nghiên cứu cấu trúc cộng đồng và sự phát triển của nó trong một mạng lưới xã hội lớn cần một thuật tốn nhanh và chính xác để nhận biết cộng đồng. Khi mà kích cỡ của cộng đồng tăng, độ phức tạp của thuật tốn cần được duy trì ở mức gần với tuyến tính. Thuật tốn lan truyền nhãn (LPA) có lợi thế về độ phức tạp và dễ dàng thực hiện, vì vậy nó là một trong những thuật toán hiệu quả nhất trong những thuật toán nhận biết cộng đồng.

Ý tưởng của thuật toán lan truyền nhãn trong mạng lưới được nghiên cứu bởi Bagrow [19]. Chúng ta bắt đầu với một đỉnh được gán cho một nhãn, thuật toán lan truyền tới từng đỉnh có trong mạng lưới cho tới khi khơng thể lan truyền được nữa.

Ta đặt một đỉnh mà tất cả láng giềng của nó có cùng nhãn và gọi đỉnh đó là một nội đỉnh. Đỉnh mà khơng phải là nội đỉnh thì được gọi là ngoại đỉnh. Nếu một đỉnh đã từng thay đổi nhãn thì đỉnh đó sẽ khơng được thay đổi nhãn nữa, những đỉnh như vậy gọi là đỉnh bị động. Những đỉnh mà không thụ động sẽ là đỉnh chủ động. Tất cả các nội đỉnh đều là bị động bởi định nghĩa. Mặc khác, ngoại đỉnh đều có thể chủ động hoặc bị động phụ thuộc vào láng giềng của nó. Do đó, mỗi đỉnh sẽ có một trong ba thuộc tính: nội bị động, ngoại bị động hoặc ngoại chủ động. Nói tóm lại, thuật tốn sẽ kết thúc khi tất cả các đỉnh đều là bị động. Các đỉnh chủ động sẽ được lưu giữ trong một list gọi là danh sách đỉnh chủ động (active node list).

Thuật tốn có nội dung như sau:

1. Vào thời điểm t = 0, đưa tất cả các đỉnh vào active node list

2. Ngẫu nhiên chọn một đỉnh chủ động từ active node list, gọi đỉnh này là i, và thay đổi nhãn của đỉnh này theo định nghĩa đã được nêu ở trên. Bởi vì chỉ có những đỉnh chủ động mới được đặt ở vị trí đầu trong danh sách và những đỉnh này sẽ ở lại trong danh sách miễn là vẫn cịn thuộc tính chủ động, những đỉnh được chọn sẽ thay đổi nhãn của mình trong quá trình cập nhật.

3. Đầu tiên, kiểm tra xem những đỉnh đã được cập nhật đã mang thuộc tính bị động hay chưa, nếu rồi thì xóa đỉnh đó khỏi danh sách. Tiếp theo, kiểm tra xem sự thay đổi tất cả láng giềng của đỉnh đó thơng qua ba bước. (1) nếu một nội đỉnh trở thành đỉnh ngoại chủ động, thêm đỉnh đó vào active node list. (2) Loại bỏ những đỉnh láng giềng chủ động mà đã trở thành bị động ra khỏi active node list. (3) Thêm những đỉnh láng giềng ngoại bị động mà đã trở thành chủ động vào active node list.

4. N u active node list r ng thì d ng thu t tốn; n u khơng ế ỗ ừ ậ ế 𝑡 += 1 và quay lại bước 2.

CHƯƠNG 4 – DEMO

Một phần của tài liệu Báo cáo cuối kỳ môn toán tổ hợp và đô thị mô hình mạng lưới xã hội (Trang 30 - 31)