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