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
47 -def main(rank_mass, lost_mass, alpha):
48 data = read_adjacency(sys.stdin, sep=None, mass=rank_mass)
49 for nid, node in data:
50 p = alpha*rank_mass + (1.0 - alpha)*(node.page_rank + lost_mass)
51 node.page_rank = p
52 print node
53
54
55 if __name__ == "__main__":
56 try:
57 import psyco
58 psyco.full()
59 except:
60 pass
61 source = open("rank_mass").readlines()
62 source = source[0].strip()
63 lost_mass = open("lost_mass").readlines()
64 lost_mass = lost_mass[0].strip()
65 alpha = 0.5
66 main(float(source), float(lost_mass), alpha)
67