OpenCores
URL https://opencores.org/ocsvn/an-fpga-implementation-of-low-latency-noc-based-mpsoc/an-fpga-implementation-of-low-latency-noc-based-mpsoc/trunk

Subversion Repositories an-fpga-implementation-of-low-latency-noc-based-mpsoc

[/] [an-fpga-implementation-of-low-latency-noc-based-mpsoc/] [trunk/] [mpsoc/] [remove_cycle/] [break_cycles.py] - Blame information for rev 48

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 48 alirezamon
import networkx as nx
2
import argparse
3
 
4
def evaluation(graph_file,gt_edges_file,method,nodetype = int):
5
        g = nx.read_edgelist(graph_file,create_using = nx.DiGraph(),nodetype = nodetype)
6
        if method == "dfs":
7
                from remove_cycle_edges_by_dfs import dfs_performance
8
                edges_to_be_removed = dfs_performance(graph_file,gt_edges_file,nodetype = nodetype)
9
        elif method == "mfas":
10
                from remove_cycle_edges_by_minimum_feedback_arc_set_greedy import mfas_performance
11
                mfas_performance(graph_file,gt_edges_file,nodetype = nodetype)
12
        elif method == "pagerank" or method == "ensembling" or method == "trueskill" or method == "socialagony":
13
                from remove_cycle_edges_by_hierarchy import breaking_cycles_by_hierarchy_performance
14
                breaking_cycles_by_hierarchy_performance(graph_file,gt_edges_file,method,nodetype = nodetype)
15
 
16
def break_cycles(graph_file,extra_edges_file = None,algorithm = "ensembling",nodetype = int):
17
        methods = ["dfs","pagerank","mfas","ensembling"]
18
 
19
        if algorithm == "all":
20
                for method in methods:
21
                        evaluation(graph_file,extra_edges_file,method,nodetype = nodetype)
22
        else:
23
                evaluation(graph_file,extra_edges_file,algorithm,nodetype = nodetype)
24
 
25
if __name__ == "__main__":
26
 
27
        parser = argparse.ArgumentParser()
28
        parser.add_argument("-g","--graph_file",default= " ", help = "graph file to break cycles ")
29
        parser.add_argument("-t","--gt_edges_file",default= None, help = "ground truth of edges to be removed")
30
        parser.add_argument("-m","--method",default = "ensembling", help = "method to break cycles")
31
        parser.add_argument("-n","--node_type",default = "int", help = "graph node type")
32
        args = parser.parse_args()
33
 
34
        if args.node_type == "int":
35
                break_cycles(args.graph_file,args.gt_edges_file,args.method,nodetype = int)
36
        else:
37
                break_cycles(args.graph_file,args.gt_edges_file,args.method,nodetype = str)

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.