def __init__(self): self.dbu = db_manager.DatabaseUtility() self.employee_data = self.dbu.get_eid() self.employees = self.get_employees() self.comm_matrix = [[0 for i in range(len(self.employee_data))] for j in range(len(self.employee_data))] self.g = nx.Graph()
def closeness(adj_table): dbu = db_manager.DatabaseUtility() employee_data = dbu.get_eid() nnodes = len(adj_table) metric_closeness = [0] * nnodes for node in range(nnodes): shortest_path_sum = 0 pred = bfs(adj_table, node) for edge in range(nnodes): shortest_path_sum += get_shortest_path(pred, edge) label = employee_data[node][1] + ' ' + employee_data[node][2] # Prevent division by zero error if shortest_path_sum > 0: metric_closeness[node] = (label, (count_nodes(adj_table) - 1) / shortest_path_sum, node) else: metric_closeness[node] = (label, 0, node) metric_closeness.sort(key=lambda x: x[1], reverse=True) return metric_closeness
def betweenness(adj_table): try: metric_betweenness = load("betweenness.npy") return metric_betweenness except: dbu = db_manager.DatabaseUtility() employee_data = dbu.get_eid() nnodes = len(adj_table) graph = [set() for _ in range(nnodes)] for i in range(nnodes): for j in range(len(adj_table[i])): graph[i].add(adj_table[i][j]) metric_betweennness = [0] * nnodes for i in range(nnodes): for j in range(nnodes): if i != j: paths = bfs_paths(graph, i, j) counter = [0] * nnodes for row in paths: for k in range(nnodes): if k != i and k != j and k in row: counter[k] += 1 for node in range(nnodes): # Prevent division by zero if len(paths) > 0: metric_betweennness[node] += counter[node] / len( paths) for node in range(len(metric_betweennness)): label = employee_data[node][1] + ' ' + employee_data[node][2] metric_betweennness[node] = (label, metric_betweennness[node] / ((count_nodes(adj_table) - 1) * (count_nodes(adj_table) - 2)), node) metric_betweennness.sort(key=lambda x: x[1], reverse=True) save("betweenness", metric_betweennness) return metric_betweennness
def eigenvector(p_matrix, a, epsilon): dbu = db_manager.DatabaseUtility() employee_data = dbu.get_eid() q = p_matrix p = AxP(a, p_matrix) l = norm(p) p = PxL(p, 1 / l) while norm(PminusQ(p, q)) > epsilon: q = p p = AxP(a, p) l = norm(p) p = PxL(p, 1 / l) for node in range(len(p)): label = employee_data[node][1] + ' ' + employee_data[node][2] p[node] = (label, p[node], node) p.sort(key=lambda x: x[1], reverse=True) return p
def __init__(self): QtWidgets.QMainWindow.__init__(self) self.dbu = db_manager.DatabaseUtility() self.graph = network.SocialNetwork()
def __init__(self, database, table_name): QDialog.__init__(self) self.dbu = db_manager.DatabaseUtility(database, table_name) self.setupUi(self)