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/] [true_skill.py] - Blame information for rev 48

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 48 alirezamon
from trueskill import Rating, quality_1vs1, rate_1vs1
2
import networkx as nx
3
import numpy as np
4
import time
5
from datetime import datetime
6
import random
7
 
8
from measures import measure_pairs_agreement
9
 
10
def compute_trueskill(pairs,players):
11
        if not players:
12
                for u,v in pairs:
13
                        if u not in players:
14
                                players[u] = Rating()
15
                        if v not in players:
16
                                players[v] = Rating()
17
 
18
        start = time.time()
19
        random.shuffle(pairs)
20
        for u,v in pairs:
21
                players[v],players[u] = rate_1vs1(players[v],players[u])
22
 
23
        end = time.time()
24
        print("time used in computing true skill (per iteration): %0.4f s" % (end - start))
25
        return players
26
 
27
def get_players_score(players,n_sigma):
28
        relative_score = {}
29
        for k,v in players.iteritems():
30
                relative_score[k] = players[k].mu - n_sigma * players[k].sigma
31
        return relative_score
32
 
33
def trueskill_ratings(pairs,iter_times = 15,n_sigma = 3,threshold = 0.85):
34
        start = datetime.now()
35
        players = {}
36
        for i in xrange(iter_times):
37
                #print("========= Trueskill iteration times: %d =========" % (i + 1))
38
                players = compute_trueskill(pairs,players)
39
                relative_scores = get_players_score(players,n_sigma = n_sigma)
40
                accu = measure_pairs_agreement(pairs,relative_scores)
41
                #print("agreement of pairs: %0.4f" % accu)
42
                if accu >= threshold:
43
                        return relative_scores
44
        end = datetime.now()
45
        time_used = end - start
46
        print("time used in computing true skill: %0.4f s, iteration time is: %i" % ((time_used.seconds),(i+1)))
47
        return relative_scores
48
 
49
def graphbased_trueskill(g,iter_times = 15,n_sigma = 3,threshold = 0.95):
50
        from s_c_c import scc_nodes_edges
51
 
52
        relative_scores = trueskill_ratings(list(g.edges()),iter_times = iter_times,n_sigma = n_sigma,threshold = threshold)
53
        scc_nodes,scc_edges,nonscc_nodes,nonscc_edges = scc_nodes_edges(g)
54
        print("----scc-------")
55
        scc_accu = measure_pairs_agreement(scc_edges,relative_scores)
56
        print("----non-scc---")
57
        nonscc_accu = measure_pairs_agreement(nonscc_edges,relative_scores)
58
        print("scc accu: %0.4f, nonscc accu: %0.4f" % (scc_accu,nonscc_accu))
59
        return relative_scores
60
 
61
 
62
def main(edges_file_name = "/home/sunjiank/Dropbox/Data/cit-Patents/cit-Patents.txt"):
63
        g = nx.read_edgelist(edges_file_name,create_using = nx.DiGraph(),nodetype = int)
64
        graphbased_trueskill(g)
65
 
66
 
67
import argparse
68
if __name__ == "__main__":
69
        parser = argparse.ArgumentParser()
70
        parser.add_argument("-g","--graph" , type = str, default = " ", help = "graph edges list file")
71
        args = parser.parse_args()
72
        edges_file_name = args.graph
73
        #main(edges_file_name = "/home/sunjiank/Dropbox/Data/cit-Patents/cit-Patents.txt")
74
        #main(edges_file_name = "/home/sunjiank/Dropbox/Codes/question_difficulty_estimation/dataset/Java/competition_graph.edges")
75
        main(edges_file_name)

powered by: WebSVN 2.1.0

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