Commit adab1974 authored by Victor Zimmermann's avatar Victor Zimmermann
Browse files

Colouring algorithm now converges.

parent c9b53fbd
Loading
Loading
Loading
Loading
+15 −5
Original line number Diff line number Diff line
@@ -561,14 +561,14 @@ def colour_graph(graph: nx.Graph, root_hub_list: list) -> nx.Graph:
    
    for node in graph.nodes:
        
        graph.node[node]['dist'] = [0] * len(root_hub_list)
        graph.node[node]['dist'] = [[0] * len(root_hub_list)]
            
        if node in root_hub_list:
            
            root_idx = root_hub_list.index(node)
            
            graph.node[node]['sense'] = root_idx
            graph.node[node]['dist'][root_idx] = 1
            graph.node[node]['dist'][0][root_idx] = 1
            
        else:
            
@@ -600,11 +600,10 @@ def colour_graph(graph: nx.Graph, root_hub_list: list) -> nx.Graph:
            
            if any(neighbor_weight_list):
                
                graph.node[node]['dist'] = np.mean([graph.node[node]['dist'],
                                                    neighbor_weight_list], axis=0)
                graph.node[node]['dist'].append(neighbor_weight_list)
                
                old_colour = graph_copy.node[node]['sense']
                new_colour = np.argmax(graph.node[node]['dist'])
                new_colour = np.argmax(np.mean(graph.node[node]['dist'], axis=0))
                
                if old_colour != new_colour:
                    stable = False
@@ -617,6 +616,10 @@ def colour_graph(graph: nx.Graph, root_hub_list: list) -> nx.Graph:
                
                pass
    
    for node in graph.nodes:
        
        graph.node[node]['dist'] = np.mean(graph.node[node]['dist'], axis=0)
    
    return graph
    
    
@@ -825,6 +828,10 @@ def print_stats(stat_dict: dict) -> None:
    
    print('\n[A] '+'\n[A] '.join(stat_string)+'\n')
    
    with open('statistics.txt', 'a') as stat_file:
        
        stat_file.write('\n '.join(stat_string)+'\n\n')
    
    write_header = not os.path.exists('.statistics.tsv')
    
    with open('.statistics.tsv', 'a') as stat_file:
@@ -837,6 +844,9 @@ def print_stats(stat_dict: dict) -> None:
        
    
        
            
        

def global_clustering_coefficient(graph: nx.Graph) -> float:
    """Calculates global clustering coefficient from graph.