Advertisement
Guest User

Untitled

a guest
Feb 23rd, 2015
265
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.95 KB | None | 0 0
  1. import networkx as nx
  2. from networkx.algorithms import isomorphism
  3. #from collections import Counter
  4. import time
  5. ti=time.time()
  6. # read graphs from file.
  7. def readGraphFile(graphFile):
  8.     G_list = []
  9.     indice = []
  10.     frequence_list = []
  11.     frequentgraphs = []
  12.     frequentfreqs=[]
  13.    
  14.     appearance = [] #store the appearance of the frequent pattern
  15.     fp = open(graphFile, "r+")
  16.     lines = [line for line in fp.read().splitlines() if line]
  17.     for line in lines:
  18.         data = line.split()
  19.         if data[0] == 't':
  20.             if (len(data) < 3):
  21.                 print 'Graph header line error...'
  22.             else:
  23.                 g = nx.Graph()
  24.                 G_list.append(g)
  25.                 indice.append(data[2])
  26.                 #G_list[ map(int, data[4:])] = g
  27.  
  28.                
  29.         elif data[0] == 'v':
  30.             data = line.split()
  31.             if (len(data) < 3):
  32.                 print 'Node data line error...'
  33.             else:
  34.                 g.add_node(data[1], attrib = data[2])
  35.                 #as node graph transaction format is single value, use attrib as a common noun for all attrib
  36.         elif data[0] == 'e':
  37.             if (len(data) < 4):
  38.                 print 'Edge data line error...'
  39.             else:
  40.                 g.add_edge(data[1], data[2])
  41.         else:
  42.             print line
  43.             print '!!! Invalid graph data line...!!!'
  44.     graphdic = dict(zip(G_list, indice))
  45.  
  46.     #print(graphdic)  
  47.        
  48.     print '= = = = = Finished reading {} graphs from the file'.format(len(G_list)) + '= = = = ='
  49.     #print 'Total graphs in list: ',
  50. ####Frequency Algorithm #####
  51.     ta=time.time()    
  52.     i=0
  53.     cnt=0
  54.     #inc=0;    
  55.     for gr in G_list:
  56.        
  57.        
  58.         for c in G_list:
  59.                 if (nx.is_isomorphic(gr,c)): cnt+= 1
  60.                 #if (isomorphism.GraphMatcher(gr,c).subgraph_is_isomorphic):inc+= 1
  61.                    
  62.  
  63.         print ("graph:{} frequence:{} ".format(i,cnt))
  64.         frequence_list.append(cnt)
  65.         cnt=0
  66.         i+= 1
  67.         print("-----------------------")
  68.          
  69.    
  70.     freqdic = dict(zip(G_list,frequence_list))
  71.     print("\n=x=x=x=x=x=x=x=x=x=x=x=x=")
  72.     #try: seuil=float(raw_input('Entrer un Sieul:'))
  73.     #except ValueError: print ("float")
  74.     for gr, fr in freqdic.iteritems():
  75.         if fr >= 2:
  76.             frequentgraphs.append(gr)
  77.             frequentfreqs.append(fr)
  78.  
  79.     frequentgraphsdic= dict(zip(frequentgraphs,frequentfreqs))
  80.     print("\n=x=x=x=x=x=x=x=x=x=x=x=x=\n frequent items:{}\n".format(len(frequentgraphs)))
  81.     #print(frequentgraphsdic)
  82.    
  83.     print("* * * * * D O N E * * * * * ")    
  84.     print("RUNNING TIME: {}s".format(time.time()-ti))    
  85.     print("Reading from file: {}s".format(ta-ti))    
  86.     print("Algo: {}s".format(time.time()-ta))    
  87.    
  88. #############################    
  89.  
  90.    
  91.  
  92.  
  93.  
  94. #programme pricipale    
  95. def  main():
  96.     readGraphFile("5.txt")
  97.        
  98. if __name__ == '__main__': main()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement