DEMO HỆ SỐ TRUNG TÂM TRUNG GIAN 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 39 - 41)

4.4.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_Cb 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 b = 0.

3. Duyệt tất cả các kết nối của đỉnh x tới tất cả các đỉnh khác trong đồ thị(trừ đỉnh i)và tìm đường đi ngắn nhất của đỉnh x đến từng đỉnh, với mỗi đường đi ngắn nhất từ đỉnh x tới các đỉnh lần lượt ta sẽ có biến count đại diện cho số lần xuất hiện của đỉnh i trong đường đi đó. Sau khi đã duyệt xong ta áp dụng cơng thức tính hệ số trung tâm trung gian:

𝐶𝐵 =(𝑛 − 1)(𝑛 − 2)/2𝑐𝑜𝑢𝑛𝑡

Trong đó:

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

Sau đó Dict_Cb.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_Cb chứa hệ số trung tâm trung gian của tất cả các đỉnh trong đồ thị.

4.4.2 BÀI TỐN

Hình 17 Ví dụ demo hệ số trung tâm trung gian

Sử dụng các lệnh để tạo đồ thị:

import networkx as nx a = nx.Graph()

a.add_edges_from([('L','M'),('L','N'),('L','O'), ('M','P'),('M','Q'), ('N','O'),

('O','R'), ('P','Q')])

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

{'L': 0.6, 'M': 0.5333333333333333, 'N': 0.0, 'O': 0.3333333333333333, 'P': 0.0, 'Q': 0.0, 'R': 0.0}

4.4.3 KẾT QUẢ

Hình 18 Demo hệ số trung tâm trung gian 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 39 - 41)

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

(49 trang)