DEMO HỆ SỐ TRUNG TÂM LÂN CẬN TRÊN PYTHON

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 37 - 39)

4.3.1 GIẢI THUẬT

Ta sử dụng thư viện networkx để giải bài toán. Đầu tiên ta sử dụng các lệnh

add_node (add_nodes_from) và add_edge (add_edges_from) để tạo thành đồ thị mong muốn.

Ta có giải thuật như sau:

1. Tạo một set rỗng, gọi set này là là Dict_Cc dùng để chứa các hệ số trung tâm lân cận của từng đỉnh theo thứ tự, đồng thời cho một biến i = 0.

2. Duyệt phần tử thứ i của đồ thị (theo thứ tự đã cho trước đó), đồng thời đặt một biến d = 0.

3. Duyệt tất cả các kết nối của đỉnh i tới các đỉnh khác trong đồ thị

đường đi ngắn nhất từ đỉnh i tới các đỉnh lần lượt ta sẽ có biến step đại diện cho bước ngắn nhất từđỉnh i đến đỉnh đó, cứ mỗi lần như

vậy d được cập nhật 𝑑 += 𝑠𝑡𝑒𝑝. Đồng thời áp dụng công thức tính hệ số trung tâm lân cận có cơng thức như sau:

𝐶𝑐 =∑ 𝑑(𝑥, 𝑦)𝑛 − 1

Trong đó:

+ n: Tổng số actor trong mạng lưới.

+ ∑ 𝑑(𝑥, 𝑦): Tổng số ‘bước’ (step) của đoạn đường ngắn nhất

mà 𝑎𝑐𝑡𝑜𝑟𝑖 phải đi để đến với mọi actor trong mạng. Sau đó Dict_Cc.add(𝐶𝑐).

4. Nếu i bé hơn số đỉnh của đồ thị thì i tăng một đơn vị và quay lại bước 2. Nếu khơng kết thúc thuật tốn

5. Kết quả trả về là set Dict_Cc chứa hệ số trung tâm lân cận của tất cả các đỉnh trong đồ thị.

4.3.2 BÀI TỐN

Hình 15 Ví dụ demo hệ số trung tâm lân cận Sử dụng các lệnh để tạo đồ thị:

import networkx as nx g = nx.Graph()

g.add_nodes_from([1,2,3,4,5,6])

g.add_edges_from([(1,2),(1,5),(2,3),(2,5),(3,4),(4,5),(4,6)])

Áp dụng giải thuật đã trình bày ở 4.3.1 Ta có kết quả:

{1: 0.5555555555555556, 2: 0.625, 3: 0.625, 4: 0.7142857142857143, 5: 0.7142857142857143, 6: 0.45454545454545453}

4.3.2 KẾT QUẢ

Hình 16 Demo hệ số trung tâm lân cận trên Python

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 37 - 39)

Tải bản đầy đủ (PDF)

(49 trang)