1
2 '''
3 Created on Aug 18, 2010
4
5 @author: dwmclary
6 '''
7 import sys
8
10 - def __init__(self, nID=None, rank_mass=None, adj=None):
11 if nID != None:
12 self.nID = nID
13 self.page_rank = rank_mass
14 self.adj = adj
15
16
18 s = str(self.nID)+ " "+ " ".join(map(str,self.adj)) +\
19 " pr: "+str(self.page_rank)
20 return s
21
24
25
27 for line in file:
28 line = line.rstrip()
29 if line[0] != comment:
30 entry = line.split(sep)
31 nid = entry[0]
32 if "pr:" in entry:
33 d_index = entry.index("pr:")
34 rank_mass = float(entry[d_index+1])
35
36
37 adj = entry[1:d_index]
38 else:
39 rank_mass = mass
40 path = []
41 adj = entry[1:]
42
43 node = PRNode(nid,rank_mass,adj)
44 yield nid, node
45
46
48 data = read_adjacency(sys.stdin, sep=None, mass=rank_mass)
49 lost_mass = 0.0
50 for nid, node in data:
51 p = node.page_rank/len(node.adj)
52
53 print node
54 for m in node.adj:
55 print str(m) + " pagerank: " + str(p)
56 if len(node.adj) == 0:
57 lost_mass += node.page_rank
58 print "#lost_mass: " + str(lost_mass)
59
60 if __name__ == "__main__":
61 try:
62 import psyco
63 psyco.full()
64 except:
65 pass
66 source = open("rank_mass").readlines()
67 source = source[0].strip()
68 main(float(source))
69